モデルの動きに合わせて生じるTシャツなど服のシワの表現に関しては、クロスシミュレーションを使用する方法が最もポピュラーかと思います。しかしクロスシミュレーションはどうしても物理演算に時間がかかってしまったり、データ容量が重くなってしまったりと少々厄介です。
そこで今回はノーマルマップのアニメーションを活用して、手軽にモデルの動きに合わせたシワの表現を行ってみたいと思います。
今回はTシャツを用意し、捻る動作を設定します。もちろん現時点ノーマルマップは未設定なので、シワは一切発生しません。
上記の捻る動作に合わせたノーマルマップを作成します。作成方法は、とりあえず適当にクロスシミュレーションを設定してシワを発生させます。続けてスカルプトでディテールの作り込みなど仕上げを行います。後はその凹凸をノーマルマップとしてベイクすれば完成です。
ノーマルマップのベイクに関しては、http://6b.u5ch.com/2011/09/akb482.htmlをご参照ください。
動きに合わせて作成した3種類のノーマルマップを設定すれば、ノーマルマップ・アニメーションの完成です。
影響パネルのジオメトリ:ノーマルの数値を設定する部分で、右クリックして[キーフレームを挿入]を選択すれば、現在のフレームにキーフレームを挿入することができます。
それぞれ3種類のノーマルマップに対して、ジオメトリ:ノーマルの数値を“1.000(有効)”と“0.000(無効)”で切り替えることで、ノーマルマップのアニメーションを設定することができます。
サンプル動画がこちら。ノーマルマップの切り替わるタイミングは少し違和感があるので、まだまだ調整が必要かと思われますが、とりあえず今回はこんなところで終わりにしたいと思います。
服のシワだけでなく、眉間のシワなどフェイシャルアニメーションでも、そのほか色々と応用できるような気がします。