해결된 질문
작성
·
239
0
안녕하세요 이득우 님, Constructorhelpers 관련해서 질문이 있어서 글을 올렸습니다.
생성자에서 Constructorhelpers 를 사용해 에셋과 오브젝트를 불러오려고 하는데, 에디터가 75퍼센트까지 준비되다가 자꾸 멈춰 버립니다.
아래는 제가 사용한 Constructorhelpers 코드 전문입니다. 코드는 단순하게 제가 만든 캐릭터 베이스에서 메쉬와 애니메이션 클래스를 설정해 주는 것입니다.
주석 처리를 통해 이 부분에서 오류가 나는 것을 확실히 확인 했습니다. 주석으로 처리하고 블루프린트에서 에셋을 설정해주면 잘 되거든요 .. (경로도 맞는 것 여러 번 확인 하였습니다.)
static ConstructorHelpers::FClassFinder<UAnimInstance> AnimInstanceClassRef(TEXT("/Game/FirstPersonArms/Animations/FirstPerson_AnimBP.FirstPerson_AnimBP_C"));
if (AnimInstanceClassRef.Class)
{
GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class);
}
static ConstructorHelpers::FObjectFinder<USkeletalMesh> CharacterMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/FirstPersonArms/Character/Mesh/SK_Mannequin_Arms.SK_Mannequin_Arms'"));
if (CharacterMeshRef.Object)
{
GetMesh()->SetSkeletalMesh(CharacterMeshRef.Object);
}
이럴 때는 어떻게 해야 할지 궁금합니다.
답변 1
0
스켈레탈 메시를 먼저 생성하고, 이를 기반으로 동작하는 애님 인스턴스를 배치하는게 일반적인 수순입니다. 순서가 반대네요.
순서를 바꿔보시고요, 지정한 경로에 애셋이 없거나 애셋에 어떤 문제가 있을 가능성이 높습니다.
이게 문제가 없더라도 해당 경로의 애셋을 더블클릭해 어떤 문제가 있는지, 잘 열리는지는 확인해볼 필요는 있습니다.
우선 주석을 처리하고 실행한 후에, C++ 클래스를 드래그해 액터를 생성한 후 애셋은 에디터에서 수동으로 지정해도 무방하니, 에디터에서 애셋이 유효한지 한번 확인해보시면 좋을 것 같습니다.
안녕하세요, 에셋을 원래 에셋으로 덮어씌우니 실행이 잘 됩니다.
아무래도 1인칭 템플릿에 수정을 가해서 사용하다 보니 충돌이 나나 봅니다.
감사합니다 !