Contents — 6 sections

RicochetTanksを実際に乗って見たとき、最初に気になったのは操作でも弾道でもなかった。

「戦車に埋まってる感じがダサい」

Avatarの顔が砲塔やハッチ周りへ沈み込んで見えた。

World側でSeat位置を一つ決めても、VRChatではAvatarの身長や目線位置が違う。

固定値だけでは、全員に同じ見え方を作れない。

同じSeatでもAvatarごとに見え方が変わる

VRChatのAvatarはサイズがかなり違う。

小さいAvatar。

標準的なAvatar。

背の高いAvatar。

World側から見れば同じSeatでも、Playerの視点位置は同じではない。

戦車のように、

「顔がこの高さに出てほしい」

という見た目を狙うと、その差が目立つ。

乗車時の目線高さを使った

そこで、乗った瞬間の目線高さを基準にして、ハッチ周りの見え方を合わせるようにした。

狙いは、

  • 顔が完全に埋まらない
  • 逆に浮きすぎない
  • Avatarサイズが違っても「顔だけ出ている」状態へ寄せる

こと。

戦車側の見た目をAvatarへ合わせる。

Avatar側へ特別な設定を要求しない。

「固定座標」ではなくPlayer側の基準を取る

この問題はSeatそのものより、

WorldがPlayerを固定寸法のObjectとして扱っていた

ことが原因だった。

Avatar scaleが変わるなら、World側もPlayer由来の基準を使った方がいい。

今回なら目線高さ。

用途によっては、

  • head position
  • tracking origin
  • avatar height
  • eye height

のどれを基準にするかが変わる。

見た目の問題でも、体験に効く

顔が少し埋まっていても、ゲームロジックは動く。

弾も撃てる。

移動もできる。

だから自動Testだけでは落ちない。

でも乗った瞬間に、

「なんかダサい」

と感じる。

VRではこういう違和感がかなり大きい。

画面越しでは小さな位置ズレでも、HMDでは自分の身体位置として感じるからだと思う。

Avatar差を全部吸収できたとは言わない

ここは重要。

この調整で、あらゆるAvatarサイズや特殊Rigへ完全対応したと確認したわけではない。

極端に小さい・大きいAvatar。

独特なView Position。

特殊な身体構造。

そういう条件は別途見ないといけない。

今回やったのは、

固定Seat一発より、Playerの目線を基準にした方が見た目を合わせやすい

という改善。

いまの結論

VRChat Worldで乗り物を作ると、World側の寸法だけではPlayerの見た目が決まらない。

Avatar側の身体差がそのまま入ってくる。

だから固定座標で詰めるより、

Playerから取れる基準を使ってWorld側を合わせる。

RicochetTanksでは、目線高さがその基準になった。

Signal / 観測記録

この記録への観測を送る

反証、再現失敗、追加で試してほしいこと。届いた SIGNAL は非公開で保存し、次の実験候補として扱います。