본 내용은 Rookiss의 언리얼 엔진4 입문 (C++ 기반) 강의를 토대로 작성하였습니다.
강의 보러가기: https://inf.run/G6ma
1. 애니메이션 기초
- 애니메이션 일반 블루프린트에서 적용
BP_MyCharacter-> Mesh-> Animation -> Use Animation Asset
- Anim Instance : 애니메이션은 별도 클래스에서 관리해주자!
Animation -> Use Animation Blueprint
* 새 클래스 만들기
C++ - 모든 클래스 표시 - AnimInstance - 원하는 클래스 이름 - 클래스 생성
BP - 오른쪽 클릭 - 애니메이션 - 애니메이션 블루프린트 - 부모클래스: C++에서 만든 클래스 이름 - 타겟 스캘레톤 선택 - 확인 - 이름: ex) ABP_MyAnim
* ABP 들어가서 살펴보기
* 코드로 와서 변수(speed) 조작하기
만들어준 AnimInstance에서 NativeUpdateAnimation(float DeltaSecond) 함수 만들어준다.
매 프레임마다 한번 씩 들어옴
언리얼 호출 순서: 입력 시스템 - 컨텐츠 로직 - AnimInstance 업데이트 로직
2. 스테이트 머신
- 애님 그래프로 애니메이션 처리를 하는 것에 대한 문제점
애니메이션이 많아지면? if else 대잔치!
- 방법은 상태를 나누는 것!
State를 여러개 추가
ex. Ground, Jumping..
- 특정 상태에서 변수와 함수를 통해 특정 기능을 수행하고 싶다.
ABP에서 쓰는 변수/ 함수들은 MyAnimInstance.h , .cpp에서 관리
ex. float Speed, bool IsFalling, void isFalling();
- InputComponent가 필요하다면 대상 스크립트에 바인딩 해주자.
ABP에서 쓰는 변수들은 MyAnimInstance.h , .cpp에서 관리
- 변수를 만들어줬으면 조건을 적용 시켜주자!
3. 델리게이트
- 어떤 행동이 끝났을 때 무언가를 호출해주고 싶을 때
어떻게 가져오지?AnimInstance를 가져오고 불러준다.이후 함수를 만드는데 함수 형식은 멋대로 쓸 수 있는 건 아니고 정해져있음.
델리게이트의 장점?
매 프레임마다 상태를 체크할 필요 없이 몽타주가 끝나면 알아서 호출되어서 작동
4. 애니메이션 노티파이
- 애님 그래프로 애니메이션 처리를 하는 것에 대한 문제점
애니메이션이 많아지면? if else 대잔치!
5. 블렌드 스페이스
- 애니메이션을 섞는 것
애니메이션 - 블랜드 스페이스
- 가로, 세로 축을 설정해준다(강의예시)
Horizontal, Vertical의 수치에 따라 뭔가를 바꿔주고 싶다.
순서
1. MyCharacter(움직임의 주체)에서 정보를 세팅한 후
2. 그 정보를 AnimInstance에서(Animation과 관련된 모든 것을 관리하는 곳) 꺼내서 관리한다.
MyCharacter
MyAnimInstance
'Unreal' 카테고리의 다른 글
[Unreal] Chaos Destruction - Field (0) | 2023.09.30 |
---|---|
[Unreal] 다른 클래스 Cast 하기 (0) | 2023.03.13 |
[UE5- 언리얼 웨비나 1주차] 게임 제작의 시작 (0) | 2022.08.15 |
[언리얼] 클래스, 기본 이벤트, 변수와 UPROPERTY (0) | 2022.08.11 |
[언리얼] 액터의 설계 (0) | 2022.08.09 |
댓글