UModeler X MCP출시 — AI 에이전트로 모델링하세요
UModeler X

핫스팟 스크립트 문법 (umx_hotspot)

핫스팟 레이아웃 에셋을 생성·편집하는 umx_hotspot 스크립트의 전체 문법 참조입니다.

umx_hotspot 은 스크립트 한 장으로 핫스팟 레이아웃 에셋을 만들고 편집하는 툴입니다. 핫스팟 텍스처링 자체에 대한 설명은 핫스팟 텍스처링 을 참고하세요.

asset "Assets/Hotspots/Walls.asset" create
new "TrimTop" rect=0,0.75,1,1
  rule axis type=topside angle=15
grid cols=2 rows=2 pad=0.01 prefix="Cell"
list

문장 종류

문장하는 일
asset "경로" [create]이후 줄이 적용될 대상 에셋 지정
new ["이름"] rect=...레이아웃 생성
@"이름" / @#index기존 레이아웃 편집
rule <종류> ...위 레이아웃에 규칙 적용 (2칸 들여쓰기)
del "이름" / del #index레이아웃 삭제
clear모든 레이아웃 삭제
grid cols=N rows=M0~1 UV 영역을 격자로 분할
export "경로.png"색상 가이드 PNG 저장
list결과에 레이아웃 스냅샷 포함

기본 규칙(2칸 들여쓰기, # 주석, 큰따옴표 이름, 마침표 소수점)은 씬 스크립트 와 같습니다.


대상 에셋 지정 (asset)

asset "Assets/Hotspots/Walls.asset"
asset "Assets/Hotspots/Walls.asset" create
  • 경로는 Assets/ 로 시작하고 .asset 으로 끝나야 합니다.
  • create 를 붙이면 에셋이 없을 때 새로 만듭니다. 없이 쓰면 존재하는 에셋만 대상이 됩니다.
  • asset 줄이 하나도 없으면 열려 있는 핫스팟 에디터의 활성 핫스팟이 대상이 됩니다.

한 스크립트 안에서 asset 줄을 여러 번 써서 여러 에셋을 순서대로 편집할 수 있습니다.


레이아웃 생성 (new)

new "TrimTop" rect=0,0.75,1,1
new rect=0,0,0.5,0.5
  • rect=minU,minV,maxU,maxV — 필수입니다. min 은 max 보다 작아야 합니다.
  • 이름은 생략할 수 있습니다.
  • rect 외의 k=v 키는 받지 않습니다.

레이아웃 편집 (@)

@"Cell_0_0" name="Floor"
@"Floor" rect=0,0,1,0.25
@#12 name="TrimBottom"
  • @"이름" 또는 @#index 로 대상을 지정합니다. #index 는 레이아웃 인덱스입니다.
  • name= 으로 이름을 바꾸고, rect= 로 영역을 바꿉니다. 그 외 키는 받지 않습니다.
  • 아래에 rule 줄을 들여써서 규칙을 함께 지정할 수 있습니다.

규칙 (rule)

rule 은 new 또는 @ 아래에 2칸 들여써서만 쓸 수 있습니다. rule 이 아닌 문장을 들여쓰면 오류입니다.

rule axis — 면 방향 제한

rule axis type=topside angle=15
rule axis off
키값
typetop · bottom · side · topbottom · topside · bottomside
angle허용 각도(도)

rule length — 크기 제한

rule length min=0.1,0.1 max=0.5,0.5
rule length max=1,1
키값
minu,v 두 성분
maxu,v 두 성분

rule uvdirect — UV 방향 제한

rule uvdirect allow=x+,x-,y+
키값
allowx+ x- y+ y- z+ z- 중 하나 이상 (쉼표 구분)

규칙 끄기

값 대신 off 토큰을 쓰면 그 규칙이 비활성화됩니다.

rule axis off
rule length off
rule uvdirect off

삭제 (del · clear)

del "TrimTop"
del #12
clear

clear 는 대상 에셋의 모든 레이아웃을 지웁니다.


격자 분할 (grid)

grid cols=4 rows=2
grid cols=2 rows=2 pad=0.01 prefix="Cell"

0~1 UV 정사각형을 cols × rows 로 나눠 레이아웃을 한 번에 만듭니다.

키설명기본값
cols열 수 (필수)—
rows행 수 (필수)—
pad셀 사이 UV 간격0
prefix이름 접두어—

이름은 {prefix}_{행}_{열} 형식으로 붙습니다. 예: Cell_0_0


가이드 이미지 내보내기 (export)

export "D:/out/walls_guide.png"
export "D:/out/walls_guide.png" res=2048

레이아웃 배치를 색상으로 구분한 가이드 PNG 를 저장합니다. 텍스처를 그릴 때 밑그림으로 사용합니다.

  • 경로는 .png 로 끝나야 하고, 저장 폴더가 존재해야 합니다.
  • res 허용값: 512 · 1024 · 2048 · 4096

현재 상태 확인 (list)

list

결과 데이터에 레이아웃 스냅샷(인덱스 · 이름 · rect · 규칙)을 포함시킵니다. 다음 수정을 정하기 전에 현재 상태를 확인할 때 사용합니다.


결과 데이터

항목내용
created생성된 레이아웃 ("이름#인덱스")
updated수정된 레이아웃
deleted삭제된 레이아웃
rulesApplied적용된 규칙 수
failed실패한 문장 — 줄 번호와 이유
warnings경고 목록
layoutslist 를 썼을 때의 레이아웃 스냅샷

#index 는 "이름" 이 쓰이는 모든 자리에 사용할 수 있습니다 — @#index, del #index.


전체 예시

# 벽·바닥용 트림시트 레이아웃
asset "Assets/Hotspots/Walls.asset" create
clear

new "TrimTop" rect=0,0.75,1,1
  rule axis type=topside angle=15
  rule length min=0.1,0.1 max=0.5,0.5
  rule uvdirect allow=x+,x-,y+

new "WallLarge" rect=0,0.25,0.5,0.75
  rule axis type=side angle=20

new "Floor" rect=0.5,0.25,1,0.75
  rule axis type=top angle=10

export "D:/out/walls_guide.png" res=2048
list

격자로 시작하고 싶다면 grid 로 칸을 먼저 만든 뒤 이름과 규칙만 손보는 방식이 편합니다.

asset "Assets/Hotspots/Tileset.asset" create
clear
grid cols=4 rows=4 pad=0.005 prefix="Cell"
@"Cell_0_0" name="Floor"
  rule axis type=top angle=10
list
핫스팟 스크립트 문법 (umx_hotspot) | UModeler X Manual