概念図は上記のとおり
今回は、アプリは前回の記事のとおりで、結線変えて遊んだ話です。
つまり、OculusGoって、一度アプリを転送してしまえば独立に動くんじゃないか
ということでやってみました。
やったこと
(1)flaskを動かすサーバー(マシン)を変更する
(2)GetTextが見に行くURLを変更する
(3)UnityでBuild&Runして、OculusGoにアプリ転送する
(4)OculusGoのUSBケーブルを分離して独立させて、動かす
同時にapp.pyを動かしたり、止めたりする
(1)flaskを動かすサーバー(マシン)を変更する
まんまです。
ただし、今はWiFi環境内で動かしています。
実際、ルーティングの話は、以前の参考見てください。
※単に参考記事に飛んでるだけでやっていませんが、。。
ここで大切なのは、そのマシンのIPアドレスです。
これを取得してください。。。
(2)GetTextが見に行くURLを変更する
Unityのスクリプト、GetTextの見に行くwwwのURL(以下の★の部分)を上記のflaskのWebサーバーのIPアドレスに変更します。
Unityで動かす場合も、これで問題なく動きます。。。
IEnumerator Start()
{
WWW www = new WWW("http://192.***.***.★★★:5000/");
yield return www;
これで準備ができました!
(3)UnityでBuild&Runして、OculusGoにアプリ転送する
これもまんまです。
正しくOculusGoとUnityのマシンをUSBで繋いでください。
ここで一度、OculusGoで確認するといいと思います。
もちろん、flaskマシンでapp.pyを実行しておいてください。
実行していなくとも以下のようなDefault表示が出ますが、今回はこれはwwwと通信した証拠にはならないので注意です。
(4)OculusGoのUSBケーブルを分離して独立させて、動かす
さてさてクライマックスです。
USBケーブルの結線をはずして、OculusGo内のアプリを動かします。
これは、「ナビゲーションーライブラリー提供元不明ーアプリ」の順に選んでください。
一度、クリックするとフラッシュします。
そして、二度目のクリックで起動します。
ここで、app.pyが動いていないと、Unityのそれぞれで設定されているDefaultが表示されます。
今回のアプリでは
Old Text
New Text
Button
と表示されます。
そして、この状態からapp.pyを動かすと、
Hello Unity
Hello Unity
Hello Unity
に変わります。
さらに、app.pyを停止すると
Unknown Err
Hello Unity
Hello Unity
に変わりました。
これは、Canvasを二種類とButtonを配置していて、下のCanvasとButtonはUnityアプリのStart時点でのみWWWにアクセスしてデータ取得する設定にしていますが、上のCanvas内のTextでは逐次アクセスしてデータ取得しているためです。
因みに、最初Unityアプリを起動時、app.pyは停止していてDefault表示はOKですが、その後app.pyを起動した時点で正しくHello Unityが表示されるのは、やはり IEnumerator Start()であるため、"こと"が発生するまでStart()で待っていると考えられます。
【参考】
IEnumerator
まとめ
(1)OculusGoに取り込んだアプリはOculusGo独立で動かすことができました。
(2)flask-OculusGo連携が確立しました
⇒つまり、ブラウザにアクセスする方法としてブラウザだけじゃなく、OculusGoのようなもので直接連携できるということです
Flask-OculusGo連携はVRの世界が主流になる次の世界では流行るかもしれない(笑)
ここで大切なことは、OculusGoのブラウザでも"Hello Unity"の文字は見えるんだけど、Unityで開発した新たな付加価値がついた形(VR・ARや3Dや物体検出・認識・追跡や。。Avatorや。。。なんかの付加価値等)で提供できるサービス(今回はボタン表示やPanelと浮いてる文字だけど。。)がそこにある。。。最後盛ってみました(笑)
※画像をクリックするとYouTube動画につながります
OculusGoのUnityからの独立;falsk-OculusGoの直接連携?!
※YouTubeに前回と同じ動画と判定されて上書きされてしまった。。まあ長さは少し違うけど^^;