> [!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).