정보공간_1

[2기 대구 김길종] Unity3D 기초 (3) 본문

IT 놀이터/Elite Member Tech & Talk

[2기 대구 김길종] Unity3D 기초 (3)

알 수 없는 사용자 2012. 11. 24. 23:21

Unity3D 기초 (3)

오늘은 Asset Import and Creation 이라는 주제로 시작해보겠습니다

유니티로 게임을 제작하는데 있어서 중요한 부분 중 하나가 바로 사용자의 에셋 소스 파일들을 GameObject 에서 활용하는 것입니다. 에셋에는 텍스쳐와 모델, 사운드 이펙트, 스크립트 등이 있는데요. 유니티 툴 내부에서 아래와 같은 프로젝트 뷰를 통해 게임을 구성하는 모든 파일들에 빠른 접근이 가능합니다

 

프로젝트 뷰는 사용자의 프로젝트 에셋 폴더에 있는 파일들의 구성을 나타내며 사용자가 에셋 파일 중 하나를 업데이트 하면 변경 사항이 바로 게임에 반영되게 됩니다.

현재 프로젝트로 특정 에셋 파일을 불러오고 싶다면 해당 파일을 사용자의 프로젝트 폴더 안에 있는 Assets 폴더로 옮기면 유니티가 자동적으로 해당 파일들을 불러오게 됩니다. 에셋을 사용/적용하려면 에셋 파일을 Hierarchy나 Scene으로 드래그하면 됩니다. 만약 에셋이 오브젝트에 포함될 수 있다면 (텍스쳐라든지...) 에셋을 오브젝트 위로 드래그해서 바로 적용이 가능합니다.

유니티는 에셋에 관한 많은 메타 데이터를 저장하는데 이 데이터들은 유니티가 이러한 에셋들을 어디서 찾을 수 있느냐에 영향을 받습니다. 만약 프로젝트 뷰에서 에셋이 옮겨진다면 이 관계들은 유지가 되겠지만 유니티 밖에서 옮겨졌다면 이러한 관계들이 끊어지게 되어 많은 부분을 수동으로 재연결해야 하는 상황이 발생합니다. 즉 Asset 폴더 내에 어떠한 파일을 넣고 싶다면 유니티 내부에서 하는 것이 좋다는 것입니다.

 

Asset Types

게임에 들어갈 수 있는 기초적인 에셋에는 아래와 같은 것들이 있습니다

- 메쉬 파일들과 애니메이션들

- 텍스쳐 파일들

- 사운드 파일들

이 중에서 가장 중요하다고 할 수 있는 메쉬를 보도록 하겠습니다.

 

메쉬

3D 게임의 핵심은 메쉬입니다. 유니티에서 사용되는 Meshes는 삼각형들과 질감들이 적용된 오브젝트를 말하며 이들은 renderer 컴포넌트들로 렌더(render)되게 됩니다. 많은 변형들이 있으며 그 중 Mesh Renderer 가 가장 흔히 쓰입니다. 렌더러는 GameObject의 위치에서 메쉬를 표시하며 메쉬의 외형은 렌더러의 Materials를 통해 컨트롤됩니다. Mesh Renderer와 함께 Mesh Filter가 쓰이는데 이는 모델을 스크린에 보이게 하는 역할을 합니다.

 

Meshes는 사용자의 3D 작업에 많은 비중을 차지하는데, 보통 사용자는 메쉬를 유니티가 아닌 다른 어플리케이션(Maya, 3ds Max...)에서 구축하게 됩니다. (유니티는 *.FBX, *.dae, *.3DS, *.dxf, *.obj 를 읽을 수 있습니다)

3D 메쉬 파일을 가져오면 그에 관련된 세팅을 inspector 창에서 따로 해서 사용할 수 있는데 fbx 파일이라면 아래와 같이  나타나게 됩니다.

 

위에서 몇 가지 주요 속성을 한번 보겠습니다.

Scale Factor: 유니티의 물리 시스템은 가져온 파일이 게임에서 사용될 때의 1단위는 1미터라고 인식합니다. 만약 다른 단위를 사용했으면 여기에서 값을 고치면 됩니다

Use File Units: 이 옵션은 3ds Max 파일에서만 사용 가능하며 이 속성이 켜지면 3ds Max 파일을 1FileUnit = 1Unity Unit 으로 가져오고 그렇지 않으면 1cm = 1Unity Unit 으로 가져오게 됩니다

Mesh Compression: 이 속성을 올리면 메쉬의 크기가 줄어드는데 비압축 버전과는 모양이 달라질 수 있습니다. 속성값을 조정하고자 할 때는 비압축 버전과 비슷한 선 까지만 값을 올리면 됩니다.

Generate Colliders: 이 속성에 체크하면 이 메쉬를 사용할 때 메쉬 컬리더(Mesh Collider)가 자동으로 붙게 됩니다.

 여기서 Collider는 물리엔진에서 사용하는 강체와 같은 말입니다. 유니티에는 두 가지 성질의 주요 Collider가 있는데 Mesh Colliders 와 Primitive Colliders 입니다. Mesh Collider는 가져온 메쉬 데이터를 사용하는 컴포넌트로 주변 환경의 충돌에 사용할 수 있습니다. 위에서 설명했던 Generate Colliders 속성을 켜면 Mesh Collider는 해당 장면에 메쉬가 추가될 때 Mesh Collider가 자동으로 추가되게 됩니다.

오브젝트를 움직여도 Mesh Collider는 움직일 수 없으며 대신 Primitive collider를 사용해야 합니다. (이 경우 Generate Colliders 설정을 꺼야 합니다)

 

 

Reference

http://korea.unity3d.com/ - 유니티 코리아 (유니티 공식 문서)