親子関係の組み合わせ
ワープデフォーマと回転デフォーマでは、それぞれ子に与える影響と親から受ける影響が少し違います。
ここでは、どんなデフォーマの組み合わせがどんな動きに適しているのかを紹介します。
組み合わせの種類
ワープデフォーマ(親) + ワープデフォーマ(子)
ワープデフォーマ(親) + ワープデフォーマ(子)の仕組みは、よく使う仕組みです。
その組み合わせを使うことによって、オブジェクトの形を変えることだけでなく、オブジェクトを移動させることもできます。
眉毛や目パーツ等で使用されます。

回転デフォーマ(親) + ワープデフォーマ(子)
回転デフォーマ(親) + ワープデフォーマ(子)の仕組みは、オブジェクトを回転させながら形を変えることができるため、首などのようなパーツを作るときとても役立ちます。

回転デフォーマ(親) + 回転デフォーマ(子)
回転デフォーマに回転デフォーマをつなげて、足や腕の関節の連結具合を表現するときに用いる組み合わせです。

ワープデフォーマ(親)+ 回転デフォーマ(子)
ワープデフォーマを回転デフォーマの親に設定することで、かなりユニークな表現が可能となります。
親のワープデフォーマのコントロールポイントを移動させると、子の回転デフォーマとその子は変形されるのではなく、移動と回転されます。
呼吸や肩のすくみなどを再現したいときはとても便利な仕組みです。

親子関係構築時の注意点
ワープデフォーマで親子関係を構築する際は、親のワープデフォーマ(①)から子供のワープデフォーマ(②)がはみ出さないように設定することをおすすめしています。
特に、狭い間隔で親子関係を構築してしまうと、キーフォームを作成した時にはみ出しやすいので注意が必要です。
(回転デフォーマが親に設定されている際は、はみ出しても問題ありません)
[親デフォーマからはみ出した頂点をハイライト]の機能ではみ出しを確認することができますので、詳しくは「デフォーマの検証機能」の貢をご参照ください。

ただ、親のワープデフォーマから子供のワープデフォーマがはみ出しても問題なく動作するのですが以下のような内容で、負荷がかかります。
はみ出しあり/無し比較
親デフォーマから子要素がはみ出してしまった場合はワープデフォーマの範囲を拡張して子要素を変形します。
この時の負荷を、はみ出しあり/無しで、比較したものが以下になります。
親デフォーマの範囲「内」の計算を、1点やる場合の負荷を 1とすると
親デフォーマの範囲「外」の計算を、n 点やる場合の負荷は 4 + 2 n (メモリ使用量は増減無し)
※ 補間処理等は範囲内/外に無関係(影響なし)
【具体的例】
- 範囲内の点 40点を計算する時は、計算量 40
- 点40点のうち39点が範囲内、1点が範囲外の時は、計算量 39 + 4 + 2 * 1 = 45 ( 13%増 )
- 点40点のうち30点が範囲内、10点が範囲外の時は、計算量 30 + 4 + 2 * 10 = 54 ( 35%増 )
※但し、これらは概算であり、環境・条件によって変わりますので、あくまで目安とお考え下さい。
Point
親デフォーマから子要素のポイントがはみ出してしまった場合には、以下の処理が走ります。
上記の計算量は3の「変換」処理部分になります。1,2の補間は、はみ出しあり/無しには影響を受けません。
- ワープデフォーマのパラメータによる「補間」
- 子要素(アートメッシュ等)のパラメータによる「補間」
- ワープデフォーマによる子要素の「変換」