728x90
반응형
Anim Instance의 클래스
게임에서 애니메이션은 빠질 수 없는 요소이다. 캐릭터의 애니메이션이 적은 소규모 플래쉬 게임이라면 코드상(Mesh)에서 애니메이션을 관리를 해도 상관없지만, 일반적으로 애니메이션을 코드상에서 관리한다는 것은 다소 애매해 질 수 있다. 예를 들면 특정 UI가 켜져 있을때 발생하는 애니메이션이거나 전투와 관련된 애니메이션등이 같은 공간에 뒤섞여진다면 관리하는것이 매우 까다로울 것이다. 이러한 점들 때문에 언리얼에서는 Anim Instance라는 클래스에서 애니메이션을 관리하게 된다.
Anim Instace 생성
class TESTUREAL_API UMyAnimInstance2 : public UAnimInstance
{
GENERATED_BODY()
private:
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Pawn, Meta = (AllowPrivateAccess = true))
float Speed;
};
캐릭터에는 기본적으로 이동할때의 속도를 설정해준다.
Animation BluePrint생성
상단창에는 상속받을 Anim Instance를 하단창에는 적용시킬 Skeleton을 선택한다.
Animation Bluprint 활용
이러한 식으로 간편하게 애니메이션을 연결할수 있다.
단, 이럴 경우 캐릭터가 움직여도 Speed는 아무런 영향을 받지 않기 때문에 Jog애니메이션은 작동하지 않기 때문에 Anim instance를 수정해주어야한다.
virtual void NativeUpdateAnimation(float DeltaSeconds) override;
void UMyAnimInstance2::NativeUpdateAnimation(float DeltaSeconds)
{
Super::NativeUpdateAnimation(DeltaSeconds);
auto pawn = TryGetPawnOwner();
if (IsValid(pawn))
{
Speed = pawn->GetVelocity().Size();
}
}
위와 같은 코드를 입력해주면 캐릭터클래스에서 Speed를 매 프레임마다 Anim Instance로 가져온다.
728x90
반응형
'UE4 > 애니메이션' 카테고리의 다른 글
Ureal)애니메이션 노티파이 (0) | 2022.01.16 |
---|---|
Ureal)애니메이션 델리게이트 (0) | 2022.01.16 |
Ureal)애니메이션 몽타주 (0) | 2022.01.15 |
Ureal)애니메이션 스테이트 머신 (0) | 2022.01.15 |
댓글