DSL 언어
파라메트릭 쉐이프를 줄 단위 스크립트(DSL)로 만들고 편집하는 방법과 MCP 연동을 설명합니다.
파라메트릭 쉐이프는 줄 단위 스크립트(DSL) 로도 만들고 편집할 수 있습니다. 씬을 클릭으로 조립하는 대신, 구조 전체를 텍스트로 적어 한 번에 실행하는 방식입니다.
group "Table" @0,0,0
box "Top" w=2 h=.1 d=1 @0,1,0
cylinder "LegFL" r=.05 h=1 @-0.9,0,-0.4
cylinder "LegFR" r=.05 h=1 @0.9,0,-0.4
두 가지 실행 경로
두 경로는 완전히 같은 실행 코드를 사용합니다. 검증 규칙, 오류 메시지, Undo 동작이 동일합니다.
제공하는 MCP 툴
| 툴 | 하는 일 | 문법 |
|---|---|---|
umx_parametric_shape | 씬에 파라메트릭 쉐이프를 만들고 편집합니다. | 씬 스크립트 문법 |
umx_hotspot | 핫스팟 레이아웃 에셋을 만들고 편집합니다. | 핫스팟 스크립트 문법 |
두 툴 모두 파라미터가 script 하나뿐입니다. 오브젝트 하나마다 툴을 호출하는 대신 스크립트 한 장으로 구조 전체를 한 번에 만들기 때문에, 호출 횟수와 토큰 사용량이 크게 줄어듭니다.
MCP 연동
UModeler X 는 프로젝트에 설치된 MCP 패키지를 감지해 자동으로 툴을 등록합니다. 별도의 설정이나 코드 작성은 필요하지 않습니다.
| MCP 패키지 | 패키지 이름 |
|---|---|
| Unity AI Assistant / Unity MCP | com.unity.ai.assistant |
| Coplay — MCP for Unity | com.coplaydev.unity-mcp |
| Unity-MCP (Ivan Murzak) | com.ivanmurzak.unity.mcp |
패키지를 설치하고 컴파일이 끝나면 MCP 클라이언트의 툴 목록에 umx_parametric_shape 와 umx_hotspot 이 나타납니다.
두 문법의 공통 규칙
umx_parametric_shape 와 umx_hotspot 은 같은 파서 규칙을 공유합니다.
- 한 줄에 한 문장.
- 들여쓰기는 정확히 2칸 단위이며, 한 번에 두 단계 이상 깊어질 수 없습니다. 탭은 사용할 수 없습니다.
#로 시작하는 줄은 주석입니다.- 이름은 큰따옴표로 감쌉니다 —
"Table Top"처럼 공백을 포함할 수 있습니다. - 숫자는 소수점에 마침표를 씁니다(
0.5,.1). 지역 설정과 무관하게 해석됩니다. - 결과로 돌아오는 이름은
"이름#id"형식입니다.#id는 이름이 같은 오브젝트가 여러 개일 때 정확히 하나를 가리키는 데 쓰입니다.
실행 전 검증
스크립트는 다음 단계를 거칩니다.
- 파싱 — 들여쓰기 · 토큰 형식 검사
- 정적 검증 — 쉐이프 종류 · 파라미터 이름 화이트리스트 검사
- 프리플라이트 — 모디파이어 종류와 파라미터, 참조 대상 존재 여부 검사
- 실행
1 ~ 3 단계에서 오류가 하나라도 나오면 씬은 전혀 바뀌지 않고 오류 목록만 돌아옵니다. 오류 메시지에는 항상 줄 번호가 포함되며, 오타인 경우 사용 가능한 값 목록이 함께 표시됩니다.
4단계 실행 중 개별 노드가 실패하면 그 노드와 그 자식만 건너뛰고 나머지는 계속 진행됩니다. 실패 목록은 결과에 함께 돌아옵니다.
