マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社Byking: 鈴木孝司様、成相真治様) #UE4DD

7.3K Views

January 23, 17

スライド概要

2017年1月21日に行われたライセンシー様向けマテリアル管理勉強会の資料です。(登壇者: 株式会社Byking 鈴木孝司様、成相真治様)

昨年末リリースされたアーケードゲーム「マジシャンズデッド」のマテリアル作成に関して、アーティスト、エンジニアの両サイドから説明をしていただきました。非常に貴重な情報を提供していただき、ありがとうございます。



マジシャンズデッド公式サイト

http://magiciansdead.jp/players/

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

UE4 Material Management Deep Dive マジシャンズデッド ポストモーテム Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

2.

二部構成 デザイナー編 プログラマー編 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

3.

デザイナー編 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

4.

株式会社バイキング リードステージデザイナー なり あい しん じ 成相真治 協力 リードキャラクターデザイナー リードエフェクトデザイナー 鈴木寿弥 岩崎武徳 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

5.

自己紹介 マジシャンズデッドでの役割 リードステージデザイナーとして ・レベルモデルの作成 ・アートイメージの作成 ・リソース仕様の作成 ・マテリアル作成と管理 ・モデルデータ作成 ・スケジュール管理 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

6.

デザイナー編の内容 マジシャンズデッド開発における開発事例紹介 ・マジシャンズデッドの紹介 ・開発開始時の状態とスキル習得 ・マテリアルファンクションの利用方法 ・マテリアル構造 ・ワークフローの変化 ・マテリアルの命名規則 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

7.

マジシャンズデッドの紹介 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

8.

「マジシャンズデッド」って何? Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

9.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

10.

簡単に言えば、 アーケード用の格闘ゲームです。 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

11.

開発開始時の状態とスキル習得 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

12.

開発開始時の状態 マスターマテリアル制作者 基本的に各セクションで使用するマテリアルは 各セクションのリードデザイナーが作成する。 (必要な部分をプログラマーサポート) デザイナースキル UE未経験。 従来の開発環境での開発経験のみ。 (用意された設定を調整するレベル) Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

13.

スキル習得 参考 ・UE4マニュアル ・書籍 「 Unreal Engine 4マテリアルデザイン入門」 「見てわかるUnrealEngine4ゲーム制作超入門」 ・優良Webサイト様 技術サポート ・ヒストリア様 ・ Epic Games様 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

14.

マテリアルファンクションの利用方法 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

15.

マテリアルファンクション(MF)とは? マテリアル関数 複数のマテリアルで使い回せる便利なもの Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

16.

どんなマテリアルが必要か? Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

17.

①基本機能 ▼PBR仕様 ▼フレネル ▼Emissiveと点滅 ▼Texture Animation ▼Detail Map ▼Texture Blend Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

18.

②本作特有機能 ▼背景物の状態変化 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

19.

③プログラマー側の追加機能 ▼背景物にカメラが入った際の透過機能 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

20.

それぞれをマテリアルファンクションにして管理 ①基本機能 + ②本作特有機能 + ③プログラマー側の追加機能 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

21.

①②③をマテリアルファンクション(MF)管理 ③プログラマー側の追加機能 ②状態変化 ①基本機能 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

22.

マテリアルファンクション内は 結構ぐちゃぐちゃです… Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

23.

実例紹介 機能毎にMF化したことで効率化した実例 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

24.

マテリアルファンクションの 利用方法のまとめ マスターマテリアル内を機能毎にマテリアルファンクションで分割した結果 ▼メリット ・各セクションで同時に調整が可能 ・複数のマテリアルが一度に修正 ▼デメリット ・ノード構造の階層が深くなる (確認の際に複数のMFを開く必要がある) Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

25.

マテリアル構造 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

26.

マスターマテリアルの多機能化 マスターマテリアル Switchで設定できる 多数の機能を持った構造 ※Switch=Static Switch Parameterの意味です。 汎用のマスターマテリアルから 16個の用途の異なる MIを生成しています。 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

27.

マテリアルは3階層で管理 ※Switch=Static Switch Parameterの意味です。 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

28.

マスターマテリアル 【1階層目】・・・親 マスターマテリアル (共有フォルダ) Switchを利用して多様性のあるマテリアル構造 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

29.

マテリアルインスタンス 【2階層目】・・・子 (共有フォルダ) マテリアルインスタンス 必要なSwitchをONにして使用方法を決める Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

30.

マテリアルインスタンス 【3階層目】・・・孫 (各リソースフォルダ) マテリアルインスタンスのインスタンス Switchを変更せずに使用する Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

31.

マテリアルは3階層で管理 【1階層目】・・・親 マスターマテリアル (共有フォルダ) Switchを利用して多様性のあるマテリアル構造 リードデザイナー が作成と編集 【2階層目】・・・子 (共有フォルダ) マテリアルインスタンス 必要なSwitchをONにして使用方法を決める 【3階層目】・・・孫 (各リソースフォルダ) マテリアルインスタンスのインスタンス 各デザイナー が作成と編集 Switchを変更せずに使用する Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

32.

マテリアル階層構造 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

33.

孫マテリアルのファイルサイズ増大事件発生! Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

34.

マテリアル数(リリース時) マスターマテリアル 親 マテリアルインスタンス 子 インスタンスの インスタンス 孫 キャラクター ステージ エフェクト 9 25 20 52 68 600 292 5 502 0 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

35.

マテリアル構造まとめ マテリアルの親・子・孫の三層構造による管理と Switchを利用し多機能化した少数のマテリアルで管理した結果 ▼メリット ・データサイズの最適化が可能 ・修正や機能拡張の手間が1度で済む ▼デメリット ・マテリアル内のノードが複雑化する ・シェーダーコンパイルに非常に時間が掛かる Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

36.

マスターマテリアルを統合しないケース ・マテリアルのDetails内容( Blend Modeなど)を変更する場合 ・テクスチャアニメーションやテクスチャブレンドなど 特殊な機能を使用する場合 共有する機能が必要な場合は マテリアルファンクションを利用 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

37.

ワークフローの変化 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

38.

従来のワークフロー プランナー プログラマー デザイナー プログラム 対応待ち マスターマテリアル 欲しいビジュアル 表現の説明 パラメーター ランタイム制御 マテリアルインスタンス 修正 プランナー確認 ※マテリアル処理に関わる修正 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

39.

UEのワークフロー プランナー デザイナー プログラマー マテリアル ファンクション マテリアル ファンクション マスターマテリアル パラメーター ランタイム制御 マテリアルインスタンス 修正 修正 プランナー確認 ※マテリアル処理に関わる修正 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

40.

ワークフローの変化のまとめ デザイナーがマテリアル構築に関わるワークフローになった結果 ▼メリット ・修正対応の高速化(プログラム対応待ち時間が縮小) ・絵的な表現を直接制作できる ▼デメリット ・管理するデザイナーの作業負荷が増大 (実作業スタッフに対しての説明は容易になった) Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

41.

マテリアルの命名規則 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

42.

命名規則について 名前で明記する必要のある内容 階層名 セクション 種類 アルファ (Material Domain) ( Blend Mode ) 用途 ・マスター マテリアル(親) ・キャラ班 ・モデル用 ・不透明 ・汎用 ・インスタンス(子) ・ステージ班 ・デカール ・1bitアルファ ・炎用 ・インスタンスの インスタンス(孫) ・エフェクト班 ・ポスト ・半透明 ・水用 Switch名 ・Change OFF ・Opacity ON ・Normal map OFF ・ Multi OFF ステージ名 ・st100 ・st101 ・st102 アセット名 ・ext01 ・mov02 ・ground03 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

43.

マスターマテリアル(親)の命名規則 ▼汎用マテリアルの場合 ・M _ st _ base マスター マテリアル Stage (セクション) 用途 ▼炎魔法デカールの場合 ・M _ st _ de _ tr _ Burnt Decal (デカール) Translucent (半透明) ※マテリアル内のDetailsが汎用マテリアルと異なる場合に記述 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

44.

マテリアルインスタンス(子)の命名規則1 ▼汎用マテリアルのインスタンス場合 ・ MI _ st _ base _ マテリアル インスタンス 用途 セクション (ステージ) Ch _ Op _ No _ Mu_… Change OFF Opacity ON Normal map OFF Multi Map OFF Switchによる用途の変化を全部入れると 名前が長くなりすぎる点とSwitch変更時に問題! Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

45.

マテリアルインスタンス(子)の命名規則2 古臭いけど最後の手段を使いました・・・ マジックナンバー‼ 「この数字の意味はわからないが、とにかくプログラムは正しく動く。 まるで魔法の数字だ」という皮肉を含む数字。(ウィキペディアより) Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

46.

マテリアルインスタンス(子)の命名規則3 親マテリアルとSwitchによる分岐を四桁の数字で管理 ▼汎用マテリアルのインスタンス場合 ・MI _ st _ m0107 セクション (ステージ) マテリアル インスタンス 親マテリアルを上二桁 の番号で表記 Switchによる分岐を 下二桁の番号で表記 ▼Switchによる分岐説明はエクセルで管理 MI_st_m0101…汎用マテリアルでシナジー変化あり MI_st_m0102…汎用マテリアルでシナジー変化なし MI_st_m0103…シナジー変化なしでエミッシブマスクを使用する MI_st_m0104…シナジー変化なしでDetail Mapを使用する ・ ・ ・ Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

47.

マテリアルインスタンス(子)の命名規則4 サンプルスシーンを作成して説明 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

48.

インスタンスのインスタンス(孫)の命名規則 ▼最終的なモデルにアサインするマテリアル名 MI _ st _ m0102 _ st100 _ ext05 マテリアルインスタンス名 ステージ名 アセット名 ▼モデル名(Static Mesh) SM _ st100 _ ext05 ▼テクスチャ名 T_ st100 _ ext05 補足 「ext」はexterior(外観)の略。 建物外観などに使用。 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

49.

マテリアルの命名規則まとめ 本作の命名規則を運用して感じた内容 ▼メリット ・ファイル名がシンプルで短くなる ・検索しやすい ・SwitchによるMIの増加に対応できる構造 ▼デメリット ・マテリアルインスタンス以降は用途が分かりにくい 作業するデザイナーへの用途説明としてサンプルシーンを作成 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

50.

マテリアルの命名規則の理想 プログラマーや他セクションが検索しやすく、 親子関係と用途が伝わりやすいシンプルな名前が理想 Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

51.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

52.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

53.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

54.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

55.

エディター Derived Data Cache(DDC) パッケージ Material または Material Instance パッケージとエディターで 保存位置が変わる Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

56.

パッケージサイズ内訳 パッケージの総サイズ30GBに対して 60%がマテリアルインスタンス うわっ マテリアルインスタンス大きすぎ? 非マテリアルインスタンス マテリアルインスタンス Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

57.

運営時にアセットの追加や修正が ある度にギガパッチを当てる 必要が出てしまう アップデート時の ダウンロード時間(=更新差分サイズ) には制限がある このままではリリースできない Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

58.

総ファイルサイズ 30GB MIファイル数 3328files MI総ファイルサイズ 18.6GB キャラ向けMI数 2131(内1830ファイルが1MB以上) キャラ用MI総ファイルサイズ 17.5GB 背景用MI数 474(内277ファイルが1MB以上) とあるキャラの一つのMIサイズ 10.3MB Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

59.

エディタで開いてみても マテリアルやMIに異常はない 開発環境の コンテンツフォルダ内では ひとつ150K程度 パッケージすると 1つのマテリアルインスタンス で10MBを超える UDNに相談! Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

60.

「マテリアルインスタンス内でスイッチな どを使うとマテリアルインスタンスが肥大 化することがあります。」 S藤さんありがとうございました 末端MI(以後、孫MI) でSwitchを多用していた デザイナーに相談 なんとか対応してもらえることに ただし結構な作業量なので 全部処理しきれるかわからない… Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

61.

総MIサイズ = 各シェーダーサイズ×シェーダー数 UE4.13 の Shader Permutation Reductionが効くかも 篠山様談 マジシャンズデッドは、 4.12.5で固定なので 直接は使えないが 何かヒントがあるかも Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

62.

-18% ただし Stationary Skylight を プロジェクトで利用している・・・ 利用できそうなものは無かった・・・ Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

63.

マジシャンズデッドは DirectX11で動作 これ、いらなくない? Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

64.

元のファイルサイズ SM4のチェックを外した後 10.3MB 5.56MB ターゲットが固定されているなら SM4を外すことでシェーダービルド待ち時間も減ると思うので チェックを外しておくのがお勧めです Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

65.

同じマテリアルをコンパイルしているのに 特定のMIのサイズに変化が シェーダー命令数が 尋常ではないほど違う 1000 instructions → 450 instructions マテリアルで なにかが起こっている・・・ Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

66.

原因はNoiseノード UE4.13でNoiseノードが リファイン Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

67.

Perlinノイズは重いので FastGradient+αに置き換え 最適化前 最適化後 5.56MB 2.38MB 1000 → 300Instructions インストラクション数は 直接サイズに影響する Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

68.

最初 最終 総ファイルサイズ 30,000MB 14,700MB MIファイル数 3,328files 4,200files MI総ファイルサイズ 18,600MB 2,330MB キャラ向けMI数 2,131 2,929 (内1,830ファイルが1MB以上) (内878ファイルが1MB以上) キャラ用MI総ファイルサイズ 17,500MB 2,010MB 背景用MI数 474 529 (内277ファイルが1MB以上) (内77ファイルが1MB以上) 10.3MB 2.3MB とあるキャラのMIサイズ Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

69.

パッケージサイズの変化 35.0GB 30.0GB 25.0GB 20.0GB 15.0GB 10.0GB 5.0GB 0.0GB 問題発覚時 最終ビルド Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

70.

デカイMIが結構 残っているけど・・・ MIが 増えてるけど・・・ 両面描画フラグでも MIが肥える事が発覚 調査開始と 最終ビルドの間に アセットが増えました 現在は修正済みです Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

71.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

72.

Ⓒ2016 BYKING Inc. All rights reserved. Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.