Goal Pose/Goal Skin

The Goal Pose and the Goal Skin provide the ability to constrain a cloth with an animation, on a per node basis.

Goal Pose

The Goal Pose contains the position of the vertices of an animated cloth that can be used to constrain a simulated cloth/tetra with the same topology.

The main use of goal posing is to art direct the physical behavior of a cloth to achieve a desired outcome. This can be partial or global and provides all the advantages of a blending process or a partial simulation without their draw backs. For instance, blending an animation and a simulation will not maintain collision consistency while, through its convolution nature, Goal Posing conforms to both collision constraints and animation constraints.

The key feature of Goal Posing is that it is not a blending operation generating a state out of 2 simulated or animated states, but it is an iteration process augmenting a state by simulating and constraining it with a second state.

Goal Skin

The Goal Skin is an attribute that describes the strength of the skinning constraint between the Goal Pose and the current cloth/tetra pose.

The Goal Skin can also be used to describe the nature of each individual node, from fully dynamic to dynamic and constrained and finally kinematic and constrained (pure animation). Kinematic nodes do not generate collision with other kinematic objects. By being able to skin nodes to a Goal Pose and smoothly animate the nodal status from dynamic to kinematic, it is possible to avoid over constraining cases, such as pinching or non-solvable configurations.

Parameter Setup

_images/user_guide_goal_pose_skin_1.png

Goal Pose and Skin strength attribute and threshold.

Setting the skin attributes is not as simple as for other parameters as it involves two extra thresholds or limits. The skin strength projects a force and is currently expressed in its simplest form by using painted details between 0 and 1, with a base value and a range value, to obtain its final value. Base and range have the dimension of forces. It can be quite hard to find a perfect setting as too low of a maximum strength prevents the simulated cloth from reaching the goal pose. On the other hand, too high of a value results in high velocities and the cloth with overshoot its target position. This leads to a wiggling behavior as the mesh will be forced back and will once again overshoot the goal position. To prevent this from happening and allowing for smooth transitions, adapt the goal skin velocity limit. Forbidding high velocities strongly decreases overshooting of goal positions. The upper and lower threshold are easier to set up as they are expressed as fractional values, interpolating between the lowest and the highest (maximum) possible goal skin strength. The maximum strength is calculated as shown in the figure above. In most cases it is sufficient to set the lower threshold to 0 and the upper threshold to 1.

Goal Posing’s main usage is art direction and, in this case, fully dynamic and kinematic nodes have a very small role to play. In this case all the nodes are expected to be dynamic and constrained, this is achieved by setting the threshold values to values corresponding to the range of the blue bar shown in the above figure, i.e. between 0 and 1.

In cases where some nodes are expected to be fully dynamic and not constrained to an animated pose, the lower threshold has to be set greater than 0 to capture all the painted vertices expected to follow this behavior. Any node with a corresponding skin strength below the lower threshold will ignore the goal posing constraint.

In cases where nodes are required to match their animated counterpart, the upper threshold has to be set below 1 to affect all the vertices painted to be kinematic. This feature is extremely important as it allows two things. First it makes it possible to perform partial simulation by running the same simulation again with different parameters while reusing parts of a previous simulation that produced desired results. And second it provides an option for dealing with over constrained pinching cases and destructive collisions. Kinematic nodes do not collide with other kinematic objects such as colliders or other kinematic nodes. This means that by using Goal Posing and painting vertices to be kinematic or animating the threshold to make vertices temporarily kinematic makes it possible to avoid what would otherwise be impossible to simulate. And since the skin thresholds and strength attributes are all independent and can be key framed, then it is the nature of the nodes that can be smoothly animated from kinematic to constrained to fully dynamic.

Note

  • Setting up skin strength is roughly as difficult as setting stiffness of primitives. We recommend first setting the lower threshold to 0 and the upper threshold to 1, so they do not interfere with the skin strength calibration by modifying the nature of nodes. Once the skin strength distribution produces a good result, then the thresholds can be adapted to fix the nature of the nodes.
  • Start with a high goal skin velocity limit (e.g. 100000) to turn off the velocity restrictions. Once the skin strength and thresholds are set up properly, decrease the limit to smoothen the transitions.
  • Use the Carbon Cloth Physics Draw Goal Skin visualization to help you check the effects your settings have.