제미니 답변 :
transform.basis
Godot 엔진에서 Transform3D의 basis는 3D 공간에서의 회전과 크기(스케일) 정보를 담고 있는 Basis 타입의 멤버 변수입니다. Transform3D는 3D 노드의 위치, 회전, 크기를 모두 정의하는데, 이 중 회전과 크기만 basis가 담당하고, 위치는 origin이 담당합니다.
Basis의 구성
Basis는 3개의 Vector3 벡터로 이루어진 3x3 행렬입니다. 이 세 벡터는 각각 로컬 좌표계의 x, y, z 축을 나타냅니다.
- x (또는 x_axis): 로컬 좌표계의 x축 방향과 스케일을 나타냅니다.
- y (또는 y_axis): 로컬 좌표계의 y축 방향과 스케일을 나타냅니다.
- z (또는 z_axis): 로컬 좌표계의 z축 방향과 스케일을 나타냅니다.
이 세 벡터는 서로 직교(orthogonal)하며, 이들의 길이(length)가 곧 노드의 크기(스케일)를 결정합니다. 노드가 회전하면 이 세 벡터의 방향이 함께 변합니다.
Basis의 활용
basis를 직접 조작하는 것은 주로 다음과 같은 경우에 사용됩니다.
- 방향 벡터 구하기: 노드의 정면(-z축), 윗면(y축), 오른쪽(x축) 등 특정 방향을 월드 좌표계 기준으로 알고 싶을 때 basis의 각 축 벡터를 사용합니다.
-
GDScript
var forward_vector = -transform.basis.z var right_vector = transform.basis.x - 회전 및 스케일 설정: basis를 직접 설정하여 노드의 회전과 스케일을 한 번에 변경할 수 있습니다. 예를 들어, x, y, z 축에 대한 회전 행렬을 생성하거나, 각 축의 스케일을 조정할 수 있습니다.
- 좌표 변환: 로컬 좌표를 월드 좌표로, 또는 월드 좌표를 로컬 좌표로 변환할 때 사용됩니다.
- 로컬 -> 월드: transform.basis.xform(local_vector) 또는 transform * local_vector
- 월드 -> 로컬: transform.basis.inverse().xform(world_vector)
요약하자면, transform.basis는 3D 객체의 회전과 크기 정보를 담는 행렬이며, 로컬 좌표계의 방향을 월드 좌표계 기준으로 나타내는 데 유용하게 사용됩니다.
'개발 > 고도 엔진.Godot engine' 카테고리의 다른 글
| 고도엔진 Godot 4.5 / get_tree() (0) | 2025.09.19 |
|---|---|
| 고도엔진 Godot 4.5 / 일반 어플리케이션 개발 관련. _physics_process _process 시그널 (0) | 2025.09.19 |
| 고도엔진 Godot 4.5 / 노드 접근할 때 % 와 $의 차이 (0) | 2025.09.19 |
| 고도엔진 Godot 4.5 / 애드온 AddOns 3D게임관련 (0) | 2025.09.19 |
| 고도엔진 Godot 4.5 / AMD 그래픽카드 Forward+ 렌더링에서 메시가 안보이는 문제 해결 (0) | 2025.09.18 |