Modifying the Anim BP to work with different skeletons
It’s like manual retargeting
Retargeting won’t work for Neo Kinect, because that’s only for animation assets. Neo Kinect is getting data from Kinect and converting it to Unreal Engine coordinate space. Then, to make things easier for avateering, I compute the transforms that move the Mannequin skeleton correctly. For that to work, the bones’ orientations are very important.
If your skeleton has the same bone names but orientations are different, you’ll have to customize the Avateering AnimBP for your bones’ orientations. The Mannequin upperarm_r
bone has X pointing opposite to the bone direction, Z pointing towards the skeleton body and Y towards its back. To see those orientations, select the bone in the SK_Mannequin asset, press W to activate the translate tool and select the local transform mode in the top-right corner (first icon after the move/rotation/scale tools). If upperarm_r
on your custom skeleton doesn’t match that exactly, the orientation set on the Avateering AnimBP will look wrong.
But you can still compute correct orientations yourself.
Let’s say your mesh’s upperarm_r
has X pointing forward, Z towards the bone direction and Y towards the character’s ribs. This means that [X, Y, Z] on your mesh’s upperarm_r
map to [-Y, Z, -X] on the Mannequin. Therefore, to create the correct rotation use the Make Rot from ZX
node and pass the correct axes from the Kinect rotation for that joint. There are all combinations of axes for that node. I chose ZX here because Z is the axis along the bone. Always pick that one first. The other axis doesn’t really matter, as long as you pick the correct one from Kinect to convert. In this case, the Z axis on your mesh maps to -X on the Mannequin, so you need to get the forward vector from Kinect Right Elbow joint rotation and multiply it by -1 to invert its direction. For X, it maps to -Y on the Mannequin. So you get the rotation right axis and multiply it by -1. That would give you the correct rotation for your mesh’s upperarm_r
coming out of the Make Rot from ZX
node.
It will require manual work to get those correct for all bones, but I can’t have the plugin support every possible different orientation of bones. So I followed the Mannequin as a standard.
Here’s a tutorial I made about the Make Rot from [XYZ]
nodes. I hope it helps.