【TinyUnity】遂に物理演算対応!?ProjectTiny0.21がリリースされました!

“Project Tiny” 0.21 is available: includes Physics and fixes

https://forum.unity.com/threads/project-tiny-0-21-is-available-includes-physics-and-fixes.819945/

ついにUnity.Physicsに対応しました!

実は物理演算に全く対応していなかったProjectTinyですが、この度0.21がリリースされたことにより、遂に物理演算である Unity.Physicsに対応しました。

実は、サンプルとして公開されていたTinyRacingの当たり判定処理は算術関数を用いて計算されていたので、物理演算やコリジョンシステムは使われていなかったんですね。

今までどうやっていたかというと

math.distancesq関数で一つ一つの距離を求めて一定距離以下だったら当たった判定にしてました。
超原始的。

しかし、詳しくは後述しますがDOTS向けの物理演算エンジンであるUnity.Physicsに今回から対応したことで ICollisionEventsJobが利用できるようになりました。
単純な話、コリジョンシステムです。

さて、今回のアップデートは個人的には結構デカいアップデートだったんじゃないかなと思ってます。
以下が今回のアップデート情報です

今回からの追加要素

  • JobSystemのAPIに完全対応しました(でもシングルスレッド動作…)
  • シャドウマップの品質が向上しました
  • 動的に移動できるライトが実装されました(ポイントライト的な奴)
  • sRGBの描画が改善されました
  • ProjectTiny向けAnimationシステムである「Tiny Animation」のPreview公開
    (これに関してはまだまだ早期段階なのであくまでもテスト公開的な立ち位置です)
  • Androidでアプリの一時停止/再開が正常に機能するようになりました。
  • DOTS向け物理演算システム、Unity.Physicsに対応しました。
  • 固定フレームレートの定義がスクリプト側から可能になりました。
    このメカニズムは、次のDOTSリリースで変更されますが、
    現時点では、TinyRacingビルド構成を参照することになります。
  • スクリプトを介したネイティブ解像度レンダリングのために「RENDERER_FORCE_DIRECT」が定義されます
    レンダリング構成のより強力なサポートは近日提供予定になっています

現在確認されている不具合

  • Safari iOS:Webアセンブリバージョンをロードできない場合があります。
    これはSafariのWebAssembly実装の一般的なバグであり、Appleに報告されています。
  • Safari:sRGBがサポートされていないためレンダリングが暗くなってしまいます。
  • Firefox:Chromeと比較した際にFirefoxの方が全体的にパフォーマンスの低下が確認されています。

自分の目で確認してみたい!という人へ

以下のリポジトリにてProjectTiny0.21に対応しているTinyRacingや早期段階であるTinyAnimationのサンプルを確認することができます。

Project Tiny Samples

https://github.com/Unity-Technologies/ProjectTinySamples

  • BumpCar.cs
  • CarAudioSystem.cs
  • EnterBoostPad.cs
  • MoveCar.cs
  • ResetRace.cs
  • SpawnSmoke.cs

以上が今回のアップデートで変更されたスクリプトになります。

特に

「BumpCar.cs」「MoveCar.cs」

この二つは今回のアップデートに大きく影響を受けているので、一度目を通しておくといいでしょう。
(後日記事として纏める予定ではありますが、いち早く差を知りたい方はぜひご確認ください。)

あれ?…2D機能は…?

公式の方からは
既に2D機能は完成しているし、間もなくリリース。2月上旬には2D機能がリリース予定
と別のスレッドにて回答されていました。
この調子だと来週か再来週には2D機能がリリースされて0.22になるかもしれません。

Project TIny 2D still in january ?

https://forum.unity.com/threads/project-tiny-2d-still-in-january.817719/

個人的な今回のアップデートの印象

少しずつ使えるシステムになってきた印象を受けます

以前までは物理演算どころか当たり判定すら実装されていなかったところから大きく進歩したんじゃないかなと思います。

早期段階ではありますが、アニメーションシステムも公開されましたし、固定フレームレートも定義できるようになりました。

何気に内部解像度も設定できるようになるのは結構大きいことだと思います。

近々ネックの一つでもあった2D機能も実装されるということで、無事実装されればそれこそ十分使えるシステムになるんじゃないかなと思います。

安定性の面からみても、完全な実用段階とはまだまだ言えませんが、
2D機能が実装されれば、お試しで触り始めてもいいかも?というレベルに到達しそうな感じはあります。

それこそ、DOTSがさっぱり!という方にはちょっぴり茨の道かもしれませんが、その点はProjectTiny自体の仕様がECSとJobSystem大前提という作りなので慣れてくださいとしか言いようがないですね。結構面白いですよ、DOTS。