こんばんは、slashです。
最近PSmoveserviceの更新がされていて、今まではps3のpseyeを2個以上使わないとポジショントラッキングができなかったのですが
PS4のカメラでもポジショントラッキングができるようになったみたいです。
『よっしゃ!!やったぜ!!これでpseye買わなくてすんだぜ!!』とか
『お前の前のpsmoveservice準備編でpseye2個買っちまったじゃねーか馬鹿野郎!!』という声が聞こえてきそうですが。
えっと前の記事psmoveservice準備編でも述べたように、PS4のカメラはコネクタの形状がUSBではありません。
そしてこのPS4専用のAUXコネクタをUSBに変換するアダプタも今のところ(2019/02/18現在)Amazonなどの主要なショッピングサイトにはなく。
コネクタの改造が必要です。
・・・。
被覆を剥いて1本1本USBコネクタにはんだ付けする作業になります・・・。
イヤですよね?失敗したらPS4のカメラ使えなくなってPS4でさえもPSVR動かなくなってしまいます・・・。
ここらへんの記事はまた変換コネクタが手ごろに手に入れられるようになってから追記したいと思います。
PSeyeドライバをダウンロードする
ドライバには無料のものと有料のものがあります。
一般的にpsmoveserviceを使用するだけなのであれば無料のものでかまいません。
私はtrinusPSVRでヘッドポジショントラッキングがしたかったので有料のものを買いましたが結果的にtrinusPSVRではヘッドポジショントラッキングは左右しか反応しなく無駄金になりましたorz
psmoveserviceを使用したヘッドポジショントラッキングの方が精度がはるかに良いです♪
https://github.com/cboulay/PSMoveService/wiki/PSEye-Software-Setup-%28Windows%29
上記リンクに飛び
64bit or 32 bit のドライバのリンクをクリックします。
ブラウザがEdgeの場合は下記ダイアログが表示されますので『実行』をクリックします。
インストーラーが立ち上がりますので許諾に同意して『Install』をクリックします。
インストーラが自動でインストールされます。
ドライバーのインストールが完了したら『Finish』をクリックしてインストーラを閉じます。
PSeyeをPCに接続する
PSeyeのドライバーがインストールできましたらPSeyeのUSBコネクタをPCに接続します。
公式のwikiにも書いてありますが、USBHUBを使用せずに直接マザーボードのUSBポートに接続してください。
pseyeはUSB2.0なのでUSB3.0のところに接続しても意味はないです。(速度が速くなるワケではないです)
『USB3.0のHUBにUSB2.0ならイケるんじゃね?』と思われる方もいるみたいですがダメなようです。
PSeyeの位置を決め固定する
C:\Program Files (x86)\PSMoveSteamVRBridge\test_camera.exe
を実行してください。
下記コンソールアプリケーションが起動します。
カメラのフレームレートを決定します
キーボードにて『60』を入力し、『Enter』を押下します。
次にカメラの画素を決めます。
キーボードにて『640』と入力し『Enter』を押下します。
※PSeyeのロットによっては640では正常に動作しない場合があります。
その場合は320に変更して再度実行してください。
すると2つウィンドウが立ち上がり、それぞれのカメラ映像が映し出されます。
※自分の部屋がいきなる映るのでビックリするかもしれません。
次に映し出された映像を見ながらPSeye2台の位置を決め固定します。
※説明ではカメラをディスプレイ上部に固定していますが、プレイ範囲が映るのであれば任意の場所で大丈夫です。
この際2台のカメラの映像に両手いっぱい広げた自分が映るようにセットしてください。
※範囲内にPSmoveが映らないとポジショントラッキングができない為
カメラの位置の調整が完了したらtest_camera.exeを終了してください。
PSMoveServiceを起動する
PSMoveServiceAdmin.exeが実行されていない場合は
C:\Program Files (x86)\PSMoveSteamVRBridge\PSMoveServiceAdmin.exe
を実行してください。
ポジショントラッキングを設定する。
C:\Program Files (x86)\PSMoveSteamVRBridge\PSMoveConfigTool.exe
を実行してください。
PSMoveConfigToolが立ち上がりますので
『Connect』をクリックします。
この時にPSmoveの『Playstationボタン』を押して電源を入れておいて下さい。
今回はPSMOVEコントローラーのポジショントラッキングを設定するので
『Tracker Settings』をクリックします。
Tracker Settings メニューになりました。
まず接続されたカメラが正常に動作しているか確認します。
下記メニューの『>』をクリックして『Tracker:0』『Tracker:1』が切り替わることを確認してください。
※カメラを2台接続している場合
もしTrackerが切り替わらない場合は接続に失敗している可能性があります。
切り替わる事を確認したら、まず『Tracker:0』、『controller:0』にして
『Calibrate Controler Tracking Colors』をクリックします。
すると下記画面が表示されます。
画面の『Tracking [C]olor:』を『Red』にします。
下記画面の『>』かキーボードの『C』を複数回押下して『Red』にして下さい。
すると実物のPSMOVEのスフィアが赤色光ります。
カメラの映像でPSMOVEの赤色になっているスフィアの中心を数回右クリックします。
『[T]racker ID』を0から1に変更してこちらのカメラでもPSMOVEの赤色になっているスフィアを数回右クリックします。
画面の『[T]racker ID』を『1』にします。
下記画面の『>』かキーボードの『T』を複数回押下して『1』にして下さい。
うるとTracker:1のカメラ映像に切り替わるのでこの時も赤く光ったスフィアの中心を
右クリックしてください。
2台のカメラにて色のキャリブレーションが完了したら。
下記画面の左上の『Video [F]ilter Mode:』を『>』かキーボードの『F』を数回押下してMaskedに切り替えます
『Video [F]ilter Mode:Masked』のときに赤色のスフィア以外が映っていないことを確認してください。
この時にスフィア以外が映っていた場合正常にキャリブレーションがされておらずトラッキングズレる場合があります。
また、スフィアが丸く映っていない場合も同様にトラッキングがズレる場合があります。
※私の場合は部屋のシャッターを閉め、暗闇の状態でトラッキングしました。
もちろんVRプレイ中も部屋は真っ暗でプレイしています。その方がトラッキングの精度がよい為
PS[M]ove Controller ID:を変更して同様に2本目のコントローラーのキャリブレーション設定をします。
2本目のPSMoveは緑色で設定しましょう。
設定が完了したら『Tracker Settings』をクリックしてTracker Settingsメニューに戻ります。
トラッカーポジションの設定
色のキャリブレーションの設定が完了したらトラッカーポジションの設定をします。
キャリブレーションシートを印刷します。
https://github.com/cboulay/PSMoveService/wiki/Tracker-Pose-Calibration
※自宅にプリンターがない場合はこのPDFファイルをUSBメモリに入れてコンビニで印刷するのも手です。
※白黒プリントでも大丈夫です。(位置さえわかればいいので)
『Tracker Settings』メニューから
controller:0 -Redになっている事を確認して
『Computer Tracker Poses Using Controller』をクリックします。
下記画面になりますので、PSMOVEのスフィアの周りに円のワイヤフレームが表示されている事、中心が正しく認識されている事を確認します。
※この時正しくスフィアが認識されていない場合は前項目の
『Calibrate Controller Tracking Colors』の設定がうまくいっていません。
正しく認識されている場合は『Next Tracker』をクリックしてTrackerを#1に切り替えます。
Tracker #1でも同様にスフィアが正しく認識されているか確認してください。
正しく認識されていたら『Looks Good!』をクリックしてください。
下記画面が表示されます。
先ほど印刷したシートをTracker #0とTracker #1の視界に入る位置かつカメラから正面の位置に敷きます
シートの『1』に合わせてPSMOVEを垂直に立てます。
測定が完了するまでしばらく待ちます。
下記Tracker 1:とTracker 2:のsampleが60/60になるまでそのまま垂直に固定します。
60/60になったら『COMPLEATE』と表示されます。
ポジション『1』での測定が完了したらPSMOVEを横にします。
次は下記画面のように『#2』の測定をします。
先ほどと同様にシート『2』のポジションにPSMOVEを垂直に立てて固定します。
この動作を『3』『4』『5』でも同様に繰り返します。
地味な作業ですがポジショントラッキングの精度に関わりますのでキッチリやりましょう♪
『3』のポジションで立てる
横にして・・・。
『4』のポジションで立てる
横にして・・・。
『5』の位置で立てる
全ての位置で測定が完了すると。
各TrackerとPSMOVEの位置の相対関係が画面上に表示されます。
トラッカーの相対関係が間違ってなさそうであれば『Tracker Settings』でメニューに戻ります。
先ほど実施した内容をもう1本のコントローラーでも実施します。
『>』をクリックしてcontroller:を1に切り替えます。
Controller:1に切り替わった事を確認したら、先ほど実施したことと同じ内容をController:1にも実施してください。
お疲れ様でした。
これでPSMOVEのトラッキングの設定は完了です。
次回はコントローラーマッピングを設定してSTEAM VRで使用できるように設定していきます。
pseyeも2個買うならPS4カメラ1個買って改造したほうが値段安そうですね。
せっかくPSVRでやるので値段は押さえたい所(笑
Xbox箱のカメラは使えそうですか?
Oculus Riftで使用可能みたいなんですが詳しくわからなくてすいませんm(_ _”m)
コメントありがとうございます。
PS4のカメラが流用できればコスト的に一番いいですよね。
私は現状改造は失敗した時のリスクが高いのでUSBの変換コネクタが一般に購入できるようになるのを待とうと思います。
PS4カメラの改造についてはネットで検索していただければ他の猛者さん達が改造に成功してWindowsでも使える事を確認しているみたいなので参考にしてみてください。(改造はくれぐれも自己責任でお願いしますm(_ _)m )
pseyeは中古だと500円くらいで買えるので私は中古の2個にしました。
Xboxのカメラ(Kinect)はPSmoveserviceとは違う方法driver4VRという別ソフトで全身トラッキングできるようです。
Oculus Riftはおそらくですが、付属のセット一式で全ての機能を使用できると思われますのであえて何かを買い足す必要はないと思われます。(あまり調べていないのでなんともいえないですが…)
PS3カメラとpsmoveとDK2のコンビでSteamVRを楽しむ際にとても参考にさせていただきました!この場を借りて感謝の意を示します。
さて、PS3のカメラだとセットアップのコスト(設置など)がかかりすぎるため、PS4カメラに手を出そうと考えて公式のGithubのIssueを覗いていましたら、国外ではありますが、PS4カメラとUSB3の変換アダプタのリンクを投稿している方を見つけたので共有しようとコメント投稿させていただきました。
ネタとしてご活用くださいませ〜
https://github.com/psmoveservice/PSMoveService/issues/35#issuecomment-488816399
コメントありがとうございます。
お役に立てたようで何よりです(^^)
PS4のカメラについては使用できるという事は前から知っておりました。
私の方でもアダプタを購入しようとしたのですが、どこのサイトも品切れ状態で配線を改造するしか方法はない状態でした。
また時間を見つけて配線の改造もしてみようと思います(^^)
貴重なご意見ありがとうございました!
今現在では、まだPS4カメラには対応できてないようですが、
(https://github.com/psmoveservice/PSMoveService/issues/35)
もしソースがあるなら教えていただけると幸いですm(_ _)m
PS4カメラでできたらキャリブレーションの手間が大きく省けれますし、
可搬性にも優れるのでぜひ対応してもらいたいですなぁ…
すいません、対応していなかったのですか?
申し訳ないです私も記事をさらっと読んだだけで、USBにコネクタさえ変換すれば使えるものとばかり思っていました。
たしかにデュアルカメラであらかじめ視差の値が分かっているのでキャリブレーションの必要がないので
持ち運びも簡単ですものね(^^)
実際にWindowsにカメラとして認識させたあとにPSMoveService立ち上げても反応なかったです…
もうしばらく掛かりそうですねぇ
世界の賢いエンジニアさんたちの進捗に期待しましょう
そうだったんですね・・・。
実際に試していただきありがとうございます。
そのとおりですね、世界中の賢いエンジニアさんたちに期待ですね!!