2008年03月29日

SnakeSpine

※最新バージョンはこちら


Make_SnakeSpine.vbs

080328_1.jpg
イエッヒー!
できたー!


とりあえずこんな感じ。
要はスパインのような長さの変わらないカーブを作って
それにパスコンストレイントさせたオブジェクトとそれらに対してのアップベクターをどう制御させるかの問題を解決させただけの物体です
それらにアニメーション用に色々付け足した物です。
便利かかどうかは甚だ疑問。

使い方
何も選択しないで実行。
もしくはカーブを単体で選択して実行。
数値入力のプロパティが出ます。

080328_2.jpg

・選択カーブから作成
  カーブを選択して実行すると出てきます。
  カーブの長さ・ポイント数・形を元に作成します
  カーブから作成する場合、コントローラー数と長さの入力は無視されます。

・コントローラー数
  カーブを変形させるコントローラーの数を入力
  選択カーブから作成する時は無視されます

・長さ
  デフォルトの長さ
  選択カーブから作成する時は無視されます

・デフォーマーの数
  デフォーマーの数を指定します。

・コントロールアイコンのサイズ
  制御するヌルのサイズの基準となる値です。

・捻りハンドルの数
  動画でぐるぐるねじねじ回してたアレの数を指定します。
  デフォーマー数より多い値を入力すると失敗するので注意。

・パス位置相対値指定
  パス上を走らせる時に位置のパラメーターを0〜1(開始〜終端)の相対値で指定します。
  チェックを外すと絶対値指定です。パスの開始点からの距離が固定されるので状況によってはこっちの方がいいかも。
  どっちで制御するかはお好みで

・ストレッチモード
  パスの形状に合わせてスパインが伸び縮みします。

・縦シヤー変形コントローラー生成
  デフォーム→シヤーっぽい変形をするコントローラーを作成します

・バルジ変形コントローラー生成
  デフォーム→バルジっぽい変形をするコントローラーを作成します

・シャドウリグ生成
  エンベロープ用のポーズコンストイントされたヌルを作成。ゲーム等に。



各コントローラーの説明
それぞれアニメーションに使うパラメーターをマーキングセットに登録しときました。
XSI6以上ならキーセットに登録すればいいんじゃね?

080328_3.jpg
・Path_Ctrl
パスの形状をコントロールします
アニメーションするパラメーター
 pos X Y Z


080328_4.jpg
・TwistHandle
捻る時に回します。
 rot X


080328_5.jpg
・twist_grobal
twist_handleが思うように制御できない・グローバル座標で固定したい等の時に上の階層でコンストレイントしてあげる補助コントローラーです。
DisplayInfoパラメーターのスイッチをオンするとコンストレイントが切り替わります。
思いどうりにアニメートできたらtwist_handleのX回転をプロットしてあげましょう。


080328_6.jpg
・upV_bone_root
ルートは現在のパス上の方向によって自動で回転しますが万能ではないです。
パスの根元を大きくぶん回したり、ぐねぐねとパス上を移動させると
スパイン全体がクルンとひっくりかえってしまう時があります。
そんな時はDisplayInfo:cnsSwitchをオフにして手動で回して調整しましょう。
また、DisplayInfoにスパインの長さとパス上の位置を制御するパラメーターが入っています
 DisplayInfo:長さ
 DisplayInfo:位置
 rot X Y Z


080328_8.jpg080328_7.jpg
・BulgeCtrl VerticalShearCtrl
四角い方がバルジ、円の方が縦シヤーです
バルジはまんまデフォーム→バルジを適用した風にスケーリングで動きます。蛇が卵を飲み込んだ感じ?
縦シヤーはデフォーム→シヤーをY方向に適用した風に動きます。いわゆる「たわみ」のような表現に。
 DisplayInfo:位置
 DisplayInfo:振幅
 DisplayInfo:範囲

080328_9.jpg
外側と内側の2重になってますが外側でアニメーション
内側のは最初からFカーブが入ってます。
これはアニメーション用じゃなくて、変形と減衰のプロファイルカーブとして使用してください。うっかり削除しないように。


↑こんな感じ。

※バルジ変形はデフォーマー数・ポリゴン数が多めでしかもエンベロープのウェイトをかなりぼかさないと綺麗に変形しないぽいです。
また、デュアルクォータニオンエンベロープはスケーリングに対応してないようです。残念。
まぁ映像なら素直にデフォーム→バルジ使った方が綺麗にできるしね。
そんなこんなで使いどころは限定されるかと思われます。


あとがき
さて、どうせスクリプト仕上げるなら他人に見せても恥ずかしくない出来の物を、と思って作ったは良いけど果たして・・・?
結構ややこしいように見えてほとんどはコンストレイントをあちこち繋いで、長々とエクスプレッション付けただけです
座標変換とかクォータニオン回転とかなんちゃら補間とか特別難しいことはやってません(だからバカみたいにヌルやら何やらを生成します。デフォーマー数の4〜5倍+α)
まぁこれが文系にできる限界です・・・
スクリプト勉強になったけど基礎知識が乏しいとずーーーーっとヘルプとにらめっこだね。凄い疲れた・・・
暫くはテキストエディタ立ち上げるのも嫌だNE!
posted by ちょちょ at 03:49| Comment(1) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2008年03月13日

回転アニメーション補助ヌルセット

ヘボスクリプト第2弾!
get_OriCnsSet.vbs
最近アニメーションつける時は凝ったリグより、すぐに使えてアッサリ消せる使い捨ての一時的なコントローラーを積極的に使ってけばいいんじゃね?と思えてきた。ぶっちゃけ力技?
そんな俺の俺による俺のためのスクリプト

深い階層の回転アニメーション
特に揺れ物みたいな親の回転に依存されない・子階層に遅延が発生する等のアニメーションの時に便利かも。
要は全部グローバル回転で制御したい時の使い捨てのコントローラーです。

作成されるヌルが親・子・孫の3段セットなのは、複雑な回転に対応できたら良いなという悪あがきです。
必要ないなら主に2段目のヌルがアニメーション作業の対象になります。
こんな感じです
080313_1.jpg
アイコンのサイズが気に入らなかったらスクリプト開いて適当に修正すればいいです。

こんなのできます。


基本的な使い方は
・大雑把につけた揺れ物のボーン(ソース)を選択してスクリプト実行
・出来上がったヌルの回転(2段目のボックスのヌル)をプロット
 このとき、必要ならプロット前に回転順序を弄っておけばFカーブが綺麗になる場合があるぞ!
・コンストレイント(以下cns)切り替え
・ヌルのセットの方でアニメーションを仕上げる
・アニメーションが仕上がったらソースの回転をプロットして
 cnsしているヌルセットを削除(ソースの方には何も残さないので安心)するかcnsを切り替えて放置するなりしましょう

複雑な動きになればなるほどスイッチ切り替え→プロットを繰り返すかも。

080313_2.JPG080313_3.JPG


さて、次回予告。
適当なスクリプトでお茶を濁すばっかりだと寂しいのでちょっと複雑なやつに挑んでみます。
以前紹介したアレを自動生成するスクリプトに挑戦!
・・・できるのか?
こうやって予告して逃げにくくする罠だな!?
posted by ちょちょ at 02:09| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。