見出し画像

Experimental Entities 0.51がリリースされました。

以下のページを翻訳しました。

Unity 2020 LTSとUnity 2021 LTSの両方で使用できるように、Entitiesとその他のECSベースのパッケージの新しい実験的バージョンが利用できるようになりました。

これから始める方は、インストール&セットアップガイドを参照してください。Entities 0.17 から Entities 0.51 へのアップグレードを予定している方のために、その過程でよくあるヒントを含むアップグレードガイドをまとめました。

最小要件

  • Unity 2021.3.4+

  • Unity 2020.3.30+

注意事項として 実験的なリリースは、製品としてサポートまたは推奨されていませんが、プロジェクトでECSを試したい人のための早期アクセスを提供します。また、皆様からのフィードバックにより、開発の進展につながります。

新着情報

今回のリリースの主な更新点は、Unity 2020 LTSとUnity 2021 LTSの両方に対応したことです。また、3月にリリースされた Entities 0.50 以降のいくつかの問題を修正しました。各パッケージの変更点については、ドキュメント内の変更点一覧(下記リンク)をご参照ください。

また、Entities パッケージをインストールする際に自動的に含まれる以下のパッケージも更新しました。

Entities 0.50 のリリース以来、時間を割いて問題を報告してくださった皆様に改めて感謝いたします。このリリースにおける多くの変更と修正は、皆様からのフィードバックの直接の結果であり、今後もバグが解決され次第、パッチをリリースしていく予定です。

既知の問題点

IL2CPP は、Unity 2021 LTS を使用する際に、generic sharingを使用しないと動作しません。これは、Project Settings > Player > Configuration Section > IL2CPP Code Generation > Faster (smaller) ビルドで有効にすることができます。ゲームでgenericタイプがどのように使用されているかによって、generic sharingを有効にしたIL2CPPビルドでは追加のランタイムコストが発生する可能性があります。この問題について積極的に調査しています。この問題に対処するための私たちの努力の指針となるようなフィードバックを共有してください。

また、既に不具合をご報告いただいている皆様へのフォローアップも行います。バグが発生した場合は、Unity EditorのHelp > Report a Bugからバグを送信してください。そうすることで、問題を適切に調査するために必要な情報を得ることができます。

注目のハイライト

Unity 2021 LTSとの互換性を待ち望んでいた方々のために、Entities 0.17リリース以降のアップデートをまとめます。

Entityのオーサリング

  • Entity Debugger ウィンドウは、Editor 内により組み込まれたいくつかの新しいウィンドウに置き換えられました。

    • インスペクタで検索、選択、検査ができるEntities, Components, System ウィンドウ。

    • Entitiesの全階層を表示し、エンティティを選択できるHierarchyウィンドウ。

    • 現在のすべてのアーキタイプとそれぞれの詳細を表示するArchetypesウィンドウ

  • ECSの構造変化とメモリをプロファイルする2つの新しいProfilerモジュール。

    • Entities Structural Changesプロファイラモジュールは、どのワールド/システムが構造変更を行ったか、またフレームごとにどれだけの時間がかかったかを記録することができます。

    • Entities Memoryプロファイラ・モジュールは、どのワールド/システムがメモリ・チャンクを割り当てたかを記録し、アーキタイプごとに詳細を追加することができます。

  • Entities Journaling は、静的 API と IDE Watch ウィンドウを使用して ECS イベントを記録および探索し、データのライフサイクルを理解してゲームのデバッグを行います。

  • Note: com.unity.dots.editor パッケージは com.unity.entities にマージされました。

System and Entities APIの改良

  • 暗黙のジョブスケジューリングと、順次および並列に実行するジョブのスケジュール機能を可能にする、簡素化された新しい SystemBase タイプ。

  • Entities.WithFilter(NativeArray<Entity> entities) は、Entities.ForEach をフィルタリングして、エンティティのセットに対してのみ反復処理することができます。

  • 新しい IJobEntity ジョブ インターフェイス。エンティティを反復処理する再利用可能でバースト可能なジョブの実装に使用します。

  • EntityQuery にマッチするチャンクのリストが自動的に内部キャッシュされるようになり、構造変更間の EntityQuery 操作のパフォーマンスが大幅に向上しました(特に空のアーキタイプ数が多いタイトルで)。

デバッグの改善

  • 生成された C# コードの検査とデバッグのための可視性

  • 最も一般的に使用される Entity タイプにデバッガ タイプ プロキシが追加され、IDE デバッグ セッションでの状態の検査が大幅に改善されました。

  • スタンドアロンビルドで、デバッグチェックやEntityごとのデバッグ名など、より多くのデバッグ機能を利用可能。

Netcodeのアップデート

  • 物理現象を予測することができるため、プレイヤーが世界の物理オブジェクトと直接やりとりし、影響を与えるようなゲームを構築することが可能になります。

  • ゴーストは、実行時に補間と予測の切り替えが可能です。これにより、クライアントは、すべてを予測するコストを支払うことなく、近いものや重要なものを動的に予測することができます。

  • 様々なクライアント・サーバー構成において、サブシーンのストリーミングとプレハブのオンデマンド読み込みのサポートが改善されました。

  • 接続時にコマンドターゲットを明示的に設定しなくてもコマンドを送信できるようになり、クライアントが複数のゴーストを制御できるようになりました。また、乗り物に乗るときなど、クライアントが操作するゴーストをランタイムに変更することも可能です。

  • コードジェネレータがソースジェネレータに変更され、より堅牢で、同期が取れなくなる可能性が低くなりました。

レンダリングアップデート

  • ハイブリッドレンダラーV2(HRV2)がデフォルトオプションになり、削除されたハイブリッドレンダラーV1(HRV1)に取って代わりました。これにより、ユーザーは GPU パーシステント データ モデルでサポートされるようになり、HRV1 のメイン スレッドのボトルネックが取り除かれ、レンダー スレッドのパフォーマンスが向上しました。

  • HVR2 は様々なシェーダーとの互換性を持ち、これまで欠けていた HDRP および URP 機能を搭載しています。

Unity PhysicsとHavokのアップデート

  • コリジョンとトリガーイベントが共通のインターフェイスを持つようになり、シミュレーションシステムがリファクタリングされ、複数の物理ワールドを使用できるようになりました。

  • Unity Physics と Universal Render Pipeline (URP) の統合が改善され、サンプラーの新しいシェーダーと URP 準拠のマテリアルが追加されました。

フィードバックの共有

先に述べたように、この実験的リリースの多くの変更は、共有されたフィードバックの直接の結果です。このフォーラムは、議論や質問をするのに最適な場所です。もしバグに遭遇した場合は、Unity EditorのHelp > Report a BugからアクセスできるUnity Bug Reporterを使用してください。パッケージ名(バージョン番号付き)をタイトルに含めていただくと、チームが適切にトリアージすることができます。

また、私たちはコミュニティがこれまでに作成したものを見るのが好きです。引き続きこのスレッドで!

今後に向けて

私たちが取り組んでいることの詳細については、この投稿と、フィードバックを共有し、アイデアを提出できる公開ロードマップを参照してください。

ご意見をお寄せいただいた皆様、ありがとうございました。今後ともよろしくお願いいたします。

この記事が気に入ったらサポートをしてみませんか?