目次
Chapter 1 ゲーム開発を始めよう
1-1 ゲームについて理解しよう
- 1-1-1 ゲームは数千年前から存在していた
 - 1-1-2 デジタルゲームの登場
 - 1-1-3 ゲーム開発のハードルは高かった
 
1-2 Unityについて理解しよう
- 1-2-1 Unityとは
 - 1-2-2 Unityにはどんな機能がある?
 - 1-2-3 Unityは高くて手に入れられない?
 - 1-2-4 Unityの弱点
 
Chapter 2 Unityの開発環境を構築しよう
2-1 macOSにUnityをインストールしよう
- 2-1-1 Unity Hubをインストールする
 - 2-1-2 Unityのプラン
 - 2-1-3 Unityをインストールする
 
2-2 WindowsにUnityをインストールしよう
- 2-2-1 Unity Hubをインストールする
 - 2-2-2 Unityをインストールする
 
2-3 Unityを動かしてみよう
- 2-3-1 プロジェクトを作成する
 - 2-3-2 シーン,ゲームオブジェクト,コンポーネント,Asset
 - 2-3-3 基本的なビューとウインドウ
 - 2-3-4 Sceneビューでの操作方法
 - 2-3-5 ゲームオブジェクトを配置する
 - 2-3-6 カメラを確認する
 - 2-3-7 ゲームを実行する
 - 2-3-8 物理エンジンで遊んでみる
 
Chapter 3 C#の基本文法を学ぼう
3-1 Unityでスクリプトを使おう
- 3-1-1 スクリプトを作成する
 - 3-1-2 スクリプトをアタッチする
 - 3-1-3 ログを活用する
 
3-2 データの扱い方について学ぼう
- 3-2-1 変数
 - 3-2-2 定数
 
3-3 クラスとメソッドについて学ぼう
- 3-3-1 メソッド
 - 3-3-2 クラスとインスタンス
 
3-4 フィールドとプロパティについて学ぼう
- 3-4-1 フィールドとプロパティ
 - 3-4-2 アクセス修飾子
 - 3-4-3 クラスを隠蔽する
 
3-5 演算子について学ぼう
- 3-5-1 算術演算子
 - 3-5-2 比較演算子
 - 3-5-3 論理演算子
 - 3-5-4 代入演算子
 - 3-5-5 条件演算子
 
3-6 制御構造について学ぼう
- 3-6-1 制御構造
 - 3-6-2 if else
 - 3-6-3 for
 - 3-6-4 foreach
 - 3-6-5 while
 - 3-6-6 switch
 
3-7 クラスの継承について学ぼう
- 3-7-1 クラスの継承
 - 3-7-2 抽象メソッドとオーバーライド
 
3-8 Unityのライフサイクルについて学ぼう
- 3-8-1 Unityのライフサイクル
 - 3-8-2 void Awake()
 - 3-8-3 void Start()
 - 3-8-4 void Update()
 - 3-8-5 void FixedUpdate()
 - 3-8-6 void OnDestroy()
 - 3-8-7 void OnEnabled()
 - 3-8-8 void OnBecameInvisible()
 
3-9 コルーチンについて学ぼう
- 3-9-1 コルーチン
 
Chapter 4 ゲーム企画の基本を学ぼう
4-1 ゲーム開発の罠を知っておこう
- 4-1-1 ゲーム開発における罠とは
 - 4-1-2 罠にはまるとどうなるか
 - 4-1-3 お蔵入りさせず,どんどん世に出していく
 - 4-1-4 どうやってお蔵入りを回避する?
 
4-2 ゲームの方向性を決めよう
- 4-2-1 ゲームの概要を思い浮かべてメモする
 - 4-2-2 ゲームを作る理由を考える
 
4-3 ゲームのルールを考えよう
- 4-3-1 スポーツにもゲームにもルールが必要
 - 4-3-2 直感的なルールを作る
 - 4-3-3 サンプルゲームの場合
 
4-4 ゲームの公開方法を決めよう
- 4-4-1 プラットフォームの影響
 - 4-4-2 Unityの対応プラットフォーム
 
4-5 企画書を作ろう
- 4-5-1 ゲームの企画書
 - 4-5-2 企画書作りのポイント
 
4-6 ゲームの開発手順を確認しよう
- 4-6-1 ゲームのコア要素を考えてみる
 - 4-6-2 プロトタイピング
 - 4-6-3 完璧を求めないようにする
 
Chapter 5 ゲームの舞台を作ってみよう
5-1 プロジェクトを作成しよう
- 5-1-1 プロジェクトの準備
 - 5-1-2 Asset Storeとは
 - 5-1-3 Standard Assetsのインポート
 
5-2 地形を追加しよう
- 5-2-1 Terrainの作成
 - 5-2-2 Terrainの初期設定
 - 5-2-3 地面を上げ下げする
 - 5-2-4 地面の高さを合わせる
 - 5-2-5 地面の高さを平均化する
 - 5-2-6 地面をペイントする
 
5-3 木や草を配置しよう
- 5-3-1 木を植える
 - 5-3-2 草を生やす
 - 5-3-3 Terrainの平面サイズと配置
 
5-4 水や風の演出を追加しよう
- 5-4-1 水を配置する
 - 5-4-2 風を吹かせる
 - 5-4-3 Terrainの弱点
 
5-5 空を追加しよう
- 5-5-1 Skyboxとは
 - 5-5-2 Skybox用Assetのインポート
 - 5-5-3 SkyBoxの基本設定
 - 5-5-4 Skyboxで昼夜を表現する
 - 5-5-5 Lightで昼夜を表現する
 
Chapter 6 キャラクターを作ってみよう
6-1 キャラクターコントローラのサンプルを見てみよう
- 6-1-1 FPSController
 - 6-1-2 RollerBall
 - 6-1-3 ThirdPersonController
 
6-2 キャラクターをインポートしよう
- 6-2-1 サンプルプロジェクトとAssetのインポート
 - 6-2-2 3Dモデルのインポート
 - 6-2-3 Prefabを配置する
 - 6-2-4 Shaderを変更して影をつける
 
6-3 キャラクターを操作できるようにしよう
- 6-3-1 入力の取得方法
 - 6-3-2 ゲームオブジェクトの動かし方
 
6-4 カメラがキャラクターを追いかけるようにしよう
- 6-4-1 Cinemachineのインポート
 - 6-4-2 キャラクターを追尾するカメラを配置する
 
6-5 キャラクター操作のためのスクリプトを書こう
- 6-5-1 スクリプトの作成
 - 6-5-2 CharacterControllerの接地判定問題を解決する
 
6-6 キャラクターにアニメーションをつけよう
- 6-6-1 Mecanim(メカニム)とは
 - 6-6-2 アニメーションのインポート
 - 6-6-3 Animator Controllerを作る
 - 6-6-4 スクリプトからアニメーションを切り替える
 
Chapter 7 敵キャラクターを作って動きをつけよう
7-1 敵キャラクターがプレイヤーを追いかけるようにしよう
- 7-1-1 敵キャラクターのインポート
 - 7-1-2 追いかけるのは意外と難しい
 - 7-1-3 NavMeshの仕組み
 - 7-1-4 NavMeshをベイクする
 - 7-1-5 敵キャラクターにプレイヤーを追跡させる
 
7-2 一定範囲に入ると襲ってくるようにしよう
- 7-2-1 オブジェクトにタグをつける
 - 7-2-2 検知のためのColliderをセットする
 - 7-2-3 衝突検知用の汎用スクリプトを作る
 
7-3 視界に入ると襲ってくるようにしよう
- 7-3-1 Raycastとは
 - 7-3-2 敵キャラクターからプレイヤーにRaycastする
 - 7-3-3 障害物を設定する
 
7-4 敵キャラクターに攻撃させてみよう
- 7-4-1 アニメーションの設定
 - 7-4-2 スクリプトを書く
 - 7-4-3 アニメーションにスクリプトの実行イベントを仕込もう
 
7-5 敵を倒せるようにしよう
- 7-5-1 武器をインポートする
 - 7-5-2 攻撃の当たり判定を配置する
 - 7-5-3 スクリプトのアタッチ
 - 7-5-4 武器と敵のレイヤー設定
 - 7-5-5 プレイヤーのアニメーション設定
 
7-6 敵キャラクターを出現させよう
- 7-6-1 敵キャラクター登場の基本
 - 7-6-2 敵キャラクターをPrefab化する
 - 7-6-3 Prefabの特徴を知っておく
 - 7-6-4 Coroutineを使う
 - 7-6-5 スクリプトを書く
 
Chapter 8 ユーザーインタフェースを作ってみよう
8-1 タイトル画面を作ろう
- 8-1-1 新規シーンの作成
 - 8-1-2 Canvasとは
 - 8-1-3 Canvasの解像度を設定する
 - 8-1-4 タイトルの文字を配置する
 - 8-1-5 ボタンを配置する
 
8-2 ゲームオーバー画面を作ろう
- 8-2-1 ゲームオーバー画面シーンの作成
 - 8-2-2 UIに影をつける
 - 8-2-3 Tweenアニメーションを使う
 - 8-2-4 MainSceneからGameOverSceneに遷移させる
 
8-3 アイテムを出現させよう
- 8-3-1 アイテムのスクリプトを書く
 - 8-3-2 アイテムのPrefabを準備する
 - 8-3-3 敵を倒すとアイテムを出現させる
 - 8-3-4 JSONを利用してデータを保存する
 
8-4 ゲーム画面のUIを作ろう
- 8-4-1 メニューを追加する
 - 8-4-2 ポーズ機能の実装
 - 8-4-3 アイテム欄の実装
 - 8-4-4 ライフゲージを追加する
 
Chapter 9 ゲームが楽しくなる効果をつけよう
9-1 BGMやSEを追加しよう
- 9-1-1 Unityで再生可能な音声ファイル
 - 9-1-2 Audio Clipのプロパティ
 - 9-1-3 Audio Sourceを使用する
 - 9-1-4 Audio Mixerを使用する
 - 9-1-5 2Dサウンドを管理するクラスを作る
 
9-2 パーティクルエフェクトを作成しよう
- 9-2-1 パーティクルエフェクトとは
 - 9-2-2 攻撃がヒットしたときのエフェクトの作成
 - 9-2-3 エフェクトの実装
 - 9-2-4 Assetを活用する
 
9-3 ゲーム画面にエフェクトをかけてみよう
- 9-3-1 Post Processingのインストール
 - 9-3-2 カメラの準備
 - 9-3-3 エフェクトをつける
 
Chapter 10 ゲームのチューニングを行おう
10-1 パフォーマンスを改善しよう
- 10-1-1 フレームレートを設定する
 - 10-1-2 Profilerでパフォーマンスを計測する
 - 10-1-3 Scriptのチューニング
 - 10-1-4 Renderingのチューニング
 
10-2 ゲームの容量を節約しよう
- 10-2-1 ゲームのファイルサイズに注意
 - 10-2-2 肥大化の原因と基本的な対策
 - 10-2-3 画像のサイズを減らす
 - 10-2-4 音声ファイルのサイズを減らす
 - 10-2-5 Resourcesの中身を減らす
 - 10-2-6 不要なシーンをビルド対象から外す
 - 10-2-7 AssetBundle
 
10-3 ゲームをビルドしよう
- 10-3-1 ビルドの共通操作と設定
 - 10-3-2 Windows/macOS向けのビルド
 - 10-3-3 Android向けのビルド
 - 10-3-4 iOS向けのビルド
 - 10-3-5 WebGL向けのビルド
 - 10-3-6 ビルドしたいプラットフォームが選べない場合
 
10-4 ゲームを公開しよう
- 10-4-1 Google Play
 - 10-4-2 App Store
 - 10-4-3 Steam
 - 10-4-4 UDP(Unity Distribution Portal)
 
Chapter 11 プレイされるゲームにしていこう
11-1 ゲームをもっと面白くしよう
- 11-1-1 レベルデザイン
 - 11-1-2 遊びの4要素
 - 11-1-3 プレイの動機を提供する
 
11-2 ゲームを収益化しよう
- 11-2-1 ゲーム収益化は開発者の悩みのタネ
 - 11-2-2 広告について知っておく
 - 11-2-3 アプリ内課金について知っておく
 
11-3 ゲームをもっと広めよう
- 11-3-1 プレスリリースを送る
 - 11-3-2 SNSを使う
 - 11-3-3 シェア機能を実装する
 - 11-3-4 プロモーションに使えるサービスを活用する
 - 11-3-5 広告を出す
 - 11-3-6 リピート率を向上させる
 
11-4 開発の効率を上げよう
- 11-4-1 バージョン管理を利用する
 - 11-4-2 自動ビルドを実行する
 - 11-4-3 その他の開発効率化
 
11-5 Unityの魅力的な機能をさらに知っておこう
- 11-5-1 VR/AR
 - 11-5-2 Shader
 - 11-5-3 タイムライン
 - 11-5-4 ECS
 
11-6 イベントに参加してみよう
- 11-6-1 Unityに関連したイベント
 - 11-6-2 Unity Meetup
 - 11-6-3 Unity1週間ゲームジャム
 - 11-6-4 その他の勉強会・イベント
 
