【Unite2014】多様なAndroidデバイス向けに管理・最適化を行うには

714 views

Published on

Unite2014

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
714
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

【Unite2014】多様なAndroidデバイス向けに管理・最適化を行うには

  1. 1. Unite2014 多様なAndroidデバイス向けに管理・最適化を行うには
  2. 2. アンドロイドの課題 • デバイスの種類が膨大 • すべてのデバイスに対応するのが困難 • 現在進行形でどんどん新たなデバイスも増えている
  3. 3. どうするか?
  4. 4. ハイエンドを避ける • ハイエンドは開発効率が良くない • デバイス毎の差異の影響を受けやすい • CPUの性能やメモリの容量など • ユーザーがハイエンドより楽しめるものをより重視している
  5. 5. ハードウェアの要求を調べる • いくらかのハードウェア性能で起動可能端末を選択は出来る • OpenGLES2.0は8%程度 • Androidバージョンで多少の足切 • ICS以降が約80%のシェアなので、このバージョンを目安にするといい • 制限できない項目も • CPUの性能 • GPUの性能 • メモリの容量 • ストレージの容量
  6. 6. 画面解像度 • それぞれのデバイス毎に個別対応は無理 • 比率とかで計算した方がいいかも • UI作るならUnityエディター上でカメラを確認しながら配置した方がい い • 新しいGUIは4.6から
  7. 7. 3Dについて • とくに悩む必要は恐らくない • ワールドは変わらずウインドウが違うだけ
  8. 8. 2Dについて • 3Dほど簡単にはいかない • アスペクト比によって、縦横いずれかの端を犠牲にする必要が出てく る • Cameraをスクリプトで調整する必要が必ず出てくる • 画面の大きさで位置や大きさを調整 • 比率で設定する • ピクセルではなくメートルとかの単位で管理する
  9. 9. パフォーマンス • 色んな資料があるからそれを見た方が早い • Googleとか • StackOverFlowとか • Profilerを使う(Pro専用) • お手軽にCPUやメモリの使用具合を確認できる
  10. 10. テクスチャについて • 可能な限り圧縮テクスチャを使用する • こっそり変えても多分気づかれないくらいには綺麗に出る ※作注) 実際3Dテクスチャならまずわからない • メモリと速度が向上する ※作注) AndroidはETCという形式が使われる。 これは1テクセルあたり0.5バイトで表現出来る上にVRAMに送る際に 圧縮されたまま転送できるので、転送速度が段違いに (16bitsテクスチャに比べて1/4の容量しか転送しなくていい) ただ、アプリサイズはzip圧縮されるのでそこまで変わらない
  11. 11. レンダリングパスについて • UnityではDeferred、Forward、VertexLitの3つのパスが用意されてい る • Deferred : 精細な照光計算なんかにつかう • Forward : 基本的な描画につかう • VertexLit : 簡易照光計算につかう • VertexLitが一番速いのでおすすめ • 影とかは出せなくなる
  12. 12. オーディオについて • 圧縮は避ける • 圧縮してもメモリ使用量はそこまで変わらなかった • ただCPUの使用量が大幅に増加 • メモリに保持する設定の方がおすすめ • 2D/3Dサウンドの設定 • 3Dサウンドを使用する理由がないなら2Dの方がCPU節約になる • 特に2Dゲームならほぼいらないのでは?
  13. 13. AndroidNDK • JNIなしで使用することが判明 • DLLImportを使う • 詳細はBuilding Plugins for Androidでぐぐる

×