Input Profiles are a utility tool to help shape input for trajectory generators to only output trajectories that match the different speeds that are available in the animation set. Motion Matching on its own cannot output animations that it does not have in its database and therefore it is necessary to have a digital stepped approach (i.e. fixed steps of movement speed based on input).
Note: It is very common even for AAA games to used a digital stepped approach to character movement speed.
As shown in the above graph, the analog user input is then filtered through the Input Profile and re-mapped to pre-determined acceptable digital input values. The remapping can be configured on the input profile itself.
Note: While a stepped approach is required for input into the trajectory generator (to match the motion database) it is still possible to have analog movement speeds. This can be achieved with procedural Stride Warping which is an advanced topic.
Input Profile Setup
Step 1: Create a variable in your character blueprint of type ‘Input Profile’.
Step 2: Add elements to the ‘Input Sets’ array for each range of input (from 0.0 - 1.0 overall) that you wish to remap to a specific value.
Input Remap Range - The range of input magnitude to remap for this element
Speed Multiplier - The magnitude of input to to (this is called speed multiplier as it is effectively a multiplier to the trajectory generator Max Speed)
Move Response Multiplier - a multiplier to the move response of the trajectory generator (you may wish for less responsiveness while walking as opposed to running).
Turn Response Multiplier - a multiplier to the turn response of the trajectory generator (you may wish for less responsiveness while walking as opposed to running).
Note: The above values map inputs up to 0.2 to 0.0 effectively making them idle. This helps to prevent the character moving when it isn’t desired.
Note: The final input remap range goes beyond 1.0 to 1.2. The purpose of this is to avoid floating point errors in the input value where it may be slightly above 1.0 causing the input profile to malfunction.
Once the input profile itself has been setup it needs to be bound to the trajectory generator in the ‘Begin Play’ event of your character blueprint as shown below.
The trajectory generator will automatically reshape any input that it receives at runtime and apply it across the board. You can change the input profile of the trajectory generator at any time by calling the same function again.