지금까지 제작한 기능은
앉기, 달리기 그리고 마우스의 위치에 따른 시점 변화입니다.
먼저, 앉기와 달리기 입니다.
프로젝트 세팅에서 왼쪽 컨트롤 키를 액션 키로 설정해줘야 합니다.
하지만, 처음 설정을 FPS이다 보니 설정이 되어 있었습니다.
이후 캐릭터의 클래스에서 키를 Binding 해줍니다.
저는 아래와 같이 키를 바인딩 시켰습니다.
if문은 두 액션 키가 겹치지 않도록 하기 위함입니다. CharacterMovement에 접근하여 최대 스피드를 조정하였습니다.
애니메이션을 변경하기 위해 애니메이션의 애님 그래프를 이용하였습니다.
각 상태를 생성하고 상태를 오가는 불 변수에 따라 애니메이션이 변경됩니다.
AnimInstance 클래스를 상속하여 Swap_Anim 클래스를 생성하였고,
NativeUpdateAnimation 메소드를 가상함수로 상속받아 사용했습니다.
캐릭터의 방향 값을 계산하기 위해 캐릭터의 속도와 방향을
float CalculateDirection(const FVector & Velocity, const FRotator & BaseRotation)
의 매개변수로 입력하여 Direction에 저장하였습니다.
속도는 벡터의 크기를 나타내는 Size함수를 이용하여 Speed에 저장하였습니다.
계산한 변수들은 다음과 같이 세팅 하였습니다. 달리기 애니메이션은 Sprint_BS를 만들어 Crouch_BS와 같이 설정하였습니다.
아래 사진은 애니메이션 변경을 위해 애님 그래프의 Transition에서 설정했습니다.
다음은 캐릭터의 마우스에 따른 시점입니다.
다른 애니메이션과 같이 Swat_Anim 클래스의 NativeUpdateAnimation에서 작성하였습니다.
현재 마우스의 위치 값을 받는 GetControlRotation을 이용하여 최종적으로 AimDirection 변수에 반환하였습니다.
반환한 AimDirection 값은 애님 그래프에서
이렇게 설정하였습니다. 본 트랜스 폼은 현재 설정된 Spine,Spine1,Spine2의 방향 값을 바꿔줌으로써
시점에 따라 애니메이션의 방향을 변경하도록 해줍니다.
여기까지 진행하였는데요
강좌에는 없지만 FPS 매니아로써 좌,우 심지어 뒤로도 달릴수 있는게 맘에 안드는군요.
다음에는 오로지 대각선과 전방을 향해 움직일 때만 달릴 수 있도록 추가해보겠습니다.
감사합니다.
참고 : https://www.youtube.com/playlist?list=PLL0cLF8gjBprG6487lxqSq-aEo6ZXLDLg
Git : https://github.com/Titane22/FPS-Feature
'GameDev > Unreal' 카테고리의 다른 글
FPS 기능 만들기 프로젝트 #5 (0) | 2018.08.21 |
---|---|
Operation Indigo (0) | 2018.08.14 |
FPS 기능 만들기 프로젝트 #4 (0) | 2018.08.14 |
FPS 기능 만들기 프로젝트 #3 (0) | 2018.08.09 |
FPS 기능 만들기 프로젝트 #1 (0) | 2018.08.01 |