手の動きでモンスターボール投げ! 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 を使って、ハンドトラッキングからボール投げを実装したいと思います。
(続く)
この記事が気に入ったらサポートをしてみませんか?