언리얼 엔진 시작하기 4

2016. 12. 12. 10:54기술/언리얼 스터디

반응형

튜토리얼을 진행하기에 앞서 앞으로 2년 정도 뒤를 예상해 봅니다.


2년 정도 뒤에는 PC에서는 DirectX 12 게임 개발이 시작되지 않을까 예상합니다.

현재 DirectX 12로 개발되는 프로젝트 소식이 없는 듯 하고 Windows 10이 보급화 되려면 어느정도 시간이 걸릴 것 같습니다.


모바일 시장에서는 OpenGL ES 3.0 이상이 보급화 되고 CPU가 10nm 공정으로 제조 되어서 전력 효율도 좋아지고 저장 크기와 메모리도 크게 증가하여 점점 더 큰 규모의 게임이 구동 될 수 있는 환경이 될 것으로 예상합니다.


그리고 VR이라는 가상현실 기기 사용으로 조금 더 게임을 흥미롭게 즐길 수 있을 것입니다.

쉽게 말해서 VR은 총싸움(FPS) 게임을 한다면 게임 캐릭터의 얼굴에 VR기기가 씌어져 있다고 생각하면 됩니다. 3인칭 관찰자 시점이 아니라 1인칭 주인공 시점으로 게임을 즐길 수 있습니다.


저는 VR기기가 전자제품이 바로 눈앞에 있기 때문에 시력에 안좋은 영향이 있을 수 있고 어지러움증이 있을 수 있을거라 생각하여 현재는 사용해 보고 있지 않습니다. 현재 최고로 좋은 VR기기는 가격이 너무 비싸고 보급화된 5천원 정도의 VR기기는 그냥 장난감 용도 정도로 사용해 보면 좋습니다. VR 장시간 사용시 문제가 될 것 같은데 직접 사용해 보지는 않아서 모르겠습니다.


VR기기 쪽으로 투자되는 비용이 많기 때문에 2년 뒤에는 VR 기기의 발전도 있어서 인터넷 쇼핑을 마치 실제 백화점을 구경하는 것처럼 구매할 수 있는 날을 기대해 봅니다. VR 산업이 보편화 되려면 다양한 방면으로 기술 발전이 있어야 합니다.


생각 해야 할 것들이 있기 때문에, 지금부터는 시간 체크를 하지 않겠습니다.



1. 개요

이번 튜토리얼에서 무엇을 진행하는지 알려줍니다.



  • FBX 파일이란 3DMax에서 내보내기 가능한 파일 포맷입니다. 언리얼 엔진에 가져와서 사용할 수 있는 보편화된 파일 포맷입니다. 유니티 엔진에서도 사용할 수가 있죠.

  • 스켈레톤 에셋 (Skeleton Assets) 이란 캐릭터의 뼈대를 말하는 것 같습니다.

  • 페르소나 (Persona)는 언리얼 엔진의 캐릭터 애니메이션 기능 입니다.

  • 블랜드 공간 (Blend Spaces)이란 애니메이션 보간 기술 입니다.

  • 애니메이션 블루프린츠 (Animation Blueprints)는 애니메이션 제어를 블루 프린트로 하는 것 같습니다.

  • 상태기계 (State Machines)도 중요한 개념입니다. 기본 상태 -> 공격 상태를 제어할 수 있겠죠.


2. 프로젝트 생성과 FBX 다운로드

FBX 다운로드 하는 방법에 대해서 알려줍니다. 어렵지 않습니다. FBX 파일은 언리얼 엔진에서 기본적으로 볼 수 있는 로봇 캐릭터 입니다. 실무에서는 그래픽 디자이너가 캐릭터 본과 메쉬 그리고 텍스쳐를 입혀서 FBX 파일로 전달해 줄 것입니다. 프로그래머가 작업할 필요는 없습니다.


3. FBX 임포트와 스캘레톤 사용

만약 게임에서 남자, 여자 캐릭터가 있다고 가정합시다. 남자와 여자는 기본 동작과 공격 동작(Motion)이 다릅니다. 그렇다면 두 개의 스캘레톤이 있어야 합니다.

스캘레톤을 사용하는 이유는 각 캐릭터가 머리 모양이라든가 얼굴, 몸통(의상)등을 바꿀 수 있기 때문입니다. 실제로 움직이는 것은 스켈레톤이고 거기에 달려 있는 것이 머리 메쉬, 얼굴 메쉬라고 생각하면 됩니다.


도중에 유니티의 캐릭터 (UnityChan)을 불러와 보려고 했는데 실패 했습니다. 애니메이션 불러올 때, 뭔가 에러가 나더군요.


아무튼 Import 할 때 옵션값들을 조금만 조절 해 주면 예제 캐릭터를 불러 올 수 있습니다.

스켈레톤 메시를 불러올 때 기본으로 설정된 임포트 옵션 입니다.

다음과 같은 경고가 뜨는데 무시해도 된다고 합니다.

FBXImport:Warning: 경고 이 FBX 씬에 스무딩 그룹 정보가 없습니다. FBX 익스포트 플러그인에서 파일을 익스포트하기 전, 'Export Smoothing Groups' (스무딩 그룹 익스포트)를 켰는지 확인해 주시기 바랍니다. 스무딩 그룹을 지원하지 않는 툴의 경우에도, 임포트시 버텍스 노멀을 제대로 유추할 수 있도록 FBX 익스포터가 익스포트시 적합한 스무딩 데이터를 생성해 줍니다.


애니메이션 들을 불러올 때 옵션입니다.

FBXImport:Warning: 경고 임포트된 애니메이션에는 있으나 SK_Mannequin_Skeleton 스켈레톤 애셋에는 없는 본은 다음과 같습니다. 이 본의 애니메이션은 임포트되지 않습니다:


7. 블랜드 스페이스

유니티에도 있는데 애니메이션 보간이라고 생각하면 됩니다. Idle 애니메이션에서 Walk 애니메이션이 재생될 때 부드럽게 연결 시켜주는 기술입니다.


애니메이션 > 블랜드 스페이스 1D를 만들어 주고 이름을 Idle_Walk_Run으로 만들어 줍니다.

세로로 표시합니다를 체크해주고 Idle과 Walk와 Run 애니메이션을 드래그 앤 드랍으로 설정해 줍니다.

미리보기가 있어서 애니메이션 블랜딩이 되는 것을 확인할 수 있습니다.



8. 애니메이션 블루프린트 소개

9. 스테이트 머신 소개

실습으로 할건 없고 이론을 소개 합니다. 알고 있어도 한번 쭈욱 듣고 넘어갑니다.

10. 애님그래프 만들기

상태기계를 만들어 줍니다. 다소 복잡한데 상용화 프로젝트는 애니메이션이 많기 때문에 굉장히 복잡합니다. 애님 프리뷰 에디터에서 값을 조절해 주면 상태기계를 확인할 수 있습니다.



여기까지 한 4시간 정도 입니다. 

동영상에도 나오지만 상태기계는 게임 개발 프로그래머라면 다들 한번쯤 들어보거나 이미 알고 있을 것입니다.

언리얼 엔진 4에서 상태기계를 어떻게 사용하는지 알아볼 수 있습니다.


11. 애니메이션 블루프린트 이벤트 그래프


12. 캐릭터 블루프린트 컴포넌트

입문 단계이기 때문에, 일단 무언가 만들기 보다 욕심을 버리고 익히는데 중점을 두도록 하겠습니다.

12과에서는 컴포넌트를 추가하는 방법과 설정 변경하는 방법에 대해 나옵니다.


자세하게 다루자면 중요한 것들이 많이 있겠습니다. 노트에 적으면서 깊이있게 공부해야 하는데 일단 결과물까지 가 보도록 하겠습니다. 첫 술에 배부를 수 없죠.


13. 캐릭터 블루프린트 키보드와 마우스 컨트롤

프로젝트 입력에 가서 손쉽게 키를 추가할 수 있습니다. 중요한건 캐릭터 움직임을 입력도구에 매칭 시키는 것입니다.

각 입력값에 맞춰서 블루프린트를 설정해 준 장면 입니다. (여기까지 총 8시간)


14. 게임모드 설정과 테스트

이 과를 진행하면 게임 모드 블루 프린트를 하나 생성하고 설정할 수 있으며 테스트를 진행해 볼 수 있습니다.

키보드와 마우스 입력상태에 따라서 캐릭터가 움직입니다.


15. 캐릭터 블루프린트 게임패드와 터치컨트롤 설정

여기에서는 폰에서 실행했을 때의 컨트롤러도 볼 수 있습니다.


16. 애니메이션 몽타쥬 소개

애니메이션 몽타쥬 이론에 대해서 설명합니다. 애니메이션 몽타쥬란 주먹질 애니메이션을 준비 동작, 뻗는 동작, 마무리 동작 세 가지로 나누고 다시 왼펀치 오른펀치로 만드는 기술인것 같습니다. 실습을 해 봐야 알 것 같습니다.


17. 스켈레톤 리타겟팅과 몽타쥬 설정

스켈레톤의 왼팔에 약간 장애가 있었는데 스켈레톤 리타겟팅을 하면 고쳐줄 수 있습니다. 엉덩이뼈가 튀어나와 있네요. 고쳐줍니다.




에셋 브라우저에서 애니메이션들을 가져다가 드래그 앤 드랍으로 가장 상단에 있는 것을 만들어 주고 이름을 설정해 줍니다. PunchStart, Punch1, ...


비우기 버튼을 누르고 PunchStart를 클릭한 다음 Punch1을 클릭하고 Punch2를 클릭하고 다시 Punch1을 클릭하면 Punch1과 Punch2가 반복되는 것을 볼 수 있습니다.


아래쪽에 노티파이에는 IsStillPunching1, ... 을 추가해 줍니다.


18. 애니메이션 블루프린트 주먹질 설정

19. 애니메이션 몽타주 재생

20. 슬롯 노드와 분기점

여기까지 진행을 하면 캐릭터 상반신만 주먹질 하는 것을 만들 수 있습니다.

상당히 난해 하기 때문에 노트에 분석해 가면서 해야할 것 같습니다. FPS 게임을 만들 때 사용할 것 같은데 일단 이런 기능이 있구나. 정도만 익히고 넘어가겠습니다. (깊이있게 하려면 시간이 필요합니다.)



22. 애니메이션 노티파이 추가하기

캐릭터가 뛰어갈 때, 발에 파티클 이펙트를 플레이 해 주는 방법은 어렵지 않습니다. 해당 애니메이션 프레임으로 가서 Play Particle Effect를 추가해 주고 오른쪽에서 설정을 해 주면 됩니다. Bone 이름을 설정해 주어야 하고 Attached 체크 해제를 하면 파티클이 발에 붙어서 재생되지 않습니다. ( 파티클 이펙터가 필요하겠군요. )






반응형

'기술 > 언리얼 스터디' 카테고리의 다른 글

언리얼 엔진 시작하기 6  (0) 2017.01.02
언리얼 엔진 시작하기 5  (0) 2016.12.30
언리얼 엔진 시작하기 3  (0) 2016.12.03
언리얼 엔진 시작하기 2  (0) 2016.11.30
언리얼 엔진 시작하기 1  (0) 2016.11.28