2012年8月27日月曜日

CEDEC2012 バイナリードメイン関連の講演についてまとめ

2012/08/22 ご縁がありましてCEDEC2012へに行って来ました。その中でSEGAの龍が如くチームが作り上げたゲーム[バイナリードメイン]の開発システムが、少人数で大規模開発をまわすというとても野心的なものでした。
講演後幾つかゲーマー向けのサイトを覗いてみたのですが、SEGAが行ったこれらについてはどこも詳細を説明をしていないようでしたので、こちらでメモ書きした部分などを公開させて頂きます。
自分自身ゲームの開発者サイドにいるとはいえ、個人がメモ書きをしたものを記憶を頼りに書き起こしています。
一連の講演は開発プロジェクト自体ががSoftImageを使うこと前提で発信していましたが、MAYAでも似た構造の基盤を開発可能だと思われます。3DSMaxでは少々きついところがありますが、その点もご留意ください。

ちなみにこの記事はSEGA公式ではありません。
また間違っていること、情報を端折って書くことでわかりづらい部分などが大いにあります。
元々の講演自体がかなりゲーム開発の中でも専門的な事柄になりますので、その点ご了承ください。

以下、箇条書きでの講演内容のメモ書きになります。誰かの役にたちましたら幸いです。

■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■
08/22    16:30-17:30
セッションタイトル   バイナリードメインにおけるモーションワークフローの作り方
講師         株式会社セガ 白子路央(モーションディレクター)
                       麓一博(テクニカルディレクター)
                    豊田卓也(モーションリーダー)
■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■

セッションの詳細記事はこちらで
CEDEC2012    :http://cedec.cesa.or.jp/2012/program/VA/C12_P0077.html
参考資料     :http://www.youtube.com/watch?v=2auSoB5gRTw

・バイナリードメインの正規モーションスタッフは3人
・プロジェクト当初からロボットが壊れる、また壊れたらそれに合わせてモーションが切り替わるなど1体につき数
 百のモーション作成する必要があったため、かなりの作業を自動化するための環境構築がマストだった。
・最終的にはかなりの部分を自動化でき、それにプラスして、モーションをある程度作ったら重要部位以外の
モーションは実機上で自動生成するようにプログラマにお願いし、挙動をSIシーン上である程度作ったら、そ
れを基に再現実装してもらった。
・たった一人でロボット33体分のRIGをどう管理するか。またモーション実作業者のヒューマンエラーを排除する
かを念頭に環境を構築した。
・プロジェクト途中で必ず起こるRIGの変更を自動でSIシーンへ適用する環境を構築する必要があった。

・作業環境構築に6.5ヶ月。白子と麓が話しあいながら環境構築の規模感などを話し合いつつ、最初の1ヶ月
で週3日づつかけて基盤+運用プロトタイプを麓が一人で作成し、それを白子が引き継いで改定しながら運用
しつつ完成度を高めていった。

・作業環境の基盤を構築した麓は次の作業を行った。
    ・白子と話しながらプロジェクト運用に必要な基盤をどう作るか、技術的な問題点などを洗い出して実装
     内容を検討した。
    ・スクリプトベースのRIGを作るための命名規則などの仕様決めなどモーションリグ環境の下地。
    ・素材の大量処理に対応できるよう、各種データや情報をSIワークグループ上に配置してサーバーから共
     有環境として投下するような環境づくり。
     ※各種データ → プラグイン/スクリプト/webページ上での管理データベース/モーションクリップ/シェーダー
      プリセット/SIシーン起動時に共有されるカスタムパラメータ/キャラクターの基本RIG構造
    ・カットシーン用SIシーン内にある各種データに対して編集/変更があった場合に、カットシーンを開いたら
     自動でバージョンアップできるような支援環境づくり。
    ・SIシーンを開くと、シーン内のRIGと比較して自動で最新のものに差し替える機能の作成/運用
    ・知的財産を守るためのスクリプト/プラグインの分散化仕様作成
    ・モーションテンプレートの作成

・運用部分を担当した豊田は実作業に時に発生した諸々に対応した。
    ・キャラクターのバージョン管理
    ・キャラクターにあわせて実際のRIG作成、RIGのバージョン管理及びキャラクター変更への対応。
     RIGを変更する際にVBSで変更部分を書き、それをメールで周知後、サーバー(SIワークグループ)経由で
     モーション作成者に意識させることなく修正した。
    ・実作業に伴って要請のあったVBS支援スクリプトの作成
    ・カットシーンのモーション作成及びカットシーンやサイクルモーションのディレクション
    ・RIG用プロジェクトパスの設定とスクリプトコマンドの共有環境作成
     これをSIシーンへカスタムパラメータとして仕込むことで、外注先へモーションを発注する際に、ドライブレターを
     共通にするなどの煩雑な仕様を作らずに済んだ。
    ・ポリゴンモデル/骨/RIG/シェーダー/ライト/カメラ、などすべての素材をプロジェクト独自のモデルインポーターを
     作成して対応した。
     SIのシーンリファレンスはシーンデータのクラッシュなど深刻な問題を引き起こすのでこのプロジェクトでは実
     体シーンをいじるようにしてもらった。
    ・SIシーンを開くときにはキャラの大きさ(主人公基準からのスケール)などのデータベースを参照して適正なも
     のかチェックしてヒューマンエラーを防止した
    ・SIシーン内のレイヤーとパスを適切にするスクリプトでPC環境の相違吸収し、作業に集中できるようにした。
    ・サーバー上のエクセルで最新のキャラスケール/カメラ/レイヤー/シーンネーム等を確認/変更できるようにて
     作業を効率化した。
    ・エクセルから最終モーションの出力とモーション動画の自動作成、モーションリストを作成できるようにしてPC
     前にいない時にでもPCを動かしておけるようにした。
    ・エクセルで作業者のスケジュールも管理していて、作業者がエクセルを閉じると作業量と各種リンクの更新が
     行われるようにし、データ更新時の煩雑性を極力抑えるようにした。
    ・作業者以外はプロジェクトweb上でキャラクターの各種情報/モーションリスト/モーション動画を参照してシーン
     チェックや作業者へのフィードバックを行った。

■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■
08/22    17:50-18:50
セッションタイトル    バイナリードメインのボディリグ・フェイスリグの構造と実機との連携
講師            株式会社セガ 麓一博 豊田卓也
■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■-■
セッションの詳細記事などはこちらで
CEDEC2012                :http://cedec.cesa.or.jp/2012/program/VA/C12_P0078.html
音声解析システム(Clipper)    :http://www.cri-mw.co.jp/product/lineup/recognition/criclipper/index.html

◆ボディリグについて
    ・SIのディスプレイインフォとコントローラーで表示する情報を振り分けた。
    ・ディスプレイインフォでは主に各コントローラーの数値情報/ロールのプロキシパラメータ/ブレンド値を
     制御するようにした
    ・各種コントローラーはディフプレイインフォで表示をON/OFFできる用に作成した。
    ・実際のモーション作成はコントローラーを使って行うようにした。

◆フェイシャルリグについて
    ・各部の肉の動きはnul+スキンでコントロールした。まず各部のnullを使って表情(喜怒哀楽驚)をキャラクター
     毎に作成してからプリセット化、それをフェイシャルコントローラーでミックスする構造とした
    ・フェイシャルコントローラーはオブジェクトビューで操作するようにした。また少ない手数で左右のバランスを良
     い感じに崩せるよう、制御nullをLRで分け、表情を変えられるようにもした。
    ・フェイシャルコントローラーは表情/視線と目周辺/頬周辺/口周辺/母音制御/各部の皺をそれぞれ制御する
     構成にした。
    ・口~頬周辺については音声解析ソフト(Clipper)によってモーションを自動化できるよう母音制御や皺と
     ある程度と連動するようにした。
    ・視線などは視線の先にコントローラーを配置し、そちらでも視線を動かせるようにした。また目周辺の動きを
     自動追従0~100%で変異きるようにした。
    ・皺はSIのRealTimeビューを使って頂点変形+ノーマルマップで表現した
    ・それぞれのコントローラーで付けたモーションは最終的なnullに全て加算されて反映されるようにした。

    ・フェイシャルモーション作成する場合の流れ。
        ・フェイシャルの基本サイクルモーションを作っておき、音声がない時はそれを再生する。
         小鼻の動きなど、ちょっとした部分の動きはこのサイクルモーションで少しづつ動かしておき、顔のどこも
         一定にならないようにしておく。
        ・音声解析がある場合はそれを使って荒モーションを作る。
        ・フェイシャルコントローラーで喜怒哀楽驚のどの程度か決める。
        ・顔や視線を動かして見ている方向を決める。
        ・口/頬/眉毛/シワ等で付けたい表情を細々つけていく。
        ・実機に出力して確認
        ・FIXしたモーションをエクセルで出力するとモーション動画とバージョンが自動アップされる
        ・モーションアップ後、web上に出力した各種データがフェイシャルのページに反映されて製作者以外は
       そこで確認した

---------------------------------------------------------------------------------------------------------------------------------
以上

ではあんまりなので、ちょっと当日書いたメモ書きや自分の今までの仕事などから再構成したフェイシャルリグの外装やワークフローを画像に起こしてみました。
もしかしたらオブジェクトビューの構造体に眉毛とかの上げ下げも入ってたかもしれません・・・。
細かい部分は超怪しいところですが、大まかには外れてないと思いますので、思考の一端には
なるかと思います。
この男が何なのかとかはSI使ってる人には説明不要ですよね?なのでリグの形自体もそういう
ことですのでいろいろお察しください。

 ↓↓↓下の画像を別ページで開いてもらうと大きなものになります。 ↓↓↓
http://fc01.deviantart.net/fs71/f/2012/239/f/8/facial_rig_system_in_cedec2012_by_kotobukimansaku-d5cmyzw.png

あまり拡大できない場合は↓↓↓のリンクを開いてみてください。
http://fc01.deviantart.net/fs71/f/2012/239/f/8/facial_rig_system_in_cedec2012_by_kotobukimansaku-d5cmyzw.png

全般的に見て、バイナリードメインのフェイシャルシステムは、複雑になりがちなフェイシャルアクションをどう簡略化するか、またそれと反して時間をかけて細かく調整を利かすにはどうするか、をよく考え洗練していったものだと思いました。
音声(母音)解析による口周りのベースアクションを基にして、プリセット化してある表情/母音/皺などを加算して行く手法は、ここ最近の大規模開発には欠かせないものでしょう。
規模感から言えばシンプルでしたが、過不足なく色々な状況に適応できるとても学ぶところの多いシステムづくりだと思いました。
SoftImageのワークグループや独自のビュー関連を巧みに使ったフェイシャルシステムは、 ゲームの面白さとは直接関係ないかもしれませんが、ワクワクさせてもらいました。

この場ではありますが、CEDEC2012で惜しげもなくいろいろな開発情報を開示して下さったバイナリードメイン開発者の方々に感謝したいと思います。
ありがとうございました。

0 件のコメント:

コメントを投稿