【CG】UE4でGearVR出力した際につまずいた点とか

Pocket

 防備録。
 
 UE4もバージョン4.10以上になるとインストールした時点でほぼ必要なものとか同封されているお陰か、つまずきもほぼ出ませんでした。UE4公式ドキュメント通りでいけます。
 ところが私は1点だけドキュメント通りにやらなかった――「2.Gear VR プロジェクトの設定」の「ステップ7.」通りにやらなかった。――Android SDKとかJREなどを元々持っていたためにそれらをUE4に設定してしまい、そのためちょっと苦労することになりました。
 あまりこういう人いないかもしれませんが、いくつかひっかかった点をまとめています。


1.「SWT folder ‘lib¥x86_64’ does not exist.」エラーが出る

ドキュメント:3.Gear VR プロジェクトのパッケージングとデプロイメント。 ステップ3。 の後。
 しょっぱなでこれが出ました。
【原因】 Android SDKの問題。
【対策】 アナログですが、アウトプットログが指摘する内容を単純に回避する方法をとりました。
結論を先に言うと、次のことをしました。
  1.%TEMP%¥temp-android-tool¥lib¥x86 フォルダをコピーした。
  2.コピーした x86 フォルダを x86_64 にリネームした。
【詳細】 ログを見ると、
    %TEMP%¥temp-android-tool¥lib¥x86_64 フォルダが無い
って書いてあるので見に行ってみると、
unreal_engine_gearvr_1-2016-11-10_takahiro_yanai_christinayan01

確かに無い。だけど x86 フォルダとその中に swt.jar ファイルはあるのです。
まあjarの中身は同じだろう的な解釈をして、単純に x86 フォルダごとコピーして x86_64 にリネーム。
unreal_engine_gearvr_2-2016-11-10_takahiro_yanai_christinayan01

 これで解消しましたが、まあこの方法は良くない。%TEMP%をお掃除する度にこれをやんなきゃいけない。

2.「APKバージョンが違う」エラーが出る

 なんというか、「君のところにビルドするための環境がないんだけど。」みたいなことをエラーで言われた。
【原因】 自前で持っていたSDK達の組み合わせやら中身が悪い様子。
【対策】 NVPACKをダウンロードして、全部そこにあるSDKと紐付けした。
unreal_engine_gearvr_3-2016-11-10_takahiro_yanai_christinayan01

【詳細】 私の持っているAndroid SDKバージョンは APK17 なので、UE4のNDK API Levelにもちゃんと android-17 と設定したのですが、なんか機嫌が悪い対応をされる。
 あれこれ試したのですが疲れたので、素直にNVPACKをダウンロードしてインストール。
 ここにAndroidビルドに必要なSDKが全部入っていますので紐付け。で、こいつのAPKが19なので
    NDK API Level = android-19
と設定する。最初っからこれやればよかったんですね。

 この後、ビルドが順調に進みました。よくわからないけどFPS(1人称)のテンプレートをビルドするだけで3時間もかかったんですけども! 初回ビルドはこんなもん?
 2回目以降は10分くらいでした。リビルドしないにチェックしたもんね。
unreal_engine_gearvr_4-2016-11-10_takahiro_yanai_christinayan01

 これで無事apkファイル一式が出力されました。
 Galaxy S6 EdgeをPCとUSB接続してから Install_GearVR_QS_Shipping_armv7-es2.bat を叩けばインストール完了。
unreal_engine_gearvr_5-2016-11-10_takahiro_yanai_christinayan01

unreal_engine_gearvr_7-2016-11-10_takahiro_yanai_christinayan01

3.GearVRで「thread priority security exception make sure the apk is signed.」エラーが出る

 スマホからアプリを起動して、Gear VRを装着しろと言われたので、装着したらこんなエラーがでました。
 んーーーーーーー。わからん。
 そこで、まずはフレームシンセシス様のサイトを参考にしました。

 プロジェクト設定 → インプット → Default Touch Interface を見ると Default Virtual Joysticks が選択されているので、プルダウンを押して クリア を選択。
 
    Default Touch Interface = なし

にすればOKだそうす。
unreal_engine_gearvr_6-2016-11-10_takahiro_yanai_christinayan01

 で、UE4を再起動して、もう1回プロジェクトをパッケージ化します。

 さあGear VRを装着。・・・だめでした。

4.Oculus Signature File Generator(osig)でデバイスIDを発行

 あ、これやってないわ。osigをUE4に乗っけてない。
 OculusにデバイスIDを教えてやらないといけないんですよね。
 Oculus Signature File Generator(osig)でデバイスIDを発行。UIコロコロ変えすぎてほんと嫌。
 osigファイルをダウンロードしておきます。
oculus_signature_file_osig_generator_takahiro_yanai_christinayan01

  C:¥Epic Games¥<バージョン名>¥Engine¥Build¥Android¥Java フォルダに assets フォルダを新規作成します。そして assets フォルダに osig をつっこみます。
 これでもう1回プロジェクトをパッケージ化。
unreal_engine_gearvr_8-2016-11-10_takahiro_yanai_christinayan01
unreal_engine_gearvr_9-2016-11-10_takahiro_yanai_christinayan01

 というより、この動画と同じことをしました。
[Deployment to Samsung Gear VR with Unreal Engine 4 | Peter L. Newton – YouTube]

 これで見れました! グーだね。
 今度はネット写真展の会場のプロジェクトでやってみよう。


参考サイト

UE4+Gear VR開発メモ – フレームシンセシス
NVIDIA CodeWorks for Android – NVIDIA Developer
Samsung Gear VR UE 4 のクイックスタート – Unreal Engine 4
UE4 Androidビルドエラー「SWT folder ‘lib¥x86_64’ does not exist. 」 – gigaftmassif
AndroidのSDK API Levelの設定値について – UE4 AnswerHub

コメントを残す