Experimental Entities 0.50がリリースされました。
以下のページを翻訳しました。
皆さん、こんにちは。この度、Entities とその他の ECS ベースパッケージの新しい実験的バージョンを公開しました。このバージョンには、約1.5年分のバグ修正、API のクリーンアップ、パフォーマンスの向上が含まれています。これから始める方は、インストールとセットアップのガイドを参照してください。Entities 0.17 から Entities 0.50 にアップグレードされる方のために、そのプロセスにおける一般的なヒントを含むアップグレードガイドをまとめました。また、このリリースでは、Unity 2020.3.30 を使用する必要があります。
注意事項として 実験的なリリースは、製品としてサポートまたは推奨されていませんが、プロジェクトでECSを試してみたい人のための早期アクセスを提供します。また、皆様からのフィードバックにより、開発の進展につながります。
新着情報
今回の Entities 0.50 リリースでは、以下のパッケージが Unity 2020 LTS と共にテストされています。各パッケージの変更点の全リストは、弊社ドキュメント(下記リンク)の変更点をご参照ください。
👇こちらご覧ください!
また、Entities パッケージをインストールすると自動的に含まれる、以下のパッケージも更新しました。
このリリースにおける多くの変更と修正は、フォーラムから寄せられたフィードバックと、報告されたバグから直接もたらされたものです。これらの問題を私たちのチームに知らせるために時間を割いてくれた皆さん、そしてフィードバックをくれた皆さんに感謝します。
注目のハイライト
エンティティのオーサリング
Entity Debugger ウィンドウは、Editor 内により組み込まれたいくつかの新しいウィンドウに置き換えられました。
エンティティ、コンポーネント、システムウィンドウ:インスペクタで検索、選択、検査ができる
ヒエラルキーウィンドウ:エンティティの全階層を表示し、エンティティを選択できる
アーキタイプウィンドウ:現在のすべてのアーキタイプとそれぞれの詳細を表示します。
ECSの構造変化とメモリをプロファイルする2つの新しいProfilerモジュール。
エンティティ構造変化プロファイラモジュールは、どのワールド/システムが構造変化を発生させたか、そしてフレームごとにどれだけの時間がかかったかを記録することができます。
エンティティメモリプロファイラーモジュールは、どのワールド/システムがメモリ・チャンクを割り当てるかを記録し、アーキタイプごとに詳細を追加することができます。
エンティティジャーナリングは、静的APIとIDEウォッチウィンドウを使用してECSイベントを記録および調査し、データのライフサイクルを理解してゲームをデバッグします
注: com.unity.dots.editor パッケージは com.unity.entities にマージされました。
System と Entities APIの改良
暗黙のジョブスケジューリングと、順次および並列に実行されるジョブのスケジュール機能を可能にする、新しい簡素化された SystemBase タイプです。
Entities.WithFilter(NativeArray<Entity> entities) は Entities.ForEach をフィルタリングして、エンティティのセットに対してのみ反復処理を行うことができる。
新しい IJobEntity ジョブインターフェイスは、エンティティを反復処理する再利用可能でバーストコンパイル可能なジョブを実装するためのものです。
EntityQuery にマッチするチャンクのリストが自動的に内部にキャッシュされるようになり、構造変更間の EntityQuery 操作のパフォーマンスが大幅に向上しました(特に空のアーキタイプ数が多いタイトルで)。
デバッグの改善
生成された C# コードの検査とデバッグのための可視性。
最も一般的に使用される Entities タイプにデバッガ タイプ プロキシが追加され、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を使用してください。パッケージ名(バージョン番号付き)をタイトルに含めると、チームが適切にトリアージできるようになります。
今後に向けて
DOTSのロードマップについては、こちらの記事でご紹介しています。
引き続きご意見をお寄せいただいた皆様、ありがとうございました。今後ともよろしくお願いいたします。