인프런 커뮤니티 질문&답변

차태관님의 프로필 이미지
차태관

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

15강 게임의 완성

Constructorhelpers 크래시 관련 질문

해결된 질문

작성

·

239

0

안녕하세요 이득우 님, Constructorhelpers 관련해서 질문이 있어서 글을 올렸습니다.

생성자에서 Constructorhelpers 를 사용해 에셋과 오브젝트를 불러오려고 하는데, 에디터가 75퍼센트까지 준비되다가 자꾸 멈춰 버립니다.

캡처.JPG

 

아래는 제가 사용한 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인칭 템플릿에 수정을 가해서 사용하다 보니 충돌이 나나 봅니다.
감사합니다 !

차태관님의 프로필 이미지
차태관

작성한 질문수

질문하기