본문 바로가기
메타버스기반게임콘텐츠기획/그날의 강의

(12-5) 언리얼 엔진 - 횡스크롤 게임 만들기 (유니티 에셋 활용, 캐릭터 세팅)

by Queenut 2022. 1. 14.

 * 3D 횡스크롤 게임. 마리오 게임 처럼 코인을 먹고, 물에 닿으면 몸의 색이 변하고.. 등등

 

 

 * 유니티 (캐릭터) 에셋 활용하기

유니티에 에셋을 임포트하면 폴더가 생긴다.

이것저것 여러개 생기는데 꼽아보면

 

애니메이션, 모델스(메쉬), 텍스쳐 폴더만 남기고 전부 삭제한다.

왜냐하면 에니메이션 컨트롤러, 머티리얼, 프리팹, 씬, 스크립트, 셰이더 등은 유니티 엔진에 종속된 부분이기 때문이다.

 

그리고 중요한,

메타 파일이라는 것이 있다.

거의 모든 폴더에 있는데 이 또한 유니티 엔진에 활용되기 위한 파일이므로 그냥 삭제!

메타파일은 삭제해도 다시 엔진을 열면 깔리니까 너무 무서워하지 말자.

 

 

 

 * 임포트 하기

 

1. 캐릭터 임포트

언리얼 엔진으로 돌아가서, 원래 있던 다른 에셋과 구분하기 위해 폴더를 만들고 그곳에 임포트. 그냥 드래그해 놓으면 된다.

 

캐릭터를 임포트할 경우, 주의할 점이 있다.

캐릭터에는 기본적으로 애니메이션이 있다. 애니메이션은 신체의 좌표가 될 리깅정보를 필요로 하는데 그것은 대체로 스켈레톤 이라는 이름의 파일에 담겨있다.

 

일단 캐릭터 메쉬 임포트는 안에 스켈레톤 정보도 같이 있기 때문에 체크하고 붙여야 한다.

그리고 머티리얼을 새롭게 연결하고 싶다면 Material → Material Import Method 를 Do not~ 으로 한다.

임포트 설정
결과

 

 

2. 애니메이션 임포트

애니메이션은 메쉬를 가져올 필요가 없으니 Import Mesh를 체크해제하는데, 그러면 '어떤 스켈레톤을 쓸 것인지' 입력해야 한다. 위 캐릭터에서 가져온 스켈레톤을 입력하자.

 

Animation → Animation Length : FBX 안에서 설정해놓은 애니메이션을 처음부터 끝까지 가져오도록 설정되어 있는 것.

임포트 설정2
결과2

 

 

3. 텍스쳐

텍스쳐는 별다른 임포트 설정 없이 들어간다.

 

유니티는 밀리미터(mm), 언리얼은 센티미터(cm)를 쓰기 때문에 크기가 조금 다를 수 있다.

 

 

 

 

 * 머티리얼 만들기

Content Browser 우클릭 → Materials & Textures → Material

Material : 원형이 되는 머티리얼. 메쉬가 우리 눈에 어떤 모습으로 보일지에 대한 정보라면 이 머티리얼은 표면에 닿았을 때 재질이 어떤 식으로 빛을 반사하거나 흡수해 부드럽게 보인다거나.. 그런 계산법을 만드는 것.

Material Instance : 위 원형에서 파생되는, 보다 구체적으로 만드는 머티리얼.

 

쉽게 말해...

메쉬는 그냥 넓적하고 얇은 직육면체라면

머티리얼은 이 메쉬를 유리로 만들어주고,

머티리얼 인스턴스는 이 유리가 차창 유리인지, 컵 유리인지 구체적으로 설정해 주는 것.

 

 

때문에 원형 부터 만들어야 한다.

머티리얼을 만들고 들어가면 아래같은 창이 덩그러니 있다. 여기에 이것 저것 연결해줘야 표면이 나타난다.

① 디테일: 속성. 컴포넌트가 있는 부분.

② 파라미터 디폴트: 디테일의 옆에, 연결한 파라미터 값들의 기본값.

③ 팔레트: 머티리얼에 연결할 수 있는 다양한 요소들을 검색하고 찾는 부분. 끌어다 놓으면 된다.

④ Apply: 블루프린트의 컴파일과 같은 역할.

 

 

 

Base Color는 기본값이다. 기본적으로 해당 머티리얼이 사용할 색이 나타나게 연결한다(Texture Sample).

 

그럼 밑에 노드는 무엇이냐? 우리가 맨 처음, 이 게임 속 캐릭터가 물에 빠지면 색이 변한다고 말했다. 그걸 위해서는 기본값에 추가되는 색이 있어야 한다. 그걸 위해서 Constant4Vector를 넣어주고, 둘을 곱하기(*)로 이어준다.

그리고 둘을 각각 변수(파라미터)로 만들어주면 이후에 조정이 가능하다.

 

참고로 Vector4는 R, G, B, A(알파) 이다.

 

 

* 머티리얼 인스턴스 만들기

머티리얼과는 다른 창.

아무 것도 없는 General에 상속받을 부모Parent를 위에 만든 머티리얼로 설정해주면 파라미터 그룹이 나타난다. 맞는 텍스처로 연결해주고, 칼라(4벡터)도 체크해서 조정이 가능하게 해주면 이용할 수 있다.

 

 

 

 * 캐릭터 설정하기

보통은 탬플릿으로 캐릭터를 만들면 다 있지만 없다고 가정하면,

캐릭터는 Content Browser 우클릭 → Blueprint Class → Character로 만든다.

액터가 기본, 액터를 부모로 상속받아 입력값을 받고 움직이는 것이 폰, 폰에 행동/동작들이 구현되어야 하는 것이 캐릭터이다.

 

기본적으로 캡슐 콜리젼, 애로우(캐릭터의 정면 표시), 메쉬 컴포넌트가 들어있다.

Spring Arm + Camera : 캐릭터의 움직임을 부드럽게 따라가는 카메라를 다는 방법. 멀리서 내려다보는 전략시뮬레이션이 아닌 한 대체로 사용.

 

 

 

* 캐릭터 움직임 설정하기

Max step High: 발이 평지 아래로 내려가면 안되고, 올라가는 것도 적당히만 올라가게

Ground Friction: 값이 높을수록 미끄러운 면에 있는 것처럼 빨리 움직인다. 적을수록 뻑뻑한 곳에 움직이는 것처럼 움직인다.

 

점프-낙하

벨록시티 값 계산을 Z만 남기고 싹 해제하면 횡스크롤이 된다.

 

회전 방향을 키 입력값을 받아오는 것에 맞춰가지고 방향을 맞출지.

 

 

맵상에 있는 모든 물체와 물리 상호작용 할것인지.

 

 

 

에디터 → Edit → Project Settings → Engine → Input

키 값을 입력할 수 있다.

 

 

이렇게 설정할 수 있지만.... 이건 너무 복잡하다. 사실 게임을 만들 때 템플릿을 가져오면 이런 설정을 할 필요가 없다!

 

다음 포스트엔 템플릿을 적용하고 만드는 것으로 한다.