플레이어 캐릭터 만들기

 

오늘 발표회에서 재밌는 캐릭터 에셋을 알게되서 바로 적용해볼려고 한다.

 

일단 관리 및 작업이 원활하게 하기 위해 카테고리에 맞는 폴더들을 생성.

 

일단 Chapter02 > BluePrints > Character 폴더에 들어가 Content Drawer창에 마우스를 갖다대고,

우클릭을 하면 다음과 같은 창이 뜨게 된다.

 

여기서 BluePrints Class를 선택.

 

 

여기서 플레이어 캐릭터를 만들거기 때문에, 평소에 쓰던 Actor가 아닌 Character를 선택.

 

 

캐릭터 BP를 하나 만들고 BP_Character라고 이름을 붙였다.

(BP는 참고로 블루프린트의 약자이다.)
그리고 이 블루프린트를 더블클릭하면 이렇게 생긴 창이 열림.

 

 

그 중에서도 좌측 상단에 있는 Component 창을 보면,

 

 

이 3개의 Componenet들이 기본으로 들어가 있음.

 

 

뷰포트에는 이렇게만 존재하는데,

대충 Component 창에 있는 단어랑 비교해 보면 뭐가 뭔지 바로 이해가 됨.

 

일단, Capsule Component는 캡슐처럼 생긴 저 빨간줄(콜리전을 나타냄)이고,

Arrow Component는 누가봐도 저 푸른색 화살표를 나타내고 있음.

 

근데 아무리 봐도 뷰포트에는 저 2개 말고 없는데 그럼 Mesh는 어디있을까? 싶었음.

 

 

그래서 Mesh를 클릭해보니 뷰포트에 이런게 뜨네?

 

즉, 기본으로 주어진 Mesh는 형태가 있는 것이 아닌, 이후, 개발자가 추가할 Mesh가 들어갈 공간을 나타내고 있던 것.

 

Mesh를 눌러보니까 Skeletal Mesh Component라고 되어 있었음.
알고 보니 이 Mesh는 우리가 평소에 쓰던 Static Mesh랑은 완전히 다른 종류라던데.

 

Skeletal Mesh는 이름 그대로 ‘뼈(Skeleton)’를 가지고 있는 Mesh라서
캐릭터가 걷고 뛰고 공격하고 이런 애니메이션들이 가능하다고 함.

 

즉, 뭔가 “움직이는 오브젝트”를 만들 때 사용하는 Mesh라는 개념.

 

반대로 Static Mesh는 그냥 고정된 형태의 3D 모델이라서
건물, 상자, 의자 같은 움직이지 않는 오브젝트에 쓰임.
Static Mesh에는 뼈대가 없기 때문에 애니메이션을 넣을 수 없음.

 

그럼 예를 들어, 상자에 상호작용을 하면 상자 뚜껑이 열리는 애니메이션이 재생되고 있으면,

이 친구는 Static Mesh가 아닌 Skeletal Mesh를 사용한건가?


아무튼 캐릭터 BP에는 Static Mesh가 아니라
무조건 Skeletal Mesh가 들어간다는 걸 확실히 알게 됨.

 


<Skeletal Mesh>

이후부터는 그냥 내가 궁금해서 찾아본 것이다.

 

Skeletal Mesh는 쉽게 말해서 인체를 지탱하는 '뼈'와 유사하다.

Static Mesh는 그저 존재할 뿐인 '사물'과 유사하다.

 

Skeletal Mesh는 Static Mesh로는 불가능한 움직임이 가능해서

사람의 움직임 혹은 로봇, 동물의 움직임을 묘사하고 표현하는게 가능하다.

 

근데, '뼈대'도 결국에는 "무수히 많은 작은 뼈들의 집합"이라고 말할 수 있지 않나?

무수히 많은 작은 뼈(Static Mesh) + "관절, 근육"으로 인해 불가능한 움직임을 제외한 모든 행동 가능.

이거 그냥 무수히 많은 Static Mesh가 합쳐지고, 거기서 제한만 걸어진 Static Mesh라고 불러도 되지 않을까?

 

...결과로는 비슷하긴 한데 엄연히 다른 정의라고 한다.

 

Skeletal Mesh가 "Static Mesh 여러 개 + 연결 정보(본/관절)"로 이루어진 구조라는 비유는 맞는데,

그렇다고 Skeletal Mesh가 Static Mesh의 한 종류는 아니라고 한다.

 

Skeletal Mesh의 핵심은 "복잡한 움직임이 가능한 구조"를 말한다.

또한 나는 '뼈대'를 이루는 '뼈'들을 Static Mesh로 비유했는데, 엄밀히 말하면 

 

Static Mesh는 '뼈'가 아닌 '피부'라고 한다.

나는 Static Mesh를 '단순한 구조'로 생각하고 있었는데,

알고보니 '단순한 구조'가 아닌 그저 형태를 의미하고 있었다.

 

튜터님들이 말하던 Component가 없는 Static Mesh는 껍데기라고 말하는 이유가 이것이지 않을까 추측한다.

 

이걸 깨닫고 보니, 생각나는 적절한 비유가 하나 있더라.

 

이거는 판타지 장르를 좋아하는 사람들은 알고 있을텐데.

 

판타지 세계관에서 나오는 하급 몬스터중에서 "스켈레톤"이라는 몬스터가 있다.

 

그 친구들은 뼈와 관절만 남은 시체인데, 근육과 피부가 없어도 잘 움직이더라.

마치 생전의 움직임을 유사하게 따라하던데.

 

근데 생각해보니 피부로만 이루어진 몬스터는 없었어...

왜냐하면 그것은 있다고 해도 스스로 움직일 수 없을테니까...

 

딱 그거지 않을까 싶은 감이 왔는데.

 

Skeletal Mesh (스켈레톤)은 스스로 움직일 수 있는 친구.

Static Mesh(피부)는 스스로 움직일 수 없는 친구.

 


아무튼 다시 캐릭터 만들기로 돌아와서.

 

이제는 Mesh에 내가 사용하고자 하는 Skeletal Mesh를 선택하여 집어넣으면 된다.

 

방법은 간단하다. Component에 있는 Mesh를 클리하면 우측 화면에

 

이런 화면이 뜰 것이다.

이게 Detail화면이다.

 

여기서 Mesh > Skeletal Mesh Asset이 있는 장소를 찾아서 None을 클릭하면 

 

 

이런 식으로 내가 가지고 있는 Skeletal Mesh를 둘러볼 수 있다.

여기서 내가 사용하고 싶은 Skeletal Mesh를 선택한다.

 

 

일단 Mesh의 방향을 화살표가 바라보는 방향으로 돌리고, Mesh의 크기에 맞게 캡슐의 크기를 조정한다.

 

Capsule의 크기는

 

 

Transform이 아닌 Shape에 있는 Capsule Half Height, Capsule Radius를 통해 설정한다.

 

Line Thickness는 뷰포트에 보여지는 캡슐의 범위를 보여주는 선의 두께를 나타내므로, 굳이 건들지는 않는다.

 

 

아무튼 설정은 이걸로 마무리하고,

 

이제 캐릭터의 형태가 생성됐으면, 그 형태를 볼 수 있는 눈을 달아야되지 않을까?

 

따라서 이제 우리가 모니터 화면으로 볼 수 있는 기능은 Camera를 추가한다.

 

어디에?

 

바로 Spring Arm 컴포넌트에.

 

이게 무슨 기능이냐면, 쉽게 말해서 스프링 처럼 늘어났다가 줄어들기도 하는 화살표이다.

 

이걸 쓰는 이유는 3인칭 FPS게임을 한 유저라면 어느 정도 추측이 가능할거다.

 

예를 들어, 만약 유저가 바라보는 시점을 비추는 카메라와 플레이어 아바타 사이에 장애물이 생성되면,

카메라는 어떻게 움직이는게 좋을까?

 

카메라가 자동으로 장애물을 피해서 다른 각도를 비추면 좋겠지만,

 

....아니, 가능한가?

 

씁... 데이터 학습 시키면 될 것 같은데... 이건 공부 좀 더해봐야 할 것 같은데.

 

아무튼 오늘은 일단 내가 배운 내용을 그대로 따라해서 새로운 플레이어 캐릭터를 생성하는게 목적이니까

그냥 이대로 진행해야겠다.

 

아무튼 Spring Arm 컴포넌트를 사용한 이유는 카메라와 캐릭터 사이의 장애물이 생겼을 때,

Spring Arm 은 카메라가 화살표 방향으로 길이를 조절해, 플레이어 캐릭터를 볼 수 있도록 하는 성질을 가지고 있기 때문.

 

그러니까 이제  Spring Arm 컴포넌트에 Camera 컴포넌트를 추가하고.

 

카메라와 플레이어 캐릭터 사이의 길이는 자유롭게.

 

 

이제 컴파일 + 저장하고 시작을 눌러보면 저 카메라가 이제 캐릭터를 비추고 있을거야.

 

 

... 안되네?

...넌 또 뭐니...

 

...

...

...

 

 

...이유를 찾았다.

 

 

이건 이전에 이 프로젝트에서 다운 받았던 에셋 파일인데,

캐릭터 만들기 귀찮아서 그냥 에셋에 있는 기본 캐릭터를 쓰고 그대로 뒀었는데

이 더미 파일이 먼저 다운로드 받은 상태인지라 언리얼에서는 이 파일을 기본 베이스로 하고 사용중이었던것...

 

일단 이 더미 파일을 지우는 것보다 근본적인 해결책을 꺼내들기로 함.

 

 

아까 캐릭터 만들었던 창에서 똑같이 진행하다가 이번에는 Character이 아닌 

Game Mode Base를 선택해 생성.

 

이름은 대충 BP_GameMode로 설정하고...

 

우측 화면에서 World Setting > GameMode > GameMode Override에서 값을 

GameMode에서 BP_GameMode로 변경

 

 

그럼 다음 화면처럼 아래 설정 값들이 활성화가 될거임.

BP_GameMode를 생성한 이유. 이게 없으면 저 변수들이 비활성화 되어 있어서 값을 변경할 수가 없음.

 

아무튼 Default Pawn Class를 BP_Character로 변경하면 이제 게임을 실행하면 내가 원하는 캐릭터로 시작될거임.

 

혹은 우측 World Setting말고 좌측 상단 메인 툴바에서 Edit을 들어가면

 

이런 창이 뜰거임.

여기서 Project Settings...을 클릭하면 아래와 같은 화면이 나올거고.\

 

여기서  Project > Maps & Modes으로 들어가면 다음과 같은 화면이 뜸.

 

위 화면에서 Default GameMode와 Default Pawn Class를 아래와 같이 변경하면

이제 내가 원하는 캐릭터를 사용할 수 있음

 

 

이제 내가 원하던 화면이 보이네.

이제 여기서 블루 포인트를 활용해서 이동로직이랑 애니메이션 좀 넣으면 내가 원하는 캐릭터 만들기 완성이야.

그건 내일 해야지...

'[Unreal엔진] BP > 미정' 카테고리의 다른 글

25.12.02_공부  (0) 2025.12.02
25.11.28  (0) 2025.11.28
서버 구조와 에디터 기능 정리 노트  (0) 2025.11.13