# Combination of Parent-Child Hierarchy

Warp deformers and rotation deformers have slightly different effects on the child and are affected slightly differently by the parent.
Here is an overview of what deformer combinations are suitable for what type of movement.

## Type of Combination

### Warp Deformer (parent) + Warp Deformer (child)

The Warp Deformer (parent) + Warp Deformer (child) mechanism is a commonly used mechanism.
By using this combination, you can not only change the shape of an object, but also move it.
This is used for eyebrows, eye parts, etc.

### Rotation Deformer (parent) + Warp Deformer (child)

The Rotation Deformer (parent) + Warp Deformer (child) mechanism allows the shape of objects to be changed as they are rotated. Therefore, this is very useful when making parts such as necks.

### Rotation Deformer (parent) + Rotation Deformer (child)

The Rotation Deformer (parent) + Rotation Deformer (child) mechanism is used to express the articulation of legs and arms.

### Warp Deformer (parent) + Rotation Deformer (child)

Setting the Warp Deformer as the parent of the Rotation Deformer allows for a rather unique expression.
Moving a control point on the parent warp deformer causes the child rotation deformer and its children to move and rotate rather than deform.
This is a very useful mechanism when you want to replicate breathing, shoulder shrugging, etc.

## Points to Keep in Mind When Building Parent-Child Hierarchies

When building a parent-child hierarchy with a warp deformer, we recommend that the child’s warp deformer (2) be set so that it does not overhang the parent’s warp deformer (1).
In particular, if you build parent-child hierarchies with a narrow spacing, it is easy for them to overhang when keyforms are created.
(If the rotation deformer is set to parent, overhang is not a problem.)

You can use the [Highlight Vertices Which Stick Out From the Parent Deformer] function to see if any vertices extend beyond the parent. See the “Deformer Verification Function” page for details.

Even if the child’s warp deformer overhangs from the parent’s warp deformer, there will be no problems with operations. However, a load will be applied as described below.

### Comparison with/without overhang

If a child element extends beyond the parent deformer, the child element is deformed by extending the warp deformer range.

The following is a comparison of the load with and without overhang.

Assuming that the load for calculating 1 point “inside” the range of the parent deformer is 1, the load for calculating n points “outside” the range of the parent deformer is 4 + 2* n (memory usage is not increased or decreased).

Note: Interpolation processing, etc. is irrelevant to inside/outside of the range (no effect).

[Specific example]

• When calculating 40 points in range, the calculation quantity is 40.
• If 39 of the 40 points are in range and 1 point is out of range, the calculation quantity is 39 + 4 + 2 * 1 = 45 (13% increase).
• If 30 of the 40 points are in range and 10 are out of range, the calculation quantity is 30 + 4 + 2 * 10 = 54 (35% increase).

Note: However, please note that these are only estimates and will vary depending on the environment and conditions.

###### Point

If a child element’s points extend beyond the parent deformer, the following process is performed.
The amount of calculation above is the “conversion” processing portion of 3. Interpolation of 1 and 2 is not affected by the presence/absence of overhang.

1. Interpolation” by warp deformer parameters
2. “Interpolation” by parameters of child elements (e.g., ArtMesh)
3. Warp deformer “transformation” of child elements