LoginSignup
28
29

More than 5 years have passed since last update.

【Unity】Unite 2015「コロプラUnity 5プロジェクト ~白猫プロジェクトにおけるUnity 4からUnity 5への移行事例~」レポート

Last updated at Posted at 2015-04-23

レポート一覧

なぜUnity5なのか

  • iOS64bit対応
  • 強制アップデートを極力行わない運用スタイルのため
  • Unityのバージョンをあげるチャンス
    • 次にアップデートが必要になった際にできるだけ新しいバージョンにしておくことが好ましい

Unityのバージョンについて

タイトル バージョン
魔法使いと黒猫のウィズ 4.1.5
軍勢RPG 蒼の三国志 4.1.5
スリングショットブレイブズ 4.5.4
ほしの島のにゃんこ 4.5.4

Unityバージョンをあげた経験

  • スリングショットブレイブズ

    • 画面の回転周りがiOSのバージョンアップで変更に
    • アセットバンドルを複数バージョン管理することに
  • 複数バージョンのアセットバンドル管理

    • 作成時間の倍増
    • チェックコストの倍増
    • 古いバージョンのUnityでAssetBundleを作成できるように保守する必要がある
      • 4か月ほどユーザーの移行期間として複数バージョンでの更新を行っていた

Unity5移行について

  1. エラーをとる
  2. うまく動かないところを直す
  3. 新しいバージョンが出るのを待つ

エラーをとる

  • 小文字でのアクセサがなくなっています
  • GetComponent<>と記述する必要がある
  • API Updaterがアップデートしてくれるが ただしコンパイルエラーが発生すると途中で終わってしまう模様
  • ひたすら「I Made a Backup. Go Ahead!」を選択していく必要がある

API Updaterにアップデートさせると
エディタで実行できるが端末で実行できないコードが生成されてしまう

System.Typeを使うAddComponentへ変更すること

Interactive Cloth

  • 白猫ではバナーに使用
  • InteractiveClothはClothへ
  • ClothRendererはSkinnedMeshRendererへ

Cloth

  • 頂点を固定する方法が変更された

その他の修正

  • TextureFormatがいくつかなくなった
    • ATF_RGB_DXT1など
  • AnimatorStateMachineのGetStateMahineが配列アクセスへ変更
  • BB10Playerがなくなった

うまく動かないところを直す

タイトルのアニメーションが動かない

  • ApplyRootMotion
    • Unity5ではルートモーションの仕組みが変わりました
    • 今までと同じ挙動にするにはApplyRootMonitionのチェックを外します

アウトラインが膨らんだ

  • Scaleについての仕様変更
    • 頂点を返すだけのシェーダ
    • Scaleがvertexにかかっている
    • Unity5.xの場合
      • UNITY_MATRIX_MVP←こっちにScaleが入っている
    • 修正後のShader
      • float3 norm = COMPUTE_VIEW_NORMAL(v.normal);
    • UnityCg.incの中にある組み込みマクロを使用しましょう

CubeMapが反映されない

  • TexGenがなくなりました
    • Unity5.x:VertexShaderでCubeapのUVを自分で計算する

クエスト選択の背景が黒くなる

  • RenderTextureへ描画するカメラの破棄に関する処理が変わっている
  • 参照を外してからカメラを削除する必要がある

キャラの顔が崩れる

  • 厚みの無い板にモーションがついているキャラの表示が崩れました
  • しばらく放置するとiPhoneが再起動します

  • OpenGL ES 2.0のみにする

    • 調査の結果OpenGL ES3.0, Metalでのみ発生
    • 原因はわからないですがOpenGLES2.0のみにした

DynamicBatchingで落ちる

  • iOSのIL2CPPのみでクラッシュします
  • ランブルシティでも発生
  • 原因がわからないのでとりあえずiOSのみDynamicBatchingをオフ

CharacterControllerの挙動が変わった

  • オブジェクトの当たり判定を変換
    • すべてのSphereColliderをCapsulColliderに変換しました
    • SphereCastしてチェックする方法もありましたができるだけプレイヤーは修正しないようにしました

LightMapの動的切り替えができない

  • LightMapを焼いたシーンでしかLightMapが反映されないため一つのシーン内で 動的にLightMapを差し替えることができない
  • 白猫では最初のカットシーンでしかライトマップを使っていないためライトマップを使わないようにしました
  • 3Dツール上でライトマップをつけてしまいUnityの機能を使わない方向も検討中

新しいバージョンが出るのを待つ

αアニメーションが反映されない

  • Animationdマテリアルのアルファを操作する際に値が反映されない
  • バグリポート済み。修正を待っています。

IL2CPPでのバイナリサイズ

  • 32bitと64bitのユニバーサルでのサイズが大きい
  • iOSではストア上でのサイズが100MBを超えるとwifiでしかダウンロードできなくなる

Unity4.6.4でのサイズ削減

  • 4.6.4でのパッチではすでにIL2CPPでビルドしたバイナリサイズ対策が2回入っている

現在のステータス

  • 3つの問題が解決すればリリース
  • カラーアニメーションのバグ
  • IL2CPPのバイナリサイズ削減パッチ
  • lightmapの方針
28
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
29