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) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
凄いです!
記事を見て、ぜひ使いたくなりました!
Posted by TAKKの後 at 2008年09月20日 18:45
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

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