手の動きでモンスターボール投げ! 4

↑ これの続きです。

システム構成
(1):ToF AR が入った Android アプリで手認識
(2):(1) から信号受信しスワイプ操作を実行するスマホ上のプログラム
(3):ポケモンGo

今回は (1) と (2) の連携の検証です。まだ手認識(ToF AR)は出てきません。

動作の様子


Unity プロジェクト (メッセージ送信側)

分割起動のための設定

Player Settings > Resolution and Presentation > Resizable Window
のチェックをいれます
この設定により画面分割でアプリ起動が可能になります。

通信プログラムの作成

TouchClient.cs で処理を行っています ↓

ThrowBall メソッドが呼ばれると a という文字を送信します。

その他 GUI の実装

以下の実装をしています。
・Toggle から TouchClient.cs の Connect / Disconnect を呼び出す
・Button から TouchClient.cs の ThrowBall を呼び出す

ビルド

Target Platform を Android に変更し、ビルドします。

Java プログラム (メッセージ受信側)

TouchServer3.java を使用します ↓

ボール投げ動作部分は前回までのプログラムと動作は同じです。
今回はボールを投げる動作のトリガーを Unity アプリから受け取るため、ServerSocket を使ってサーバプログラムとなっています。
接続されたクライアントから a という文字を受けるとボールを投げる操作を発生させます。
画面が半分になっているので、ボールを投げる操作の長さは前回の半分程度に調整してあります。

プログラムの実行は ADB.exe  から行います。解説は前回までの部分にあるので割愛します。

今回実装していて大きな問題が判明しました。ADB.exe  と端末の通信が切れると、この Java プログラムも強制終了してしまうようです。調べてみたところ「nohup を使うよい」というのを見つけたので試してみたのですが、駄目でした。自由に屋外で使用するのは難しそうです。(回避策求む!)


次回は ToF AR を使って、ハンドトラッキングからボール投げを実装したいと思います。

(続く)

この記事が気に入ったらサポートをしてみませんか?