📌 작업 목적
- 애니메이션을 입력 기반이 아니라 Ability 기반으로 구동
- 캐릭터 상태를 GAS가 소유하고, AnimInstance는 그것을 “표현”만 하도록 구조화
- 무기/스킬 확장에 대응 가능한 애니메이션 구조 설계
1️⃣ 설계 핵심 개념
❗ 애니메이션의 주도권을 GAS가 가진다
기존 방식:
입력 → AnimInstance → 상태 변경
GAS 기반:
입력 → Ability 활성화 → GameplayTag 부여 → AnimInstance 반응
즉,
- 애니메이션은 Ability의 결과
- AnimInstance는 태그를 읽어 상태를 갱신하는 구조
2️⃣ 상태 전달 방식
✔ GameplayTag 기반 상태 관리
Ability가 실행되면:
- 공격 Ability → State.Attack
- 조준 Ability → State.Aim
- 재장전 Ability → State.Reload
AnimInstance는 매 프레임 ASC에서 활성 태그를 조회하여:
- Bool 값 세팅
- Layer Weight 조절
- Montage 재생 여부 결정
3️⃣ 공격 애니메이션 처리 방식
✔ 공격은 Ability 내부에서 Montage 실행
AbilityTask_PlayMontageAndWait
핵심 포인트:
- AnimInstance에서 공격을 직접 호출하지 않음
- Ability가 Montage를 실행
- Montage 종료 → Ability 종료
애니메이션과 로직이 완전히 동기화됨
4️⃣ 기본 이동 애니메이션 구조
이동은 Ability가 아님
→ MovementComponent 기반
AnimInstance에서는:
- Speed 계산
- Falling 여부 확인
이건 GAS와 분리
즉,
- 이동 = 캐릭터 상태 기반
- 공격/조준/재장전 = Ability 기반
5️⃣ 레이어 설계 (무기 대응)
핵심 설계:
- Base Layer → 기본 이동
- UpperBody Layer → Ability 기반 애니메이션
- Slot → Ability Montage 전용
무기 교체 시:
- GameplayTag 변경
- AnimInstance에서 무기 타입 확인
- 해당 Layer 활성화
애니메이션을 무기별로 교체하지 않고
Layer로 분리해서 처리
6️⃣ 오늘 설계의 핵심 정리
- 애니메이션 상태는 GAS가 결정
- Ability가 Montage를 실행
- GameplayTag가 상태를 전달
- AnimInstance는 태그를 읽고 표현만 담당
- 무기 대응은 Layer 기반으로 해결
'IT > 언리얼_포트폴리오' 카테고리의 다른 글
| 4일차. IK_FootRig 구현 흐름 문서 (0) | 2026.02.17 |
|---|---|
| 2일차. GAS 입력 바인딩 구조 설계 (GameplayTag 기반 입력 추상화) (0) | 2026.02.15 |
| 1일차. AAA급 액션 RPG를 목표로, 언리얼 5.6 + GAS로 시작 (0) | 2026.02.11 |