Tutorial (4)

 

오브젝트 다루기 기초

 

작성 기준 버전 :: 2018.3.1f1

[본 튜토리얼의 내용은 유튜브 영상으로도 시청하실 수 있습니다]

 

이번 섹션에서는 유니티 에디터에서 오브젝트를 씬에 배치하고 이동하는 등의 오브젝트를 다루는 방법에 대해서 배워보자.

 

 

게임 오브젝트(Game Object)

 

 

게임 오브젝트는 씬에 배치되는 가장 기본 단위인 오브젝트로써 기본적으로 위치, 회전, 크기를 나타내는 트랜스폼 컴포넌트만을 가진 빈 오브젝트이다. 여기에 어떤 컴포넌트가 추가되느냐에 따라 천차만별로 달라질 수 있는 백지와 같은 오브젝트이다.

 

 

빈 게임 오브젝트에 Cube 메시를 가진 메시 필터 컴포넌트와, 메시를 그리기 위한 메시 렌더러 컴포넌트, 물리적인 실체를 가지기 위한 박스 콜라이더 컴포넌트를 추가함으로써 눈에 보이는 큐브 모양을 가진 게임 오브젝트가 되었다. 이처럼 게임 오브젝트에 어떤 컴포넌트를 붙이냐에 따라서, 그 컴포넌트는 플레이어가 조종하는 캐릭터가 될 수도 있고, 플레이어의 길을 막는 장애물이 되거나 플레이어와 싸우는 몬스터가 될 수도 있는 것이다.

 

 

오브젝트 생성하기

 

첫 번째로 알아볼 것은 오브젝트를 씬에 생성하는 방법이다.

 

 

하이어라키 탭 바로 아래에 있는 Create 드롭다운 메뉴를 누르면 생성할 수 있는 오브젝트들의 종류를 볼 수 있다. Create Empty 항목을 선택하면 앞에서 본 빈 게임 오브젝트를 생성한다.

 

 

이번에는 다음 과정들을 수행하기 위해서 Create>3D Object>Cube를 선택해서 눈에 보이는 상자 오브젝트를 추가하자.

 

 

Cube를 선택하면 씬 안에 새로운 큐브가 생겨난 것을 볼 수 있다. 이 외에도 몇 가지의 3D 오브젝트들을 생성해보자.

 

 

 

 

오브젝트 선택하기

 

이번에는 오브젝트를 선택해보자.

 

단일 오브젝트 선택하기

 

씬 뷰에서 오브젝트를 클릭하면 해당 오브젝트를 선택할 수 있고 선택된 오브젝튼느 테두리에 주황색 하이라이트가 표시된다.

 

 

오브젝트를 선택할 때 주의할 점이 있는데 씬 뷰에서 오브젝트를 선택하려고 할 때, 핸드툴 모드가 활성화된 상태에서는 오브젝트를 선택할 수 없다. W E R 등을 눌러서 다른 모드로 전환한 다음에 선택하도록 한다.

 

 

단일 오브젝트를 선택하는 또 다른 방법으로는 하이어라키 창에서 선택하고자 하는 오브젝트를 클릭하는 것이다.

 

 

하이어라키 창에서 오브젝트를 선택하면 다른 오브젝트를 잘못 선택할 확률이 줄어든다는 장점이 있다. 선택하고자 하는 오브젝트를 빨리 찾고 싶다면 오브젝트의 이름을 적절하게 정해서 보기 쉽게 정리하는게 좋다.

 

 

여러 오브젝트 선택하기

 

오브젝트 하나를 선택하는 방법 이외에도 여러 오브젝트를 한꺼번에 선택하는 방법도 있다.

 

전략 시뮬레이션 게임에서 여러 유닛을 한꺼번에 선택하듯이 선택하고자하는 오브젝트 근처에서 클릭하고 드래그하면 반투명한 사각형이 표시되는데 이 사각형 영역에 선택하고자 하는 오브젝트가 들어오게 만들면 여러 오브젝트가 동시에 선택된다. 이 방법은 손쉽게 여러 오브젝트를 선택할 수 있다는 장점이 있지만, 선택하고자하는 오브젝트 가까이에 선택하지 않으려고하는 다른 오브젝트가 함께 있다면 이 역시도 같이 선택될 수 있다는 단점이 있다.

 

 

여러 오브젝트를 선택하는 다른 방법으로는 역시 하이어라키 창에서 하는 방법이 있다. Shift 키를 사용하면 첫 번째 선택한 오브젝트와 두 번째 선택한 오브젝트 사이에 있는 모든 오브젝트가 선택되고, Ctrl 키를 사용하면 떨어져 있는 오브젝트를 하나씩 선택된 오브젝트에 추가시키며 선택할 수 있다.

 

 

 

 

 

 

 

오브젝트 이동시키기

 

배치한 오브젝트를 원하는 위치에 배치하기 위해서 오브젝트를 이동시키는 방법을 알아보자.

 

기즈모로 이동시키기

 

 

상단 버튼 중에 이동 툴 버튼 선택하거나 단축키 W키를 누르면 씬 뷰에서 오브젝트를 이동시킬 수 있게 된다.

 

이동 툴을 활성화시킨 채로 오브젝트를 선택하면 세 방향으로 뻗어나가는 화살표 모양의 기즈모가 오브젝트의 중앙에 생기는 것을 볼 수 있다.

 

 

세 화살표는 각 축 방향을 의미하며, 이 화살표를 클릭하고 드래그하면 그 축의 방향으로 오브젝트를 움직이게 된다. 빨간 화살표는 X축 방향, 초록 화살표는 Y축 방향, 파란 화살표는 Z축 방향이다.

 

 

각 축 화살표 사이를 보면 작은 면들이 보인다. 이것을 클릭하고 드래그하면 해당 색상의 축만 고정하고 나머지 축 방향으로 이동한다는 뜻이다.

 

 

즉 파란 면을 잡고 움직이면 오브젝트는 Z축은 고정한 채로 X축과 Y축에서만 움직이게 된다.

 

 

트랜스폼 컴포넌트로 이동시키기

 

오브젝트를 무브 툴과 기즈모가 아닌 인스펙터 창의 트랜스폼 컴포넌트를 이용해서 이동시킬 수도 있다. 기즈모를 통해 대강의 위치로 이동시키는 것이 아니라 정확히 원하는 좌표에 오브젝트를 가져다 놓고 싶다면 인스펙터 창의 트랜스폼 컴포넌트를 이용해서 오브젝트를 이동시키는게 더 좋다.

 

 

인스펙터 창에서 오브젝트를 이동시키는 다른 방법도 있는데 포지션의 각 축 이름에 마우스 커서를 가져다 대면 커서 앞에 양방향 화살표가 뜨는데 이 때 좌클릭 드래그를 하면 그 축의 값을 조절할 수도 있다.

 

 

 

오브젝트 회전시키기

 

오브젝트를 잘 배치하기 위해서는 위치뿐만 아니라 적절하게 회전시키는 것 역시 중요하다.

 

기즈모로 회전시키기

 

 

상단 버튼 중에 회전 툴 버튼을 클릭하거나 단축키 E를 누르면 씬 뷰에서 오브젝트를 회전시킬 수 있게 된다.

 

회전 툴을 활성화시킨 채로 오브젝트를 선택하면 구형의 회전 기즈모가 생긴다.

 

 

회전 기즈모에는 흰 원 안쪽으로 빨간 원, 초록 원, 파란 원이 보이는데 이것은 그 색상의 원 평면과 직교하는 축을 기준으로 회전한다는 의미이다.

 

 

기즈모의 축을 잡고 마우스를 움직이면 그 축을 기준으로만 회전한다. 아래의 이미지를 보면 순서대로 각각 X축, Y축, Z축을 잡고 오브젝트를 회전시키고 있다.

 

 

기즈모에서 축이 아닌 영역을 잡고 움직이면 오브젝트를 자유롭게 회전시킬 수 있다.

 

 

 

트랜스폼 컴포넌트로 회전시키기

 

오브젝트 이동과 마찬가지로 오브젝트 회전 역시 트랜스폼 컴포넌트를 통해서 할 수 있다. 인스펙터 창에서 트랜스폼 컴포넌트 값 중에 Rotation 값을 원하는 만큼 수정해주면 원하는 각도만큼 정확하게 오브젝트를 회전시킬 수 있다.

 

 

Rotation 값 중에 원하는 값의 이름에 마우스 커서를 대고 좌클릭 드래그하는 것으로도 오브젝트를 회전시킬 수 있다.

 

 

 

 

 

 

오브젝트 크기 조절하기

 

오브젝트의 적절한 크기 역시 자연스러운 오브젝트 배치에 있어서 중요한 요소 중에 하나이다. 의도되지 않을 잘못된 크기의 물체는 플레이어에게 큰 위화감을 주고 몰입을 방해하기 때문이다.

 

기즈모로 크기 조절하기

 

 

상단 버튼 중에 스케일 툴을 선택하거나 단축키 R키를 누르면 오브젝트의 크기를 조절할 수 있다.

 

스케일 툴을 활성화한 채로 오브젝트를 선택하면 이동 기즈모와 같은 형태지만 끝이 직육면체 모양인 기즈모가 생성된다.

 

 

빨간 색 막대는 오브젝트를 X축 방향으로 확대/축소하며, 초록 색 막대는 Y축 방향으로, 파란색 막대는 Z축 방향으로 오브젝트를 확대/축소한다.

 

 

가운데 있는 흰 색 정육면체를 잡고 마우스를 움직이면 모든 축 방향으로 오브젝트가 커졌다가 작아진다.

 

 

트랜스폼 컴포넌트로 크기 조절하기

 

인스펙터 창에서 트랜스폼 컴포넌트의 Scale 값을 통해서 오브젝트의 크기를 정확히 원하는 크기로 조절할 수 있다.

 

 

Scale 값 중에 원하는 값의 이름에 마우스 커서를 대고 좌클릭 드래그하는 것으로도 오브젝트의 크기를 조절할 수 있다.

 

 

 

오브젝트를 다른 오브젝트의 하위 오브젝트로 만들기

 

유니티에서는 단순히 하나의 오브젝트만을 사용하는 것이 아니라 오브젝트를 다른 오브젝트의 하위 오브젝트로 만들어서 사용하는 경우가 많다. 예를 들자면 캐릭터 오브젝트의 손에 무기 오브젝트를 붙여서 캐릭터가 무기를 들게 하거나, 차량 오브젝트를 만들 때, 차량의 몸체 오브젝트와 바퀴 오브젝트를 따로 만들어서 차량 몸체 오브젝트 하위에 바퀴 오브젝트를 붙이는 등의 방식을 사용한다.

 

이렇게 하면 어떤 장점이 있냐면 만약 캐릭터가 손에 들고 있는 무기를 다른 무기로 바꾸면 손에 무기 오브젝트를 다른 무기 오브젝트로 바꾸거나, 차량이 데미지를 입거나 폭발할 때, 차량의 바퀴가 차량에서 떨어져나가는 연출 등을 사용할 수 있게 된다. 만약 무기와 캐릭터가 통짜로 된 하나의 오브젝트라면 무기를 교체할 때마다, 캐릭터의 모델링마저 교체해야 될 것이고, 차량 몸체와 바퀴가 통짜로 된 하나의 오브젝트라면 차량에서 바퀴가 떨어져나가게 하기 위해서 바퀴가 떨어져 나가는 애니메이션을 만들어야 할 것이다.

 

이렇게 오브젝트를 다른 오브젝트의 하위 오브젝트로 만드는 것은 여러 곳에서 사용될 수 있는 좋은 기법으로 어떤 곳에 사용될 수 있는지 생각해보고 많이 활용해보는 것이 좋다.

 

한 오브젝트를 다른 오브젝트의 하위 오브젝트로 만드는 방법은 아주 간단하다. 하이어라키 뷰에서 다른 오브젝트의 하위 오브젝트로 만들고자 하는 오브젝트를 드래그해서 상위 오브젝트가 되고자 하는 오브젝트에 끌어다 놓으면 된다.

 

 

이렇게 해서 상위 오브젝트가 된 오브젝트를 부모 오브젝트라고 하며, 하위 오브젝트가 된 오브젝트를 자식 오브젝트라고 한다.

 

이렇게 다른 오브젝트의 하위 오브젝트가 된 자식 오브젝트는 부모 오브젝트의 이동, 회전, 스케일의 영향을 함께 받는다.

 

 

반응형

+ Recent posts