Create your own Motion Character

In case you want to create your own Motion character or want a better understanding of the requirements and assumption Motion has and makes, you can follow this setup path instead!

Those steps are for creating a character from scratch. Motion ships with a completely configured one to get you started faster. If you want to do so, follow "Clone the pre-configured Motion Character" instead.

The following steps assume that you have at least a basic understanding of the following:

  • Blueprints

  • Skeletal Meshes

  • Animation Blueprints

  • Component Tags

Creating the Character Blueprint

In a folder of your liking, create a new Blueprint Class and select MotionCharacter as parent class.

Do NOT select B_MotionCharacter! I'll name mine B_MyGameCharacterFromScratch.

Setting up Skeletal Meshes

By default the Motion Character will only have the following components:

  • Capsule Component

  • Arrow Component

  • Skeletal Mesh

  • Ability System Component

  • Character Movement Component

  • Camera Location Curves Manager

  • Camera Rotation Curves Manager

  • Collision Feeler

The reason why I did not add the meshes we are about to add by default, is that you may have a different setup you would like to use that requires less meshes / components than we'll have at the end of this setup, but also want to keep MotionCharacter as parent class.

Motion typically uses 2 skeletal meshes in its setup:

  • The main mesh which usually references a "headless" version of the character you are going to use, which also runs on your main animation blueprint.

  • A secondary mesh that the player's camera won't be able to see, but is used to show a full-body shadow. The animation blueprint for this mesh typically just copies the pose from it's parent skeletal mesh.

We'll begin by setting up the primary mesh. I'll assign it the default ones that ship with Motion which are ABP_Mannequin_Base for the animation blueprint and SKM_Manny_Headless for the Skeletal Mesh Asset.

Then create a new skeletal mesh and make it a child component of the inherited skeletal mesh component. Assign it a full-body version of your character and an animation blueprint that copies the parents pose. Here are the defaults I use:

You are free to use any animation blueprint you would like to Motion. In order to get the information about a character's state (i.e. if the character is crouching, sprinting or jumping) your animation blueprint should either:

  • inherit from MotionAnimInstance. (you should be able to safely re-parent any existing animation blueprint you have)

  • implement InitializeWithAbilitySystem.

Your blueprint should look like this now:

You will also need to make sure that visibility is set up correctly for both meshes, otherwise you'll see a headless shadow!

  • Default Mesh: Cast Shadow = false; Owner No See = false

  • Fullbody: Cast Shadow = true; Owner No See = true; Hidden Shadow = true

Next you will want to re-position the main mesh so the character fits the character capsule and faces in the right direction. To do so, follow these steps:

  • Set the Mesh Location Z to -90.

  • Set the Mesh Rotation Z to 270.

Then your viewport should look like this:

Set Camera Offsets

To set the default camera configuration, set ECA_FirstPerson for the Camera Target Offset of the Motion Camera Component.

Add Ability components

Our character is now mostly set up, but is unable to do anything! To fix that, add any components that ship with Motion that you'd like. The following are available:

  • Walking Component (required, as the character is unable to move otherwise)

  • Jumping Component (highly recommended to enable the character to jump)

  • Crouching Component (highly recommended to enable the character to crouch)

  • Sprinting Component (enables sprinting for the character)

  • Breathing Component (makes the camera move slightly when the character is not moving)

  • Movement Sound Component (enables footsteps)

Please check each component's documentation page for more information about modifying their respective behaviour.

Setting up Input

Motion ships with default controls for all abilities it ships with. You are free to use them in your character, or make a copy of them to modify them to your needs.

You can find the configuration in the Class Defaults under the category "Motion".

Adjusting project settings

In order for Motion to work in your project, the following changes in your Project Settings should be made:

  • Under, Engine -> Input: Change the "Default Input Component Class" to "MotionInputComponent".

  • Under, Project -> Maps & Modes: Change the Default GameMode to a one that uses your new character and uses MotionPlayerController as Player Controller.

Once you have completed all the steps, starting a new PIE session should result in your newly created Motion Character being used!

Last updated