IDEALENS を Nintendo Switch の Joy-Con で操作できるか検証してみた

本日はVRヘッドマウントディスプレイ (HMD)である
IDEALENS の機能を拡張できるかの検証です。

「IDEALENS K2」の標準入力は
HMD右側にあるタッチパッドとホームボタンの2つであることを
以前の記事で紹介しました。

この2つで出来ることは、決定(短押し・長押し)、キャンセルと4方向のスワイプ程度しかありません。

この入力のみでは、アプリでは単純な操作しか実装することができず
開発できるアプリの制限となってしまっていました。

その後「IDEALENS H2」コントローラーのことを調べてみたのですが
おそらくHMDにあることと同じことしかできない様子です。

そこで弊社は IDEALENS K2 が Bluetooth に対応していることに目を付けました。

ヘッドマウントディスプレイにゲームパッドを接続し、
ゲームパッドを入力デバイスとして登録し、
アプリで入力信号を検知して操作する、といった考えです。

IDEALENS & Nintendo Switch Joy-Con

IVRSDKの可能性に賭けてみます。

まずは、ゲームパッドが IDEALENS に接続できるか否かの確認です。

今回はいきなりですが Nintendo Switch の Joy-Con(ジョイコン)の接続を試みます。

IDEALENS を起動しホーム画面を表示します。

IDEALENS HOMEスクリーン ©idealens

[Settings] > [Bluetooth] を選択します。

Audio デバイス タブの横に Controller デバイス タブがありました。

これを選択します。

「Scaning」というデバイスを検出中のメッセージが表示されます。

Joy-Con のシンクロボタンを長押しし、プレイヤーランプが点滅し始めるのを確認します。

あとは祈ります。

数秒後、「Joy-Con (L)」が検出されたデバイスとしてスクリーンに表示されました!

早速選択します。

数秒後、「Connected to Joy-Con (L)」と表示されました。

第一関門突破(のはず)です。

すぐさま第二関門に向かいます。

Unity 上でのアプリ開発です。

ベースのプログラムは「Unity を Joy-Con で Nintendo Switch 風にしてみた」で作ったものを使うことにしました。

Unitychan with cylinder

まず最初に IVRSDK パッケージの Import を行います。

Unity IDRSDK Import

次に InputManager の設定を行います。

メニューバーから [Edit] > [Project Settings] > [Input] を選択します。

Inspector に InputManager が表示されます。

Unity Idealens Joy-Con InputManager

IDEALENS で最低限必要なのが「Horizontal」「Vertical」「Submit」「Cancel」の4つで、その設定に修正を行うと共に、新たに「ButtonA」「ButtonB」「ButtonX」「ButtonY」を加えました。

また、コンソールにエラーが出ていましたので、消してしまった「Mouse X」と「Mouse Y」を復活させました。

次はカメラ設定です。

Hierarchy に「IVRCamera」を追加します。

今回アプリ自体はTPSにしようと思いますので、プレイヤーの手前にカメラを配置し、プレイヤーを常に手前から写すようにスクリプトを組みます。

続いてプレイヤー設定です。

コントローラーで動かすのはプレイヤー(Unitychan)になるので、「PlayerController」のスクリプトに Joy-Con の入力信号受け取りと、それに従った動作をプログラミングします。

第二関門は突破できたかわかりませんが次に行きます。

第三関門はアプリのビルド設定です。

[Player Settings] を開きます。

Unity Idealens Joy-Con Build Setting

IDEALENS 用に設定を行いつつ、Gamepad も使用可能な設定にしておきます。

第三関門も突破できたかわかりませんが一応開発は終わりました。

あとはビルドして IDEALENS にインストールします。

インストールまで無事に終わりました。

Apps からアプリを起動します。

はい、落ちました。

エラーで起動直後に強制終了です。

とりあえず、1つ1つ原因を解析していきます。

2時間後・・・

とりあえず、アプリは立ち上がるようになりました。

が、ユニティーちゃんは動いてくれません。

さらに3時間後・・・

動きました。

ジョイスティック操作でユニティーちゃんがVRの世界を走ります。

Unity IDEALENS Nintendo Switch Joy-Con
(※この画像はPCでキャプチャーしたものです)

ボタン操作でユニティーちゃんが剣で斬りつけます。

Unity IDEALENS Joy-Con Sword Attack
(※この画像はPCでキャプチャーしたものです)

出来るか出来ないかもわからない状態でやってきたのでかなり疲れました。

でも、出来て良かったです。

ということで、今回の調査により「IDEALENS では Nintendo Switch の Joy-Con をコントローラーとして使用したアプリを作ることができる」という検証結果が得られました。

IDEALENS & Nintendo Switch Joy-Con

機会があれば PlayStation のコントローラーでも動かせるかどうかも調べてみたいですね。

PlayStation 持ってませんが。。

関連記事:

 |