게임 개발 (언리얼 엔진)

UE4 게임 개발 EscapeGame - 11 : 좀비 애셋 추가

종황이 2020. 12. 15. 22:08

mixamo.com 에서 무료 에셋 다운로드 할 수 있습니다.

애니메이션을 다운로드할 때, Without Skin을 선택하면 불필요한 중복(머티리얼, 본 등) 다운로드를 막을 수 있습니다.

.fbx 파일을 다운로드 받고, 프로젝트에 임포트해서 사용하면 됩니다.

저는 Idle, Patrol, Walk 3가지 애니메이션에 맞는 동작을 찾아서 다운로드했습니다.

플레이어와 마찬가지로, 생성자에서 ConstructorHelpers 함수를 활용해서 애셋 지정해서 사용하면됩니다.

// Zombie.cpp

#include "Zombie.h"

AZombie::AZombie()
{
 	// Set this character to call Tick() every frame.  You can turn this off to improve performance if you don't need it.
	PrimaryActorTick.bCanEverTick = true;

	static ConstructorHelpers::FObjectFinder<USkeletalMesh> MeshAsset(TEXT("SkeletalMesh'/Game/GameContent/Zombie/Zombie/Zombie.Zombie'"));

	if (MeshAsset.Succeeded())
	{
		GetMesh()->SetSkeletalMesh(MeshAsset.Object);
	}

	static ConstructorHelpers::FClassFinder<UZombieAnim> AnimAsset(TEXT("AnimBlueprint'/Game/GameContent/Zombie/BPZombieAnim.BPZombieAnim_C'"));

	if (AnimAsset.Succeeded())
	{
		GetMesh()->SetAnimInstanceClass(AnimAsset.Class);
	}

	GetMesh()->SetRelativeLocation(FVector(0.f, 0.f, -70.f));
	GetMesh()->SetRelativeRotation(FRotator(0.f, -90.f, 0.f));

	GetCapsuleComponent()->SetCollisionProfileName(TEXT("Zombie"));
	GetMesh()->SetCollisionProfileName(TEXT("Zombie"));
}