2011年10月23日日曜日

MotionBuilderでSetDrivenKey

Mayaでリグを組んだりするときとても役立つ機能としてDrivenKeyがあると思います。
DrivenKeyというのはあるオブジェクトAを動かしたら連動して別のオブジェクトBが動くというものです。MotionBuilderでこれが出来たら便利なので今回はRelationコンストレインを使ってその方法を紹介します。

1. Normalizeコンストレインの作成
まず、Relationコンストレイン1つ作成して名前をNormalizeなどのようにしてコンストレインの名前を変更しておき、MacroToolsから3つのMacroInputNumber、MacroOutputNumberを1つ作成し、以下のようなリレーションコンストレインをつなげます。


上図のRelationでやっていることは以下の計算をしていて、MinとMaxを設定したときInputされた値がどのようなウェイト値かを出力するものです。

2.DriverとDrivenとなるオブジェクトの作成
次にDriverとなるMarkerを1つ作成します。そしてDrivenとなるオブジェクトを今回はSkeletonを以下のように作成します。


今回、MarkerがX軸に動いたらSkeletonのZ軸が曲がるようにDrivenKeyを設定したいと思います。

3.DrivenKeyの設定
DriverのMarkerが0~50の間で動くときに、Skeletonが0~90曲がるように動作させるには以下のようにRelatoinをつなげます。



黄色枠で囲っているのが1番目の工程で作成した自作のMyMacroのNormalizeです。
これのMinに0を設定し、Maxに50、InputにはMarkerのTransXがつながるようにします。
そしてResultをInterpolateのCにつなげます。InterpolateのRaには0,0,0を設定、Rbには0,0,-90を設定し、そのResultにはSkeletonのRotationZ軸につなげます。






この例はでMarkerのTransでSkeletonのRotを制御するDrivenKeyの例です。これを応用すれば指を簡単に動かす構造を作れたりします。

今回はRotを制御するDriveKeyだったのでInterpolateを使用していますがTransを制御する場合にはMiddlePointのBoxを使用すれば大丈夫です。

つまりDrivenKeyというのはDriverのある値を0~1に正規化(Normalize)して、その値を受けてのDrivenが0~1での状態を制御されるという構造です。この入力値をNormalizeして0~1に置き換えてやるというのはかなり便利な方法で色々なところで応用されている考え方で覚えておくと色々な場面で役に立つかと思います。

2011年10月8日土曜日

「ハッカーと画家」を読んで

ハッカーと画家」という本をまだ途中ですけど今読んでます。
その本の中でWebアプリケーションをめちゃくちゃ推し進めている一節がありました。

簡単にいうとWebアプリケーションの利点として、
ブラウザがあれば使うことが出来るのでお手軽だってこと。
他にはアプリケーションのプログラム自体はサーバー側にあるのでバージョンアップが容易に
出来るのでバグが少ないものをリリースすることが出来るなど他にも色々ありました。

たしかにPhotoShopを真似たソフトをWebブラウザ上で動作するソフトがどっかのサイトで見たことがありました。確かにこれは便利だと思いました。マシン環境を意識することなく、Webブラウザだけがあれば使うことが出来るお手軽な感じはかなりいいです。
もっというとWebブラウザがあればOSに依存することがなくなるから、色々選択肢は増えると思います。

ただ、そこでのデメリットはそのソフトが動いてるサーバーが駄目になると大多数のユーザーが使えなくなる恐れがあるということです。けどそのようなサービスを展開するならセキュリティーやバックアップなど厳重に行うはずなのでたぶん大丈夫だろうと思いました。あとはインターネットの回線のスピードによってレスポンスが変わってくるというこだと思います。

このWebアプリケーションって言う言葉は今の時代だとクライドコンピューティングという名前に変わって新しいサービスのあり方として存在しています。

いずれ3DCGソフトの場合でもWebアプリケーションになった場合、他の場合と同様に色々な恩恵を受けれると思います。Webブラウザだけがあればいいので環境に依存しないので、作業しやすいマシン環境を作るという必要性がないのでどこでも作業がしやすくなると思います。

2011年10月5日水曜日

電車の中でFullBodyIKにシミュレーションを試す

前の記事でFullBodyIKをシミュレーションしてみたらどうだこおだって記事を書きました。
今回は少しだけバージョンアップという形でシチュエーションを想定して試してみました。
そのシチュエーションは、日本の疲れた電車通勤の人を考えてみました(笑)

前回とは基本的には同じようなセットアップですが、違う点といえばつり革にもシミュレーションを試しており、そのつり革に手をかけている腕もつり革とお互いに影響しあってみえるようにシミュレーションの設定をしています。あとは疲れている感じがでるようなポーズや揺れ方を試行錯誤してみました。



これで色々な応用するシチュエーションとかのヒントになったかと思います。
例えば、戦闘機に乗っているシーン。F1など車に乗っているシーン。
基本のアニメーションがあってそれから物理シミュレーションをレイヤーで追加するイメージです。

今回もキャラクターに関しては手付けアニメーションは全く設定していなく、全てシミュレーションで動いています。意外といけそうな気配を自分では感じてます。