更新履歴0.17.x
0.17.90
余談
時間が経過しましたので、少し近況に触れておきます。
物理的処理の内部的試行を継続中です。
異なる参考資料に遭遇して、挙動の一部に進展がありました。
まだこの試行は初期段階であり、挙動と処理速度の両面に課題があるため、展開は不透明です。
pre-release Entities 1.0(Entities 1.0.0-pre.15)へ更新しました。この版では、Unity Physics併用下でもTransformsがLocalTransform駆動になっています。
フォーラムの様子からも、Transforms関連はまだ流動的なようです。
EntitiesのAspectの制限により、ある処理が並列化に適合しないため起きている処理速度の問題に対する回避策を進めました。
0.17.78
余談
時間が経過しましたので、少し近況に触れておきます。
内部的試行を継続中です。
物理的処理であるため、必ずしも実用に到達するか難しいところです。
また、experimental Entities 1.0の試行を兼ねているという点で、すぐに公開版に統合できないという側面もあります。
以下のような点でも追加の時間を要しています。
experimental Entities 1.0が0.51から目立った変更を伴っていて、いくらかの不具合を含んでいるようです。
よくコンパイル後に、サブシーンの状態に問題が起き、エディタ再起動後まで、この状態を修正するClear Entity Cacheボタンが正常に機能しないという状況に陥る。
0.51から変わったexperimental Entities 1.0での新しいAspectなどの機能/作法によって、以下のような見極めのための再試行の必要性が発生していること。
適切な方法
可能だが非効率な方法
本来可能だがBurstで失敗する可能性
Burst不可能な方法
0.17.72
Discord GameSDK Deprecation Noticeなる通知がありました。
概略
Discord GameSDKは一部機能を残して、Tuesday May 2, 2023に多くの機能が廃止となるようです。
Virtueldへの影響
Virtueldでも廃止対象の機能に依存しており、後に挙動を改良する想定でした。
この時点では以下のように想定しています。
該当期日以降、ロビー/ネットワーク機能が廃止されるため、オンライン対戦に関する主要部分は機能しません。
該当期日以降、存続するDiscord GameSDKの機能は動作する可能性があります。
想定しない動作がある場合には、調整することを検討しています。
オンライン対戦/ネットワーク関連の代替案などは未定です。
0.17.48
内部的試行を継続しています。
内部的試行については基本的な段階で課題が残っているため、いましばらく表面的には小さな変化の期間が継続しそうです。
0.17.33
内部的 Experimental Entities 1.0に関する試行錯誤が続いています。
引き続き検討中です。
これまでに触れた部分で、理解の不完全な部分をここで補足します。
作業の内容については、実際には試行している機能をExperimental Entities 1.0に切り替えた上で、変更時の誤りや試行そのものを前進させることにも時間を要しています。
Aspectは結構な柔軟性を持つ新機能のようです。今後、細かくカスタムの型を作っていくことで、表面上の記述の手間や読み返しのしやすさを改善できる可能性がありそうです。
Unity PhysicsでのRigidBodyAspectでは、異なるIComponentData型を複合した入出力からなる操作メソッドが定義され、やりたい操作への見通しが以前の拡張メソッド方式より良くなっていることを見て、Aspectの有効性が明確になりました。
廃止予定とされるEntities.ForEachの置き換え方法については、通常のforeachを用いる記法とは別に、IJobEntity形式も手軽さとわかりやすさでは有効に見えます。
多様していった際のビルドの負荷などについてはまだ不明です。
Transformsの置き換えについては、Unity Physicsパッケージの有無で、適用状態が違うとの情報を見ました。まだ詳細は未確認です。
最終的にEntities 1.0時点で要求される変更は、やはり多くなりそうだと予想しています。そのため、すぐにメインプロジェクトのExperimental Entities 1.0適合を開始するかどうか未定としています。
0.17.30
内部的 Experimental Entities 1.0に関する試行錯誤が続いています。
Bakerでできる処理、そうでない処理で紆余曲折しています。そのため、いましばらく表面的更新が少ない状態が続いています。
Unity更新に伴い一部パッケージが更新となりました。
また、Input System 1.4.3に更新しました。
0.17.28
内部的 移行検討
Experimental Entities 1.0が登場したようです。
情報が多いため、現在理解した内容の一部を大雑把に記述します。
直前の情報で、目立った変更点があるらしいため、現時点では0.17➡0.51の作業より、0.51➡1.0 preの作業試行は、大掛かりになる可能性があることも予想しています。
Unity 2022.2ベータと互換があるようです。これにより、アップグレードが実現する場合、Unity 2022.2へのアップグレードも伴うことになります。
Hybrid RendererはEntities Graphicsという名称になったようです。
Rivalに関する情報にも触れられていました。
パッケージEntities 1.0.0-exp.8 September 27, 2022
Conversion➡Baking
目立った変更点だと見ているものです。
変換に関するAPIが再設計され、Bakingと呼ぶものになり、1.0になる前に削除されるようです。
Transforms(座標変換)が行列に基づくものから、回転(四元数)/位置などからなる8成分に。(このExperimentalパッケージよりあと)
Entities.ForEachがforeachベースのAspectに段階的に移行。
IEnableComponentで有効/無効の切り替えが効率化。
AlwaysUpdateSystemが標準動作に。
ComponentDataFromEntity➡ComponentLookup
BufferFromEntity➡BufferLookup
...(まだまだある模様)
内部的試行中の機能にExperimental Entities 1.0の適用ができるか開始しました。しばらく具合を見ていきます。
0.17.23
巷の動き
内部的 試行をしている間に巷で以下のような進展があったようです。
VRM-1.0がリリースされたようです。これに対応するUnity用パッケージはUniVRM v0.104.0。
Virtueldでは0.17.23現在、VRM-0.x系を利用していますから、VRMに関する大きな一歩です。なお、VirtueldでのVRM-1.0系対応/UniVRM更新の有無/時期については状況を見ている段階です。依存関係のあるVRoid SDK側との関係や、新旧仕様の影響のほど、処理の変更がどの程度必要か見ていく必要があります。
Rival - DOTS Character Controller for Unity Version 0.5.0 - September 07, 2022
以前よりUnityフォーラム上で存在を知り、アセットとしてリリースされていました。Unityが最近これを取得して無料アセットになったようです。また、Rivalの開発者がUnityスタッフを冠するようになった模様です。
導入の可能性はまだ不明です。
0.17.14
しばらくここでの補足がなかったので加えておきます。
内部的 物理関連での異なる手法を試行中です。
これまでも物理関連であれこれ試してきていますが、アニメーションなどを含めて全体をうまく制御するという点ではまだ不十分な状態です。そのため、異なる手法も見ておきたいところです。
検討した挙動は部分的にうまく機能することがわかりましたが、全体ではうまくいっていない部分もあるため、次の段階に進めるか不明です。
使える可能性が確認できた場合でも、PhysXベースからUnity Physicsへの対応作業、ほかの挙動との置き換えや統合などもあります。
そのようなことから、ある程度したところで、作業テーマを切り替える可能性もあります。
0.17.0
マイナーバージョンを引き上げました。
余談 🎶音楽関連のBeepBox 4.1の移植のほとんどは、最小限のものだけにした別プロジェクト上で作業してきました。このプロジェクトには不要なパッケージをほとんど含まないようにしました。このような環境であれば、近年のUnityで悩まされるコンパイルが遅い系の問題を遠ざけることができていることを体感します。
逆にVirtueld本体側では、この類の問題の影響を受けやすい規模の依存関係を有しています。あれこれ細かい対策はあるものの、ある程度以上の複雑さのあるプロジェクトでは、標準で快適な状態とは言い難いものがあります。Unityフォーラムで品質/新機能/開発速度/企業がどこへ向かうのかなど、いろいろな話題を見かけます。すぐに異なる状況を得ることはなさそうですが、ツールとしてのUnityの好転を願いたいです。