Posted in: Unity, 메서드 & 팁 정리

Pivot Center 그리고 Local Global (유니티 게임 프로그래밍)

유니티 에디터 상단에는 트랜스폼 기즈모 토글 버튼이 있습니다. Scene 창에서 오브젝트를 선택했을 때 표시되는 트랜스폼 도구 기즈모의 위치와 방향을 정의하는 데 사용됩니다.

오늘 실습에선 유니티 기본 지원 오브젝트를 사용하지 않고 무료 에셋을 불러와서 진행하겠습니다. 유니티 기본 지원 오브젝트는 Pivot과 Center가 같기 때문에 차이점을 못 느낄 수 있거든요.

Unity Asset Store 사용하기


유니티 프로젝트를 열고 Windos > Asset Store를 클릭하여 Asset Store 창을 엽니다.

Search online 을 클릭하여 Unity Asset Store를 열고 검색창에서 “unity chan”을 검색합시다.

여러 가지 에셋이 나오는데 “Unity-Chan! Model”을 선택합니다. 지금은 무료니까 걱정하지 마세요!

“Add to My Assets”을 선택하여 추가합시다.

다시 유니티 에디터로 돌아와서 Window > Package Manager를 클릭합니다.

Package Manager 창 왼쪽 위에서 Packages를 My Assets로 변경합니다.

유니티 에셋 스토어에서 여러 가지를 추가한 분은 제 에셋 목록처럼 다양한 에셋이 있을 것입니다. 실습하는 계정에 따라 다를 수 있으니 제 화면과 다르다고 당황하지 않으셔도 됩니다.

만약 에러가 뜨면서 아무것도 보이지 않는 분은 왼쪽 하단에 새로 고침 버튼을 눌러보세요.

저희는 방금 추가한 에셋인 Unity-Chan! Model을 사용할 것입니다. Unity-Chan! Model 에셋은 실습하는 유니티 에디터 버전이 2018.4.0 보다 낮으면 호환되지 않을 수 있습니다. 유니티 짱(Unity-Chan)을 선택하고 우측 하단에 Download 버튼을 클릭합니다. 다운로드가 끝나면 우측 하단 버튼이 Import 버튼으로 바뀝니다. Import 버튼을 클릭합니다.

Import 버튼을 클릭하면 Unity-Chan! Model 패키지에 포함돼있는 파일 목록이 나오며 어떤 파일을 불러올 것인지 선택할 수 있습니다. 저희는 유니티 짱 3D 오브젝트만 있으면 되니까 위 사진처럼 선택하고 Import 합니다.

Project 창의 Assets 폴더 안에 unity-chan! 폴더가 생겼습니다.

unity-chan! > Unity-chan! Model > Prefabs 폴더에 들어가서 unitychan 프리팹 파일을 Hierarchy 창으로 끌어당깁니다.

프리팹(prefab)은 생소한 단어지요? 일단 재사용 해야 되는 게임 오브젝트의 원본을 저장해놓고 사용할 때는 복사하여 사용한다고 생각합시다. 정확한 뜻은 다른 시간에 배우면 돼요.

Scene 화면에서 unitychan 오브젝트가 보입니다. 유니티 짱의 위치와 회전을 (0, 0, 0)으로 바꿔주세요. Transform 컴포넌트의 ⁝(설정) 버튼을 클릭하여 Reset을 선택해도 됩니다.

트랜스폼 기즈모 토글


트랜스폼 기즈모 토글은 트랜스폼 도구 기즈모가 표시되는 위치와 방향을 정의하는 기능입니다. 위 사진에선 Move가 선택되어 있기 때문에 표시되는 기즈모는 3 갈래의 작은 화살표입니다. 다른 트랜스폼 도구를 선택하면 보여지는 기즈모도 달라집니다.

Pivot은 게임 오브젝트의 실제 기준점에 트랜스폼 도구 기즈모가 표시됩니다. Center는 게임 오브젝트의 중앙을 기준으로 트랜스폼 도구 기즈모가 표시됩니다.

3D 캐릭터를 디자인할 때는 보통 캐릭터 발의 위치를 기준점(Pivot)으로 삼는 경우가 많기 때문에 위 사진처럼 Pivot은 발에 위치해 있고 Center는 유니티 짱의 중간에 위치합니다.

만약 Center로 되어 있다면 캐릭터의 위치를 옮길 때 캐릭터 하체 부분이 땅속에 묻힐 수 있기 때문에 웬만하면 Pivot을 주로 사용합니다.

설명을 위해 유니티 짱을 (30, 30, 30) 회전했습니다.

Local은 게임 오브젝트 방향을 기준으로 트랜스폼 도구 기즈모가 표시됩니다. Global은 게임 세상을 기준으로 트랜스폼 도구 기즈모가 표시됩니다.

유니티 짱을 회전했기 때문에 Local에선 실제로 회전된 모양으로 보이죠. Global에선 유니티 짱이 회전돼있는 상태임에도 게임 세상(글로벌 좌표계)을 기준으로 기즈모가 표시되죠. Global을 사용하면 게임 세상을 기준으로 오브젝트를 배치할 때 도움 됩니다.

보통 게임 오브젝트를 배치할 때 위치와 회전 혼동을 피하기 위해 Pivot, Local로 설정해 두고 배치합니다.

다음 시간에는 무엇을 배우나요?


매우 간단한 로직을 가진 게임에는 프로그래밍 지식이 별로 필요 없습니다. 유니티 같은 게임 엔진만 잘 다뤄도 간단한 게임 하나는 만들 수 있죠. 막말로 퀄리티가 떨어져도 제작자가 게임이라고 우기면 게임이니까요. 하지만 저희 목표인 2D 어드벤처 게임은 프로그래밍 지식이 어느 정도 필요합니다. 대부분의 게임 개발에는 프로그래밍 지식이 필요해요.

앞으로 프로그래밍에 관한 설명이 많아질 거예요. 재미는 없겠지만 최대한 잘 설명해보도록 노력하겠습니다. 다음 시간에는 게임 오브젝트와 컴포넌트에 관해 알아봅시다.

그럼 다음 시간에 만나요~ 제발~

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다