9月14日(現地時間)Unity Technologiesは、Unity 2020.2 beta 版が利用可能になったことを発表しました。このリリースでは引き続きパフォーマンス、安定性とワークフローの改善に焦点があてられているということです。
Unity 2020.2 新機能と改善(12月16日更新)
プログラマツールとパフォーマンス向上
プロジェクトが複雑になるにつれて、新しいコード変更のコンパイルがますます遅くなり、チームのワークフローや生産性に影響を与え始める可能性があるため、Unity 2020.2では、コンパイル時間を最適化するためのいくつかの機能を設計されました。
■コンパイルパイプラインで Roslyn reference assembliesを使用し、エディタ用スクリプトをコンパイルする際にアセンブリの公開メタデータが変更されない場合、asmdef参照の不必要な再コンパイルを回避します。例えば、プライベートメソッドやフィールドだけを変更した場合、変更されたアセンブリだけが再コンパイルされます。Roslyn analyzers を使用すると、ユーザーの反復ワークフローを中断することなく、Unity エディタ内のバックグラウンドで C# code analyzers を非同期的に実行し、コマンドラインから同期的に実行することができます。UnityプロジェクトでRoslynアナライザーとルールセットファイルを使用して、スタイルや品質などの問題がないかコードを検査することを検討してみてください。Unity 2020.2では、C#のコンパイル時に “-deterministic” compilation オプションも提供されるようになりました。ただし、ワイルドカード(*)付きのAssemblyVersionの使用はサポートされていません。
■Editor Iteration Profiler (EIP)は、ドメインのリロード中にコードのボトルネックを特定するのに役立ちます(Enter Playmode、スクリプト・コンパイルなど)。これは実験的な機能であり、research Packageとして利用可能です – 指示に従って試してみて、フィードバックを共有してください。
■Root Namespace(ルート名前空間)は、asmdefインスペクタの新しいフィールドで、UnityやVisual Studio、Riderで新しいスクリプトを作成する際に自動的に名前空間を追加するために使用されます。
■IL2CPP プラットフォームでの 0-Change リビルド。マテリアル、シェーダー、プリファブなど、コードの変更を伴わない変更を行うと、.NET アセンブリーから C++ への IL2CPP の変換がスキップされます。これにより、アーティストのワークフローが改善され、反復作業が高速化されます。
■IL2CPP プレーヤービルド時間の改善。.NET アセンブリから C++ ファイルへの変換プロセスは、シングルスレッドで行われてきました。Unity 2020.2 では、変換を処理するアプリケーション (il2cpp.exe) が最新のマルチコア プロセッサを利用しているため、IL2CPP プレーヤの全体的なビルド時間が大幅に短縮されています。詳細については、フォーラムのスレッドを参照してください。
■C# 8をサポート。Unity 2020.2 では、デフォルトのインターフェイス メソッドを除く、すべての新しい C# 8 の機能と機能強化がサポートされています。
■Time.deltaTimeの安定性が向上。フレーム時間の計算がより安定するようになり、ゲームが安定したフレームレートで実行されているときに、よりスムーズなオブジェクトの動きを提供します。Unity 2020.2では、iOS、macOS、PS4、Switch、tvOS、UWP、Windows、Xbox Oneでの計算時間安定性が改善され、Android、Windows/Linux on Vulkan、XRの改善は今後行われます。詳細はこちらのフォーラムのディスカッションを参照してください。
■Unity Linker は静的解析を行い、管理されたコードをストリップします。また、多くのAttributesを認識し、それが識別できない依存関係に注釈を付けることができます。Unity 2020.2では、このツールはMono IL Linker に合わせてAPIのアップデートを受けました。2020.1からは、いくつかの単純な反射パターンが自動的に検出されるようになり、link.xmlファイルを使用する必要がなくなりました。
■2020.2ベータ版では Unity Safe Mode が利用できるようになり、スクリプトのコンパイルエラーが発生したプロジェクトを開いた際のUnityの動作が改善されています。
エディタ起動時にコンパイルエラーが発生した場合、セーフモードに入るように促されます。セーフモードは、エラーを解決するための最良の環境を提供するために設計されており、プロジェクトのアセットの不要なインポートを待たずに、素早くプロジェクトを機能的な状態に戻すことができます。この機能により、プロジェクトを新しいUnityのバージョンにアップグレードするプロセスが簡素化され、スピードアップし、ライブラリフォルダに誤ったインポートアーティファクトが含まれているケースを減らすことで、大規模プロジェクトに取り組むチームを支援することができます。フォーラムでフィードバックを提供することができます。
■ランタイムAPIとして既存のProfilerの統計情報を公開しました。これにより、メモリやレンダリングなどの既存のProfiler領域のパフォーマンス統計の値をPlayersで読み込むことができます。そのデータを利用して、ターゲットデバイス上で実行中のプロジェクトでパフォーマンスのヘッドアップディスプレイ(HUD)を表示したり、その他のパフォーマンスツールを構築したりすることができます。
■ビジュアライゼーションの改善も多数追加されています。Profiler Windowにチャートを追加できるようになったことで、既存またはユーザーが作成したProfiler統計情報のパフォーマンスコンテキストがより明確になりました。 Flow Events charts は、プロファイラ・タイムラインにシリアル・タスクの依存関係を表示できるようになり、アプリケーションが時間を費やしている一連の操作の中でどのタスクに時間を費やしているかを特定するのに役立ちます。
さらに、以下を含む多数のコアパフォーマンスの改善が行われています。
- Camera.mainは、呼び出すのにパフォーマンスコストのかかる関数でしたが、今回の最適化により、専用のオブジェクトリストが追加されました。この最適化により、メイン・カメラ・タグを持つオブジェクトの専用リストが維持され、このリストの検索はほぼ瞬時に行われます。
- モデルインポート時のUVアンラップは、アンラップが別のプロセスで行われるため、時間のかかる操作でした。このプロセスが生きているため、この操作が最大50倍速くなりました。
- 一般的なギズモとLightProbeギズモの両方で、ギズモのレンダリングが大幅に高速化されました。
- エディタ内のネストされたプレハブの読み込みが最適化され、最大20倍に高速化されました。
エディタとチームワークフロー
ワークフローの改善は、今年のリリースの大きな柱の一つであり、ユーザーからのフィードバックや要望をモニタリングし、日常的にエディターとやりとりするすべてのチームのために、どのようにエクスペリエンスを改善できるかが検討されてきました。また、プロジェクトやツールのローカライズに役立つ新しいツールの初期バージョンを試すためにテスターを募集しています。
■Localization package は、複数の言語や地域に対応したテキスト、オーディオやテクスチャなどの文化に特化したアセットをプロジェクトに追加するためのツールを提供しています。このプレビューパッケージを入手するには、パッケージマネージャーの「Add package from git URL」で com.unity.localization と入力するか、ドキュメントの指示に従ってプロジェクトのマニフェストを編集して追加します。このガイドは始めるのに役立ち、こちらのフォーラムで意見を共有することができます。
■エディターパッケージのローカライズ。Unity、パッケージ、カスタムツールのユーザーや開発者は、この新しい実験機能を使って日本語、韓国語、中国語簡体字、中国語繁体字のサポートを追加することができます(言語パックモジュールをインストールした場合に有効になります)。サポートされている言語や希望する機能の辞書 ( GNU gettext を使用した PO ファイル) を作成できます。詳細はこちらから。
■PhysX Articulation Body componentの改良。Rigidbody階層とArticulationBody階層を正規のジョイントでリンクできるようになりました。これは、ロボット工学や物理学をベースとしたゲームで作業をしている場合に特に役立ちます。さらに、物理ベースの inverse kinematics(IK)のサポートを含む新しいAPIが公開されました。
■Asset Database の整合性チェック。Unity 2020.2では、インポーターによって生成されたアセットがオリジナルのアセットやその依存関係と一貫性を保っているかどうかをチェックする機能が提供されています。これは、手動のReimportまたはコマンドラインで有効にすることができます。
■Unity Accelerator は、ユーザーが自分のアクセラレータに格納されているアイテムのアクセス制限を集中管理できる新しいポリシーテーブルとともにキャッシュをミラーリングする機能を備えています。フォーラムはこちらから。
■AssetPostprocessor の Prefab サポート。OnPostprocessPrefabが実装されている場合、ポストプロセッサはPrefabを変更することができます。追加されたすべてのオブジェクトは、変更がソースのPrefabに適用されるのを避けるために、DontSaveInEditor フラグを取得します。
■Prefabs のインポートは、正確性、パフォーマンス、スケーラビリティ、キャッシュ性、その他の属性を向上させるための一連の改善がされています。script dependenciesについては、MonoBehaviours を含む Prefab がスクリプトと同期し、コンパイルエラーが発生しても参照が失われないようになりました。この作業についてはフォーラムで詳しく説明しています。
■Unity Hub バージョン 2.4.1 では、プロジェクト、ダウンロード、Unity エディター、モジュールを管理するためのメッセージングやワークフローがより明確になりました。また、ゲーム開発をより楽しく学べるように、ダイナミックなダウンロード可能なテンプレートが新たに追加されました。
■パッケージマネージャ – スコープ付きレジストリのUXと管理が改善されました。新しいスコープ付きレジストリがプロジェクトに追加されると、新しいダイアログがユーザーに通知されます。プロジェクト設定からプロジェクト内のスコープ付きレジストリをすべて管理(レジストリとスコープの追加/削除)。Unity Registry “と “My Registry “パッケージを作成者別にフィルタリングして、ソースレジストリからパッケージをより簡単に閲覧または検索できるようになりました。
■クイック検索2.0では、より多くの検索トークンが追加され、クエリを入力する際に役立つコンテキスト補完が提供されます。シーン検索は、もうオープンシーンに限定されず、プロジェクトのすべてのシーンと Prefab を一度に検索できるようになっています。これは、それらのコンテンツをインデックス化することで可能になっていますが、バックグラウンドで行われており、インデックスマネージャーを使用して設定することができます。
Unity 2020.2では、以下のようなエディター全体のクオリティオブライフの改善も行われています。
- インスペクタの配列とリストは並び替え可能で、アトリビュート[NonReorderable]はこの機能を無効にすることができます。
- シーンの移動/回転/スケールハンドルの線が太くなり、設定可能になりました。
- 2DArrayと3Dテクスチャのテクスチャインポートパイプライン – カスタムC#コードを書かなくても、「フリップブック」配列/3Dテクスチャを直接インポートできます。
- 階層ビューの改善
- 新しい「Create Empty Parent(空の親を作成)」項目
- Prefabsのバージョン状況が表示されます。
- 新しいオブジェクトを作成するとき、デフォルトでは Rename モードになっています。
- 階層ビューでオブジェクトを “default parent “としてマークすることができるので、新しいアセットをSceneにドラッグすると、そのオブジェクトの親になります。
- メッシュインスペクタは、ブレンド形状を可視化することができます。
- 複数のプレハブを同時にシーンにドラッグすることができます。
- インスペクタのプロパティ コピー/ペーストは、ユーザー定義のC#型をサポートしています。
- プロジェクト設定のスクリプト#define directivesが配列として表示されるようになりました。
- 既に選択されているオブジェクト上で選択されたフレームは、そのピボットポイントにズームします。
- プロジェクトウィンドウのアセットの名前の変更と移動は元に戻せない
- GameObjectインスペクタは名前フィールドの横に選択されたオブジェクトの数を表示。
アーティストツール
Unity 2020.2では、アグリゲート(集計)ワークフローとアーティストツールを使用した一般的なユーザーエクスペリエンスをアップグレードすることで、クオリティオブライフの修正に引き続き注力しています。すべてのノードベースの開発ツールに一貫性を持たせ、レンダリング パイプラインを成熟させることを目指しているということです。
■Shader Graph 10.0には、以下のテクニカルアーティストのためのワークフローを改善するいくつかの新機能が含まれています。
- Graph Editorのパフォーマンスが向上しました。グラフの終点は、モノリシックなマスターノードではなく、機能ブロックのモジュラーコレクション(マスタースタック)になりました。これによって、1つのグラフをLitやHairなどのシェーダーモデル間で簡単に切り替えられます。
- Graph Inspectorは、マスターノードやグラフ上の他のノードからの設定を1つの場所に統合し、グラフのアクティブなターゲットとシェーディングモデルも制御します。
- グラフは、現在の設定選択と互換性のある機能とノードが視覚的に表示されるようになりました。
Unity 2020.2では、既存のグラフがマスタースタックを使用するようにアップグレードされることに注意してください。これらのワークフロー改善の詳細については、Shader Graphパッケージのドキュメントのアップグレードガイドをご確認ください。
■Unity 2020.2でのVFX Graphのアップデートでは、次の多くの機能や改善点が含まれています。
- Output Eventsの追加により、ユーザーはC#のデリゲートインターフェースを介してSpawn Eventsに基づいてライト、サウンド、物理的なリアクション、またはゲームプレイを同期させることが可能になりました。
- 実験的な機能のうち、スタティックメッシュサンプリングでは、メッシュから直接パーティクルをスポーンできるようになりました。
- マルチメッシュ機能では、同じメッシュ出力で最大4つのメッシュを使用することができ、パーティクルごとに多彩なエフェクトを簡単に追加することができます。
- パーティクルごとのLODでは、メッシュ出力の画面サイズに応じてLODメッシュを設定することで、エフェクトを最適化することができます。
- オフスクリーンパーティクルのレンダリングを破棄する最適化として、frustum cullingを追加しました。
実験的な機能は、環境設定 > ビジュアルエフェクトの実験的なチェックボックスの後ろに隠されています。また、Unity 2020.2ではないようですが、Unity JapanのYoutubeチャンネルでは先日、VFX Graph を使った花火エフェクトの作成動画が公開されています。
■グローバルイルミネーションは、GPUとCPUのライトマッパーの両方でバウンス制限が増やされています。さらに、ライトマップの品質を向上させるためにブルーノイズサンプリングを使用するようになったり、メモリが少なくなったときにプログレッシブ更新を無効にすることで、大規模なライトマップをベイクするときのGPUライトマッパーのメモリ使用量を削減し、ライトマッパーが内部的にメモリ使用量を自動的にスロットルする機能を追加されています。これにより、より大きなプロジェクトをGPU Lightmapperでベイクできます。
■Unity 2020.2では、シネマティクスやメディア・エンターテインメント業界で作業をしている人のための改善もされています。
- Recorder APIにより、継続的インテグレーションシステムのEditorでのビデオ録画の自動化が可能になり、チームメンバーがアセットを更新して新しいビデオバージョンを自動的に生成する場合に便利です。
- ProResエンコーディングがUnity Recorderで利用可能になり、WindowsとMac Editor上でネイティブの高品質でビデオ編集に適したビデオ出力が可能に
- より多くのパスが利用可能(モーションベクター、より多くのライティングパス)、AOV Recorder用の圧縮EXRとHDR出力(HDRRPのみ)。AOV Recorderでは、NukeやDa Vinci Resolveのようなソフトウェアで外部合成するためのレンダリングパスをエクスポートすることができます。
が、プレビュー版を作成し、インストールしてランタイムUIの新機能にアクセスできるようにしました。パッケージマネージャで「Add package from git URL」でcom.unity.uiを追加することで利用できるようになっています。TextMesh Proのコアとなるテキスト技術は、フォントをレンダリングする方法としてUI Toolkitに統合されており、新しい入力システムとSpritesとSpriteAtlasのサポートが追加されています。また、GameView に UXML と USS の「live reload」を追加しました。
■Preview パッケージとして提供されている UI Builder については、複数選択のサポートや、キャンバス内で直接テキストを編集できるようにするなど、いくつかのユーザビリティの改善が行われました。サブドキュメントをコンテキストまたは分離してオーサリングすることで、複数の UI ドキュメントでの作業が改善され、さらに、エディタ拡張機能のオーサリングを有効にすると、エディタ内での使用を目的としたコントロールを見ることができます。
スクリプト可能なレンダーパイプライン
Scriptable Render Pipeline (SRP) に関連するユーザーのフィードバックを取り入れて進化させ、グラフィックパッケージの品質を向上させることを目指しています。ロードマップはこちらから確認できます。
URPのスクリーンスペースのアンビエントオクルージョン(画像提供:Synty Studios)
■バージョン10になった Universal Render Pipeline (URP)は、ビルトインレンダリングパイプラインと同等に近づける新機能を備えています。
- スクリーンスペースアンビエントオクルージョン(SSAO)を使用すると、シーン内のアンビエント照明のビジュアルクオリティを向上させることができ、周囲のサーフェスとアンビエント照明への露出度に基づいて、特定のサーフェスの明るさや暗さを近似化します。
- 使用していない特定のシェーダを取り除くことで、ビルドデータサイズを小さくし、ロード時間を改善することができます。
- URP Lit Shader では、ディテール、ディテール法線、高さ、視差マップなどの追加のサーフェス入力が可能になりました。
- URPは、新しいコンプレックスライトシェーダを通して、クリアコートマップをサポートするようになりました。クリアコートマップは、車のペイントのようなマテリアルをシミュレートしたり、模倣したりするために使用できます。
■ High Definition Render Pipeline (HDRP) )のバージョン10に新たに追加された機能には、ライティングのデバッグに役立つより良いツールが含まれています。
- ライティングデバッグビューモードでは、シーン内のライティングの様々なコンポーネントを分離して可視化し、デバッグすることができます。
- デカールシステムのさらなる改善が含まれています。これらの改善の一環として、新しいデカール レイヤー機能では、レイヤーごとにどのデカールがどのマテリアルに影響を与えるかを指定できます。
- パストレースは、霧の吸収とサブサーフェススキャッタリングをサポートしており、肌のような有機材料を、荒くてプラスチックのようなものではなく、滑らかで自然に見せるために使用します。HDRPには、高品質のデフォーカスブラーなどのパストレース画像を生成するための新しい被写界深度モードも含まれています。
- レイトレーシングにも改善があります。HDRPのレイトレーシングには、トランスペアレンツ用のフォールバック機能が追加され、再帰的レンダリングや屈折の有無に関わらず、トランスペアレンツのビジュアルが一貫したものになりました。
- HDRPは透過性と透過性のあるGameObjectのために、色付きのレイトレーシングシャドウをサポートしています。さらに、レイトレースされたシャドウのためのノイズ除去機能は、より高品質な結果を生み出すようになりました。
- HDRPのレイトレース反射(RTR)ソリューションは、窓や水のような透明な表面に便利な透明なマテリアルをサポートするようになりました。
HDRPの新しい追加と改善点についての詳細はこちらから
2Dツール
安定性とパフォーマンスの向上に加えて、最近の2DツールとUnity Editor内の2Dエクスペリエンスの改善がされています。
■簡素化されたメニュー
2Dメニュー項目は、オブジェクトとアセット作成のための専用トップレベルメニューに表示されるようになりました。また、いくつかの新機能のメニューも追加されています。この改善されたユーザーエクスペリエンス(UX)は、新しいユーザーにとってはより直感的に、2D プロジェクトで作業するユーザーにとってはより高速になるはずです。
■改良された 2D デフォルト アセット
以前は、新しい 2D GameObject は小さなピクセルスプライトで表現されており、GameObject を使用可能にするためにユーザーが変更しなければなりませんでした。
今では、Collider の 2D 形状にもマッチするプリミティブな形状の 2D GameObject、いくつかの定義済みの 2D Physics、Tilemaps、Sprite Shape オプションの中から選ぶことができ、ゲームプレイのプロトタイピングと一般的な操作性が向上しました。フォーラムはこちらから
■Tilemap Extrasのプレビューパッケージ
2D Extras GitHub リポジトリのツールの一部がパッケージマネージャーから利用できるようになりました。これにより、新しい変更点をパッケージに統合している間に、より簡単にツールにアクセスできるようになります。このパッケージの機能のいくつかは、アニメーションタイル、すべての Tilemap タイプのルールタイル、異なるブラシです。詳しくはTilemap Extrasのドキュメントをご覧ください。長年にわたってリポジトリに貢献してくれた皆さんに感謝します。Tilemap Extrasフォーラムに参加して、ご意見をお聞かせください。
■2D IKを備えた2Dアニメーション5.0
新しい 2D Animation パッケージバージョンでは、2D IK はスタンドアロンパッケージではなくなりました。改良点としては、非表示にできるギズモやIKハンドルの視覚化が改善されました。2D IKは、2D骨格アニメーションを使用しているアニメーターが、親骨にリアルに追従して骨のチェーンの位置と回転を自動的に計算することで、時間を節約することを可能にします。
プラットフォーム
拡張現実やバーチャルリアリティ、モバイル、Web、デスクトップ、コンソール向けのエクスペリエンスを構築する場合でも、主要なプラットフォームパートナーと緊密に連携して、開発プロセスが次に来るものに最適化されるようにします。
■Apple Siliconのネイティブサポート。Unity 2020.2では、スタンドアロンプレーヤー用のAppleシリコンのネイティブサポートにより、次の進化を遂げるMacハードウェアをターゲットにすることができます。詳細な情報や議論については、フォーラムをチェックしてください。
Appleシリコン上で動作するUnity
2.0 には、可変リフレッシュレート、スケーラー、Adaptive Performance Simulator 拡張機能など、さまざまな新機能を導入した新しいサンプルプロジェクトが搭載されており、あらゆるデバイスで Adaptive Performance をエミュレートすることができます。詳しくはフォーラムを確認してください。
■Input System 1.1 は一連の修正といくつかの改善をもたらします。リバインドをJSONとして保存・ロードできるようになりました(RebindSaveLoad.csサンプルスクリプトを参照)。デバイスレイアウトをプリコンパイルできるようになり、デバイスのインスタンス化時間とガベージコレクション(GC)ヒープコストが大幅に削減されました。Input Systemのフォーラムでフィードバックに協力することができます。
Unity 2020.2ベータ版:サービス
(UDP) を使用すると、単一のハブを通じて複数のアプリストアにゲームを配信することができます。Unity2020.2では、UDPパッケージはUnityIAPとは独立して動作します。つまり、UnityIAPがプロジェクトに実装されているかどうかに関わらず、UDPパッケージをプロジェクトに追加することができ、実装されている場合は競合のリスクを冒すことなく追加することができます。UDPを有効にするには、サービスウィンドウに移動するだけです。
Game Foundationへのアップデートでは、事前に構築された拡張可能な共通のアプリ内課金(IAP)ゲームシステムであるGame Foundationに、インベントリ、通貨、購買、ゲーム内ストア機能を素早くゲームに追加するオプションが追加されています。
Unity 2020.2 beta リリースノートの確認はこちらから
今後のUnity 2020 LTSと2021について
■Unity 2020.2のフルリリースは、今年の後半にTECHリリースレベルの安定性でリリースされる予定です。ベータユーザーの皆様からの早期のフィードバックは、この目標に向けた作業の重要な要素です。
■Unity 2020 LTSのリリースは現在、2021年3月に予定されています。Unity 2020 LTSには、2020.1と2020.2のすべての新機能と改善点、その後のアップデートで追加したすべての修正点が含まれます。長期サポート(LTS)リリースは、近い将来にプロジェクトのリリースを目指すユーザーに最大限の安定性をもたらします。
■Unityは、今年以降を見据えて仕事の進め方を進化させています。選択したものに焦点を当て、より良い方法で作業を進め、ユーザーにとって最も重要な機能をより高い品質で提供するために、より大きなチームを編成しているということです。2021年の注力分野については、こちらで詳しく紹介されています。
Unity 2020.2の新機能ウェビナー
Unity 2020.2ベータ版のウェビナーでは、今後の新機能の一部が紹介されます。また、前回のベータ版と同様に、研究開発チームのメンバーがライブで質問に答えます。
ウェビナーは、10月8日 11:00 EST (5:00 pm CET)から、日本時間では10月9日(金) 1:00からです。
ウェビナーの登録はこちらから
Unity 2020.2 TECH ストリームがリリース(12月16日更新)
Unityは、12月15日Unity 2020.2 TECH ストリームをリリースしました。
Unity 2020.2 TECH ストリームには、本制作より前の段階のプロジェクトに取り組んでいる方や最先端の技術を駆使して競争力のある製品を作りたい方のための、最新機能がすべて盛り込まれています。本バージョンの Unity では、スムーズなアップグレードパスも確保されています。
このリリースでは、ワークフロー、安定性、パフォーマンス改善など400 を超える改善点があります。
詳しい新機能はこちらから確認してください。Beta版リリースのときにまとめたものですが、新しく公開された動画を追加しています。
より詳しい情報はこちらから
Unity 2020.2(Unity Hub)のダウンロードはこちらから
Unity 2020.2 beta is now available and we welcome your feedback
コメント