2006.09.25

Face Robotレビューその6

イメージ:Face Robotレビューその6

その6:最終回
次世代メディアとXSI ♯11
門口洋一郎(アビッド テクノロジー)

バックナンバー

今回でRobotレビュー編はいよいよ最終回です。締めくくりとして、ゲーム実機にデータを出力するプロセスについて解説していきます。

ハイクオリティなだけでは意味が無い

前回まで5回にわたって、Face Robotがいかにリアリスティックな顔の表情アニメーションを作成できるかに関して説明してきました。このアニメーションの結果をレンダリングすれば、そのまま映像素材として使用することができます。映画やゲームムービーなどでは問題ありません。

ただしこの連載の主題である、ゲームプラットフォームでの実装においては重大な問題があります。Face Robot v.1.0では出力データとしてシェイプアニメーションかpointOvenを選択できます。ただし次世代機といえど、ハイメッシュデータのフレームごとの全頂点データをリアルタイムで再生するには負荷がかかりすぎるのです。

いかにランタイムで再現するか

そこでアビッド テクノロジーでは、現在業界で広く用いられている技術を用いてジェリーフィッシュソルバで作成されたアニメーションを再現する手法を提供しました。

slide1
画像をクリックしてみてください

スライドショーの1枚目は、フェイシャルアニメーションを実機上で再現するパイプライン全体を模式化したものです。

2枚目はランタイム上で再現するために使用している技術をまとめたものです。大きく分けて変形アニメーションとリアルタイムシェーダの2つから構成されています。変形にはNullボーンとエンベロープ、リアルタイムシェーダに関しては法線マップを使用しています。どちらも次世代機では特筆するような技術ではありません。ただしこれらの技術を使用したデータ出力プロセスの仕様には細心の注意を払いました。

通常のボーンによる出力

Face Robotの中では32個のコントロールアイコンによりアニメーションが作成されます。これを可能にしているのがジェリーフィッシュソルバや様々なデフォーマなのですが、ゲーム会社で使用されているのは通常のボーンによるエンベロープシステムです。

  • 使用できるボーンの数
  • 各ボーンが影響するバーテックスの数
  • エンベロープの丸めの数値
  • シーン毎に登場するキャラクタの数
  • 強調したい演技などに対応する異なる設定のキャラクタ

…などは会社単位どころか、ライン単位で異なります。これらに対応できるように、システムを固定的なものではなくフレキシブルなものにしました。


通常のボーンによる出力1(YouTube)

ペイントを使用してデザイナーが自由にNullボーンの位置を設定することができます。またボーンが影響するバーテックスの数や、エンベロープの刻み値などを自由に設定可能。出力の段階で設定されたNullボーンから自動的にエンベロープ用のウエイトマップが作成され、Nullボーンは移動と回転のアニメーションが適用されます。


通常のボーンによる出力2(YouTube)

ゲーム用のローポリゴンのデータに表情のアニメーションが適用されています。通常のボーンと同じように動くのがわかります。

リアルタイムシェーダによるディテイルの追加

ゲーム用のポリゴンデータは映画などと異なり、膨大なポリゴン数を使用するわけにはいきません。Face Robot上でリアルなアニメーションを作成してもそのままではスポイルされてしまいます。


リアルタイムシェーダによるディテイルの追加1(YouTube)

最初のものがFaceRobotで作成したデータ。1万ポリゴンほど使用していますので表情に合わせリンクルマップに基づきシワが生成されているのがわかります。ゲーム用のデータでは動きそのものは再現されていますが細かいニュアンスが消えているのが分かります。

Face Robotでは法線マップを使用しこの差を埋めていきます。単純に法線マップを貼っただけでは、アニメーションには対応できません。Face Robotでは2枚の法線マップを作成し、アニメーションにあわせダイナミックにブレンドすることで表情にあったディテイルを追加します。


リアルタイムシェーダによるディテイルの追加2(YouTube)

Face Robotはハイメッシュの顔のデータから、シワが無い顔の時の法線マップとシワが全体にかかった時の法線マップを自動的に作成します。単純にこの2枚の法線マップをブレンドするだけでは全体にシワがよってしまいますので不自然な結果になります。


リアルタイムシェーダによるディテイルの追加3(YouTube)

前回説明したテンションマップから、現在どのエリアがアニメーションしているかを判別。その部分のブレンドアニメーションを行うことで、ダイナミックなディテイルの再現ができるようになっています。


リアルタイムシェーダによるディテイルの追加4(YouTube)

法線マップのブレンドに加え、アルベドもシワありとシワ無しのものをブレンドしています。以上の技術を使用することで、この動画のモデルは35個のNullボーンと2950ポリゴンという現実的なデータ量で、Face Robotが作成したフェイシャルアニメーションを再現することに成功しています。

これで6回に渡りお送りしてきたFace Robot編は終了です。そもそも、「なぜFace Robotが必要なのか?」というとこからスタートした記事ですが、いかがだったでしょうか。次回からは再度、SOFTIMAGE|XSIの次世代環境向けの機能について解説を続けていきます。お楽しみに。

(アビッド テクノロジー 門口洋一郎)

関連リンク

バックナンバー
SOFTIMAGE|FACE ROBOT

門口洋一郎さんプロフィール

SOFTIMAGEとはスケルトンが無いころからの付き合い。XSIになってからはバージョン毎に膨れあがるドキュメントに悲鳴をあげている。
http://www.softimage.jp/

このエントリーをブックマークする

このエントリーにトラックバックする

このエントリーのトラックバックURL
http://withd.jp/mt/mt-tb.cgi/1475


GREEインタビュー イマジカデジタルスケープ