[Unreal]#13_State Machine, 상태 기계
Unreal 개발 중 "Chracter Animation"에 대해 알아보겠습니다.
"Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다.
State Machine
1. 상태 기계 생성
1. Animation Blueprint 에디터 창에서 Anim Graph 위에 새로운 State Machine을 생성합니다.
2. Alive or Dead?
1. 새로 추가한 State Machine을 "Death"로 명명합니다.
2. "Death" 상태 기계 내부에 "Alive"와 "Dead" 상태를 각각 추가해줍니다.
3. "Alive" 상태와 "Dead" 상태를 서로 연결합니다.
* 화살표는 "전이"를 의미하며, 각 상태로 전이하기 위한 "전이 조건"이 필요합니다.
3. 전이 조건
1. 화살표를 눌러 미리 정의한 "Death" 변수를 통해 각 전이 조건을 작성합니다.
2. Dead ---> Alive는 "Death" 값이 False일 때 전이합니다.
3. Alive ---> Dead는 "Death" 값이 True일 때 전이합니다.
4. 기본 포즈 관련 상태 추가
1. 새로운 State Machine을 생성하고, "Locomotion"이라 명명합니다.
2. 이때 Locomotion은 서 있기, 달리기, 점프 하기 등의 Animation을 관리합니다.
5. Grounded or Airbone?
* Grounded, Jumping, Airbone, 그리고 Falling 상태를 추가해 순서대로 연결합니다.
1. Grounded ---> Jumping 은 "IsAirbone" 변수가 True일 때 전이합니다.
2. Jumping ---> Airbone 은 "Jumping" Animation이 모두 플레이되면 *자연스럽게 전이됩니다.
3. Airbone ---> Falling은 "IsAirbone" 변수가 False일 때 전이합니다.
4. Falling ---> Grounded는 "Jump_Landing" Animation이 모두 플레이되면 *자연스럽게 전이됩니다.
6. 전이 조건 작성
* 전이 조건 작성은 위 "Alive"와 "Dead" 전이 조건을 작성한 것과 일맥상통합니다!
7. 자연스러운 전이?
* Automatic Rule Based?
: 앞서 설명했듯이, "Jumping" 상태에서 "Airbone" 상태로 전이할 때 특별한 전이 조건을 작성하지 않았습니다.
점프 애니메이션이 모두 플레이된 뒤에 자연스럽게 다음 상태로 전이되는 것을 구현하려면, "Automatic Rule
Based" 체크박스를 체크해 주어야 합니다.
8. Event Graph에서 IsAirbone 변수 Setting
1. Try Get Pawn Owner 노드로부터 "형 변환" 노드를 통해 "Character"를 얻어옵니다.
2. IsFalling 노드를 통해 "IsAirbone" 변수를 Setting 합니다.
'게임개발 > Unreal C++' 카테고리의 다른 글
[Unreal]#15_FText, FString, FName (0) | 2022.09.27 |
---|---|
[Unreal]#14_AI controller 생성 및 세팅 (0) | 2022.09.17 |
[Unreal]#12_Aim Offset(Pitch 값 설정), Delta Rotator 활용 (0) | 2022.08.29 |
[Unreal]#11_Blend Pose By Boolean, BlueprintPure (0) | 2022.08.29 |
[Unreal]#10_Damage + Health 구현 (0) | 2022.08.21 |