> [!abstract] Summary
> Practical guide to **UV unwrapping in Maya** — what UVs and UDIMs are, a clean step-by-step unwrap process, texel density, optimization rules, and how the output feeds Mari / Substance down the pipeline. If you are about to unwrap your first asset, follow *Part 2 — Process* top to bottom.
---
# Part 1 — Theory
## What Are UVs
- UVs are the **2D coordinates** that map a 3D surface to a 2D texture.
- Classic analogy: **unfold a chocolate wrapper** — the 3D shape becomes a flat pattern.
- Same principle as a **cardboard-box pattern**: cuts in smart places let the shape lie flat without distortion.
## UDIMs
- **One UV square in Maya = one UDIM tile.**
- Tiles are numbered — two conventions exist:
| Convention | Syntax | Software |
| --- | --- | --- |
| **Mari** | `1001`, `1002`, `1011`… | Mari, Renderman, Arnold, Karma |
| **Mudbox** | `U1_V1`, `U2_V1`… | Legacy Mudbox / some older tools |
> [!tip] PROTOCOL convention
> Always export textures using the **Mari / UDIM** convention — the vault's naming rule uses `$UDIM` (see `CLAUDE.md` and `PROTOCOL/DOCUMENTATION/PROTOCOL Naming Convention.md`).
---
# Part 2 — Unwrap Process
Follow this order — each step depends on the previous one.
## 1. Prepare the mesh
1. **Delete history** — `Edit → Delete by Type → History`.
2. **Freeze transformations**, especially **Scale** — the UV layout depends on the scale at unwrap time; a non-frozen scale will compress or stretch the projection.
3. Make sure the mesh is **clean**: no overlapping faces, no non-manifold geometry, no lamina faces.
## 2. Visualize distortion
Use Maya's UV Toolkit to diagnose before you cut:
| Display mode | What to look for |
| --- | --- |
| **Checker pattern** | Deformed squares = texture will stretch/skew. Aim for **uniform, square** checkers. |
| **UV Distortion heatmap** | **Blue** = compressed, **Red** = stretched. You want **green/neutral** everywhere. |
## 3. Initial projection
- Start from a **Planar Projection** on the face(s) you are about to unwrap.
- For cylindrical objects, a **Cylindrical Projection**; for round shapes, **Spherical**. Planar is the safest default.
## 4. Cuts
Place cuts where a seam is either **invisible** or **acceptable**:
- **Symmetry line** (mirror cut).
- **Hidden areas** — under the chin, inside the ear, under a collar, inside a mouth cavity.
- **Natural breaks** — clothing seams, panel lines on hard-surface, belt joins.
- **High-curvature ridges** where the pattern *would* distort if forced flat.
> [!warning] Avoid cuts where the camera dwells for long. A seam there will show up no matter how carefully you paint over it.
## 5. Unfold
- `Modify → Unfold` in the UV editor (or **U** in the UV Toolkit).
- Iterate: unfold → check heatmap → add or remove cuts → unfold again.
## 6. Optional retouches
- **Sew** — merge two edges back together if the seam is visible but the distortion is acceptable.
- **Orient UV straight** — straighten UV shells that represent naturally straight features (belts, panels, window frames). Makes texturing and procedural masks much easier.
## 7. Layout
1. **Preserve 3D ratio** — every UV shell must occupy the same texel-per-cm ratio.
2. Do **not** rotate shells after placement if you already oriented them — re-rotating breaks the orientation logic.
3. Leave **padding** between shells — common values: 8 pixels at 2K, 16 pixels at 4K. Some shaders / renderers are fussy with tight padding.
4. Decide the **number of UDIMs** — match it to the texel density you need, not to the number of meshes.
---
# Part 3 — Texel Density
Texel density = how many texels cover a given unit of world space. Consistent texel density across UDIMs is the difference between a convincing lookdev and a patchy one.
- Use the **UV Toolkit → Texel Density tool** in Maya to measure and equalize shells.
- A common reference is **10.24 texels/cm at 2K** (≈ 20.48 at 4K) — adjust to the asset's screen footprint.
- A hero prop the camera dwells on deserves more texel density than a background `env` asset.
- Keep the **same texel density within a single asset** unless you are intentionally hiding detail on back/hidden faces.
---
# Part 4 — Optimization Rules
> [!important] Before unwrapping, always know:
> - The **final camera position** relative to the object.
> - The **render resolution**.
> - The desired **texture size** — larger = longer to render.
> - The **minimum UDIM count** you can get away with.
## Practical guidelines
- **Think in symmetry** — mirror shells overlap on top of each other in UV space (stacked), sharing the same texture. Offset them by 1 unit in U if your painting software needs unique UVs (Mari, Substance).
- **Keep UVs as straight as possible** — orient shells on the grid. Straight UVs simplify texturing, masking, and procedural patterns.
- **Hide seams in low-visibility areas** — back of the head, inside the mouth, under overlapping geometry.
- **Do not waste texture space** — rotate / pack shells tightly. Tools: `Modify → Layout` with tight packing, or Rizom / UV-Packer for hero assets.
- **One texture per material group**, not per object. See the PROTOCOL naming rules in `CLAUDE.md`.
---
# Part 5 — Hotkeys & Tools
## UV Editor Essentials
| Action | Where |
| --- | --- |
| Open UV Editor | `Windows → Modeling Editors → UV Editor`, or **Shift + middle-click drag** menu on a selection |
| UV Toolkit | Displayed on the right of the UV Editor |
| Create Shell | `Create → Planar` / `Cylindrical` / `Spherical` / `Automatic` |
| Cut | Select edges → UV Toolkit **Cut** |
| Sew | Select edges → UV Toolkit **Sew** / **Move and Sew** |
| Unfold | UV Toolkit **Unfold** (`U`) |
| Orient Shells | UV Toolkit **Orient Shells** |
| Layout | UV Toolkit **Layout** |
| Texel Density | UV Toolkit **Texel Density** — get / set |
## Common Hotkeys
| Hotkey | Action |
| --- | --- |
| **U** (UV Editor) | Unfold selected UVs |
| **Ctrl + Shift + U** | Toggle UV shell mode |
| **Shift + > / <** | Scale shell in U / V |
| **F** | Frame selection |
| **Alt + drag** | Pan |
---
# Part 6 — Exporting UVs Downstream
## To Mari / Substance
1. **UDIM layout** — confirm tiles are numbered `1001`, `1002`…
2. **No overlapping shells** (unless intentionally stacked for symmetry — then offset by 1 UDIM).
3. **Consistent texel density** across the asset.
4. Export the mesh as **OBJ** or **FBX**. In Mari, OBJ preserves UDIMs reliably.
5. If exporting a **proxy** for Mari, keep the same UVs as the hi-res (see [[MARI Optimization]]).
## To Prism
- Follow the PROTOCOL asset naming convention — `XXX_[type]_assetName_[LODGeo]`.
- Publish the Maya scene as `maRiging` or `usdModeling` as appropriate.
---
# Part 7 — Common Pitfalls
> [!bug] Checker pattern stretches after unfold
> A face is disconnected or a UV is flipped. Select shells → UV Toolkit → **Flip** / re-unfold.
> [!bug] Scale was not frozen — UV distortion is baked in
> Delete the UVs, freeze transforms, re-project and re-unfold.
> [!bug] Texture seams visible after painting
> The cut is in the wrong place. Move the cut into a less-visible region and re-unwrap, or paint across the seam in Mari using the **Paint-Through** tool with the geometry hidden.
> [!bug] Mirror texture shifted / baked artifacts on symmetric shells
> Stacked shells without a 1-UDIM offset. In Maya, move the mirrored shell by +1 U so Mari and Substance can paint unique textures.
---
# Part 8 — References
- [[MAYA Automatic Retopo]] — retopology note, often paired with a fresh UV pass.
- [[MARI Single channel Practice Midg]] — first texturing step once UVs are ready.
- [[MARI Optimization]] — UV Patch size impact on Mari performance.
- `CLAUDE.md` → PROTOCOL naming convention (texture resolution, UDIM syntax).