블루프린트 33

언리얼 보스 체력바 ui 블루프린트

캐릭터 체력 ui가 있는 위젯에서 Boss Canvas Panel를 추가하고 안에는 보스 체력바와 image를 추가한다 패널은 자동으로 변수화가 안되기 때문에 오른쪽 상단에 변수인지를 클릭한다. 그리고 그래프로 넘어가서 보스 HPBar를 현재 hp,최대 hp에 따라 변동하도록 함수를 생성한다 GameInstance에서 방금 제작한 Boss Panel를 보여줄지 말지 결정하는 함수를 제작하고 보스몬스터 블루프린트로 넘어간다 보스 블루프린트에서는 게임이 시작하면 현재 Game Instance를 변수에 저장하고 피격 받을 때 생성한 Update Boss HPBar 함수를 불러와 체력바를 체력에 따라 변동시키고 플레이어와의 거리가 가까워 지면 Show Boss UI를 불러와 is Show를 true로 설정해준다..

언리얼 몬스터 체력바

먼저 다음과 같이 틀을 제거하고 progressbar를 하나 생성한다 그런다음 actor 블루프린트를 하나 생성하고 컴포넌트 추가 -> 위젯 을 불러온 뒤 위젯을 방금 생성한 몬스터 HPBar 위젯으로 지정하고 x축 크기를 90, y축 크기를 10으로 지정한다 그리고 update location이라는 함수를 하나 생성해서 다음과 같이 연결한다 이제 이 액터 블루프린트를 몬스터 블루프린트에 따라다니도록 할 것이다 먼저 큐브 컴포넌트를 하나 추가해서 몬스터 머리위에 고정시켜준다 그리고 몬스터 블루프린트에서 게임이 시작하면 spawnActor노드를 통해 방금 생성한 HPBar블루프린트를 생성할 것이다 HPBar의 위치는 더미큐브로 받아오고 HPBar를 참조하는 변수에 저장한다 그리고 Tick 이벤트에서 HPB..

언리얼 체력바 마나바 UI 블루프린트

먼저 다음과 같은 위젯 블루프린트를 하나 생성한다. 그리고 sidescrollgameInstance에서 함수 ShowGamePlayMainWidget을 하나 생성한다. 위젯이 없으면 생성해서 viewport에 생성하고 있다면 그냥 바로 viewport에 생성한다. 레벨 블루프린트에서 게임 시작하면 is Show를 true로 바꿔 게임 시작하면 바로 위젯을 키도록 설정하였다. 다시 방금 만든 위젯 -> 블루프린트로 가서 hpbar 함수를 하나 생성한다 이름은 UpdateHeroHPBar 현재 HP / 전체 HP 값을 HPBar에 넣어준다 이제 캐릭터 블루프린트로 가서 SideScrollGameInstance를 참조하는 변수를 하나 만들어주고 현재 게임 Instance로 Set해준다 그리고 현재 Game I..

언리얼 몬스터 피격 모션 애니메이션

몬스터 블루프린트에서 몬스터가 피격받을 때 플레이어 캐릭터로부터 -300만큼 뒤로 넉백 되도록 Launch Character를 통해 설정한다. 넉백 애니메이션 몽타주에서 새로운 노티파이를 설정하고 Monster BP의 On Anim End Impact로 형변환 해준다 몬스터 상태 열거형 변수에는 nuckback변수를 추가해 맞았을 때 상태를 추가한다 몬스터의 상태를 바꾸는 노드에는 새로운 커스텀 이벤트 NextActionDecision으로 묶어주고 몬스터의 공격이 끝나고 몬스터가 맞는게 끝났을 때 NextActionDecision를 실행하도록 한다 피격시에는 넉백 애니메이션을 실행하고 상태를 넉백으로 바꾸어준다

언리얼 콤보 어택

공격 애니메이션의 몽타주에서 checkNextCombo 라는 노티파이를 추가한다 이 시점 이전에 공격키를 눌렀으면 다음 콤보 공격으로 넘어간다 그리고 캐릭터 애니메이션 블루프린트에서 이 노티파이를 실행하면 캐릭터 블루프린트로 넘어가도록 노드를 연결한다. 변수에 isGoNextCombo와 ComboCount를 추가한다. isGoNextCombo는 true일 때 다음 공격으로 넘어가는 변수이고 ComboCount는 현재 몇번 째 콤보인지 나타내는 변수이다 우선 현재 공격중일 때 공격 키를 또 누르면 isGoNextCombo가 true가 되도록 한다. 그리고 공격 애니메이션이 끝나면 ComboCount를 0으로 하고 isGoNextCombo도 false로 한다 그리고 체크콤보 노티파이를 지나갈 때 isGoNe..

언리얼 게임 저장, 불러오기

블루프린트 생성 -> SaveGame 을 선택하고 이름은 다음과 같이 한다 int형으로 ClearStage라는 변수를 추가한다. SideScrollGameInstance에서 함수 Save, Load 추가, 변수 SideScrollSaveRef를 추가하고 변수 유형은 방금 만든 SideScrollSaveBP로 한다. 먼저 save에서 변수에 저장된 값이 없다면 Save Game Object를 생성해주고 값이 있다면 현재 clear한 스테이지 정보를 가져와서 현재 게임 슬롯에 저장할 수 있도록한다. load에서는 다음과 같이 노드를 연결해서 슬롯에 저장된 clear stage 를 가져오도록 한다. 레벨 블루프린트(Main menu)를 열고 SideScrollGameInstance의 Load를 불러오도록 한다..

언리얼 스테이지 선택 ui 생성

먼저 다음과 같은 UI를 하나 만든다 다음 블루프린트 생성 -> game instance 블루프린트를 생성하고 이름은 다음과 같이 한다. 프로젝트 세팅 - 맵&모드 -게임 인스턴스 클래스 부분을 방금 만든 SideScrollGameInstance로 바꾸어준다 들어가서 다음과 같은 함수를 하나 생성한다. 이제 이 함수를 작동하면 stage select 위젯이 켜지게 되고 반대로 함수의 작동을 멈추면 위젯은 꺼지게 된다. 메인메뉴 위젯에서 play버튼을 누르면 방금 함수를 호출해서 stage select 위젯이 켜지도록한다. stage select 위젯에서는 close 버튼을 누르면 stage select 위젯이 꺼지도록한다 SideScrollGameInstance에 integer형 변수 하나 생성 이름은 ..

몬스터 플레이어 액터 구분

플레이어는 우측에 다음과 같은 태그 생성 몬스터는 다음과 같은 태그를 생성한다. 그리고 다음과 같이 노드를 연결하여 몬스터의 액터 태그와 다른 몬스터의 액터 태그가 같으면 공격을 하지 않고 달라야지만 공격하도록 노드를 연결해준다. 이렇게 하면 몬스터 끼리 공격하지 않고 플레이어만 공격하게 된다.

언리얼 몬스터 스킬 설정

먼저 몬스터 블루프린트에서 skillTime이라는변수를 추가한다 몬스터 블루프린트에서 몬스터의 상태를 변경하기 위해 MonsterState 열거형 변수로가서 변수를 하나 추가한다 이름은 skillAttack 노드를 다음과 같이 연결하면 skillTime이 10초를 넘겼을 때 몬스터의 상태가 skillAttack이 되고 스킬 사용하는 애니메이션을 실행하게 된다. 이 연결한 노드는 하나의 커스텀 이벤트로 만들어 준다(다른 곳에서도 쓰이기 때문) 이 부분인데 공격 애니메이션이 끝나고 몬스터에게 플레이어를 쫓아가던지 아니면 공격하던지 명령을 내려주는 부분에 거리가 플레이어와 가깝다면 방금 생성한 이벤트 노드를 연결해서 공격을 하라고 명령을 내린다. 이제 시간이 지남에 따라 생성한 변수 skill time값을 증..