強火で進め

このブログではプログラム関連の記事を中心に書いてます。

「UnityでのPS4ゲーム開発『 バイオハザードアンブレラコア制作事例 』」の講演内容

CGWORLD2016 クリエイティブ カンファレンスのセッションはほとんどが撮影禁止でしたがこちらの「UnityでのPS4ゲーム開発『 バイオハザードアンブレラコア制作事例 』」は撮影OKだったので講演内容の記事を残しておきます。

開催概要| CGWORLD2016 クリエイティブ カンファレンス
http://cgworld.jp/special/cgwcc2016/

BIOHAZARD UMBRELLA CORPS(バイオハザード アンブレラコア)

CAPCOM:BIOHAZARD UMBRELLA CORPS 公式サイト
http://www.capcom.co.jp/bioUC/jp/

Unityのすごいところ

  • 料金体系が簡潔で良心的
  • アセットストアが充実している
  • PBR(物理ベースレンダリング)に対応
  • リフレクションプローブなどの設定が直感的
  • ゲームプレビューが簡潔で力強い

高効率なプロトタイピング

プロトタイピングとはなんぞ?

開発初期段階においてコンパクトなチームで試作版を作ります

敢えて少数にする事でトライ&エラーのフットワークを軽くし、ゲームコンセプト部分の検証精度を上げる

このプロトタイピングがうまく機能すると、本開発で必要な工数割り出しや最終段階のイメージ共有などが捗る

フォトリアルなビジュアル表現

目標:BHシリーズのステージを現代に蘇られせる
→マップの種類は多い方が良いよね!

目標:超リアルなモデル・背景にしたい
→だよね、でもコストが大変なことになるよね!

解決策1:BHシリーズ過去のリソースを流用
解決策2:物理ベースレンダリングの活用
解決策3:3Dフォトスキャンの活用


※左がBH4で使われていたテクスチャ、右がUnityで使ったテクスチャです。BH4ではテクスチャに書き込まれていた表現もPBR向けでは必要無く成った要素などに修正が入っているそうです。


【Unityの画面】

物理ベースレンダリングを活用する

物理ベースレンダリング(PBR:フィジカルベースドレンダリング)とは、今までベースカラーマップ、スペキュラーマップなどの近似的な表現で突き詰めいていた質感表現を、アルベド、メタリック、ラフネスで設定することにより厳密な計算で物理現象を表現する手法

IBL(イメージベースドライティング)用の環境マップ

検証時はHDRIファイルの作成にRICOH THETA Sを使用

RICOH THETA S 360度 全天球カメラ 910720

RICOH THETA S 360度 全天球カメラ 910720


※左から、実際の被写体(人が実際に服を着て撮影)、スキャンした生データ、テクスチャを割り当てたデータ、クリーンナップした完成品だそうです


※生データのままではクオリティが低い部分をクリーンナップ

3Dフォトスキャン

メリット
  • 割り切れば、素早く実機に反映できる
  • 造形の説得力が半端ないクオリティ
  • テクスチャがそのまま元の被写体から作れる
  • PBRとの親和性が高い
デメリット
  • どんなモデルでもアシンメトリである
  • パーツ分けが必要な場合、調整が大変

臨場感を出すための工夫

臨場感を出すためには、まるで自分がそこにそん時するかのような感覚を覚えるほどの空気感がが理想
そのためにモデルのクオリティだけではなく、様々な要素が必要になる
その中でもカメラエフェクトでまかなっている部分が以下

  • Antialiasing
  • Screen Space Ambient Occlusion
  • Global Fog
  • Amplify Color Effect
  • Bloom
  • Dirty Lens Flare
  • Candela SSRR

カラーグレーディングはアセット(Amplify Color)を使用。Photoshopのフィルターを使用して色調整を行った後にその結果をそのままUnityに持ってこれる。

臨場感を出すための工夫

Candela SSRR V3: Advanced Screen Space Glossy Reflections - アセットストア
https://www.assetstore.unity3d.com/jp/#!/content/41742

スクリーン処理で物理シェーダにリフレクション(水面での反射など各種反射)を設定可能

擬似的に表現しているので通常の動的環境マップで処理するより軽い
カメラの画角によっては上手く表現できない場合もあり

様々なシェーダを用意

サウンドレーダー

レーダーマップ上で音の強弱を表す効果
イコライザーのイメージからのネタだったが処理軽減のため、想定からかけ離れたものになった

モーフィングシェーダ

テクスチャ画像を四散させる事ができるシェーダ
初代バイオの「You are dead」イメージを再現する為に用意

サーチグレネードシェーダ

効果範囲を視覚的に表示する為に用意

雨シェーダ

法線方向によって割り当てるノーマルマップを切り替える事が出来る

霜シェーダ

表面に降りる霜の量をインタラクティブに変えられる様に用意

積雪シェーダ

原理は雨シェーダと同じ。雪ステージの遠景を効率よく作るために用意

開発期間の圧縮

前述したプロトタイピング、3Dフォトスキャンは開発期間の圧縮にも影響を与えており、本開発に大きな意味を持ちます。

プロトタイピング
  • 方向性をチームで共有することでブレを少なくする事ができる
3Dフォトスキャンの活用
  • 当初の想定よりもあまり圧縮は出来なかった
アセットを流用・購入する

おまけ 処理上げの為の取り組み

Simplygonを活用したLODモデル
  • 3段階のLODモデルを用意
GameObjectの数を削減する
  • 手軽にヒエラルキーにObjectを追加できちゃうので処理負荷掛かり気味…
  • Draw Call数を減らすように階層を工夫するのも有効

メモ

シェーダづくりにはShader Forgeが活用されたそうです。このアセットは他の会社の事例でも良く話の出る定番のアセットですね。ノードベースで有るため、デザイナがシェーダを作成可能な所が良いみたいです。