Instead of editing individual weights of bones or trajectory points, it is possible to set up a custom calibration blueprint that calculates the weights of each atom based on your own variables and logic. This helps customize and simplify the calibration process for your game. For example, you may want to have different weightings for trajectory points based on their time or perhaps you want a custom multiplier for all bone position weights. These things can be achieved with a custom calibration blueprint.
Creating a Custom Calibration Blueprint
To create a custom calibration blueprint, right click in the content browser and create a new Blueprint Class. In the ‘Pick Parent Class’ window that opens, search for 'Motion Calibration’ and inherit from it to create your custom calibration blueprint.
Once created set the ‘Motion Match Config’ in the General foldout of the details panel before proceeding.
Implementing Custom Logic
There are three events that can be implemented to customize weightings. Override them as required.
Setting High Level Weights
Setting high level weights is as simple as setting variables on the Calibration Module. Set the ‘Weight Momentum’ and ‘Weight Angular’ variables using any logic you desired as input.
Setting Bone Weights
To set the weights of any bone by name you can use the ’Set Bone Weight Set’ function as shown below. Use any logic you like to determine the final weight inputs into this node. One node is required for each bone you wish to set weights for.
Note: The name of the bone must be correct otherwise the bone will not be found and the weight will not be set
Setting Trajectory Weights
To set the weights of any trajectory point you can use the ‘Set Trajectory Weight Set function as shown below. It is recommended to iterate through a list of trajectory points to ensure that only defined trajectory points are set. Additionally you could access the timing of the trajectory points on the config module to calculate your desired weightings.
Use any logic you like to determine the final weight inputs into this node. The logic shown below is an example only.