見出し画像

ルームのギフトをいい感じに改善した話 Now in REALITY Tech #106

こんにちは、アバターシステムチーム所属Unityエンジニアのyaegakiです。
REALITYでは日々様々な改善が行われていますが、今回はルームのギフト表示改善について紹介します。

改善後の状態 ギフト(くま)がいい感じに表示されている

改善前の状態

ルームが実装された当時のREALITYではルームでギフトをもらうとどこにいても同じ位置に落ちてきてしまうという問題がありました。そのため、中心から離れた位置にいるとギフトが見えづらい状態でした。

離れた位置にいるとギフトが画面に映らない

これは内部的にはギフトはGiftTableと呼ばれている見えないオブジェクトの位置に落ちてきているためです。

GiftTableを表示したもの(緑の円柱がGiftTable)

改善案1

いい感じにするためにはギフトがアバターの周りに落ちてくるようにしなければなりません。しかし、単純にアバターの周りに落ちてくるようにしてしまうとGiftTableの範囲から外れてしまいます。
GiftTableの範囲から外れたギフトは落下し続けて画面に映らなくなってしまいます。これを防ぐために最初に検討したのは床や家具にギフトが乗るようにするというものです。
これによって無限に落下していくことはなくなりましたが、床までは落ちてしまいます。アバターとギフトを同時に画面に映そうとするとあんまりいい感じにはなりません。

引きになってしまいいい感じにならない

改善案2

次に検討したのは見えないオブジェクトを部屋の床全体に設置するというものです。この方法はGiftTableを大きくすればほぼ同等のことをできるので手軽で床まで落ちると言う問題も解決できるものでした。
しかし、ルームではうまくいってもワールドではうまくいかないという問題がありました。

採用案

最終的に採用した案はアバターの腰より低い位置にはギフトが落ちないようにするというものです。挙動としてはとてもシンプルで腰の高さより下になる場合は座標を元に戻しています。
この単純な方法でルームでもワールドでも大体いい感じにギフトを表示することができるようになりました。

どの高さにいてもいい感じにギフトが表示される

最終的にはこれにプラスして床や家具に乗るようにもしています。

最後に

今回紹介した内容でルームのギフトは当初よりは改善されましたがまだまだ改善すべき部分は残っています。
これからも引き続きREALITYを改善していくのでどうぞよろしくお願いします。