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