Motion 1.5
AnimateMotion (1.6)glTF Batch Exporter
  • Start here!
    • Changelog
    • Getting Started
      • Clone the pre-configured Motion Character
      • Create your own Motion Character
    • Modifying your Motion Character
  • Tutorials
    • Creating a custom ability
    • Add Footsteps to Motion
    • Add Surfaces to Motion
    • Retargeting Marketplace Characters
    • Using Metahumans
  • Core Components
    • Walk Component
    • Sprint Component
    • Jump Component
    • Crouch Component
    • Movement Sound Component
    • Motion Camera Component
  • Extra Components
    • Breath Component
Powered by GitBook
On this page
  • Creating the Character Blueprint
  • Setting up Skeletal Meshes
  • Adjust the capsule component
  • Add the Motion Camera
  • Add Camera Curve Managers
  • Add Motion Core Component
  • Add Ability components
  • Setting up Input
  • Adjusting project settings
  1. Start here!
  2. Getting Started

Create your own Motion Character

PreviousClone the pre-configured Motion CharacterNextModifying your Motion Character

Last updated 1 year ago

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 "" 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

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 into 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:

Adjust the capsule component

To make the capsule component fit our character more nicely, I recommend the following values:

  • Capsule Half Height: 90

  • Capsule Radius: 60

I recommend a larger radius to avoid camera clipping into walls. Motion implements a custom camera component which does try to move the camera in a way that it should not clip into the wall, but under certain conditions it may move the camera down, which can be undesired.

Add the Motion Camera

If you would like to use the Motion Camera Component, which implements camera offsets via curves and collision prevention, add it via the "Add Component" button to the blueprint.

You do not have to position the camera so it matches the position it should have in-game. Use the Camera Target Offset instead.

Add Camera Curve Managers

In order for any of the camera offsets generated by the Motion components to function, two curve managers should be added to the character blueprint. One for locations and one for rotations.

To do so, add two B_BaseCurveManager components and give each of them one of the component tags:

  • CameraLocationCurvesManager

  • CameraRotationCurvesManager

The tags are needed so the core component knows which one is which.

Add Motion Core Component

As of Motion 1.5, Motion still requires the use of a Core Component which is responsible for the calculation of the current walk speed.

In a future version of Motion, this need will be dropped.

For now, please add a B_MotionCoreComponent to your character blueprint.

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)

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!

I highly recommend re-parenting to MotionAnimInstance as the MotionAbilitySystemComponent assumes that the character's animation blueprint is inheriting from it. Then, you can use the Gameplay Tag Property Map to assign the Tags to variables in your animation blueprint.

Clone the pre-configured Motion Character