이것 저것 개발하고 만들어보기
article thumbnail

 

 

 

 

 

 

 

3D 그래픽에서의 수많은 공간 개념은 Matrix에 의해 표현되고 있습니다.

 

 

Matrix는 어떤 오브젝트의 위치, 회전, 크기 정보를 나타내는 포맷이라고 볼 수 있습니다.

 

 

 

 

 

특히 좌표계는 Animation 이나 Rigging에서 아주 중요하게 작용합니다.

 

 

 

 

 

공간좌표

 

 

 

 

 

 

 

 

 

기본적으로 2D 좌표계는 X, Y의 좌표값을 가지고 2D 평면상의 위치를 표시합니다.

 

 

X와 Y는 수직으로 만나며, X와 Y의 값에 따라서 표시되는 위치가 달라집니다.

 

 

즉 , (X , Y) 가 됩니다.

 

 

 

 

 

 

 

 

 

 

하지만 3D 공간좌표계에선 기존 X, Y 축에 Z축이 추가됩니다.

 

 

Z축이 추가되면, 기존 X, Y 축에 Z축이 각각 수직으로 만납니다.

 

 

(X, Y) 뿐만 아니라 (X, Z), (Y, Z) 가 추가되므로 평면 공간이 3개로 늘어납니다.

 

 

여기서 (X, Y, Z) 는 원점 (0, 0, 0)에서 가장 먼 좌표가 (X, Y, Z) 가 됩니다.

 

 

 

 

이를 공간좌표 라고 합니다.

 

 

 

 

 

 

 

 

 

 

 

Transform

 

 

 

 

 

 

 

 

 

오브젝트별로 자신의 Transform 정보를 가지고 있는데, 보통 Position, Rotation, Scale 정보를 가집니다.

 

 

위치, 회전, 스케일별로 값을 가지고 이것을 통해 오브젝트를 변화시킬 수 있는데, 이 값에 따라 오브젝트의 상태를 확인 할 수 있습니다.

 

 

Position은 처음 생성된 위치에서 각 축으로 얼마나 이동했느냐를 표시합니다.

 

 

Rotation은 처음 생성된 위치에서 각 축으로 얼마나 회전했느냐를 표시합니다.

 

 

Scale은 기본 1의 값을 가지고 시작하는데, 처음 생성 될 때 오브젝트가 가진 가장 기본적인 크기(100%)를 나타냅니다.

 

 

 

 

 

 

 

3D 툴마다 Location, Orientation등의 용어의 차이가 있을수도 있습니다만, 동작하는 방식에는 차이가 없습니다.

 

 

 

 

 

 

 

 

 

 

Local 축, World(혹은 Global) 축

 

 

 

 

 

좌측 오브젝트에 표시된 좌표계 기준

 

 

3D 툴에선 한 덩어리의 Geometry가 하나의 객채로 인식되어 축을 가지는데, 이 때 Local 축과 World 축으로 나뉩니다.

 

 

World 축은 3D 툴이 가지는 3D 툴의 좌표계를 의미합니다.

 

 

 

 

 

 

 

 

산업 표준 기준, Z UP 이 기본이며, X 가 Forward, Y가 Left 의 성격을 가집니다.

 

 

예외적으로 Unity 에서는 Y 가 UP, Z가 Left의 성격을 가집니다.

 

 

 

 

 

 

우측 오브젝트에 표시된 좌표계 기준

 

 

 

Local 축의 경우는 World 의 기준이 아닌 Object가 가진 고유의 축을 의미합니다.

 

 

만약 Object 가 X축으로 90° 회전했다면, 좌표계도 같이 회전하게 되므로 World 축이 가진 축과 다른 좌표를 가집니다.

 

 

 

 

 

 

 

좌측은 World 좌표, 우측은 Local 좌표

 

 

 

3D 툴에서 World 좌표계로 표시 할 땐 좌측 사진처럼 오브젝트의 기울기를 무시하고 좌표계가 표시되나,

 

 

우측에선 오브젝트가 기울어 있는 만큼 좌표계도 똑같이 기울어져 있습니다.

 

 

 이렇듯 객체가 가진 좌표계가 World 기준인가 Local 기준인가에 따라서 표시되는 좌표계도 달라지며, 수정 할 수 있는 위치나 회전 또한 달라집니다.

 

 

 

 

 

Pivot

 

 

 

 

 

오브젝트의 중심점이 되는 위치를 표시해 주는 것을 Pivot 이라고 합니다.

 

 

R, G, B 컬러로 이루어진 3차원 공간 좌표계의 중심점이 해당 오브젝트의 중심점이 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이 Pivot의 위치에 따라 오브젝트가 회전하거나 이동할 때, 결과가 달라질 수도 있습니다.

 

 

대부분의 3D 툴에선 이 Pivot을 수정하는것이 가능합니다.

 

 

 

 

 

 

 

 

 

 

 

 

3D 툴에서 오브젝트를 편집 할 때, 선택한 점, 선, 면의 객체와 편집모드가 아닐 때의 고유의 오브젝트 Pivot으로 나뉩니다.

 

 

3D 툴에서 점, 선, 면을 편집 할 때에도 이 Pivot의 위치에 따라 동작되는 Transform의 정보가 바뀔 수 있으니 유의해야 합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

EX) Unity 의 Y UP

 

 

 

 

 

 

 

 

위에서 설명했듯이, 산업 표준은 Z UP 인데, Unity는 Y UP 이라고 설명했습니다.

 

 

사진처럼 유니티의 축 설정이 Wolrd (Global)로 되어있었음에도 Unity의 좌표계는 Y UP으로 표시됩니다.

 

 

그렇다면, 만약 Z UP 으로 설정 되어 있는 오브젝트를 유니티에 가져가면 어떻게 될까요?

 

 

 

 

 

 

 

 

 

 

사실 Unity에 Z UP이 적용된 오브젝트를 가져와도 Unity는 자동변환 해 주면서 Z UP에 맞춰 정렬합니다.

 

 

때문에 Rotation 값이 변환된 것을 알 수 있습니다.

 

 

만약 이 Rotation 값을 원래대로인 (0, 0, 0) 에 맞추게 된다면....

 

 

 

 

 

 

 

 

 

 

 

 

 

출처 : 캐릭터 셋업 테크닉 (저자 이상원)

 

 

profile

이것 저것 개발하고 만들어보기

@Tintana'k