애니메이션 기초

Skeletal Mesh의 Animation 속성을 활용한다.

ㄴ 애니메이션 블루프린트 클래스와 연결한다.

애니메이션 인스턴스를 활용할 때는 애니메이션 블루프린트라는 별도의 창에서 만들어야 한다.

캐릭터에 애니메이션 관련 코드를 넣는게 아니라 애니메이션 인스턴스에서 캐릭터의 상태를 읽어서 동작을 지정하는 방식을 쓰자

스테이트 머신

애니메이션 상태 관리는 웬만하면 블루프린트를 사용한다.

 

애니메이션 몽타주

애니메이션을 편집해서 또 다른 애니메이션을 만드는 기법

ㄴ 여러가지 애니메이션을 연결하여 하나의 긴 애니메이션을 만들 수 있다.

ㄴ 여러 개의 애니메이션을 섹션으로 구분하여 호출하고 싶은 섹션의 애니메이션을 재생할 수 있다.

스켈레탈 메시 -> 에셋 생성 -> 애님 몽타주

 

델리게이트

어떤 행동이 끝났을때 어떤 기능을 호출하고 싶을 때 사용함

 

DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnMontageEndedMCDelegate, UAnimMontage*, Montage, bool, bInterrupted); // Unreal의 델리게이트 선언 (Montage가 끝날 때 등록된 함수를 호출하는 델리게이트)

...

FOnMontageEndedMCDelegate OnMontageEnded; 

 

void AMyCharacter::BeginPlay()
{
Super::BeginPlay();

AnimInstance = Cast<UMyAnimInstance>(GetMesh()->GetAnimInstance());
AnimInstance->OnMontageEnded.AddDynamic(this, &AMyCharacter::OnAttackMontageEnded);

}

ㄴ 애니메이션 몽타주가 끝날때 호출될 함수(OnAttackMonrageEnded)를 추가한다.

 

애니메이션 노티파이

애니메이션 클립 중간에 노티파이를 설정하여 애니메이션 중 원하는 타이밍에 함수를 호출할 수 있도록 한다.

ㄴ AnimatorInstance 클래스에 AnimNotify_[노티파이 이름]() 의 함수를 정의하면 된다.

ㄴ Montage_JumpToSection 함수를 활용하면 노티파이 이름

 

블렌드 스페이스

가중치에 따라 애니메이션을 섞는다.

ㄴ 캐릭터의 걷기 애니메이션 (상하좌우)를 섞어 블렌드 스페이스를 만들면 플레이어의 움직임을 자연스럽게 만들 수 있다.

'언리얼 5 > 정리' 카테고리의 다른 글

라이팅 설정  (0) 2022.10.05
컨테이너  (0) 2022.09.15
AI Controller & Behavior Tree  (0) 2022.09.14
충돌과 UI  (0) 2022.09.14
Unreal의 기초  (0) 2022.09.12

+ Recent posts