見出し画像

【日本語解説】Unity 技術ロードマップ 2020 (第2回) ~「クリエイティブワークフロー」について~

前回記事。


2020年3月26日に公開された動画「Unity Roadmap 2020: Core Engine & Creator Tools」の内容を翻訳し、Unityが「過去」「現在」「未来」に向けてどのような開発をしているか、その理由なども含めを日本語解説する記事の2回目です。

本記事では、動画内の4項目のうち「クリエイティブワークフロー(Creative workflows)」について説明しています。

なお、プレゼンテーションスライドが英語なので、見にくく感じる部分もあるかもしれませんが、その場合は各セクションの「要約」だけを追いかけても把握できるように努めます。

それではどうぞ。


「クリエイティブワークフロー」の指針(指導原則)

スライド30

私たちの「クリエイティブワークフロー」における指針(指導原則)について説明します。

それは「ユーザーの皆さんがアイデアから実現までの時間を短縮できる、ツールやワークフローを開発・構築すること」です。


2Dプロジェクト

要約
・これまでも、現在も、そしてこれからもUnityは世界クラスの2Dクリエイションツールを提供していきます
・また、2Dプロジェクトのための適切なテンプレートの提供など、ワークフローを改善することも視野に入れて開発を進めています

スライド31

最初のトピックは「2Dプロジェクト」です。基礎的な機能群、ワールドビルディング機能、アニメーション、グラフィックス、そしてPhysicsを網羅した、世界クラスの2Dツールを2Dクリエイターの皆さんに提供することをミッションとしています。

これまでUnityは、Unity 4.3から2Dツールを本格的に提供し始め、時代が進むにつれTile Mapperや環境を構築できるツールを開発し、そして2Dキャラクター機能などを増やしてきました。


スライド33


それでは、これまでリリースしたしたものを見てみましょう。

伝統的・体系的なスタイルの2Dゲームのために、様々なグリッドのタイルマップとスプライト形状であらゆるスタイルの世界構築をサポートするようにしました。

特にアニメーション用にレイヤー化されたPSDファイルをサポートするために、PhotoshopからUnityへのワークフロー開発に注力しました。またカメラについては、cinemachineにてピクセルパーフェクトのレンダリングをサポートするようにしました。


スライド34

Pre-releaseでは、2Dプロジェクトの開発向けに適切な設定を含むデフォルトテンプレートにすべての2Dパッケージをまとめることで、2Dプロジェクトのためのワークフローを改善することを目指しています。

私たちは、2Dレンダリングパフォーマンスを伸ばし、標準的な2DのLightsとShadowのセカンダリテクスチャとシェーダーをサポートして、2Dに最適なレンダリングパイプラインをUniversal Render Pipeline(URP)を整備してまいります。


スライド35

今後は安定性を重視し、ワークフローをさらに改善していきます。

皆さんのプロジェクトや達成したいゴールのために、Unityの2Dツールがより一層強力なものに成長していくようにしたいと考えています。


スライド36

Unityは、開発者の皆さんがUnityを使って「オリとくらやみの森(Ori and the Will of the Wisps)」のようなAAA級の2Dゲームを作れるよう、様々な2D機能の開発に真剣に取り組んでいます。

また、現在の機能になるまで過去数年に渡って、皆さんからフィードバックをいただいたことに感謝しています。


プログラミング

要約
・Unityはプログラマーとノンプログラマーの両者のために、コーディングワークフローの革命を作りたいと思っています
・これまでにプレビューやビルド時間の短縮、Burstコンパイラの機能拡充(対応プラットフォーム追加、デバッガ対応など)をしてまいりました
・現在ビジュアルスクリプティングエディタを開発中で、便利なノードライブラリを備えた直感的なGUIによるスクリプト作成やデバッグを行える開発環境の実現を目指しています

スライド37

次は「プログラミング」。

ここでのミッションは、プログラマーとノンプログラマーの両者のために、コーディングワークフローの革命を起こすことです。

Unityの中でもプログラミングの歴史は長く紡がれてきましたが、最近ではDOTSやECSなど、Unityでできることの幅を広げる様々なテクノロジーも増えてきました。


スライド39

最近リリースされたものをご紹介します。

イテレーション時間を短縮するためのプレイモードを追加しました。Preferenceにアクセスすると、プレイ中にスクリプト変更を更新するか否かのオプションがあります。

また、新しいBurstコンパイラの対応プラットフォームを追加しました。


スライド40

Pre-releaseでは、Burstコンパイラを進化させ、ネイティブデバッグ機能を追加しています。UnityのネイティブDebuggerを使用して、ブレークポイントを設定してスキップすることなどができるようになりました。また、コールスタック、変数、オート、スレッドを確認することもできます。


スライド41

現在開発中のビジュアルスクリプティングエディタはノンプログラマー向けであり、C#の知識がなくてもUnityスクリプトを作成することができます。

包括的で拡張可能なノードライブラリを備えた直感的なGUIにより、スクリプトの作成やデバッグを簡単に行うことができます。

また、コード変更によるビルド時間短縮を実現しています。


スライド42

これまでのUnityの実行環境で開発を行っている方から、ECSやBurstを使って新しいテクノロジースタック・DOTSを探究している方まで、あらゆるプログラマーの皆さんへの対応を真剣に行っております。


エディタの進化

要約
・Unity 2019.3から、フラットなデザインと高解像度ディスプレイサポートを備えた新エディタテーマを実装しました
・すべての環境設定とプロジェクト設定は、統合ウインドウからアクセスできるようになりました
・ショートカットマネージャーで作業方法をカスタマイズできるようにしました
・シーンプレハブや他のアセットを互いに独立して開くための新しい方法など、新しいワークフローも開発中で、今後もより使いやすい開発環境を整えていきます

スライド43

次は「エディタの進化」です。

ここでのミッションは、ワークフローの小さな不満に対処し、新しいワークフローによるパラダイムをもたらし、ルック&フィールを向上させることです。


スライド45

まずUnity 2019.3から、フラットなデザインと高解像度ディスプレイへのより良いサポートを備えた新エディタテーマを実装しました。

また、すべての環境設定とプロジェクト設定ができるようにウィンドウを統合し、ショートカットマネージャーを追加して、作業方法をカスタマイズできるようにしました。


スライド46

Pre-releaseでは、エディタ全体のパフォーマンスが大幅に改善されました。

これにより、中断時間が少なくなり、大規模プロジェクトのサポートが向上し、作業中のUnityの動作を簡単に調整できるようになりました。

スライド47

このモードでは、Prefabインスタンスのコンテキストをシーンビューで見ることができますが、インスタンスを編集している時は編集用にロックされています。


スライド48

そして、さらなる新しいワークフローも現在開発中です。

新しいマルチドキュメントワークフローの一部として、シーンプレハブや他のアセットを互いに独立して開くための新しい方法を構築しています。

これにより、タスクのコンテキストを作成したり、作業環境をより管理しやすいスペースに分割したりするためのワークスペースが提供されます。

また、パネルの動きやアクセシビリティの向上も実現します。


スライド49

このように、Unityの外観や使用感、インタラクションへの対応など、すべての面でUnityは改良を重ね続けています。


日々の開発作業のクオリティアップ

要約
・日々の開発作業のクオリティアップのため、ワークフロー改善に努めています
・皆さんのご要望も踏まえ、Hierarchyインスペクタの改善などを中心に取り組んでおり、たくさんの成果を見ていただけます(GameObjectやプロパティのコピー&ペースト、Hierarchy内でのカット&ペースト、シーンビューでのフレーミング、MeshテクスチャやCubeMap配列のインスペクタプレビューの改善など)

スライド50

次は「日々の開発作業のクオリティアップ(Quality of life improvements)」について。

ここでのミッションは、日々のワークフローを改善するために小さな改善をできるだけ多く積み重ねていくことです。

これまでも長い間、問題個所の修正のためぶいくつかの小さな作業を続けて行ってきました。これはHierarchyインスペクタの改善とも言えることであり、Unityの使い勝手に関して皆さんからのリクエストをたくさんいただいております。


スライド52

そのため、UnityのPre-releaseバージョンでは、Hierarchyインスペクタやシーンの改善など、多くのアップデートをすでに確認することができます。

これらには、GameObjectやプロパティのコピー&ペースト、Hierarchy内でのカット&ペースト、シーンビューでのフレーミングの改善、MeshテクスチャやCubeMap配列のインスペクタプレビューの改善などがあります。


スライド53

今後の開発でも、皆さんと幅広くコミュニケーションをし、より多くの改善点を定期的に整理し、2020年以降も継続して改良していきます。

皆さんの要望で現在着手しているものは、リオーダリング可能な配列(Array)、Hierarchy内でのアクティブな親オブジェクト、リペアレントのためのUX、Hierarchy内でのフォルダ構成です。


スライド54

これまでにTwitterやRedditなどでご意見をお寄せいただいた皆さんに感謝します。


アニメーション

要約
・アニメーション編集・再生するためのランタイムツールを開発し続けています
・これまで、Timelineを使ってイベントを作成・管理するためのシンプルなビジュアルインターフェースをリリースしました
・Animationリギング、キーフレーム・ランタイム・リグ、Kinematicaなどのツール類を活用して効率的に制作を進めることもできます
・将来的にはアニメーションシステムをDOTS上で構築し、その上に各種ツールを載せていく予定です

スライド55

次は「Animation」です。

ここでは、アニメーション編集・再生するためのランタイムツールをUnityで提供することをミッションとしています。

アニメーションの分野では、Kinematica(=機械学習によるアニメーションシステム)やAnimationリギングなどの新しいツールが並行して開発されています。

また同時に、DOTSアニメーションのための低レベルのシステムも構築しており、そのシステム上に様々なツールを載せていく予定です。


スライド57

これまで、アーティストやデザイナーがTimelineを使ってイベントを作成・管理するためのシンプルなビジュアルインターフェースをリリースしました。

任意のトラックにシグナルやマーカーを追加して、数回のクリックでイベントが発生するタイミングを正確に定義することができます。


スライド58

Pre-releaseでは、2つのDOTSアニメーションにフォーカスを移す前に、現状のテクノロジーで制作をされているアニメーターの皆さんのワークフロー改善のために、便利なアニメーションツールセットを展開したいと考えていました。

Animationリギング、キーフレーム・ランタイム・リグ、Kinematicaを使えば、これまで以上に効率的な制作が可能になります。


スライド59

現在開発中の新しいDOTSアニメーションシステムは、柔軟なパフォーマンスと使いやすさを兼ね備えています。

システムは完全にスクリプト化されており、単純なアニメーションからAAA級で必要とされるパイプラインまで、様々なユースケースに適応できるように構築されています。

DOTSアニメーションのコアを固めた後、制作を容易にするツールを追加し、アニメーションアーティスト自身がUnity上で作業できるようにします。

Animation Graphsや階層化されたState Machineのような直感的なワークフローにより、アニメーションシステムの複雑さを軽減することを目指します。

また、 TimelineやKinematicaのような既存の必須ツールをDOTSにも実装し、アーティストが今と同じように使ってもより高いパフォーマンスが出るようにします。


スライド60

今後も既存の技術を活用し、ロバストで機能的に充実したものにした上で、DOTSアニメーション、DOTS Animation Graph、DOTS Animation State Machine、DOTS Timelineなどの新システムにも並行して取り組んでいきます。

ライティング

要約
・Unityは最高のライティングを効率的かつ簡単に作成できる環境を提供したいと考えています
・機能や性能向上を重ねたGPUライトマッパーは、皆さんの開発作業やライティング品質を大きく変化させる「ゲームチェンジャー」になりますので、ぜひ活用してください
・Lighting Settings Assetというシーン全体でのライティング設定を持つアセットで、他のプロジェクトでライティング設定の再利用もできるようになりました

スライド61

次は「ライティング」です。

ここでのミッションは、皆さんのゲームプロジェクトにおいて最高のライティングを効率的かつ簡単に作成できるようにすることです。

ユーザビリティ、安定性(stability)、品質(quality)、そしてGPUライトマッパーによる大きなアドバンテージ、さらには堅牢で高品質なベイクを実現できることこそ、ライティングの本質すべてと言えるでしょう。


スライド63

Unity 2019.3では、プリコンピューティング・ライティングのHDRPサポートを大幅に改善しました。

スポットライトが改善され、新しいBox/Pyramidライトシェイプがライティングツールボックスに追加されました。

また、多くのライトを使用するシーンのパフォーマンスも大幅に改善されています。プレビュー用の露出の改善や、ライティングが難しいシーンでの画質向上のための設定など、ライトプローブの使い勝手も向上しました。


スライド64

Unity 2020.1では、ライティングのユーザービリティが大幅に改善されています。

Lighting Settings Assetを作成することができるようになりが、シーン全体でのライティング設定をこのアセットを用いて再利用できるようになりました。

Overlap Free Packing(オーバーラップのないパッキング)と新しいScene Viewモード(自分の設置アップを確認できるようになる)が追加され、ライティング結果をより簡単に得ることができるようになりました。

パフォーマンスと品質も改善され、Cookie/IESライトエミッターのサポートや、より多くのGPUライトマッパー機能が追加されました。


スライド65

開発中のGPUライトマッパーは、プロダクションレベルのライティングに掛かるベイキングの反復時間を大幅に短縮させます。

また、大きな飛躍的なユーザビリティの向上として、シーンに依存しないプリセットを提供することで、ライティング設定を非常に簡単にすることです。


スライド66

要約すると、UnityをGPUライトマッパーをProduction Readyにすることに重点を置いてきました。GPUライトマッパーは、皆さんの開発作業やライティング品質を大きく変化させる「ゲームチェンジャー」になると思います。

HDRPがプレビューが外れていく過程においても、Unityは高度なライトシェイプのサポート、Cookie/IES ライティングのパッケージ組み込みなど、HDRPとの互換性の改善を行いました。

そして最後に、ユーザビリティが大幅に改善しました。露出コントロールを使って、ベイクされたアセットをエディターでプレビューすることがより簡単になりました。

加算ロードを使ったワークフローのために、シーン間でライティング設定を共有できるようになりました。それらは単なるアセットなので、他のプロジェクトで再利用することもできます。

Unityはすぐに使えるライティングプリセットを提供してまいりますので、今後は皆さん自身が作品のために適切なライティングを得るために調整する設定が大幅に少なくなると思います。


ワールド構築

要約
・ProBuilderとPolyBrushといったUnity内で3Dメッシュオーサリングができるツール群が増えたことで、Unity内でワールド構築する部分が増えてきました
・今後は、ワールド構築で行う操作をより効率的に行える改善を進めていきます
・また、非破壊的なレイヤーベースのワークフローを持つC#ベースの新しい環境(Environment)システムの開発にも取り組んでおり、Unity社内のデモ制作チームはこの機能を使って大規模なオープン・ワールドゲームを開発(検証)中です

スライド67

次は「ワールド構築」です。

ここでのミッションは、堅牢な統一的な基礎的機能を生み出し、次世代の3Dワールド構築ツールを開発することによって、デザイナーやアーティストの皆さんの力になることです。


スライド69

それでは、リリースされたものを見てみましょう。

ProBuilderとPolyBrushといったUnity内の3Dメッシュオーサリングツールは、レベルデザイナーやアーティストの皆さんの作業効率を加速させました。

地形(terrain)オーサリングを直ちに改善するために、新しいスカルプト ツールと、面倒な作業を自動化するためのユーティリティなどを含んだ地形(terrain)ツールのパッケージを作成しました。

また、より高度なオーサリング機能へ移行する前にUnityエディタを改良し、シーンの可視性、シーンロック、グリッドの改良など、操作性の改善してワールド構築のためのより良い環境を整えました。


スライド70

Pre-releaseでは、Unityのさまざまなワールド構築ツールをナビゲートする際に、シームレスな体験を実現したいと考えています。

今後は皆さんが使い方を一度学習すれば、そのパターンや動作はすべての機能で一貫した使い方になる予定です。

Prefabを操作することと同様にUnity全体で共有するための基礎APIを構築してしております。


スライド71

今後はこれらのワールド構築の操作・開発方法が、より効率的で直感的なものにする必要があると考えています。

そこで、皆さんが一日に何百回も使っている選択操作、配置グリッドやウィンドウツールを改善していきます。

また、非破壊的なレイヤーベースのワークフローを持つC#ベースの新しい環境(Environment)システムにも取り組んでいます。

その後、ProBuilderとPolyBrushにさらに高度な機能を追加して、Unityで一般的なモデリングのニーズに対応できるようにする予定です。


スライド72

ということで、ProBuilderやPolyBrushのような主要なツールをたくさん追加して、Unityのシーン内でメッシュを使った作業ができるようにしました。

そして、シーンビュー自体の中で配置やワールド構築の作業をより強固なものにするために、シーンの可視性を確保するシーンロックなどの作業を行いました。

今後は、プレハブのハンドルとProBuilderの次期バージョンが用意されていますが、将来的には新しい環境(Environment)システムに重点的に取り組んでいます。これはレイヤーベースのシステムで、大規模な環境で大規模なチームでの作業を可能にします。Unity内ののサンプルゲーム制作チームがこれを使って大規模なオープン・ワールドゲームを開発中です。


スライド74

もう一つの興味深いものとしては、Unified splines and Brushes(統一スプラインとブラシ)です。

これは皆さんが要望されている機能で、ゲームオブジェクトメニューからスプラインを作成して、ポイントをプロットすることができます。こちらもご期待ください。


ビジュアルエフェクト(Visual Effects)

要約
・Unity 2019.3からVFX Graph(Ver7.2以降)はプレビューが外れました
・VFX Graph内でShader Graph向けシェーダーを取り扱えるようになるなど、VFX GraphとShader Graphの初期統合の時期でもあります
・今後は安定化とバグ修正に重点を置きつつ、エフェクトシステムの拡張性の向上にも取り組み、グラフベースの強力のビジュアルツールへの発展を目指していきます

スライド75

次は「ビジュアルエフェクト(Visual Effects)」です。

ここでのミッションは、コードを書かなくてもシェーダーやリアルタイムVFXを作成できることです。

Unityは、パーティクル エフェクトからビジュアライゼーション、そしてシェーダーまでをグラフベースのツールで作成できるようにしており、それぞれで相互に連携させて拡張性を持たせるようにしています。


スライド77

すでにUnity 2019.3とVisual Effect Graph(VFX Graph)のバージョン7.2において、VFX Graphはプレビューが外れました。これは、機能の安定性とプラットフォームのサポートを保証することを意味します。

既存のプロジェクトのデータやコードを次バージョン以降のVFX Graphへ安全に移行することができ、今後もこれらの機能を開発し、拡張していきます。

また、現在はVFX GraphとShader Graphの初期統合をした時期でもあり、VFX Graph内でShader Graph向けシェーダーを取り扱うことができます。


スライド78

Pre-releaseでは、安定化とバグ修正に重点を置いて、皆様からのフィードバックに取り組んでいます。

大きなハイライトは、Unity 2020.1の時点で、シェーダーのロード時間を約50%短縮したことです。


スライド79

今後は、これらの機能のためのパブリックなC# APIを提供することを目標に、エフェクトシステムの拡張性の向上に取り組んでいきます。


スライド80

以上の機能を統合することで、ロードタイムの課題、機能のインテグレーション、そしてもちろん安定化とバグ修正のようなことに取り組むことができます。

Unityは、これがビジュアルエフェクトを作成するための非常に強力な機能セットになると考えています。

将来的には拡張性もしっかり見据えているので、ビジュアルスクリプトやアニメーションのような他のグラフツールを統合することもできるでしょう。


UI開発

要約
・UnityでUI開発する新しい流れとしては、初期段階は(Unity 2019.1でリリースされた)UI Elementsから始まり、現在はUI Builderと呼ばれるビジュアルオーサリングツールを開発しています(Previewリリース中)
・今後は、リッチでダイナミックなUIを構築するための高度なCSS機能や、ベクターグラフィックスのサポートにより、テクスチャに頼ることなく異なる画面解像度やワールドスペース(空間)でも見栄えのするUIを作れることを目指します


スライド81

「UI開発」に関する動きを見ていきましょう。

ここでのミッションは、Unity EditorやビルドしたアプリケーションのUIを設計・開発するための統一されたフレームワークを提供することです。

現在UnityはUI Elementsのフレームワーク開発に取り組んでおり、そのフレームワーク上にUIアーティストやデザイナーが扱えるUI Builderと呼ばれるビジュアルオーサリングツールを構築しようとしています。


スライド83

これまでにリリースしたものは、何をいつ描画するかをシステムに最適化させることで複雑でパフォーマンスの高いUIを可能にする、新しいリテインドモード(retained mode)APIです。

また、UIの階層構造やスタイリングを機能(functionality)から切り離すことができるようになるので、デザイナーとプログラマーの両方にとって、関心事の分離がしやすくなり、より親しみやすいUIオーサリングが可能になります。

UXMLアセットを使用してUI階層構造やスタイルシート、レイアウトルールを定義することで、プロジェクト内やプロジェクト間でのコラボレーションや再利用が可能です。


スライド84

Pre-releaseでは、UI Builderが親しみやすいUIオーサリング環境を提供します。

UIツールキットの豊富な機能セットに簡単にアクセスでき、迅速な検証と反復を可能にし、効率的な導入プロセスを実現します。

既存の機能を活用して、Unityがサポートしているすべてのターゲットプラットフォーム用のスクリーンスペースUIを構築することが可能になります。


スライド85

今後は、トランジション、アニメーション、グラデーション、フィルターなどのリッチでダイナミックなユーザーインターフェースを構築するために、より高度なCSS機能のサポートを追加しています。

ベクターグラフィックスのサポートと組み合わせることで、テクスチャに頼ることなく、異なる画面解像度やワールドスペース(空間)でも見栄えのするUIを作ることが可能になります。


スライド86

初期はUI Elementsでエディタ拡張のためのツールキットを構築し、その後UI Builderと呼ばれるツールを開発しました。さらに、アニメーションのベクターグラフィックやUI構築をする際に必要な機能を追加しています。


より洗練されたデザイン&開発手法(Smart Design and Creation)

要約
・AIや機械学習が普及した昨今、UnityもAIを活用してPBR素材を作る「ArtEngine」や、クラウド上で何百万ものゲームプレイをシミュレーション「Unity Game Simulation」などを開発しています
・ML-Agentsも改良が進み、NPCの動作制御、テストの自動化、設計決定を評価するための利用など、様々な用途で活用できるようになっています
・Unityは、大きなプロジェクトを作ることで直面する「作業面での負荷」や「費用面でのオーバーヘッド」の両方を認識しており、(ここで紹介する)より洗練されたデザイン&開発手法によって、開発スタジオが抱える重圧を少しでも取り除きたいと考えています

スライド87

次は「より洗練されたデザイン&開発手法(Smart Design and Creation)」です。

AI、機械学習、自動シミュレーションしてくれるクラウドサービスの力を解き放ち、より効率的な開発とテストをスケール可能な形で実現するというミッションです。

ここでのトピックスは、ゲーム開発者である皆さんが開発現場において常にプレッシャーの日々を送っていることを私たちUnityは知っている・・・ということです。

それが大規模なオープンワールドのモデル用のテクスチャコンテンツであろうと、何千、何千ものデバイスでゲームをテストすることであろうと、AIがよりリアルで面白い世界を作るためのトレーニングエージェントであろうと、Unityは皆さんのそばにいて、ソリューションを提供したいと考えています。


スライド89

さてこれまでに大規模スタジオやエンタープライズスタジオ向けに、クリエイティブAIを活用して実世界のデータを元に超リアルなPBR素材を作成するコンテンツ作成ツール「ArtEngine」をリリースしました。ArtEngineは、コンテンツ制作に対して急増する需要と限られた制作リソースとのギャップを埋めるものです。


スライド90

現在ベータ版のUnity Game Simulationは、クラウド上で何百万ものゲームプレイをシミュレーションすることで、ゲームバランスをより効率的かつ正確に最適化する新サービスです。

また、リソースの割り当て、インベントリの管理、経路探索などができるインテリジェントなキャラクター(の振る舞い)を自動生成するAI Plannerにも取り組んでいます。

そしてオープンソースのML-Agentsは、ディープラーニングを使用したインテリジェントなエージェントのトレーニングと配備を可能にしました。これらの訓練されたエージェントは、NPCの動作を制御したり、テストを自動化したり、設計決定を評価したりするために使用することができます。


スライド91

開発中のUnity ML-Agents 1.0は、安定したAPIとLTSバージョンのUnityで動作するための徹底したテストに焦点を当て、オープンソースであり続ける予定です。

その一環として、ML-AgentsのC#ツールキットをPackage Managerでパッケージとして提供することに取り組んでいます。

一方で、製品強化とUnityエンジンとの一層の統合を通じて、ArtEngineで培ったAIアシストによるアーティストツールを、個人ユーザーの皆さんにも提供できるよう注力しています。


スライド92

より洗練されたデザイン&開発手法(Smart Design and Creation)のために、Unityの中で様々な取り組みが準備されていることを把握できたかと思います。

Unityは、製品(アート)、テスト、シミュレーションなどの面で、大きなプロジェクトを作ることで直面する「作業面での負荷」や「費用面でのオーバーヘッド」の両方を認識しています。

そして、こうした開発スタジオの重圧を軽減できるようなツールをUnityは構築したいと考えています。


オーディオとビデオ

要約
・拡張性の高いプロフェッショナル品質のオーディオ&ビデオツールセットを提供していきます
・現在、DOTS対応の高性能で拡張性の高いA/Vスタックの基盤を構築中で、この基盤上にDSP Graphや開発者向けAPI、メディアレイヤーなどを載せていきます
・最大8Kビデオのサポートや、イメージシーケンスやProResなど様々なビデオニーズに対応したエクスポートも準備中です

スライド93

次は「オーディオとビデオ」です。

ここでのミッションは、様々なユーザーが使える拡張性の高いプロフェッショナル品質のオーディオ&ビデオツールセットを作ることです。


スライド95

これまでにオーディオとビデオのツールセットをリリースし、オーディオの再生とミキシング、ビデオの再生とオフラインレコーダーをエディタ内で使用できるようにしました。


スライド96

Pre-releaseでは、高度に最適化されたDOTS対応の新機能を含む、高性能で拡張性の高いA/Vスタックの基盤を構築しています。また、DOTS用の新しい低レベル層レンダリングエンジンであるDSP Graphを強化しています。

またRecorderは、プログラムによる制御や外部ビデオコーデックのサポートを可能にするためのAPIを公開しています。


スライド97

今後はこの基盤の上に、高レベル層開発者向けAPIとフロントエンドツールを支える統一メディアレイヤーを構築しています。

HDRPは、クロマキーイング、3D世界でのビデオプレートの挿入、レイヤーごとの合成を可能にする合成フレームワークを追加します。

Recorderは高品質のビデオをすぐに書き出すことができ、イメージシーケンスなどを可能にします。


スライド98

最大8Kビデオのサポートや、イメージシーケンスやProResなど様々なビデオニーズに対応したエクスポート、オーディオ側ではDSP Graphを構築中です。

これらは非常に拡張性が高く、ハイパフォーマンスを可能にするように設計されており、DOTS AudioとDOTS Mediaと関連付けられています。

このDOTS Audio、DOTS Mediaといった新しいフレームワークは、カスタムDSPエフェクト、変更可能なオーディオレンダラー、様々なコーデックやファイルフォーマット、デバイスなどをサポートしています。

このように、必要に応じてあらゆる種類のミキシングを可能にする、非常に総合的な機能スタックにしていきたいと思っています。


カメラ機能

要約
・カメラ機能はCinemachineで進化を遂げています(Cinemachineを使ったことがない方はぜひこの機会にお試しください)
・Cinemachineはリニアなストーリーテリングからインタラクティブなゲームプレイまで、また2D・3Dどちらでもお使いいただけます
・今後はDOTSベースのCinemachineも登場予定で、圧倒的パフォーマンスとさらに充実した機能が予定されています

スライド99

そして「カメラ機能」についてです。

ここでのミッションは、シネマティクスとゲームプレイのための汎用性の高いパワフルなダイナミックカメラシステムを作ることです。

ここではCinemachineを深く説明していきます。

Cinemachineはプロシージャルなカメラシステムで、映画作品やゲームプレイで利用でき、キーフレーミングやアニメーションのハードコーディングをしなくても、あらゆる種類のカメラの動きを作ることができる汎用性と柔軟性を持っています。

今後はCinemachineをより安定したもの、より信頼性の高いもの、よりパフォーマンスの高いものにして、さらにはDOTSと融合させていく予定です。


スライド101

すでにリアルタイムで調整可能な様々なリグを使ってカメラの動きやビヘイビアを作ることができるアーティスト向けツールセットを作りました。

2Dでも3Dでも、またTimelineとポストプロセッシング、そして用途の面でもリニアなストーリーテリングからインタラクティブなゲームプレイまで、どのような場面でもプラグイン感覚でお使いいただけます。


スライド102

現在、Cinemachineは検証済み(verified)パッケージを目指しています。つまり、Cinemachineを現在のバージョンで広範囲にテストしたことを意味するので、ほとんどのユースケースで十分にお使いいただけるはずです。

Cinemachineはプロダクションレベルで広く長く使われており、その安定性と有用性には高い信頼を持っています。


スライド103

開発中のCinemachine for DOTSは、Cinemachineを完全に書き換えたもので、まだ開発の初期段階ではありますが、機能的には同等のものに近づいています。

これには、ダイナミックカメラの選択機能を強化するための新しいシステムも含まれています。(何千、何千ものカメラを使っても、基本的にはパフォーマンスには全く影響を与えません)


スライド104

Chinemachineのバージョン2.4では、HDRPと2D Pixel Perfectのバーチャルカメラカメラのサポートをしました。

バージョン2.5ではUnity 2020.1での動作確認を行っています。

そしてバージョン2.6では、フレームリコンポーザー(Frame recomposer)のようなエキサイティングな新機能が搭載されます。これにより、アニメーションのパスとは別にカメラのパンとチルトを調整できるようになり、非常に柔軟性が増します。

また、開発中のCinemachine for DOTSには、以前のバージョンと同等の機能を備えるだけでなく、バーチャルディレクター(Virtual Director - その場面に対して最適なカメラを動的に選択する機能)やストーリーマネージャー(Story Manager - 最重要な場面を動的に選択する機能)などの新機能が追加されます。これらについては近日中に詳しくご紹介します。

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!

最後までお読みいただきありがとうございます。ぜひTwitterもフォローしてください。