Painting 데이터와 채널
PaintData 자산화, 채널 단위 페인팅, 저장/복제 동작에 관한 안내입니다.
PaintData 자산
페인팅 결과는 씬 안에만 머무르지 않고 프로젝트 폴더에 영구 자산 으로 저장됩니다. 저장 위치는 두 트리로 나뉘어 있으며 Editor 전용 자산 과 Runtime 빌드 포함 자산 이 분리됩니다.
Editor 트리 — PaintData .asset
{SaveDataFolder}/PaintData/{Material 이름}/{Channel 이름}/
└─ <channel 이름>.asset
PaintData 는 에디터 전용 ScriptableObject 로, 빌드에는 포함되지 않습니다.
SaveDataFolder 기본값: Assets/UModelerXData/Editor
Runtime 트리 — .mat / .png
{PaintRuntimeFolder}/{Material 이름}/{Channel 이름}/
├─ <material 이름>.mat (Runtime 머티리얼)
└─ <channel 이름>.png (Runtime 텍스쳐)
머티리얼과 텍스쳐는 런타임에 사용되는 자산이므로 별도의 Runtime 트리에 저장됩니다.
PaintRuntimeFolder 기본값: Assets/UModelerXData/Runtime/PaintData
자동 셋업
오브젝트의 머티리얼 슬롯에 머티리얼이 들어가는 시점에 PaintData / 채널 / 레이어 자산이 자동으로 생성 되어 슬롯에 연결되고, 곧바로 페인팅을 시작할 수 있습니다.
다만 슬롯에 이미 들어 있는 머티리얼·텍스쳐의 종류에 따라 새 자산이 생성될지, 기존 자산을 그대로 사용할지가 달라집니다. 사용자가 의도치 않게 원본 에셋이 덮어써지는 일을 막기 위한 규칙입니다.
머티리얼 처리
| 슬롯의 머티리얼 | 동작 |
|---|---|
없음 (None) | 자동 셋업이 실행되지 않습니다. 머티리얼을 먼저 할당해야 페인팅을 시작할 수 있습니다 |
수정 가능한 .mat (프로젝트 Assets/ 하위의 일반 머티리얼) | 원본을 그대로 공유합니다. 같은 머티리얼을 사용하는 다른 오브젝트와 페인팅 결과가 함께 동기화됩니다 |
읽기 전용 머티리얼 (built-in, Packages/, UModelerX 패키지 내부 등) | PaintData 폴더에 .mat 클론 이 만들어지고 오브젝트의 슬롯도 클론으로 교체됩니다. 원본은 보존됩니다 |
텍스쳐 처리 (채널별)
| 슬롯의 텍스쳐 | 동작 |
|---|---|
| 없음 (빈 슬롯) | 채널의 기본 배경색으로 채워진 새 PNG 가 만들어집니다 |
수정 가능한 Texture2D 자산 (Assets/ 하위, 메인 자산) | 그 텍스쳐를 그대로 채택해 페인팅 결과가 원본 PNG 에 직접 기록 됩니다. 같은 텍스쳐를 공유하는 모든 오브젝트가 함께 동기화됩니다 |
| 읽기 전용 / sub-asset / 다른 타입 (built-in, FBX 내부 텍스쳐, RenderTexture 등) | 원본 픽셀을 초기값으로 복사한 새 PNG 가 만들어집니다. Apply 전부터 원본과 동일하게 보이며, 페인팅으로 원본이 덮어써지지 않습니다 |
채널 단위 PaintData
각 채널(Albedo / Normal / Metallic / Roughness / Mask 등)은 별도의 채널 항목으로 관리되며, 같은 PNG 를 가리키는 채널들은 PaintData 인스턴스를 자동으로 공유합니다 (중복 저장 방지).
Channels 패널
Painting 3D 인스펙터의 Channels 패널에서 현재 머티리얼이 가진 채널 목록을 확인하고, 해상도 조정 / 채널 선택을 할 수 있습니다. 자세한 내용은 Channels 그룹 페이지를 참조하세요.
다중 채널 동시 페인팅
브러시·도형·그라디언트 등 모든 페인팅 명령은 활성 채널 전체를 순회하며 한 번에 적용됩니다. 여러 채널에 동시에 같은 형태를 그릴 수 있어 PBR 머티리얼 작업이 빨라집니다.
씬 저장 동작
씬을 저장하면 해당 씬 안의 UModelerX 컴포넌트들의 PaintData 도 함께 디스크에 반영됩니다. 저장 직후에도 RT 가 즉시 복원되어 작업을 이어갈 수 있습니다.
오브젝트 복제
페인팅된 오브젝트를 복제하면 PaintData / 머티리얼(.mat) / 텍스쳐(.png) 자산도 함께 복제되어 원본과 분리됩니다. 한쪽을 수정해도 다른 쪽 페인팅에 영향을 주지 않습니다.
프리팹 편집 모드
Prefab Stage 안에서 페인팅한 뒤 스테이지를 벗어날 때, 진행 중이던 PaintData 가 프리팹과 함께 정리되도록 후처리가 동작합니다. (프리팹 저장 자체는 Unity 기본 저장 흐름을 따릅니다.)
브러시 색 유지
브러시의 현재 색은 채널별(Albedo / Metallic / Roughness …)로 자동 저장되어, 윈도우를 닫았다 다시 열어도 마지막 색이 그대로 유지됩니다.
