Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
Tags
- 스파르타코딩클럽
- https://eo-oe.tistory.com/
- https://mynameiskgws.tistory.com/
- https://vetenir.tistory.com/
- 태어난김에 보스까지
- https://hjmag1120.tistory.com/
- https://ji-han.tistory.com/
- 이리5조
Archives
- Today
- Total
info8995 님의 블로그
언리얼 엔진 AI 애니메이션 블루프린트 및 스테이트 머신 구현 본문
배운 점
오늘은 언리얼 엔진에서 AI 캐릭터의 애니메이션을 제어하기 위한 커스텀 애니메이션 블루프린트 설계 및 스테이트 머신 구현 방법을 배웠다. AIController와 연동하여 원하는 타이밍에 원하는 애니메이션이 실행되도록 하는 로직을 구성해보았다.
1️⃣ 애니메이션 리소스 점검
- 제공된 애셋: 0_Anim_Model_SKM, Idle, Running, Punch_Combo, Dance, Death 애니메이션
- 만약 없다면: Mixamo, Marketplace, Animation Starter Pack 등에서 다운로드
2️⃣ 애니메이션 블루프린트 구성 (ABP_FriendCharacter)
● 주요 이벤트 노드
- BlueprintInitializeAnimation: 시작 시 1회 호출 → MovementComponent 참조
- BlueprintUpdateAnimation: 매 Tick마다 호출 → 속도 측정 및 상태 갱신
● 상태 트리거용 변수 및 이벤트
- IsAttack, IsDead, ShallWeDance (bool)
- 각각에 대응하는 Custom Event 생성 → Delay 후 false로 초기화
● Delay 시간 계산
markdown
복사편집
= 애니메이션 프레임 수 / FPS 예: 180프레임 / 30fps → 6초
또는 에디터에서 애니메이션 툴팁으로 확인 가능
3️⃣ 애니메이션 스테이트 머신 설계
● Basic State Machine (기본 이동)
상태애니메이션전환 조건
| Entry | - | Idle (기본) |
| Idle | 1_Fighting_Idle | ShouldRun = true → Run |
| Run | 5_Running | ShouldRun = false → Idle |
● Acting State Machine (행동)
상태애니메이션전환 조건
| State | Idle/Run | IsAttack=true → Attack ShallWeDance=true → Dance IsDead=true → Death |
| Attack | 3_Punch_Combo | IsAttack=false → State + ShallWeDance=true → Dance + IsDead=true → Death |
| Dance | 4_Hip_Hop_Dancing | ShallWeDance=false → State + IsAttack=true → Attack + IsDead=true → Death |
| Death | 2_Death | 전환 없음 |
- Death 상태는 종료 지점이며 다시 전환 불가
- Attack ↔ Dance 전환 조건:
- Attack → Dance: IsAttack = false && ShallWeDance = true
- Dance → Attack: ShallWeDance = false && IsAttack = true
4️⃣ 애니메이션 테스트 (Level Blueprint)
- 키 입력 (예: 키보드 I, O, P 등)으로 각 변수 값 변경
- AI 캐릭터의 애니메이션 상태 전이 정상 작동 여부 확인
✅ 마무리
이 과정을 통해 커스텀 스테이트 머신과 애니메이션 블루프린트의 연계를 이해하고, AIController를 통해 애니메이션을 제어할 수 있는 구조를 설계할 수 있게 되었다. 게임 내 AI가 상황에 맞는 애니메이션을 재생하는 기본 로직을 구성할 수 있는 기반을 마련했다.
'TIL(Today I Learned) > Unreal Engine' 카테고리의 다른 글
| AIController와 BehaviorTree 연동 및 순찰 로직 구현 (0) | 2025.05.08 |
|---|---|
| AI NPC 사운드 디자인과 어테뉴에이션 (0) | 2025.05.01 |
| AI에 애니메이션 시스템 적용하기 (0) | 2025.04.29 |
| 플레이어를 추적하는 AIController 구현 (0) | 2025.04.24 |
| Unreal Engine AI 구현 정리 (0) | 2025.04.22 |