Table of contents
Optimization
The Optimization panel provides tools for reducing your model's complexity and improving performance. It's a container with sub-panels grouped by what they act on:
- Materials - combine materials, convert textures to PNG
- Mesh Cleanup - join, separate, remove doubles, normals, transforms
- Shape Keys - remove unused, repair, optimize static
- Bones & Weights - merge bones and weights, delete unused bones/groups
- Atlas Generation - combine textures into a single atlas (being removed, see below)
📝 These panels were recently reorganized. Material Operations is now Materials (mesh work moved out of it), Mesh & Bone Cleanup is now Bones & Weights, and the old nested Mesh Tools panel was split into Mesh Cleanup and Shape Keys. Atlas Generation moved to the bottom of the list.
Table of Contents
Materials
Tools for optimizing the materials and textures on your model.
Combine Materials
Merges multiple materials into fewer materials:
- Reduces draw calls
- Improves performance
- Maintains texture assignments
- Preserves UV maps
- Ideal for objects sharing similar materials
How to use:
- Select your model
- Click Combine Materials
- Materials with the same properties will be merged
Convert All to PNG
Converts all textures in your model to PNG format:
- Ensures maximum compatibility across platforms
- Maintains alpha channels
- Helps prevent texture issues in-game
- Standard format for VRChat
How to use:
- Select your model
- Click Convert All to PNG
- All textures will be converted and saved
Mesh Cleanup
Everything that reshapes or tidies up mesh objects.
Join Meshes
All:
- Combines all meshes into one object
- Maintains material assignments
- Preserves vertex groups and weights
- Ideal for final optimization
Selected:
- Merges only chosen meshes
- Perfect for partial optimization
- Keeps other meshes separate
- Useful for selective optimization
How to use:
- Select meshes (for Selected)
- Click the appropriate join button
- Meshes will be combined
Separate By
Split a mesh into multiple objects.
- Materials - one object per material. Good for organizing complex models or optimizing specific sections.
- Loose Parts - one object per disconnected piece. Useful for finding stray/hidden geometry.
- Shapes - creates separate meshes from shape keys (advanced; useful for editing or analysis).
⚠ Separation isn't always easy to undo, save first.
Remove Doubles
Eliminates duplicate vertices in your mesh:
- Adjustable threshold for precise control
- Reduces vertex count
- Fixes common mesh issues
- Improves performance
How to use:
- Select your mesh
- Set the merge distance threshold
- Click Remove Doubles
- Duplicate vertices within the threshold will be merged
Normals
- Recalculate - fixes inside-out faces and shading issues by making face directions consistent. This is the one you usually want (after mesh edits, boolean ops, or import shading problems).
- Flip - inverts all normals. Only use this if the entire mesh is inside-out.
Transforms
Apply Transformations bakes an object's position, rotation and scale into the mesh and resets the transform to defaults. Important before merging models and before creating shape keys, and after scaling.
The small button beside it applies transforms to all objects at once.
⚠ Applying transforms can't be easily undone, save first.
When to Use Each Feature
- Join Meshes: For final optimization before export
- Separate By: When you need to isolate part of a model
- Remove Doubles: When a mesh has overlapping or duplicate vertices
- Recalculate Normals: When shading looks wrong
- Apply Transformations: Before merging models or creating shape keys
⚠ Important: These operations are permanent. Always save your work before using these tools. Consider keeping a backup of your original files.
Shape Keys
- Remove Unused Shapekeys - removes shape keys that don't actually deform the mesh, reducing file size.
- Repair Broken Shapekeys - undoes a bogus offset that some Blender operations bake into every shape key at once. See below.
- Optimize Static Shapekeys - keeps only the vertices a shape key actually moves, significantly reducing file size. Safe and recommended before export.
Repair Broken Shapekeys, in detail
Certain Blender operations leave every non-basis shape key displaced by the same wrong amount, so the mesh jumps to a strange pose the moment any key is dialled above zero.
The tool works out that common offset by comparing all the non-basis keys vertex by vertex and taking the position most of them agree on, then subtracts it from each key. Keys carrying a genuine expression on top of the corruption keep that expression, they only lose the shared error.
Use it when: every shape key is wrong in the same way. That's the shape of damage it's built for.
⚠ Not a general repair button. If only one or two keys are broken, or each is broken differently, there is no majority to find and the result will be wrong. Fix those by hand.
💡 It needs at least one non-basis shape key to compare against. On a mesh with only a Basis it does nothing and says so.
Preparing for VRChat upload
- Remove Unused Shapekeys
- Optimize Static Shapekeys
- Recalculate Normals (see Mesh Cleanup)
- Proceed to export
Bones & Weights
The Bones & Weights sub-panel (formerly "Mesh & Bone Cleanup", and "Bone Merging" before that) provides advanced tools for optimizing your avatar's armature and reducing bone count.
Merge Bones
Merge Options
Merge Mesh:
- Available when multiple meshes are present
- Combines meshes before bone operations
- Preserves weight assignments
Merge Bone:
- Controls which bones to merge
- Smart selection based on bone influence
- Preserves important bones automatically
Merge Ratio:
- Sets the merging threshold (0.0 to 1.0)
- Higher values merge more aggressively
- Lower values are more conservative
- Recommended: Start with 0.5 and adjust
Primary Actions
Refresh Root:
- Updates root bone references
- Fixes hierarchy issues
- Ensures proper bone relations
- Use after making changes to armature
Bone Merge:
- Executes the merging process
- Combines selected bones based on settings
- Redistributes weights intelligently
- Reduces overall bone count
Merge Weights
To Parents:
- Combines all weight groups
- Optimizes weight distribution
- Reduces overall weight count
- Good for final optimization
To Active:
- Transfers weights to active object
- Ideal for specific mesh optimization
- Maintains weight influence
- Use for selective optimization
Additional Options
Keep Merged Bones:
- Retains merged bones as backup
- Allows for reverting changes
- Useful for testing results
- Disable for maximum optimization
Merge Visible Meshes Only:
- Processes only visible objects
- Helps with selective optimization
- Maintains hidden backups
- Good for iterative workflow
Delete
Zero Weight Bones:
- Deletes bones with no weight influence
- Reduces armature complexity
- Improves performance
- Safe to use in most cases
Constraints:
- Clears bone constraints
- Simplifies armature behavior
- Reduces computation needs
- Use if constraints aren't needed
Zero Weight Vertex Groups:
- Cleans empty vertex groups
- Reduces file size
- Improves viewport performance
- Safe cleanup operation
Keep Twist Bones Option:
- Preserves important animation bones
- Maintains smooth deformations
- Prevents animation issues
- Enable for better animation quality
Keep Empty Parent Bones:
- Retains parent bones even without weights
- Maintains hierarchy integrity
- Prevents structural issues
- Enable for complex rigs
Skip Hidden Bones:
- Ignores hidden bones during cleanup
- Preserves specific rig setups
- Ensures hidden bones remain unaffected
- Use when you have helper bones
Bone Tools
Duplicate Bones:
- Creates copies of selected bones
- Useful for custom rigging
- Maintains original structure
- Advanced feature for custom rigs
Connect Bones:
- Points each bone's tail at its child, so a limb reads as one continuous chain instead of a row of floating bones
- Connects a bone to its parent only where the parent has a single child, which is where the bone's head already sits on the parent's tail
- Deliberately leaves branching joints alone (shoulders and hips off the spine, finger bases off the wrist)
- Runs the same operation as the Connect Bones checkbox in Fix MMD Model's ⚙ Model Settings, so you don't need both
⚠ Connecting a bone is not cosmetic. Blender snaps the bone's head onto its parent's tail, which moves the bone. That is why Cats only connects the cases where nothing has to move, connecting everything would drag both arms and both legs into the middle of the spine.
The digitigrade-leg and twist-bone generation tools are not here, they have their own Bone Tools panel.
Best Practices
- Always start with a backup - Bone merging significantly modifies your armature
- Test merge ratios - Try different values on a copy first
- Check animations after merging - Ensure movements still work correctly
- Use cleanup tools last - Do all modifications before cleanup
- Keep twist bones - Unless you're absolutely sure you don't need them
- Refresh root after changes - Keep bone hierarchy up to date
Workflow Example
- Start with Merge Ratio at 0.5
- Enable Keep Merged Bones for safety
- Click Bone Merge
- Check the result
- If satisfactory, run Zero Weight Bones
- Then Zero Weight Vertex Groups
- Finally Constraints if not needed
⚠ Warning: These operations significantly modify your armature structure. Always keep a backup of your original file before proceeding. Test on a copy first if you're unsure.
Atlas Generation
The Atlas tab helps you combine multiple textures into a single texture atlas, reducing draw calls and improving avatar performance.
⚠ Material Combiner is deprecated and will be removed in Cats 5.2.4.0. The external Material Combiner (used for atlasing) is no longer maintained by its author. A built-in atlas tool will replace it, it is not shipped yet. Until then, the current integration still works as described below.
What is an Atlas?
A texture atlas combines multiple textures into one larger texture, which:
- Reduces draw calls significantly
- Improves avatar performance
- Helps meet platform texture limitations
- Simplifies material management
Requirements
The Atlas feature requires the Shotariya Material Combiner (SMC) extension to be installed.
Installation States
The Atlas tab will show different interfaces depending on SMC status:
When SMC is NOT installed:
- Shows installation instructions
- Provides direct download link
- Explains why SMC is needed
When SMC is disabled:
- Shows quick enable button
- No restart required
- Instant access after enabling
When SMC is outdated:
- Shows version compatibility information
- Provides link to compatible version
When SMC is properly installed:
- Full access to atlas creation tools
- Material combining options available
How to Use Material Combiner
- Select your model's armature or meshes
- Open the Atlas Generation tab in the Optimization panel
- Review the list of materials
- Check/uncheck boxes to include/exclude materials
- Use Select All/Deselect All for quick selection
- Configure atlas settings:
- Set atlas size (texture resolution)
- Set size for materials without images (default: 32px)
- Click 'Save atlas to...' and choose save location
- Wait for the atlas to be created
Important Notes
📝 For PBR/Normal maps: Use Tuxedo Blender Plugin instead. Material Combiner in Cats is primarily for diffuse textures.
📝 Material Combiner (Atlas) is not developed by us. Please report any issues on their GitHub.
⚠ Version Compatibility: Our Material Combiner fork is for Blender 5.1+. If you're using Blender 5.0 or older, use the original Material Combiner instead.
⚠ Troubleshooting: If materials don't merge properly or textures are missing from the atlas, check the Material Combiner troubleshooting guide.
Benefits of Using Atlas
- Reduces draw calls from multiple materials to one
- Significant performance improvement
- Helps meet platform mesh/material limits
- Easier to manage single material vs. many
Optimization Workflow
Recommended Order
-
Mesh Cleanup:
- Apply transformations
- Join meshes if needed
- Remove doubles
- Recalculate normals if shading looks wrong
-
Shape Keys:
- Remove unused and optimize static shape keys
-
Materials:
- Combine materials
-
Atlas Generation:
- Create texture atlas
- Reduce material count
-
Bones & Weights:
- Merge bones
- Clean up unused bones and weights
-
Final Check:
- Test animations
- Verify materials
- Check vertex counts
Performance Tips
- Atlasing gives the biggest performance boost
- Bone merging helps with platform limits
- Material combining reduces draw calls
- Remove doubles reduces vertex count
Related Pages:
- Quick Access - Basic model operations
- Merge & Attach - Merging multiple models
- Bone Tools - Digitigrade legs and twist bone generation
- Translation - Translate names before optimizing
- Troubleshooting - Common optimization issues
Last Updated: August 4, 2026 | Plugin Version: 5.2.3.1 | Blender: 5.1 & 5.2 (5.2 LTS recommended)
Please do not report any issues for Blender versions below 5.1 (supported: 5.1 and 5.2, recommended 5.2 LTS)
📖 This wiki documents Cats 5.2.3.*. For 5.2.2.0 and earlier, see the legacy wiki.