4.19버전 이후부터 애님블루프린트를 적용하는 방법이 살짝 달라졌다고 하는데, 그 이유는 나도 잘 모르겠다… 오히려 틀린 부분일 수 있지만 일단 오늘 하루종일 애님인스턴스가 왜 안받아와지는지에 대해서 씨름했기 때문에 정리해둔다.
생성자에서 아래와 같이 코드를 작성한 후
//Animation Setup
GetMesh()->SetAnimationMode(EAnimationMode::AnimationBlueprint);
static ConstructorHelpers::FObjectFinder<UAnimBlueprint> AnimBP(TEXT("AnimBlueprint'/Game/Character/Animations/Blueprint/AnimBP_Character.AnimBP_Character'"));
if (AnimBP.Succeeded())
{
GetMesh()->SetAnimInstanceClass(AnimBP.Object->GetAnimBlueprintGeneratedClass());
}
생성자에서는 애님인스턴스가 설정되지 않는다. 생성자 타이밍에선 에디터로 아직 가기 전이라 블루프린트에 대한 권한이 없다고 한다.
https://answers.unrealengine.com/questions/279928/why-does-getmesh-getaniminstance-returns-null.html
어쨋든 나는 PostInitializeComponents 함수에서 애님인스턴스를 적용했다.
void AGlowingGenocideCharacter::PostInitializeComponents()
{
Super::PostInitializeComponents();
animInstance = Cast<UGlowingGenocideAnimInstance>(GetMesh()->GetAnimInstance());
}
이딴걸로 2시간을 까먹어버렸다… 하… 내인생..ㅠ
Comments