Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2018 受賞に向けて作品のクオリティをあげるために!

4,238 views

Published on

2017年11月13日に行われた「Indie Games Festival 2018 – Unrealゲーム開発ワークショップ」で登壇した際に使用した資料です。
https://events.withgoogle.com/indie-games-festival-2018-1/#content

Published in: Engineering
  • Be the first to comment

[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2018 受賞に向けて作品のクオリティをあげるために!

  1. 1. #igf2018 UE4でAndroidアプリを開発する際に 知っておきたいパフォーマンス改善テクニック Epic Games Japan 岡田和也 Indie Games Festival 2018 – Unrealゲーム開発ワークショップ
  2. 2. INDIE GAMES FESTIVAL 2018について 公式サイト https://events.withgoogle.com/indie-games-festival-2018-1/ Google様主催の インディーゲーム開発者向けの ゲームコンテスト 本資料はその一環の Unrealゲーム開発ワークショップで使用したものです
  3. 3. 本日のお品書き パフォーマンス改善の話 • 何故パフォーマンスを改善しないといけないの? • じゃあ何をすればいいの?
  4. 4. 突然ですが、 INDIE GAMES FESTIVAL 2018の上位作品を プレイしましたか?
  5. 5. ヨーロッパにおける上位作品 https://play.google.com/store/apps/collection/promotion_300276c_in die_games_contest_ctp
  6. 6. サンフランシスコにおける上位作品 https://developers-jp.googleblog.com/2017/10/announcing-winners- from-indie-games.html
  7. 7. 全部プレイしてみました! (自腹
  8. 8. めちゃめちゃ おもしろい!!!
  9. 9. ペイパーウイング (Paper Wings)
  10. 10. Flipping Legend
  11. 11. これは負けていられない…!
  12. 12. #igf2018 UE4でAndroidアプリを開発する際に 知っておきたいパフォーマンス改善テクニック INDIE GAMES FESTIVAL 2018 受賞に向けて 作品のクオリティをあげるために! Epic Games Japan 岡田和也 の豪華(?)2本立て! Indie Games Festival 2018 – Unrealゲーム開発ワークショップ
  13. 13. 本日のお品書き • パフォーマンス改善の話 • 何故パフォーマンスを改善しないといけないの? • じゃあ何をすればいいの? • コンテストを勝ち抜くためには…!
  14. 14. UE4でAndroidアプリを開発する際に 知っておきたいパフォーマンス改善テクニック
  15. 15. UE4をこれから触り始める人へ この内容を全て今覚える必要はありません! 頭の片隅に置いておいて、負荷が気になってきたら見直して下さい! まずは各機能を色々触ったり、 何か作ったりしてUE4の使い方を学ぶことを優先しましょう!
  16. 16. はなすこと • 何故パフォーマンスを改善しないといけないの? • じゃあ何をすればいいの?
  17. 17. 何故パフォーマンスを改善しないといけないの? 最適化している時間があったら、もっと面白くしたい 調整したい、その方がいいし、ユーザが喜ぶ 大きな間違え!!!
  18. 18. パフォーマンスを改善する理由 • より多くのユーザに、より楽しんでもらうための パフォーマンス改善 • ゲームのクオリティ・ユーザの満足度に直結
  19. 19. じゃあ何をすればいいの? 1. どこが問題になっているのかを調査 2. 調査して問題になっている箇所に対して 重点的に対応いれる
  20. 20. 例え話 あれ?体重が増えた!? → じゃあ、断食ダイエットだ! → 不健康、リバウンドなどの問題 実は… • 野菜の量を増やすだけで改善したかも? • 昨日食べすぎただけかも? • そもそも体重計が壊れていただけかも?
  21. 21. ゲーム開発の場合 なんか処理が重い!fpsが出てない!!! → オブジェクト数を1/10に!半透明なし! テクスチャのサイズも全部64x64に!…など → 思ってたより改善しないし、絵がしょぼく… 実は • とあるオブジェクトだけが極端に重かっただけかも? • コードの一部がバグってただけかも? • そもそも計測ミスだったかも?
  22. 22. じゃあ何をすればいいの? 1. どこが問題になっているのかを調査 2. 調査して問題になっている所にたいして重点的に対応いれる
  23. 23. UE4におけるプロファイリング機能
  24. 24. プロファイリング機能の種類 UE4エディタ上 • Viewmode • Show • Statistics • Stat コマンド(Console Command) 実機上 • Statコマンド(Console Command)
  25. 25. Viewmode
  26. 26. Optimization Viewmode Light Complexity 動的ライティング度合いの視覚化 Shader Complexity 各ピクセルにおける命令の合計 (詳細はCEDEC2017の資料で!)
  27. 27. Show カテゴリ毎に機能をON・OFF • 処理負荷にどの程度影響を与えているかを確認
  28. 28. Statistics
  29. 29. Console Command & Variables( CVar ) コマンドによって ゲーム内の挙動を変えたり情報を出力する方法
  30. 30. Statコマンド プロファイリング用のConsole Command ゲームをプレイしながら リアルタイムで情報を確認可能 (ログ・キャプチャ出力系は除く) 実機上でも使用可能! • Mobile Previewはエミュレートなので、 ちゃんとした計測は必ず実機で!
  31. 31. stat scenerendering stat startfile / stopfile
  32. 32. UE4 プロファイリングツール総おさらい (グラフィクス編) • スライド • https://www.slideshare.net/EpicGamesJapan/cedec2017-ue4 • 動画 • https://www.youtube.com/watch?v=EtnXVj8D25M
  33. 33. Androidに特化した補足
  34. 34. Android実機上でConsole Commandを使うには 4本の指でタップすると表示される Console Command / CVar用ウィンドウから 入力・選択可能!
  35. 35. 実機とCPUプロファイラ(Session Frontend)の接続 USBで直接接続
  36. 36. 実機とCPUプロファイラ(Session Frontend)の接続 Console Commandを エディタから直接送信 リアルタイムでCPUプロファイル (プロファイル分の処理負荷が発生)
  37. 37. 実機とCPUプロファイラ(Session Frontend)の接続 apkでも接続可能 • “-messaging“をパラメータとして追加する必要あり Project Launcher 公式ドキュメント https://docs.unrealengine.com/latest/JPN/Engine/Deployment/Releasi ng/index.html
  38. 38. 実機とCPUプロファイラ(Session Frontend)の接続 adb connectでWi-FI接続済みなら、USB接続と同じように扱われる! • Wi-Fi越しにadb接続する • USB接続時に比べると、各処理が遅くなるので注意!
  39. 39. モバイルでは GPU処理用のプロファイリング機能は使えません ProfileGPU Stat GPU
  40. 40. モバイル開発で GPU処理用のプロファイリングをするには • 実機ではなくエディタ上で計測 • 計測値をそのまま使うのではなく、 極端に大きな負荷の検出や、割合レベルでの情報として扱う • 各ハードウェア会社が提供している プロファイリングツールを使って計測(中・上級者向け)
  41. 41. 各ハードウェア会社が提供しているツール GPUプロファイリング • Qualcomm : Snapdragon Profiler • 配布サイト • NVIDIA : Tegra Graphics Debugger • 配布サイト, Answerhub 関連スレッド • ImgTec : PVRTune, PVRTrace • 公式解説動画 • ARM : Mali Graphics Debugger • UE4公式ブログにおける解説記事
  42. 42. よく使うパフォーマンス改善 テクニックの紹介
  43. 43. PCでも、コンソールでも、VRでも、モバイルでも 基本的なテクニックは共通!
  44. 44. 過去スライド • モバイル • 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部ま るっとご紹介! • モバイルゲームにもっとクオリティを!UE4を使ったハイクオリティなモバイル ゲーム制作について • UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の 奥義を伝授! • VR • Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集
  45. 45. 特に紹介したい機能と Androidに特化した機能の紹介
  46. 46. LOD(Level of Detail)の自動生成機能 モデルのポリゴン数削減してLODを自動生成 近<--------カメラとの距離----------->遠
  47. 47. LOD(Level of Detail)の自動生成機能 StaticMeshのLOG Groupを変更するだけ!プレビューも簡単!
  48. 48. デバイスプロファイル GPU, SoC, デバイスモデル別のプリセット毎に 各種パラメータ・設定を調整可能 • CVar( Console Variables ) • Texture LOD Group 端末のスペックに応じた調整が可能! • 各設定は端末のスペックから 起動時に自動的に反映される!
  49. 49. Texture LOD Group テクスチャのLOD( MipMap )の設定をグループ毎に一括変更
  50. 50. Feature/Quality Level に応じたマテリアル最適化 Feature / Quality Level 毎に 異なるマテリアルを組むことが可能 • Feature Level • ES2 : 幅広い端末に対応 • ES3.1 :ハイエンド端末専用 • Quality Level • Low, Medium, Highの 3段階
  51. 51. Feature Level 3.1を使うには • 公式ドキュメント • Android OpenGL ES 3.1 モバイル レンダラー • Android Vulkan モバイル レンダラー
  52. 52. Quality Levelを変えるには
  53. 53. ここまでのまとめ • 遊んでくれるユーザのためにも プロファイリング・パフォーマンス改善はしましょう! • UE4は ↑ を支援する機能を沢山用意してます!是非ご活用ください!
  54. 54. #igf2018 UE4でAndroidアプリを開発する際に 知っておきたいパフォーマンス改善テクニック INDIE GAMES FESTIVAL 2018 受賞に向けて 作品のクオリティをあげるために! Epic Games Japan 岡田和也 の豪華(?)2本立て! Indie Games Festival 2018 – Unrealゲーム開発ワークショップ
  55. 55. 何事もまずはプロファイリング!
  56. 56. 上位作品の傾向 • 比較的シンプルで、中心となる遊びがしっかりしている! • グラフィックも高水準! • AAA的な意味ではなく、独自性・バランスなどなど広い範囲で • ローポリ・ボクセルを使った作品が大半! • GooglePlayのサービスを活用している! • SNSにシェア・拡散する仕組みを用意している!
  57. 57. • 本日 : 2017/11/13 • 参加受付〆切 : 2018/3/25 〆切まで、あと 132日!
  58. 58. やばい!
  59. 59. 必要な戦略! (個人的感想です) • 早い段階で遊びの核になる部分を確立させる! • 既存のアセット・サンプルをガンガン活用する! • Google Playの機能は早めに導入しておく! • ユーザの数を増やす仕組み・活動を入れる! • 各SNSに投稿する仕組みを早めに導入しておく! • 宣伝・告知は忘れずに!
  60. 60. 早い段階で 遊びの核になる部分を確立させる!
  61. 61. UE4と相性のいいワークフロー Epicの開発スタイル • 面白さを早く見つける • “Fail early, Fail often, Fail better” < 早くたくさん上手に失敗せよ > Epicのワークフロー • 短時間でプレイ可能なプロトタイプを作る • 無駄な作業とアセットの作り直しを抑える • 見た目ではなく、楽しさに集中する
  62. 62. Epicのレベルデザインワークフロー ホワイトボックス メッシング ライティング ファイナルポリッシュ
  63. 63. ホワイトボックス 1. 大まかなレイアウトを作る • BSP / シンプルなメッシュを使用 2. ゲームプレイの骨組みを作る • Blueprintによるスクリプティング 短期間で大まかなレベルを作り、楽しさ・面白さを検証
  64. 64. Unreal Tournament
  65. 65. ホワイトボックスをするメリット • 変更が容易 • チーム内のコミュニケーション・ロードマップの共有 • フィードバックや新しいアイデアを誘発 重要 コア部分が出来上がるまではアートの実装はしない!
  66. 66. Unreal Engine 4を利用した先進的なゲーム制作手法 The Unreal Way 2016 https://youtu.be/tRSa7IarsgU
  67. 67. テンプレート 代表的なゲームジャンルのものは用意済み!
  68. 68. コミュニティの方によるサンプル集 UE4resources.com
  69. 69. 既存のアセット・サンプルをガンガン活用する!
  70. 70. ラーニング EpicGamesが提供している サンプル集 • 無料! • 商用利用OK! • アセットの外部公開は 一部を除いてNGなので注意!
  71. 71. 機能別サンプル 各機能のサンプル集 • 学習用途にピッタリ! • 結構いい感じのアセットが沢山!
  72. 72. アンリアルマッチ3 モバイルゲーム開発用サンプル • モバイル特有の実装方法の学習に • 実際にストアで配信されている コンテンツなので、 リリースするための実装の勉強にも! ストアページヘのリンク
  73. 73. アンリアルマッチ3の開発ドキュメント・動画 https://docs.unrealengine.com/late st/JPN/Resources/SampleGames/U nrealMatch3/index.html
  74. 74. サンテンプル ハイエンドモバイル向けデモ • モバイル向けの 絵作り・最適化の参考に!
  75. 75. マーケットプレイス 様々なアセットを購入可能! • クオリティ高いものばかり! • お手頃な価格のものも多数! 12月後半にある ホリデーセールは要チェック! (昨年:12/22~1/3)
  76. 76. ローポリ・ボクセルアセット 作者ページ:Synty Studios
  77. 77. モバイル用のUE4標準キャラクタ(Mannequin)
  78. 78. マーケットプレイスのアセットの利用規約について • すべて商用利用・改変可能 • 利用・共有範囲について • 購入者(個人・会社)が所属する全プロジェクトで利用可能 • 購入者の所属プロジェクトに関わる開発者・会社間で共有可能 • その他 • 著作権に関する問題はEpicGames内でレビュー済み • 記載がない限り、権利表記は不要 (表記すると製作者は嬉しいので是非!) • 公式サイト マーケットプレイス FAQページ
  79. 79. Google Playの機能は 早めに導入しておく!
  80. 80. アンリアルマッチ3で実装している機能 • ログイン・ログアウト • リーダーボード • アチーブメント • アプリ内課金 BPのみで実装可能!
  81. 81. ログイン・ログアウト GlobalGameInstance
  82. 82. リーダーボードへの書き込み (公式ドキュメント) VictoryScreen
  83. 83. リーダーボードの表示 (公式ドキュメント) • GameOverButtons • MainMenu
  84. 84. アチーブメント (公式ドキュメント) • GameLevel_GM • GlobalGameInsatnce • GameOverButtons • Grid_BP • Title_BP • MainMenu • MenuScroll
  85. 85. Blueprintのノード検索機能 • EventGraphで Ctrl + F • Find in Blueprints • UE4.18からの新機能 全Blueprintを検索対象に
  86. 86. アプリ内課金 (公式ドキュメント) • StoreScreen • GlobalGameInsatance • LevelSelect • MainMenu • MenuScroll
  87. 87. ユーザの数を増やす仕組み・活動
  88. 88. 「インディー開発者のためのプレスリリースの書き方講座」より
  89. 89. ユーザの数を増やす仕組み・活動 せっかくクオリティ高い作品を作っても 周知されないと勿体無い…! • 「いいものを作れば勝手に広まる」のは正直な所難しい… ユーザに知ってもらう仕組み・活動をする必要がある!
  90. 90. SNSに投稿する仕組みを早めに導入しておく!
  91. 91. 残念ながら標準のUE4では この仕組みを実現するための機能はありません
  92. 92. なので、 現在作成中です!
  93. 93. 開発中のSNS投稿用プラグイン for Android できること • 端末にインストールされている 各クライアントを経由した投稿 • ゲーム側から投稿文の デフォルトを設定可能 • スクリーンショットを添付(実装予定) 近日中にプラグイン形式で配布予定
  94. 94. Android スコシデキル 人向け UE4からAndroid APIを直で呼び出すことで、 intent機能を使っています Unreal Plugin Language機能を使うことで XML内に書いたJavaコードをC++から呼び出すことが可能 (そのC++コードをBPノード化することで、より扱いを簡単に) 後日解説記事を作成予定です
  95. 95. <gameActivityClassAdditions> <insert> public boolean AndroidThunkJava_Intent() { Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT,"test"); intent.setType("text/plain"); this.startActivity(intent); return true; } </insert> </gameActivityClassAdditions> </root>
  96. 96. 追記 プラグイン配布開始次第、 Slideshareの説明文にリンクを追記します Unreal Plugin Languageの記事に関しても 投稿次第、同じく追記します
  97. 97. 宣伝・告知は忘れずに!
  98. 98. TwitterなどのSNS上でアピールしよう! 定期的に作業進捗や活動内容を出す事は重要! • 自分の作品のファンを増やしていきましょう! Twitterの場合 • #UE4 をつけてツイート! • 毎週金曜日は エピックフライデー #EpicFridayをつけて、作品の画像・動画をシェア!
  99. 99. 是非エピックフライデーをご活用ください! 公式ランチャーでピックアップ作品を紹介 • 全UE4ユーザにアピール! 公式ツイッターアカウントでも紹介!
  100. 100. リリース・展示する際はニュースリリースを! 各ニュースサイトに取り上げて貰うために • 見てくれる数が段違い! • 検索にも引っかかりやすくなる! • おすすめ情報サイト • http://indiegamedevjapan.info/
  101. 101. UNREAL DEV GRANTSにも是非! UE4を使っているコンテンツ開発者に対して 開発資金を支援する EpicGameの活動 • https://www.unrealengine.com/ja/unrealdevgrants 日本のインディデベロッパーからも受賞者が! • 2017年8月での受賞者リストの記事 • TINE METAL • ジラフとアンニカ
  102. 102. UE4公式ブログのインディー開発者向け記事 • インディーのためのマーケティング • https://www.unrealengine.com/ja/blog/marketing-for-indies?lang=ja • インディーのための展示会出展のコツ • https://www.unrealengine.com/ja/blog/expos-for-indies?lang=ja • インディーのためのプレゼンのコツ • https://www.unrealengine.com/ja/blog/public-speaking-for-indies
  103. 103. UE4学習用リンク集
  104. 104. 公式ドキュメント・動画 • 公式ドキュメント • https://docs.unrealengine.com/latest/JPN/index.html • ほぼ全てのページが日本語対応済み • YouTube • https://www.youtube.com/user/UnrealDevelopmentKit • 初心者向けのライブトレーニングから GDC講演までなど多岐にわたる内容に対応 • チュートリアル動画の日本語解説 http://manabibeya.com/
  105. 105. Android クイックスタート UE4でAndroid開発をはじめるための手順を紹介 • https://docs.unrealengine.com/latest/JPN/Platforms/Android/GettingStarted/ index.html • SDKの入れ方、設定手順 • 実機に転送するやり方 公式ドキュメントには 他にもAndroid開発に関するページが沢山! https://docs.unrealengine.com/latest/JPN/Platforms/Mobile/index.html
  106. 106. AnswerHub, 公式フォーラム • AnswerHub • https://answers.unrealengine.com/index.html • コミュニティー用のQ&Aサイト • 公式フォーラム • https://forums.unrealengine.com/ • コミュニティー用の交流サイト • 最新バージョンのリリースなど公式からの案内
  107. 107. Twitter, FaceBook • Twitter • ハッシュタグ: #UE4, #UE4Study • 各自の知見・作品が投稿されている。質問もOK! • Facebook - Unreal Engine助け合い所 - • https://www.facebook.com/groups/unrealuserj/ • 質問やUE4に関するイベント告知など
  108. 108. 書籍 • Unreal Engine 4で極めるゲーム開発 • https://www.borndigital.co.jp/book/5190.html • Unreal Engine 4 マテリアルデザイン入門[第2版] • http://www.shuwasystem.co.jp/products/7980html/5055.html
  109. 109. 国内における講演の動画・スライド • YouTube • https://www.youtube.com/channel/UCUI8jWalKaZ3HsT_-0qTqWg • SlideShare • https://www.slideshare.net/EpicGamesJapan/presentations
  110. 110. 是非UE4を使って 素晴らしいゲームを作って 受賞しましょう!!!

×