SlideShare a Scribd company logo
1 of 38
Download to read offline
Confidential© POKELABO, INC.
株式会社ポケラボ
加茂雄吾
1
リアルタイムマルチプレイの
タワーディフェンス
『ポイッとヒーロー』の
unity5移行事例
2015/8/11
Confidential© POKELABO, INC.
自己紹介
22015/8/11
Confidential© POKELABO, INC.
テーマ
32015/8/11
unity 4
Confidential© POKELABO, INC.
Unity5に移行した理由
42015/8/11
iOSの64bit対応問題
Unity4.6よりUnity5のほうが対応が早かった
いずれメジャーバージョンアップするのなら、
このタイミングですべきと判断
Confidential© POKELABO, INC.
移行時にハマったポイント
(1) アニメーションが動かなくなった
(2) 3Dモデルが白くなった
(3) Androidでタッチが効かなくなった
(4) Android実機で全体的に重くなった
52015/8/11
Confidential© POKELABO, INC. 62015/8/11
アニメーションが動かなくなった
Confidential© POKELABO, INC.
アニメーションが動かなくなった
エラー animationがないよ
• The name `animation' does not exist in the current
context
72015/8/11
Confidential© POKELABO, INC.
アニメーションが動かなくなった
82015/8/11
Unity5から
animationプロパティがなくなった
↓
GetComponent<Animation>()
を使う
✔
Confidential© POKELABO, INC.
アニメーションが動かなくなった
92015/8/11
エラーは消えたが、一部の位置を動かす
アニメーションの挙動がおかしい
Confidential© POKELABO, INC.
アニメーションが動かなくなった
102015/8/11
Unity5の新機能:
GenerateRootMotionCurves
↓
下記設定でアニメーションで移動できる
1. 2.
Confidential© POKELABO, INC.
アニメーションが動かなくなった
112015/8/11
GenerateRootMotionしていないのに、
ApplyRootMotionしている場合、
移動せず、その場でアニメーションする
Unity4のAnimatorはデフォルトで
ApplyRootMotionにチェックが入ってい
るので、移行時に動かなくなる
Confidential© POKELABO, INC.
アニメーションが動かなくなった
122015/8/11
AnimatorのApplayRootMotionの
チェックを外したら直った
✔
Confidential© POKELABO, INC. 132015/8/11
3Dモデルが白くなった
Confidential© POKELABO, INC.
3Dモデルが白くなった
142015/8/11
ライティングがおかしい
Confidential© POKELABO, INC.
3Dモデルが白くなった
• Unity5からシェーダーのライトの計算が変更
– 光の強度で2xの乗算を行わなくなった
– それに伴い、互換性を保つためライトは自動で2倍の明るさに
カスタムシェーダーを使っている場合は、
手動で「光の強度で2xの乗算を行わなく」しないと
ライト2倍の影響で、白くなってしまう。
152015/8/11
Confidential© POKELABO, INC.
3Dモデルが白くなった
162015/8/11
カスタムシェーダーの光の強度を
2倍している部分を修正する
✔
Confidential© POKELABO, INC. 172015/8/11
Androidでタッチが効かなくなった
Confidential© POKELABO, INC.
Androidでタッチが効かなくなった
182015/8/11
Android端末で全ての
タッチが効かなくなった
Confidential© POKELABO, INC.
Androidでタッチが効かなくなった
192015/8/11
AndroidManifest.xmlの
ForwardNativeEventsToDalvik
のvalueをfalseに変更
✔
Confidential© POKELABO, INC. 202015/8/11
Androidで全体的に重くなった
Confidential© POKELABO, INC.
Androidで全体的に重くなった
212015/8/11
Android端末で全体的に
FPSが低下
情報が少なく、原因不明のため
Unityのプロファイラ(実機)で地道に調査
Confidential© POKELABO, INC.
Androidで全体的に重くなった
222015/8/11
CPUのスパイクが多発
→ Loading.LoadFileHeaders
Confidential© POKELABO, INC.
Androidで全体的に重くなった
232015/8/11
LoadFileHeaderの正体
→ Resources.Load
Unity5からResources.Load
の挙動が変わった?
Confidential© POKELABO, INC.
Androidで全体的に重くなった
242015/8/11
Resources.Loadの速度比較(Android実機)
Confidential© POKELABO, INC.
Androidで全体的に重くなった
252015/8/11
Resources.Loadの速度比較(Android実機)
130 0.1 134 106 29
2555
Confidential© POKELABO, INC.
Androidで全体的に重くなった
262015/8/11
2回目以降のResources.Loadが重い
キャッシュが効いてない?
Confidential© POKELABO, INC.
Androidで全体的に重くなった
272015/8/11
Resources.Loadをオーバーラップして、
オンメモリのキャッシュに乗せる
✔
Confidential© POKELABO, INC.
Androidで全体的に重くなった
282015/8/11
修正後の反響
Confidential© POKELABO, INC.
余談 Unityのパフォーマンス
292015/8/11
Unityのパフォーマンスについての
常識は日々更新される
中身がブラックボックスだからこそ
最新版でベンチマークをとることが大事
Confidential© POKELABO, INC.
移行時にハマったポイント
アニメーションが動かなくなった
3Dモデルが白くなった
Androidでタッチが効かなくなった
Android実機で全体的に重くなった
302015/8/11
✔
✔
✔
✔
Confidential© POKELABO, INC. 312015/8/11
おまけ
Confidential© POKELABO, INC.
Unity5.1へ
322015/8/11
現在ポイッとヒーローでは
Unityを再度バージョンアップ中
Unity5.0.2p3 → Unity 5.1.2p1
Confidential© POKELABO, INC.
Unity5.1にするメリット
332015/8/11
iOSの実行ファイルサイズが減少
Unity5.0.2p3 : 98.6MB
Unity5.1.2p1 : 69.2MB
約30MBのサイズ減少
→ メモリに優しい
Confidential© POKELABO, INC.
Unity5.1でハマった点
342015/8/11
モデルのライティングが壊れたり
一部テクスチャが貼られない現象
Confidential© POKELABO, INC.
Unity5.1でハマった点
352015/8/11
Automatic Graphics APIのチェックを
外して、OpenGLES2を最優先に
✔
Confidential© POKELABO, INC.
Unity5.1でハマった点
362015/8/11
Unityはバージョンアップの度に、
PlayerSettingsの内容が
ひっそりと変わることがあるので
要チェック
Confidential© POKELABO, INC.
まとめ
372015/8/11
運用中のプロダクトでも
Unity5に移行することは難しくない
今すぐ決断し、
快適なUnity5生活を
✔
Confidential© POKELABO, INC. 382015/8/11
ありがとうございました

More Related Content

Viewers also liked

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
「もののけ大戦“陣”」製作事例
「もののけ大戦“陣”」製作事例「もののけ大戦“陣”」製作事例
「もののけ大戦“陣”」製作事例Ryohei Tokimura
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)bleis tift
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJavableis tift
 
Editor スクリプティング 入門
Editor スクリプティング 入門Editor スクリプティング 入門
Editor スクリプティング 入門Keigo Ando
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門bleis tift
 
Unityでlinqを使おう
Unityでlinqを使おうUnityでlinqを使おう
Unityでlinqを使おうYuuki Takada
 
Unity5.3の機能まとめ
Unity5.3の機能まとめUnity5.3の機能まとめ
Unity5.3の機能まとめKeigo Ando
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指してbleis tift
 
Extending the Unity Editor Extended
Extending the Unity Editor ExtendedExtending the Unity Editor Extended
Extending the Unity Editor ExtendedMasamitsu Ishikawa
 
AssetBundle (もどき) の作り方
AssetBundle (もどき) の作り方AssetBundle (もどき) の作り方
AssetBundle (もどき) の作り方Mori Tetsuya
 
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービスUNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービスMakotoItoh
 
わたしのVisual studio環境
わたしのVisual studio環境わたしのVisual studio環境
わたしのVisual studio環境Keigo Ando
 
async/await不要論
async/await不要論async/await不要論
async/await不要論bleis tift
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundleYusuke HIDESHIMA
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化COLOPL, Inc.
 
【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版ui nyan
 

Viewers also liked (20)

ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
関西Unity勉強会
関西Unity勉強会関西Unity勉強会
関西Unity勉強会
 
「もののけ大戦“陣”」製作事例
「もののけ大戦“陣”」製作事例「もののけ大戦“陣”」製作事例
「もののけ大戦“陣”」製作事例
 
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
ラムダでウィザード 滅せよ手続き、とチャーチは言った (※言ってません)
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJava
 
Editor スクリプティング 入門
Editor スクリプティング 入門Editor スクリプティング 入門
Editor スクリプティング 入門
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
Unityでlinqを使おう
Unityでlinqを使おうUnityでlinqを使おう
Unityでlinqを使おう
 
Unity5.3の機能まとめ
Unity5.3の機能まとめUnity5.3の機能まとめ
Unity5.3の機能まとめ
 
LINQ基本のキ
LINQ基本のキLINQ基本のキ
LINQ基本のキ
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
Extending the Unity Editor Extended
Extending the Unity Editor ExtendedExtending the Unity Editor Extended
Extending the Unity Editor Extended
 
AssetBundle (もどき) の作り方
AssetBundle (もどき) の作り方AssetBundle (もどき) の作り方
AssetBundle (もどき) の作り方
 
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービスUNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
UNITY5の地味だけど現場で 役に立つ新機能紹介 & 拡充されるクラウドサービス
 
わたしのVisual studio環境
わたしのVisual studio環境わたしのVisual studio環境
わたしのVisual studio環境
 
async/await不要論
async/await不要論async/await不要論
async/await不要論
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
 
Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化Unityとスマートフォンアプリの最適化
Unityとスマートフォンアプリの最適化
 
Unityで覚えるC#
Unityで覚えるC#Unityで覚えるC#
Unityで覚えるC#
 
【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版【 #Unity会 】このUnityがすごい2015年版
【 #Unity会 】このUnityがすごい2015年版
 

『ポイッとヒーロー』の unity5移行事例