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-XXXX
MUMAX-XXXXX-G
- 1.のWi-Fiパスワード
例:PassWord
Xbh0ycmS
- イーサネットのIPv4アドレス
例:192.168.0.56
192.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 文末の統一・展示会での不具合を追加