4.1K Views
July 24, 17
スライド概要
2017/07/23に開催されたUE4 Osaka Meetup #3で登壇した際の資料です。 UE4.17で追加される新機能についてまとめています。https://connpass.com/event/60719/
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
4.17で入る新機能を一気に紹介・解説! Epic Games Japan 岡田和也
自己紹介 Epic Games Japan サポートエンジニア 岡田和也 ( おかず @pafuhana1213 )
!!! WARNING !!! 2017/07/23現在、UE4.17はPreview2です 一部の機能は まだ正常に動かない可能性があるので ご注意下さい!
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
VR Spectator Screen: Oculus and Vive Support VRHMD上の映像とは異なる映像を PCモニタに出力( PSVRのソーシャルスクリーン機能 ) UE4.17で追加された VRのSpectator Screen機能について • http://pafuhana1213.hatenablog.com/ entry/2017/07/18/005147
Stereo Layers Unified Across Platforms あらゆるVRHMDにおいて、ステレオレイヤー機能を 簡単に使える・対応できるようなシステムに変更 • VRHMD毎に提供機能が異なるので、一部挙動・対応項目が異なる Stereo Layerコンポーネントについて • http://pafuhana1213.hatenablog.com/ entry/2016/12/24/202106 • ポストプロセスなどの影響を受けることなく、 最前面かつ3D空間内にテクスチャを配置可能
VR Mode Camera Previews カメラ、またはカメラを含むActorを 選択すると、そのカメラの映像を VRエディタ内でプレビューできる プレビュー画面は固定可能
Direct Multiview Support for Daydream Daydreamでもマルチビューを使用可能に • パフォーマンス向上 • メモリオーバーヘッドを削減
ARKit Support (超・実験段階) AppleのARKit 対応 • 実験的なサポートなので、ARKitが正式リリースする前に API・インターフェースが変更されることに注意 • https://www.youtube.com/watch?v=S14AVwaBF-Y
ARKit Support (超・実験段階) 導入手順・サンプルはGithubのde-ar-kitに • https://github.com/EpicGames/UnrealEngine/ tree/dev-ar-kit • Root / Samples / ARSample iOS 11, Xcode 9.0以降 コードをビルドする関係で Mac OSが必要 • 秋頃にiOS11が正式リリースという記事を見た記憶
Google Tango Plugin for UE4 (実験段階) Google Tangoへの初期サポート • • • • 6軸モーショントラッキング エリア学習 環境再構築 その他のGoogle Tangoの機能 APIとインターフェイスは 次のバージョンで変更される可能性があります
Google Tango Plugin for UE4 (実験段階)
Google Tango Plugin for UE4 (実験段階) ZenFone AR Tango と Daydreamに対応したスゴイ奴
つらい
Composure Compositing Plugin 複雑なリアルタイムコンポジットパイプラインを 簡単に作成するために設計された C++ / Blueprint プラグイン • 「Human Race」のノウハウ the technology possibility of Composure in UE4.
Composure Compositing Plugin 機能リスト • Player ControllerとRender Target 2Dテクスチャのバインディング機能 • エンジンのレンダリングパイプラインを C++ / BPで実装されたCompositingパイプラインに置き換え • OpenCV標準のカメラキャリブレーションモデルによる レンズ歪みや歪みのないUV変位マップを生成 • UVMapパスにより、UV変位マップとUVマトリックスに従って テクスチャを歪ませることが可能
Composure Compositing Plugin 機能リスト • エッジライトラップなどの合成効果を再現するための 独立したパスによるブルーム機能 • 独立したトーンマッパー用のパス • C++ / BP / Material APIによるカラーコレクション、色収差 • 簡単なCompositeユースケースのためのBPヘルパー • サンプルプロジェクト
Composure Compositing Plugin エンジン機能 • ポストプロセスにおける実験的なアルファチャンネルのサポート:Circle DOF、TemporalAA、Motion Blur、Bloom • ポストムーブモーションブラーのサポートのための シーンキャプチャのProjection matrixベースのモーションブラーサポート • ポストプロセスマテリアルドメインとそのアルファチャンネル出力を BP canvas drawing APIでサポート • BlueprintエディタでのシーンキャプチャのShowflag編集
Preview 2だとまた正常に動かず…
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
Auto-key • Auto-Keyを単一のトグルアイコンに簡素化
Outliner ( Sequencerとの連携強化 ) • Actorがどのレベルシーケンスに バインドされているかを可視化 • シーケンサによって生成されたActorを表示 • Spawnable設定 • UE4.16以前では表示されなかった
Sequencer Edits vs Level Edits プロパティの変更が単一のショットに影響するか 他のショットに影響するかを制御可能に
Sequencer Edits vs Level Edits Allow All Edits • これまでと同じ挙動 プロパティの編集は全てのショットに影響する
Sequencer Edits vs Level Edits Allow Sequencer Edits Only • プロパティが編集された際、 そのプロパティのトラック・ キーフレームを自動的に作成 • この変更は作業中のショットのみに 反映される
Sequencer Edits vs Level Edits Allow Level Edits Only • オブジェクトのデフォルトプロパティを編集 • プロパティを編集しても、シーケンサのショットに影響しない • 既にシーケンサにそのプロパティのトラックがある場合は 詳細パネルからの変更が不可能に
Blending • 任意の型のBlendable Section • 2D/3D Transform, floats, vectors, etc • Blendable Sectionにおける自動イージング • 標準のイージング関数 • カーブアセット + カスタムイージング関数 • Transformのチャンネルごとのアニメーション • Translation( x,y,z ), Roatation(x,y,z)
Image Plate Plugin (実験段階) Image Plateアクタは、カメラに取り付けられたときに フレーム精度の画像シーケンスをフルスクリーンで表示したり、 画像を合成パイプラインに直接ストリームしたりすることが可能
Image Plate Plugin (実験段階) カメラ側のパラメータ(FOV, Projection Modeなど)を自動的に反映
Image Plate Plugin (実験段階) • Image Plate File Sequence • UTexture プロパティに画像をストリームできるらしい
Image Plate Plugin (実験段階) シーケンサーの ImagePlate / Render Textureトラック
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
Live Editing of Animation Blueprints and viewport preview connection (実験段階) • エディタで再生中にAnimationBPを ライブで編集・再コンパイルできるように • AnimationBPのビューポートと AnimationBPのインスタンスを接続可能 • エディタ設定で→の項目を有効に
Clothing Tools (実験段階/Early Access) • Clothing Paint Tool Frameworkのリファクタリング • Clothの”Mask”サポート • Cloth Painter用ツールの再構築 • Smooth Clothing Paint Tool の追加 • Fill Clothing Paint Toolの追加
Choose pose for baking when removing bones アニメーションポーズを指定することで 元のボーンが削除されたSkeletal Mesh LODsの頂点を 最も近い親ボーンに重み付けするのではなく、再スキニングできる ユースケース LODレベルに応じてボーン構造を簡略化していて 高LODレベルにおけるポーズを変更したい • 簡略化による処理負荷軽減をしつつ、見た目の違和感を軽減
Choose pose for baking when removing bones
Two Bone IK Improvements • ミッドジョイント用のAllowTwistオプションを追加 • ねじれの防止 • メカニカルアームにも有用 左が無効 右が有効
Two Bone IK Improvements • Maintain Effector Rel Rot オプションを修正 • 新しい Enable Debug Drawオプションを追加
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
Global Shader Support For Plugins (実験段階) シェーダファイルは、USF, USHファイルに分割 • USF • USH :シェーダエントリポイント( MainVS, MainPS )を持つ :シェーダエントリポイントを持たない 他のシェーダファイルに含ませる Compositting/LensDistrotion/Shaders/Private/UVGeneration.usfにて #include "/Engine/Public/Platform.ush"
Global Shader Support For Plugins (実験段階) UE4.17でサポートしているのは、プラグインとプロジェクト シェーダファイルを、Public / Private フォルダ下に分割 • Public フォルダ : パブリックAPI • Privateフォルダ : 実装部分 • USFファイルはこっち Project ( Plugin ) Config Content Source Shaders Public Private
Material Baking Improvements (実験段階) • Static/SkeltalMeshインスタンスの マテリアルのベイクサポート
Material Baking Improvements (実験段階)
Material Baking Improvements (実験段階)
マテリアルをテクスチャにベイク • ヒストリアさんのブログ記事 http://historia.co.jp/archives/6646
Mesh Editors, Materials and Sections Panel Improvements より効率よく作業できるようにUIを圧縮 • Static / Skeletal Meshエディタの両方に影響
Mesh Editors, Materials and Sections Panel Improvements 複数のLODをマージしてスクロールの負担を軽減 • ビューポートで編集中のLODを確認可能に
Sobol Blueprint and Material Nodes • Sobol quasi-random sequence(準乱数列) を用いた 点座標の生成用ノードを追加
Sobol Blueprint and Material Nodes Random Sobel Float • 単一次元における値を取得 • 組み合わせることで、2D/3D 分布を作成可能
Sobol Blueprint and Material Nodes Random Sobol Cell 2D • 2D Sobol点を2Dグリッドのセルに配置 Sobol マテリアルノード • Random Sobol Cell 2Dと同じ2D点を 固定の256 x 256セルグリッドで提供
Sobol Blueprint and Material Nodes Random Sobol Cell 3D ノード • 3Dグリッド内の3D点に配置
Sobol Blueprint and Material Nodes • Temporal Sobol マテリアルノード • 各ピクセルで異なる2D Sobolシーケンスを 使用し、各フレームの異なるセットの点を 循環する • TAAを用いて、複数フレームにまたがって 使用されることを想定している
Texture-based Importance Sampling Blueprint nodes 与えられた密度関数に従って点を配置 • 指定したテクスチャの輝度 または RGBA値を 重要度パラメータとし、点の配置を制御
Texture-based Importance Sampling Blueprint nodes 異なるテクスチャ + 輝度を使用した場合
Texture-based Importance Sampling Blueprint nodes 赤・白のテクスチャを用いて、ライトの配置を制御
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
Mobile separate translucency MobileでもSeparate Translucencyが使えるように MobileHDRオプションを有効にし、 MSAAを無効にする必要がある • 設定が異なる場合は通常の半透明として描画
Separate Translucencyって何?って人向け 【UE4】被写界深度半透明物体共生戦略手法零式(Type-0) • http://darakemonodarake.hatenablog.jp/entry/2014/12/23/000034
Mobile executable size reduction on iOS and Android Android • Shippingビルド向けの –ICF フラグ が有効に • エンジンの .so (third party shared library) が 約5MB 節約 • apk内で圧縮された場合は、 約 1MB 節約 iOS • ObjectCの例外を無効 : 6.5MB節約 • iOSビルドの強制コードインライン化を無効 : 約2.5MB節約 UE4.18でさらなる実行ファイルサイズの縮小が入る予定
Android RenderDoc support (実験段階) AndroidアプリケーションをRenderDocでキャプチャできるように • RenderDocは OpenGL ES / Vulkanを使用する アプリケーションのキャプチャをサポートしている まだ実験段階で RenderDocのナイトリービルドのみに 含まれる
sRGB on High-end Android OpenGL ES 3.1またはVulkanで構築された Androidアプリケーションは、エミュレートする代わりに ネイティブsRGBサンプリングを使用するように 直訳 「デバイス上のテクスチャの より知覚的な色の解像度を期待できます」
Android Toolchain and SDK Updates • AndroidツールチェーンはNDK 15を搭載したNDK 14bを 実験的にサポート。 • 必要なAndroidサポートライブラリと共に Google Playサービスを9.8.0にアップグレード • Gradleを実験的ビルドオプションとしてサポート • https://forums.unrealengine.com/ showthread.php?150315-Gradle-support-in-UE-4-17 • Antサポートを今後削除する予定 • Googleがサポートしなくなるから
Android widescreen aspect ratio support 超ワイドなアスペクト比をサポートするように • デバイス例:Samsung Galaxy S8 • https://developers.srad.jp/story/17/04/01/1852216/ デフォルトでは、サポートされている画面の縦横比は 最大2.1(幅/高さ) • アスペクト比の大きいデバイスで自動的にレターボックスに • デフォルトの縦横比は プロジェクト設定のAndroidセクションで変更可能
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
Added folder filters to anim asset browser Animation用Asset Browserに Folder Filterが追加 • 指定フォルダ以下のアセットのみ表示 • エディタ設定から 指定可能なフォルダ数を設定可能
Added folder filters to anim asset browser
Dependencies between plugins • プラグインは他プラグインへの依存関係を宣言できるように • エンジンが必要なものを自動的に有効化・ロード • 依存関係は.upluginに記述 • .uprojectと同じ構文 Composure.upluginにて ・・・ “Plugins”:[ { “Name”: “LensDistortion”, “Enabled”: true } ]
Orphan Pins ピンが除去された場合はエラー・警告を示すオーファンピンを出力 • ピン除去を行った際の破綻を回避
Blueprint Property Accessors 変数のGetter / Setter用の指定子が追加 • BlueprintGetter • BlueprintSetter 直接公開している変数を 指定したGetter / Setter 関数 を介すように
Blueprint Compilation Manager • ロード時におけるBPのコンパイルが 以前に比べて 50~60%に • 長年残っていたコンパイルのバグへの対応 • BPを子クラスにキャストした際に誤った警告を出していたりなど • もしコンパイル時の挙動がおかしい場合は 新しいコンパイルマネージャが原因かも • プロジェクト設定から無効にできる
Asset Registry in Blueprints BPからAsset Redistryにアクセスできるように • 特定のアセットのデータ(AssetData)を取得したり ロード済みか確認したり… Blutilityと組み合わせることで ちょっとしたエディタ拡張なら 簡単に作れそうです!
お品書き • VR ,AR , MR 編 • シーケンサー編 • アニメーション編 • マテリアル編 • モバイル編 • Blueprint編 • その他編
Asset Management Framework Asset Manager • エディタまたは実行時にマップや ゲーム固有のアセットタイプを 検出、ロード、および監査するために 使用できるグローバルオブジェクト
Asset Management Framework 4.16でEarly Accessとして入ってましたが BPによるアクセスが可能になり、正式機能に
Elementalデモを使ってレベルの裏読みテスト
裏読みなし OpenLevel • ロード待ち時間 • 10.3s (エディタ起動 : 約20s)
裏読みあり OpenLevel • ロード待ち時間 • 約1.8s (8.5s改善) (エディタ起動:約2s)
追記 その1 • Tips • エディタの場合、一度読み込んだアセットはメモリにのってしまうので 今回のような裏読みのテストをする際は StandaloneかPKGでテストすること! • Preview2 だと Asset ManagerのバグでPKG作れない… •Q •A : 裏読み開始時に数msほど固まったけど? : エディタ特有のIO処理が原因(のはず) StandaloneやPKGなら発生しない(のはず)
追記 その2 • Q:裏読みしても一瞬止まってしまうの?何とかならない? • A:Open Levelがブロッキング処理なことが原因 さらに、裏読みしても実際に使われるタイミングで 色々初期化処理が走るのも原因… • A:サブレベルのロード・アンロードを検討する • Load / Unload Steam Level
UMG / Slate Clipping 2.0 複雑なレイヤードクリッピングクワッドを サポートする新しいクリッピングシステム • 複数のクリッピング設定を用意 詳細はこちら • https://forums.unrealengine.com/ showthread.php?148183-UMG-andSlate-New-Clipping-System-in-4-17
Physics optimizations PhysXタスクをバッチ処理することでオーバーヘッドを削減 • p.BatchPhysXTasksSizeでバッチサイズを変更可能 バッチサイズ 大: 並列度:低 タスク毎のオーバーヘッド:少 バッチサイズ 小: 並列度:高 タスク毎のオーバーヘッド:多 その他 • ツリーの再構築 • キネマティック Transformの更新 • Raycastの最適化
Added Support for Async PhysX Cooking Procedural Mesh Componentに Use Async Cooking フラグ追加 複数のProceduralMeshComponentを GameThreadから並列でCookできるように • 実行時のヒッチを回避
Added Unreal Audio support on several new platforms (Early Access) • Androidへのサポートを強化 • パフォーマンス向上 + 不具合修正 • PS4, XboxOne, iOS, macOSへのサポートを追加 • Unreal AudioはまだEarly Accessの状態です… • ゴメンナサイ
Audio Streaming No Longer Experimental オーディオストリーミングのサポートが正式機能に • UE4.17で幾つかの不具合を修正
Static analysis with PVS-Studio • PVS-Studio static analyzer のサポートが追加 • C, C++, C# の 静的解析ツール https://www.viva64.com/en/pvs-studio/ • 公式ブログ記事 https://www.unrealengine.com/ja/blog/static-analysis-as-part-of-theprocess?lang=ja PVS-Studioで静的解析を有効にするには、 -StaticAnalyzer = PVSStudio をUnrealBuildToolコマンドラインに追加
さいごに • UE4.17で入る機能はまだまだまだまだまだまだあります! みんなで協力して調査・検証していきましょう! そして、その結果は記事などにして公開・共有していきましょう! • UE4.17 最新機能 検証スレ
本講演に関する質問はこちらからどうぞ! Twitter : @pafuhana1213