애니메이션
AnimGraph 살펴보기
우측 에셋 브라우저에서 애니메이션 파일 끌어와 노드로 생성
Output Pose 로 애니메이션 확인 가능 / 우측에 루프 체크해야 반복함
상태도 State Machine 만들어서 조건에 따른 애니메이션 실행
상태도 State Machine (*보통 로코모션이라고 이름 지음?)
- 어떤 애니메이션을 수행할지 도식화 하고 애니메이션이 바뀌는 조건을 설정
- 예를 들어, Fall 애니메이션은 캐릭터가 falling 일 때 재생해야하므로
>> 이벤트 그래프에서 try get pawn owner 의 return value 인 폰을 --> cast to BP_Character (run from blueprint update animation event) --> As BP Character ~ Is Falling --> Set as True/False value of IsFalling boolean variable
>> 이 변수를 이용해 상태도에서 Entry > Idle > Fall 연결하고 Idle > Fall 조건을 IsFalling 으로 결정
>> AnimGraph 에서 상태도 아웃풋으로 연결
블렌드 스페이스
- 애니메이션의 중간값
Walk ~ Run
- 속도만 볼 것이므로 가로 축만 사용 - name Speed, 최대 축 값 설정 (500)
- 샘플 포인트를 Speed 축 0일 때로 이동 -> 샘플에 Idle None축 값 0으로
- Walk 샘플포인트로 가져오고 Speed 200으로 / Run 은 Speed 500으로
- 그래프에서 Ctrl 누르면 해당 위치의 애니메이션 프리뷰
--> State Machine 에서 BS 가져와 연결 후 컴파일
상태도 추가
- 애니메이션 그래프에서 Character Movement --> Get Velocity --> Vector2D (z 축은 자동 제외) --> length (벡터의 길이니까 속도를 나타냄) --> Speed 변수 (float) 로 저장
- BS (스테이트) 에서 Speed 변수 입력 연결
에일리어스 alias - 다른 애니메이션으로 연결
Alias ~ Fall ~ Fall Loop
- 스테이트 alias 추가 --> 우측에서 idle 체크 (idle에서 넘어가는 애니메이션이므로) --> fall --> fall loop 연결
- fall --> fall loop 는 둘 사이 규칙 클릭하고 우측 디테일 - 트랜지션에서 "스테이트의 시퀀스 플레이어에 따른 자동 규칙" 하면 fall 종료시 fall loop
- idle --> fall 규칙: is falling 이 True 일 때
Land ~ Idle
- 마찬가지로 자동규칙
Fall/Fall loop ~ Land
- 에일리어스 추가 --> 우측에서 fall & fall loop 체크
- fall/fall loop --> land 규칙 : is falling - not
속도가 빠르면 fall/fall loop ~ idle 바로 가도록 (Land 로 가지 않고)
- 위의 에일리어스 ~ idle
- fall/fall loop --> idle 규칙 : is NOT falling && speed > 100
블렌드 세팅
- 애니메이션 전환 시 크로스페이드
사운드
사운드큐를 통해 걷거나 뛸 때 사운드 재생
- 사운드 큐 생성 - 랜덤 노드로 두 사운드 파일 랜덤 재생
- 애니메이션 - 타임라인 우클릭 - 노티파이 - 특정한 함수 제시 --> 다른 곳에서 애니메이션에 접근해야한다는 문제점 있음
>> 스켈레톤 에셋 - 상단 애님 노티파이 - 우측 애니메이션 노티파이 탭에서 우클릭 - 노티파이 추가 Walk
- 애니메이션에서 해당 프레임에 Walk 노티파이
- ABP - 이벤트그래프 - 우클릭 AnimNotify_Walk
*Play Sound 2D - 음악 재생 / Play Sound at Location - 특정 위치에서 재생하여 거리에 따라 다르게 들림
래그돌
자연스럽게 쓰러지거나 날아가도록 하는 것. 충돌체 설정이 필요해 피직스 에셋으로 구현.
- 피직스 에셋 생성 - 스켈레탈 메시 선택 *각종 설정은 도큐멘테이션 참고
- 캐릭터 BP 에서 쓰러지는 상황에 대한 함수 추가
함수
- 메시 Set Simulate Physics, Simulate 활성화 - 메시 Set Collision Profile Name (충돌할 때 규칙 e.g. 통과한다, 부딪힌다 등) - "Ragdoll" 이라는 이름의 프로파일로 설정 (언리얼에서 제공하는 것)
애니메이션 리타겟
애니메이션 IK Rig / IK Retargetor (IK stands for Inverse Kinematics)
IK Rig - 체인 추가해서 뼈대 체인에 이름 부여
IK Retargetor - 소스와 타깃 체인 매핑해서 애니메이션 익스포트
'언리얼_엔진_게임개발_공부 > 언리얼 블루프린트' 카테고리의 다른 글
[언리얼/블루프린트] 언리얼 AI 행동 구현 - Behavior Tree (0) | 2025.01.06 |
---|---|
[언리얼/블루프린트] 플레이어 캐릭터 클래스 (0) | 2024.12.19 |
[언리얼/블루프린트] 구구단, 슈팅 게임, 가위바위보 로직 구현 (1) | 2024.12.18 |
[언리얼/블루프린트] 레벨 디자인 맛보기 - Sky Atmosphere Component / Raleigh & Mie Scattering / 머티리얼 그래프 (0) | 2024.12.17 |
[언리얼/블루프린트] Enhanced Input 향상된 입력 (2) | 2024.12.16 |