피벗과 앵커링
피벗 모드(Absolute / Anchor / Percent)와 부모 바운즈에 자식을 붙이는 앵커링, 크기 비율(%) 파라미터를 설명합니다.
파라메트릭 쉐이프는 피벗을 파라미터로 관리합니다. 그리고 부모가 파라메트릭 쉐이프이거나 Layout 이면, 자식의 위치와 크기를 부모 바운즈에 묶어 둘 수 있습니다. 부모 크기를 바꾸면 자식이 따라 움직이고 따라 커집니다.
Pivot 섹션
인스펙터의 Pivot 섹션에서 Anchor Mode 를 고릅니다.
| 모드 | 의미 |
|---|---|
| Absolute | 소스 공간의 절대 좌표를 피벗으로 씁니다. 부모와 무관하게 동작합니다. |
| Anchor | 부모 바운즈의 기준점(각 축 min / center / max)에 붙습니다. |
| Percent | 부모 바운즈 안의 상대 위치(각 축 0 ~ 1)에 붙습니다. |
- Absolute 를 고르면 Position 필드가 표시됩니다. 메시가 이 값만큼 반대로 이동해 트랜스폼 피벗이 유지됩니다.
- Anchor / Percent 를 고르면 Offset 필드가 표시됩니다. 앵커점에서 얼마나 떨어질지 지정하는 로컬 오프셋입니다.
앵커링의 동작
Anchor / Percent 모드에서는 자식의 로컬 위치가 앵커점 + Offset 으로 구속됩니다.
씬뷰에서 자식을 직접 움직이면 그 이동량이 Offset 에 역산되어 흡수됩니다. 즉 자식을 옮겨도 앵커는 유지되고, 앵커점으로부터의 거리만 바뀝니다.
부모 크기가 바뀌면 앵커점이 다시 계산되고 자식이 그 위치로 이동합니다. 예를 들어 벽 상단에 앵커된 조명은 벽을 높여도 계속 상단에 붙어 있습니다.
크기 비율(%) 파라미터
크기 파라미터 행의 m ↔ % 토글을 % 로 바꾸면, 그 필드의 값이 부모 축 길이에 대한 비율로 해석됩니다.
height = 0.5 이고 % 모드이면 부모 높이의 절반이 실제 높이가 됩니다.
각 파라미터가 참조하는 부모 축은 다음과 같습니다.
| 파라미터 | 참조하는 부모 축 |
|---|---|
width, stepWidth | X 크기 |
height, stepHeight, thickness | Y 크기 |
depth | Z 크기 |
radius, radius1, radius2 | min(X, Z) × 0.5 |
반지름 계열이 min(X, Z) × 0.5 를 쓰는 이유는, 원형 단면이 부모 바닥 안에 들어가는 최대 반지름이 그 값이기 때문입니다.
패널의 All % / All m 버튼으로 크기 파라미터 전체를 한 번에 전환할 수 있습니다.
Layout 쉐이프로 영역 잡기
Layout 은 메시가 없는 AABB 박스입니다. 렌더링되지 않고 씬뷰에 와이어 박스로만 보입니다.
건물의 한 층, 방 하나, UI 패널 영역처럼 "이 범위 안에 배치한다" 는 기준만 필요할 때 사용합니다. Layout 을 부모로 두고 자식들을 앵커 · 비율로 묶어 두면, Layout 크기 하나만 바꿔서 구성 전체를 리사이즈할 수 있습니다.
Layout "Floor" (width 8, depth 6, height 3)
├─ Box "WallNorth" pivot=top-back, width 100% ← Layout 폭에 맞춰 늘어남
├─ Box "WallSouth" pivot=top-front, width 100%
└─ Cylinder "Pillar" pivot=bottom-center
스크립트에서 지정하기
스크립트 DSL 에서는 pivot= · offset= · ratio= 로 같은 설정을 지정합니다.
layout "Floor" w=8 d=6 h=3 @0,0,0
box "WallNorth" pivot=top-back ratio=width,height w=1 h=0.9 d=0.2
문법은 씬 스크립트 문법 (umx_parametric_shape) 에서 자세히 다룹니다.
