仮想トラッカーを追加して3点トラッキングでもフルトラのように振る舞える、「Standable: Full Body Estimation」のバージョン2.0がリリースされました。一から書き直されて、新機能と共に設定UIも実装しています。バージョン1を購入している場合は無料でアップデートされます。
Standable単体での利用に加えて、他のトラッカーと併用するための機能も追加されています。特に、トラッキングが失われたときにStandableへフォールバックする機能は有用そうです。
バージョン2.0ではVirtual Desktopと併用した際に遅延などが生じる問題があるようで、2.0.1で一時的な回避策が用意されました。肘の挙動などについても今後改善を検討しているそうです。
尚、もし問題があってバージョン1.1に戻したいときは、Steamのベータ版設定から戻すことが出来ます。
新機能の概要
設定UIの実装
- 座ったり寝転んだときのポーズをコントロール
- 腰の動きが調整可能に
- 再起動不要でトラッカーをオン・オフ可能に
- トラッキング状態に応じてトラッカーモデルの色が変わる
- 「Standabuddies」と呼ばれる、新しいトラッカーアイコン
IKと推定の改善
- 身体が手についてくるような動きをしないように
- 寝転がったときの改善
- 自然な歩行に改善
- ポーズの遷移をスムーズに
高度な推定オプション
- 椅子に座ったときのポーズを追加
- 両手を肩の近くに置き、胸をダイナミックに動かす?
混在トラッキング機能
- 既存のトラッカーとStandable仮想トラッカーが混在可能
- トラッカーとリンクして、Standableにフォールバックできるように
- トラッカーの動きをスムーズに補間
クイックキャリブレーション
- アバターに合わせてトラッカーのアラインメント調整を行う事が可能に
- 棒立ちのポーズを使った、混在トラッキング使用時のクイックキャリブレーション
- スマートオフセット機能による、一貫した混在トラッキング時のクイックキャリブレーション
基本の使い方
初期設定
SteamVRのアドオンでStandableが有効になっていることを確認しておきます。
初回起動時だけ、床の高さを設定する必要があります。一度行えば、次からは行う必要はありません。床の高さを設定するには、コントローラーを床に置いた状態で立ち上がります。3回ポップ音が鳴れば設定完了となります。
床の高さを設定した後は、「Lock Floor Offset」にチェックを入れておきましょう。
【追記】バージョン2.0.1からは詳細設定に「Set Floor To Controller」ボタンが追加されました。コントローラーを床に置いたあと、立ち上がらなくてもそのボタンを押せば床の高さを設定できます。
キャリブレート方法
通常通り、VRChatのキャリブレーションモードを実行します。(キャリブレート時に表示されるモデルは、「System」に設定しておくのがオススメです。)
VRChat側のキャリブレーションモードの状態でTポーズ(手のひらは下)を取ると、1回クリック音が鳴ってトラッカーがアバターへスナップされますので、両手のトリガーを同時押しして確定します。その後、腕を下ろして棒立ちのポーズを取ると2回目のクリック音が鳴ってStandable側の調整が完了します。
キャリブレーション時は正面を見るようにしましょう。足元を見たりしないようにしてください。ズレます。
トラッカーの位置を調整する
設定画面右上にある、Alignment機能を使ってトラッカーの位置を調整出来ます。足の距離・足の回転・全体の奥行きの3つが調整可能です。
それぞれのボタンを押した状態で、コントローラーを前後左右に動かしたり、回転させたりして位置を調整します。
詳細設定から位置を調整する
右下のバージョン番号をクリックすると、詳細設定が開きます。
ここにデフォルトの数値を入れて設定することも可能です。
Tポーズキャリブレーションを無効にする
キャリブレーション完了後、うっかりTポーズを取ってキャリブレーションモードに入るのを防ぐために、「Tpose Calibration」をオフにすることが出来ます。
ポーズのカスタマイズ機能
座ったときの足の深さや広がり具合を調整して、ポーズをカスタマイズします。
床に座ったときのポーズ
「Sit Depth」と「Sit Spread」のスライダーを調整します。
「Sit Depth」は座ったときの足の深さの調整です。スライダーを右に動かすと足を伸ばして座るようになります。「Sit Spread」は足の広がり方の調整で、スライダーを右に動かすと足を広げて座るようになります。
両方のスライダーを左に動かすとあぐらをかいた状態になり、右に動かすと足を投げ出して座る形になります。
寝転がったときのポーズ
「Lay Depth」と「Lay Spread」のスライダーを調整します。
先程と似たような感じです。
(リアルで寝転がる姿勢が取れないので端折ります……。)
椅子に座ったときのポーズ
「Seat Estimation」が有効の時に使用されます。
「Seat Depth」で足の伸ばし具合を調整し、「Seat Spread」で足組みの状態を調整します。
その他設定例。
椅子に座る際は、素早く座らないと(?)上手く動作しないようでした。
背もたれに向かって倒れ込むような動きが必要なのかもしれません。
腰の動きの調整
腰の動きは、詳細設定で調整が出来ます。
「Hip Counterbalance」を大きくすると、頭を動かしたときに腰がバネの動きのように激しく動くようになります。
肘の回転オフセットの調整
詳細設定で「Elbow Roll Offset」で肘の角度を調整出来ます。色々とポーズを取ってみて、思ってたよりも肘が上がっていないと思ったときに調整します。
仮想トラッカーをオン・オフする
StandableのUI上でトラッカー名をクリックすると、濃い灰色になってトラッカーがオフになります。
上の画像ではElbow(肘)トラッカーがオフになっています。例えば肘だけをVRChat側の制御にしたい場合にElbowをオフにすることが出来ます。
トラッカーは左の電源ボタンで一括オン・オフ可能です。
他のトラッカーと組み合わせて使う
VIVEトラッカーやHaritoraXなど、SteamVRで認識されている他のトラッカーと組み合わせて使うことが出来ます。設定UI右下の「Mixed Tracking」の欄で各種設定が行えます。
プロキシトラッカーの使用(Use Proxy Trackers)
「Use Proxy Trackers」をオンにしておくと、Standableを他のトラッカーとリンクさせて使用することが出来ます。
Tポーズキャリブレーションを行うと、Standableトラッカーに他のトラッカー(動画ではHaritoraXワイヤレス)がスナップされます。Tポーズキャリブレーションで両手トリガーを引いて確定した後は、そのまま腕を下ろして直立(棒立ちのポーズ)することで設定が完了します。
多少ズレているぐらいであれば位置を合わせてくれるようなので、VRChatのキャリブレーション時に鏡を見ながら位置合わせをする必要がなくなります。
Standableトラッカーは最も近いトラッカーとリンクされるので、トラッカーの位置によっては間違った物とリンクされてしまうことがあります。詳細設定からLink range(リンク距離)を調整してみてください。
フォールバック機能
設定UI及びVR上で水色になっているStandableトラッカーは、実在するVIVEトラッカーなどとリンクされた状態になっています。この状態でVIVEトラッカーなどがトラッキングを失うと、Standableの仮想トラッカーにフォールバックが行われるようになります。
例えばトラッカーの電池が切れたり、ベースステーションから隠れてしまった場合にフォールバック機能がトリガーされ、Standableトラッカーに切り替わります。フォールバック中はトラッカーがオレンジ色で表示されます。
動画ではHaritoraXワイヤレスの電源をオフにしたときの挙動を確認できます。HaritoraXは1つでも接続が切れると全体が動作しなくなるので、このような挙動になります。
詳細設定では、フォールバックに移行する時間や条件の設定が行えます。
トラッカーオーバーライド機能
設定UIにあるトラッカーの右上に小さな円があります。円が空欄の状態がデフォルトです。
円をクリックして「~」アイコンにすると、Standable側の仮想トラッカーに切り替わります。もう一度クリックすると「🔄(回転する矢印)」アイコンになり、3DoF(回転のみ)での動作に切り替わります。
Standableのみに設定
「~」アイコンに切り替えることで、HaritoraXワイヤレスが切り離されてStandableでの動作になっていることが確認できます。
3DoF動作に設定
「🔄(回転する矢印)」アイコンに切り替えると、HaritoraXワイヤレスの回転だけを取得するようになります。(3DoFのみに)
動画では一括変更しましたが、通常は腰や胸といったトラッカーに使用する機能だと思います。例えば胸トラッカーに設定すると、ずり落ちてきてもトラッカーの高さが変わらないはずです。
大幅にアップデートされ、調整が利くようになった
バージョン2.0へアップデートされたことで設定UIが用意されるようになり、座ったときの足の状態も調整出来るようになりました。肘トラッカーの回転オフセットも調整出来るので、肘だけ欲しいって場合にも有用だと感じました。
もちろん、VIVEトラッカーなどと併用した際にもフォールバックやスムージングなどの便利な機能が用意されていますので、既にトラッカーを持っている人にとっても嬉しいアップデートです。
機能が増えたことでややこしくなりましたので、慣れるまで時間が掛かりそうです。まだ他のトラッカーを組み合わせた際の動作を把握し切れていませんし、リリース直後でバグがあったりもしますので、その辺りは後日追記をする予定です。
Virtual Desktop使用時の問題回避策について
2.0.1から詳細設定の一番下にVirtual Desktopセクションが追加されました。
「Auto Detect VD Issues」にチェックを入れた状態であれば、一時的な回避策が使用されます。
それでもまだ問題がある場合は手動で回避策を実行するようにします。手動にする場合は「Disable Velocity Math」にチェックを入れて、「Auto Detect VD Issues」のチェックを外してみてください。
CPU負荷が高い?
Standable実行中はVRServerの負荷が高くなるようです。Ryzen 7 5800X3D環境で20%程度CPU負荷が上がっているのを確認しました。これはStandableの動作に必要な計算処理なのか、それとも何か不具合が起きていて無駄な処理が発生しているのかは不明です。
仮想トラッカーを使用しない際には、Standableをオフにする(Standable UI上の電源ボタンを押す)と負荷は下がります。
Intel CPUでも同様の高負荷が報告されており、今後のアップデートで解決することを期待したいですね。
(おまけ)UIを翻訳してみた
今のところ英語のみなので、スクリーンショットを画像編集して日本語に訳してみました。
しかし、どういった動作なのかイマイチよく分からなくて直訳になっている部分や、勘違いしている部分もあると思いますので、参考程度にどうぞ。
2024/05/24:参考動画や、フォールバック機能などを追記。
2024/07/25:CPU負荷について追記。