카메라 셰이크(흔들기)
LegacyCameraShake를 하나 생성한다.
Oscillation Duration : CameraShake 기간
Rot Oscillation : 회전 . 회전은 끼치는 영향이 크므로 사용을 자제하자.
Loc Oscillation : 위치 변환.
Fov Oscillation : 화각
Anim Shake : 그래프를 통한 흔들기
Amplitude : 강도 (진폭)
Frequency : 속도 (주기)
카메라 셰이크는 각 스킬, 상황 등에 따라 각각 만들어서 관리하는 편이 좋다.
UMG
위젯 변경시에 RemoveFromParent등으로 인한 오류가 발생하기 쉬우므로 주의하자.
프로젝트명.Build.cs에 "UMG"를 추가해주고 주석을 풀어주거나 추가한다.
PrivateDependencyModuleNames.AddRange(new string[] {"Slate", "SlateCore"});
그리고 Generate Visual studio project files 를 통해 플러그인이 추가된다.
헤더파일에 "Blueprint/UserWidget.h"를 추가한다.
에디터 상에서 Widget Blueprint를 추가한 후, 경로를 넣어준다.
경로 끝에 _C를 주의하자.
위젯은 플레이어가 조준할때 필요하므로 이때 생성 및 AddToViewport()를 해준다.
각 무기별로 총알을 설정해주자.
이것도 리스트나 맵등으로 관리해주면 좋긴하다.
위젯에서 새로운 무기가 추가될 때 마다 변수를 설정해줘야 하기 때문에 이를 대신한 방법으로 CurrentBulletCount를 Text와 연결해서 보여준다.
따라서 CurrentBulletCount의 값이 무기에 따라 바뀌도록 해야 한다.
현재 게임은 조준 시에 값이 전환되도록 하고 있다.
경우에 따라서는 장비 아이템을 바꿈과 동시에 표기를 바꿀 수도 있다.
조준을 해제할 때는 RemoveFromViewport로 위젯을 해제한다.
발사 시에는 총알이 0개일 경우에 대한 애니메이션이나 소리등도 추가할 것을 염두해두고, 현재의 총알 갯수를 빼주고 이를 다시 대입해준다.