Skip to main content

Quick Start

EasyMorph can easily be added to any Unreal Engine Project using Epic Games Launcher with the "Add to Project" button. EasyMorph was built to be as non-intrusive as possible. Everything needed to use it is located in the EasyMorph/Blueprints Folder. Check out the EasyMorph/DEMO Folder to learn how to use this tool and set up different use cases.

You can find detailed information on all Settings and Functions in the EasyMorph Settings, Functions & Events, and Event Dispatchers sections of this Documentation (See sidebar on the left). You can also find a Step-by-Step Guide and information on accessing our discord server for support there.

Setup

Add the EasyMorphComponent to a Character, Pawn, or Actor with a SkeletalMesh.

warning

You can use the "Editor Preview" bool to see the results of your Morphs right in the Blueprint / Editor Viewport.
Make sure to turn off this bool after editing because it can sometimes interfere with correct Morphing at Runtime.

Create or use an existing Animation Blueprint for this SkeletalMesh and add the following Nodes:

Create the missing Variables ("CurrentSkeletalMorphValue", "bIsSkeletalMorphingEnabled" and "EasyMorphComponent") by right-clicking and selecting Create Variable.

You now need to set up "Transform (Modify) Bone" nodes in the Animation Graph for all bones you want to be able to morph.
Select the Bone to Modify, set Translation and Rotation to "Add to Existing" & "Component Space" and Scale to "Replace Existing" & "Component Space".
Get the "Current Skeletal Morph Values" and use the find node with the "Bone Name" to get the morphed Bone Transform.

If you use a Character with the default Unreal Engine Skeleton, you should be able to copy & paste the following code:

You can also copy the nodes from our Example Animation Blueprint.

Skeletal Morphing

  1. Select the EasyMorphComponent in/on the Blueprint you want to morph.
  2. Open the Skeletal Morphing category and add your Skeletal Morph Setups (TODO: Link to Detailed setup here).
  3. Most of the time, you would want a default Morph so you can always morph your Character back to its original state.

You can use the following code for a default Morph (when using default Unreal Engine Skeleton).
Just add a Skeletal Morph Setup to the list, name it "Default," hover over the "4 members" part, right-click, and paste.

(BoneList_4_8EC99B654B220339065B4991E9E92ED1=(
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="pelvis"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="spine_01"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="neck_01"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="head"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="clavicle_r"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="clavicle_l"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="lowerarm_r"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="lowerarm_l"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="hand_r"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="hand_l")),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="thigh_r"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="thigh_l"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="calf_r"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="calf_l"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="foot_r"),
(BoneName_2_2998DA5B4499EF478BF8ABA6C88A1465="foot_l")),
CapsuleHalfHeight_14_FF00EDB64E138F28E5707BAD42FC6C7B=96.000000,
CapsuleRadius_13_4F2FA6CF4A39BC49CF7E21B467D5EB72=42.000000,
MeshRelativeLocation_16_59C7111C44041BFF393D789F877BEC35=(X=0.000000,Y=0.000000,Z=-95.000000))

Morph Target Animations

EasyMorph provides you with extended functionality for Morph Targets. You can apply a Morph Target over time (Animation) with just a few simple function calls.
Just add a Morph Target Animation Setup to the list, specify the Morph Target (from SkeletalMesh), TargetValue and a optional TransitionCurve to smoothly animate Morph Targets.

Dismemberment

Here you can add any Body Part that should be available for Dismemberment.
Use the skeletons bone names as Body Part name, add a SkeletalMesh and a few optional stuff and call the DismemberBodyPart function to get heads rolling.