Skip to content

Commit a8b15f6

Browse files
committed
Avatar Wizard tool
1 parent 1bf7abf commit a8b15f6

File tree

7 files changed

+660
-56
lines changed

7 files changed

+660
-56
lines changed

.opencode/UI_UX_Improvements.md

Lines changed: 57 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,76 @@
22

33
## Overview
44

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.
66

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.
88

99
---
1010

11-
## 1. AvatarSetupWizard Improvements
11+
## 1. AvatarSetupWizard improvements
1212

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.
1414

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
2216

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
2720

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
3352

3453
---
3554

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.
3758

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
3960

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
4470

4571
---
4672

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

Comments
 (0)