Introducing the new LiveAction 4.0 Animation Cleaning Pipeline (ACP) addition, Self Penetration correction.
The new Self Penetration node is created to remove any self-intersection that might happen in real time production. Self-intersections usually happen whenever the target characters proportions are different to the real-world actor.
For an optimal understanding of the self-penetration node and how it Is used to remove self-intersection, I will be using a real-world example to explain the use of each parameter of the Self Penetration Nodes.
You are retargeting data from an average adult male to a disproportionate character who’s much larger than the source actor. The main issue you will face with this retarget is the arms penetrating the body. We would then use the new self-penetration tool to stop the arms penetrating the body.
IKinema Rig Editor: Self Penetration Parameters
You would use this editor to characterise body parts which you would like to be part of the self-penetration setup. We recommend creating them on head, hips, feet, elbows, shoulders and hands. This will enable the self-penetration correction on the hands and elbows against the entire body and apply a set of default settings. Similar to retargeting in task space or 8 rigid body solving.
Create IK Constraint: Enabling and disabling an IK constraint for self-penetration. This is enabled on all bones who have self-intersections. Referring example: These would be created via the assignment process of the characterisation editor in the toolbar.
Collision Shape: Collision shape is only needed on bones which you wish to stop self-intersection happening on. Referring example: You would enable the collision shape on the body (preferably only on the hips bone, then use the parameters to change the shape of the collision to best fit your mesh’s body) this is due to the body being what you wish the arms to stop penetrating.
Note: You can disable this parameter on bones which won’t be using the Self-penetration node.
Shape: Select the shape of your collision shape.
Box Half Lengths/Radius/Half Length: Using these parameters will allow you to adjust the shape of your chosen collision shape so that it best matches your characters chosen mesh area.
Local Offset: Set the positioning of your collision shape to best match the area you wish to use the self-penetration node on.
Self-Penetration Constraint: This parameter should be enabled on the body parts you wish to stop intersecting another body part. Referring example: you would enable this parameter on the hands and elbows, due to them being the body parts that are penetrating the retargeted characters body.
Self Collision: Enable or disable the self-collision parameter.
Bones to collide with: You would need to assign which bones you have created the Collision shape on. Referring example: you would assign this parameter to the hips. Remember to use the exact name of the bone as it appears in the LiveAction rig editor.
Mesh Offset: You will need to set the mesh offset for your set up. This is due to the self-penetration node not taking into consideration the volume of your target mesh from the selected joint, so this needs to be set manually.
Normal Smoothness: This parameter allows to set a filter smoothness value for the normal of the intersection. It is needed to smooth the orientation due to sharp edges in the collision shapes or when multiple shapes are intersecting.
Position and Rotation Depth: If you wish for the settings on this bone to have an influence on other bones (going up the hierarchy) then set the number of bones you wish to do this on.
Position and Rotation Weight: The importance of this tasks parameter in comparison to all other tasks, this is a relative-value parameter.
Animation Blueprint: Self-Penetration Node: The Self Penetration Node is created in the Animation Blueprint once the LiveAction rig is created. If you wish to add Self-Penetration to the rest of the ACP set up, add the self-penetration node before other ACP nodes.
Pull Gain: This is the only parameter that you can edit in the node. This parameter is used if you find that your characters movements are jittery and jolty (especially on the joints you’ve enabled self-penetration on).