본문 바로가기

인생언리얼TPS

3.1-3 플레이어 메시 적용

BP_TPSPlayer를 열어보면 4개의 컴포넌트가 이미 포함되어 있습니다. 

Capsule Component : 콜리전 담당

Arrow : 방향을 나타내는 화살표

Mesh : 외관을 표시하는 메시

Character Movement : 이동과 물리시뮬레이션을 담당

ThirdPerson캐릭터 불러와서 적용시키기

컨텐트드로워 +Add후 다음과 같이 ThirdPerson

AddtoProject를 누르면 블루프린트만 임포트됩니다.  프로젝트만들때 선택하면 C++클래스까지 포함됩니다.

이제 Mesh카테고리에서 Skeletal Mesh Asset을 클릭해서 SK_Mannequin을 선택할수 있습니다.

선택후 뷰포트에는 인형이 보이는데 떠 있고 화살표 방향을 보고 있지 않습니다. 트랜스폼을 Z로케이션 로테이션을 -90으로 변경해 맞추어 줍니다.
스켈레톤메시 설정하기

언리얼은 C++클래스를 컴파일하면 UClass가 먼저 만들어지고 언리얼에디터가 실행하면 생성자코드를 실행하여 클래스기본객체 CDO인스턴스를 생성합니다.

https://blog.naver.com/jokorat/222835529448

 

[Unreal] UCLASS, 언리얼 오브젝트

1. 기본포맷 ClassName.generated.h : 언리얼 헤더 툴(Unreal Header Tool:UHT), 모든 #include에...

blog.naver.com

 

C++코드에서 메시 불러오기

블루프린트 메시 설정의 폴더를 눌러보면 현재 파일이 있는 폴더가 열린다. 파랗게 선택되어 있는 메시를 Ctrl-C해서 코드에서 사용하다. 예제와 같이 좀 정리해야한다 아니면 ' '  작은 다옴표 안에만 사용한다.

 

#include "TPSPlayer.h"
#include "TPSProject.h"

// Sets default values
ATPSPlayer::ATPSPlayer()
{
 	// 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;
	PRINT_LOG(TEXT("%s"), TEXT("TPSPlayer Loading"));
	ConstructorHelpers::FObjectFinder<USkeletalMesh> tempMesh(TEXT("SkeletalMesh'/Game/Characters/Mannequins/Meshes/SKM_Manny.SKM_Manny'"));
	if (tempMesh.Succeeded()) {
		GetMesh()->SetSkeletalMesh(tempMesh.Object);
		GetMesh()->SetRelativeLocationAndRotation(FVector(0, 0, -90), FRotator(0, -90, 0));
	}
}