To Foreign Users
Hello, Surplex users.
I used Surplex to create a game as part of my university graduation project.
In the process, we saw many people struggling with Surplex connectivity.
So, I would like to share with you the problem I experienced.
However, with my English ability, it is difficult for me to write this document completely in English.
So, please translate it with Google Chrome extension etc. and read it.
はじめに
本記事では、靴型トラッカーである「Surplex」をSteamVRに接続する方法と、OpenXRを用いているUnityに接続する方法の開発マニュアルをまとめています。
公式マニュアルやFAQを元に制作し、実体験から得た補足を加えています。
もし質問がある場合はSurplex公式Discordサーバーにて@OECUへメンションをしてください。(すぐには返信できません)
公式マニュアルは、Surplexと同梱されている手順書に書かれているURLから見られるサイトです。
公式FAQは、公式マニュアルのFAQ & Contact Us > hereから見られるGoogleドキュメントです。
接続環境
デバイス
- Windows 10
- VRゴーグル (Meta Quest 2)とコントローラー
- Surplex
- 2.4GHzと5GHzとイーサネット接続、全てができるWi-Fiルーター
ソフトウェア
- OpenSSL
- Arduino Cloud Editor(ブラウザ上)
- Cloud Agent
- Steam
- SteamVR
zipフォルダ
- function_test.zip
- deploy_main.zip
- surplex_firmware_main.zip
- websocket_trackers.zip
各ソフトウェアのインストールができているのであれば、対応する手順(4.~6.)を飛ばして構いません。
接続イメージ
SurplexとSteamVRの接続
準備
1. Surplexの充電
SurplexをType-Cのケーブルを用いて充電します。左のランプが緑色になっていれば充電完了です。
2. PCとルーターをイーサネット接続
ルーターの説明書にしたがって、PCとルーターを有線で接続します。
Wi-Fi(無線)を使ってインターネット接続をすると、PCとVRゴーグルをWi-Fiを使って接続できない場合があります。
3. Wi-Fi情報をメモ
以下の3つをメモします。
- 接続したルーターの2.4GHzのSSID
例:Buffalo-G-XXXXMUMAX-XXXXX-G - 1.のWi-Fiパスワード
例:PassWordXbh0ycmS - イーサネットのIPv4アドレス
例:192.168.0.56192.168.1.9
5GHz用のSSIDはメモしてはいけません。
IPv4アドレスの調べ方
1. [設定] > [ネットワークとインターネット] > [イーサネット] > 接続中のイーサネットのSSIDを選択します。
2. ページ下部の[プロパティ]に書かれている[IPv4 アドレス]をメモします。
ソフトウェアのダウンロード・インストール
4. OpenSSLをインストール
下記のサイトから、Win64 OpenSSL vX.X.X LightのEXEをクリックしてダウンロードします。
ダウンロードしようとするとブラウザやPCから拒否しようとしますが無視してください。ただし、安全性は保証できません。
ダウンロードしたインストーラを起動します。
NextとInstallをクリックしてインストールします。
インストールが終わると、お金を寄付するか選べます。寄付しなくても機能が無くなることはありません。
参考サイト(「パスを通す」以降は行わない。)
5. Arduino Cloud Editorのセットアップ
下記のURLから、サインインするかArduinoアカウントを作成します。
下記のURLから、Cloud Agentをインストールします。
6. Steam・SteamVRをダウンロード・インストール
下記のURLから、Steamをインストールします。
Steamを起動して、ログインするか、Steamアカウントを作成します。
[ストア] > [検索] からSteamVRをダウンロードします。
7. SteamVRにwebsocket_trackersを追加
公式FAQからwebsocket_trackers.zipをダウンロードし、解凍します。
解凍したフォルダを
C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers
へ移動させます。
...\websocket_trackers\websocket_trackersとならないようにしてください。
ファームウェアのインストール
8. surplex_firmware_main.zipをダウンロード・解凍
公式FAQからsurplex_firmware_main.zipをダウンロードし、解凍します。
フォルダ内のsurplex_firmware_left.zipを解凍します。
9. Arduino Create Agentを起動
[タスクバー] > [ここに入力して検索]でArduino Create Agentを検索し起動します。
[タスクバー]> Arduino Create Agent > Go to Arduino Createをクリックします。サインアウトしていたなら、サインインします。
10-1. Arduino Cloud Editorにsurplex_firmware_leftを追加
Sketchbook > ↑(Import) > IMPORTをクリックして、surplex_firmware_left.zipを選択して開くをクリックします。
surplex_firmware_left🔽を選択して、Secretをクリックして、3.でメモした文字列を入力します。
| ラベル | 入力する値 |
|---|---|
| SECRET_SSID | 1. 接続したルーターの2.4GHzのSSID |
| SECRET_PASS | 2. 1.のWi-Fiパスワード |
| SECRET_ADDRESS | 3. イーサネットのIPv4アドレス |
・・・ > Saveをクリックします。
値を入力すると順番が入れ替わりますが、対応したラベルに合わせて入力します。
stray"\302" in programとエラーが出たとき
入力値に不要なスペースを消してください。
10-2. Arduino Cloud Editorにsurplex_firmware_rightを追加
10-1.と同様の手順で右足にsurplex_firmware_rightを追加します。
11-1. Surplexの左足をフォームアップ
Surplexの左足の電源をつけて、USB Type-CでPCに繋ぎます。
上部のプルダウンからESP32 Dev Moduleを選択します。
Arduino Create Agentが起動していても繋がらないことがあります。かなり気分屋なので以下のことを試してください。
- USBポートの変更
- Arduino Create AgentやPCの再起動
上部の→をクリックします。
エラーでDEPLOY_IMU myIMUと出た場合
10.でlibrariesをうまく追加できなかったことが原因です。
- 8.で解凍した
surplex_firmware_left内のlibrariesをzipに圧縮する -
Libraries>↑(Import) >IMPORTをクリックして、先ほどのzipを選択して開くを選ぶ
11-2. Surplexの右足をフォームアップ
11-1.と同様の手順で、右足にsurplex_firmware_rightをフォームアップします。
ソフトウェアのダウンロード
12. deploy_main.zipをダウンロード
公式FAQからdeploy_main.zipをダウンロードする。
購入時に届いたメールからダウンロードできるsurplex_software_slim20230510.zipにもありますが、動かない可能性があります。
13. deploy_main.zipを解凍・移動
deploy_main.zipを解凍して、以下のディレクトリになるようにダウンロードフォルダにへ移動します。
└ Downloads
├ deploy_main
~
新しいフォルダを作成したり別の場所に移動してはいけません。
2024/02/10 要検証です。
ソフトウェアの起動
14. Surplexを再起動
両足のスイッチを一度OFFにてから、もう一度ONにします。
右のランプが赤か黄色に光っていればよいです。
15. SteamVRを起動
VRゴーグルをPCと無線接続をした上でSteamVRを起動します。
Meta Quest 2の場合
- PCにMeta Questアプリをインストール
- Meta Quest 2を5GHzのWi-Fiに接続
- Air LinkでPCとMeta Quest 2を接続
- Meta Quest 2からSteamVRを起動
16. deploy_main.exeを起動
13.で解凍したdeploy_main内のdeploy_main.exeを起動します。
Please confirm that your addressが表示されるまで待ちます。
起動がかなり遅いです
あまりにも起動が遅い時はdeploy_main.exeを起動しなおすと、すぐに起動することがあります。
17. 身体情報を入力する
Please confirm that your address atが表示されたら、Enterを入力します。
ここではSurplexの接続先IPv4を確認しています。
Please enter your height in cm:が表示されたら、自身の身長をcm単位で整数のみ入力します。
(例:175 155)
Please enter your weight in kg:が表示されたら、自身の身長をcm単位で整数のみ入力します。
(例:55 78)
Please enter your lower length (from knee to anrkle) in cm:が表示されたら、自身の膝から踵までをcm単位で整数のみ入力します。
(例:50 43)
Please enter your upper length (from waist to knee) in cm:が表示されたら、自身の腰から膝までをcm単位で整数のみ入力します。
(例:50 40)
Pleae Enter to Calibrate IMU (Put your shoes in the same direction as HMD)が表示されるまで待ちます。
表示されたら、Enterを入力してすぐに頭と足を正面に向きます。
このとき、両足の体重が 均等に 乗るように意識しましょう。
Current Frame_rate:が表示されるまで待ちます。
初回起動時にソフトウェアが落ちることがありますが、気にせずもう一度起動してください。
18. SteamVRのトラッカー設定
SteamVRの[設定] > [コントローラー] > [トラッカーの管理]を選びます。
トラッカー名に合わせてトラッカーの役割を設定します。
| トラッカー名 | トラッカーの役割 | In English |
|---|---|---|
| ~/LeftFoot_tracker | 左足 | LEFT FOOT |
| ~/RightFoot_tracker | 右足 | RIGHT FOOT |
| ~/Waist_tracker | 腰 | WAIST |
2回目以降の接続方法
ソフトウェアの起動 の 14. Surplexを再起動から行います。
ただし、17.でIPv4と身体情報を入力しなくて良いです。
OpenXRを用いたUnityとの接続
Surplexがwebsocketを用いている点から、localhostから位置情報を参照することで位置情報を読み取ります。
SteamVR上ではViveトラッカーのような見た目をしていますが、OpenXRを用いている状態でHTCViveTrackerProfile.csを用いても動きません。
https://forum.unity.com/threads/openxr-and-openvr-together.1113136/#post-7803057
1. Unityのプロジェクトでwebsocketが使えるようにする
以下のサイトを参考にwebsocket-sharp.dllをビルドします。
Unityの Assetsにフォルダを制作しPluginsと名前を変更します。
ビルドしたwebsocket-sharp.dllをPluginsにインポートします。
2. UnityのGameObjectにSurplexWebSocket.csを追加
以下のURLからSurplexWebSocket.csをダウンロードします。
SurplexWebSocket.csは私が独自に書いたプログラムです。
SurplexWebSocket.csを利用する際は自己責任でお願いいたします。
このコードを使うとビルドができません。おそらく初歩的なミスですがご容赦ください。
past_versionsには過去のバージョンが保存されています。
UnityのAssetsにSurplexWebSocket.csを追加します。
任意のGameObjectにSurplexWebSocket.csを追加します。
3. 連動させたいGameObjectにタグを設定
連動させたいGameObjectに以下のタグを設定します。
| 体の器官 | タグ名 |
|---|---|
| 腰 | Waist |
| 右足 | RightFoot |
| 左足 | LefFoot |
4. SteamVRとdeploy_main.exeを起動
ソフトウェアの起動 の 14. Surplexを再起動以降の手順を行っていきます。
更新履歴
2024/01/25 テスト公開
2024/02/01 「SurplexとSteamVRの接続」を制作
2024/02/09 「SteamVR経由でOpenXRを用いたUnityゲームの開発」を制作
2024/02/12 文末の統一・展示会での不具合を追加