Skinned Mesh Optimizer - FACS01-01/FACS_Utilities GitHub Wiki
Helps you optimize meshes used in your avatar's Skinned Mesh Renderers
, by applying and removing blendshapes, and by removing unneeded internal bone references.
The selected avatar GameObject
/Prefab
/FBX
is cloned into a new Prefab asset
, with the new Mesh
files embedded as sub-assets.
The tool doesn't delete bones/GameObjects
from the hierarchy, only removes the dependencies that Mesh
assets and Skinned Mesh Renderers
have on some of them.
For applying internal bone reference optimization to every imported Model asset
(.fbx, .blend, etc) automatically, check Optimized Model Import.
How to use
- Open its window from the menu
FACS Utils/Avatar Tools/Skinned Mesh Optimizer
. - Put the root
GameObject
into the object selector, and press Scan!. - Select what blendshapes you want to apply and remove from the meshes.
- When ready, press the Run! button. The resulting
Prefab
is saved atAssets/FACS Optimized Meshes/
.
Optimizing Blendshapes
After scanning the selected GameObject
, if any mesh has blendshapes, you'll get 2 foldout menus:
- Available BlendShapes to Remove, by Mesh
Lists evey mesh found with its blendshapes. If a mesh didn't have blendshapes it won't show up here, but will still get the internal bone reference optimization.
To apply and delete blendshapes, you have to toggle them ON here. If you can't input a weight to apply to a blendshape, means that its "empty" and it doesn't actually control anything in the mesh (safe to remove).
To the right of every mesh, and at the bottom of this menu, are buttons to select All/None blendshapes, or to select Empties Only.
Empty blendshapes are automatically toggled for removal after Scanning the selected GameObject
.
- Keep BlendShapes from Animation Sources
This menu is only for deselecting blendshapes previously selected in the first menu, by scanning Animations and finding blendshapes in usage.
You can use the Auto Detect buttom to fill out the list with Animation Sources
present in the avatar. Else, you should manually input Roots where animations are played, and their respective animation sources (Animation Clips
, Animator Controllers
and Animator Override Controllers
).
When ready, press the Deselect Blendshapes button. You have to press it; blendshapes won't be deselected automatically.
Extra tips and notes
-
You can select
Prefabs
,FBX
, or unpackedGameObjects
, fromScene
or Project folders. -
I recommend optimizing all internal bone references, so other tools like Copy Components can do a better job calculating Component Dependencies. Also optimized meshes should have better performance (need to benchmark this hehe).