|
2 | 2 |
|
3 | 3 | ## Overview |
4 | 4 |
|
5 | | -This document outlines the UI/UX enhancements made to the Pawlygon Unity Tools to deliver a premium, native-feeling Editor experience. The changes target two primary components: the `AvatarSetupWizard` and the `FTDiffGenerator`. |
| 5 | +This document tracks the current UI and workflow improvements in Pawlygon Unity Tools. The focus is on making the editor flow easier to understand during multi-avatar setup, FBX reimport tracking, mesh review, and patch generation. |
6 | 6 |
|
7 | | -All improvements use Unity's native Immediate Mode GUI (IMGUI) but leverage advanced styling, layout groups, and rich text to dramatically elevate the visual quality and user flow without introducing external UI framework dependencies. |
| 7 | +The tools continue to use Unity IMGUI, but the interaction model now behaves more like a guided production workflow than a basic utility window. |
8 | 8 |
|
9 | 9 | --- |
10 | 10 |
|
11 | | -## 1. AvatarSetupWizard Improvements |
| 11 | +## 1. AvatarSetupWizard improvements |
12 | 12 |
|
13 | | -The `AvatarSetupWizard.cs` Editor Window has been transformed from a basic vertical list into a guided, step-by-step wizard. |
| 13 | +The `AvatarSetupWizard` has evolved into a multi-step workflow with clear progression and stronger batch-processing support. |
14 | 14 |
|
15 | | -### Visual Architecture |
16 | | -* **Premium Header:** Added a large (18px) bold title paired with a native `AvatarSelector` icon and a subtle 1px divider line to anchor the window. |
17 | | -* **Dynamic Step Indicator:** Replaced text-based steps with a horizontal "breadcrumb" tracker. |
18 | | - * Completed steps show in green with a native checkmark icon (`TestPassed`). |
19 | | - * The current step is highlighted in a theme-aware accent color. |
20 | | - * Steps are separated by native foldout chevron icons. |
21 | | -* **Boxed Sections:** Interactive elements are now wrapped in padded `EditorStyles.helpBox` containers, visually grouping related inputs and separating them from instructions. |
| 15 | +### Visual structure |
22 | 16 |
|
23 | | -### User Flow & Validation |
24 | | -* **Inline Validation:** Removed blocking `EditorUtility.DisplayDialog` popups for missing fields. Replaced with real-time, inline warning `HelpBox` messages that appear dynamically below inputs. |
25 | | -* **Primary Action Buttons (CTAs):** Introduced a custom `DrawPrimaryButton` method. Key progression buttons (e.g., "Create Avatar Structure", "Continue") now have a larger hit area (34-36f height), bold text, and a blue tint that adapts to Unity Personal/Pro skins. Buttons are automatically disabled via `EditorGUI.DisabledScope` when validation fails. |
26 | | -* **Clearer Path Summaries:** Read-only paths (like "Modified FBX") are grouped into a dedicated summary box, making it obvious they are reference data, not editable fields. |
| 17 | +- Added a branded header and step indicator so users can immediately see where they are in the process |
| 18 | +- Wrapped major areas in boxed sections to separate setup, review, and optional helper actions |
| 19 | +- Styled primary actions so the main progression buttons stand out from secondary actions |
27 | 20 |
|
28 | | -### Mesh Selection Step (Step 3) Upgrades |
29 | | -* **Bulk Actions:** Added "Select All" and "Deselect All" toolbar buttons above the mesh list. |
30 | | -* **Enhanced Row Status:** |
31 | | - * Successfully matched meshes display a green checkmark. |
32 | | - * Unmatched meshes are highlighted with a custom subtle yellow-tinted background, a warning icon, and rich text (`<color=#c27725>`) to immediately draw the user's eye to missing mappings. |
| 21 | +### Setup experience |
| 22 | + |
| 23 | +- Supports multiple avatar entries in one session instead of forcing a single-avatar flow |
| 24 | +- Lets users switch between shared-folder and separate-folder output modes |
| 25 | +- Uses inline validation so missing or invalid FBX/prefab inputs are shown before the user starts the process |
| 26 | +- Surfaces created paths and generated assets as part of the later review screens |
| 27 | + |
| 28 | +### Import tracking experience |
| 29 | + |
| 30 | +- Replaced a blind wait state with a per-entry import progress summary |
| 31 | +- Shows which copied FBXs have updated and which are still waiting on reimport |
| 32 | +- Supports both automatic transition after all imports are ready and a manual continue/skip path when the user needs it |
| 33 | + |
| 34 | +### Mesh review experience |
| 35 | + |
| 36 | +- Review is scoped to one avatar entry at a time, which keeps larger batch jobs understandable |
| 37 | +- Entry selection uses a toolbar so users can move between avatars quickly |
| 38 | +- Added bulk selection actions for mesh mappings |
| 39 | +- Matched and unmatched mesh rows show clearer status feedback so missing mappings are easier to spot |
| 40 | +- Users can explicitly apply mesh replacements or skip an avatar entry without leaving the wizard in an ambiguous state |
| 41 | + |
| 42 | +### Prefab helper experience |
| 43 | + |
| 44 | +- Added a dedicated `Prefabs` step instead of mixing optional post-processing into the main mesh workflow |
| 45 | +- Separates `Pawlygon VRCFT` setup from `PatcherHub` import so both actions are discoverable and independently optional |
| 46 | +- Displays contextual status messages after helper actions complete or fail |
| 47 | + |
| 48 | +### Completion experience |
| 49 | + |
| 50 | +- The finish screen summarizes output for every processed avatar entry |
| 51 | +- Users can review generated paths and restart the workflow from the same window |
33 | 52 |
|
34 | 53 | --- |
35 | 54 |
|
36 | | -## 2. FTDiffGenerator Improvements |
| 55 | +## 2. FTDiffGenerator improvements |
| 56 | + |
| 57 | +`FTDiffGenerator` is no longer hidden behind a context-only workflow. A custom inspector now presents the generator as a clear editor tool. |
37 | 58 |
|
38 | | -The `FTDiffGenerator` previously relied on a hidden context menu to trigger its core function. A new custom inspector (`FTDiffGeneratorEditor.cs`) was created to surface its functionality. |
| 59 | +### Inspector UX |
39 | 60 |
|
40 | | -### Custom Inspector UI |
41 | | -* **Explicit Action Button:** Added a prominent, premium "Generate Diff Files" button at the bottom of the inspector, completely removing the reliance on the obscure three-dot context menu. |
42 | | -* **Icon-Driven Sections:** Grouped the `originalModelPrefab` and `modifiedModelPrefab` fields under a section titled with a "Prefab Icon", and the output directory under a section with a "Folder Icon". |
43 | | -* **Real-time Validation:** If any prefab references are missing, or if they don't trace back to an FBX asset, the "Generate Diff Files" button disables itself, and a descriptive inline warning is shown, preventing runtime errors. |
| 61 | +- Added a visible `Generate Diff Files` button to the inspector |
| 62 | +- Grouped the references and output settings into clearer sections |
| 63 | +- Updated validation around the current data model, which now uses FBX references rather than prefab references |
| 64 | +- Disables the main action until both FBX references and the output directory are valid |
| 65 | + |
| 66 | +### Workflow alignment |
| 67 | + |
| 68 | +- The wizard creates diff generator assets automatically, so the inspector now acts as both a fallback and a direct manual tool |
| 69 | +- The inspector language matches the actual patch workflow: compare original FBX against modified FBX and write `.hdiff` output |
44 | 70 |
|
45 | 71 | --- |
46 | 72 |
|
47 | | -## Technical Approach |
48 | | -* **No External Dependencies:** All styling relies on `GUIStyle`, `GUI.backgroundColor`, and `EditorGUIUtility.IconContent`. |
49 | | -* **Theme Awareness:** Colors (like the primary button blue and divider lines) explicitly check `EditorGUIUtility.isProSkin` to ensure the interface looks perfect in both Unity Dark (Pro) and Light (Personal) modes. |
50 | | -* **Spacing Conventions:** Enforced usage of `EditorGUIUtility.standardVerticalSpacing` and custom `RectOffsets` to match Unity's internal padding guidelines, ensuring the tools don't feel cluttered or dense. |
| 73 | +## Technical notes |
| 74 | + |
| 75 | +- No external editor UI framework is required |
| 76 | +- Styling is built with `GUIStyle`, `EditorStyles`, icon content, and theme-aware colors |
| 77 | +- Layout choices favor readability during longer batch sessions, especially in import review and mesh selection |
0 commit comments