カテゴリー別アーカイブ: Unreal Engine

GDC 2017セッション動画,スライドがGDC Vaultで公開

GDC 2017セッション動画,スライドの一部がGDC Vaultで公開で公開になっています.

http://gdcvault.com/browse/gdc-17/

GDC VaultはGDCのセッションの動画やスライドが公開されているデジタルライブラリで有料サービス(GDCのパスの種類によっては参加者は1年間閲覧可)ではありますが,無料で見れるものが多くあります.

GDCに行けなかった方も気になってたセッションが公開されている,ということがあるかもしれません.

個人的に気になるGDC 2017セッションメモ ver 0.1

2/27~3/3開催のGDC 2017のセッションが結構発表されてきているのですが,個人的に気になってるセッションを抜粋してメモしておきます.現地に行くことができなくてものちのちの資料公開などがあることが多いのでメモですね.

なお,まだ一か月以上ありますし,セッションの全部が公開されていないので定期的にアップデートしてversionを上げていきます.versionを上げる際には,この記事を更新するのではなく新規記事でたてます.

なお,今回はグラフィックスが中心でVRなどほかの分野は今後のバージョンで追加していきます.

グラフィックス

AAA

AAAタイトルのグラフィックス開発事例です.

‘Destiny’ Shader Pipeline

Natalya Tatarchuk氏はUnityに移ったのでどうなるのかわかりませんが,前世代機も含めたマルチプラットフォーム開発でどうやってるか気になるところですね.

http://schedule.gdconf.com/session/destiny-shader-pipeline

Efficient Texture Streaming in ‘Titanfall 2’

テクスチャストリーミングはなかなか自分では獲得できていない技術ですし,PBRになってテクスチャ枚数が増えてる状態でメモリは限られているのでチェックですね.

http://schedule.gdconf.com/session/efficient-texture-streaming-in-titanfall-2

‘Ghost Recon Wildlands’: Terrain Tools and Technology

ちょうどGDC会期中に近い時期に発売ですが,オープンワールドの技術ということでチェックですね.

http://schedule.gdconf.com/session/ghost-recon-wildlands-terrain-tools-and-technology

GPU-Based Run-Time Procedural Placement in ‘Horizon: Zero Dawn’

これも近いうちに出るタイトルですが,Horizon : Zero Dawnって植物とか画面の密度感あるなということでチェックです.

http://schedule.gdconf.com/session/gpu-based-run-time-procedural-placement-in-horizon-zero-dawn

Rendering Low LOD Cars at Lightning Speed in ‘Forza Motorsport 6’

http://schedule.gdconf.com/session/rendering-low-lod-cars-at-lightning-speed-in-forza-motorsport-6

Shoot for the Sky: The Ambitious HDR Time-Lapse Skies of ‘Forza Horizon 3’

http://schedule.gdconf.com/session/shoot-for-the-sky-the-ambitious-hdr-time-lapse-skies-of-forza-horizon-3

Film

ゲームではなく映画や映像系の事例.このタイプのセッションはVaultで公開されないし,撮影禁止が多いので現地で聴く意義が高いですね.

Realtime Rendering for Feature Film: Rogue One a Case Study

ローグワンのケーススタディですが,リアルタイムレンダリングというのが気になりますね.やっぱりイテレーションが大事ですので.たぶん,録画されず現地でしか聴けないセッションな気がします.

http://schedule.gdconf.com/session/realtime-rendering-for-feature-film-rogue-one-a-case-study

グラフィックステクニック

Geometry Caching Optimizations

ゲーム開発でもジオメトリキャッシュは活用されてきていますのでチェック.

http://schedule.gdconf.com/session/geometry-caching-optimizations

PBR Diffuse Lighting for GGX+Smith Microsurfaces

今までSpecularの話が多かったですが,Diffuseということで.

http://schedule.gdconf.com/session/pbr-diffuse-lighting-for-ggxsmith-microsurfaces

Subdiv for the PlayStation®4 (Presented by Sony Interactive Entertainment America)

限定的でもSubdivはそろそろゲームで使用できるのか?というのは気になっています.

http://schedule.gdconf.com/session/subdiv-for-the-playstation4-presented-by-sony-interactive-entertainment-america

Advanced Graphics Tech

Advanced Graphics Techのセッションシリーズは基本的にほとんど出るとは思います.

Direct3D12やVulkanネタの最新技術ですね.

Advanced Graphics Tech: “Async Compute: Deep Dive” & “Raster Ordered Views and Conservative Rasterization”

NVIDIAはPascalからAsync Compute対応しましたが,先行するAMDに比べて効果のほど,最適化のポイントがよくわかってないので気になりますね.あとRaster Ordered Viewsはできることはわかってますが,使えるのかいまいちわからん部分がありますね.活用事例が少なくて.

http://schedule.gdconf.com/session/advanced-graphics-tech-async-compute-deep-dive-raster-ordered-views-and-conservative-rasterization

Advanced Graphics Tech: “Cinematic Depth of Field” & “Advanced Particle Simulation in Compute”

http://schedule.gdconf.com/session/advanced-graphics-tech-cinematic-depth-of-field-advanced-particle-simulation-in-compute

Advanced Graphics Tech: “D3D12 and Vulkan Done Right” & “Wave Programming in D3D12 and Vulkan”

Waveプログラミングは今年のグラフィックスAPIのアップデートの大きなトピックなのでチェックですね.

http://schedule.gdconf.com/session/advanced-graphics-tech-d3d12-and-vulkan-done-right-wave-programming-in-d3d12-and-vulkan

Advanced Graphics Tech: Moving to DirectX 12: Lessons Learned

まだまだDirect3D11で,ってところは多いでしょうし移行中って多いでしょうからチェックですね.

http://schedule.gdconf.com/session/advanced-graphics-tech-moving-to-directx-12-lessons-learned

AMD

Advanced Shader Programming on GCN (Presented by AMD)

このセッションは,Vegaの世代のAMD GPUの話なので次のAMDのアーキテクチャ向けの業務やる人はチェックですね.あと,Wave level operationもHLSL 6.0の話題なのでチェック.

http://schedule.gdconf.com/session/advanced-shader-programming-on-gcn-presented-by-amd

Explicit DirectX 12 Multi GPU Rendering (Presented by AMD)

マルチGPUを相手にする機会はあまりないんですが,個人的にはGPUが分散した状態で1つのアプリケーションのレンダリングをやるということ自体は興味があります.

http://schedule.gdconf.com/session/explicit-directx-12-multi-gpu-rendering-presented-by-amd

Radeon ProRender and Radeon Rays in a Gaming rendering workflow (Presented by AMD)

こうしたトピックはゲーム向けじゃなさそうなのですが”Gaming rendering workflow”ということが気になりますね.

http://schedule.gdconf.com/session/radeon-prorender-and-radeon-rays-in-a-gaming-rendering-workflow-presented-by-amd

Real-Time Finite Element Method (FEM) and TressFX 4.0 (Presented by AMD)

AMDの髪向けライブラリのTressFXとリアルタイム有限要素法のセッション.

http://schedule.gdconf.com/session/real-time-finite-element-method-fem-and-tressfx-40-presented-by-amd

D3D12 & Vulkan: Lessons Learned

入門記事ですがチェックですね.

http://schedule.gdconf.com/session/d3d12-vulkan-lessons-learned

DirectX 12 Case Studies (Presented by NVIDIA)

http://schedule.gdconf.com/session/directx-12-case-studies-presented-by-nvidia

Frostbite

Frositteの関連セッションは数があるので,1つのジャンルでいいかと思います.UnityやUE4と違いFrostbiteはEA DICEが中心に開発して,EAの傘下スタジオで使われるインハウスエンジンなのでインハウスで大規模タイトルをやってるところの励みになりますね.

4K Checkerboard in ‘Battlefield 1’ and ‘Mass Effect Andromeda’

昨年末から家庭用も徐々に4K対応が必要になってきたわけですが,GPUのそのまま解像度を上げる…というのはなかなか大変なのでレンダリングの工夫がいるわけですが,その中でCheckerboardレンダリングは流行っています.

もとは,GDC 2016のRainbow SIx SiegeのこれはFrostbiteでの実装事例ですね.

http://schedule.gdconf.com/session/4k-checkerboard-in-battlefield-1-and-mass-effect-andromeda

FrameGraph: Extensible Rendering Architecture in Frostbite

個人的に注目度高いのですが,FrostGraphというレンダリングの拡張の仕組みの話ですね.グラフベースでレンダリングパイプライン構築できれば…と思う人は多いですよね.

http://schedule.gdconf.com/session/framegraph-extensible-rendering-architecture-in-frostbite

High Dynamic Range Color Grading and Display in Frostbite

昨年からHDR TV(BT.2020)対応始まりましたが,Frostbiteの実装事例ですね.

http://schedule.gdconf.com/session/high-dynamic-range-color-grading-and-display-in-frostbite

Microsoft

D3D12 Performance Tuning and Debugging with PIX and GPU Validation (Presented by Microsoft)

先日,Windows 10向けのPIX出ましたがそのセッションですね.

http://schedule.gdconf.com/session/d3d12-performance-tuning-and-debugging-with-pix-and-gpu-validation-presented-by-microsoft

Game Mode and the Evolution of Cross-Platform UWP Game Development (Presented by Microsoft)

Windows 10のCreator UpdateのGame ModeとUWPの話のようですね.

http://schedule.gdconf.com/session/game-mode-and-the-evolution-of-cross-platform-uwp-game-development-presented-by-microsoft

Windows Holographic Rendering: One SDK to target VR and AR ecosystems (Presented by Microsoft)

Windows Holographicsの開発セッション.VRとARのSDKを1つの統合したもので提供するようですね.GDC 2017の中でも注目度が高いのではないかと思います.

http://schedule.gdconf.com/session/windows-holographic-rendering-one-sdk-to-target-vr-and-ar-ecosystems-presented-by-microsoft

NVIDIA

D3D Async Compute for Physics: Bullets, Bandages, and Blood (Presented by NVIDIA)

ほかのセッションのところでも書いてますが,Pascal世代のGeForcedでのAsync Computeの活用方法はちゃんと聞いておきたいですね.

http://schedule.gdconf.com/session/d3d-async-compute-for-physics-bullets-bandages-and-blood-presented-by-nvidia

NVIDIA Vulkan Update (Presented by NVIDIA)

VK_NVX_device_generated_commandsはAPIの標準になってほしい拡張ですね.

http://schedule.gdconf.com/session/nvidia-vulkan-update-presented-by-nvidia

Photogrammetry for Games: Art, Technology and Pipeline Integration for Amazing Worlds (Presented by NVIDIA)

NVIDIAのセッションというのが驚きましたが,フォトグラメトリーはデータ作成として一般化してきましたね.

http://schedule.gdconf.com/session/photogrammetry-for-games-art-technology-and-pipeline-integration-for-amazing-worlds-presented-by-nvidia

Real-Time Rendering Advances from NVIDIA Research (Presented by NVIDIA)

NVIDIA Reserchの最近の研究トピックが1セッションでいろいろと聞けるのはよさそうですね.

http://schedule.gdconf.com/session/real-time-rendering-advances-from-nvidia-research-presented-by-nvidia

Unity

The Future of Rendering in Unity (Presented by Unity Technologies)

Unityの将来のレンダリングの話ですね.セッションのスピーカーがTBDですが,先日移籍したNatalya Tatarchuk氏でしょうか?

http://schedule.gdconf.com/session/the-future-of-rendering-in-unity-presented-by-unity-technologies

Unreal Engine 4

Stylized Character Creation in UE4 Mobile Games

モバイルでやるということが気になりますね.

http://schedule.gdconf.com/session/stylized-character-creation-in-ue4-mobile-games

Steam Dev Days 2016動画公開

Steamの開発者向けのイベントがSteam Dev Days 2016がアメリカで10/12、10/13にありましたが、その動画が公開になったみたいですね.

Steam Dev Days 2016
http://steamcommunity.com/devdays

今回はやはりVRに関する話題が多いですが,VRに限らないSteam向けの開発やリリースに関するのセッションなどもあります.

動画は下記から視聴できます.

Steamで視聴
http://store.steampowered.com/app/534600/

Youtubeで視聴
https://www.youtube.com/playlist?list=PLckFgM6dUP2ihiMeKHoyIdHvhRSyqwQsp

GDC VaultでGDC 2016資料やプレゼンテーションが公開に

GDC Vaultの2016が公開になっています.

GDC 2016
http://www.gdcvault.com/browse/gdc-16

VRDC 2016
http://www.gdcvault.com/browse/vrdc-16

無料で見れるセッションの中でお勧めは順次紹介していきます.

書籍:GPU Pro 6のKindle版

完全に発売を見落としていたのですが,GPU Pro 6のKindle版が購入できるようになっています.

出版社の紹介ページ(GPU Proのものより目次は詳細です)
https://www.crcpress.com/GPU-Pro-6-Advanced-Rendering-Techniques/Engel/9781482264616

GPU Proのblog
http://gpupro.blogspot.jp/

目次
http://gpupro.blogspot.jp/2014/12/gpu-pro-6-table-of-contents.html

NVIDIAがDirect3D11向けVXGIを公開

NVIDIAがNVIDIA VXGI v0.9を5/19に登録開発者向けに公開しています.

NVIDIA VXGI 0.9 released
https://developer.nvidia.com/content/nvidia-vxgi-09-released

ダウンロードは下記のページのリストから選択してください
https://developer.nvidia.com/gameworksdownload#?cl=date,-1

VXGI のライブラリとサンプルが同梱されています.サンプルでは,GIとAmbient Occlusionのサンプルが入っています.

vxgi001

vxgi002

なお,Unreal Engine 4向けの実装は下記で公開されています(UE4のサブスクリプションのユーザーかつNVIDIAのPhysXのソース開示を受けてないと見れないかもしれません.).

https://github.com/NvPhysX/UnrealEngine

(2/5追記)Unreal Engine 4.7 PreviewでHTML 5ビルドをしてみる

Unreal Engine 4.7 Preview 5にて新要素として” HTML5 is now included in the binary release”が加わりました.従来,HTML 5(WebGL.ウェブブラウザでゲームを実行するモード)のビルドを行うにはソースコードからのビルドが必要でしたがこのバージョンからエンジンのソースコードビルドが不要になったようです.

リリースについて
https://forums.unrealengine.com/showthread.php?54610-Unreal-Engine-4-7-Preview&p=215629&viewfull=1#post215629

そんなわけで,早速ビルドしてみようと思いましたが,あっさりできてしまったのでビルドのためにやったことを書いておきます.

※本記事は正式リリース前のUnreal Engine 4.7 Preview 5で行っているので,正式リリースの場合には手順が変わっているかもしれないのでその点はご了承ください.
※Windowsで試しましたが,Macは試してないです.

はじめに

とりあえず,今回はHTML 5が無事にビルドできるか試すだけなのでできるだけ小規模な環境でビルドエラーなどが無いような状態を目指しながらやっていきます.

まずは新規プロジェクトを作ります.今回は,SideScrollerにしてみます.なお,Top Downも試したのですが,問題なく行けました.

ターゲットにするハードウェアは「モバイル/タブレット」にしておきます.WebGLではPCのスタンドアロンのようなハイエンドグラフィックス機能は使えないのではじめから落としておきます.グラフィカルレベルは,「スケーラブルな3Dまたは2D」にしておきます.これも安全策ですね.最後に,「スターターコンテンツがありません」にしておきます.プロジェクト名はなんでも良いと思いますが,SideHTML5にしておきました.

side001

 

プロジェクトを作成すると下記の画面が出ると思います.

ue47a

HTML 5ビルドを行うには,「ファイル」メニューの「プロジェクトのパッケージ化」の「HTML5」を選びます.

package

選ぶとビルド終了…とは行きません.下記のページに飛ばされます.こちらにビルドのために何をすれば良いか書かれています.ちょいと情報が古いようで色々と試した結果,書いてあるとおりにやる必要はなさそうです.後述の「Emscriptenの準備」に書かれているセットアップで動きました.

入門編:HTML5 プロジェクトの開発
https://docs.unrealengine.com/latest/JPN/Platforms/HTML5/GettingStarted/index.html

とりあえず,ドキュメントを読むとUnreal Engine 4.7でHTML 5出力を行うにはEmscriptenのインストールが必要だと言うことがわかります.Emscriptenは,C++のコードをHTML5に変換するコンパイラです.これはUnreal Engine 4.7には付属しないので自分でセットアップする必要があります.ドキュメントを順番に読んでいけば設定終わるのですが,プログラマ以外の人からするときついと思いますので,このページではかなり手順を明確に書いていきます.

次にEmscriptenの準備をしますが,まずは一度この時点でUnreal Engine 4.7は閉じておきます.

Emscriptenの準備

Emscriptemの準備としては,以下の2つを行う必要があります.

  • インストール
  • 環境設定

まずは,インストールですがダウンロードは下記からできます.色々とパッケージがありますが,”Emscripten SDK Offline Installer”を選んでください.”Emscripten SDK Web Installer”でも問題はないとは思います.

http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html

妙に時間がかかって不安になることがありますが,気長に待ちます.

インストールが終わりましたら,環境設定ですがそのあたりはインストーラーが環境変数など設定してくれるようで終わりです.念のため一度Windowsを再起動しておきます(実際,再起動しないとダメでした).

いざ、ビルド

Emscriptenのセットアップが終わったらいよいよビルドです.先ほどの手順に戻ります.

package

HTML5を選択すると保存ディレクトリを問われますので,適当に保存します.この時に,「入門編:HTML5 プロジェクトの開発」のドキュメントが再度開くことがあったりしますが,その場合はEmscriptenのセットアップに失敗しているかもしれません(もしくはインストール後にWindows再起動していない).

ビルドが終わると下記のような感じでファイルが出力されます.SideHTML5.htmlが起動すべきページです.これをブラウザでSideHTML5はプロジェクト名ですね.このフォルダ丸ごとどっかWebサイトにアップしてもいいですし,ローカルでFirefoxで開いてみても良いと思います.

html

 

・・・が、この出力されたファイルの一覧を見るとUE4Game.jsのファイルサイズが181MBほどあります.このファイルはUEのエンジン自体のコードになるわけですが,このままだとゲームを実行する人がこの大きなファイルをダウンロードすることになりサーバーにも優しくありません.

実は,デフォルトのパッケージ設定がDevelopment(開発用ビルド.デバッグ向けのコードなどが入っている未最適かなもの思われます)になっているのが原因でした.これをShipping(出荷用)に変える必要があります.

パッケージの設定は,「ファイル」の「プロジェクトのパッケージ化」の「パッケージ設定…」を選びます.

 

package001

 

そうすると出てくるダイアログの「プロジェクト」の「パッケージ化」を選びます.そこにある「Build Configuration」を「Development」から「Shipping」にします.これで設定は終了です.再度ビルドして見ましょう.

 

 

build001

 

ビルド後のファイル構成です.サイズが小さくなってるのがわかります.これ以上小さくする手はちょっとUE4上でできるのかはわかりませんが,gzipで圧縮してしまうという手があるようですが,この記事では割愛します.

shipping

さて,肝心のビルドしたゲームは下記です.一応,こちらで試したところFirefoxが推奨です(これはEmscriptenの出自上最大パフォーマンスがます).Chromeも起動しますがInternet Exploler 11はダメでした.

ビルドしたゲーム
http://www.shader.jp/UE4/HTML5/SideHTML5-HTML5-Shipping.html

※負荷を考えてビルドしたパッケージをZIPで固めました.実行して見たい方は下記からダウンロードしてブラウザで開いて見てください.

ダウンロード(29.7MB, SideHTML5.htmlをブラウザで開いてみてください.Firefox推奨)
http://www.shader.jp/DL/HTML5.zip

firefox

まとめ

以前,HTML5にチャレンジした時は環境設定やエラーでまくりで断念したんですが,今回はおどろくほど簡単にうまくいきました.

ひとまずUnreal Engine 4のゲームをブラウザで実行できるようになりました.ここまで到達するのに試行錯誤があったのですが,ここに書いてる手順でたぶん動くとは思いますが,開発中の機能なので動かない場合などはできるだけUnreal Engineのフォーラムなどにフィードバックした方がいいですね.

ちゃんと出力できると感動がありますね.UnityのようにWeb PlayerがなかったUnreal Engine ですが対応ブラウザや安定性が増すとブラウザゲーム作る環境としてもなかなか期待できそうな感じはありますね.