マジシャンズデッド ポストモーテム ~マテリアル編~ (株式会社byking:...

72
UE4 Material Management Deep Dive マママママママママ マママママママ 2016 BYKING Inc. All rights reserved. 2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

Upload: -epic-games-japan

Post on 05-Apr-2017

5.385 views

Category:

Engineering


9 download

TRANSCRIPT

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

UE4Material Management

Deep Dive

マジシャンズデッド ポストモーテム

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

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

二部構成

デザイナー編

プログラマー編

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

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

デザイナー編

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

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

株式会社バイキング

リードステージデザイナー

なり あい しん じ

成相真治

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

協力リードキャラクターデザイナー 鈴木寿弥リードエフェクトデザイナー  岩崎武徳

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

自己紹介

マジシャンズデッドでの役割

リードステージデザイナーとして ・レベルモデルの作成 ・アートイメージの作成 ・リソース仕様の作成 ・マテリアル作成と管理 ・モデルデータ作成 ・スケジュール管理

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

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

デザイナー編の内容

・マジシャンズデッドの紹介

・開発開始時の状態とスキル習得

・マテリアルファンクションの利用方法

・マテリアル構造

・ワークフローの変化

・マテリアルの命名規則

マジシャンズデッド開発における開発事例紹介

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

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

マジシャンズデッドの紹介

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

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

「マジシャンズデッド」って何?

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

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

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

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

簡単に言えば、

アーケード用の格闘ゲームです。

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

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

開発開始時の状態とスキル習得

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

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

マスターマテリアル制作者

基本的に各セクションで使用するマテリアルは

各セクションのリードデザイナーが作成する。

(必要な部分をプログラマーサポート)

デザイナースキル

UE 未経験。

従来の開発環境での開発経験のみ。

(用意された設定を調整するレベル)Ⓒ2016 BYKING Inc. All rights reserved.  Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

開発開始時の状態

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

参考

・ UE4 マニュアル

・書籍

「 Unreal Engine 4 マテリアルデザイン入門」

「見てわかる UnrealEngine4 ゲーム制作超入門」

・優良 Web サイト様

技術サポート

・ヒストリア様

・ Epic   Games 様Ⓒ2016 BYKING Inc. All rights reserved.  Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.

スキル習得

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

マテリアルファンクションの利用方法

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

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

マテリアルファンクション( MF )とは?

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

マテリアル関数

複数のマテリアルで使い回せる便利なもの

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

どんなマテリアルが必要か?

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

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

① 基本機能

▼PBR 仕様 ▼ フレネル ▼Emissive と点滅

▼Texture Animation ▼Detail Map ▼Texture Blend

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

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

② 本作特有機能▼ 背景物の状態変化

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

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

③ プログラマー側の追加機能▼ 背景物にカメラが入った際の透過機能

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

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

それぞれをマテリアルファンクションにして管理

① 基本機能

+② 本作特有機能

+③ プログラマー側の追加機能

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

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

①②③ をマテリアルファンクション( MF )管理

① 基本機能

② 状態変化

③ プログラマー側の追加機能

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

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

マテリアルファンクション内は結構ぐちゃぐちゃです…

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

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

実例紹介機能毎に MF 化したことで効率化した実例

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

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

マテリアルファンクションの利用方法のまとめ

  マスターマテリアル内を機能毎にマテリアルファンクションで分割した結果

▼ デメリット ・ノード構造の階層が深くなる  (確認の際に複数の MF を開く必要がある)

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

▼ メリット ・各セクションで同時に調整が可能 ・複数のマテリアルが一度に修正

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

マテリアル構造

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

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

マスターマテリアルの多機能化

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

マスターマテリアル

Switch で設定できる多数の機能を持った構造

汎用のマスターマテリアルから16 個の用途の異なる

MI を生成しています。

※Switch = Static Switch Parameter の意味です。

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

マテリアルは 3 階層で管理

Ⓒ2016 BYKING Inc. All rights reserved.  Ⓒ2015-2016 EXIGE GAMES Sdn.Bhd. All rights reserved.※Switch = Static Switch Parameter の意味です。

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

マスターマテリアル

【 1 階層目】・・・親 (共有フォルダ)

マスターマテリアルSwitch を利用して多様性のあるマテリアル構造

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

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

マテリアルインスタンス

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

【 2 階層目】・・・子 (共有フォルダ) マテリアルインスタンス必要な Switch を ON にして使用方法を決める

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

マテリアルインスタンス

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

【 3 階層目】・・・孫 (各リソースフォルダ)

マテリアルインスタンスのインスタンスSwitch を変更せずに使用する

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

マテリアルは 3 階層で管理

【 1 階層目】・・・親 (共有フォルダ)

マスターマテリアルSwitch を利用して多様性のあるマテリアル構造

【 2 階層目】・・・子 (共有フォルダ) マテリアルインスタンス必要な Switch を ON にして使用方法を決める

【 3 階層目】・・・孫 (各リソースフォルダ)

マテリアルインスタンスのインスタンスSwitch を変更せずに使用する

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

リードデザイナー   が作成と編集

各デザイナー  が作成と編集

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

マテリアル階層構造

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

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

孫マテリアルのファイルサイズ増大事件発生!

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

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

マテリアル数(リリース時)

キャラクター

9

52

2925

ステージ

25

68

502

エフェクト

20

600

0

マスターマテリアル

マテリアルインスタンス

インスタンスの  インスタンス

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

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

マテリアル構造まとめ 

マテリアルの親・子・孫の三層構造による管理とSwitch を利用し多機能化した少数のマテリアルで管理した結果

▼ デメリット ・マテリアル内のノードが複雑化する ・シェーダーコンパイルに非常に時間が掛かる

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

▼ メリット ・データサイズの最適化が可能 ・修正や機能拡張の手間が 1 度で済む

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

マスターマテリアルを統合しないケース

・マテリアルの Details 内容( Blend Mode など)を変更する場合

・テクスチャアニメーションやテクスチャブレンドなど               特殊な機能を使用する場合

共有する機能が必要な場合はマテリアルファンクションを利用

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

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

ワークフローの変化

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

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

プランナー確認

従来のワークフロー

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

修正

プランナー

デザイナー プログラマー

マスターマテリアル

パラメーターランタイム制御マテリアルインスタンス

※マテリアル処理に関わる修正

プログラム

対応待ち 欲しいビジュアル表現の説明

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

プランナー確認

UE のワークフロー

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

修正修正

マテリアルインスタンス

マテリアルファンクション

デザイナー

プランナー

プログラマー

マテリアルファンクション

パラメーターランタイム制御マスターマテリアル

※マテリアル処理に関わる修正

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

ワークフローの変化のまとめ

▼ デメリット・管理するデザイナーの作業負荷が増大(実作業スタッフに対しての説明は容易になった)

デザイナーがマテリアル構築に関わるワークフローになった結果

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

▼ メリット・修正対応の高速化(プログラム対応待ち時間が縮小)

・絵的な表現を直接制作できる

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

マテリアルの命名規則

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

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

命名規則について名前で明記する必要のある内容

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

・マスター  マテリアル(親)・インスタンス(子)・インスタンスの  インスタンス(孫)

・キャラ班・ステージ班・エフェクト班

・汎用・炎用・水用

・モデル用・デカール・ポスト

・不透明・ 1bit アルファ・半透明

階層名 セクション 用途種類( Material Domain )

アルファ( Blend Mode )

・ Change OFF・ Opacity ON・ Normal map OFF・ Multi OFF

Switch 名・ st100・ st101・ st102

ステージ名・ ext01・mov02・ ground03

アセット名

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

マスターマテリアル(親)の命名規則

▼ 汎用マテリアルの場合

・ M _ st _ base   

▼炎魔法デカールの場合

・ M _ st _ de _ tr _ Burnt

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

マスターマテリアルStage(セクション) 用途

Decal(デカール)Translucent(半透明)

※マテリアル内の Details が汎用マテリアルと異なる場合に記述

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

マテリアルインスタンス(子)の命名規則 1

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

▼ 汎用マテリアルのインスタンス場合

・ MI _ st _ base _

マテリアルインスタンス セクション(ステージ)

用途

Switch による用途の変化を全部入れると名前が長くなりすぎる点と Switch 変更時に問題!

Ch _ Op _ No _ Mu_…

Change OFF

Opacity

ONNormal map OFF

MultiMap OFF

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

マテリアルインスタンス(子)の命名規則 2

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

古臭いけど最後の手段を使いました・・・

マジックナンバー‼

「この数字の意味はわからないが、とにかくプログラムは正しく動く。まるで魔法の数字だ」という皮肉を含む数字。(ウィキペディアより)

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

親マテリアルと Switch による分岐を四桁の数字で管理

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

▼Switch による分岐説明はエクセルで管理

  MI_st_m0101… 汎用マテリアルでシナジー変化あり  MI_st_m0102… 汎用マテリアルでシナジー変化なし  MI_st_m0103… シナジー変化なしでエミッシブマスクを使用する  MI_st_m0104… シナジー変化なしで Detail Map を使用する      ・      ・      ・

▼ 汎用マテリアルのインスタンス場合

  ・ MI _ st _ m0107 マテリアルインスタンス

セクション(ステージ)親マテリアルを上二桁の番号で表記 Switch による分岐を下二桁の番号で表記

マテリアルインスタンス(子)の命名規則 3

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

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

マテリアルインスタンス(子)の命名規則 4

サンプルスシーンを作成して説明

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

インスタンスのインスタンス(孫)の命名規則

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

▼ モデル名( Static Mesh )   SM _ st100 _ ext05

▼ テクスチャ名   T_ st100 _ ext05

MI _ st _ m0102 _ st100 _ ext05ステージ名 アセット名

▼最終的なモデルにアサインするマテリアル名

マテリアルインスタンス名

補足「 ext」は exterior(外観)の略。建物外観などに使用。

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

マテリアルの命名規則まとめ

▼ デメリット・マテリアルインスタンス以降は用途が分かりにくい  作業するデザイナーへの用途説明としてサンプルシーンを作成

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

本作の命名規則を運用して感じた内容

▼ メリット・ファイル名がシンプルで短くなる・検索しやすい・ Switch による MI の増加に対応できる構造 

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

プログラマーや他セクションが検索しやすく、 

 親子関係と用途が伝わりやすいシンプルな名前が理想

マテリアルの命名規則の理想

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

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

プログラマー編

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

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

株式会社バイキング

CTO 

すずき たかし

鈴木孝司

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

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

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

自己紹介

マジシャンズデッドでの担当部位 ネットワークの調査と基礎実装 アウトゲームのフローとアセットローディング関連 シェーダー (usf) に対する機能追加 AI 各種デバッグと最適化、さまざまな技術的問題解決

BP の利用は計画的に・・・

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

マジシャンズデッド制作時のパッケージサイズ肥大化問題について

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

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

シェーダーはどこに保存されているの?

エディター パッケージ

Derived Data Cache(DDC)

Materialまたは

Material  Instance

パッケージとエディターで保存位置が変わる

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

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

とある日のマジシャンズデッドパッケージ

パッケージサイズ内訳

非マテリアルインスタンスマテリアルインスタンス

パッケージの総サイズ 30GB に対して60% がマテリアルインスタンス

うわっマテリアルインスタンス大きすぎ?

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

60%

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

オンラインアップデート不能

運営時にアセットの追加や修正がある度にギガパッチを当てる

必要が出てしまう

アップデート時のダウンロード時間 ( =更新差分サイ

ズ ) には制限がある

このままではリリースできない

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

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

パッケージ内のファイルを調査

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

総ファイルサイズ 30GB

MI ファイル数 3328files

MI総ファイルサイズ 18.6GB

キャラ向け MI 数 2131( 内 1830 ファイルが 1MB以上 )

キャラ用 MI総ファイルサイズ 17.5GB

背景用 MI 数 474( 内 277 ファイルが 1MB以上 )

とあるキャラの一つの MI サイズ 10.3MB

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

とりあえず原因を調べる

UDN に相談!

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

エディタで開いてみてもマテリアルやMI に異常はな

開発環境のコンテンツフォルダ内ではひとつ 150K程度

パッケージすると1つのマテリアルインスタン

スで 10MB を超える

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

有用な情報が!!!

「マテリアルインスタンス内でスイッチなどを使うとマテリアルインスタンスが

肥大化することがあります。」S藤さんありがとうございました

末端MI(以後、孫MI)で Switch を多用していた

デザイナーに相談なんとか対応してもらえることに

ただし結構な作業量なので全部処理しきれるかわからない…

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

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

1つのマテリアルインスタンスが 10MB問題

総MI サイズ =各シェーダーサイズ × シェーダー数

UE4.13 の Shader Permutation Reduction が効く

かも篠山様談

マジシャンズデッドは、

4.12.5 で固定なので直接は使えないが

何かヒントがあるかも

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

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

Shader permutation reduction on 4.13-18% ただし Stationary Skylight

をプロジェクトで利用している・・・

利用できそうなものは無かった・・・

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

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

他になにかないか、プロジェクト設定を見ていたら・・・

これ、いらなくない?

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

マジシャンズデッドは DirectX11で動作

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

シェーダー数半減!

元のファイルサイズ SM4 のチェックを外した後

10.3MB 5.56MB

ターゲットが固定されているならSM4 を外すことでシェーダービルド待ち時間も減ると思うので

チェックを外しておくのがお勧めです

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

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

同じマテリアルをコンパイルしているのに特定の MI のサイズに変化が

シェーダー命令数が尋常ではないほど違う

1000 instructions → 450 instructions

マテリアルでなにかが起こっている・・・

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

4.13 でパッケージすると MI のサイズが激減しているような・・・

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

Instruction を増やしていた原因

原因は Noise ノード

UE4.13 で Noise ノードがリファイン

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

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

マテリアルを最適化

Perlin ノイズは重いのでFastGradient+α に置き換え

1000 → 300Instructions最適化前 最適化後

5.56MB 2.38MB

インストラクション数は直接サイズに影響する

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

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

最終ビルド結果

最初 最終

総ファイルサイズ 30,000MB 14,700MBMI ファイル数 3,328files 4,200filesMI総ファイルサイズ 18,600MB 2,330MBキャラ向け MI 数 2,131

( 内 1,830 ファイルが 1MB以上 )

2,929( 内 878 ファイルが 1MB以上 )

キャラ用 MI総ファイルサイズ

17,500MB 2,010MB

背景用 MI 数 474( 内 277 ファイルが 1MB以上 )

529( 内 77 ファイルが 1MB以上 )

とあるキャラの MI サイズ 10.3MB 2.3MB

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

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

グラフ

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

ファイルサイ

マテリアル総

ファイルサイ

キャラ総ファ

イルサイズ

とあるキャラ

の MIサイズ (M

B)0.0GB5.0GB

10.0GB15.0GB20.0GB25.0GB30.0GB35.0GB

パッケージサイズの変化

問題発覚時 最終ビルド

51%減 87%減 88%減 77%減

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

ビルド結果補足

デカイ MI が結構残っているけど・・・

両面描画フラグでもMI が肥える事が発覚

MI が増えてるけど・・・

調査開始と最終ビルドの間に

アセットが増えました

現在は修正済みです

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

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

まとめ

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

パッケージを作ってみないとわからないことがある Pak 化してると見逃しやすい

Jenkins でクック済みファイルサイズのログをグラフ化するなど

マテリアル → 子MI(static switch 有 ) → 孫MI の構造がオススメ 必要なパターンの子MI を作っておく マテリアルインスタンスのファイルサイズ増加は読み込み時間やメインメモリ使用量に悪影響がある

( テクニカル ) アーティスト主導でマテリアルを作れるようになったがInstruction 数の肥大や重い命令などに注意が必要

1 ノードが 1GPU 命令に変換されるわけではない ワークフロー中に命令数などのチェックを入れる

常に気をつける癖をつける!

アーティストおよびデザイナー向けのパフォーマンス ガイドライン しかしながらすべてを監視するのは無理

解決法を模索していきましょう

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

ご清聴ありがとうございました

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