2012年10月 2日 (火)ICEを使ってみる 第7回 コンパウンドの中
おはようございます、本日の当番モーションデザイナーのY.Nです。
今日もまたICEを取り上げます。
今回は、この間発見した不具合の報告です。
syflexのノードの中にsyflex
Nailなるものがあります。
シミュレート対象の頂点(クラスター)をコンストレイントオブジェクトに
吸着させるノードで、布の一部を引っ張っるときなどに使います。
このノードがちゃんと働くと動作は下のような感じになります。
赤い丸(null)にクロスオブジェクトの一点が追従しています。
では、実際にICEツリーを組んでみましょう。
ユーザガイドを見る限り使い方は簡単そうです。
Objectポートにコンストレイントオブジェクトを突っ込めばコンストレイントの効果が
Forceとして出力されるので、それをForceのポートに刺すだけです。
後はパラメータの調整だけで済みそうです。
ということで、早速実験。
布の一点をつかんで、そのままちょっとめくるという感じの動作を作ってみます。
準備として…
・布のクラスターを設定(クラスター名:point)
・コンストレイントオブジェクトとして赤い丸で表示されたnullを用意
・パラメータ調整として
nullがクロスに接触するまで、StiffとDampを0、Distanceを1に設定して
接触時にStiffとDampを1、Distanceを0に設定します。
・結果が分かりやすく表示できるよう、Syflex
Collide
Planeを使って地面を設定
で、結果はというと…
うまく動きません。
接触時に布がオブジェクトから弾き飛ばされるような動作になります。
アイスツリーは下のとおり。
原因はなんなのか。
怪しそうなところとして、ノードのつなぎ方やパラメータの設定の仕方など
ありそうですが、今回これらは無関係です。
答えはこれ。
ノードの中身でした。
SyflexINailというノードが接続の最後尾に見えています。
このノードの使い方をユーザガイドで引いてみると次のように書かれています。
position
コンストレイント オブジェクトの XYZ グローバル位置です。
他のポートの説明もありますが、ここでは問題のポートにだけ注目しています。
もう一度、ICEコンパウンドの中を見てみましょう。
SyflexINailのpositionポートには
クロスオブジェクトの各頂点のローカル座標とクロスオブジェクトの座標位置の積、
つまり、クロスオブジェクトの各頂点のグローバル座標が入力されています。
ここは本来は、コンストレイントオブジェクトつまりnullの座標を入れるべきところです。
ということで下のように変更してみましょう。
これで冒頭の図のように正しく動くようになります。
こんな感じで、動作異常の追及に行き詰ったときは、コンパウンドの中を診てみるのもいいかもしれません。
ということで、今回はこの辺で。
| 固定リンク | コメント (0) | トラックバック (0)
「モーションデザイナー」カテゴリの記事
- この頃 流行りの…(2019.02.28)
- たまには乗らんとね(2019.01.17)
- コミュニケーションを語る!(2018.11.22)
- 12個のアニメーション基本原則とは?(2018.10.11)
- 新人研修を終えて(2018.09.06)
この記事へのコメントは終了しました。
コメント