TINY METALの開発 ビッグゲームを小さなチームで【UNREAL FEST WEST 2018】

1K Views

May 21, 18

スライド概要

4月21日に京都で開催した「UNREAL FEST WEST 2018」で使用したスライドです。

●公式サイト
https://unrealengine.jp/unrealfest/

===
UE4を使用することで、小さなチームでも『TINY METAL』をSwitch、PS4、PCで同時リリースを実現しました。UE4はユーザーに特化した開発を可能とし、小さなチームでの開発において非常に効率的です。ここでは『TINY METAL』のコード構成や開発ツールだけでなく、ゲーム内で使用されている、UE4を使用したリアルタイムレンダリングにより、短納期で制作された動画制作についても説明します。

profile-image

Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

UNREAL ENGINE TINY METALの開発 ビッグゲームを小さなチームで AREA 35, Inc. HIROAKI YURA / PRODUCER & DIRECTOR DANIEL DRESSLER / SOFTWARE ENGINEER UNREAL ENGINE UNREAL FEST WEST 2018

2.

ABOUT THE PRESENTATION 『TINY METAL』は2016年に開発をスタート。2017年12月21日にリリース され、現在もアップデートによる開発を継続しています。 このプレゼンテーションでは『TINY METAL』のリリースに至るまでを開 発の側面から説明します。 プレゼンテーションの内容は機密情報ではありません。 自由に共有したり、ディスカッションしたり、SNSに投稿することでみな さんの開発にお役立ていただければ幸いです。 UNREAL ENGINE

3.

AREA35 UNREAL ENGINE

4.

STAFF INTRODUCTIONS 由良 浩明 @yuraphy Producer / Director 元クラシックのヴァイオリニスト。 旧SQUARESFTの作曲家達に誘われ、ゲーム業界のオ ーディオ側から入る。 日米のゲーム会社から依頼を受けた末、自分達の ゲームを作れると勘違いし、『TINY METAL』を作る。 Daniel Dressler @0x143 Chief Programmer / Game Director 元米マイクロソフトのシステム・プログラマー。 日本のゲームが好きすぎて、宛もなく来日し、いきな りゲーム会社に就職した変なカナダ人。 『ファミコンウォーズ』シリーズの大ファン。 UNREAL ENGINE

5.

TOPICS 『TINY METAL』のご紹介 リアル・タイム・レンダーを使ったムービー制作 『TINY METAL』を任天堂Switchでリリースするために 従来の3点照明 VS 最新のライティング手法 『TINY METAL』の構造 UI/UIスタイルの実装方法 LiveData: ゲーム上のデータ UNREAL ENGINE

6.

INTRODUCTION TINY METALはインディーゲームです。 本当に限られたリソースで作りました。 その限られたリソースで作るのを可能にしたのが・・ UNREAL ENGINE 4 UNREAL ENGINE

7.

TINYMETAL [タイニーメタル] ©2017 AREA 35, INC., © HIROAKI YURA All rights reserved. UNREAL ENGINE UNREAL FEST WEST 2018

8.

UNREAL ENGINE UNREAL FEST WEST 2018

9.

PROJECT DETAILS PUBLISHER SONY MUSIC ENTERTAINMENT / UNTIES PLATFORMS SWITCH PLAYSTATION 4 WINDOWS / MAC GENRE Turn Based Strategy PLAY MODES SINGLE PLAYER CAMPAIGN / SKIRMISH ONLINE MULTIPLAYER LOCAL MULTIPLAYER (SWITCH ONLY) UNREAL ENGINE VERSIONS 4.XX ~ 4.XX UNREAL ENGINE

10.

DEVELOPMENT TEAM 社内開発メンバー プログラマー 1名 24ヶ月 プランナー 1名 9ヶ月 外部開発チーム アート・デザイン 10名 ストーリー 4名 サウンド 2名 シネマティック 1名 UNREAL ENGINE

11.

リアル・タイム・レンダーを 使ったムービー制作 UNREAL ENGINE

12.

CINEMATICS ムービーを作りたい! 演出が豊かになる 短時間で世界感を伝えられる 臨場感が出てカッコいい UNREAL ENGINE

13.

CINEMATICS 今まででは・・ 作り方が複雑 コストが非常に高い 制作時間が掛かりすぎる UNREAL ENGINE

14.

CINEMATICS インディーズで ムービーが欲しくて何が悪い! UNREAL ENGINE

15.

CINEMATICS REAL-TIME RENDERED CINEMATICS UNREAL ENGINE

16.

CINEMATICS ゲームエンジンを利用した映像制作 UNREAL ENGINE

17.

CINEMATICS 短期間制作 高速イテレーション 試す余裕 「流れ」を掴みやすい コンポジットは必要無い UNREAL ENGINE

18.

CINEMATICS 結果・・ 低コスト 短期間制作 高クオリティ UNREAL ENGINE

19.

UNREAL ENGINE UNREAL FEST WEST 2018

20.

CINEMATICS 約90秒のオープニング 初回納品 3日 イテレーション 2日 合計4日間の作業量 UNREAL ENGINE

21.

UNREAL ENGINE UNREAL FEST WEST 2018

22.

『TINY METAL』を 任天堂Switchで リリースするために UNREAL ENGINE

23.

2017年4月に最初のBuildが完成しました 2017年4月に実装された最初のコンソールBuildです。 当初は約7fpsで動作しました。 UNREAL ENGINE

24.

PCでのオプティマイズ 最初にPCでのオプティマイズを行います。 -. PC上のGPUサイクルとライティングの バランスを確認します。 -. 非常に負荷のかかるライティングとラ イティング・エフェクトであることが 確認できます。 -. 負荷のかかるライティングにも関わら ず、視覚効果はほとんどありませんで した。 UNREAL ENGINE

25.

テレインのオプティマイズ -. 『TINY METAL』のテレインはス タティックインスタンスメッシュ (static instanced mesh)です。 -. オーバードローを減らすため、 インスタンスのバッチ処理の実装 とオプティマイズを行います。 -. ドローコールのバランスと頂点 の影響をとります。(ドローコール の回数は確認できません) UNREAL ENGINE

26.

2017年11月(リリース1ヶ月前) - ほとんどのマップが30 FPS -. ライティング・カウントの減少 -. バトルシーンの解像度は80% -. 任天堂Switchは ブルームが未実装です。 -. まだ改善の余地があります。 UNREAL ENGINE

27.

現在の進行状況 -. UE4機能をより使いやすくした、新たなライ ティング -. 全てのマップが30fps -. バトルシーンがフル解像度に -. ヴィジュアルの改善 -. 1方向の照明+ポストプロセスによるグロー バル・イルミネーションの設定 UNREAL ENGINE

28.

従来の3点照明 VS 最新のライティング手法 UNREAL ENGINE

29.

3点照明とは? -. 日本で一般的に使用されてい るライティング手法 -. 写真撮影と映像撮影に由来し ている -. 3方向(メイン,背面,側面) からのライトを使用 UNREAL ENGINE

30.

3点照明の欠点 -. あまり正確ではないため、PBR(フィジカルベースドレンダリン グ)の質が下がってしまう。 -. 即座に反映するのが 難しい。 -. 1つの照明しか処理 できない。(屋内 vs 屋 外) -. レンダリングに負荷 がかかる UNREAL ENGINE

31.

最新のライティング手法 -. Skylight -. ベイクド・スタティック・ライティング (Baked static lighting) -. アンビエント・フォグ (Ambient Fog) UNREAL ENGINE

32.

『TINY METAL』の構造 ポーン、アクター、ゲームモード (Pawns/Actors/GameMode)と バトルコアシステムの使い方 UNREAL ENGINE

33.

『TINY METAL』の主要なコンポーネント -. UNREAL ENGINE 4 レンダリング、ビジュアル、インタラクション UI、ネットワーク、プラットフォームサポート -. バトル・コア ターンベースストラテジー理論と状態 -. ライブデータ ゲーム・コンテンツ & ルール UNREAL ENGINE

34.

UNREAL ENGINE 4 Nouns の概要 - ユニットがアクターとなります。 - プレイヤーインタラクション ロジッ クがポーンです。 - プレイヤーコントロールは空になって います。 - ゲームモードは全ての初期化をコント ロールします。 - プレイヤーポーンのみがネットワー クに同期しています。 UNREAL ENGINE

35.

UNREAL ENGINE 4 とバトル コアの統合 - ゲームモードは正当なバトルコアシステム インスタンスとAIを所 有しています - プレイヤーポーンだけがネットワークに同期しています - フィジックスは使用されていません UNREAL ENGINE

36.

バトルコアが状態を どのようにレプリケートするか - 100%イベントベース - 各プレイヤー(人,AI,ゲームモード)は シュミレート インスタンスを持ってい ます - シュミレート インスタンスにイベント を送る - 人、AI、ゲームモードの状態は、常に 分離しています UNREAL ENGINE

37.

バトルコアの構造利点 - 1つのコードがノーマルプレイ、読み込みと保存、マルチプレイ の全てを管理しています。 - マルチプレイはノーマルプレイと同時にデバックされます。 - ビジュアルにはランダム性 が許されています。 - シミュレーションは常にプ レイヤーに0msの遅延に見 えます。 - ネットワークが切断されて もAIに置き換えられます。 UNREAL ENGINE

38.

UIの実装方法 キーボード / コントローラ / マウス = 同一コード UNREAL ENGINE

39.

【目標】 一度に全てのキーボードとコントローラ、 マウスをサポートすること - 標準のUNREAL ENGINE 4以上のカスタムコントロールフローが必 要でした。 - シングルコードによってバグの発生を最小限にできます。 - UIの実装をすばやく行うことができます。 UNREAL ENGINE

40.

【ソリューション】 NavibleMenuは現在オープンソース - C++ - Github上のオープンソース - リンク UNREAL ENGINE

41.

NavibleMenu APIの例 - InputsOccured (入力) - ResultsOccured (結果) UNREAL ENGINE

42.

NavibleMenu APIを使用した スクロール可能なリスト - 入力 -> スクロール - 結果はオーナーに渡されました。 UNREAL ENGINE

43.

NavibleMenu の利点 - UIとゲームロジックの分離 - キーボード&コントローラ &マウスで同じコード - 使いやすい - 他のウィジットを簡単に作 成でき、再利用できる。 - UMGの良いところを使用し ています。 - 柔軟に使える UNREAL ENGINE

44.

UIスタイルの実装方法 ウィジェットを再利用する = Nested Prefabsより良い UNREAL ENGINE

45.

目標 - 一人のUIデザイナーが作成した、一度だけ作成したスタイル - 小さなスクリーンでも表 示できるようにスケール ダウンする必要があります - 翻訳可能でなければなり ません - 一貫性が必要 UNREAL ENGINE

46.

UMGの力 - Nested Prefabsより良い - ネイティブ ウィジェットのように再利用できます。 - C++からLiveDataの仕様と実行を行います。 UNREAL ENGINE

47.

共通のUIコンポーネント - パターン - 共通パターンのスクリーンショット UNREAL ENGINE

48.

共通のUIコンポーネント - バックグラウンド - 共通のバックグラウンドのスクリーンショット - 共通パターンをどのように使用しているかに注目してください。 UNREAL ENGINE

49.

共通のUIコンポーネント - ボタン - ボタンアイコンのスクリーンショットです。 - 共通の背景を使用していることに注目してください。 UNREAL ENGINE

50.

共通のUIコンポーネント - メニュー - メニューのスクリーンショット UNREAL ENGINE

51.

共通のUIコンポーネント - 確認ダイアログ - 確認ダイアログのスクリーンショット - パターンとメニューをどのように利用しているかに注目してくだ さい。 UNREAL ENGINE

52.

LiveData: ゲーム上のデータ UNREAL ENGINE

53.

データ駆動コード(Data Driven Code)の概要 - 利点&定番の方法 - 全てのコンテンツはデータに 由来します。 - 全てのパラメーターはデータ に由来します。 UNREAL ENGINE

54.

LiveDataの特徴 - Live reload - 共有と協力可能なシステム - コンパクトなオンディスクフォーマット - バイナリを再構築せずに開発Buildをシームレスにサポート UNREAL ENGINE

55.

LiveDataの原点となったアイディア - Googleスプレッドシート - “タブレットを持っているプランナーを見た時、あのタブレットか らでもゲームバランスの調整ができたら素晴らしいのでは?”と思 いました。 UNREAL ENGINE

56.

LiveDataがどの様に動作するか - プロキシサーバー&キャッシュ - Buildとローカルキャッシュのためのローカル フラットバッファー (Local Flatbuffer) - Facts Objectの解析 - アップデートからリスナー/コールバック UNREAL ENGINE

57.

ご清聴いただきありがとうございました。 UNREAL ENGINE