cedec2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

49
September 3 CEDEC 2014 アンリアル・エンジン4を 技術者が活用するための 最新ノウハウ シモダジュンヤ Jun Shimoda Support Manager, Epic Games Japan

Upload: -epic-games-japan

Post on 25-Jan-2015

3.750 views

Category:

Engineering


1 download

DESCRIPTION

CEDEC 2014の2日目9/3(水)13:30から「アンリアル・エンジン4を技術者が活用するための最新ノウハウ」として発表させていただいた際のスライドです。描画周りやその最適化、さらにOculus対応やSave/Load周り等のご紹介です。

TRANSCRIPT

Page 1: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

アンリアル・エンジン4を 技術者が活用するための

最新ノウハウ

シモダジュンヤ Jun Shimoda

Support Manager, Epic Games Japan

Page 2: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

自己紹介

シモダジュンヤ(@junyash)

• アンリアル・エンジンの利用経験をきっかけとして2010年2月からエピック・ゲームズ・ジャパンでサポート・マネージャーとしてアンリアル・エンジンの普及・サポート活動を行っています。

Page 3: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日持ち帰っていただきたいモノ!

• UE4で高品質なコンテンツを効率よく制作するノウハウ

• それを高パフォーマンスで実現する方法

• さらに内容を豊かに拡げるためのイロイロ

• UE4の1ヶ月無料プロモーションコード! – 最後に入り口で受け取ってください

– コードは1回しか使えないのでTweetして使われちゃうと その後は使えなくなるので注意!(^_^;)

– もちろんコード以外でしたら 今日の内容は撮影やtweetしていただいて大丈夫です!

– ハッシュタグは #UE4Study #CEDEC2014

Page 4: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応

ビジュアライズ

Q&A

Page 5: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい! フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応

ビジュアライズ

Q&A

Page 6: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアルなレンダリングがしたい!

• ですよね~。UE4なら得意分野です!

• 物理ベースのレンダリングシステムが実装されています。

– 物理ベースのライティング

– 物理ベースのマテリアル(シェーダー)

Page 7: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:物理ベースのライティング

Page 8: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:物理ベースのライティング

• 物理的に正確なアルゴリズムと単位の適用

– ポイントライトとスポットライトの明るさはルーメン単位

– 距離の2乗に反比例して減衰

• IESプロファイルを使用する事も可能

– 照明メーカー等から様々な照明のデータが公開されている

– UE4では2Dデータを1Dデータにして保存

– GIベイクツールLightmassとも統合済み

Page 9: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:物理ベースマテリアル

Page 10: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:物理ベースのマテリアル

• 目標:複雑さを排除しつつも柔軟性を維持 • シンプルで直感的なパラメータ (0.0 – 1.0)

– Base Color • マテリアルの色

– Roughness (0.0 – 1.0) • マテリアルの粗さ

– Metalic (0.0 – 1.0) • 金属

– Specular • 金属質ではないマテリアルのスペキュラ

• 扱いやすい物理ベースのマテリアル

• 不自然な見栄えが起こる事故を防げます

• エネルギー保存法則に従った、より自然なレンダリング • 詳しくはこちらのドキュメントをどうぞ

https://docs.unrealengine.com/latest/JPN/Engine/Rendering/Materials/PhysicallyBased/index.html

Page 11: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:Image Based Lighting

• スカイライトを配置

– CubemapプロパティにIBLテクスチャを設定するだけ!

Page 12: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:Image Based Lighting

• IBLやってみましょう

Page 13: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:Image Based Lighting

• アーキテクチャ系動画

Page 14: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアル:モバイルでも

• Zen Gardenデモ(iOSデバイス+Metal API)

Page 15: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアルなレンダリングの裏側で…

これらの物理ベースのライティングや 物理ベースのマテリアル・シェーディングを支えている

• ディファードシェーディング – これらのリッチなライトをシーン全体に沢山配置してリアルな表現が可能

– 半透明はフォワード系のパスを使うので シーンへのライティングが完全には反映できない (改善してきているが、さらなる改善策を模索中)

– 特殊なライティングが苦手だったが Version 4.3 で拡張機能を実装

Page 16: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

リアルなレンダリングがしたい?

• 特殊なライティング?

Page 17: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング! パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応

ビジュアライズ

Q&A

Page 18: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ノンフォトリアル

• ノンフォトリアルと言ってもいろいろありますよね

• 日本で良く使われるのはトゥーンシェーダー(セルルックシェーダー)

• 輪郭を描画する処理

– 裏面ポリゴンを法線方向に膨らませる系(コンポーネントを複製)

– Sobel Edge Detection等ポストプロセスで深度等を参照する系 http://udn.epicgames.com/Three/DevelopmentKitGemsSobelEdgeDetectionJP.html

Page 19: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ノンフォトリアル

• セルルックなシェーディング

– UE3世代では、マテリアル中でライトと法線の内積値をキーにした トゥーンマッピング用のテクスチャ参照が多い

– ディファードシェーディングではライトがシーンに対して適用されるため、個別のマテリアルを扱っているタイミングではライトの情報が来ていない

• Stylizedサンプルの雲ではマテリアルパラメータコレクションから Light VectorとLight ColorとAmbient Lighting Colorを渡して利用

• でも、シャドウ部分のセル塗りができない

Page 20: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

Stylizedデモ

Page 21: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ノンフォトリアル

• さらなるノンフォトリアル表現のために

– ディファードシェーディングの欠点を克服

– UE4のVersion 4.3でLighting Model(Shading Model)を拡張

• これにより、特殊なライティングを行うマテリアルを実装可能に!

• Version 4.4のClear Coat Shading Modelはこの機能を利用して実装

Page 22: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス ブループリントのちょっといい話

データの保存

ネットワーク対応

ビジュアライズ

Q&A

Page 23: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

パフォーマンス

• 見栄えが良くても、ゲーム業界的にはパフォーマンスも重視ですよね?

– まずはボトルネックを見つける

• 「stat unit」コマンドや各種statコマンド

– Gameがゲームスレッド、Drawがレンダースレッド、GPUがGPU

Page 24: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

パフォーマンス

• 「stat unit」の結果

– ゲームスレッドがボトルネックな場合

• Session FrontendのProfiler

– レンダースレッドがボトルネックな場合

• 統計情報のPrimitive Stats

Page 25: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

パフォーマンス

• GPUがボトルネックになっている場合が大半

– 「profileGPU」コマンドもしくは「Shift+Ctrl+カンマ」でチェック

Page 26: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

パフォーマンス

• GPUのボトルネックを解消するには?

– 動的ライトを減らすこと

• ムーバブル(重)>ステーショナリー(中)>スタティック(軽)

– 動的シャドウを減らすこと

• 「Show Shadow Frustums」で動的なシャドウバッファの生成範囲を確認

– 本当にシャドウを落とす必要があるか?

– シャドウを落とす必要がある場合は アクターのを親子付してシャドウをまとめる事ができないか考える

» 「Light Attachments as Group」にチェックするとライト・シャドウを共有

– ライトの影響範囲を狭くする事も効果がある場合アリ

Page 27: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

パフォーマンス

• GPUのボトルネックを解消するには?

– 奥の手(見た目のクオリティを犠牲に…)

• 各種ポストプロセスのOFF

• 描画解像度を落とす(所謂アップスケーリング)

– r.ScreenPercentage 数字

– Oculusの場合は HMD SP 数字(デフォルト135なので100くらいならアリかも)

– Epicブースでプレイ可能な Vehicle GameのOculus DK2版は これらの機能で

75fps化を実現

Page 28: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

パフォーマンス

• 最適化や問題解決の為の機能も様々なものが実装済

Page 29: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話 データの保存

ネットワーク対応

ビジュアライズ

Q&A

Page 30: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ブループリントのちょっといい話

• UE3世代のKismetというビジュアルスクリプト

– Kismetはレベルに紐付いていたので… 複雑なレベルはグラフが大変なことになりがち

• ブループリント!

– アセットを内包してライブラリ化できる

– オブジェクト指向

• 既存のブループリントを継承して、部分的に拡張する事が可能!

Page 31: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

Vehicle Gameをドライバー視点に!

• VH_Buggyを右クリックして「Create Blueprint based on this」 (Game/Vehicles/VH_Buggy/Blueprint内にあります)

– VH_Buggy_DriversEyeという名前に

– VH_Gamemodeを右クリックして「Create Blueprint based on this」 してVH_Gamemode_DriversEyeとしてGame Mode中のDefault Pawn ClassをVH_Buggy_DriversEyeという名前に

– ワールド設定の「GameMode Override」をVH_Gamemode_DriversEyeに

Page 32: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

Vehicle Gameをドライバー視点に!

• VH_Buggy_DriversEyeのコンポーネントに「コンポーネントを追加」

– SpringArmとCameraを追加して、DriversSpringArmという名前で[ルート]Meshの子供にして(必須ではないですが、カテゴリをCameraに)

– DriversCameraという名前にしてDirversSpringArmの子供にして 元のCameraのAuto ActivateをOFFに(カテゴリをCameraに)

– DriversCameraの位置調整 (X:50, Y:-40, Z:210としてみた)

Page 33: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

Vehicle Gameをドライバー視点に!

• DriversCameraのパラメータ調整

– DriversCameraのUse Controller View RotationをOFFに

– DriversSpringArmのEnable Camera LagとEnable Camera Rotation LagをONにして、Camera Lag Speedを100、Camera Rotation Lag Speedを50に。(ここはお好みで設定)

Page 34: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

Vehicle Gameをドライバー視点に!

• カメラの切り替え機能も入れてみましょう

– グラフでInputのKey EventsからYキー(なんでもよいです)

– 左の毎ブループリントの下部の「継承して変数を表示」すると継承元の変数も参照できるので、継承元のVH_Buggyが持っていたCameraを取得して、Toggle Active

– さらにDriversCameraを取得してToggle Activeを繋ぐだけ!

Page 35: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存 ネットワーク対応

ビジュアライズ

Q&A

Page 36: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

データの保存

• レベルを跨ぎたいデータ – GameInstanceオブジェクト

• GameInstanceを継承してプロジェクト設定で設定

• Set

• Get

• ゲーム終了後も保持したいデータ – SaveGameオブジェクト

• SaveGameを継承して

• Save Game to Slot

• Load Game to Slot

• その他 – URL(レベルを切り替える際のレベル名等文字列)にパラメータを含める

– 特定のUObjectをRootにAdd

Page 37: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応 ビジュアライズ

Q&A

Page 38: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ネットワーク対応

• ネットワーク対応は既に入っています

– CouchKnights, ShooterGame, VehicleGameは実は対戦できます。

• サーバ側:インストールフォルダ\UE4Editor.exe “ドキュメントフォルダ\CouchKights.uproject” Room?listen –game

• クライアント側:インストールフォルダ\UE4Editor.exe “ドキュメントフォルダ\CouchKights.uproject” サーバIP –game

– Project IDが同じでないと通信できないので注意

実は対戦できます!

Page 39: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ネットワーク対応プレイ!

• Vehicle Game

Page 40: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応

ビジュアライズ Q&A

Page 41: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ビジュアライズ

• 「ウインドウ」メニューの「Plugins」から「Audio」を選択!

– Sound Visualizations Plugin

Page 42: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ビジュアライズ

• http://www.youtube.com/watch?v=OVLzGq7WaAs

Page 44: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ビジュアライズ

Page 45: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

ビジュアライズ

Page 46: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応

緊急告知! Q&A

Page 47: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

緊急告知!

• 既にご存知の方もいらっしゃるかと思いますが

– 第2回UE4ぷちコン! • 10/5が締め切りです。

• テーマは「光る」

– 優勝賞品:UE4が動くノートPC

– アイディア賞/ユニーク賞: iPad mini Retina (WiFi, 16GB) or Nexus 7 (WiFi, 32GB)

– 参加賞(検討中)

– アンリアル フェス 2014 • 10/13(月・祝日)

• 場所はここ、パシフィコ横浜

• 1,000名!無料!!

Page 48: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

本日のメニュー

リアルなレンダリングがしたい!

フォトリアルでないレンダリング

パフォーマンス

ブループリントのちょっといい話

データの保存

ネットワーク対応

緊急告知!

Q&A

Page 49: CEDEC2014: アンリアル・エンジン4を技術者が活用するための最新ノウハウ

September 3

CEDEC 2014

Q&A

ありがとうございました ご質問がある方?

入り口で忘れずにプレゼントを受け取ってください!