2013年9月17日火曜日
[MEL]頂点ウェイトの軽量化ツール
リアルタイム系のウェイト調整作業でよく必要になる、
・ウェイト値の桁数設定
・インフルエンスオブジェクト数の上限設定
をひとつにまとめたツールを作ってみた。
ページ下部からダウンロードしたファイルを解凍、ファイルを
Mayaのスクリプトパスにコピー後、Mayaを起動すると使用できる。
【使い方】
1.任意の頂点を選択(複数モデル可)
2.Script Editorに SkinWeightReduction(); と入力。
シェルフ等に登録しても良い。
・ウェイト値の桁数設定
[Reduction Threshold]に任意の桁数を入力しEnter。
(小数点以下1桁の場合は0.1、2桁の場合は0.01…、小数)
[Round off the Weight Values]ボタンをクリック
・インフルエンスオブジェクト数の上限設定
[Reduction Threshold]に任意の桁数を入力しEnter。
(1つの場合は1、2つの場合は2…、自然数)
[Limit the Number of Influences]ボタンをクリック
ウェイト値の桁数設定は基本的に四捨五入で値を決定しているが、
桁が0.1の場合、値の合計が0.9~1.1になる可能性があるため、
その場合には一番大きな値を増減して正規化している。
一方インフルエンスオブジェクト数の上限設定では、設定数が2の場合、
1頂点中ウェイト値の大きい2つを残し、残りを合計。
残り値を上位2つのウェイトの比率でそれぞれに分配することで正規化した。
どちらも簡単な機能なので1つのツールにまとめたが、値の入力場所を
1つにまとめたUIは少し使いづらいかなと感じている…。
「Skin Weight Reduction」をダウンロード
2013年4月25日木曜日
[試作]Tail Rig のジョイント数を増やす
前から作ってみたかった機能。
ジョイント数の少ないtail rigやsnake spineから、
アニメーションを保持したままジョイントの数を増やした
動作/形状ともに滑らかなチェーンを生成する。
説明しづらいのでとりあえず動画にしてみた。
実際はまだツールの形にもなっていない試作の状態。
使い道としては、
・低スペックハード向けのRIGをアップコンバート
・少ないノードで尻尾を動かすRIGとして使用
などを想定している。
ただ、私自身はRIG/アニメは専門外なので、
本当に使い道があるのかはやや不安・・・。
ご意見などありましたら是非お教えください。
2010年6月9日水曜日
オブジェクトのコンストレイン(追従)
・キャラクターセットアップのハンドル作成
・ウエイトスキンを使わないボーンを用いたアニメ(メカなど)
・オブジェクトにカメラを追従させ、一人称の画を作成する
・エクスポート出来ないデータにロケーターを追従させ、
代わりにそのロケーターをエクスポートする
など使い方はいろいろ。
1.追従されるオブジェクト・追従するオブジェクトの順でモデルを選択する。
2.Animationメニューの[Constrain]→任意の対象を選ぶ。
・Point …移動値
・Aim …(モデルの向き。今回省略)
・Orient…回転値
・Scale …拡大値
・Parent…(相対的移動・回転値。今回省略)
オプションメニューで以下の設定が可能。
[Maintain offset] …現在の相互差分の値をオフセット値に使用する
[Offset] …XYZのオフセット値。手動入力。
[Constraint axes]…コンストレインする軸方向を選択
[Weight] …追従する割合を設定
2010年5月15日土曜日
色々なアニメーションをキーフレームアニメに変換する
パスアニメやコンストレイン、ダイナミクスなどキーフレーム以外の方法で
アニメーションさせたものを、キーフレームアニメに変換する方法。
アニメーションのベイク(焼付け)。
【サンプルのパスアニメモデル】
1.変換する対象を選択する。
2.[Animation]→[Edit]→[Keys]→[Bake Simulation■]を選択。
3.オプションウインドウで各種設定を行い[Bake]ボタンで実行。
【Bake Simulation Options】
[Hierarchy]
・Selected・・・選択オブジェクトのアニメのみベイク
・Below ・・・選択オブジェクト以下の階層全てのアニメをベイク
[Channels]
・All keyable ・・・選択オブジェクトのキー設定可能な全てのアトリビュートをベイクする
・From Channel Box・・・チャンネルボックスで選択されているアトリビュートのみベイクする
[Driven channels]・・・ドリブンキーをキーセットに含む
[Control points]・・・変形可能な制御点(バーテックス、CVなど)のアニメをキーセットに含む
[Shapes]・・・シェイプノードのアニメをキーセットに含む
[Time range]
・Time Slider・・・タイムレンジの制限なし
・Start/End・・・下枠のStart timeとEnd timeで指定した範囲をベイクする
[Sample by]・・・何フレーム毎にキーを生成するか。1で全てのフレームにキーが打たれる
[Keep unbaked keys]・・・ベイクしていないアニメーションを保持する
[Sparse curve bake]・・・最小限のキーのみでファンクションカーブを作成する
[Disable implicit control]・・・IKハンドルなどのコントロール効果を無効にする
【ベイク前のファンクションカーブ(motionPath)】
【ベイク後のファンクションカーブ(Translate X,Y,Z)】
2010年2月16日火曜日
[MEL]アニメーション関係のMEL素材
アニメーション関係のMEL。
オブジェクトに使用されているアニメの先頭・最後のキーフレームを取得
findKeyframe -w first; // 先頭フレームを取得
findKeyframe -w last; // 最終フレームを取得
シーンのアニメーションの再生フレームを設定
playbackOptions -ast 0 -aet 60; // 0~60fを再生フレームに指定
(使用例)選択したモデルのキーフレームが打たれている範囲に再生フレームを合わせる
$stFm =`findKeyframe -w first`;
$edFm = `findKeyframe -w last`;
playbackOptions -ast $stFm -aet $edFm;
シーンのアニメーション再生開始フレームを変数$iに代入
$i= `floatField -q -v MayaWindow|mayaMainWindowForm|
formLayout4|formLayout18|formLayout19|formLayout46|floatField5`;
シーンのアニメーション再生終了フレームを変数$iに代入
$i= `floatField -q -v MayaWindow|mayaMainWindowForm|
formLayout4|formLayout18|formLayout19|formLayout46|floatField2`;
2009年7月3日金曜日
[MEL]fカーブの接線の角度をコントロールする
Graph Editorでアニメーションのfカーブを編集する際に、
キーの接線を簡単に編集するMEL。実行すると小ウィンドウが開かれる。
プロシージャ名は TangentController();
操作方法などを動画にしてみました。
【使用方法】
1.GraphEditorで接線の角度を変更したいキーを選択(複数選択可)
2.イン/アウトの接線を平行にしたい場合は[Both]そうでない場合は[In][Out]のいづれかにチェック
3.数値入力かスライダーを動かすと、選択したキーの接線の角度が変わる(-90°~90°)
4.アンドゥ可能
「TangentController.mel」をダウンロード



