【目次】 はじめに 本書の内容に関して 自己紹介 職務経歴 カンファレンス&Expo 第 1 章 Unity とは 1.1 ゲームエンジンとは - Unityというゲームエンジン - レンダリングにおけるゲームエンジンの貢献 1.2 プロジェクト~コンポーネント - Unityの仕組み 1.3 Project - Assets - Library - ProjectSettings - Packages - Temp - 運用上の注意 1.4 Scene 1.5 GameObject - Transform - Tag(タグ) - Layer(レイヤー) 1.6 Component(C#プログラム) - コンポーネント - アセット類 1.7 UnityEditor&Engine - UnityEditor(統合開発環境/IDE) - UnityEngine(ゲームエンジン) 1.8 AssetDatabase 1.9 まとめ 第2章 3D グラフィックの基礎 2.1 3Dモデルの仕組み 2.2 3Dモデルの種類 2.3 Unityにおける3Dモデルの座標概念 2.4 カメラ - カメラの概念 - UnityのCamera機能 - 小窓画面の実装 - レンダーパイプラインとは - Unityにおけるレンダーパイプライン 2.5 ライト - ライティングの仕組み - Unityにおけるライティング 2.6 CPUとGPUについて - CPUを使ったレンダリング - GPUを使用したレンダリング 第3章 3D モデルを作る 3.1 ProBuilder - セットアップ方法 - 基本的な作成手順 3.2 3Dモデルを出力する - ProBuilderWindowの表示 - 選択ツールのチェック - 指定の形状を出力 - 自分で頂点を指定して生成 - 中心座標 3.3 3Dモデルに色をつける - ProBuilderの着色の仕組み - Material(マテリアル)という概念 - 着色方法 - 着色手順 3.4 梁や壁のある空間を作る - 平面から高さを 作る - 天井をつける - Tips 3.5 部屋を作る - Materialで着色 第4章 物理エンジン (Rigidbody) 4.1 プログラムにおける物理表現 4.2 UnityのRigidbodyについて - Rigidbodyとは - ColliderとPhysicsMaterial - Rigidbodyの主要な設定項目 - RigidbodyとColliderの設定の理解 - 2Dと3Dの設定の違い 4.3 Rigidbodyの基本的な設定方法 - パラメーターの最適化 - 負荷について - 設定手順 - 球体にRigidbodyを設定して転がしてみる - 床を作って落としてみる - PhysicsMaterialの設定方法と概念 4.4 RigidBody各種パラメーター - 衝突時の反発と摩擦(PhysicsMaterial) - Rigidbody2Dについて 4.5 C#でAPIを使う - ForceModeについて - ForceMode.Forceを使ってサンプルコード - ForceMode.Impulseを使ったサンプルコード 第5章 物理エンジン (Collider) 5.1 Collider(コライダー)とは? - Collision判定 - Trigger判定 - Rigidbodyを使わない際のアニメーション - IsKinematicを使う際のデメリット 5.2 衝突判定を取得する - Collision系当たり判定 - Trigger系当たり判定 5.3 何に当たったかを取得する - 当たった相手のGameObjectの情報を取得する 第6章 ゲームコントローラの実装 6.1 コントローラーの歴史 6.2 Unityにおける入力装置 6.3 InputクラスとInputSystem - Inputクラスのメリット - InputSystemのメリット - サンプルコード 第7章 Cinemachine 7.1 Cinemachineのセットアップ - セットアップ 7.2 VirtualCameraとCinemachineBrain 7.3 CinemachineBrain 7.4 VirtualCamera - 各種設定(Aim) - 各種設定(Body) 7.5 VirtualCamera拡張 - 拡張機能一覧 - カメラ表現の重要性 7.6 ドリーカメラ - ドリーカメラとは - ドリーカメラSetUp - Pathの設定 - Virtual Cameraの設定 - ドリーカメラのパラメーター 7.7 GroupComposer - SetUp - TargetGroupを作る - FramingMode 第8章 PostProcessingStack 8.1 Postprocessとは 8.2 PostProcessing設定 - ポストプロセスレイヤーの追加 - ポストプロセスボリュームの作成 - エフェクトの追加とカスタマイズ - Bloomエフェクトの設定方法 第9章 Animation 9.1 3DゲームにおけるオブジェクトアニメーションとUnityのAnimationシステム - 3Dゲームにおけるオブジェクトアニメーションの歴史 - 3Dゲームのアニメーション技術 9.2 UnityのAnimationシステム - Transformクラスと座標系アニメーション - UnityAnimationシステムの活用例 - まとめ 9.3 AnimationClipの基本的な使い方 - Animatorを使用しない再生方法 9.4 移動系Animation - ベジェ曲線を活用したスピード感のあるAnimationの作成方法 9.5 3Dモデルの色をアニメーションさせる 第10章 UnityC# 10.1 UnityにおけるC# 10.2 記述の際の注意事項 10.3 Unityにおけるオブジェクト指向 - UnityEngine - MonoBehaviour - GetComponent - UnityEditor - AssetDatabase - Unityのライフサイクル - MonoBehaviourのライフサイクル 10.4 シリアライズ - シリアライズの用途 - シリアライズの注意点 - セキュリティ対策 - Unity EngineのPlayerPrefsとEditorPrefsについて - SerializeField あとがき