43.3K Views
November 08, 21
スライド概要
講演アーカイブ:
https://www.youtube.com/watch?v=66q4d56FoFk&list=PLr_Cbd4sUDTyMGAtfqRojwzFxkVXuU-_L&index=8
講演内容:
今年6月にマルチプラットフォームでリリースされました 「SCARLET NEXUS」の開発で得られたノウハウを、いくつかのトピックに分けてご紹介したいと思います。静止画ベースで表現した特徴的なカットシーンの実装と、次世代機開発を振り返って直面した問題とその対処、また、次世代機の新機能に対する取り組みをご説明致します。
講演者:
青松 正二(株式会社バンダイナムコスタジオ テクニカルディレクター )
竹森 由樹 (株式会社トーセ リードエンジニア)
野田 健 (株式会社トーセ システムプログラマー)
UNREAL FEST EXTREME 2021 WINTER公式サイト:
https://unrealengine.jp/unrealfest/extreme2021winter/
#uefest
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
SCARLET NEXUS 開発事例 特徴的なカットシーンの実装および次世代機開発の道のり 株式会社バンダイナムコスタジオ テクニカルディレクター 株式会社トーセ リードエンジニア 竹森 由樹 株式会社トーセ システムプログラマー 野田 健 青松 正二
はじめに 2021年6月に発売されました SCARLET NEXUS の開発事例 についてお話します。 最初は SCARLET NEXUS がどういったゲームか、概要等を 青松より紹介し、その後トーセのお二人から、より具体的な 開発事例についてお話して頂きます。
自己紹介 青松 正二 株式会社バンダイナムコスタジオ 第2スタジオ 第5プロダクション テクニカルディレクター 2013年 バンダイナムコスタジオ 入社 「SCARLET NEXUS」では、技術面でのディレクションを担当 次世代機対応などの技術検証、各プラットフォーマーとの窓口
その力、君を壊すか絆となるか 脳科学が極度に発展した世界「ニューヒムカ」。 人類は空から降る「怪異」にその生活を脅かされていた。 怪異に対抗できるのは超常的な力を発揮する 超脳力者のみ。 ジャンル: ブレインパンク・アクションRPG プラットフォーム: Xbox Series X|S / Xbox One ( SMART DELIVERY 対応 ) / PlayStation®5 / PlayStation®4 / STEAM® / Windows ( Xbox Play Anywhere 対応 )
SCARLET NEXUS について 超脳力を駆使して戦闘する アクションRPG セルルックのキャラクターと 独自シェーダーの怪異 特徴的なカットシーン表現 マルチプラットフォーム対応
スタティックカットシーンについて 株式会社トーセ 竹森 由樹
• 竹森 由樹(Yuki Takemori) 2008年に株式会社トーセに入社。 ホラーアクションやRPG等の制作に参加し、 ネットワーク機能、シームレスフィールド、 コリジョン制御、敵AI作成、バトル監修等を担当。 本作では技術面のディレクションとレベルデザインの 監修作業、最適化周りを担当。 夜になるとプログラムのビルド中にダンベルで 体を鍛え始めることがある習性を持つ。
スタティックカットシーンとは? 静止画を3D空間内で効果的に動かすことによって、 従来のコミック風やキャラ立ち絵表現とは 異なる新しいカットシーン表現を目指したもの
まずは実際の映像をご覧ください ※本セッションで公開される動画にはSCARLET NEXUSの ネタバレが含まれる場合がありますのでご注意ください。
スタティックカットシーンとは? 静止画を3D空間内で効果的に動かすことによって、 従来のコミック風やキャラ立ち絵表現とは 異なる新しいカットシーン表現を目指したもの
セルルック調のゲームなので静止画とも相性が良い! 一枚絵にした時に見栄えが良くなる!
どのように作っているのか
• アニメーションについて キャプチャした画像を貼り付けた板をノードにアタッチし、 そのノードをアニメーション再生で動かしている。
• アニメーションについて キャプチャした画像を貼り付けた板をノードにアタッチし、 そのノードをアニメーション再生で動かしている。
• アニメーションについて セリフごとにノードのモーションを用意されており、 それをイベント用BPで制御している。
• アニメーションについて 各ノードにはUVScaleやUVOffset、Transparency、 CrossFadeなどが設定できるようになっており、 ノードアニメーション時にキャプチャが貼られた板に 変化を加えることが可能となっている。 一例として、上記シーンのクロスフェードを行う場合について説明します。
• クロスフェードの設定方法について まず、アーティストさんにイベントのカットごとの絵を シーケンサーで用意してもらう。
• クロスフェードの設定方法について 次に、プランナーさんが制御するブループリント上で、 先程のシーケンサーのどのフレームの絵を表示するか指定する。 今回はフェード前の画像が指定されている
• クロスフェードの設定方法について さらに、クロスフェードを発生させるシーンで使用する モーションを指定する。
• クロスフェードの設定方法について モーションの中ではカーブの設定でクロスフェードの掛かり具合と フェードに掛ける時間が設定されている。
• クロスフェードの設定方法について 最後に、どのフレームの絵とクロスフェードさせるか設定し、 演出が完成する。
• クロスフェードの設定方法について ここまでの設定を行って、ようやく1セリフ分の作業となる。 他にも字幕の表示設定や表示終了待ちなどをブループリント上で 行う必要がある。 これらの作業を全セリフで行うと作業コストが膨大になり、 ヒューマンエラーの温床にもなってしまうので、 アーティストさんがMAYA上で作成した演出をUnrealEngine上に 持っていけるように自動化を行っている。
• MAYAで作った演出をUE上で動かすまでのワークフローについて まずはMAYA上でスタティックカットシーンの流れを作成する。
• MAYAで作った演出をUE上で動かすまでのワークフローについて MotionListと呼ばれるエクセルにMAYA上の情報を書き込んでいく。 MotionListに必要な情報をMAYA上からクリップボードにコピーして貼り付けていく。
• MAYAで作った演出をUE上で動かすまでのワークフローについて MotionListの機能でfbxとシーケンサー生成に必要なcsvを出力する。 fbx csv
• MAYAで作った演出をUE上で動かすまでのワークフローについて 前の工程で作成したシーケンサー生成用のcsvをUE上にインポートすることで ゲーム上で使用できるシーケンサーが概ね完成する。 ※インポートは独自ツールで行う。
• MAYAで作った演出をUE上で動かすまでのワークフローについて 字幕やアニメーション切り替えを制御するイベントBPもベースとなる情報を MotionListから出力する。
• MAYAで作った演出をUE上で動かすまでのワークフローについて 出力したイベントBP生成用エクセルを社内ツールで変換するとクリップボードに BPのノードがコピーされるので、UEのエディタでペーストするとBPが完成する。
• RenderLayerの使用について 顔アイコンで使用するキャラクターを別のRenderLayer上に描画し、 キャプチャのタイミングでポストプロセスやライティングを専用のものに差し替えている。
• 表情の切り替えやリップシンクについて ・表情の切り替えはクロスフェードで顔アイコンを差し替え。 ・リップシンクはセリフの音圧に合わせて別RenderLayer上で 口パクしているキャラクターが存在しているので、 そのキャラクターを2フレームに1回キャプチャして表示している。
• 一枚絵の高解像度化について 大きな一枚絵用にキャプチャした画像をそのまま貼り付けると 解像度が荒く見えてしまうことがあったため、 複数枚のキャプチャ画像を繋ぎ合わせて高解像度化を図っている。
• 一枚絵の高解像度化について 大きな一枚絵用にキャプチャした画像をそのまま貼り付けると 解像度が荒く見えてしまうことがあったため、 複数枚のキャプチャ画像を繋ぎ合わせて高解像度化を図っている。 ① ② ③
• キャプチャの枚数制限について 小さい枠(顔アイコン)が9枚 大きい枠(一枚絵)が5枚
苦労した点
• 低解像度テクスチャがキャプチャされてしまう キャプチャ時にMipのロードが間に合わず低解像度のまま キャプチャされることがあった。 ✕ ◯
• 低解像度テクスチャがキャプチャされてしまう イベント開始前に必要なテクスチャをPreStreamに登録して読み込むようにした。 事前に読み込む量によってはMipのロードが間に合わないこともあるので イベント処理の冒頭でMipのロード待ちも行うようにしている。
• 高解像度対応で使用しているキャプチャの繋ぎ目が見える 複数枚のキャプチャを繋ぎ合わせて1枚の絵にしているが繋ぎ目がわかってしまう。
• 高解像度対応で使用しているキャプチャの繋ぎ目が見える ・キャプチャタイミングによって見た目が変わってしまうパラメータを見直し。 →最小輝度と最大輝度を同じにしておく。 アンビエントオクルージョンをOFFにする。 スクリーンスペースリフレクションをOFFにする。 ・キャプチャー毎にカリングキャッシュをクリアして再計算する。 →高解像度キャプチャーで撮影が続いてる最中にカリングのキャッシュが 継続していると一部の境目にあるオブジェクトが非表示になってしまっていた。
質疑応答で持ち帰った質問の返答: Q. テクスチャストリーミング対策でPreStreamで対応したとのことですが、Neverストリーミングでないと 距離が急に移動すると自動で荒いテスクチャをUE4側が読み込んでしまうと思いましたので、 よろしければどのような関数を使ったかなどの詳細を教えていただけないのでしょうか? A.UStreamableRenderAsset::SetForceMipLevelsToBeResident関数によって、 全てのmipレベルをロードし、UStreamableRenderAsset::bForceMiplevelsToBeResidentを trueにすることよって、Mipレベルのロード状態を維持しています。
SCARLET NEXUS における 次世代機対応の道のりと 取り組み 株式会社トーセ 野田 健
自己紹介 • 名前 • 野田 健 • 所属 • 株式会社トーセ • 2009年入社 • 職種 • プログラマー • 来歴 • マルチプラットフォーム対応 タイトルに複数参加 • プラットフォーム固有機能の 対応等を主に担当 • SCARLET NEXUS では Play Station 5 と Xbox Series X へ の対応を担当
目次 • 次世代機対応の道のり • • • • Unreal Engine の恩恵 エンジン開発と並んでの対応 プラットフォーム対応の苦労 まとめ • 次世代機の新機能を使った取り組み • ハプティックフィードバックの活用 • Xbox Cloud Gaming の対応 • まとめ
目次 • 次世代機対応の道のり • • • • Unreal Engine の恩恵 エンジン開発と並んでの対応 プラットフォーム対応の苦労 まとめ • 次世代機の新機能を使った取り組み • ハプティックフィードバックの活用 • Xbox Cloud Gaming の対応 • まとめ
Unreal Engine の恩恵 • 移植の工数が抑えられる • 1から移植対応しなくても、ビルド環境さえ整えば基本的な対応は終 わる • 絵が出て動くようになるまでが早い • 2020年の2月上旬に本格着手して、4月下旬頃には動くように • UE4.25のリリースが4月下旬だったからで、今ならもっと早くできる はず
エンジン開発と並んでの対応 • 本作の対応を開始した時点ではUE4の次世代機対応は不完全 • 足りない機能をカバーしながら開発 • バージョンアップ取り込み時に、不要になったり不整合の出 るコードが多数 • 都度保守し直す必要がある • バージョンアップ取り込み作業もかなりの手間 • カスタム部分の競合が出ると解決が大変 • エンジン側で実装された機能をベースに開発を進めたいので、頻度 は上げたい • 取り込みの頻度と手間がトレードオフ
プラットフォーム対応の苦労 • Blueprintを変更するだけでも毎回クックが必要 • 実機上ではエディタが使えないため • オンザフライすれば比較的快適 • オンザフライできないプラットフォームもあった • プロジェクトでは何らかの原因でオンザフライに失敗していた • ※最新のUE4.27ではオンザフライは動作するようです • 運用でカバー • リポジトリの更新を取得する頻度を減らす • Blueprint等のアセットファイルの変更はなるべく1日の最後にし、帰 りがけにクックする
まとめ • 苦労は多かったが、1から対応することに比べれば工数は大き く抑えられた • エンジンと並行してのプラットフォーム対応は、できるだけ 足並みを揃えて • 不用意なエンジン改造は避ける • アセットファイルの更新を伴う実機確認はクックが辛い • 本開発段階のシステム実装はなるべくC++で • Epicさん、実機でのイテレーションの改善をよろしくお願いします
目次 • 次世代機対応の道のり • • • • Unreal Engine の恩恵 エンジン開発と並んでの対応 プラットフォーム対応の苦労 まとめ • 次世代機の新機能を使った取り組み • ハプティックフィードバックの活用 • Xbox Cloud Gaming の対応 • まとめ
ハプティックフィードバックの活用 • ハプティックフィードバックとは? • Play Station 5 で導入された触覚技術の1つ • 新たに採用されたデュアルアクチュエーターによって、従来よりも 精細で、触覚に訴える振動が可能になった • SCARLET NEXUS での取り組み • インパクトのタイミングだけでなく、画面上の位置ともリンクした 振動により、臨場感の向上を目指した
活用シーン(念力攻撃) • 周囲のオブジェクトを操って攻撃する
活用シーン(ブレインクラッシュ) • 特別なカットシーンの入る必殺技
ハプティックフィードバックの活用 • 画面上のインパクトの位置に応じてコントローラの振動バラ ンスを制御 • 左右で振動のボリュームを別々に設定できるので、インパクトの画 面位置にリンクしてボリュームを変えている • インパクトの奥行きに応じて全体ボリュームも調整し、距離感を演 出している • インパクトの発生元となるアクタのスクリーン座標やカメラとの距 離を元に制御している
Xbox Cloud Gaming の対応 • Xbox Cloud Gaming とは? • クラウドを経由して好きなデバイスで Xbox Game Pass タイトルを 遊べるクラウドゲームサービス • SCARLET NEXUS は Xbox Game Pass の対象 • Xbox Cloud Gaming で遊べる • ただ遊べるようになっているだけではない • スマートフォン等のタッチパネルディスプレイで遊びやすいように、 操作UIを最適化している
Xbox Cloud Gaming の対応 • 操作UIの最適化 • タイトルの仕様に応じて、 遊びやすいボタン配置を 設定できる • タイトルの世界観に合わ せて、ボタンのデザイン もカスタムできる
Xbox Cloud Gaming の対応 • 本作のこだわり • シーンに応じてボタン配置を 個別に設定 • イベントシーンではなるべく ボタン表示を抑制
まとめ • ハプティックフィードバックの活用 • 左右で異なるボリュームで振動させられる特徴を利用して、画面の 位置とリンクした振動を実現 • 臨場感の向上を目指した • ハプティックフィードバックにはまだポテンシャルがある • Xbox Cloud Gaming の対応 • スマートフォンで遊びやすいように操作UIを最適化 • 本体やコントローラがなくても、気軽に遊べる • コンシューマーゲームをスマートフォンユーザーにも訴求できる