Open10

VRChatのアバターが作りたい。

くまさんくまさん

とりあえずまずはシンプルなところから始める。

一応アバターっぽくはしたかったので、Cubeを配置して、ドミノみたいな形にする。

そこにAdd ComponentからVRC Avatar Descriptorを追加して、視点の位置をちょっと調整。

これで行けるかと思ったら、Animatorが無いみたいなことを怒られた。
色々調べたらAnimatorがあれば良いだけらしいのでAdd Componentから空のAnimatorを追加。
とりあえずこれでアップロードできた。

くまさんくまさん


アップロードできたのでVRChat上で確認してみたけど、何故かサイズが1x1x1のキューブになってる(っぽい)

Unity上だとこんな感じのdomino形のCubeになってる。

くまさんくまさん

後、足の高さの設定をしてないせいか、キューブの半分くらいが地面に埋まってしまう。

そしてジャンプの挙動もなんか不自然。
地面に足がついてなくても2弾ジャンプどころか無限にジャンプできるし、
ジャンプした後の落下がめちゃくちゃ遅い。

くまさんくまさん

とりあえずジャンプの挙動は物理演算周りだろうからCubeに空のRigidbodyを追加してみる。
パラメーターはとりあえずすべてデフォルト。

くまさんくまさん

Rigidbodyを追加したら更によくわからないことになった。

鏡で見たときの形は一応ドミノっぽくなった。Rigidbodyのおかげ?

ジャンプ自体の挙動はまともになったけど、めちゃくちゃどっかに吹っ飛んでいく(語彙力)

これはまともに使えたもんじゃない。まださっきまでのほうがマシだったかもしれない。

くまさんくまさん

ここで一旦VRC内のドーナツ(形の)メニューからアバターの身長を確認してみる。

するとデフォルト値が0.50mになってる。

Unity上のCubeは高さがscaleのyが1.2なので1.2mになるのが正しい。(はず)

くまさんくまさん

Rigidbodyを入れたせいでバグり散らかしてるので一旦Rigidbodyを消して再Upload。

Rigidbodyを消すとやっぱり

  • サイズは1x1x1のキューブ
  • 下半分くらいが地面に埋まる
  • 無限段ジャンプができて落下速度が極端に遅い。
    状態になる。Rigidbodyは必要そう。パラメーター調整しないといけないのか...
くまさんくまさん

Rigidbodyを追加して、Is KinematicをTrueにすると、Rigidbodyが入っていない状態と全く同じになる。

くまさんくまさん

あれ。その状態からIs KinematicをFalseに変更すると、
なんか吹っ飛ぶのはさっきと同じだけど、
さっきはなんか吹っ飛ぶ代わりに形はまともになってたけど、
今回は形は立方体のまま吹っ飛ぶようになった。なぜだ。

Rigidbodyを追加すると形がまともになるんだと思ってたけど違うのか?

くまさんくまさん

ただRigidbodyのIs KinematicをFalseにするとジャンプの挙動自体はまともになるのでこれ自体は間違ってなさそう。