なんやかんや自分でセットアップするのは始めたな気がするVRIKを最新のMetaXRSDKv60と組み合わせて、VRMキャラをVRで動かす。
・Unity2022.3.7f1
・MetaXRSDK v60
・FinalIK(VRIK)v1.9
・VRM0.1
VRIKのドキュメント。設定項目の解説がある
解説
初期セットアップ
とりあえず動かすのは簡単だった。
アバターにVRIKスクリプトを付ける
Referenceは自動で付いた
OVRCameraRigのCenterEyeAnchor、LeftHandAnchor、RightHandAnchorをSolverの各HeadTarget、LeftArm>Targetなどにつける
OVRCameraRigはFloorLevelにした
これで実行するだけでとりあえずは足もIK通じて動いた。
調整
ただそのままだと、いろいろ不具合があったので調整
ターゲット
まず右手、左手の角度が90度曲がってる。
HandAnchorの下にターゲット用の空のオブジェクトを作って角度調整
左手90,右手-90
頭も少し前にする。頭の中が見えるので
それを参照する
脚の調整
FootDistanceが足の開き具合。0.3はでかく感じた。
StepThresholdはどれくらいで頭が動いたら足が移動するか。0.3だと変な格好になる
どちらも0.2にした
内股というレベルじゃないけどとにかく足がクロスして変
Beat Saber アバターのガニ股や内股を修正する方法 | のしろぐ
各足のSwivel Offsetの値を変えると足の角度が変わった
身長
あと私の身長がアバターに追い付いていないのか、常に少ししゃがんだ状態になる。
Min Head Heightが最初0.8だったのを自分の目線近くの伸長にしたらしゃがまなくはなった
でも手を現実の自分の体の頭にもっていっても、アバターだと胸の部分に来る。手の位置が実際の体に対して合っていない・・・
アバターの大きさを変えるか、カメラの位置を変える
追記:移動モーションはAnimationを使う
Questのコントローラーのスティックで移動できるようにした。
そしたら一応VRIKが追従して足を動かしてくれるけど、引きずられてたり態勢がひどい。
移動はアニメーションを再生できるようにする。
この記事の通りに設定した
でもVRIKのLocomotionのWeightを0にすると、移動しない。
この記事にあるスクリプトを使ってポジションをずっと変更するようにした。
もう少し工夫するならスティック移動しているときだけLocomotionを0にしたほうがいいかもと思ってやってみたが、移動→停止したときにアバターが一瞬変な場所に行くのでやめた
最後に
初めてセットアップ記事書くと思ったら昔書いてたw