Questions & Answsers
Q: I scaled down an entire SkeletalMesh to a scale of 0 with EasyMorph, but when I try to scale it back up the animation won't play. The bones simply pop into existence when the animation would finish. Why is that?
A: When a SkeletalMesh gets morphed to a scale of 0 it will have no bounds. We optimized the component, so that it only updates if it is actually rendered (or running on the server). With missing bounds the SkeletalMesh won't render and therefore the Animation won't play. This can be avoided by using the "Component Use Fixed Skel Bounds" Bool on the Skeletal Mesh Component. You can find an Example of this when you open the additional Limb Blueprints (Arms).
Q: Replication does not work, why?
A: Make sure the Actor that has the EasyMorph Component attached actually has Replication enabled.
Q: How does collision behave during morphs?
A: You can define the Capsule Collider Size (Half Height, Radius, Mesh Offset within Collider) for each Skeletal Morph Target (Bone Scale Animation), so if you scale down your character, it will be able to pass below things (if you set the values accordingly).
Physics Asset Colliders (Skeletal Mesh Colliders created upon import or customized) scale together with the bone natively. So they will scale just fine when you use Skeletal Morphs.
If you have Morph Targets that dramatically change the Skeletal Mesh Shape, you'd have to adjust collision by yourself for a perfect fit.
Below is an example of a Skeletal Morph Animation we use in the Example Map. The default size is the same as the left hand in the picture.
Q: I don't want to use Niagara Particles (or I have the Plugin Disabled in my Project and do not want to enable it). How can I use EasyMorph?
A: EasyMorph should still import into your project just fine, but it will throw errors. You can remove the dependencies on Niagara (or replace them with another Particle System) with the following steps:
- Open the EasyMorphComponent Blueprint in the EasyMorph/Blueprints/Components Folder and then open the DismemberBodyPart Function which is located in the Dismember Interactions Section of the Functions.
- Locate the SpawnSystemAttached and SpawnSystemAtLocation Nodes and delete them together with the preceding ? IsValid, IsValid (Bool), NOT, Branch, GetSocketTransform Nodes (Orange box in image below).
- Connect the Execution Path of the AddUnique Node on the left directly to the IsValid Node that has the Mesh Reference as an Input (on the right).
- Save and Compile the Blueprint.
- Open the FBoneDismemberment Struct in the Content Browser, delete the NiagaraSystem Property and save the struct.
- Delete the Fx Folder located under EasyMorph/DEMO to delete all Niagara Systems that were included in the Example. This might affect some Examples in the Example Scene.
If you want to replace Niagara with a different Particle Effects Solution you can simply replace the Particle Spawn Logic in the EasyMorphComponent DismemberBodyPart Function in step 2.
Q: In Unreal Engine 5.1+, the EasyMorphComponent warns that GetSkeletalMesh is deprecated. Do I have to do something?
A: No, this does not currently impact the functionality of the EasyMorphComponent. We use the same EasyMorphComponent Version for all Unreal Engine 5 Versions, and this warning was introduced by a change to the SkeletalMesh Class (Engine Level) in 5.1.
We will provide an updated Version specific to Unreal 5.1+ with the next update.
This has been addressed in Update 1.001 - 2024-05-09.