목차 1. ThirdPersonCharacter 템플릿 동작방식 이해하기 2. Custom Character 를 언리얼 ThirdPersonCharacter 템플릿으로 불러오기 2-1. 캐릭터에 애니메이션 넣기 2-3. Blendspace 사용하기 |
#ThirdPersonCharacter 템플릿 동작방식 이해하기
ThirdPersonCharacter BluePrint |
1. 키보드 입력에 따른 캐릭터의 움직임과 회전
ThirdPersonCharacter 는 키보드의 입력에 의해, 움직이고 회전한다.
그렇다면, 이 키보드 입력 값에 따른 움직임과 회전은 어떻게 줄까?
움직임과 회전은 ThirdPersonCharacter Blueprint 로 만들어져 있다.
Movement Input Logic
- 이벤트 ( Input Axis MoveForward ) 가 발생하면, Add Movement input 함수를 실행한다.여기서 Add Movement input 함수는 이벤트에서 발생 된 크기 값 (Scale Value)을 받고, 계산된 방향 값(World Direction, 즉, 캐릭터가 옆을 보고 있는지, 앞을 보는지) 을 받는다.
즉, Scale value 는 캐릭터의 움직임을 뜻하고, World Direction 은 캐릭터의 방향을 뜻한다.
그렇다면, 이벤트는 무엇이고 크기 값은 무엇인가 ?
프로젝트 설정 -> 인풋을 들어가면 이벤트가 미리 만들어져있다.
즉, 예를 들어 W키를 입력하면 이 이벤트가 발생하고, 1.0이라는 크기 값을 보내는 것이다.
2. 키보드 입력에 따른 캐릭터의 점프
위와 마찬가지로, 이벤트가 발생하면 함수를 실행한다.
스페이스 바를 누르면 jump 함수가 실행되고, 떼면 Stop jumping 함수가 실행된다.
* roll pitch yaw : 기존의 X, Y, Z 축은 사용하는 툴마다, 왼손 법칙이냐 오른속 법칙이냐에 따라 기준이 달랐기 때문에, 직관적으로 회전 값만으로 따질 수 있는 기준을 만들자해서 나온 것이다.
#Custom Character 를 언리얼 ThirdPersonCharacter 템플릿으로 불러오기
##Custom 캐릭터에 애니메이션 주기
필요 재료 : 커스텀 캐릭터 ( 믹사모 등 )
캐릭터에 애니메이션을 주고, 움직이기 위해서는 기본적으로 2가지의 Blueprint가 필요하다.
첫번째는, 여러가지 인풋 장치 ( 키보드, 마우스, 게임패드 등등 ) 에 따라 캐릭터를 움직이기 위한 Character BP.
두번째는, 이 캐릭터가 움직일 때 모션을 주기위한 AnimBP.
캐릭터에 애니메이션을 주고 움직이기 위한 CharacterBP, AnimBP |
Character BP에 해당 캐릭터에 애니메이션을 주기 위해 선택 할 수 있는 모드와 애니메이션 클래스가 있다.
AnimBP로 애니메이션을 줄 것 이기 때문에, 블루프린트 모드로 선택하고 해당 캐릭터 애니메이션 BP를 선택해준다.
AnimBP -> AnimGraph 에서 바로 애니메이션을 줄 수 있지만, 걷다가 점프를 하는 경우처럼, 여러 조건과 상태에 맞는 애니메이션을 주어야 하기 때문에 StateMachine 를 통해서 애니메이션을 준다.
##StateMachine
StateMachine은 여러 조건에 맞는 애니메이션을 주는 것이기에 상태와 조건을 설정 해줄 수 있다.
애니메이션 상태 블럭 : 애니메이션 애셋을 넣을 수 있음.
###조건 만들기 위한 데이터 값 받기
캐릭터가 정지 상태에서 걷는 상태로 바뀔 때 애니메이션을 바꿔주어야하기 때문에, 캐릭터의 속력 값을 받고 그에 따른 조건을 만들어주어야 한다.
###조건 만들어 주기
##BlendSpace 로 애니메이션 블렌드하기
위와 같은 방식으로 애니메이션을 줄 수 있지만, 좀 더 자연스러운 애니메이션을 주기 위해 BlendSpace를 사용하면 좋다.
블렌드 스페이스에서 걷는 애니메이션, 뛰는 애니메이션을 적절히 블렌드 시켜준다.
'Game Engine > Unreal Engine 4' 카테고리의 다른 글
[ Unreal Enigne 4 ] 스공_Ver2 (0) | 2021.12.08 |
---|---|
[ Unreal Engine 4 ] Custom Character 를 Custom Template에 넣기 (0) | 2021.12.01 |
[ Unreal Engine 4 ] GameMode (0) | 2021.11.24 |
[ Unreal Engine 4 ] Sound (0) | 2021.11.17 |
[ Unreal Engine 4 ] UI_User Interface (0) | 2021.11.17 |