Androidパッケージ化の注意点
妹「昨日ブログ書くのさぼってなかった?」
「さぼってたわけではなくて、UnrealMatch3以外にどのサンプルプロジェクトがAndroidで動かせるか調査してたら凄い時間がかかって、布団の中で少し休憩してただけだよ」
妹「やっぱりさぼってた……」
「そんなこんなで、調査の結果わかったことがいくつかあって」
・プロジェクトはランチャーから開く
・プロジェクト名に日本語を使ってはいけない
・テクスチャの形式はETC2に(ただし発売から2年ぐらいの場合に限る)
・アセット名に空白が入ってると駄目
・データは全部APKに含める設定にする
「まずプロジェクトはランチャーから開く。もしくはuprojectファイルをダブルクリックしてもいいんだけど、ファイルメニューの"プロジェクトを開く"というのを使ってはいけない。これをやるとAndroidパッケージ化に失敗して、なおかつログの中に直前に開いてたプロジェクト名が入ってたから、どこかに開く前のデータで残ってるせいで失敗してる感じだった」
妹「スマホじゃない時も駄目なの?」
「どこの何が影響してるかわからないから、どんな場合でも一応ランチャーから開き直した方がいいと思う」
妹「途中で色々変えることあんまりないし、だいたいランチャーから開いてるような気はするけど」
「次にプロジェクト名が日本語だと失敗するというのもわかった。スワッグニンジャを試してた時なんだけど、プロジェクト名が初期設定の"スワッグニンジャ"のままだと駄目で、"SwingNinja"に変えればOKだった」
妹「それは"スウィングニンジャ"にしてもやっぱり駄目なんだよね……」
「プロジェクト名だけならすぐ変えられるから、それは大した問題にはならないと思う。他の日本語問題についてはまだ調査中」
妹「なるべく日本語で書けるように頑張るんだ!」
「それとパッケージ化の選択肢で、(全て)をやると時間がかかりすぎる。端末によって使える画像形式が違うから、全部に対応しつつ、綺麗に出来る時は綺麗に表示しようと思うと(全て)なんだけど、実際問題として確認用にはETC2だけで十分だし、最近の機種に絞れば公開もETC2だけで良さそうな感じ」
妹「最近の範囲が2年って短くない?」
「実際はもうちょっと前のでもいけるかもしれないけど、あんまり古いとアップデートも出来ないし、性能的な問題も出てくるから、スマホの場合発売から3年経つともう古いって感じになるね。今から3年後にどうなるかはまだわからないけど」
妹「寿命短か! お高いのに」
「次のアセット名に空白を入れちゃいけないっていうのは、Stickmanのプロジェクトで試してて気付いたんだけど、使ってないアセットファイルにスペースが入ってない文字があって、それを消すとパッケージ化出来るようになった。というか、使ってるファイルだったら、UE4側でその文字は使えないってエラーが出るから、普通はこういうことは起きないはず」
「最後のはパッケージ化の段階じゃなくて、その後動作確認する段階で問題になるやつ。容量が大きい場合複数のファイルに分けるやり方があるけど、それだとデバッグがしにくい。"Package game data inside .APK?"にチェックを入れると、APKファイル1つにまとめられる。50MB以上だとGooglePlayで配信出来ないって書いてあるけど、これは去年の9月に緩和されたから100MBまでいける」
妹「今日のもよくわかってはないんだけど……わたしが作ってるやつはスマホ化出来そうなの?」
「それはまだ……原因の調査してるところ。確認できてる範囲では UnrealStichFigure2D、SwingNinja、BlackJack、TappyChicken、UnrealMatch3、MemoryGameあたりはパッケージ化出来た」