スプラインIKはボーンをスプラインにコンストレイントしてくれる
機能なので、前回の記事のように先に描いたスプラインにボーンを
乗せる場合、スプラインと違う位置に描いてもコンストレイントで
位置がぴったりと合うが、
コンストレイントを解除した場合、もちろん元の位置に戻ってしまう。
後々モーションをプロットしたい場合などに備えて、ボーンの位置を
位置あわせなどで合わせておくか、描画の際にスナップを有効にして
描画するといいかもしれない。
上の図はボーンに合わせてスナップを使ってスプラインを描いています。
「Dark ELF」カテゴリーアーカイブ
イラストレータ「長崎 裕子さん」とのコラボ。2Dのイラストを3Dで
モデリングする授業用に制作したダークエルフのお姉さんです。
髪の毛のリグ
前回のスプラインIKを使った髪の毛のリグを作ってみる。
すでにモデルがある場合は、モデルのエッジからスプラインを
作成したほうが、簡単なのでエッジを選択して
「選択からシェイプを作成」でスプラインを作成する。
適当な位置にボーンを作成するのだが、この時スプラインの頂点数と
ボーンの数が同じでなくても大丈夫。
ただし、スプラインの頂点番号には注意しておくこと~
ボーンが逆になってしまいますので。
ボーンの根元になってほしい頂点の番号が1であることを確認し、
そうでない場合は「始点を選択」で変更する。
ボーンの親を選択した状態で
アニメーション>IKソルバ>スプラインIKソルバで先端のボーンを選択し、その後スプラインを選択。
IKとスプラインの頂点の位置にヘルパーが作成されるが、
IKを直接操作するのではなくヘルパーを移動させることで、
ボーンが変形する。
元になっているスプラインに「フレックス」モデファイヤを適用。
あとは、ボーンとヘルパーの親をリンクで頭のボーンの子供にすれば、
移動するとついてくるしフレックスで揺れることになる。
パラメータ
フレックス:伸びる割合
強度:バネの硬さ(数値が大きいと硬いバネ)
揺れ:元に戻るまでの揺れ方(少ないとなかなか戻らない)
Mayaの備忘録3 -スキン・ウエイト関係-
スケルトンによる変形はジョイントからの距離に比例し、
その変形の程度をMayaではスキンウェイトと呼ぶ。
スキンウェイトはポリゴンでは頂点、
NURBSではCVに割り当てられている。
まずは、変形の確認のためにアニメーションをつける。
ジョイントを選択して回転させ「s」でキーを設定する。
変形の思わしくない頂点を選択し、
ウインド>一般エディタ>コンポーネントエディタの「スムーススキン」の
タブを選択すると選択した頂点のウエイト情報が出る。
ウエイト情報とは頂点がどのスケルトン(ジョイント)にどれぐらいの
割合で変形するのか?数値で表したもので、
最大値は1(100%)数値入力して変更していく。
スキン > スムース スキンの編集 > スキン ウェイト ペイント ツール
を実行すると、上図のように選ばれたオブジェクトがモノクロ表示に
変り、スキン ウェイト ペイント ツール 内の
「インフルエンスタブ」の「トランスフォーム」で選択されている
ジョイントの影響が強く受けている部分は白に近づいていく。
ブラシの半径を変更しジョイントを選択しながら、
「加算」で塗ってウエイトを変更していく。
頭など、一気に他のジョイントの影響を切りたければ「置き換え」に
変えて塗る。
ウエイトを保存したい場合は保存したいモデルを選択し、
仮のマテリアルに適用する。
片側にきれいにUVをシンメトリーしている場合など、
UVが重複している場合は
UVの編集>UVテクスチャエディタのポリゴン>空のUVセット作成で
新たなUVセットを作成して、UV作成自動マッピングでUVを作成し少し
縮小しておく(はみでるとダメな為)
スキンスムース>スキンの編集>スキンウエイトマップのエクスポートの
オプションでマップサイズを高めに設定して適用する。
スキンマップのインポートで読み込むことができる。
ウエイトの情報をUVのマップに書き込むというユニークな考え方で、
UVが違うとおそらく無理だと思われるw
Mayaの備忘録2 -スケルトン関係-
まずは、シンメトリコピーしたモデルをメッシュ>結合
さらにメッシュの編集>マージで一つにしてから
編集>種類ごとに削除>ヒストリーで履歴を削除しておく。
Mayaでは小さな円の部分をジョイント、円と円をつなぐクサビ型の部分を
ボーンといい、あわせて、スケルトンと呼んでいるらしい。
他のソフト同様、描画したジョイントは親子のツリー状態になる。
アニメーションメニューセット スケルトン > ジョイントツール で
クリックして、ジョイントを描画するとボーンを自動的に作成してくれので、
描画が終わったらエンターキーで終了する。
足の部分を横から描画し、フロントビューで移動させて足に
フィットさせるがのだが、このとき親のジョイントを回転させて位置を
決めてから、子供のジョイントに下がって位置を移動して
フィットさせる。(移動のみで行わない)
ビルダーに持っていくことを考えてスケルトンの名前はビルダーの
規則名通りに入力するのだが、まずは左半身だけ描画する。
描き終えたらスケルトン>ジョイントのミラーのオプションで
「検索する文字列」=Left「置き換え後の文字列」=Rightで
スケルトンの名前は変換してくれる。
ハイパーグラフですべてのスケルトンを階層の中にペアレントする。
オブジェクトとそのオブジェクトの変形に必要なスケルトンを選択して、
スキン>スキンのバインド>スムーススキンのオプションで
「バインド対象」=「選択したジョイント」
「バインド方法」=「階層内の再近接」
「最大インフルエンス」=「2」
「最大インフルエンス数の保持にチェック」で適用する。
新しいリグを考える
すっかり、更新がごぶさたになってしまいました~
多くの人が見に来てくれているのにスイマセン。
リグを新たに構築していたのですが、
「スプラインに沿ってボーン動かせればな~」と思っていたところ、
スプラインIKの存在を思い出したのでまずはおさらいしてみました。
まずは、普通にホーンを描いてからスプラインを描いて見ます。
この時ボーンの数とスプラインの頂点数は同じでなくても大丈夫です。
「位置あわせツール」でボーンと同じ位置に頂点を合わせます。
IK開始のボーンを選択して、でエンドボーンを選択、スプラインを選択。
すると、ポイントヘルパーが作成されます。
基本はスプラインの上にボーンが移動するので、
ボーンの位置が先に決まっている場合は上記の方法でボーンに
スプラインを合わせておきます。
このヘルパーを動かすことで、ボーンを制御できます。
これを使って揺れもののリグを構築しようかな~と思います。
(いつ完成するのやらw)