2021.9.16.105 - Baking rigged meshes into static, optimizations, tweaks
Hello everyone! Another small build, but hopefully with more goodies! Neos now internally supports transforming vertices on a rigged mesh in its own MeshX structure, which allowed me to implement a few fancy features!
Notably SkinnedMeshRenderer has a new "Explicit" bounds mode, which can be useful if you want to specify a bounding box. There's new helper functions to compute/expand those bounds from its current pose.
You can also bake rigged meshes into a static mesh now! The Glue tooltip will do that as well when baking meshes (unless in Skinned Mesh Mode), which should produce more expected behavior, rather than the mesh being baked in its default pose.
There's some small optimizations as well and few tweaks.
[h2]New Features:[/h2]
- Added support for Explicit SkinnedMeshRenderer bounds
-- You can specify the local bounds on the SkinnedMeshRenderer using the ExplicitLocalBounds and switch the BoundsComputeMethod to "Explicit"
-- This is useful if you know the range of motion of the skinned mesh renderer, e.g. when animated
-- It's STRONGLY discouraged to set this to really large bounds, as that will result in the mesh always being processed when it shouldn't and poor performance. Use the other compute methods instead
- Added "Compute explicit bounds from current pose" on SkinnedMeshRenderer, which will compute an explicit bounding box from the current pose of the mesh
- Added "Extend explicit bounds from current pose" on SkinnedMeshRenderer, which will expand the current bounds to cover the mesh's current pose
-- This can be used to pose the mesh to different locations and repeatedly use this to cover all the possible locations
- Added "Bake To Static Mesh" to SkinnedMeshRenderer
-- This will make the skinned mesh in its current pose with current blendshapes into a static mesh asset (previously requested by @Jack, @Ukilop and @Robyn (QueenHidi), GH #2212)
- Added intensity particle fade in / out templates
- Added Mass imperial units (based on feedback by @Birdthings, @Dante | Moderation Team, @Veer | CMO)
- Added support for Miles Per Hour, Feet Per Second and Knots for Velocity
[h2]Tweaks:[/h2]
- Glue tool in Bake Meshes mode will now bake any SkinnedMeshes in their current pose and blendshape weights, rather than baking them in their bindpose
- Grab mode context menu option is now hidden in desktop (suggested by @AshtonSparx, GH #3012)
- ParticleStyle templates are now localizable
- Merged MMC locale string tweaks by @ProbablePrime | Docs
- Merged Russian locale additions (including The Universe) by @Shadow Panther [RU/EN, UTC+3]
- Merged Korean locale additions by @MirPASEC
- Merged Japanese locale additions by @Aesc/あすく
- Merged English locale fixes by @Shadow Panther [RU/EN, UTC+3]
- Merged Finnish locale additions by @Toni Kat
[h2]Optimizations:[/h2]
- Optimized MeshX in-memory bone binding representation, removing reference to the mesh
-- This reduces both memory usage of meshes with bone bindings and GC workload
- Tweaked exact bounding box computation to cause smaller freeze when running on a complex hierarchy

Notably SkinnedMeshRenderer has a new "Explicit" bounds mode, which can be useful if you want to specify a bounding box. There's new helper functions to compute/expand those bounds from its current pose.
You can also bake rigged meshes into a static mesh now! The Glue tooltip will do that as well when baking meshes (unless in Skinned Mesh Mode), which should produce more expected behavior, rather than the mesh being baked in its default pose.
There's some small optimizations as well and few tweaks.
[h2]New Features:[/h2]
- Added support for Explicit SkinnedMeshRenderer bounds
-- You can specify the local bounds on the SkinnedMeshRenderer using the ExplicitLocalBounds and switch the BoundsComputeMethod to "Explicit"
-- This is useful if you know the range of motion of the skinned mesh renderer, e.g. when animated
-- It's STRONGLY discouraged to set this to really large bounds, as that will result in the mesh always being processed when it shouldn't and poor performance. Use the other compute methods instead
- Added "Compute explicit bounds from current pose" on SkinnedMeshRenderer, which will compute an explicit bounding box from the current pose of the mesh
- Added "Extend explicit bounds from current pose" on SkinnedMeshRenderer, which will expand the current bounds to cover the mesh's current pose
-- This can be used to pose the mesh to different locations and repeatedly use this to cover all the possible locations
- Added "Bake To Static Mesh" to SkinnedMeshRenderer
-- This will make the skinned mesh in its current pose with current blendshapes into a static mesh asset (previously requested by @Jack, @Ukilop and @Robyn (QueenHidi), GH #2212)
- Added intensity particle fade in / out templates
- Added Mass imperial units (based on feedback by @Birdthings, @Dante | Moderation Team, @Veer | CMO)
- Added support for Miles Per Hour, Feet Per Second and Knots for Velocity
[h2]Tweaks:[/h2]
- Glue tool in Bake Meshes mode will now bake any SkinnedMeshes in their current pose and blendshape weights, rather than baking them in their bindpose
- Grab mode context menu option is now hidden in desktop (suggested by @AshtonSparx, GH #3012)
- ParticleStyle templates are now localizable
- Merged MMC locale string tweaks by @ProbablePrime | Docs
- Merged Russian locale additions (including The Universe) by @Shadow Panther [RU/EN, UTC+3]
- Merged Korean locale additions by @MirPASEC
- Merged Japanese locale additions by @Aesc/あすく
- Merged English locale fixes by @Shadow Panther [RU/EN, UTC+3]
- Merged Finnish locale additions by @Toni Kat
[h2]Optimizations:[/h2]
- Optimized MeshX in-memory bone binding representation, removing reference to the mesh
-- This reduces both memory usage of meshes with bone bindings and GC workload
- Tweaked exact bounding box computation to cause smaller freeze when running on a complex hierarchy


