Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

행복한 개구리

Unreal Engine 5로 첫 게임 만들기 14 (Character Setup, Skeletal Mesh, Skeleton, Emissive Color, Blend Overlay, Flipbook, Atlas) 본문

Unreal Engine 5/Tutorial Project: FirstGame

Unreal Engine 5로 첫 게임 만들기 14 (Character Setup, Skeletal Mesh, Skeleton, Emissive Color, Blend Overlay, Flipbook, Atlas)

HappyFrog 2022. 6. 24. 21:41

 

Unreal Engine 5로 첫 게임 만들기 13 (Input, Movement, Branch, If)

Unreal Engine 5로 첫 게임 만들기 12(Event, Cursor, Hit Result, Movement, Player Controller, Unit Direction) Unreal Engine 5로 첫 게임 만들기 10(Blueprint, Actor, GameMode, Pawn, Player Controller,..

bodong2.tistory.com

이전 게시글에서 이어집니다.


 

 

 

Character Setup


움직일 순 있지만 기본모형인 캡슐을 움직이는 것은 재미가 덜합니다.

 

따라서 애니메이팅된 캐릭터를 추가해 보겠습니다.

 

캐릭터를 보면 Skeletal Mesh 컴포넌트가 있습니다.

 

우리는 캡슐 대신 캐릭터를 사용할 것입니다.

 

 

우선 새 폴더를 만들고 Character라고 명명합니다.

 

이 곳에 Skeletal Mesh를 포함하는 FBX를 임포트하겠습니다.

 

StackOBot에서 SKM_Bot을 가져왔습니다.

* 영상에서는 SKM_Antbot입니다.

 

FirstGame으로 에셋을 보내면 UE5가 자동으로 에셋을 인식하여 Skeleton을 요구합니다.

 

이번에는 Skeletal Mesh를 처음 가져왔으므로 Import Mesh에 체크해줍니다.

 

그리고 Create Physics Asset을 체크해제해줍니다.

 

나머지는 그대로 둔 채로 Import합니다.

 

Character 폴더를 보면 에셋이 생성된 것을 확인할 수 있습니다.

 

Material에 대해서는 앞서 여러번 다뤄봤지만 Skeletal MeshSkeleton은 처음입니다.

 

한 번 열어봅시다.

 

Mesh에 생성된 Skeleton에는 bone의 계층구조가 모두 있습니다.

 

Character > Bones > All Hierachy를 선택하면 사진과 같이 뼈대를 볼 수 있습니다.

* Character > Bones > Selected Only를 누르면 돌아옵니다.

 

대부분의 애니메이션 에셋은 스켈레톤 하나를 참조합니다.

 

여기 있는 두 번째 에셋은 Skeletal Mesh입니다.

 

스킨이라고 생각하면 편합니다.

 

따라서 여러 메쉬가 하나의 스켈레톤을 공유할 수 있습니다.

 

좌측에 포함되는 데이터에는 Material 슬롯, LOD 세팅, Post Process Animation, Blueprint 등이 있습니다.

 

지금은 흰색 바탕밖에 보이지 않으니 빠르게 색을 입혀봅시다.

 

앞서 해본 작업들과 다르지 않지만 이번에는 텍스쳐가 많으며 얼굴에도 멋진 요소가 많이 있습니다.

 

T_Bot_Albedo, T_Bot_FaceBG, T_Bot_M_R_AO, T_Bot_Masks, T_Bot_Normal, T_Eyes_Atlas를 가져오겠습니다.

* 영상에서는 T_Antbot_Albedo, T_Antbot_atlas_Eyes, T_Antbot_Face_C, T_Antbot_M_R_AO, T_Antbot_Normal, T_Bot_Masks를 가져옵니다.

 

M_BotBase를 열어주세요.

 

우선 Albedo를 가져와 Base Color에 연결합니다.

 

전 / 후

여전히 회색조이지만 변화가 생겼습니다.

 

이제 색을 추가해봅시다.

 

Blend Overlay 노드를 추가하여 알베도를 연결합니다.

 

Blend OverlayBlend채널에 매개변수를 연결해주고 이것을 Base Color로 설정해줍니다.

 

매개변수의 색깔은 원하는 색으로 정하면 됩니다.

 

저장하고 캐릭터를 보러 갑시다.

 

잘 나왔네요.

 

이제 텍스쳐를 살펴봅시다.

 

T_Bot_M_R_AO의 텍스쳐 편집기를 열어봅시다.

 

우선 텍스쳐 파일의 이름이 생소합니다.

 

저 형식의 이름은 R채널에 Metalness, G채널에 Roughness, B채널에 Ambient Occulusion를 내포한다는 뜻입니다.

 

이것은 압축 형식이 Default일 때 R, G, B 채널을 켜고 끄며 확인해볼 수 있습니다.

 

R / G / B

 

다시 머티리얼 편집기로 돌아와서 이 텍스쳐를 끌어옵니다.

 

이것을 Metallic, Roughness, Ambient Occlusion에 알맞게 연결해줍니다.

 

적용하고 캐릭터를 다시 보러갑시다.

 

팔 부분의 금속 질감이 표현되어 보기 좋아졌습니다.

* 초록색으로는 차이점을 파악하기 쉽지않아 노란색으로 바꿨습니다.

 

다시 머티리얼 편집기로 돌아갑니다.

 

이번엔 T_Masks 텍스쳐를 가져옵니다.

 

이것의 G채널은 주황색 부분과 금속 부분을 분리합니다.

 

이것을 Lerp 노드에 연결하여 사용해보겠습니다.

 

Blend Overlay 노드를 Lerp의 A채널, Vector3 노드를 만들어 회색을 만든 후 B채널에 연결해줍니다.

 

MasksG채널LerpAlpha에 연결해주고 Base Color로 지정해줍니다.

 

변화를 살펴봅시다.

 

아주 멋져졌습니다.

 

이제 마지막으로 NormalEmissive를 추가하며 마무리하겠습니다.

 

먼저 Normal 텍스쳐를 가져와 Normal에 연결합니다.

 

그리고 Mask의 R채널에 아직 사용하지 않은 것이 있습니다.

 

이것을 Multiply노드를 만들어 연결해주고 Multiply노드를 Emissive에 연결해줍니다.

 

그리고 Vector3노드를 만들어 옅은 하늘색을 만듭니다.

 

이것도 곱해줍니다.

 

돌아가서 확인해봅시다.

 

불이 들어옵니다.

 

이제 얼굴을 만들어봅시다.

 

얼굴을 위한 M_BotFace라는 Material이 하나 있습니다. 열어줍시다.

 

그리고 얼굴 텍스쳐인 T_Bot_FaceBG가 있는데 끌고와서 Emissive Color에 연결해줍니다.

 

그러면 얼굴에 텍스쳐가 들어온 것을 확인할 수 있습니다.

 

여기에 눈을 넣어봅시다.

 

우리는 Atlas 텍스쳐가 있습니다.

 

이것은 알파 마스킹으로 여러 표정을 나타내는 텍스쳐이며 4x4 그리드로 되어있습니다.

 

이것도 끌어와 얼굴을 표현해줄 것입니다.

 

원하는 얼굴을 표현하기 위해서는 Alpha채널을 Add노드에 연결해주세요.

 

왜냐하면 알파에 원하는 정보가 저장되어 있기 때문입니다.

 

하지만 색을 제어해야 하니 여기에 색을 곱하겠습니다.

 

Multiply노드를 만들어 옅은 하늘색과 아틀라스의 Alpha를 곱한 값을 Add의 B채널에 연결해줍니다.

 

이제 FlipBook을 사용하여 아틀라스에서 원하는 얼굴을 선택하겠습니다.

 

UVs 출력을 사용할 것입니다.

 

디폴트값과 노드만으로도 표정이 바뀌는 애니메이션을 볼 수 있습니다.

 

하지만 2x2로 표시되니 이것을 고쳐봅시다.

 

Scalar 매개변수를 가져와 값을 4로 변경합니다. (1을 누르고 클릭하면 노드생성)

= 행과 열의 개수가 4개이기 때문입니다.

 

이것을 FlipBook의 열의 수, 행의 수에 연결해주면 원하는 대로 한가지 표정만 나오는 애니메이션이 출력됩니다.

 

하지만 우리는 마구잡이로 나오는 표정이 아닌 고정값을 원합니다.

 

그러니 다른 매개변수를 넣어보겠습니다.

 

스칼라를 하나 더 추가하여 애니메이션 페이즈에 넣어주면 고정된 표정을 볼 수 있습니다.

 

새로 추가한 스칼라의 값은 아틀라스의 몇번째 표정을 표시할 것인지를 정해줍니다.

 

0~1까지의 값을 가지며 (인덱스 / 총 개수)를 입력합니다.

 

예시로 14(15번째 표정) / 16(총 개수)를 스칼라값으로 입력하면 15번째 표정이 출력됩니다.

 

하지만 우리는 가장 무난한 4/16(또는 0/16 또는 8/16)표정을 하겠습니다.

 

적용하고 확인해봅시다.

 

멋진 표정이 생겼습니다.