469 Views
November 24, 18
スライド概要
2018/11/24に開催されたUnity道場 京都スペシャル3の講演スライドです。
講師: 山村 達彦(ユニティ・テクノロジーズ・ジャパン合同会社)
Unityのイベント資料はこちらから:
https://www.slideshare.net/UnityTechnologiesJapan/clipboards
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
最新機能 オーバービュー ~2018から2019~ Tatsuhiko Yamamura @ Unity
安定版の提供(LTS) 2017 2017.1 2018 2017.2 2019 2017.3 2020 2017.4 (LTS) 2018.1 2018.2 2018.3 2018.4 (LTS) 2019.1 • LTSは24ヶ月のサポート • LTSは、ほぼバグフィックスのみ (新機能の追加・反映は無し) 2019.2 2019.3 2019.4 (LTS) 2020.1 2020.2 2020.
エディター ワークフロー
日本語対応 UIを日本語化 Inspectorやメニュー等が対象 2018.1 • 日本語エディター対応 2018.3 • 英語でコンポーネントが検索可能に
Package Manager Unityのバージョンとほぼ独立した 機能の提供するシステム プロジェクト単位で利用する機能を 取捨選択 2018.1 • 提供開始 2018.3 • ローカル / 独自パッケージに対応 • パッケージの検索機能を追加
Package Manager 2019.1 • パッケージの依存関係を改善 • 依存関係の可視化 • パッケージをGitから直接インポート 2019.x • AssetStoreと統合 • パブリッシュするフローとの統合 • Local、Cloudでテスト
パラレルインポーター インポート完了まで席の前で待機しなくても良くなる 並列インポート 必要に応じてインポート 依存関係グラフの作成 2019.ぐらいの予定 Hold On Importing … so many things.
Addressable Asset ローカル・リモートの区分無く、 簡単にアクセスできるようにする Inspectorからの参照でも 必要に応じてアセットのロード 2018.3 • プレビュー 2019.1 • リリース
Addressable Asset [AssetReferenceTypeRestriction(typeof(GameObject))] public AssetReference player;
Addressable Asset
Addressable Asset オブジェクトのロード&生成 GameObject playerInstance; player.Instantiate<GameObject>().Completed += (op) => {playerInstance = op.Result;} 破棄&開放 Addressables.ReleaseInstance(playerInstance);
Addressable Asset アプリに含めるアセット郡 データをサーバーからダウンロードするアセット群 「グループ単位」 or 「1アドレス 1アセットバンドル」で分割
Scriptable Build Pipeline Addressable Assetの構築/アクセスを 担当するシステム。 ビルドパイプラインをカスタマイズ 参照用のハッシュの生成等もここ 2018.3 • プレビュー(予定) 2019.2 • コンテンツのロード方式を カスタマイズ
新しいPrefab機能 Prefabをより柔軟に管理する為 のワークフロー構築 Prefabの階層化やバリアント、 Prefab用エディターの導入など • 2018.3導入
Prefab機能(旧) Object Prefab1 Prefab1 Prefab1 X=1 オブジェクトへの配置 Prefab化 X=1 X=1 Prefabの情報は失われた
Prefab機能(旧) Object Prefab1 Prefab1 Prefab1 X=2 X=2 X=1 オリジナルPrefabの変更が 反映される 変更は反映されない
新しいPrefab機能(階層化) Prefab1 X=1 Y=1 Prefab2
新しいPrefab機能(階層化) Prefab1 Prefab2 X=1 Y=1 X=1 Y=1
新しいPrefab機能(階層化) Prefab1 Prefab2 X=2 Y=1 X=2 Y=1 オリジナルPrefabを変更すれば、使用してるPrefabにも反映される
新しいPrefab機能(バリアント) Prefab1 X=1 y=2
新しいPrefab機能(バリアント) Prefab2 Prefab1 X=1 y=2 X=1 y=2 Prefab3 X=1 y=2
新しいPrefab機能(バリアント) Prefab2 Prefab1 X=1 y=2 x=12 X=1 y=2 Prefab3 x=4 X=1 y=2 個別に値や構造を上書きできる
新しいPrefab機能(バリアント) Prefab1 X=1 y = 1000 オリジナルの値は反映される Prefab2 x=12 X=1 y = 1000 Prefab3 x=4 X=1 y = 1000
UIデザインの一新 理解しやすいデザインに変更 2019.2 • 新しいアイコンに変更 • ホバースタイル対応 • ユニフォームスタイルの アイコン(HDPI対応) 2019.3 • フォントサイズの変更
Unified settings すべてのプロジェクト設定が 一つのウィンドウに集約 フィルターで指定の機能を 見つけやすく • 2018.2導入
ショートカットマネージャー ショートカットキーのカスタマイズ アクションにショートカットの割当 アセットストア開発者用のAPI ショートカットを保存して共有 2019.1 • 提供
Console Log改善 2019.2 • スタックトレースのクリック • 検索の追加
UI Element エディター拡張用の新しいUIシステム スタイルシート、テンプレート、動的イベント処理等に対応 2019.1 • 導入 2019.2 • ランタイム対応 • もっと良いCSS対応 • UIエディター用意
Visual Scripting ビジュアルスクリプトツール • グラフを元にC#生成 • カスタムパッケージのサポート 2019.2 • プレビュー版リリース
Visual Scripting Assembly Definition File visual scripts visual scripts ADF visual scripts Game System ADF visual scripts visual scripts Game System Core system visual scripts
パフォーマンス
“Performance By Default” C# Job System Entity Component System Burst Compiler
C# Job System 処理をワーカースレッドに乗せて 並列(非同期)処理を実現 安全・効率的にマルチコアを活用 NativeContainerによる、 ローレベルなメモリ管理の提供 2017.3 • 公開
Entity Component System データレイアウトを意識して かなり効率的なプログラムを実現 2018.1 • プレビュー公開 2019.1~3 • リリースに向けての基盤作り • APIをシンプルかつ使いやすく • シーンエディター • シーンのストリーミング
GameObject/Componentの場合 Do Do Do Do Do Do Do Do Do Do Do Do Do Do
Entity Component Systemの場合 なんとかシステム (世界で一つだけのマネージャー) 一括処理
Entity Component Systemの場合 一回のメモリアクセスで取得する なんとか描画システム なんとか当たり判定システム なんとか物理演算システム
Entity Component Systemの場合 処理を各コアに割り振り コア1 コア2 なんとか描画システム コア3 コア4
Burst Compiler データレイアウトが決まっている事を利用して、 シニアプログラマが頑張って実現するような ネイティブコードを生成する。 データレイアウトはECSがやってくれる。 計算の精度を下げてパフォーマンスを上げる事も。 2019.2 • リリース(予定) • 全プラットフォーム対応(予定)
Burst Compiler Core1 float4 += float4 float4 += float4 float4 += float4 float4 += float4 float4 += float4 float4 += float4 float4 += float4 float4 += float4 Core2 float4 += float4 float4 += float4 float4 += float4 float4 += float4 Core3 float4 float4 += float4 float4 += float4 output1 [0] float4 += float4 output2 [1] output3 [2] output4 [3] output1 += input1 output2 += input2 output3 += input3 output4 += input4 float4 += float4 float4 += float4 Core4 float4 += float4 float4 += float4 float4 += float4 float4 += float4
Mathライブラリ Shaderライクな算術計算ライブラリ Burstでコンパイル時に顕著に高速化 オープンソースで提供 2018.1 • プレビュー
さよなら.NET 3.5サン…
Script Backend 2018.3 • IL2CPPサイズの改良 • .NET 4.x、C#7.2系に移行 (3.x系が非推奨化) • Roslyn 2019.1 • インクリメンタルGC • IL2CPP構築速度の改善
IL2CPP debugger IL2CPPバックエンドでC#ので バッグが可能に • 2018.2 • 導入 2019.1 .NET Backend終了
Memory Profiler改良 メモリがどのように使用されているのかを もっと直感的に把握する より詳細な情報の確認も可能に 2018.3 • プレビュー
Physics Update 2018.3 • Upgrade PhysX 3.4 (より安定かつ高速で動作) • 複数のWorldsに対応 • C# Job queriesサポート
Video Player 2018.3 • テクスチャ更新の処理時間を メインスレッドから排除 • 動画の再生速度変化に音声が対応 2019.1 • H.265 playback サポート H.265
新しいインプットシステム ゲームのフレームレートに因らない新しい入力システム メモリに対するダイレクトマップ 実行時に設定を変更可能 2019.1 • テンプレートによる管理 • アクションマップ & セット • アクションバインディング • コンビネーション • プロセッサー
Async Upload Pipeline強化 Async Upload Pipelineに メッシュが追加 初期設定を変更して ロードを高速化 2018.3 • メッシュ対応 • 設定を更新
Texture Mipmap Streaming 必要なミップマップのみを ロードする機能 初期ロードのコストを削減 メモリとロードコスト予算内での メモリ管理 2018.2 • 導入
表現
Scriptable Render Pipeline レンダリングのステージを 独自にカスタマイズ 2018.2 • バッチング最適化 2019.1 • リリース
ライト ウェイト レンダー パイプライン モバイルGPUやVR向け (LWRP) 軽量なレンダラー 2018.3 • カスタムレンダラー • カスタムレンダーパスの 差し込み 2019.1 • プレビューが外れる(予定) • ドキュメントがんばる(予定)
HDレンダーパイプライン
2018.3 HDレンダーパイプライン 2019.1 Increase volumetric quality and performance Stacklit shader Screen Space Reflections Hair shader Improve shadow atlas / budget / control Improved VFX graph support Improve quality of Contact Shadow Reflection system TerrainLit shader & Fabric shader Improved Shadows AxF shader (requires automotive package) Specular anti-aliasing / Normal filtering Preliminary support of LightLayers HD Post-processing More debug modes VR Support Planar reflection MSAA (forward only) Preliminary Visual Effects Graph support Decal improvement with per channel selection mask
Visual Effect Graph 次世代ビジュアルエフェクト GPUベースで動作 • 2018.3 • プレビューリリース • 2019.1 • リボントレイル対応
Particle System と Visual Effect Graph Particle Visual Effect Graph CPU GPU 適正パーティクル数 1000 particles 10,000,000 particles シミュレーション simple complex 接触の表現 物理演算ベース 擬似的な表現 接触判定のゲーム反映 あり なし 動きの計算
Shader Graph SRP向けのノードベースのシェーダーエディター シェーダーでできる表現を身近に。 2018.1 • プレビュー 2018.2 • 頂点アニメーション対応 2019.2 • プレビューが外れる(予定)
Progressive Lightmapping ライトベイクの結果をすばやく確認できるライトマッパー 2018.2 • ライト減衰設定 2018.3 • CPU 最適化 • Spatially coherent packing
Progressive Lightmapping GPU対応したことでライトのベイクが爆速に 2018.3 • GPUアクセラレーション対応 (Windowsのみ) 2019.1 • ライトマップの最大数を指定 • GPUアクセラレーション対応 (Mac & Linux)
Recorder AnimationClipや連番画像、動画を録画 2018.2 • ツール体験の改善 • 設定のプリセット保存が可能に • スクリプトからの録画が可能に • 複数のレコーディングが同時可能に
Text Mesh Pro ズームしてもキレイな SDFベースのフォントシステム 2018.3 • ハイブリット ダイナミック SDFフォント 2019.3 • 合字に対応 合字:複数の文字を合成して一文字にしたもの
Animation改善 もっと高品質なモデルを使えるように 2018.3 • Animatorのパフォーマンスが 10~20%良くなる • GPUスキニングが最適化 動作しなかったプラットフォームにも対応 2019.1 • ランタイムリギング • 標準32ボーンに対応(最大255)
Animation もっと色々な表現ができるように 2018.3 • アニメーションオーサリング • C# Animation System (ECSにも対応) 2019.x • Kinematica ポーズベースのアニメーション
Terrain改善 Terrain大改善 2018.3 • 複数のタイルで構成するタイプに変更 • タイル間のペイントをシームレスに • カスタムブラシ 2019.1 • Terrainの穴表現
Terrain改善 Terrain大改善 2018.3 • スクリプトでカスタマイズ • GPU Resources (Hightmap, splat maps) • APIの追加 • 独自GPU操作 • スタンプツール
Terrain改善 CPU quadtree meshes heightmap render GPU quadtree meshes CPU quadtree instances static meshes GPU painting splatmap heightmap painting splatmap blend / upload blend / upload textures render heightmap textures painting render splatmap blend textures
Terrain改善 CPU Terrain大改善 2018.3 • heightmapをGPUベースに • DrawCallの大幅な削減(1/100なレベル) • 地形のカリング効率化 • CPUパフォーマンス2倍 • GCが1/30 • GPU Instancingを駆使して描画 GPU CPU quadtree instances static meshes GPU render heightmap painting splatmap blend textures
ProBuilder / PolyBrush Unity上でモデリングするツール群 2018.1 • ProBuilder、PackageManagerに統合 (旧版はAssetStoreから入手) 2018.3 • PolyBrush、PackageManagerに統合予定
Tile map タイルマップ 2018.2 • ヘクサタイル 2018.3 • 斜めタイル
Sprite Shape Sprite Shape 曲線で変形できるマップ 2018.1 • 導入 2019.1 • 当たり判定生成周りの改善
2D Animation 2D向けボーンベースのアニメーション (旧名 Anima2D) スプライトの変形やIK処理などが可能 2018.1 • 導入 2018.3 • マルチスプライト対応
SVG importer SVG対応 ズームしてもクッキリした絵が、メモリ的 に低コストで出せる 2018.2 • プレビュー
SVG importer 動的に生成することもできる
ピクセルパーフェクトカメラ 解像度が異なるディスプレイで ピクセルパーフェクトな スプライト表現 2018.2 • 導入
2D Light & Shadow 2D向けライティング処理 2019.1 • Shape Based Light • Point Light • Spot Light
プラットフォーム
Mobile 2017.4 LTS • Android 64bit対応 2018.3 • Android App Bundles 対応 • Dynamic Resolution for Mobile • Android Runtime Permissions • OpenJDK インストール ARM 64-bit
Mobile 2019.1 対応するAndroid SDK & NDKの自動インストール Android Logcatのインテグレーション セーフエリア/ノッチ対応 for Android Vulkanの最適化 Local Shader Keywords Android Wide Color support OpenGL ES 3.2
XR 2018.3 • XR Performance Testing Toolkit • Core Haptics API • Daydreamコントローラーのネイティブ対応 2019.1 • HDRP対応 2019.2 • マルチプラットフォームXR Input System • Stereo Compositor Layer • Single Pass Rendering for DX12
AR Foundation ARKit もしくはAR Coreを使用する マルチプラットフォームAR環境 2019.1+ • ARテンプレートの追加 • LWRP対応 • エディターリモート対応 • AR Kit 2.0とAR Core 1.5で表現できる 機能と同等の機能を提供(予定)
WebGL 2018.2 • WebAssembly標準対応 2019.1 • マルチスレッド対応(予定)
Project Tiny 100KB~5MBくらいのコンパクトなゲームをビルドする モバイルゲーム広告や小さなデバイス等 幅広いモバイルブラウザ環境でちゃんと動く ロード時間とアプリサイズに特に優れる 2D HTML5、そのうち3DやAR等に対応 ECSベース 2018年12月 • パッケージ提供開始(予定)
まとめ Q : Unity 2018-2019で何がどうなった? A: •より高度な事が実現できるようになる •より柔軟に開発を行えるようになる •より高速で動作するようになる
最新情報をUnityブログで公開
おわり