ヴァリアントレギオンでUnity4からUnity5へバージョンアップした時に発生した問題

ヴァリアントレギオンでUnity4からUnity5へバージョンアップした時に発生した問題

エンジニアの山内です。

絶賛サービス中のタイトル ヴァリアントレギオン のアプリ開発ではUnityを利用しており、開発開始時のUnityのバージョンは3.5で、現在は5.0.4と2回のメジャーバージョンアップを行っています。
Unity4 から Unity5 へバージョンアップした時に、こんな問題がありました、という紹介です。

特定の端末で文字が表示されない

特定GPUの端末で文字列が塗りつぶされて長方形になる問題が発生しました。文字の描画には unity-sysfont を使用していたのですが、5.x向けにはサポートされていないためと推測し、テクスチャ生成部分とレンダリング部分を改修して対処しました。

ビルド時間が2倍に

IL2CPPの影響でアプリのビルド時間が2倍になりました。対応として開発時はIL2CPPを切る方法が検討されましたが、その違いで不具合が発見されない方が怖いのでそのままにしています。

バイナリが制限サイズを越えた

IL2CPPの影響でアプリのサイズが大きくなり、ipaの制限である100MBを超えてしまいました。対応としてはチュートリアルで使用するデータをアプリから削って、追加ダウンロードするようにしました。
Androidでも制限を越えてしまいましたが、これはコンテンツ追加の影響だったので組み込みのテクスチャを減色・整頓しました。

Animation解放時にアプリがクラッシュする

ヴァリアントレギオンではUnity3の頃から開発していた名残でレガシーなAnimationを利用しています。Animationがついたモデルを解放するとき、アニメーションクリップをRemoveしなければクラッシュするというバグを踏みました。この問題は解放処理の前に停止処理を必ず行うようにして回避しました(Unityの不具合で現在もfixされていないようです)。
レガシーアニメーション関連の不具合は他にも余波があり、開発ツール側での問題解決ができておらず、一部の作業はUnity4で行うという事態になっています。さらにUnity5.1以上にバージョンアップした際にもAnimationで問題が出るため、現在5.0.4で足踏み中です。
現在これらを解消するべくAnimationからAnimatorに一括変換中です。

ほかにも

  • エネミーがバックステップする時にノーモーションでスッと下がる
  • メインメニュー上のアイコンの並びがガタガタになる
  • ガチャ演出で宝箱を空ける瞬間に宝箱が吹っ飛ぶ

など、見た目に楽しい(楽しくない)問題がありました。