日々適当

hibitekitou

モーションのついたオブジェクトに対し、さらにエクスプレッションを適用する

mixiネタ。
んでも、XSIのマニュアルにも、手法が載ってました。

XSIは、SI3Dと違い、自身のFカーブにエクスプレッションを重ねることが出来ない、というわけで、それを回避するためにアニメーションミキサを利用すべし、となっております。
例えば

左右に回転する二つのキューブ


こんな感じで、同じタイミングで左右(Z軸中心回転)で回転する二つのキューブがあるとします。それぞれ独自にZ回転のFカーブを持っています。仮に左をA、右側をBとするとします。

Bの回転に、Aの回転を加算したいとき、BのZ回転について

B.rotz = this.rotz + A.rotz

とすればSI3DではOKでしたが、Bには既に回転のアニメーションがついているとき、さらにエクスプレッションをつけることが出来ません。

そこで、BのZ軸回転を何らかの方法で保持しておいて(別のオブジェクトにコピーしとくとかFカーブを保存しとくとか)、Bに、AのZ軸回転を参照するようなアニメーションをつけます。ただし、自分自身のZ軸回転に対し加えるような式にします。

this.kine.local.rotz + A.kine.local.rotz

それで、そのエクスプレッションをストアします。

エクスプレッションをアニメーションエディタのアニメーションのソースとして登録する


でもって、BにZ軸回転のアニメーションを戻してやった上で、アニメーションミキサにストアしたソースを放り込んでやれば、



BのZ軸回転にAの回転が加味され、より大きな回転となって出力されてきます。

Bの回転が大きくなった図



ちなみにこの状態のとき、以下の図のようにアイコンがコンセントにプラスマークが加味されたものになります。

エクスプレッションを加味したときのアイコン


ってことで、非常に結果が分かりにくいムービー。Luma_Metalを試したくてちょっと計算してみたので掲載
コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。