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

  1. Open its window from the menu FACS Utils/Avatar Tools/Skinned Mesh Optimizer.
  2. Put the root GameObject into the object selector, and press Scan!.
  3. Select what blendshapes you want to apply and remove from the meshes.
  4. When ready, press the Run! button. The resulting Prefab is saved at Assets/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 unpacked GameObjects, from Scene 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).