PICO4で以前に作ったC++製VRゲームを動かすために色々研究していた。PICOは中身がAndroidなので、Windows版をそのままビルドし直してはい実行という訳にはいかない。
とりあえず公式でOpenXRを用いたデモが置いてあったのでそれが動くことを確認した。hello_xrをベースとしたものだったので読解は容易だった。公式デモはVulkanとOpenGLESを描画のバックエンドとしており、選択できるようになっている。どちらも動くことを確認できた。
PICO4のコントローラの入力を受け取る場合、コントローラのパスは/interaction_profiles/pico/neo3_controller
を使用するようだ。pico neo3とは違うコントローラな気がするが、ハードが違うだけでソフトウェア的には同じなのだろうか。
OpenXR部とVulkan部分が動くことが確認出来たら次に問題になるのはファイルの読み込み部分だ。Android環境では普通にifstreamみたいなので読み込むわけにはいかない。APKにまとまっているファイルを読み込む必要がある。
どうやらAndroidではAssetManagerという仕組みを使えば良いらしい。アセットを追加するには、AndroidStudioだとプロジェクトを右クリック->New->Folder->Assets Folder
でアセットフォルダが追加できるので、そのフォルダに入れていけば良い。
AssetManagerオブジェクトはandroid_main
関数に渡されるandroid_app* pApp
を用いてpApp->activity->assetManager
と取得できる。使い方はここに載っているので適宜やっていけばよい。
ちょっとした注意点として、上記のページだと#include <asset_manager.h>
と書いてあるが実際には#include <android/asset_manager.h>
だった。また、libandroidをリンクしなければならない。具体的なやり方はここに詳しい。
AssetManagerの使い方はこれだけなのだが的確にまとまった資料が見つからず、いやに時間を費やしてしまった。
PICO4を充電しながら動かすために長めのTypeC-TypeCケーブルが欲しいと思い、近所の家電量販店を回ったのだが、なかなか良いのがない。余裕を持って3mくらいのものをと思ったのだが、3mどころか2mのものすらない。そんなことある?仕方なく今日はあきらめた。
そういえばそもそもUSBの規格であまり長いケーブルは作れなかったような。その辺の事情によるのかも。
Categories: 未分類