ご無沙汰しとります。前回の更新が・・・過去を振り返るのはよそう。
昔作ったSnakeSpineを見るとなんとも強引なリグだなーと自分で見てちょっと引いております。
ICEキネマティクスが出てからこの手のリグもそっちで作ればいいんじゃね?って話もあるけど・・・ちょっとだけ修正&機能を追加しました。
せっかくなんでマニュアルも書き直しておきます
Make_SnakeSpine20120920.zip
前バージョンからの主な更新点・選択カーブから作成時、カーブの座標によって作成に失敗するのを修正
・ストレッチモードをコントローラーから設定できるように
・作成オプションに接頭語・トレースカーブ分割数を追加
・伸縮に合わせて変形を追加
・デフォーマー位置を調節するコントローラーを追加
・グローバルハンドルを任意で作成
==============================使い方==============================何も選択しないで実行。
もしくはカーブを単体で選択して実行。
数値入力のプロパティが出ます。初期値が気に入らなかったらvbsファイルを適当に編集してください
・選択カーブから作成 カーブを選択して実行すると出てきます。
カーブの長さ・ポイント数・形を元に作成します
カーブから作成する場合、コントローラー数と長さの入力は無視されます。
・コントローラー数 カーブを変形させるコントローラーの数を入力
選択カーブから作成する時は無視されます
・長さ デフォルトの長さ
選択カーブから作成する時は無視されます
・デフォーマーの数 デフォーマーの数を指定します。
・コントロールアイコンのサイズ 制御するヌルのサイズの基準となる値です。作成後はGrobalSRT内にサイズを変更するパラメーターがあります
・捻りハンドルの数 動画でぐるぐるねじねじ回してたアレの数を指定します。
デフォーマー数より多い値を入力すると失敗するので注意。
・グローバルハンドルの作成 グローバルでハンドルをコントロールする補助コントローラーを作成します。
前バージョンで必ず作成されてたものです
・パス位置相対値指定 パス上を走らせる時に位置のパラメーターを0〜1(開始〜終端)の相対値で指定します。
チェックを外すと絶対値指定です。パスの開始点からの距離が固定されるので状況によってはこっちの方がいいかも。
どっちで制御するかはお好みで
・伸縮に合わせて変形 スパインが伸びたり縮んだりしたとき、それに合わせて痩せたり太ったりします
・縦スライド変形コントローラー生成 デフォーマーをカーブ方向に移動させるエフェクトのためのコントローラーを作成します
(前バージョンで縦シヤーコントロールと言ってたやつです。なんかこっちのほうの名前がしっくりくるので。)
・バルジ変形コントローラー生成 デフォーム→バルジっぽい変形をするコントローラーを作成します
・シャドウリグ生成 エンベロープ用のポーズコンストイントされたヌルを作成。ゲーム等に。
・接頭語 作成されるリグのオブジェクトの全ての名前につけられる接頭語です
・トレースカーブ分割数 スネークリグ全体を1つのカーブと考えたときのカーブのポイント数だと思ってください。
前バージョンでは100固定だったのを指定できるようにしました
通常の使い方ではコントローラー数の4〜5倍あれば十分です。あんまり多くすると重くなります。
リグ作成後に変更したい場合は後述するスクリプトで変更してください。
===========================各コントローラーの説明===========================それぞれアニメーションに使うパラメーターをマーキングセットに登録しときました。
XSI6以上ならキーセットに登録すればいいんじゃね?
・Path_Ctrl
パスの形状をコントロールします
アニメーションするパラメーター
pos X Y Z
・TwistHandle
捻る時に回します。
rot X
・twist_grobal
「グローバルハンドルの作成」にチェックを入れておくと作成されます
twist_handleが思うように制御できない・グローバル座標で固定したい等の時に上の階層でコンストレイントしてあげる補助コントローラーです。
DisplayInfoパラメーターのスイッチをオンするとコンストレイントが切り替わります。
思いどうりにアニメートできたらtwist_handleのX回転をプロットしてあげましょう。
・upV_bone_root
ルートは現在のパス上の方向によって自動で回転しますが万能ではないです。
パスの根元を大きくぶん回したり、ぐねぐねとパス上を移動させると
スパイン全体がクルンとひっくりかえってしまう時があります。
そんな時はDisplayInfo:cnsSwitchをオフにして手動で回して調整しましょう。
また、DisplayInfoにスパインの長さとパス上の位置を制御するパラメーターが入っています。
DefaultLengthと現在の長さで伸び具合を判定して伸縮に合わせて変形等の計算に使用します
ストレッチは0にすると「長さ(Length)」パラメーターを参照、1にするとコントロールカーブの長さと同じになります。
DisplayInfo:DefaultLength(デフォルトの長さ)
DisplayInfo:長さ
DisplayInfo:位置
DisplayInfo:ストレッチ
DisplayInfo:TrailLength(現在のリグの長さ。参照用)
rot:X Y Z
・BulgeCtrl VerticalSlideCtrl

四角い方がバルジ、円の方が縦スライドです
バルジはまんまデフォーム→バルジを適用した風にスケーリングで動きます。蛇が卵を飲み込んだ感じ?
縦スライドはデフォーム→シヤーをY方向に適用した風に動きます。表面の皮がずれるような表現に。
バルジ変形のSclX(YZ)_weightはそれぞれの軸に適用されるスケール値のウェイトを指定できます。Xがカーブ方向です
DisplayInfo:位置
DisplayInfo:振幅
DisplayInfo:範囲
DisplayInfo:SclX_weight(バルジのみ)
DisplayInfo:SclY_weight(バルジのみ)
DisplayInfo:SclZ_weight(バルジのみ)

外側と内側の2重になってますが外側でアニメーション
内側のは最初からFカーブが入ってます。
これはアニメーション用じゃなくて、変形と減衰のプロファイルカーブとして使用してください。アニメーションを削除するとエラーになります。
↑こんな感じ。
※バルジ変形はデフォーマー数・ポリゴン数が多めでしかもエンベロープのウェイトをかなりぼかさないと綺麗に変形しないぽいです。
また、デュアルクォータニオンエンベロープはスケーリングに対応してないようです。残念。
まぁ映像なら素直にデフォーム→バルジ使った方が綺麗にできるしね。
そんなこんなで使いどころは限定されるかと思われます。
・ThinFatCtrl伸縮に合わせて変形を制御するコントローラー

基本的にはバルジ変形コントローラーの応用品です。プロファイルカーブの調整等も同じですが、_shrinkというカーブが追加されています。
-100フレームの値が長さ0、100フレームの値が2倍の長さになったときのスケール値の設定です。
・VertebraStayデフォーマー位置を調整するコントローラー

2本のFカーブでデフォーマーの初期位置、スパインが伸びたときの位置を調整できます
調整する際は「調整のアクティブ」に一旦チェックを入れておいてください

・DefaultPos
デフォーマーの初期位置です。任意の位置にデフォーマーを詰めたり間引いたりできます




・StayPos
Fカーブを水平にしたところのデフォーマーの間隔が伸びなくなります。触手の先端なんかにいいんじゃなイカ?
・調整のアクティブ
これにチェックを入れておかないとデフォーマー位置の調整が反映されません。
一度チェックを入れて調整を反映させればあとはオフにしても大丈夫です。
オフにしておくとちょーーっとだけパフォーマンスが向上します。(これよりバルジ変形とか縦スライドの方が重いんですが・・・)
トレースカーブ分割数について作成時に設定するトレースカーブ分割数が少ないと角ばった箇所が丸くなってしまいます
こういった使い方をするリグは多めに設定してみましょう
そもそもカクカク曲がるカーブは苦手なリグですが・・・途中で分割数を変更したいときはこのスクリプトを使用してください
前バージョンで作ったリグでも使えます。というか前バージョンで作ったやつのために作りました。
Snake_body_crvを選択してこのスクリプト実行してください。分割数を変更できます。

↑コレを選択して
↓コレを実行
Snake_ReDivide.vbs・ボヤキとか
ずいぶん前に書いたスクリプトなんで見直してみると無茶なスクリプト書いてたもんだ・・・
不具合があったら報告お願いします
しっかしこの手のリグはもうICEにお任せって時期がもう来てるのかなぁ?時代に取り残されてはいかんのぉ・・・
一部でもICEにした方が便利そうなところもチラホラあって時間とやる気があれば・・・
次は使ってる人居るのか居ないのか・・・アニメーションコピペツールのアップデートを予定してます。
そして修正作業はちょっと詰まり気味です・・・