05.板書まとめ
板書まとめ
これまでの授業で使った板書を、日付順にまとめています。
各日の板書を撮影順に並べているので、授業の流れを思い出しながら振り返ってみましょう。
| 日付 |
主な内容 |
| 5/26 |
キャラクターAI・視界判定 |
| 6/9 |
FSM(有限状態機械)・状態遷移 |
| 6/16 |
Stateパターン・ポリモーフィズム |
| 6/23 |
State実装に必要なC++の補足 |
| 6/30 |
Behavior Tree導入 |
| 7/7 |
ゲームAIの分類・探索アルゴリズム |
| 7/14 |
Behavior Treeの詳細 |
| 7/21 |
グラフ・木・BFS・DFS |
| 8/25 |
二分木・二分探索木 |
| 9/1 |
BFS・DFS実装/木の巡回 |
📆5/26
📝まとめ
- キャラクターAIを センサ → 判断 → 行動 の流れで考えた。
- 敵からプレイヤーへの方向と敵の前方向を使い、内積で視野角を判定した。
- 視野角だけでなく距離判定も組み合わせて、プレイヤーを発見したかどうかを判断した。
- 発見した結果を
Idle や Chase などの行動へつなげる考え方を扱った。
📆6/9
📝まとめ
- キャラクターの行動を State(状態) として分けるFSMを学んだ。
- 条件を満たしたときに別のStateへ移る Transition(状態遷移) を整理した。
- 待機・巡回・追跡・攻撃などを、状態遷移図や状態遷移表で表した。
switch を使った実装と、状態や遷移が増えると処理が複雑になりやすい問題を確認した。
📆6/16
📝まとめ
- FSMの各状態の処理を別クラスへ分ける Stateパターン を扱った。
StateBase を基底クラスにし、IdleState や ChaseState などを派生させる構成を確認した。
virtual とオーバーライドによって、同じ Update() 呼び出しでもStateごとに違う処理を実行できることを学んだ。
- 基底クラスポインタで現在のStateを扱うポリモーフィズムをAI実装へ結び付けた。
📆6/23
📝まとめ
- Stateパターンを実装するために必要なC++の基礎を補強した。
- コンストラクタ、継承、ポインタ、動的生成などを確認した。
new で作ったオブジェクトの寿命と、不要になったオブジェクトを適切に解放する必要性を扱った。
- C++の仕組みが、Stateを差し替えてAIの振る舞いを変える実装にどうつながるかを確認した。
📆6/30
📝まとめ
- AIの判断や行動を木構造で表す Behavior Tree を導入した。
- 複雑な行動を複数のNodeに分け、木として組み合わせて考える方法を扱った。
Root、Selector、Action など、Behavior Treeを構成する基本的なNodeを確認した。
- Nodeが返す
Success / Failure / Running によって、次にどの処理を進めるか判断する考え方を学んだ。
📆7/7
📝まとめ
- ルールベース、ステートベース、ビヘイビアベース、ゴール指向、ユーティリティベースなど、ゲームAIの考え方を整理した。
- AIの判断方法によって、向いている問題や構成が異なることを確認した。
- 移動経路を求めるためのグラフ探索へ話を広げた。
- BFS・DFSを中心に探索の考え方を整理し、Dijkstra・A*は名前と概要を確認した。
📆7/14
📝まとめ
- Behavior Treeを構成する代表的なノードの役割を整理した。
- Sequence は子を順に実行し、すべて成功すれば成功する。
- Selector は子を順に試し、どれか1つが成功すれば成功する。
Success / Failure / Running を使って、木全体の処理結果を親ノードへ返していく考え方を確認した。
📆7/21
📝まとめ
Node、Edge、Root、Leaf など、グラフと木の基本用語を整理した。
- 有向グラフと無向グラフ、一般のグラフと木構造の違いを確認した。
- BFS(幅優先探索) と DFS(深さ優先探索) の探索の広がり方を比較した。
- BFSではQueue、DFSではStackを使う理由につなげた。
📆8/25
📝まとめ
- 各Nodeが最大2つの子を持つ 二分木(Binary Tree) を学んだ。
- 値の大小関係を使う 二分探索木(Binary Search Tree) のルールを確認した。
- 小さい値を左、大きい値を右へ配置することで、探索範囲を絞れることを学んだ。
- 線形探索との違いや、木が偏った場合の問題も確認した。
📆9/1
📝まとめ
- BFSとDFSを、
std::queue と std::stack を使った実装へ結び付けた。
- Queueの FIFO、Stackの LIFO と探索順の関係を確認した。
- 二分木をたどる代表的な3種類の巡回を扱った。
- 行きがけ順(Preorder)・通りがけ順(Inorder)・帰りがけ順(Postorder) の違いを整理した。
全体の流れ
授業全体は、次のようにつながっています。
周囲を調べる → 状態や行動を決める → AIの構造を整理する → 必要ならグラフを探索する → 経路やNodeを順番に処理する
板書を見返したときに、単語だけではなく、**「この仕組みはゲームAIのどこで使うのか」**まで思い出せるようにしておきましょう。
No Comments