[Unreal]#13_State Machine, 상태 기계

2022. 8. 29. 23:51· 게임개발/Unreal C++
목차
  1. [Unreal]#13_State Machine, 상태 기계

[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
  1. [Unreal]#13_State Machine, 상태 기계
'게임개발/Unreal C++' 카테고리의 다른 글
  • [Unreal]#15_FText, FString, FName
  • [Unreal]#14_AI controller 생성 및 세팅
  • [Unreal]#12_Aim Offset(Pitch 값 설정), Delta Rotator 활용
  • [Unreal]#11_Blend Pose By Boolean, BlueprintPure
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • 알고리즘
  • 디자인 패턴
  • 우선순위 큐
  • unreal
  • 정렬
  • stl
  • Effective C++
  • 그래프
  • programmers
  • Unreal Blueprint
  • 트리
  • 기술 질문
  • BFS
  • dfs
  • 개발
  • 최단 경로
  • DP
  • set
  • C++
  • BOJ

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Unreal]#13_State Machine, 상태 기계
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.