2019 年の TECH ストリームにおける最初のリリースとなる、Unity 2019.1 がリリースされました。Unity 2019.1 には、Burst コンパイラー、ライトウェイトレンダーパイプライン(LWRP)、シェーダーグラフなど、製品の開発に使える機能が多数盛り込まれています。また、アニメーター、モバイル開発者、グラフィックスの専門家に向けた革新的な機能や、プロジェクトのワークフローの効率化、エディターでのタスクの単純化に役立つ改良も数多く含まれています。これから数週間のうちに、長期サポートバージョンとなる Unity 2018.4 LTS のリリースも予定されています。このバージョンは、リリースが近いプロジェクトを進行中で、製品の開発を安定したバージョンで継続したい方に向けたものとなります。Unity 2019.1 に盛り込まれた新機能、革新的な機能は、合わせて 283 を超えます。本記事の冒頭ではまず各種機能のサマリーを載せ、そのあと主な新機能の詳細に踏み込んでいきます。さっそく Unity 2019.1 をインストールして使ってみたいという方は、ぜひこの記事を読む間にダウンロードしてみてください。下のボタンをクリックしていただくか、Unity Hub からダウンロードしていただけます。
Unity 2018.1 で、スクリプタブルレンダーパイプライン(SRP)とシェーダーグラフをプレビュー版として公開しました。Unity 2019.1 で、ついに「プレビュー版」の文字が外れて製品版となり、LWRP とシェーダーグラフを製品の開発に推奨できる状態となりました。また、アーティスト向け機能としては、GPU ライトマッパー(プレビュー版)の機能やプラットフォームサポートの追加や、HD レンダーパイプライン(HDRP、プレビュー版)とポストプロセッシングスタック(プレビュー版)の多数の改良が盛り込まれました。
GDC で初公開された『The Heretic』。これは Unity の Demo チームが手がけた新しいショートフィルムです。このデモは Unity 2019.1 と Unity のスクリプタブルレンダーパイプライン(SRP)のアーキテクチャを活用して作られました。Unity の HD レンダーパイプライン(HDRP)とそれに組み込まれたポストプロセッシングスタックの最新の実装を使い、Demo チームは、カメラの挙動を本物のカメラに極めて近い形で再現して、映画のような画像をリアルタイムレンダリングで作り出すことに成功しました。
Unity はアーティスト向けツールにも引き続き注力していきます。Unity 2019.1 のリリースでは、ランタイムでのアニメーションリギングが導入されます。この機能の導入により、アニメーションの仕上がりに関わる細部の調整を行いやすくなります。また、オーディオ、ビデオ、DCC、ワールド構築ツールにもそれぞれ改良が加えられました。Timeline のパッケージも検証済みとなり、新しく使用可能となる Timeline の Signal 機能を使えば、Timeline からシーン中のオブジェクトに簡単にアクセスすることができます。
Unity 2019.1 にはモバイルプラットフォーム向けの改良も多数盛り込まれていますが、その中のひとつにアプリを再ビルドせずにパッチをビルドする機能があります。この機能の導入によって、開発中のイテレーションをより高速化することができます。また、Mobile Adaptive Performance(プレビュー版)も搭載されます。これはデバイス温度の変化や、ゲームがランタイムで CPU バウンドと GPU バウンドのどちらになっているかに関する情報を開発者に提供し、モバイルゲーム開発におけるデバッグ作業や開発ワークフローを全体的に改善するものです。加えて、Linux 向けの Unity エディターのプレビュー版も提供されます。
Unity は引き続き、高パフォーマンスでマルチスレッドに対応した Data-Oriented Technology Stack(DOTS)の開発を進めています。Burst コンパイラーは 2019.1 でプレビュー版から正式版になります。また、『Megacity』デモの開発を可能にした DOTS 関連のツールの数々は、こちらのページからダウンロードできます。
Unity の DOTS チームと FPS Sample のグループから来た 2 人のアーティストがたった 2 か月でこの近未来的な市街の景観を作り出しました。また、Havok と提携して開発された Unity の DOTS ベースのプロジェクト向けの完全な物理演算ソリューションも導入されます。その他にも、スタックに表示された任意の関数呼び出しのソースコード中の位置へのリンクがスタックトレースに表示される機能や、テキストベースの検索ツールでコンソールのエントリーを絞り込む機能など、多数の改良が加えられています。それに加えて、新しくインクリメンタルガベージコレクターが実験的な機能として搭載されています。これは既存のガベージコレクターと切り替えて使うことができます。
Unity はランタイムでのパフォーマンス最大化を最重要課題と位置づけていますが、高いパフォーマンスはエディターで作業するときにも同じくらい重要なものです。これが Unity がワークフローの改善に注力し続けている理由です。Shortcut Manager で、インタラクティブで視覚的なインターフェース、およびエディターのホットキーを管理したり、異なるコンテキストにホットキーを割り当てたり、既存のキーバインディングを 1 つのインターフェースで視覚化したりすることが容易にできる API セットを提供します。また、新しい SceneVis コントロールを使えば、ゲーム中でのオブジェクトの見え方を変えることなく、Scene ビューでオブジェクトの表示・非表示をすばやく切り替えることができます。エディターからのドメインリロードを行わずに再生モードに入ったり、エディター拡張に UI 要素を使うことが可能になります。
Unity は TECH ストリームと長期サポート(LTS)ストリームを組み合わせたリリースを行っています。Unity は TECH ストリームと長期サポート(LTS)ストリームを組み合わせたリリースを行っています。2019 年の TECH ストリームからのリリースは、2019.1、2019.2(夏リリース予定)、2019.3(晩秋リリース予定)の 3 回となる見込みです。2019.1 は新しい TECH ストリームでの最初のリリースであり、最新機能にいち早く触れたいユーザー向けのリリースとなっています。LTS リリースには新機能や API の変更または改善は提供されません。2018 系の LTS リリースは、2018 年の TECH リリースを引き継ぐものであり、今後は必要なアップデートや修正のみが提供されます。今年の TECH ストリームのバージョンは 2019.1 から始まる一方で、LTS リリースのバージョンが 2018.4 LTS となっているのはこのためです。LTS ストリームは、しばらく安定したバージョンにとどまってゲームやコンテンツの開発およびリリースを行いたいというユーザー向けのものです。新機能の提供などはありませんが、エンタープライズサポートの顧客の抱える問題や、コンソール機向け SDK/XDK の問題、その他、多数のユーザーがゲームのリリースを行えなくなる可能性がある大きな変更など、コミュニティの広範囲にわたって影響するクラッシュ、レグレッション修正、問題には引き続き対応します。各 LTS ストリームは、2 年間サポートされます。2018.4 LTS は現在テスト中で、2019.1.0 のリリースから数週間後のリリースが見込まれています。本記事の LTS に関する内容をお読みになり、どちらのリリースストリームを選ぶのが適切かをご判断ください。
Mobile Notifications(プレビューパッケージ)
Unity Hub を使用した Android SDK および NDK のインストール
Scripts Only Build を使用した Android へのパッチ適用によるイテレーションの高速化
PlayStation 4 におけるコマンドバッファーの連鎖と連結
ユニバーサル Windows プラットフォーム(UWP)による ARM64 のサポート
ディスプレイ解像度ダイアログ(Screen Selector)
Data-Oriented Technology Stack(DOTS)
Mobile Notifications プレビューパッケージを使うと、iOS(iOS 10 以降)および Android(4.1 以降)デバイスでローカルの反復通知または 1 回限りの通知を使用して、リテンションメカニクスやタイマーベースのゲームプレイを実装できます。これはパッケージとして提供しています。詳細についてはこちらを参照してください。
Unity 2019.1 から Adaptive Performance のプレビュー版を利用できるようになりました。モバイルデベロッパーにとって最も大きな課題の 1 つは、美しい外観とスムーズな操作感を備えながらも、ハードウェアに過度の負担をかけないゲームの開発です。ハードウェアに過度の負担がかかると、スロットリング(パフォーマンスの低下と不安定化)が発生し、バッテリー寿命が短くなります。バッテリー寿命を延長し、熱を下げることで、より長時間ゲームをプレイできるようになります。長時間ゲームをプレイできれば、ユーザーリテンションが向上し、最終的にゲームをさらに成功させることができます。PC やコンソールとは異なり、モバイルハードウェアを利用するには、慎重にバランスを調整する必要があります。デバイスの機能をフルに使うと、パフォーマンスがすぐに落ちてしまうからです。これらの問題を解決するために、Unity は Samsung と提携し、同社の GameSDK をもとに Adaptive Performance を開発しました。Adaptive Performance は Galaxy S10 や Galaxy Fold 向けのプロジェクトの最適化に利用できます。Adaptive Performance の詳細については、 hこちらを参照してください。
Unity Hub で Android Build Support オプションの一部として、必要なすべての Android 用コンポーネントをインストールできるようになりました。これにより、正しい依存関係を確実に設定でき、他のコンポーネントをインストールする必要がなくなりました。上級 Android ユーザーの方は、今までどおりコンポーネントを手動で設定してインストールしたり、Android Studio を使用したりできます。なお、2018.3 以降、Android Build Support には OpenJDK をベースにした独自の Java Runtime が付属するようになりました。
Android Logcat パッケージは、Unity 2019.1 と互換性がある、Android デバイスから送られるログメッセージを Unity エディターで表示するためのユーティリティです。これを使うと、Unity で直接メッセージを管理してフィルタリングできるため、デバッグが簡単になります。
開発時のイテレーションの実行をより高速化するために、Unity エディターには Scripts Only Build オプションが用意されています。このオプションを使用すると、「Build And Run」を選択したときにビルドプロセスの多くのステップをスキップしてスクリプトのみが再コンパイルされ、最終的なパッケージがビルドされてデプロイされます。この機能が拡張されたため、再ビルドと再デプロイを行う代わりに、ターゲットデバイス上のアプリパッケージ(APK、Android のみ)にパッチを適用できるようになりました。そのため、C# コードのイテレーションを実行すると再コンパイルされたライブラリのみがデバイスに送信されます。Unity で Scripts Only Build を実行するためには、プロジェクトの完全なビルドが利用可能になっている必要があることに注意してください。
AR Foundation を導入すると、Unity 開発者は AR プロジェクトの作成をすぐに開始できます。体験に含める機能を選択できるほか、ビルドを一度実行するだけで、ARKit デバイスと ARCore デバイスの両方にデプロイできます。プレビュー版としてパッケージマネージャーから利用できる AR Foundation は、ARKit と ARCore の低レベル API を統一されたフレームワークにまとめたものです。これには、AR 開発の課題の解決に役立つその他の機能も含まれています。
この機能を使うと、エディターとデバイスの間でデータをやり取りできるため、機能をテストするたびにデバイス向けにビルドする必要がなくなります。これにはセッション記録/再生機能も含まれています。この機能を使うと、デバイス上のセッションを記録してエディターで再生し、アプリケーションのテストを確実に実施したり、ビジュアライゼーションを繰り返し処理したりすることができます。
GitHub で提供しているシーン、プレハブ、ヘルパーコンポーネントのコレクションです。AR Foundation をベースに作成されています。平面のビジュアライゼーション、オブジェクトの配置などをどのように行うかを紹介するためのものです。また、AR Foundation を利用した LWRP の使い方のサンプルも含まれています。開発を始めるのに必要な基礎的な要素がすべて含まれているため、AR プロジェクトをすぐに開始できます。
LWRP での AR Foundation のサポートがプレビューパッケージとして提供され、AR 体験に LWRP を使用できるようになりました。また、本リリースと最新の LWRP 検証済みパッケージでは、Unity が公式にサポートするすべての VR プラットフォーム向けに VR 体験を開発できるように、シェーダーグラフに加えて LWRP のパフォーマンス最適化を利用することができます。LWRP の最新情報については、グラフィックスのセクションを参照してください。
ステレオインスタンシングがターゲットデバイスでサポートされていない場合、ステレオレンダリングは自動的にシングルパス(ダブルワイド)レンダリングにフォールバックします。デバイスのグラフィックス API がステレオインスタンシングをサポートしているかどうかを気にせずに、より効率的なステレオインスタンシングを安全に利用できるようになりました。以前のリリースでは、ステレオレンダリングモードはマルチパスレンダリングにフォールバックしていました。
本リリースと最新のポストプロセッシングパッケージに搭載されています。VR に利用できるすべてのポストプロセッシングエフェクトが、ステレオインスタンシングレンダリングモードに対応しました。
本リリースでは Magic Leap One 向けのビルドがサポートされるようになりました。つまり、特殊な Unity のテクニカルプレビュー版ビルドを使わなくても、本リリースを利用すれば、Magic Leap 向けの開発を行うことができます。
本リリースでは、Unity WebGL のデフォルトの出力形式は WebAssembly です。本リリースでは、Unity WebGL のデフォルトの出力形式は WebAssembly です。また、asm.js はエディター UI から削除されました(2018.3 で廃止予定)。WebGL プレイヤーの設定も更新されました。リンカーターゲットが WebGLLinkerTarget.Wasm に、メモリサイズが 32MB に設定され、どちらもエディター UI から削除されています。ただし、これらの設定は、引き続きエディタースクリプトを使用して変更できます。本リリースでは、実験的な WebAssembly マルチスレッディングも導入しました。詳細については、フォーラムの投稿を参照してください。
Linux エディター(プレビュー版)Linux 向けの Unity エディターのプレビュー版を提供開始しました。最新ビルドは Unity Hub から入手していただくことができます。本リリースで実験的なものからプレビュー版にしたのは、今年末までにフルサポート版を提供することを目指しているためです。本リリースで実験的なものからプレビュー版にしたのは、今年末までにフルサポート版を提供することを目指しているためです。Unity では次の構成のサポートに優先的に取り組んでいます。
最高の開発体験を実現するために、上記のいずれかのサポート対象の構成を使用することをおすすめします。
コンソール機向けの Async Compute(非同期演算)のサポートを強化しました。非同期演算キューをターゲットとするコマンドバッファーに有効なコマンドバッファースクリプト関数(グローバルシェーダーデータを設定する関数や一時的なレンダーターゲットを管理する関数など)の範囲を拡大できるようになりました。また、無効なコマンドバッファースクリプト関数が使用された場合に即時のフィードバックを提供する非同期演算キューをターゲットとするコマンドバッファーのエラー処理を改善しました。これによりデバッグが容易になります。
コマンドバッファーの連鎖と連結機能の導入により、GPU への作業の送信方法を最適化します。特に、以前の方法では GPU のオーバーヘッドが若干生じていたネイティブグラフィックスジョブ向けです。
ARM64 デバイス向けに UWP のサポートを追加しました。ターゲットアーキテクチャに ARM64 を選択し、Windows ベースの ARM64 ラップトップにデプロイするだけです。
ユーザーデータと顧客調査に基づき、本リリースからディスプレイ解像度ダイアログがデフォルトで無効になりました。この設定は本リリースでも「Project Settings」にある「Display Resolution Dialog」ドロップダウンメニューで有効にできます。このメニューは「Player」>「Resolution and Presentation」>「Standalone Player Options」グループにあります。近日中に、ディスプレイ解像度ダイアログの進化に関する詳細な情報を公開する予定です。
2018.1 から導入された Burst コンパイラーは、C# のジョブを担い、ターゲットプラットフォーム用に高度に最適化されたマシンコードを生成する、新しい LLVM ベースのバックエンドコンパイラーテクノロジーです。本リリースでプレビュー版が終了し、運用環境で使用できるようになります。
Burst コンパイラーを使用すれば、手で調整したアセンブリ言語によりパフォーマンスが向上するように、低レベルのコーディングに手間をかける必要がなくなります。引き続き C# でコードを記述できます。引き続き C# でコードを記述できます。
DSPGraph は新しいオーディオレンダリング/ミキシングエンジンで、Unity の C# Job System をベースに構築されています。C# で完全に拡張可能で、Burst コンパイラーと組み合わせて使用できます。Megacity プロジェクトにおいて、DSPGraph は、ネオンサイン、エアコンのファン、車など、分散されている 10 万個の 3D/立体音響の発生源に使用されており、豊かで本物らしいサウンドスケープを作り出しています。
DSPGraph は社内の実験的な API で、今年中にプレビューパッケージとして改良して公開する予定です。これは、(特に)公開予定の Data-Oriented Technology Stack(DOTS)オーディオシステムの基盤となります。Megacity プロジェクトとの関連で DSPGraph に関心をお持ちの場合は、新しくできた Data-Oriented Technology Stack オーディオフォーラムにぜひご参加ください。質問をしたり、オーディオに関するニーズを共有したりするのに最適な場所です。
サブシーンは『Megacity』プロジェクト用に作成されたツールボックスに組み込まれています。これは、ゲームオブジェクトをエンティティにバッチ変換するためのグループ化メカニズムとしてゲームオブジェクトシーンを使用することで、ゲームオブジェクトと DOTS のギャップを埋める機能です。サブシーンは、何百万ものゲームオブジェクトがエンティティに変換される、『Megacity』のような大規模プロジェクトに取り組む場合に特に役立ちます。一度に扱わなければならないサブシーンの数は限られているため、エディターでのプロジェクトの管理はかなり容易になり、パフォーマンスも大幅に向上します。私たちはこれを「ハイブリッド」ワークフローと呼んでいます。
エディターのワークフローを改善するだけでなく、変換したサブシーンをストリーミング単位として使用することもできます。サブシーンはゲームプレイ中にロードしたりアンロードしたりできるほか、エディターで非同期的にロードすることも可能です。SubScene コンポーネントをルートのゲームオブジェクトに追加すると、ゲームオブジェクトのグループをエンティティに変換できます。サブシーン内のゲームオブジェクトを編集したい場合は、サブシーンを開いて変更するだけです。編集を終了してゲームオブジェクトのサブシーンを閉じると、ゲームオブジェクトのグループが自動的にエンティティに変換されます。サブシーン内のゲームオブジェクトに加えられた変更はルートのシーンに影響しないため、複数のチームメンバーが個々のサブシーンで同時に共同作業を行うことが容易になります。サブシーン機能はエンティティパッケージに含まれており、パッケージマネージャーにあります。この機能は現在実験段階であり、ドキュメント化されていないため、注意して使用してください。『Megacity』の公開
Unity の ECS チームと FPS Sample グループの 2 人のアーティストは、わずか 2 か月の間に『Megacity』を制作しました。『Megacity』は、未来都市の景観には、空飛ぶ乗り物が行き交い、細かな点まで作り込まれた多数のゲームオブジェクト、独自のオーディオソースが使用されています。彼らはData-Oriented Technology Stack(DOTS)を活用しました。「苦労せずにハイパフォーマンスを実現」というスローガンを掲げたすべてのプロジェクトにあった名前であり、DOTS には Entity Component System(ECS)、C# Job System、Burst コンパイラーが含まれます。
『Megacity』では、Unity 2019.1 以降、複雑な制作に DOTS がどのように使用されているかに加え、Unity 2018.3 で導入された新しいプレハブワークフローも紹介しています。このデモは現在ダウンロード可能となっています。ぜひご覧いただき、DOTS を今後のプロジェクトにどのように役立てられるかご検討ください。Nordeus の数名の開発者が、DOTS と LWRP を使って高解像度の PC プロジェクトをモバイルプラットフォームに合わせて簡単に展開する方法について、『Megacity』デモをベースに説明してくれました。ご興味をお持ちの方は、Nordeus のケーススタディをご覧ください。このプロジェクト一式はこちらからダウンロードできます。
GDC 2019 で、Unity と Havok の提携が発表されました。この提携の目的は、Unity で DOTS ベースのプロジェクトのための完全なソリューションを構築することにあります。プロジェクトで新しい DOTS フレームワークを使用した場合、既定の物理演算システムは Unity Physics(プレビュー版)になります。このシステムは C# DOTS フレームワークを使用して作成されており、Burst コンパイラーと C# Job System を活用して高パフォーマンスのシミュレーションを提供します。キャッシュを使用しないステートレス設計を使用することで、ソルバーが非常にシンプルになったため、制作ニーズに合わせて簡単に拡張、調整、変更できる、ネットワークと親和性の高い物理演算システムを構築できるようになりました。Unity Physics はパッケージマネージャーから入手して Unity 2019.1 で利用できます。
2019 年 6 月には、非常に複雑な物理演算シミュレーションを必要としている DOTS ベースのプロジェクト向けに、Havok Physics パッケージを統合して提供することも予定しています。これは、Unity Physics と同じ C# DOTS フレームワークを使用していますが、ネイティブ C++ で記述されたクローズドソースの独自開発エンジン Havok Physics が基盤になっています。Unity Physics と Havok Physics はどちらも同じデータプロトコルを使用するように構築されているため、コンテンツとゲームコードを一度作成すれば、そのデータが両方のシステムで共有されます。その結果、DOTS ベースの両方の物理演算ソリューションをシームレスに切り替えることができるほか、プロジェクトで同時に使用することもできます。
現在プロジェクトにゲームオブジェクトおよび MonoBehaviour フレームワークを使用している場合は、PhysX がデフォルトの物理演算システムになります。これは今後も変わりません。ゲームオブジェクト/MonoBehaviour ベースのプロジェクトのために、Unity では PhysX のアップデートのサポートと評価を続けていく予定です。
DOTS 以外のプロジェクトのために、PhysX ソリューションに多数の改良を加えました。たとえば、シーンの重力に関係なくクロスに独自の重力を適用できるようになり、調整が簡単になりました。また、物理演算デバッグビューの色も更新され、ギズモの色との一貫性と操作性が向上しました。Rigidbody コンポーネントのインスペクターには、線形速度、角速度、重心、慣性テンソルなどのデバッグに役立つ内部情報を表示する新しいセクションが追加されました。
新しい Physics.GetIgnoreCollision 関数を使用すると、特定のコライダーで衝突が無効になっているかどうかを簡単にチェックできます。ボディの最大角速度の初期値が 7 から 50 に増加しました。これにより、高速で移動するオブジェクトを使用したシミュレーションや、難しい設定でのラグドール衝突の解像度が向上するほか、ソルバーでボディの回転速度を上げることができ、少ないイテレーションで制約を満たすことができます。
これまで、マルチシーンのコンテキストではサポートされていたのはレイキャストのみでした。本リリースより、シーンのクエリすべてをマルチシーンのコンテキストで使用できるようになりました。物理演算デバッグビューもマルチ物理シーンをサポートしており、選択したオブジェクトがどの物理シーンに属しているかを確認できます。また、特定の物理シーンに属しているオブジェクトを確認することもできます。
スクリプトのデバッグが有効になっている場合のランタイムのパフォーマンスを向上しました。さらに、IL2CPP によって生成されたコードのパフォーマンスが最大 20% 向上しました。
Unity のプロファイラーと外部プロファイラーの統合を改善しました。Unity の開発ビルドでは、Android Systrace のマーカーを生成するようになり、システム全体をトレースする Android Systrace ツール上で Unity のイベント名セクションを視覚化できるようになりました。これにより、スケジュール設定、CPU ステータス、システムで実行中のその他のプロセスなど、OS アクティビティとの関連でゲームを分析できるようになります。Unity 2019.1 にはネイティブの Systrace サポート(以前はプラグイン)が組み込まれています。すべての管理対象スレッドが Mono/IL2CPP スクリプティングバックエンドに表示されるほか、すべてのネイティブ Unity スレッドも公開されます。スレッドのアクティビティは「Profiler」ウィンドウのタイムラインビューに表示されます。また、すべてのスレッドがプロファイラーに自動的に登録されます。さらに、プロファイラーの許容メモリ使用量の初期値を、プレイヤーでは 4MB、エディターでは 64MB に増やしました。その結果、ディスクまたはネットワークにデータをストリーミングする前により多くのデータを蓄積できるようになり、オーバーヘッドは削減されます。これは、「-profiler-maxusedmemory」コマンドライン引数でも制御できます。最後に、UnityEditor.Profiling.HierarchyFrameDataView API を追加しました。この API を使うと、短時間ですべてのスレッドの CPU プロファイリングデータを走査し、「Profiler」ウィンドウの「Hierarchy」ビューで利用できるすべての情報と、関連するすべてのメタデータ(GC.Alloc コールスタックなど)を取得できます。
Profile Analyzer は、プレビュー版として提供される新しいプロファイリングパッケージです。複数のフレームを一度に分析する機能を追加することで、Unity プロファイラーの単一のフレーム分析を補完します。このパッケージは、Unity のバージョンのアップグレード、最適化による効果のテスト、開発サイクルの一環としてのパフォーマンスの追跡など、パフォーマンスを広く把握することが重要な場合に役立ちます。Profile Analyzer は、CPU フレームに加え、現在 Unity プロファイラーにロードされている、または以前に保存した Profile Analyzer セッションからロードされているアクティブなフレームセットから取得されたマーカーデータを分析します。分析された CPU フレームとマーカーデータは、ヒストグラムと箱ひげ図を使用して集計およびグラフ化されます。これらは、最小値、最大値、平均値、インスタンス数、範囲、マーカーが最初に現れたフレームを含む、各マーカーに関するアクティビティのソート可能なリストを補完するものです。
本リリースでは、既存のガベージコレクター(GC)に代わる実験的な機能として、インクリメンタルガベージコレクターを導入しました。インクリメンタルガベージコレクターでは、その処理を複数のスライスに分割することができます。つまり、プログラムを長時間にわたって一旦中断させるのではなく、短時間の中断を複数回発生させます。そのため GC 全体が高速化することはありませんが、複数のフレームに負荷を分散させるため、プロジェクトのアニメーションの滑らかさを損なう GC スパイクの問題を大幅に軽減できます。詳細については、こちらのブログ記事を参照してください。
ScriptableObject がアセットのインポート時に再ロードされるようになりました。つまり、インポート前にロードされた ScriptableObject は、ディスク上の基になるアセットが変更された場合、インポート完了後に再ロードされ、その値がディスク上のアセットの新しい値に更新されます。この変更を行う前は、ScriptableObject はインポート後にアンロードされていたため、等価(==)演算子を使用して比較すると ScriptableObject が null になっていました。この再ロードは、(再)インポート前にすでにロードされている ScriptableObject とネストされたプレハブに対してのみ実行されます。ScriptableObject の再ロードの詳細については、こちらにあるコード例をチェックしてください。
本リリースより、パッケージ開発者はアセンブリ定義ファイルのインスペクターに新たに追加された Version Defines 機能を使用して、パッケージ内の C# コードに条件付きで依存関係を指定できるようになりました。
アセンブリ定義ファイル(asmdef)の参照が見つからない場合、参照が見つからないエラーを出力する代わりに無視されるようになりました。これにより、オプションの asmdef アセンブリへの参照を追加できます。
アセンブリ定義インスペクターに新しく追加された Version Defines 機能を使用すると、プロジェクトで現在解決されているパッケージやモジュールのバージョン範囲に基づいて、どの C# プリプロセッサディレクティブを設定するかを定義できます。これにより、オプションパッケージの機能の C# コードに対して #if を設定できます。
本リリースでは、Project ビューでプレハブを選択するとインスペクターでプレハブアセットを編集できる機能を再導入しました。つまり、Prefab モードでプレハブを開いたり、シーンにドラッグしたりしなくても、プレハブを編集できるようになりました。
Shortcut Manager には、インタラクティブで視覚的なインターフェースと一通りの API が用意されており、エディターのホットキーの管理、さまざまなコンテキストへのホットキーの割り当て、既存のバインディングの視覚化がより簡単になりました。バインディングの競合に対処するために、複数のコマンドが同じバインディングを使用しているかどうかを視覚化し、それに応じて再割り当てを行うことができるようになりました。
Shift + Ctrl キーを押すと、利用可能なショートカットを確認できます。すべての予約済みのキーと未予約のキーのリストが表示されます。また、ホットキーをカスタムプロファイルに格納することで、保存、共有、他のワークステーションへの移行も可能になります。新しいコンテキストシステムでは、エディターウィンドウの特定のコンテキスト内でコマンドを登録できます。これにより、ツールの開発者は、カスタムアクションを定義し、ショートカットとして利用できるようにすることが可能になります。これらのショートカットは、適切なコンテキストの中でのみ使用可能になるように、コンテキストアウェアとして定義できます。最後に、ショートカット間で競合が発生した場合は視覚化して対処できます。たとえば、複数のパッケージが同じショートカットを使用している場合、エディターでは通知がトリガーされ、競合を処理するためのオプションが提供されます。
Unity は、エディターのコンソールを更新し、スタックに表示されている関数呼び出しのソースコード行にジャンプできるクリック可能なスタックトレースのリンクと、コンソールのエントリーをフィルターする検索ツールを利用できるようにしました。
新しい Quick Search ツールを使用すると、エディター内で複数の検索対象(アセット、ヒエラルキー、設定など)を簡単に検索できます。また、独自の検索対象を含めたい開発者のために拡張することも可能です。この機能は現在プレビュー版です。詳細については、フォーラムをご覧ください。機能をお試しいただいたら、ぜひフィードバックをお寄せください。
新しい Animation Rigging パッケージにより、アニメーションの仕上がりに関わる細部の調整を行いやすくなります。一連の定義済みのアニメーションの制約を使用して、汎用キャラクター用に制御リグ階層を手動で構築することができます。実行時に、リグの制約がアニメーションジョブのリストに変換され、それらのジョブはポストプロセス操作としてコントローラーの Playable Graph に追加されます。新しい Animation Rigging パッケージは、Animation C# Jobs をベースにしています。これにより、プロシージャルな変形の制御、擬似的な物理挙動や二次的動作のシミュレート、アニメーション全体の修正を行うことができる安全なマルチスレッドリグを設定できます。
最後に、このパッケージは拡張可能なため、特定な制作要件に合わせたカスタムの制約を作成できます。詳細については、GDC 2019 の講演を参照してください。フォーラムにも参加して、Animation Rigging パッケージについて意見を交換してください。
この新しい UI/UX アーキテクチャには、ソートと検索のオプションやエクスプローラーや Finder で表示するオプションを活用した、表示や検索に役立つ機能が数多く搭載されています。メインの Hub デスクトップウィンドウのサイズを変更したり、Hub から直接ライセンスを管理したりできるほか、最初に Unity ライセンスをアクティベートしなくても Hub をインストールして実行できるようになりました。さらに、本リリースには、言語のローカライゼーションと国際化のサポート、ネットワーク接続性チェックの処理方法の改善も含まれています。詳細については、フォーラムの投稿を参照してください。
Unity Hub を介してプロジェクトを管理できるようになったため、組み込みのプロジェクトランチャーはエディターの一部として含まれなくなりました。これは、プロジェクトを開いたり作成したりする方法や、エディター内でライセンスを管理する方法にとって重要な変更点です。そのため、この変更に取り組んでいくにあたり、フィードバックをお寄せいただければ幸いです。
注:エディターのコマンドラインインターフェースはこの変更による影響を受けないため、プロジェクト管理とライセンスアクティベーションに対しては引き続き予想どおりに動作します。まだダウンロード/インストールしていない場合は、こちらから最新の Hub のリリースを入手できます。すでにインストールが完了している場合は、v1.3 以上に更新されていることを確認してください(Hub を起動/再起動すると、自動更新プロセスが開始されます)。
エディターでパッケージと主要な依存関係を視覚化したり、GitHub リポジトリから直接パッケージをインストールしたり、プライベートレジストリと Unity がホストするレジストリを一緒に管理したりできるようになりました。本リリースでは、アセンブリ定義の参照(「Version Defines」セクションを参照)もサポートされるようになりました。Unity のパッケージマネージャーのフォーラムでディスカッションにご参加ください。また、詳細については 2019.1 のマニュアルを確認してください。
開発者が UI のレイアウトやスタイリングをすばやく作成、編集できるリテインドモードの GUI システムを新たに導入しました。この新しい GUI システムでは、Unity での UI の作成と最適化を容易にするため、Web の CSS、jQuery、HTML DOM、イベントシステムの概念を取り入れています。また、パフォーマンスが向上するほか、スタイルシートや動的/コンテキスト依存のイベント処理などの多くの新機能も用意されています。
この新しいシステムはパフォーマンスとスケーラビリティを念頭に置いて構築したため、開発者が UI を作成、変更、操作できる従来の包括的な C# API が用意されています。使い慣れた C# API、イベントシステム、CSS、XML インポートフォーマットにより、ユーザーインターフェースを容易に作成できます。UI 要素は、IMGUI に代わってエディター UI を拡張、作成します。また、今後のリリースでは、uGUI に代わってランタイム UI を作成する予定です。
スクリプトとネイティブコードの間でパーティクルデータをコピーしなくても、C# Job System を使用してパーティクルデータを操作できるようになりました。これを設定するには、IParticleSystemJob をベースにジョブ構造体を作成し、SetJob を使用してパーティクルシステムにアタッチします。すると、ネイティブパーティクルの更新が実行された後にジョブ構造体がスレッドから呼び出されます。
本リリースでは、メッシュパーティクルに小さな改良がいくつも加えられています。たとえば、各パーティクルに割り当てられたメッシュは、スクリプトから照会したり割り当てたりすることができます。ParticleSystem.Particle 構造体には、メッシュインデックスを取得/設定するメソッドが組み込まれました。また、Custom Vertex Streams にはメッシュインデックスストリームが新しく追加され、メッシュインデックスをシェーダーに送信できるようになりました。これを使用することで、個々のメッシュに合わせたシェーダーコードを記述できます。Texture Sheet Animation モジュールには、パーティクルのメッシュインデックスに基づいてアニメーションの行を選択する新しい行モードがあります。これにより、エフェクト内の各メッシュに特定のアニメーションを割り当てることができます。
本リリースで製品開発に利用可能になったシェーダーグラフは、シェーダーを構築するためのノードベースの視覚的なインターフェースです。アーティストはコードを書かなくても、簡単に外観をカスタマイズできます。シェーダーグラフを使用すると、ノードをドラッグアンドドロップしてその結果をリアルタイムで確認できます。また、即座にフィードバックされるため、シェーダーの専門家でも初心者でもデバッグや微調整を簡単に行えます。シェーダーグラフの主な新機能は、カスタムノードを視覚的に作成できるネストされた(入れ子構造になった)サブグラフです。サブグラフもネスト可能なため、自作のプロジェクトまたはスタジオ用のカスタムコンテンツライブラリを定義できます。これにより、テクニカルアーティストは、シェーダーパイプライン全体を破壊することなく柔軟に制御できるようになるため、実験に拍車がかかり、創造性が刺激されます。シェーダーグラフの新機能とお勧めのワークフローの詳細については、GDC 2019 のこちらの講演をご覧ください。
本リリースの LWRP は製品開発にご利用いただけます。LWRP は、グラフィックスレンダリングにおいて高いパフォーマンスを実現するために最適化されている、既成のスクリプタブルレンダーパイプライン(SRP)です。高度な設定が可能で、レンダリング設定をグローバルに制御することも、カメラごとに制御することもできます。また、シェーダーグラフと統合されたカスタムエフェクト用にカメラ深度とカラーテクスチャーを柔軟に設定できます。この拡張性の高いプラグアンドプレイアーキテクチャを利用することで、カスタムのレンダーパスを作成できます。さらに、レンダラーをオーバーライドして特定のエフェクトを実現することもできます。LWRP を使用すると、柔軟性が得られ、プラットフォーム間でのレンダリングのスケーリングが可能になります。このソースコードは GitHub で公開されており、LWRP をさらにカスタマイズすることができます。2019.1 では、動的スケーリングのサポートとともに UI 維持機能が追加されました。これにより、高 DPI スクリーンを搭載したモバイル端末上にゲームをレンダリングしつつ UI を鮮明に保つことができます。また、SRP Batcher のサポートと、パーティクルシェーダーの改良(ソフトパーティクルや歪みなど)を追加しました。テレインシェーダーとベイク済み Lit シェーダーも改良されています。本リリースでは、カスタムレンダラーシステムも新たに追加され、より高度なカスタマイズが可能になりました。また、Visual Effect Graph の先行サポートが追加されたほか、Unlit シェーダーの LWRP 初期サポートが計算機能を備えたプラットフォームでのみ利用可能になりました。 LWRP の詳細については、Unity マニュアルを参照してください。
LWRP の詳細については、Unity マニュアルを参照してください。
HDRP は、コンピュートシェーダーと互換性のある最新のプラットフォームをターゲットとするよう設計された、既成の忠実度の高いスクリプタブルレンダーパイプラインです。仕様により、ゲームから技術実証まで、あらゆるものを最高の解像度で作成するためのツールを提供します。本リリースでは、新機能がいくつか追加され、アーティストのワークフローが大幅に改善されました。ただし、これらの変更によって、以前に作成したデータについては、本バージョンとの互換性が失われることがあります。その場合、再作成が必要になります。2018.3 からのアップグレードをサポートするために、Unity では移行プロセスに関するガイドを作成しました。ガイドはこちらから入手できます。このバージョンは、PC 向けの DirectX 11 と DirectX 12、Mac 向けの Metal、PC と Linux 向けの Vulkan、Xbox One、PS4 をサポートしています。HDRP は 2019.3 までプレビュー版として提供されます。注:本リリースの HDRP テンプレートには、HDRP のバージョン 5.7.2 のパッケージが含まれています。ここに記載されている機能を利用するには、テンプレートをインストールした後、バージョン 5.12.0 以降のパッケージにアップグレードすることをおすすめします。
本リリースでは、Linux と Vulkan API のサポートが改善され、アーティファクトが減少しています。一部のアーティファクトは残りますが、全体的なエクスペリエンスは向上しています。
ダブルワイドは 2 つのビューをサイドバイサイドでレンダリングする VR 用の低速パスです。さらに最適化されたシングルパスのインスタンス化バージョンは、2019.2 で提供されます。屈折、歪み、サブサーフェススキャタリング、デカール、ボリューメトリックなど、すべての HDRP エフェクトがサポートされるようになりました。サポートされる機能の詳細については、こちらの記事を参照してください。
HDRP で ARGBHalf ではなく RGB111110Float のカラーバッファーフォーマットが使用されるようになりました。これにより、シェーダーの実行が高速化され、全体的なパフォーマンスが向上しました。2019.1 では、1 つのディレクショナルライトと単純なマテリアルだけが存在する場合に高速パスが使用できるようになりました。CPU 時間を節約するために、デプスプレパスを使用してモーションベクターオブジェクトを 2 回レンダリングする処理を廃止しました。歪みはステンシルバッファーで最適化されたほか、シェーダーバリアントのストリップは改善されてビルド時間が短縮されました。2019.1 ではソフトウェア動的解像度もサポートされるようになりました。これにより、すべてのプラットフォームで UI とは異なるスケールでワールドをレンダリングすることができます(サポートされているプラットフォームでのハードウェア動的解像度のサポートは今後予定されています)。必要なのは、C# スクリプトを使って目的の解像度を設定することだけです。最後に、レンダリングパス名「Low Resolution」を使用することで、透明なマテリアルを、ビジュアルクオリティーを落とさずに 1/4 の解像度でレンダリングできるようになりました。これは、大きなパーティクルのオーバードローのパフォーマンスを向上させるのに便利です。
HDRP の全 UI 要素のマルチエディションのサポート、ドキュメント、ツールチップが改良されました。また、Multi ViewPort のサポートも追加されました。これを使うと、複数のカメラを同じターゲットでレンダリングして、画面分割レンダリングやその他の同様の動作を実現できます。
FrameSettings と HDRP アセットの設定をリファクタリングしたことにより、演算時間が短縮され、編集が容易になりました。また、メモリとシェーダーバリアントに対する HDRP アセット設定の影響に関する情報が追加されたほか、SMAA(SMAA 1X)アンチエイリアシング方式のサポートも追加されました。これはパフォーマンス(FXAA)と品質(TAA)の中間を取った方式です。
ポストプロセス後のレンダーパスが Unlit シェーダーで使用できるようになりました。HDRP では、ポストプロセッシングパスの後にこのレンダーパスを使用するオブジェクトがレンダリングされます。つまり、そのオブジェクトはポストプロセッシングの影響を受けません。これは、たとえば 3D UI をレンダリングする場合に便利です。
HDRP に、カメラのカリングを固定しつつ、カメラのレンダリングの視点だけは移動可能にできるデバッグオプションが追加されました。このオプションにより、特定のシーンビューでカリングされているものを確認できます。さらに、マテリアル PBR バリデーターと発光色オーバーライドも導入されました。
このウィザードは、HDRP 使用時にプロジェクトが正しく動作するよう設定する際に役立ちます。正しく設定されていない項目がハイライト表示され、修正するための「Fix」ボタンが表示されます。また、新しいカスタムシーンを設定することもできます。
より優れたギズモコントロール、シェーダーグラフのサポート、不透明なデカールのエミッシブのサポートにより、デカールが強化されました。レコーダーが正式にサポートされるようになり、HDRP からの映像を記録できるようになりました。Sony Pictures Imageworks の最近の研究結果を反映して、コットン用のファブリックライティングモデルが改良されました。
ボリューメトリックフォグが最適化され、精度が向上しました。密度ボリュームのギズモも更新しました。ライトレイヤーを使用すると、ライトとオブジェクトにタグを付けて、同じタグを持つオブジェクトだけが特定のライトからライティングを受けるようにすることができます。本リリースでライトレイヤーは完全に機能するようになり、シャドウのコントロールを正しくサポートするようになりました。サブサーフェススキャタリングの拡散プロファイルが 2019.1 で変更されました。これまでは、各プロジェクトの拡散プロファイルリストでプロファイル数が 16 に制限されていました。本リリースで、拡散プロファイルは共有/分散可能な個々のアセットになり、プロファイル数の制限はビューあたり 16 になりました。ビューで使用されるプロファイルの現在のリストは、Volume Settings で制御します。2019.1 では、古い Diffusion Profile システムから新しいシステムにデータが自動的に移行されますが、シェーダーグラフの拡散プロファイルは移行されません。これらの拡散プロファイルは作成し直す必要があります。このバージョンでは、透明マテリアルでのモーションベクターのサポートも追加されています。透明マテリアルは独自の速度を記述できるため、速度バッファーの以前の内容は上書きされます。これは、髪の毛など光を通すマテリアルに便利です。
2019.1 には、シェーダーグラフ用のマスターノードがいくつか追加されています。新しい HD Unlit Master ノードを使用すると、歪みやレンダリングパスの選択など、クロスパイプラインの Unlit ではアクセスできなかった全機能セットにアクセスできます。
また、X-Rite AxF により測定されたマテリアルフォーマットをサポートする AxF Master ノードも新しく追加されました。AxF マテリアルは Unity Industry Bundle に含まれている AxF インポーターと組み合わせて使用する必要があります。AxF マテリアルの設定はすべて、AxF インポーターによって自動的に入力されます。
新しい Hair Master ノードも利用できるようになりました。これはアーティストフレンドリーな Kajiya-Kay モデルベースのライティングモデルを利用したノードであり、優れた省エネルギー性と柔軟性を備えています。
HDRP 固有のさまざまなノード/動作が新しく追加されました。ブラーをかけたミップマップなどのシーンの色をサンプリングして、粗い屈折や歪み(色は透明なオブジェクトでのみ使用可能)をシミュレートできるようになりました。Scene Depth ノードでは、Raw、リニア(0 と 1 の間)、目の深度にアクセスすることもできます。Lit Master ノードに深度オフセットの入力が追加されました。これを指定すると、ビューベクトルの方向の内側または外側に深度が広がります。これは新しい Parallax Occlusion Mapping ノードを使用してライトからシャドウイングを取得する場合に便利です。
さらに、すべての HDRP マスターノードで、ベイク済み GI のオーバーライドがサポートされるようになりました。これを有効にするには、マスターノード設定の「Override Baked GI」チェックボックスを使用します。有効にすると、マスターノードに「Baked GI」と「Back Baked GI」という 2 つの入力が追加されます。これにより、間接的な拡散ライティングと透過性にそれぞれ独自のベイク済み GI を指定できるほか、Baked GI ノード と組み合わせることで、ベイク済み GI を修正することもできます。Baked GI プロパティの初期値は、Baked GI ノードからのデフォルトの出力と同じです。
ライティングについては、さまざまな改善を行いました。これまでは、露光範囲と精度が原因で、ライティングでは正確な実世界の値/物理値を使用できませんでした。本リリースから、ライティングの計算に前露光が使用されるようになりました。つまり、露光はポストプロセッシング時にフレームの最後に適用されるのではなく、ライティング自体に適用されるため、精度が大幅に向上し、太陽などの光の強度の値を高くすることができます。さらに、スカイ、エミッシブなどの一部のライトでは、ライティングチャートの参照値に使用される EV の代わりに EV100 単位が使用されるようになりました。これは 2018.3 のライティングと最も大きく違う点であるため、プロジェクトを本リリースにアップグレードするには、光強度を調整する必要があります。Lit/Unlit シェーダー と Lit/Unlit Master ノード両方の Emissive プロパティが改良されたことにより、EV100 単位や輝度単位がサポートされるようになったほか、Exposure Weight コントロールと Emission ノードが追加されました。このコントロールを使用すると、適切に露光されている場合でも、オブジェクトを強制的にブルームさせることができます(たとえば、明るい日中でもブルームさせることが可能)。
矩形エリアライトが拡張され、クッキーと近似エリアシャドウがサポートされるようになりました。これは「コストがかかる」機能であり、主に高品質モードまたはシネマティックに使用するものです。シャドウマスクのサポートが追加されたことにより、スペキュラーハイライトを維持しながら高品質のベイク済みソフトシャドウを利用できるようになりました。
GPU によってリフレクションプローブがベイクされるようになり、ベイク処理が高速化されました。また、リフレクションプローブをライティングのワークフローと統合したことにより、リフレクションプローブのベイキング処理が合理化され、ロードされているすべてのリフレクションプローブをライティングウィンドウからベイクできるようになりました。
リアルタイム平面反射のサポートが追加されました。HDRP は再生時に、表示状態のリアルタイムのリフレクションプローブと Planar Reflection Probe のみをレンダリングします。これらのプローブには、リアルタイムレンダリングとオフラインレンダリングの両方の FrameSettings に個別のコントロールがあります。
2019.1 では、ポストプロセッシングを HDRP に直接統合し、ハイエンドのコンソールとデスクトッププラットフォーム向けに、パフォーマンスと品質を考慮して特別に作成したコンピュートシェーダーベースのポストプロセッシングエフェクトのカスタムセットを組み込みました。この新しいポストプロセッシングツールセットは、RT ハンドルシステムと互換性があり、動的解像度機能をサポートします。新しいポストプロセッシングの設定は、ポストプロセッシングスタック V2(PPv2)と互換性がないことに注意してください。つまり、2019.1 にアップグレードする際は、ポストプロセッシングをすべて作成し直す必要があります。これは、HDRP で PPv2 がサポートされなくなることも意味します。FXAA、SMAA、Temporal Anti-aliasing、8 ビットディザリングを含むポストプロセスアンチエイリアシングを使用すると、グラデーションが滑らかになり、8 ビットカラーのバンディングが除去されます。ポストプロセスアンチエイリアシングはカメラに直接設定します。色収差、レンズの歪み、ビネットについては、PPv2 と同じです。フィルムグレインは、プロシージャルノイズの代わりにグレインルックアップテクスチャーを使用するように変更されました。また、Panini プロジェクションエフェクトも新しく追加しました。
Panini プロジェクションエフェクト。ブルームは前露光値に基づくしきい値を使用するように変更されました。つまり、特定の輝度を超えるオブジェクトではなく、露出オーバーのオブジェクトだけがブルームします。カラーグレーディングには、PPv2 の「HDR グレーディング」モードの改良版が搭載されています。大きなカラーグレーディングパネルが個々のボリュームコンポーネントに分割され、インスペクターの煩雑さが軽減されました。被写界深度は全面的に見直され、開口形状をパラメトリックに制御できるようになりました。これにより、ブレードの数、曲率、バレルクリッピング、アナモルフィズムを簡単に設定できます。この効果は解像度に依存しません。モーションブラーも、品質とパフォーマンスを向上させるために全面的に見直されました。このような今までにないアルゴリズムの変更により、アーティファクトを低減しながら、より正確で広いブラーが可能になりました。
2019.1 では、HDRP から深度バッファーと法線バッファーにアクセスできるようになりました。また、ビジュアルエフェクトで、メインカメラの深度やカラーなどの内部 HDRP レンダリングバッファーにアクセスし、シミュレーションパスで入力テクスチャーとして使用できるようになりました。これにより、デプスバッファーコリジョンやパーティクルを使用したシーンモーフなどの機能を簡単に設定できます。
Visual Effect Graph は、映画の VFX 用の優れたツールをヒントに開発された、使いやすく柔軟なノードベースのシステムです。ゲームやその他のクリエイティブコンテンツに適した見事なエフェクトをすばやく作成できます。2019.1 には、いくつかの改良点や新機能が追加されているほか、次世代のビジュアルエフェクトの作成に役立つさまざまなサンプルが用意されています。新しいプリウォーミング機能を使用すると、エフェクトの一部を特定の時間まで事前シミュレートして、完全に展開された状態にすることができます。この機能は、徐々に立ち上る煙などのエフェクトを作成するために使用できます。また、ライトプローブとライトプローブプロクシボリュームも更新しました。パーリンノイズによりノイズ機能が改善されました(バリューノイズ、セルラーノイズ、ノイズのカールバリエーション)。生成時間と生成数の演算子を使用して、前のフレームで一度に生成されたパーティクルの数をカウントできるようになりました。
Vulkan のネイティブレンダリングプラグインがサポートされるようになりました。詳細についてはドキュメントを参照してください。サンプルプロジェクトもご利用ください。
現在プレビュー版の GPU ライトマッパーに、機能とプラットフォームのサポートが追加されました。macOS および Linux での使用も可能となり、マテリアルでの両面の GI フラグと、メッシュでのシャドウの生成と投影もサポートされます。
GPU ライトマッパーでは、高パフォーマンスの専用 GPU を使用するために、エディターと同じ GPU がデフォルトで使われるようになりました。必要に応じて、コマンドラインを使用して別の GPU に変更できます。詳細については、ドキュメントを参照してください。
Optix AI Denoiser は、パストレースされた画像のライブラリを使って訓練されたディープラーニングベースのデノイザーです。特にサンプル数が少ない場合には、フィルタリングオプションよりもはるかに優れた結果が得られ、リークやぼやけにも強いという特長があります。フィルターと組み合わせると、よりスムーズなライトマップを実現できます。新しいデノイザーを使用することで、サンプル数を大幅に削減し、従来よりもはるかに高速なベイクを実現できます。現在、Windows および対応している NVIDIA GPU でのみ利用できます。
MIS 環境は、キューブマップ/HDRI 内の最も重要な領域をサンプリングするための新しい方法です。この方法では、多数の GI レイを半球に照射するのではなく、明るいスポット(太陽など)などの重要な領域に焦点を合わせます。この機能を使用すると、非常に不均一な測定済み HDRI 環境マップがあるシーンをベイクできます。新しい「Environment Samples」パラメーターが「Lighting」ウィンドウに追加されました。この値は、ライトマップテクセル単位で環境に直接トレースするレイの数を制御します。
ライトプローブギズモが露出補正の影響を受けるようになりました。これにより、HDRP および高輝度ライティングを使用している場合に、ライトプローブの反復処理が容易になります。
新しい「Lightmap Count」パラメーターを使用すると、特定のオブジェクトグループに対して生成されるライトマップの最大数を指定できます。これは、リソースが限られているモバイルプラットフォーム向けにゲームを構築する場合に特に便利です。リアルタイムの GI:非同期読み戻しにより、CPU が GPU の読み戻しを待機する必要がなくなりました。これにより、パフォーマンスを向上させ、CPU スパイクを減らすことができます。新規シーンのデフォルト設定が Auto Generate ではなくなりました。また、下部のステータスバーには、Auto Generate モードが有効かどうかを示すリンクが追加されています。
アセット表示用の実験的な機能である Look Dev が削除されました。今年中に SRP 用に改良して(LWRP と HDRP のサポートとともに)再び追加する予定です。
Unity エディターでは、レンダリングで特定のシェーダーバリアントが初めて必要になるまで、シェーダーのコンパイルを保留します。その際、シェーダーコンパイラーのラウンドトリップにかなりの時間がかかるため、エディターが停止する場合があります。非同期シェーダーコンパイル機能の導入により、コンパイルをレンダリングから切り離し、コンパイルが完了するまで代わりに単純なシアン色のダミーシェーダーを使用することで、エディターの停止を解消しました。これはエディター専用の機能です。ゲームには影響しませんが、コンパイル時間が短縮されます。
頂点あたりのボーン影響数を 32 に設定できるようになりました。また、スキンメッシュレンダラー用の API を使用することで、最大 255 に設定できるようになりました。これにより、スキンウェイトの忠実度が外部プログラムのソースコンテンツと実行時に一致するように維持されます。これは、4 以上のボーン影響数が必要な詳細度の高い領域(口角や目など)でのボーンベースのフェイスリギングに特に便利です。これにより、スムーズスキニング分解を使用するリグの品質も向上し、より少ないボーンで滑らかな結果を得ることができます。
Sketchup インポーターの UI が更新されました。また、Sketchup で利用できるすべてのカメラタイプ(平行投影、透視投影、2 点透視)のカメラインポートのサポートも追加されました。最後に、モデルインポーターの「Material」タブの UI の動作を改善しました。
Timeline のシグナル機能を使えば、タイムラインからシーン中のオブジェクトに簡単にアクセスすることができます。シグナルエミッターとシグナルアセットを使用して、シグナルレシーバーをトリガーし、Timeline に対する事前設定済みのリアクション(Unity イベント)のセットを定義できます。シグナルエミッターは、Timeline が特定の時点を通過したときにシーンの状態の変化をトリガーするために使用します。私たちが「イベント」ではなく「シグナル」という言葉を選んだのは、「シグナル」が「ブロードキャスト」の概念を支えているからです。また、既存の Unity イベントやアニメーションイベントとの混乱も回避するためでもあります。
また、特定の動作を持つカスタムキーフレームの作成に関心のあるユーザーのために、「マーカー」も導入しました。マーカーを使用すると、選択、コピーアンドペースト、モード編集など、クリップと同じ方法で Timeline 上のオブジェクトを追加および操作できます。マーカーには、アニメーションクリップ、アクティベーションクリップ、コントロールクリップなどの特殊な機能もあります。独自のカスタムマーカーの作成方法については、こちらのフォーラムを参照してください。
Timeline のオーディオ機能にいくつかの改良を加えました。たとえば、Timeline の編集作業中に、個々のオーディオトラックのキーを制御/設定できるようになりました。また、トラック上でシンプルなボリュームコントロールとパンコントロールを使用できるようになったほか、トラックごとにボリュームアニメーションとパンアニメーションを使用できるようにもなりました。
本リリースでは、H.265 ビデオコーデックがサポートされています。これにより、H.265 ムービーを再生したり、サポートされている他のビデオ形式を H.265 コーデック形式にトランスコードしたりできます。H.265(HEVC)は、Advanced Video Coding(H.264)の後継規格であるビデオ圧縮規格です。H.264 と比較して、H.265 は同じビットレートでより優れた品質が得られます。
ビデオプレイヤーとビデオレコーダーで SRP が完全にサポートされるようになりました。これにより、HDRP または LWRP でのレンダリング時にビデオプレイヤーでビデオを再生できるようになりました。また、SRP 使用時にカメラからの入力を処理できるようにビデオレコーダーを更新しました。ビデオプレイヤーに SRP のサポートを追加する際に、カメラのレンダーモード(後方/前方クリップ面)に影響を与えるいくつかの主なバグと、360 度ビデオ(ステレオ)のサポートを修正しました。
Unity の SceneVis コントロールを使用すると、ゲーム中でのオブジェクトの見え方を変えることなく、シーンビューでオブジェクトの表示/非表示をすばやく切り替えることができます。シーンが細かくなってくると、特定のオブジェクトを一時的に隠すと便利な場合がよくあります。新しいアイソレートモードを使用すると、障害物がない状態で表示や編集を行えます。SceneVis のこの機能は、階層ツールとキーボードショートカット、およびエフェクトの有効と無効をすばやく切り替えることのできるツールバートグルを使用して有効にできます。
Sprite Shape パッケージには多くの改良点があります。たとえば、Sprite Shape の最終的な 2D コライダーの形状をスプライトのビジュアル表現に近づけることができます。これにより、Sprite Shape Renderer によく適合したポリゴンコライダーやエッジコライダーを追加できます。また、形状の制御点用に非ミラー型連続接線を追加したことにより、カーブした形状を作成して目的の外観をより正確に実現できるようになりました。
新しい 2D Animation パッケージ(v2.1、パッケージマネージャーからアクセス可能)を使うと、エディターでスプライトをスキニングするときや実行時のパフォーマンスが向上します。このツールは C# Job System と Burst コンパイラーを使用して構築されているためです。また、今回の更新により、このツールを使用してアニメーション化したキャラクターを画面上に複数表示するときのパフォーマンスが向上します。注:このバージョンは 2018.3 との下位互換性がありません。Unity 2018.3 を使用するプロジェクトでは、2D Animation パッケージ v2.0 を引き続き使用してください。
すべての 2D 物理演算クエリで、結果バッファーを .NET の「List」形式で提供できるようになりました(これまでは配列にする必要がありました)。これには配列と同じ利点があります。つまり、リストの容量がクエリ結果を格納できるほど大きければ、メモリの割り当ては行われません。リストの容量は、すべてのクエリ結果が確実に格納されるように(関連するメモリ割り当てによって)自動的に増加します。その際、割り当てられるのは必要最小限のメモリです。同じリストを再利用すれば、割り当てが最小限に抑えられ、最終的にそれ以上割り当てずに済みます。
Unity は TECH ストリームと長期サポート(LTS)ストリームを組み合わせたリリースを行っています。TECH ストリームには最新機能がすべて含まれており、年に 3 回のメジャーリリースがあります。今年の TECH ストリームはバージョン 2019.1、2019.2、2019.3 であり、リリースの度に新しい機能が追加されます。
2018.x TECH ストリームサイクルの最後のバージョンであった 2018.3 は、本リリースでバージョン番号が更新され(2018.4)、LTS ストリームの一部になります。この時点から 2 年間のサポートスケジュールが開始します。TECH ストリームとは異なり、LTS ストリームでは新機能や API の変更または改善は提供されません。ただし、コミュニティの広範囲にわたって影響するクラッシュ、レグレッション修正、問題、コンソール機向け SDK/XDK の問題、多数の開発者がゲームのリリースを行えなくなる可能性がある大きな問題には引き続き対応します。バグ修正を含む TECH ストリームのリリースは週に 1 回、バグ修正を含む LTS ストリームのリリースは週に 2 回あります。LTS ストリームは、ゲーム/コンテンツの開発と配信を、長期間にわたって安定版で行いたい開発者向けです。一方、TECH ストリームは、最新の Unity 機能を利用したい開発者向けです。
まず、さまざまな新機能の利用や素晴らしいフィードバックの提供により、2019.1 の完成とリリースにご協力いただいたベータコミュニティの皆様に、感謝の言葉を申し上げます。ベータテスターでない方は、ベータテスターへの応募をご検討ください。最新の機能を先行体験できるほか、新バージョンに対応したプロジェクトを作成することができます。また、フォーラムや対面イベントで研究開発チームとフィードバックを共有することで、Unity の進化に関わることができます。さらに、Unity のイベントに参加して特別な特典を手に入れるチャンスも得られます。まずは最新のアルファ版またはベータ版をダウンロードし、こちらのガイドを参照して有力なベータテスターになる方法を確認してください。ベータ版に関するニュース、最新情報、ヒントなどを随時メールでお送りしますので、関心のある方はこちらのページからご登録ください。
フルリリースには約 300 の新機能と改善が含まれており、この記事で紹介したものはその一部です。新機能、改良点、修正点の全一覧については、いつでもリリースノートでご確認いただけます。
Is this article helpful for you?
Thank you for your feedback!