今年最初の TECH ストリームからのリリースとなる Unity 2020.1 を本日より公開します。Unity 2020.1 には、Unity ワークフローをより直感的にして生産性を高める様々な機能や改善が盛り込まれています。一方で、Unity 2019 LTS は現在開発を進めているプロジェクトにおすすめ出来るバージョンとして引き続きお使いいただけます。
また、Unity が開発元の Ludiq から Bolt ビジュアルスクリプトアセットを買収し、Bolt が Unity のすべてのプランに追加料金なしで含まれるようになったニュースもここで改めてお伝えいたします。詳しくは、このブログ記事をご覧ください。
Unity 2020.1 では、Unity をより信頼性が高く、パフォーマンスの高いプラットフォームとし、クリエイティブな目標やビジネス目標の実現を支援することを第一の指針としてきました。このブログ記事では、今すぐ Unity 2020.1 をお使いになるつもりの方にも、来年の Unity 2020 LTS まで待つ予定の方にも、新しい改善点をご紹介できればと思います。
プロジェクトがすでにプロトタイピングの段階を越え、Unity のバージョンを固定して安定性を最大限確保した上で本制作に入ろうとしている場合は、最新の長期サポート(LTS)バージョンである、Unity 2019 LTS のご利用をおすすめしています。
新機能について説明する前に、継続的な顧客ミーティング、フォーラムでのディスカッション、ベータ版テストなどを通じていただいた、皆様からのフィードバックに感謝します。搭載する機能の優先順位を決め、ロードマップを定める上で重要な要素の 1 つは、コミュニティからのフィードバックです。
最近のフィードバックによると、Unity コミュニティでは、Unity のモジュール化が進んでいることに対する懸念が目立ってきています。パッケージとして提供されている機能が増え、それらの開発段階がまちまちであるため、ユーザーにとっては、自分のプロジェクトに適したツールを見極めることが困難になっており、テストにはどのツールを使えばよいか、製品の出荷をにらんだ制作ではどのツールを使えばよいか、ということがわかりづらくなっているということです。Unity はしばしば、まだ初期段階にある機能もユーザーに提供します。これらの機能は「プレビュー版」と表示されており、開発者が自分のユースケースで試してみたり、機能セットに影響を与える可能性のあるフィードバックを提供したりするために使われることを想定しています。一方、本制作段階に入っているプロジェクトや、すでに運営中のプロジェクトでは、最新の LTS バージョンと検証済みのパッケージを使用することをお勧めしています。Unity がパッケージの状態をどうラベル付けしているかについての詳細は、ユーザーマニュアルを参照してください。
2020.1 のリリースでは、パッケージマネージャーに大幅な変更を加えました。パッケージの状態を明確に区別するために、新しいイコノグラフィを採用した新しいユーザーインターフェイス(UI)や、レイアウトの改善など、いくつかのデザインのアップデートが行われました。また、パッケージマネージャーの UI に明確なラベル付けと警告セクションを追加し、プレビュー版を使用しているパッケージについてより詳しい情報を提供できるようにしました。パッケージマネージャーの UI に表示されるパッケージのリストも、より厳密に整理され、ほぼ検証済みのステータスとなったパッケージのみが利用できるようになります。これは、幅広いユーザー層に安定した体験を提供するためです。一方で、ユースケースを持っていて、技術への関心の高い専門家のチーム向けのために、最先端の技術や機能も引き続き利用できる状態にしています。そのようなチームのために、強力な新しいオプションを提供しています。スコープ付きの npm レジストリと、レポジトリのサブフォルダーにある Git パッケージの認証をサポートしたカスタムパッケージをプロジェクトにインストールすることができます。
2020 年 8 月 14 日追記:Unity 2020.1 からパッケージマネージャーで発見できなくなったパッケージのインストール方法はこちらからご確認ください。
ツールセットに搭載されたに新しい改良により、生産性が向上し、ワークフローを特定のニーズに合わせてカスタマイズする選択肢が広がります。また、作業の中断が少なくなり、フローに入って作業し続けることが可能になりました。Unity 2020.1 では、シーンのコンテキストまたは親プレハブを、プレハブアセットの編集中に可視化できるようになりました。また、インポーターに改良が施され、SketchUp を元にしたオブジェクトのカスタムプロパティを新しい軸変換設定とともにインポートできるようになりました。これによって、デジタルコンテンツ制作(DCC)プログラムでメッシュを再度開く必要がなくなりました。昨年ご紹介した新しい Asset Import Pipeline v2 が新しいデフォルトとなり、2 GB 以上のシリアライズファイルのサポートとステータスバーが追加されました。フォーカスされたインスペクターウィンドウでは、選択したゲームオブジェクトのインスペクターの詳細を簡単に見ることができるようになり、新しい Progress API と Background Tasks ウィンドウでは、進捗状況をよりよく追跡することができます。また、Partial Presets はシーンに Presets を適用する際に、より高い柔軟性を提供します。
詳細については、エディターとチームワークフローのページをご覧ください。
プログラマー向けツールについては、主にユーザビリティの向上と、以前のリリースで導入されたワークフローの安定化に重点を置いています。プロファイラーをスタンドアロンアプリとして実行できるようになったことでエディターでプロファイリングする際のパフォーマンスのオーバーヘッドが軽減され、よりクリーンなプロファイルデータが得られるようになりました。Flow Event 機能により、実行時のメインスレッドにあるコードが、マルチスレッドコードでジョブの完了を待っているときに、それを簡単に検出できるようになりました。新しい C# デバッグワークフローでは、リリースモードとデバッグモードを簡単に切り替えることができ、デフォルトではリリースモードで C# コードの最適化を行った状態でエディターが実行されるようになっています。また、C# デバッガーをアタッチすることで、リリースモードであってもデバッグモードを有効にすることができます。加えて、ジェネリック型のフィールドのシリアライズのサポートも改善され、Visual Studio 統合がパッケージ化されました。それから、Burst コンパイラー 1.3 がリリースされ、ネイティブデバッグ機能の追加などその他の改良も盛り込まれています。
詳細については、Unity 2020.1 のプログラマー向けツールのページをチェックしてください。
パッケージマネージャーから Burst Compiler パッケージと Collections パッケージをインストールすると、2D アニメーションのパフォーマンスが向上します。これにより、2D Animation パッケージは Burst のコンパイルと低レベルの配列ユーティリティを使用して、Unity のスプライトメッシュの変形処理を高速化することができるようになりました。スプライトシェイプのメッシュベイキングにより、編集中にメッシュデータを保存しておき、実行時に再ロードすることで、実行時の不必要なメッシュ生成を回避できます。2D Physics には、Rigidbody2D XY の位置のコンストレイントの改善、レンダリングサイクルと同じ速度で物理演算を更新する Per-frame Auto-Simulation、Edge Collider2D などのアップデートが含まれています。また、2D Physics のすべての機能をテストするためのサンプルプロジェクトも提供しています。2D のデフォルトテンプレートがアップデートされ、検証済みのすべての 2D ツールがプリコンパイルされて含まれるようになりました。これにより、新しいプロジェクトを必要な 2D ツールセットをすべて含んだ状態でより迅速に読み込めるようになりました。
詳細については、アーティスト向けツールのページをご覧ください。
カメラスタッキングを使用して、複数のカメラの出力を重ね合わせ、ユニバーサルレンダーパイプラインを使用できるようになりました。これにより、メインカメラのコンテキスト外でレンダリングされるものを写し込む必要がある場合(ポーズメニューで表示するキャラクター、メカゲームでの特別なコックピットのセットアップなど)に、単一の結合された出力を作成できるようになりました。
GPU Lightmapper、CPU Lightmapper の双方でサンプリングが改善されました。ライトマッピングが全般的にシンプルになり、Lightmapped クッキーのサポートが追加されました。また、Contributors / Receivers Scene ビューでは、どのオブジェクトがシーン内のグローバルイルミネーション(GI)に影響を与えているかを確認できるようになりました。また、ユーザーは Lighting Setting アセットを使って、複数のシーンで同時に使用される設定を変更できるようになりました。
最後に、コードなしでダイナミックなカメラ動作を実現させるためのツール群である Cinemachine については、バージョン 2.5 が検証済みのパッケージとなりました。
詳細については、グラフィックスまたはアーティスト向けツールのページをご覧ください。
新しい入力システムは Unity 2019 のサイクルで導入されましたが、2020.1 で検証済みに移行しました。このシステムは一から再構築されたものであり、またプロジェクトのロジックとは分離した形で、モダンなデバイスやカスタムデバイスを幅広くカバーし、これらのデバイスからのアクションをバインドすることができる統一された Input Action ウィンドウを提供するものです。
Unity 2020.1 の拡張現実(AR)については、AR Foundation がユニバーサルレンダーパイプラインを正式にサポートするようになり、ARKit、ARCore、Magic Leap、Hololens の機能サポートも強化されました。また、プロジェクト設定の新しい合理化された UI により、プロジェクトで AR やバーチャルリアリティ(VR)を有効にするまでの時間を大幅に短縮しました。
2020.1 では、エディターに高ダイナミックレンジ(HDR)ディスプレイのサポートが追加されました。HDR に対応したディスプレイを使用している開発者は、ターゲットデバイス用にビルドしなくても、より広がった色域や輝度範囲をフル活用して HDR コンテンツを扱う作業ができるようになりました。
Unity は Unity 2019.3 のリリースから、次世代の Xbox と PlayStation プラットフォーム向けの開発をサポートしており、現在のリリースでもサポートを継続しています。
こちらのページでは、まだ正式版となっていない技術をまとめて紹介しています。これから世に出る技術についての情報をここから入手していただけます。
プレビュー版パッケージは、現在のバージョンの Unity での使用がまだ検証されていないことに注意してください。これらのパッケージの使用は、研究やプロトタイピングの目的のみにとどめ、実制作には使用しないことをおすすめします。これらのパッケージを試してみて、Beta & Experimental Features フォーラムで感想をお聞かせください。皆様のフィードバックやバグレポートは、私たちにとって非常に貴重なものです。
パッケージがそのバージョンのリリースサイクル内で検証済みに移行できると確証が取れた場合には、 パッケージマネージャーからプレビュー版パッケージを利用できるようにします。当然、状況が変化することはありますが、このやり方はどのパッケージを表示させるかを決定するための最初の指針となります。
その他のパッケージは、正式版のレジストリで引き続き利用可能です。将来的には、それらのパッケージが基準を満たしてパッケージマネージャーに含まれたり、非推奨となったりと状態が変化する可能性があります。こうした事情を踏まえた上でなお試してみたい場合は、パッケージマネージャのステータスバーで「add」ボタンをクリックして、「Add package from git URL」を選択し、パッケージ名を com.unity.tiny.all のように書き込んでプロジェクトに追加するのが一番簡単な方法です。ここで、非表示になっているパッケージが他のパッケージの依存先として宣言されている場合は、動作し続けるということに注意してください。パッケージの可視性に関する変更点についての最新の要約は、このフォーラムのスレッドを参照してください。
パッケージのプレビュー版の状態とライフサイクルの詳細については、パッケージの状態とライフサイクルに関するドキュメントを参照してください。
ここでは、パッケージマネージャーで利用可能ないくつかの新しいプレビュー版パッケージと、既存のプレビュー版パッケージのアップデートについて、それらのハイライトを簡単にご紹介します。
Profile Analyzer パッケージは、Unity プロファイラーのフレームのセットからフレームとマーカーのデータを同時に比較することができ、全体的なパフォーマンスの向上と、より合理化されたユーザー体験を実現します。また、Code Coverage を使用すると、テストされているコードのどの行がテストされているかを視覚化することができます。
3D アニメーションの新機能をご覧になりたい方は、Kinematica をプレビュー版パッケージとしてご利用いただけます。もう 1 つのプレビュー版機能である Animation Rigging には、既存のモーションをアクティブな制約条件に変換できるオーサリングワークフローを提供する新しい双方向のモーション転送機能が含まれています。
モバイル向けには、Device Simulator(プレビュー版)の対応デバイスをさらに追加し、また、ユーザー体験(UX)を改善しました。ゲームビューで、特定の解像度やノッチ/カットアウトレイアウトをシミュレートしたり、RAM やチップセットなどのデバイス情報に基づく品質設定のようなデバイス固有のカスタマイズをプレビューしたりすることがより容易に行えるようになりました。
Ray Tracing(プレビュー版)は、Skinned Mesh Renderer コンポーネントと Alembic Vertex Cache を介したアニメーションをサポートするようになりました。Streaming Virtual Texturing(プレビュー版)は、シーン内に高解像度テクスチャが多数ある場合に、GPU のメモリの使用量とテクスチャのロード時間を削減する機能です。
1 月に Unity 2019.3 をリリースした際に発表したとおり、パッケージの形で配布される機能がますます増えており、またパッケージの更新も継続的に行われているため、TECH ストリームのリリース回数を年 3 回から年 2 回に減らします。これにより、リリースの間にツールの安定性と品質について検証し、これらを改善するための安定化フェーズを延長することができます。加えて、メジャーリリースに向けたアップデートの回数も抑えられます。Unity 2020.2 の公開は 2020 年の第 4 四半期に予定されています。
これは、Unity 2020.2 のベータ版がこの夏に利用可能になることを意味します。ベータ版をいち早くお試しになりたい方は、ベータ版のニュースレターに登録して、ベータ版がテスト出来る状態になったタイミングで最新情報をお届けします。
Unity 2020.1 ベータ版の懸賞にご当選された 4 名の方をここで発表させていただきます。Dmitriy、Quentin、Peter、Robert(敬称略)の 4 名です。この 4 名の方にはそれぞれ、NVIDIA GeForce RTX™ 2080 グラフィックスカード 1 台が贈られます。直接ご連絡いたしますので、今しばらくお待ちください。おめでとうございます!
Unity 2020.2 に搭載される技術が気になる方は、今すぐアルファ版にアクセスして、新技術を試してみることが可能です。また、ベータ版の公開もまもなく行われる見込みです。
リリースノートで利用できる機能の概要を確認し、2020.1 の概要を載せたハブページを利用して、プログラマー向けツール、アーティスト向けツール、エディターおよびチームワークフロー、グラフィックス、プラットフォームサポートなど、関心のある分野を掘り下げてみましょう。
コミュニティからのフィードバックは Unity のすべてです。Unity 2020.1 に関するご意見等をぜひフォーラムにお寄せください。