Theres an Issue when using the Animator Driver as a Component, For now it only works correctly when you choose "Use State Machine Mode"!
CVR Advanced Avatar Preset Generator is a Unity editor tool designed for ChilloutVR avatars that allows creators to build and manage preset systems for their avatar parameters. It provides an intuitive way to create parameter configurations that can be quickly switched between, reducing the complexity of managing multiple avatar states.
- What is CVR Advanced Avatar Preset Generator?
- Why Use CVR Advanced Avatar Preset Generator?
- Use Cases
- Installation
- How to Use
- Technical Details
- Troubleshooting
- Contributing
CVR Advanced Avatar Preset Generator is a component that automatically generates a preset system for ChilloutVR avatars by:
- Scanning all available Advanced Avatar Settings (AAS) parameters
- Creating preset configurations with specific parameter values
- Generating the necessary animator drivers and animation clips
- Building animator controller logic to switch between presets seamlessly
It eliminates the need to manually create complex animator setups for managing multiple avatar configurations.
Managing multiple avatar states in ChilloutVR typically requires:
- Creating dozens of animation clips manually
- Setting up complex animator controller logic
- Managing multiple CVRAnimatorDriver components
- Keeping parameter values synchronized across different states
This process is time-consuming, error-prone, and difficult to maintain.
CVR Advanced Avatar Preset Generator automates this entire workflow:
- ✅ One-click generation of preset systems
- ✅ Automatic animator driver creation with proper parameter values
- ✅ Optimized animator controller with minimal transitions
- ✅ Easy preset management through a simple UI
- ✅ No manual animation clip creation required
Scenario: Your avatar has 5 tops, 4 bottoms, and 3 pairs of shoes (60 possible combinations).
Without CVR Advanced Avatar Preset Generator:
- Manually toggle each piece individually
- Remember which combinations look good
- Difficult to quickly switch between favorite outfits
With CVR Advanced Avatar Preset Generator:
- Create presets like "Casual," "Formal," "Sporty," "Beach"
- Each preset stores the exact combination of clothing
- Switch between complete outfits with a single dropdown
Scenario: Your avatar can be a human, demon, angel, or robot form.
Without CVR Advanced Avatar Preset Generator:
- Toggle horns, wings, halos, and other features separately
- Adjust colors, materials, and effects individually
- Easy to forget a parameter and have inconsistent results
With CVR Advanced Avatar Preset Generator:
- Create presets for each form
- Store all relevant parameters (toggles, colors, material properties)
- Instantly transform between character types
Scenario: You want different avatar appearances for different occasions.
Examples:
- "Christmas" preset: Red/green colors, winter accessories, festive effects
- "Halloween" preset: Dark colors, spooky particles, themed outfits
- "Summer" preset: Bright colors, sunglasses, beach accessories
- "Default" preset: Your everyday look
- Unity 2019.4.31f1 or later
- ChilloutVR CCK (Content Creation Kit)
- A CVRAvatar component on your avatar
-
Add the Scripts to Your Project:
- Copy
CVRPresetManager.csto yourAssets/Scripts/folder - Copy
CCK_CVRPresetManagerEditor.csto yourAssets/Editor/folder
- Copy
-
Add the Component:
- Select your avatar GameObject (the one with CVRAvatar component)
- Click "Add Component" in the Inspector
- Search for "CVR Preset Manager"
- Add the component
-
You're Ready! The component is now available on your avatar.
- On your CVRAvatar component, enable Advanced Settings
- Set your Base Controller (typically the default AvatarAnimator)
- Add all the parameters you want to control (toggles, sliders, colors, etc.)
- Click "Create Animator" to generate your base advanced settings
- On the CVR Advanced Avatar Preset Generator component, click "Refresh Available Parameters"
- This scans all your Advanced Avatar Settings and lists available parameters
- You should see all your parameters appear in the "Available Parameters" list
-
In the "Presets" list, click the
+button to add a new preset -
Name your preset (e.g., "Casual Outfit", "Demon Form", "Winter Theme")
-
Select the preset to edit it
-
For each parameter:
- ☑️ Check the box if you want this preset to control that parameter
- Set the value you want for this parameter in this preset
- Leave unchecked if this parameter should remain unchanged
-
Repeat for additional presets
Example:
Preset: "Demon Form"
✅ Horns = True
✅ Wings = True
✅ Tail = True
✅ HairColor-r = 0.8
✅ HairColor-g = 0.0
✅ HairColor-b = 0.0
✅ EyeGlow = True
❌ Shoes (not controlled by this preset)
- Click "Generate Preset System"
- The tool will:
- Create a "Preset Selector" dropdown in your Advanced Avatar Settings
- Generate CVRAnimatorDriver objects for each preset
- Create animation clips for each preset
- Add animator controller logic to switch between presets
- Wait for the success message
-
In Unity Play Mode:
- Use the Gesture Manager or similar tool
- Find the "PresetSelector" parameter
- Change the value to switch between presets
- All parameters should update automatically
-
In ChilloutVR:
- Upload your avatar
- Open the Advanced Avatar Settings menu
- Use the "Preset Selector" dropdown
- Select different presets to switch configurations
-
Parameter Discovery:
- Scans CVRAvatar Advanced Settings
- Extracts all parameter names and types
- Handles multi-component parameters (e.g., Color = R, G, B)
-
Driver Generation:
- Creates CVRAnimatorDriver GameObjects for each preset
- Each driver can handle up to 16 parameters
- Multiple drivers are created if a preset has more than 16 parameters
- Drivers are named:
PresetDriver_00,PresetDriver_01, etc.
-
Animation Clip Creation:
- One animation clip per preset
- Animates GameObject activation (enables/disables drivers)
- Animates all 16 parameter fields on each driver
- Sets proper values based on preset configuration
-
Animator Controller Logic:
- Adds "PresetSelector" integer parameter to base controller
- Creates "PresetSystem" layer
- One state per preset
- One transition per preset (from AnyState)
- Transitions trigger when PresetSelector matches preset index
After generation, you'll find:
Assets/
├── PresetClip_00.anim (Default Preset animation)
├── PresetClip_01.anim (First custom preset)
├── PresetClip_02.anim (Second custom preset)
└── ...
Avatar/
└── CVR Advanced Avatar Preset Generator/
├── PresetDriver_00 (Default preset drivers)
├── PresetDriver_01 (First preset drivers)
├── PresetDriver_01_00 (First preset, chunk 2 if >16 params)
└── ...
- Minimal Runtime Overhead: Drivers are disabled when not active
- Optimized Transitions: No blend times, instant switching
- No Nested Blend Trees: Direct animation clip usage
- Efficient Parameter Sync: Only marked parameters are synced
Solution: Move the CVR Advanced Avatar Preset Generator component to the same GameObject that has the CVRAvatar component (typically your avatar root).
Solution:
- Select your avatar
- Enable Advanced Settings on CVRAvatar
- Set the Base Controller field
- Try generating again
Possible Causes:
- Avatar not uploaded with latest changes
- Base controller not regenerated after making changes
- "PresetSelector" parameter not synced
Solution:
- Re-generate the preset system
- Re-upload your avatar
- Verify "PresetSelector" appears in Advanced Settings menu
Automatic Handling: The system automatically splits presets into multiple drivers if you have more than 16 parameters. This is handled transparently.
Solution:
- Ensure drivers are children of CVR Advanced Avatar Preset Generator GameObject
- Verify animation clips exist in Assets folder
- Check that "PresetSystem" layer exists in animator controller
Always create a "Default Preset" first with all parameters in their normal state. This provides a baseline to return to.
Create presets that control related parameters together (e.g., all outfit pieces in one preset).
Name presets clearly: "Summer Beach Outfit" instead of "Preset1"
Always test presets in Play Mode before uploading to ChilloutVR
You don't need every preset to control every parameter. Only check parameters that should change for that specific preset.
If you add new parameters or modify existing ones, regenerate the preset system to ensure everything is up-to-date.
Contributions are welcome! If you find bugs or have feature requests:
- Create an issue describing the problem or feature
- Submit a pull request with your changes
- Ensure code follows the existing style
- Test thoroughly before submitting