Siggraph Asia 2009 「FF13 リアルタイム カットシーン・ワークフローについて」(後半)

すでに幾つかのニュースサイトで詳細な記事が公開されていますが、自分の頭の整理の意味も込めて、ノートに書き留めた内容をまとめておきます。
あと、直接セッションを受けての感想や、映像を見て推測した仕組みなどもチョコチョコ追加しています。その部分は「青字」で書いていますので、他のサイトで記事を読まれた方は、「青字」だけを追ってもらっても良いかもしれません。


まずは、前半記事の補足から。

SoftimageXSIのバージョンは「5.11」を使用

  • CristalToolと連携するためのツールをたくさん組んでいたため、
  • 使用するアーティストの手に馴染んでいたため
  • ヘルプスタッフを見込んでいたため、標準ツールを使用していた

なぜ、今回はMotionBuilderを使用したのか?

  • 新たにメンバーに習熟させるコストを考えると悩ましい所だが、開発期間(16ヶ月)を考えると、MotionBuilderを覚えた方が効果的(それじゃないと無理)
  • ただし、イベントに登場する機会の少ないモンスター・ビークルなどは、MotionBuilderで新たにRigを作成するのが手間なので、Softimageで作成された。
  • これを可能にしたのが、DCCツールと、中間ファイル(Miga)のインポート・エクスポート環境
    • MotionBUilderから吐き出した中間ファイル(Miga)を、SoftimageXSIにインポート。また、その逆もできる。
    • Softimage・MotionBuilderと、Mayaにも対応

⇒ただ、データ管理の面からいくと、DCCツールはひとつにまとめた方が無難なのは間違いない。


では、後半のレポートはここからです。

フェイシャル

フェイシャルリギング(詳細の説明はなかったので、あくまで憶測です)
  • 見ている感じは、ラストレムナントのユーザー事例で紹介されていた、フェイシャルRigの改良版
    • そういえば、Avid時代のユーザー事例消えたんでしたね・・・。
  • 全てボーン制御で、表情・音素を、カスタムプロパティのスライダーを使用してブレンドする
  • モーフィングは無し
  • デフォーマー(ボーン)を制御するレイヤーは3層のようである
構造

スキニングに使われている、デフォーマー(ボーン)
 ↓
筋肉レイヤー
 ↓
音素・感情レイヤー
 ↓
オフセットレイヤー

各レイヤーの役割
  • 「筋肉レイヤー」
    • 顔のボーンを、表情筋にあわせて動かすだけのレイヤー
    • 眼輪筋・前頭筋など、一つ一つの動きを分解し、スライダーで制御
    • ただし、口角、目の周りなどは複雑なので、いくつかに分けている可能性あり

  • 「音素・感情レイヤー」
    • 感情にあわせて、筋肉レイヤーのブレンド値を変える
    • 「笑っている」感情を出すなら「笑筋スライダー」80%、「眼輪筋スライダー」45%などをプリセットとして、スライダー化
    • 音素も同様に筋肉レイヤーを制御しプリセット化している
    • それにより「あー」と言いながら、怒ってるという表情も、ここのスライダー制御でブレンドが可能になる
  • 「オフセットレイヤー」
    • もちろん、上記のスライダーで表現が完了する場合もあるが、ポリゴンの破綻や、「口角だけもうちょっと上がって欲しいぃ」などのこだわりについては、最後に顔の骨を一本一本制御できる構造
    • 上記の、音素・感情レイヤーで決定された顔の骨の位置に対して、その名のとおりオフセットを入れる

という感じでしょうか。

音素解析ツールも使用

上記のフェイシャルRigが便利とはいえ、日本語・英語両方とも人手が足りなかったので、音素解析ツールも併用

  • 日本語はNHK技研との技術提携。
  • 英語は旭化成(VORERO)を使用。

⇒この技術で作られたフェイシャルアニメーションの精度は実用レベルと言って良いもの

■シミュレーション

カットシーンでのリアルタイムシミュレーションは、主にキャラクターの髪の毛や衣服などに適用されました。

その手法は大きく2つに分けられ、DCCツール上でのシミュレーション結果を、骨にプロット(ベイク)したものがあるようです。

シミュレーションを行う上でのコンセプト
  • 動くべきものを動かす
    • 髪の毛や衣服などの、今まで妥協されていた箇所を揺れる様にする
  • 次世代モーション政策の標準規格の検討
    • クオリティをどこまで上げれるか、大規模開発の落とし所を探る
DCCツールでの作業の課題点
  • ワークフローの制御を職人でなくても理解できる所まで簡略化する必要があった
    • 流動的なヘルプスタッフにも馴染みやすいフローが必要
  • リアルタイムに落とし込む際に、DCCツールでシミュレーションしたリッチ情報に落とし込む際に失われる情報がある、
  • Rigの簡略化
    • 標準的な技術を使用して、Rigを組むことで、誰にでもしようできるものを作る
    • Expressin、Syflexなど
物理セットアップ
  • DCCツール上でのシミュレーションも、最終的にはデフォーマ(ボーン)に反映させなければならない
    • エクスプレッションキャッシュなどのを行う上での
  • 柔らかい部位であれば、動作時期を意識的に隠す

物理シミュレーションに使用した、2つのRig

  • クロスRig
    • 衣服・布・長髪(おさげ)などに使用する
    • Expression
  • スプリングRig
    • 髪の毛などに使用
    • 一つの間接を持つボーン物理

クロスRigの仕組み

クロスシミュレーションメッシュ(ポイントコンストレイン
 ↓
オフセットボーン(風の追加・動作倍率の変更)
 ↓
スキニングに使われている、デフォーマー(ボーン)

「クロスシミュレーションメッシュ」

スキニング対象と同じ(似た)形状のオブジェクトをクロスシミュレーションし、それに対してボーンを、ポイントコンストレインで拘束

「オフセットボーン」

オフセットボーンと、一種類の呼び名で呼ばれていたが、動作を見ていると2段階の制御に見えた。クロスシミュレーションの結果に対し、オフセット風でスプラインを揺らす。さらにその結果を元に、一つ一つのボーンにスケールを入れズラす事ができるしくみのような動作をしていた。

⇒シミュレーション + 加算のシミュレーション + 手付けで微調整」という3層構造のようだ。*1

製作したプラグイン

Syflex Editor

Syflexのパラメータにアクセスしやすいようにしたツール

  • シミュレーションの調整に必要な機能を集めたツール
    • キャッシュの管理
    • パラメーターへの簡易アクセス(ネイル・フォース)
    • 同じシーンにある、複数のSyflexオペレータに対しグループ化を行い、一括調整できるようする
実機のリアルタイムシミュレーションを、Softimage上で再現するカスタムプラグイン
  • 実機の挙動が、DCCツール上での編集により再現できる
    • 効率的に編集を行える
シミュレーションのバッチ処理
  • 演算からエクスポートまでを一括で行う
    • シミュレーション結果が気に入らなければ、シミュレーション用Rigを調整し、再度バッチ処理を行う
    • それでも処理しきれないところは、個別に設定を行う

⇒10カット1000フレームを、20分程度で処理できる
⇒サーバーの増加で、重たい処理にでも対応できる

VFX

スタッフ構成

⇒上記全てを11人で作業を行う。
⇒そのうち、6人がバトルなどと掛け持ちしながら、作業をしていた。

使用したツール
テクスチャ Photoshop・AfterEffects・Maya
モデル Maya
アニメーション・データ作成 CrystalTools
Mayaプラグイン
  • モデルへのシェーダー割り当てを簡易化する
    • シェーダーに詳しくないデザイナーでも簡単にシェーダーを組める
    • 欲しい機能のボタンを、次々押していくだけ

⇒デザイナーはシェーダーの機能だけを理解していれば、複雑に絡み合ったシェーダーも簡単に作れる

Crystal Tools上での作業

特徴
  • Mayaで設定したシェーダーパラメータがそのまま出てくる
  • シェーダーのアニメーション・テクスチャの差し替えなどは、ここで行う
  • PC上での作業がそのままTVモニタでビューイングできる

■ライティング & ポストエフェクト

ライティング
  • 各カット・人物ごとにライティングの調整をしている
ポストエフェクトで使用しているものの紹介
  • カラーコレクション
  • DOF
  • グレア

⇒標準的な機能で、凝れるだけ凝る。

■まとめ

今回のセッションは、大規模・大人数の体制での効率的なワークフローとしては、素晴らしい内容でした。今まではアーティストの力量でビジュアルクオリティを上げていたような感じだったが、ベースとなる環境・ワークフローにも非常に力を入れているように感じました。また、全てのパートに置いて共通して重視されていた事があったように思います。それが、下記の3点です。

  • フローに慣れ親しんだ人でなくでも、すぐに作業できるように、作業を簡略化
  • 可能な限り、自動化
  • ただし、最終的な判断にアーティストの個性の入る余地は残す

今回発表されたような環境作りを、全ての会社で実現できるとは思いませんが、上記3つの項目については、ゲームデータを作るうえでの普遍的な内容だと思うので、この考えを元にして、会社の規模に合わせた環境を整えると良いのかな。そういうふうに感じたセッションでした。


あと、最後になりましたが、ここまでプロジェクトのノウハウを発表していただいた、Square Enixさんには感謝しています。ありがとうございました!


ニュースサイトでの「FF13」セッション記事

*1:上の図は、厳密に言うと違うのかもしれないので、ご意見あればお願いします。