Tシャツのシワをノーマルマップのアニメーションで表現

モデルの動きに合わせて生じるTシャツなど服のシワの表現に関しては、クロスシミュレーションを使用する方法が最もポピュラーかと思います。しかしクロスシミュレーションはどうしても物理演算に時間がかかってしまったり、データ容量が重くなってしまったりと少々厄介です。

そこで今回はノーマルマップのアニメーションを活用して、手軽にモデルの動きに合わせたシワの表現を行ってみたいと思います。

ノーマルマップ未設定
今回はTシャツを用意し、捻る動作を設定します。もちろん現時点ノーマルマップは未設定なので、シワは一切発生しません。

クロスシミュレーションとスカルプトでノーマルマップ作成
上記の捻る動作に合わせたノーマルマップを作成します。作成方法は、とりあえず適当にクロスシミュレーションを設定してシワを発生させます。続けてスカルプトでディテールの作り込みなど仕上げを行います。後はその凹凸をノーマルマップとしてベイクすれば完成です。

ノーマルマップのベイクに関しては、http://6b.u5ch.com/2011/09/akb482.htmlをご参照ください。

動きに合わせて3種類のノーマルマップを設定
動きに合わせて作成した3種類のノーマルマップを設定すれば、ノーマルマップ・アニメーションの完成です。

ジオメトリ:ノーマルの数値で右クリックしキーフレームを挿入
影響パネルのジオメトリ:ノーマルの数値を設定する部分で、右クリックして[キーフレームを挿入]を選択すれば、現在のフレームにキーフレームを挿入することができます。

それぞれ3種類のノーマルマップに対して、ジオメトリ:ノーマルの数値を“1.000(有効)”と“0.000(無効)”で切り替えることで、ノーマルマップのアニメーションを設定することができます。

区切り線


サンプル動画がこちら。ノーマルマップの切り替わるタイミングは少し違和感があるので、まだまだ調整が必要かと思われますが、とりあえず今回はこんなところで終わりにしたいと思います。

服のシワだけでなく、眉間のシワなどフェイシャルアニメーションでも、そのほか色々と応用できるような気がします。


You may also like...