試験公開中

このエントリーをはてなブックマークに追加

Unity 2017最適化ガイド Unityのあらゆるパフォーマンス問題を解決するための手引き

達人出版会

3,000円+税

Unity3Dアプリケーションのパフォーマンスを高めるための、パフォーマンス向上コーディング技術と手法をマスターしましょう。

関連サイト

本書の関連ページが用意されています。

内容紹介

Unityはゲーム開発エンジンとして大変優れています。その膨大な機能と使いやすさにより、Unityはホビイストとプロフェッショナルの双方に、最高の処理技術とレンダリング技術を提供しています。

本書は、Unity 2017を使ったゲーム開発手法を紹介し、大規模チームでもなければ潤沢な予算があるわけでもないという場合でも、ハイパフォーマンスなゲームが実現できることを示します。

劣悪なユーザー体験ほどゲーマーをゲームから遠ざけるものはありません。そのため本書では、まず最初に問題を追跡するためのUnity Profilerの使い方を説明します。問題を調査するためのストップウォッチ、タイマー、ロギングの方法を学びます。次に、パフォーマンスを向上させる、より良いプログラミングの実践的テクニックを探ります。

続いて、Unityに内蔵されているバッチングシステムについて、パフォーマンスを向上させるための使い方と、その限界について学びます。さらに、最小限のディスク容量、CPU、メモリを使用してアートアセットを読み込んだり、アセットデータを管理するためのあまり使われていない機能やアプローチを探ります。また、GPUの並列処理を最大限に活用するための一連の技術を使って、グラフィックス、パーティクルシステム、シェーダーのパフォーマンスを向上させます。

その後、Unity 3Dエンジンの基本的なレイヤーを掘り下げ、内部の仕組みの深い知識なしには理解が難しい問題について説明します。また、本書では、VRプロジェクトにおいて重要となるパフォーマンス問題と、それにどう対処するかについても触れています。

本書を読み終える頃には、アセットを適切に整理することで開発ワークフローを改善する方法や、オブジェクトプーリングを利用してアセットをできるだけ早く無駄なくインスタンス化する方法を学ぶことができます。

※本書はChris Dickinson「Unity 2017 Game Optimization: Optimize all aspects of Unity performance, 2nd Edition」(Packt Publishing)の翻訳です。

Kindle版も発売中です: Unity 2017最適化ガイド: Unityのあらゆるパフォーマンス問題を解決するための手引き Kindle版

書誌情報

  • 著者: Chris Dickinson(著), 佐藤敬(訳)
  • 発行日: (紙書籍版発行日: 2020-04-28)
  • 最終更新日: 2020-04-28
  • バージョン: 1.0.0
  • ページ数: 325ページ(PDF版換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: 達人出版会

対象読者

Unityのほとんどの機能の経験があり、ゲームのパフォーマンスを改善したい、あるいは、なんらかのボトルネックを解決したいと願っている中級あるいは上級のUnity開発者

著者について

Chris Dickinson

クリス・ディッキンソンはイングランドの静かな地方で育ち、数学や科学や、特にビデオゲームに強い情熱を持っていた。彼はゲームプレイを愛し、ゲームプレイを解析し、それらがどのように動いているのかを解明しようとした。彼の父が PC ゲームの 16 進コードをハックして初期のコピープロテクトを外すのを見て、彼は衝撃を受けた。一時は科学への情熱のほうが勝ったため、電子工学における物理の修士号を習得し、その後シリコンバレーの中心で科学的研究をするためにカリフォルニアに飛んだが、すぐに研究職は彼の基質には合わないキャリアパスであると認識した。全方向へ履歴書を発射したあと、ソフトウェアエンジニアリングという適切なコースに最終的に向ける仕事に着地した(聞いた限り、物理学の卒業生ではこのようなことはあまりない)。
IPBX 電話システムの自動化ツール開発者としての仕事は彼の基質に良く合っていた。ここで彼は複雑なデバイスの繋がりを理解し、開発者がそれらを修理したり改善するのを助けたり、独自のツールをビルドしたりした。クリスは、巨大で複雑でリアルタイムのイベントベースのユーザー入力ドリブンなステートマシーンの扱い方を学んだ。この時点では独学であったが、クリスのビデオゲームへの情熱は再び燃え上がり、ビデオゲームがどのように作られているのかを本当に理解したいと思うようになった。十分に自信がついたと感じた後、ゲームおよびシミュレーションにおける学士課程のために大学に戻った。課程を終了するまでに、(初歩的なものではあるが)独自のゲームエンジンを C++ で作り、彼の日常的な仕事ではそれらの能力を定期的に利用していた。しかし、ゲームを作りたいのであれば、ゲームエンジンではなくゲームを作るべきである。よって、クリスは、その時公開されていたお気に入りのゲームエンジンを選んだ。それは Unity 3D と呼ばれた洗練された小さなツールであったが、彼はいくつかのゲームを作り始めた。
インディーゲーム開発者としての短い期間の後、彼はそのキャリアパスは彼のためのものではなかったと後悔した。しかし、ほんの数年間で蓄積した知識の量は優れたものであり、彼は、それを他の開発者の創作に利用できるようにするのを好んだ。それから、クリスはゲーム物理の入門書(Learning Game Physics with Bullet Physics and OpenGL, Packt Publishing)を執筆し、Unity パフォーマンスの最適化の本(今現在あなたが読んでいる本である)の 2 つの版を執筆した。彼は最愛の妻となるジェイミーと結婚し、360 度カメラ(やそれ以上の)などの VR/AR 体験を届けることにフォーマスした VR/AR スタートアップであるカリフォルニアのサンマテオの Jaunt Inc. に、テストエンジニア(Software Development Engineer in Test, SDET)として最先端のモダンな技術を使って働いている。
仕事以外では、クリスはボードゲーム中毒(特に、Battlestar Galactica と Blood Rage)と戦っており、Blizzard 社の Blizzard や Starcraft II に取り憑かれ、無愛想だがかわいい 2 匹の猫からの終わりのない要求に応えつづけ、最新のバージョンの Unity を紙の上に浮かぶたくさんのゲームアイディアとともに見つめている。いつか近い日に、適切な時期が来て(怠けるのをやめた時に)彼の計画は実現するかもしれない。

佐藤敬

1999年、東京大学理学部数学科卒。サン・マイクロシステムズ株式会社にてSolarisのエンジニア、レッドハット株式会社にてRed Hat Enterprise Linuxのエンジニアを務め、フリーランスエンジニアとして独立。大規模モバイルソーシャルゲームのリードエンジニアなどを務める。現在はXR領域のソフトウェアエンジニアとして社会問題の解決に挑む。共訳書として「Solarisインターナルカーネル構造の全て」(ピアソンエデュケーション)がある。新潟大学非常勤講師。

目次

著者について

レビュアーについて

はじめに

  • この本がカバーする内容
  • 前提条件
  • 対象読者
  • 表記

第1章 パフォーマンス問題の追跡

  • 1.1 Unity プロファイラー
  • 1.2 パフォーマンス解析のベストアプローチ
  • 1.3 プロファイリングと分析についての最終的な考察
  • 1.4 まとめ

第2章 スクリプト作成戦略

  • 2.1 コンポーネントを取得する最速の方法
  • 2.2 空のコールバック宣言を取り除く
  • 2.3 コンポーネントの参照をキャッシュする
  • 2.4 計算結果を共有する
  • 2.5 Update、コルーチン、InvokeRepeating
  • 2.6 より高速な GameObject の null 参照チェック
  • 2.7 GameObject の string プロパティを取得するのを避ける
  • 2.8 適切なデータ構造を使う
  • 2.9 実行時に Transform の親を再変更することを避ける
  • 2.10 Transform の変更をキャッシュする
  • 2.11 実行時の Find() や SendMessage() を避ける
  • 2.12 使っていないスクリプトやオブジェクトを無効にする
  • 2.13 距離の二乗を使う
  • 2.14 デシリアライズを最小限にする
  • 2.15 シーンを追加で非同期に読み込む
  • 2.16 カスタム Update() レイヤーを作成する
  • 2.17 まとめ

第3章 バッチングの効果

  • 3.1 ドローコール
  • 3.2 マテリアルとシェーダー
  • 3.3 Frame Debugger
  • 3.4 動的バッチング
  • 3.5 静的バッチング
  • 3.6 まとめ

第4章 アートの基礎知識

  • 4.1 オーディオ
  • 4.2 テクスチャファイル
  • 4.3 メッシュとアニメーションファイル
  • 4.4 アセットバンドルと Resources
  • 4.5 まとめ

第5章 高速な物理演算

  • 5.1 物理エンジンの内部構造
  • 5.2 物理演算のパフォーマンス最適化
  • 5.3 まとめ

第6章 動的グラフィックス

  • 6.1 レンダリングパイプライン
  • 6.2 パフォーマンス問題を検出する
  • 6.3 レンダリングパフォーマンスの改善
  • 6.4 まとめ

第7章 加速する仮想世界と拡大する拡張現実

  • 7.1 XR 開発
  • 7.2 パフォーマンス改善
  • 7.3 まとめ

第8章 メモリ管理をマスターする

  • 8.1 Mono プラットフォーム
  • 8.2 コードのコンパイル
  • 8.3 メモリのプロファイリング
  • 8.4 メモリ管理のパフォーマンス向上
  • 8.5 Unity、Mono、ILCPP の将来
  • 8.6 まとめ

第9章 戦略的ヒントおよびトリック

  • 9.1 エディターのショートカットキーのヒント
  • 9.2 エディターUI のヒント
  • 9.3 スクリプト作成時のヒント
  • 9.4 カスタムエディタースクリプトとメニューのヒント
  • 9.5 外部のヒント
  • 9.6 まとめ
Home 書籍一覧 Unity 2017最適化ガイド Unityのあらゆるパフォーマンス問題を解決するための手引き ▲ ページトップへ戻る