本来はOpenXRという共通規格により、Unityでゲームを作り1つのAPKファイルを書き出せばマルチプラットフォームで動くはずなのだが。
まぁOculusが脆弱すぎて動かねぇ。(FBでアカウント作った直後に「不審なアクティビティ」とか言ってバンするようなサービス作ってる外人だから納得)
・OpenXRのターゲット設定を1回でも変えるとダメ
・unity開発時に何回かコンパイルエラーを起こしているうちにダメになる
・パッケージマネージャーからアセットを更新するだけでもダメになる
・クリーンビルド、ライブラリフォルダの削除、キャッシュ削除してもダメ
・なんならSVNで正常に動いていたバージョンに戻してもダメ(Oculus内で何かキャッシュ持ってる?)
・SideQuestで該当アプリのAPK、データを削除してもダメ
ということで、この1ヵ月ほど大変無駄な時間を費やしてしまった。
ちなみにダメになるパターンはいくつかあって、APK起動後、unityのロゴが出ずにホーム画面に戻される、APK起動後は画面が真っ暗でコントローラ入力も受け付けない(ゴーグル再起動しかなくなる)
エラーログを見ていると、結構根底の低レイヤー部分でのエラーが出ていそうな感じ。
別の視点では、unityのプロジェクトはなぜ壊れやすいのかという記事もあるので、
この組み合わせに問題があるのかもしれん。
しかし使用にスマホが必要だったり、メガネが入らなかったり、Mのサーバがコケてると使えないとか設計思想が全く意味不明のVRゴーグルで、
価格面、画質からしても普通に考えたらPICO4一択なのだが、
なんとか誤って購入してしまった人達の救済方法(ワークフロー)が確立できた。
方針としては、開発用のunityプロジェクトを用意(PICO4でガシガシ開発。VR用の乱視レンズなんて作らんでええ。モーションキャプチャーやVeryAnimationなどのアセットも使用可)
この際、エクスポートしやすいようにassetフォルダ内に1個フォルダを作り、その中にデータを放り込んでいく。
また、テンプレートのunityプロジェクトも用意し、動作時に最低限必要なバージョンをそろえたアセットのみ導入して動作確認をしておく。
開発終了時、必要なデータをパッケージエクスポート。
Quest用とPICO4用にテンプレートフォルダを2個コピー(FastCopy)し、インポートして微調整、APK出力。
といった流れになりそう。
Comment on this article
コメントはまだありません。
Send comments