VRのフルボディトラッキング、敷居が高いですよね。一般的な構成としては下記のような感じでしょうか。
- ベースステーションx2 + VIVEトラッカーx3: 約87,000円
HTC VIVE ベースステーション ¥17,315
VIVE トラッカー 3.0 ¥17,500
(2022年3月現在)
(将来の拡張を考えると、SteamVR Base Station 2.0 ¥21,780 のほうが個人的にはオススメです。旧ベースステーションは2台までなのが、2.0だと4台まで設置可能で、死角を減らすことでトラッカー飛びの頻度をさらに下げることができます。ただ、2.0は動作音がうるさいのが困る…)
既にIndexやVIVE ProのVRシステムをお持ちであれば、ここからベースステーション2つ分、4万円前後マイナスできますが、そうでない方のほうが多いでしょう。本当に楽しめるものなのか、自分に必要なのかわからないものにそんな大金は出せない、と考えてもおかしくないですね。
最近はこれに代わるフルトラデバイスがよく話題に挙がります。
- Haritora X: 27,900円 (別途、Bluetoothアダプター要)
- Unimotion: 49,500円
これらはIMU(慣性計測ユニット)を使用して姿勢推定を行う方式で、VIVEトラッカーの方式より精度は劣るものの、値段は抑えた形になっており、人気もあるようです。
でも待ってください。世の中にはもっと格安でフルトラを体験する手段もあるんです。上記のHaritoraやUnimotionが登場する遥か以前から存在したアレです。
- Kinect (中古): ~1万円
フリマやオークションで中古品を入手するしかないので値段は流動的ですし、確実に動作するものを入手できる保証もありません。メーカーサポートももうやってないでしょう。でも、この値段は魅力的じゃないですか?
こんな安くでほんとにちゃんと動くのか心配になります?そこで、Oculus Rift CV1とKinect(Xbox One版)を組み合わせた環境で、ビートセイバー動画を撮ってみたのが下の動画です。さすがにVIVEトラッカー方式よりはだいぶ劣りますが、値段を考えればなかなかよく動いていると思いませんか?IMU方式のフルトラデバイスを使ったビートセイバー動画とも比べてみてください。
もちろん制限はあります。自然な形で回転することはできません。基本的に正面から斜めくらいまでの姿勢が前提です。またしゃがんだり、座ったりの姿勢もうまく認識できません。
ちなみにこれって、ビートセイバーではそれほど問題にならないんです。基本的にプレイ中は正面しか向きませんし(回転譜面は除いて)、常に立ったままで遊ぶゲームです(壁避けくらいの屈みならなんとか)。また、ずっと動いているとIMU方式ではだんだんズレが蓄積していきますが、Kinectではその問題もありません。そんなわけで、ビートセイバープレーヤーにはKinect、オススメですよ。
以下の環境を想定しています。これらのどれかを満たしてない場合、SteamVRやKinectToVRに限らず、思わぬトラブルに見舞われる場合があります。
- Windows 10の最新アップデートを適用済み
- アカウント名は半角アルファベットのみ (日本語や漢字を含まない)
- 管理者権限のあるアカウントを使用 (一番最初に作ったユーザーアカウント、または、後に作ったアカウントの場合は管理者権限を付与したもの)
- 現在のアカウントのみサインイン (他アカウントはすべてサインアウト済)
- Steam、SteamVRは、Cドライブ、デフォルトのインストール場所にインストール
(C:\Program Files (x86)\Steam)
(C:\Program Files (x86)\Steam\steamapps\common\SteamVR)
- Xbox One版Kinectを使用する場合、IntelまたはRenesasのUSB 3.0コントローラーに接続。他に帯域を要求するUSB 3.0機器を接続しない
以下の記事は、下記の環境をもとに書いていますが、これに近い環境であれば同じセットアップの流れになると思います。
- 2021年9月
- Windows 10 Pro 20H2
- SteamVR 1.19.7
- KinectToVR 0.8.1 EX
最低限の、PCを操作するスキルを持っていることが前提です。
- ネット上のファイルをダウンロードできる
- ダウンロードしたファイルがどこにあるかわかる。そのファイルを実行できる
- 指定されたフォルダをエクスプローラーで開くことができる
(例:「C:\Program Files (x86)\Steam」( \ は¥と同じ ) を開くことができる)
- 指定されたファイル、フォルダを、(指定先に) 移動、コピーできる
(例:「C:\Program Files (x86)\Steam\logs」を「C:\」に移動できる。ただの例なので、本当にやらないでくださいね)
- 想定外の状態になったとき、PCを再起動して元の状態に復帰できる
- わからないことは自分で検索できる (だいたい想定できるトラブルシューティングはここにすべて記載しているので、この説明通りにやって動かない場合は、わたしにもわかりません。質問されても答えられません)
- KinectはXbox 360版(v1)とXbox One版(v2)が存在します
- まとめると、Xbox 360版のほうが無難ですが、以下の多くの問題を排除できるのであればXbox One版のほうが良いかもしれません
- Xbox 360版はUSB 2.0で、USBでの互換性問題が出ることはまずありませんが、Xbox One版はUSB 3.0で、IntelまたはRenesasのUSB 3.0コントローラーでないと動作しないようです。また他にUSB 3.0機器が存在する場合、帯域が足りなくなる可能性もあります
- Xbox One版は測距にTime of Flightセンサーを使用しており、これがSteamVRベースステーション(Lighthouse)のトラッキングと干渉します。Xbox One版は、Indexコントローラー、VIVEコントローラー、VIVEトラッカーとは同時使用できないと考えたほうが良いでしょう
- 逆にXbox One版のメリットは、プレーヤーからそこまで遠く離して設置しなくても良い、という点があります。Xbox One版は1.4m~、Xbox 360版は1.8m~が奨励ですが、Xbox 360版だと設置が難しい環境もあるかと思います
- 両方持っていますが、Xbox One版のほうが精度が高いと思います(個人の感想)。測距方式の違いから、Xbox 360版のほうが周囲の物や背後の壁の影響を受けやすい可能性があります(参考: https://www.buildinsider.net/small/kinectv2cpp/01 )
- Xbox 360版はCPUを、Xbox One版はGPUを使用して処理を行うようです。この点についてどちらが良いかは使用環境(どちらの処理能力に余裕があるか)によると思います
- 2021年9月現在の中古相場では、どちらも値段に大差はないようです
- KinectのXbox 360版とXbox One版、どちらも本体だけではPCに接続できません
- Xbox 360版の場合は、下のような二股のUSB ACアダプターが必要です
- Xbox One版の場合は、下のようなUSB ACアダプターが必要です
- ヤフオク、メルカリ、ラクマなどで上手に探せば、本体とPC接続用アダプターのセットが1万円以内で入手できると思います(2021年9月現在)。ただし個人取引は、自己責任でお願いします
KinectToVR
https://github.com/KinectToVR/k2vr-installer-gui/releases/
上記ページから k2ex-installer-x.x.x.exe (xは数字) をクリックしてダウンロード。ダウンロードが完了したら実行します。
下記の画面が出たら、「詳細情報」をクリックして「実行」をクリック。このメッセージは、発行元が確認されていない実行ファイルすべてに一律表示されるもので、「ウィルスが入っている」という表示ではありません。「安全か危険かは自分で判断してください」というメッセージです。
「インストールを開始する」。
「使用するデバイスを選択:」で、Xbox One版かXbox 360版か、クリックして選択したら、「ダウンロードしてインストールする」。
ダウンロード中...。
ここで下のようなエラーが出た場合は、最初にダウンロードした k2ex-installer-x.x.x.exe が古い可能性があります。最新のものかどうか確認してください。ネット接続が不安定な場合もこのエラーが出る可能性がありますが、その場合は、終了して最初からやり直してみてください。
ダウンロード完了。
インストール中...。
既にインストール済みの場合は、このようなメッセージが表示されます。「はい」をクリックしてください。
下のような画面が出てきたら、左下の「I agree ...」をクリックして、右下の「Install」をクリック。(既にインストール済みの場合は出てきません)
「Close」をクリック。
インストールが完了しました。「キャリブレーションの設定」をクリックします。
キャリブレーションの設定…はどこへいったのかわかりませんが、下のような画面に切り替わります。とりあえず「このアプリケーションを閉じる」をクリックして、お勧めの通り、PCを再起動します。
KinectToVRを起動する場合、先にまずSteamからSteamVRを起動してください。KinectToVRを起動すると自動でSteamVRが起動するようになっていますが、別々に起動したほうがトラブルになりにくいです。
というのも、Beat Saberがそうなのですが、SteamVRで一番最初に認識したデバイスをコントローラーと認識してしまうゲームがあるためです。コントローラーより先にトラッカーが認識されてしまうと、それがコントローラー扱いになってしまいゲームが操作不能になってしまいます。先にSteamVRだけを起動して、両手のコントローラーが認識されていることを確認してから、KinectToVRを起動することをおすすめします。
Steam設定の「スタートアップ/シャットダウン」→「スタートアップオーバーレイアプリを選択」のところで、「KinectToVR」が「オン」になっていると、SteamVRが起動したときに自動でKinectToVRが起動されます。「オフ」にしておいて別々に起動するのをおすすめします。
別々にKinectToVRを起動する場合は、スタートメニューから「K2EX」→「KinectToVR」をクリックして、KinectToVRを起動します。すると下のような画面が表示されます。このように
Kinect Status: Success!
Driver Status: Success!
SteamVR Status Success!
と、Success!が3つ出ていれば、正常に動作しています。Successになっていない場合のトラブルシューティングをこの先で解説します。
KinectToVRは、ちょっとしたことで下のように動かなくなる場合があります。こうなったときは諦めてPCを再起動してやり直してください。以降の設定の際、発生する場合があるので覚えておきましょう。
下のように「Driver Status: SERVER ERROR (Code: -10)」となっていた場合、SteamVR設定でKinectToVRが有効になっていません。以下の手順で有効化してください。
まず、SteamVRウィンドウ左上の「 ≡ 」をクリックして「設定」をクリック。
SteamVR設定の左の「スタートアップ/シャットダウン」をクリックし、「アドオンの管理」をクリック。
「KinectToVR」を「オン」にして、右上の「STEAMVRを再起動」をクリック。もしここにKinectToVRがなかった場合、次の3.2を見てください
どういうわけか、ここにKinectToVRが登録されない場合があります。
この場合は、手動でKinectToVRのアドオンを認識できるようにする必要がありますが、まずその前に、SteamVR、KinectToVRを完全に終了させてください。PCを再起動するのが確実です。
その後、エクスプローラーを開いて
「C:\K2EX」フォルダの中にある「KinectToVR」フォルダを
「C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers」フォルダ内
に移動します。コピーではなく、移動してください。
結果として
「C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\KinectToVR」
というフォルダ構造になるはずです。
移動ができたら、PCを再起動して、再度SteamVR設定を開きます。このようにKinectToVRが表示されていれば成功です。
ALVRを使用の場合も、KinectToVRがアドオンに登録されていないと思います。この場合、ALVRの設定を変更する必要がありますが、わたしはQuestを持っておらず動作確認できないので対応しません。KinectToVRの下記ドキュメントを参考に自力で設定するか、ALVRをアンインストールしてください。
KinectToVR: Documentation | ALVR tips & tricks
https://k2vr.tech/docs/alvr.html
「Kinect Status: E_NUI_NOTGENUINE (Code: -10)」となっている場合、PCを再起動してから、またSteamVRを起動するところからやり直してください。また、KinectToVRのインストールを一からやり直すことで解決できる可能性もあります。
それでもこのメッセージが出続ける場合は、KinectとUSBコントローラーが正常に通信できていません。前述のXbox One版でのUSB相性問題や、他に同時接続しているUSB機器が帯域を使い切っている、USB延長ケーブル(使っていれば)の質が悪い、などの原因が考えられます。
以降は、Status: Success!が3つ出ていて正常動作していることが前提です。出ていない場合は、先にその部分を解決してください。
KinectToVRの画面で、左下の「Show/Hide Skeleton Tracking」をクリックすると、棒人間の形でトラッキング状況が表示されます。表示されないときはKinectで姿勢が認識できていない状態なので、Kinectの正面に立ってみてください。Kinectに近すぎると姿勢を認識できません。Xbox One版で1.4m以上、Xbox360版で1.8m以上の距離をとることが奨励されています。
VRのプレイスペースで正面を向いたときに、Kinect本体が正対するよう設置します。また、プレイスペース内を動いたときに、緑の棒人間が画面の外にはみ出ないようにKinect本体の位置と向きを調整します。トラッキングに大きく影響する部分なので、ベストな配置を目指しましょう。
Kinect本体とプレーヤーの距離は、Xbox One版で1.4m以上、Xbox 360版で1.8m以上とることが奨励されています(うちの狭い部屋では1.8mはきびしかったですね…)。また、Kinect本体の設置高は、床に設置するよりも、上から見下ろすように高めの位置に設置したほうが良い結果になるようです。KinectToVRでは1.67m程度の高さに設置することを奨励しています。
Kinectは赤外線の反射で姿勢を認識するため、光を反射しにくい黒っぽい衣服やだぼだぼした衣服は、精度の低下につながります。また認識範囲にいろんなものがあると人間と背景の区別をしにくくなるので、部屋はきれいに片づけておきましょう。
ここからはVRヘッドセットをかぶった状態で、VR内にPCのデスクトップを表示させて操作します。操作もマウスではなくコントローラーを使って行うと良いでしょう。
まず「Spawn Trackers」を押すと、このような画面になります。
また、SteamVRのウィンドウには、トラッカーのアイコンが3つ追加されます。これはKinectが認識した腰と両足の位置に配置される仮想的なトラッカーになります。
しかし、初期状態では仮想トラッカーの位置が合っていないので、キャリブレーションを行う必要があります。KinectToVRのキャリブレーションは、立ち位置を3か所変えて認識、最後にKinectがある方向を向いた状態を認識、という流れで行われます。
VR内で、両手にコントローラーを持った状態で「Begin Calibration」を押します(VR内で、コントローラーを使って押してください)。すこし待つと「Get ready to calibrate: Point 1」という表示に変わります。これは「Point 1に立ってください」という表示です。上の図の1の位置に立ってください。姿勢はTポーズではなく、軽く足と腕を開くくらいの自然な体勢で正面を向いて立ちます。ただし、緑の棒人間が画面からはみ出ないようにします。
すこし経つと「Point 1: Stand somewhere... Time left:」という表示に変わります。これは「Point 1の測定まで残りx秒」という表示です。そのまま静止して待ちます。
「Position captured: Point 1」は「Point 1の測定完了」という意味です。この表示が出たら、上の図の2の位置に移動します。やはり緑の棒人間が画面からはみ出ないように。各測定の間は3秒以上あるので、そこまで慌てる必要はありません。
「Get ready to calibrate: Point 2」
「Point 2: Stand somewhere... Time left:」
「Position captured: Point 2」
となって、Point 2の測定が完了したら、上の図の3の位置に移動します。
「Get ready to calibrate: Point 3」
「Point 3: Stand somewhere... Time left:」
「Position captured: Point 3」
となれば、位置の測定は終了です。
最後にKinect本体方向の測定があります。「Prepare to calibration: Tracker Orientation」と表示されたら、Kinect本体がある方向に体を向けて静止します。
「Done! Hit me to re-calibrate!」と表示されたら、キャリブレーションは終了です。VR内で(Steam VRのメニューを開いて)、仮想トラッカーが腰と足の位置にあることを確認してください。
「Done! Hit me to re-calibrate!」の上にある「Save Settings」を押すと、キャリブレーションが保存され、次回のKinectToVR起動時も最初から同じ位置に仮想トラッカーが表示されるようになります。ただ、Oculus Questなど、VRの中心位置が毎回変わる環境だと、前回位置を保存してもずれてしまうかもしれません。ずれていた場合は、再度キャリブレーションを行ってください。
うまくキャリブレーションできなかったときは、「Done! Hit me to re-calibrate!」をもう一回押してください。「Get ready to calibrate: Point 1」という表示に変わって、再びキャリブレーションが始まります。すこし待って始まらない場合は、さらにもう一回押してください。待たずに何度も押すとおかしくなるのでやめておきましょう。
仮想トラッカーのぶるぶる振動するような動きが気になるときは、モーションスムーシングをかけて軽減することができます。KinectToVRの画面左上の「Options」を押
します。
画面下の「Positional tracking filter」の右の欄を押し、リストから「Low Pass Optical filter - smooth moves, little delay」を選択します。これで、仮想トラッカーの動きにモーションスムーシングがかかります。
ちなみにここを「Linear Interpolation」にすると、仮想トラッカーの動きが粗くはなりますが、遅延は少なくなります。後述の「FeetSaber」を遊びたい場合は、これを選択してください。
また、画面下の「Initialize trackers automatically CURRENT:」を押すと、「YES」と「NO」が切り替わります。「YES」にしておくと、KinectToVR起動後に自動で「Spawn Trackers」が押されるようになります。これはお好みで。
おつかれさまでした。ここまで完了すれば、SteamVRからは、腰と両足にトラッカーを装着している状態として認識されています。フルボディトラッキング対応のゲームやアプリで遊んでみましょう!
VRChat、VirtualCast、clusterでは、SteamVRでトラッカーの役割設定が必要なのでお忘れなく。ゲームやアプリでフルボディトラッキングを使用する方法は、通常のVIVEトラッカーを使用している場合と同じで、既にたくさん情報があるので、ここでは割愛します。
- https://virtualcast.jp/wiki/virtualcast/controller/vivetracker
- https://clusterhelp.zendesk.com/hc/ja/articles/360030857051-6%E7%82%B9%E3%83%88%E3%83%A9%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%E3%81%AE%E5%88%9D%E5%9B%9E%E8%A8%AD%E5%AE%9A-SteamVR-
もしビートセイバーで、冒頭で紹介した動画のようにアバターを使用したい場合は、わたしのNalulunaAvatars modをご検討ください。FANBOXの有料プラン限定公開ですが、その分、他にない機能てんこ盛りのアバターmodになっています。(宣伝)
fanbox post: creator/53638632/post/2079749
ちなみに、わたしの場合、NalulunaAvatarsのFoot Offset設定で、Left Foot Rot Zを-15、Right Foot Rot Zを+15くらいに設定すると、足を広げたときの不自然さが下がります。このあたり個人差もあると思うので調整してみてください。
(下はNalulunaAvatarsの設定画面。この動画はVIVEトラッカーを使用しています)
冒頭に書いた「本当に楽しめるものなのか、自分に必要なのかわからないものにそんな大金は出せない」というの、まさにわたしが昔思っていたことです。そしてKinectを購入してフルトラを体験し、3か月もしないうちにもっといい動きが欲しくなって「SteamVRベースステーションx2 + VIVEトラッカーx3」を購入してしまいました。結局、フルトラの魅力にとりつかれたら、いくとこまでいってしまいますね。
ただ今でも、1万円以下のフルトラデバイスとして、費用対効果は最強だと思ってます。そうでもなければこんな記事書きません。手ごろにフルトラがどんな感じなのか、本当に自分がフルトラを欲しているのか、体験できる良い品だと思います。
Kinectでフルトラ入門して、沼にはまってくださる方が増えると幸いです。「SteamVRベースステーションx2 + VIVEトラッカーx3」の構成であれば、ビートセイバーを足で遊ぶ「FeetSaber」、ダンスゲームみたいな楽しみ方もできますよ!
(以下はVIVEトラッカーを用いた映像です。IMU方式やKinectでもできないことはないですが、精度や遅延の問題で、快適に遊ぶのは厳しいと思います)
twitter post: 1436343297501380609
twitter post: 1435558539548712961
twitter post: 1436938846956969984