https://twitter.com/VRChat/status/1471959527763361797
年々CPUの熱が上がっており、今年もDynamic Boneで稼働率の最高記録が更新されましたが、いかがお凌ぎでしょうか。このような気候ですが、Avatar Dynamicsのクローズベーターのおかげ様で、私は涼を得ながら元気に過ごしております。
というわけでAvatar Dynamicsのオープンベータが来ましたのでネタばらしです。一部の人が食べたであろう、あの独特な味のバレンタインチョコ(?)を覚えていますか?実はあれ、当時はAvatar Dynamicsのクローズベータテストで作ってみたものです。
(うにゃうにゃするボーンのスクショ)
この箱のふたを手でつかんで開いて、チョコを手でつかんで、相手の顔の近くまで来たら食べられる仕組みです。
オープンベータのために用意したバレンタインシャペルちゃんで詳しい仕組みを見ていきましょう。
PhysBonesを使えば、ボーンをつかんで動かすことができます。しかし、その際は回転が忠実に再現されません。あくまでもボーンの位置を引っ張ることができるだけで、回転はボーンのルートへ向かってしまいます。自然にチョコを食べさせるには回転もちゃんとしたいが、自然につかみたい。そして何よりも、同世界線にいる、ベータ非参加者にも食べさせたい(なおオープンβの方は世界線が違うらしい)
これらの問題を解決するために、掴む判定だけにPhysBonesを利用する結論に至りました。
蓋、そして各チョコに一個ずつPhysBoneが入っています。
こうやって設定することにより、掴むと Choco2_IsGrabbed
のパラメーターが 1.0 になり、アニメーターがそれに反応します。ボーン自体は何も表示につながってないので、Forcesの設定が適当です。
アニメーター制御により、Parent ConstraintでChocoPickupTargetを手に、そしてチョコをChocoPickupTargetにつなげることにより、手に取ったかのように見えるわけです。