テクモ株式会社
NINJA GAIDEN 2
フェイシャルアニメーションの質を向上を実現したSoftimageのFace Robot
- ゲーム
Face Robot の ゲームエクスポート機能
より豊かな表情に生まれ変わった Face Robot モデルは、ゲームエクスポート機能を利用して出力される。Face Robot のゲームエクスポートは、フェイシャルソルバーによる動きを、ゲームで利用可能なエンベロープウェイト値と Null ボーンの移動・回転値に変換するというものである。まず、ペイント機能を用いてゲームモデルに対する Null ボーンの位置を定義するところから始まる。後は、Face Robot が自動的に動きに最適なエンベロープ値を算出し、Null ボーンの移動と回転による表情のディフォーメーションが再現されるという仕組みだ。
キャラクタによって異なるが、『 NINJA GAIDEN 2 』の登場キャラクタの顔には平均 50 本のボーンが使用されている。エンベロープウェイト値とNull ボーンのアニメーションは、実機へと出力されフェイシャルアニメーションが再現されるのだ。
Null ボーンによって表情を再現する手法に加えて、リアルタイムシェーダ技術による繊細な表情の演出も行えるのが Face Robot の特徴である。Face Robot のアニメーションは、各コントローラを移動させることでソルバーの計算が行われ豊かな表情を生み出している。実はコントローラの移動時には、ストレスマップと呼ばれ負荷がかかっているエリアを内部計算している。Face Robot は、この負荷情報を数値アニメーションに変換し、テクスチャをブレンドアニメーションさせる機能を備えているのである。『 NINJA GAIDEN 2 』でも、この技術は利用されており、法線マップとカラーマップのブレンドで、眉間のしわを表現しているキャラクタが存在する。
ワークフローは次のとおりだ。まず、Zbrush を利用して作成したモデルから法線マップを2枚用意する。シワがある状態の法線マップと無い状態の法線マップである。同様に色の変化が書き込まれたカラーマップも2枚用意する。これらのテクスチャをストレス値のアニメーションをもとにブレンドさせるわけだ。しかし、単純に顔全体をブレンドさせるだけでは繊細な表現は行えない。そこで、おでこや右目尻だけといった部分的なブレンド制御は、次のように実現している。Face Robot が 9 つの領域に対するそれぞれのブレンドアニメーションを自動計算してくれるのだ。領域の情報は、3 つの頂点カラーの RGB 値 (R・G・B×3=9つの領域) のアニメーション値として存在するため、ゲームのランタイム側で利用が可能なのだ。もちろん頂点カラー情報を自分で塗りなおすことで、シワを寄せるエリアを定義し直すということも簡単に行える。
フェイシャルアニメーションのプレビュー
Face Robot 内のアニメーション作業は、基本的にスタビライズした状態 (顔が固定された状態) で作業は行われているという。では、顔とボディは、どのように連動させてアニメーション確認を行っているのであろうか?実は Face Robot 内に顔と体のリグを同時に読み込んで確認する方式ではなく、顔と体を連動させたアニメーションの確認作業は全て実機上で行っているのだ。ゲームエクスポートのワークフローやボディモーション担当者との連携を考慮して、この実機上でのプレビュー方式が採用された。
まず、ボディ担当のアニメータが完成させたキャラクタの動きを実機上に出力する。同じ場面に、Face Robot 側からのフェイシャルアニメーションを出力して組み合わせるのだ。その際に、キャプチャ時に収録した首の回転アニメーション値をボディとの連動に利用している。首から上のデータが出力されているので、ボディとの接続の際にギャップが発生するという問題は発生しなかったという。
なお、目線 (黒目の動き) のアニメーションは、CG ツールでは作成せず、ゲームの実機上で設定している。注視点の動作設定を実機上で行い、イベントシーンの段取りを制御する構成データの中に記述して対応を行っている。
実機に出力する確認方法の他に、スタビライズを解除して Face Robot の画面キャプチャ機能で、次のような簡易モーションチェックを行う場合もある。
Face Robot を利用した感想
野瀬氏にとって Face Robot を用いたフェイシャルアニメーションは、あらゆることが初めての挑戦であった。そんな中、限界点を超えるべく何度も試行錯誤を行い、プロダクションの過程でノウハウを蓄積していったのだ。リテイクを繰り返す毎に、クオリティの進化が確実に感じ取れたという。
Face Robot は、次のようなユニークな表現にも利用されている。主人公リュウハヤブサの忍者マスクのアニメーションにも利用されているのだ。まず、Face Robot を用いてリュウの顔形状を想定した口の動きをアニメーションさせ、ゲームエクスポートを行う。その後、マスクオブジェクトのグループ化した Null ボーンにエンベロープウェイト値を転送するのだ。忍者マスクだけを直接アニメーションしたので得られない微妙な口の動きまでゲーム上で再現している努力には脱帽だ。なお、忍者マスクと同様にまつげやひげ、眼帯などの付属物がエンベロープの転送によって制御されている。
「Face Robot とフェイシャルキャプチャを併用した際の、唇周りのボリュームを持った動きの再現には目を見張るものがありました。特に英語の V や P といった破裂音のフェイシャルは通常困難な表現です。しかし、Face Robot ではキャプチャデータを流し込むだけで、調整も行わずに唇の肉感的な動きまで再現されるのには驚きです。さらに、フェイシャルソルバーによる筋肉の自然な連動のおかげで、手付けモーションの限界を超えることができました。」と野瀬氏は語ります。
キャプチャを利用した場合、同じ「あ」の音声でも怒っているのか、悲しんでいるのかというところまで違いがわかる。まさに、感情まで正確に再現してくれる。シェイプやリグベースでは実現が困難な表現で、Face Robot を核としたキャプチャデータ運用ならではの強みだといえる。
「プロジェクトの最中は、カナダ・アメリカ・日本という世界中のソフトイマージスタッフの皆様が一丸となってバグ修正や機能強化に応えてくださいました。コンサルティングを含む製品である Face Robot ならではの、積極的なサポート対応にはとても満足しています。今回のプロジェクトで、様々な運用ノウハウを溜めることが出来ました。新たなことに挑戦し、結果としてゲームの完成に寄与できてとても嬉しく思っています。この蓄積を生かし、今後の制作ではさらに上の表現力を押し出せるところまで持っていけると思います。」と野瀬氏は『 NINJA GAIDEN 2 』プロジェクトを振り返りながら語ってくれた。