UV Surgeon — používateľský manuál

Úprava UV islandov s živým náhľadom textúry. Ostrovy si nesú textúry medzi Main, Dockom a Targetom. Každá mapa má vlastnú Target textúru. Export zapíše bakeované mapy plus UV do meshu (OBJ, GLB, alebo chirurgický FBX UV patch).

Produkt: UV Surgeon od SpriteSurgeon Web: spritesurgeon.com Podpora: spritesurgeon@gmail.com

1. Čo UV Surgeon je

UV Surgeon je 2D editor UV islandov pre hry a 3D prácu. Importuješ model, ktorý už má UV, posúvaš / rotuješ / škáluješ ostrovy, držíš textúry v súlade a exportuješ aktualizované mapy a UV. Nie je to 3D modelár ani automatický unwrap.

  • Main canvas — UV layout na mriežke 0–1 (alebo UDIM) s náhľadom textúry.
  • Dock — ostrovy odložíš pod canvasy. Mapy, ktoré nesú, sa uložia s nimi.
  • Target canvas — druhý UV priestor. Každá mapa UV kanála má vlastnú Target textúru a ostrovy prichádzajú aj s pixelmi.
  • Export — bake textúr (PNG / TGA / JPEG) a zápis UV do meshu.
Plocha UV Surgeon so sample kaktusom: sidebar, hlavné UV, Target canvas s Texture assignment, dock a 3D náhľad
Celá plocha. Mode bar prepína Main, Target a Dock. Texture assignment nad Targetom spája každú mapu s vlastnou Target textúrou. Odložené ostrovy si nechávajú mapy, ktoré niesli.
Súprava

Tile Surgeon robí okraje dlaždíc a koridory. Stitch Surgeon bali sprity do atlasu. UV Surgeon edituje UV islandy na 3D meshoch. Sprite Surgeon (keď vyjde) ťahá sprity z existujúcich sheetov.

2. Disclaimer a limity

Disclaimer

UV Surgeon upravuje UV a textúry, ktoré dodáš ty. Neudeľuje práva k cudziemu umeniu ani modelom. Pred exportom si zálohuj zdrojové meshe a projekty.

  • Obsah ostáva tvoj. Exporty a projekty .uvs sú tvoje. Za legalitu importov zodpovedáš ty. Oficiálne podmienky: Help → License Agreement. Tento manuál EULA nemení.
  • Nie je to unwrap. Model už musí mať UV islandy. Aplikácia ich presúva; v 3D nerezá nové seamy.
  • Import. OBJ, binárne FBX 7.1+ a GLB/GLTF. ASCII FBX, staršie binárne FBX, sparse GLB a Draco GLB nie sú podporované.
  • Export meshu. OBJ (iba UV kanál 0), GLB (až štyri UV sady, triangulácia) a FBX UV update do kópie zdroja, keď bol projekt importovaný z binárneho FBX. Instancované FBX meshe sa preskočia. Extra UV sloty vytvorené len v appke sa do FBX ako nové vrstvy nezapíšu.
  • OBJ z GLB. Ide, s limitmi: triangulácia, len UV0, bez materiálov/textúr v OBJ. Pre GLB zdroj radšej exportuj GLB.
  • 3D náhľad. Ak OpenGL nie je dostupné, 2D editácia ostáva. View → Retry 3D Preview.

3. Rýchly štart (5 minút)

  1. Help → Open Sample Project — bundled kaktus (FBX + PBR mapy ako textúrové kanály). Alebo File → Import Model (Ctrl+M) pre vlastný OBJ/FBX/GLB.
  2. File → Add Texture Channel (Ctrl+T) — ak si importoval vlastný mesh, pridaj diffuse mapu na náhľad a bake.
  3. Klikni ostrov (Shift na viac, ťahanie na prázdnom mieste = box). Ťahaj na posun.
  4. Drž R a ťahaj na rotáciu, S na scale. V toolbare Rotate / Scale pivot: Local (vlastný stred) alebo Global (celá selekcia).
  5. Voliteľne: Ctrl+G zoskupí ostrovy. D ich odloží do Docku aj s textúrami. Zapni Target Canvas, načítaj alebo vytvor Target textúru pre mapu a T ostrovy pošle tam — UV aj pixely spolu. Pack je v pravom sidebare.
  6. File → Save As — projekt .uvs. Potom File → Export / Bake (Ctrl+E).

Pri prvom spustení Welcome ponúkne Open Sample Project (predvolené) alebo Start Empty. Potom kedykoľvek Help → Open Sample Project. Sample sa skopíruje do zapisovateľného priečinka, takže môžeš ukladať a exportovať bez siahania na inštaláciu.

4. Prehľad UI

Horný toolbar: rozlíšenie náhľadu, UV0, Move with texture a Local/Global pivot
Horný toolbar na širokom displeji (full mode): rozlíšenie náhľadu, UV kanál, Move with texture, Local/Global pivot, wireframe, density, Export.
Menu + toolbar — File, Edit, View, Help · rozlíšenie, UV kanál, Move with texture, Local/Global pivot
Sidebar — materiály, kanály, groups, Send / Place
Main + Target — mode bar prepína Target a Dock. Texture assignment je nad Targetom.
3D náhľad — voliteľný; Retry, keď GPU probe zlyhá
Dock — odložené ostrovy a uložené mapy · Target — jedna Target textúra na mapu · UV Pack — pravý sidebar

5. Import

File → Import Model otvorí OBJ, FBX alebo GLB. Po výbere súboru môžeš zlúčiť materiály do jednej sady (keď celý model zdieľa jeden UV priestor).

  • FBX — skupiny podľa FBX materiálov, nie podľa mien objektov. N-gony ostávajú. Až štyri UV kanály zo súboru.
  • OBJ — skupiny podľa usemtl. V meshi je jedna UV mapa; v appke môžeš pridať UV1–UV3 na editáciu.
  • GLB — pri importe triangulácia. Viac TEXCOORD sád, keď v súbore sú.

6. Canvas, výber a groups

  • Koliesko zoomuje. Medzerník + ťahanie alebo stredné tlačidlo posúva. Ctrl+0 reset zoomu, Ctrl+F fit.
  • Klik na ostrov; Shift+klik pridáva; ťahanie na prázdnom canvas = box. Ctrl+A všetko, Ctrl+D zrušiť výber.
  • Šípky posúvajú; Shift zväčší krok.

Groups

Vyber dva alebo viac ostrovov a stlač Ctrl+G (alebo + New Group v ľavom sidebare). Pomenované skupiny sú pod Groups. Klik na skupinu v zozname znova vyberie jej členov. Zoskupené ostrovy sa pri posune / rotácii / scale hýbu spolu a Pack ich berie ako jednu pevnú jednotku, takže relatívny layout ostane.

  • Ctrl+Shift+G (alebo Dissolve) grouping zruší, ostrovy neodstráni.
  • Lock v sidebare ochráni skupinu pred omylom.
  • Groups sú per canvas: main a Target majú vlastný zoznam.
Dva sample ostrovy v skupine Petals, vybrané na hlavnom canvase so zoznamom Groups v sidebare
Groups v ľavom sidebare. Dva ostrovy kaktusa sú v skupine „Petals“ — hýbu sa a packujú ako jedna jednotka.

7. Posun, rotácia, scale

Ťahaním presúvaš výber. Drž R (alebo Alt+ťahanie) na rotáciu; S na scale. Esc zruší prebiehajúce gesto.

Combo v toolbare Rotate / Scale pivot platí pre rotáciu aj scale:

  • Local — own center — každý ostrov okolo vlastného stredu. Pri scale ostávajú centroidy na mieste.
  • Global — selection — celá selekcia okolo spoločného stredu. Viac ostrovov sa pri scale roztiahne ako jedna bunka.

Move with texture (toolbar, alebo U) posúva náhľad spolu s ostrovom a rozhoduje, či sa pri odoslaní do Docku alebo na Target nesú aj pixely. Vypnuté = len UV: tvar sa hýbe, pixely ostávajú.

Číselný scale v sidebare pre jeden ostrov ostáva okolo vlastného stredu.

8. Textúrové kanály

Každá materiálová sada môže mať viac kanálov (diffuse, normal, …). Klik na kanál v sidebare ho ukáže na canvase. UV kanál v toolbare prepína, ktorú sadu máp edituješ — a s ňou aj Target textúry toho kanála. Freeze kanál vynechá z transformácie textúry aj z odoslania na Target.

Druhý UV kanál pri OBJ projekte zobrazí upozornenie: OBJ export stále píše len UV0; na viac UV sád použi GLB, alebo FBX export, ak bol zdroj FBX.

UDIM: ak sa nájde viac dlaždíc (1001, 1002, …), vyberieš ktoré načítať. Väčšina herných assetov používa jednu dlaždicu 0–1.

9. Dock

Dock je polica pod canvasmi. Zobrazíš alebo skryješ ju tlačidlom Dock v mode bare. Ostrovy tam odložíš, kým preusporiadaš dlaždicu, a potom ich vrátiš. Ostrov si berie textúru so sebou.

  • Vyber ostrovy na Main alebo Target a stlač D, alebo Send to Dock v pravom sidebare.
  • Každá mapa, ktorú ostrov nesie, sa uloží s ním. Toolbar Show dock textures zapína náhľady. Keď je Move with texture vypnuté, odloží sa len UV tvar.
  • Stored maps vpravo v Docku tie mapy vypíše. Klik jednu ukáže na odložených ostrovoch. Pravý klik a Use … for aktuálnu Main mapu použije, keď sa má uložený výrez stať mapou, ktorú edituješ. Current map vráti náhľad na mapu vybranú na Main.
  • Place on Canvas položí výber späť na Main, aj s textúrou. Ak ostrov prišiel z iného materiálu, môžeš sa prepnúť na ten materiál alebo nechať aktuálny.
  • Place on Target (from Dock) pošle výber z Docku na Target. T spraví to isté, kým je aktívny výber v Docku.
  • Škálovaný alebo otočený ostrov vyvolá Active Transforms Detected: transformácie sa použijú na položenie, alebo sa položí netransformovaný tvar. Ak sa uložená textúra a cieľ líšia veľkosťou, Resolution Mismatch sa pýta, či zachovať pôvodnú texel density, alebo zladiť rozlíšenie cieľa (pozri Target).
  • Pack na Main docknuté ostrovy preskakuje. Sú mimo dlaždice, kým ich nepoložíš.
Ostrovy kaktusa odložené v Docku pod UV canvasom, vedľa poličky zoznam Stored maps
Ostrovy v Docku a mapy, ktoré si niesli, v zozname Stored maps. Pack na Main ich nepohne, kým ich nepoložíš späť.

10. Target canvas a pack

Target je druhý UV priestor vedľa Main. Zapneš ho tlačidlom Target Canvas v mode bare (bodka na tlačidle znamená, že tento UV kanál už má Target textúru). Ostrovy sa tam presúvajú aj s pixelmi. Skrytie Targetu, keď je na ňom niečo vybrané, sa najprv opýta — skrytie ten výber zruší.

Jedna Target textúra na mapu

Každá mapa UV kanála spája jednu Main textúru s vlastnou Target textúrou. Mapa 1 môže byť diffuse, mapa 2 normal. Mapa, na ktorú sa pozeráš, je pozadie Target canvasu a každý ostrov tam ukazuje výrez tejto mapy. Prepnutie UV kanála v toolbare prepne aj tieto páry.

Otvor Texture assignment nad Target canvasom.

  • Load… / Replace…, alebo dvojklik na bunku Target. Obrázok vieš na riadok aj pustiť z prieskumníka.
  • New blank… vytvorí prázdnu Target textúru. Veľkosť, ktorú zvolíš, je Target veľkosť tohto UV kanála.
  • Remove zmaže Target textúru tej mapy. Ostrovy, ktoré už na Targete sú, ostanú. Ak to bola posledná Target textúra, ďalšie ostrovy tam nepošleš, kým jednu nenačítaš alebo nevytvoríš.
  • Ťahanie v stĺpci vymení dve Main textúry, alebo dve Target textúry. Druhý stĺpec ostane na mieste.
  • Mapa bez vlastnej Target textúry sa zobrazí a neskôr aj bakeuje ako čierna v Target veľkosti.

Hlavička píše názov a veľkosť Main → názov a veľkosť Target a volí, čo znamená rozdiel veľkostí:

  • Match UV — ostrov si nechá svoju UV veľkosť.
  • Hold density — ostrov si pri bake nechá texel veľkosť.

Táto voľba platí len keď má Target textúra inú veľkosť ako Main textúra. To isté je v pravom kliku na riadok, pod When sizes differ.

Texture assignment nad Target canvasom: každá mapa spája Main textúru s vlastnou Target textúrou
Texture assignment aktuálneho UV kanála. Každý riadok je jedna mapa: vľavo Main textúra, vpravo jej Target textúra. Mapa na obrazovke je pozadie, na ktoré sa kreslia ostrovy.

Odoslanie ostrovov

Skôr než ostrov môže pristáť na Targete, musí existovať aspoň jedna Target textúra — tá nastaví Target veľkosť. T bez nej sa opýta, či textúru načítať, alebo vytvoriť prázdnu.

  • Vyber ostrovy na Main alebo v Docku a stlač T, alebo Send to Target Canvas. Z Targetu ich D odloží do Docku aj s pixelmi, ktoré tam majú.
  • Z Main sa každá mapa vyreže z živej textúry. Z Docku ostrov prinesie mapy, ktoré mal uložené pri odložení. Zmrazené mapy ostanú bez zmeny.
  • Active Transforms Detected — ostrov je škálovaný alebo otočený. Transformácie sa použijú na položenie, alebo sa položí netransformovaný tvar.
  • Resolution Mismatch — zdroj a Target textúra majú iné rozlíšenie. Keep Original Texel Density drží hustotu pixelov, takže ostrov zaberie viac alebo menej UV priestoru. Match target resolution drží UV stopu a hustota pixelov sa preškáluje. Položenie späť na Main ponúka Match Main Canvas resolution s rovnakým významom.
  • Klik na Target canvas z neho spraví aktívne pole. Pack, explode a overlap potom platia tam.

Pack

UV Pack v pravom sidebare rozloží ostrovy v aktívnej dlaždici 0–1. Neunwrapuje; len preusporiada (a voliteľne otočí) to, čo už máš.

  • Scope — všetky ostrovy na aktívnom canvase, alebo len selected.
  • Algorithm — Shelf (rýchly) alebo Guillotine (tesnejší pack).
  • Padding / Margin — medzera v pixeloch medzi ostrovmi a od okraja dlaždice.
  • Scale to fit tile — jednotne zmenší pack set, aby sa zmestil, a potom rozloží.
  • Allow 90° rotation — skúsi štvrťotáčku ostrova, keď to zhustí pack.
  • Zoskupené ostrovy ostávajú spolu (jedna pack jednotka). Docknuté ostrovy na main canvase sa preskočia.

Explode je opačný ťah: prekryté ostrovy rozfukuje do radov nad/pod dlaždicu, aby si ich mohol ručne triediť a znova packnúť.

Ostrovy zabalené na Target canvase aj s textúrami; nad canvasom otvorené Texture assignment
Ostrovy odoslané na Target aj s textúrami a zabalené (Guillotine, scale to fit, 90° rotácia). Texture assignment nad canvasom ukazuje, ktorá Main mapa je spárovaná s Target textúrou na obrazovke.

11. 3D náhľad

View → Model Preview ukáže mesh s aktuálnymi UV, keď OpenGL funguje. Na niektorých notebookoch (hybrid NVIDIA/AMD/Intel) prvý probe zlyhá: 2D ostáva použiteľné. View → Retry 3D Preview probe spustí znova. Zákazník nemusí nič nastavovať v ovládacom paneli GPU.

3D náhľad sample kaktusa v črepníku
3D náhľad sample kaktusa. Ťahaním orbit; Fit zarámcuje mesh. 2D editácia na tomto paneli nezávisí.

12. Density a overlap

Farby wireframe density porovnávajú texel density medzi ostrovmi (natiahnuté vs husté). Overlap highlight označí ostrovy, ktoré sa v UV prekrývajú. Sú to pomôcky, nie náhrada za pohľad na bake.

13. Projekty, autosave, undo

  • Ctrl+S / Ctrl+Shift+S uloží projekt .uvs (layout + cesty k textúram + úpravy).
  • Zatvorenie s neuloženými zmenami sa spýta. Autosave vie obnoviť prácu po páde, keď už bol projekt aspoň raz uložený (drafty sú vedľa projektu v .uvsurgeon_autosave).
  • Ctrl+Z / Ctrl+Y undo / redo transformácií.

14. Export / bake

Dialóg Export / Bake s voľbami textúr, OBJ a FBX UV update
Export / Bake: textúry, OBJ, GLB a FBX, keď je zdroj FBX (sample kaktus je FBX, checkbox je viditeľný).

File → Export / Bake (Ctrl+E). Priečinok a prefix. Dlhé bake sa dá zrušiť v progress dialógu.

Main Canvas alebo Target Canvas volí, z ktorých pozícií ostrovov ide bake aj mesh. Na Targete sa každý riadok Texture assignment bakeuje ako vlastný obrázok. Riadok bez Target textúry sa bakeuje na čiernu v Target veľkosti, rovnako ako ho canvas ukazuje.

Export meshu píše každý UV kanál z toho jedného canvasu. Ostrovy, ktoré ostali na druhom canvase alebo v Docku, vypíše Islands Outside Export Canvas. Export Anyway ich zapíše do pásu vpravo od štvorca 0–1 len v exportovanom súbore. Move to Margin spraví ten istý posun v projekte, aby si ho videl pred exportom.

VýstupPoznámka
TextúryPNG, TGA alebo JPEG. Samostatné súbory, nie sú v meshi.
OBJAktualizuje UV0 (vt). Topológiu plôch pre OBJ/FBX zdroje zachová. Zdroj GLB: triangulácia, UV0, bez materiálov v OBJ (potvrdzovací dialóg).
GLBTriangulácia; až štyri UV sady; textúry v GLB nie sú (exportuj ich zvlášť).
FBXLen ak je zdroj binárne FBX. Zapíše kópiu súboru s UV vrstvami patchnutými na mieste. Polygóny, normály, smoothing, materiály a skiny sa kopírujú, neprestavajú. Voliteľne: nasmerovať materiály na bakeované textúry (predvolene vypnuté).
FBX export

Vyberieš pozície z Main alebo Target. Ostrovy na druhom canvase alebo v Docku sa nahlásia skôr, než sa mesh zapíše. Instancované (zdieľané) FBX meshe sa preskočia s warningom. ASCII FBX sa nezapisuje. Originál si nechaj; exporter píše novú kópiu vedľa prefixu.

15. Skratky

F1 otvorí zoznam v appke. Skratky platia, keď má focus canvas alebo dock.

AkciaSkratka
Import modeluCtrl+M
Pridať textúruCtrl+T
Uložiť / Uložiť akoCtrl+S / Ctrl+Shift+S
Export / bakeCtrl+E
Undo / redoCtrl+Z / Ctrl+Y
Pan / zoomMedzerník+ťahanie · koliesko
Rotácia / scaleDrž R / S + ťahanie
Group / dissolveCtrl+G / Ctrl+Shift+G
Dock / targetD / T
UV-only posunU

16. FAQ

Kde je sample?

Help → Open Sample Project načíta bundled kaktus (FBX a atlas mapy ako textúrové kanály). Na ňom vyskúšaj groups, dock, Target pack, global scale a 3D náhľad pred importom vlastného meshu.

Pack pohol zlý canvas?

Najprv klikni na canvas, ktorý chceš (Main alebo Target). Pack ide na aktívne pole. Ostrovy v Docku sa na Main preskočia.

Prečo je Target čierny?

Tá mapa nemá Target textúru. Načítaj ju, vytvor prázdnu, alebo prepni Map na riadok, ktorý ju má. Export robí to isté: riadok bez Target textúry sa bakeuje načierno.

Ostrov zmenil veľkosť, keď som ho poslal

Zdroj a cieľ mali iné rozlíšenie a Keep Original Texel Density drží hustotu pixelov tým, že zmení, koľko UV priestoru ostrov zaberie. Match target resolution (alebo Match Main Canvas resolution) nechá UV stopu na mieste.

Textúra s ostrovom neprišla

Move with texture bolo vypnuté, takže sa pohol len UV tvar. Zmrazené mapy ostanú tiež bez zmeny. Odložený ostrov prináša mapy, ktoré mal uložené — náhľad je pod Stored maps.

Prečo nevidím FBX export?

Checkbox FBX je len keď je zdrojový model binárne .fbx.

Prečo ostrov v FBX neodišiel?

Instancované meshe so zdieľanou Geometry nemôžu mať unikátne UV — preskočia sa. Extra UV kanály vytvorené len v appke sa ako nové FBX vrstvy nepridajú.

3D náhľad je prázdny?

View → Retry 3D Preview. 2D na tom nezávisí.

Podpora

spritesurgeon@gmail.com · spritesurgeon.com