ゲーム開発者のためのAI入門

[cover photo]
TOPICS
Programming , Game
発行年月日
PRINT LENGTH
392
ISBN
4-87311-216-8
原書
AI for Game Developers
FORMAT
Print
4,180円
この商品は品切れ再入荷未定です

近年の3Dグラフィック技術の進化により、ビジュアル面におけるゲームのリアリティは大きく進歩しました。ゲームのリアリティを向上させる次のステップは、ゲームに人工知能(AI)を導入することです。本書は、ゲームプログラミングにはじめて取り組むプログラマと、AI技術を理解する必要のあるゲームプログラマの両方を対象に、(従来の)決定論的なAI技術と、(新しい)非決定論的なAI技術を紹介します。本書で解説するのは、「追跡と逃避」「パターンムーブメント」「フロッキング」「ポテンシャル関数に基づくムーブメント」「基本的な経路探索とウェイポイント」「A*アルゴリズムによる経路探索」「AIのスクリプト化とスクリプティングエンジン」「有限状態機械」「ファジー理論」「ルールベースのAI」「確率の基礎」「不確定な状況下での意思決定 ─ ベイズ法」「ニューラルネットワーク」「遺伝的アルゴリズム」など。豊富に掲載された図版とC/C++のサンプルコードが読者の理解を助けます。

目次

まえがき
1章	Game AIとは
	1.1 決定論的AIと非決定論的AI 
	1.2 確立されたGame AI 
	1.3 Game AIの将来 
2章	追跡と逃避
	2.1 基本的な追跡と逃避 
	2.2 LOS追跡 
	2.3 タイル環境でのLOS追跡 
	2.4 連続動作環境でのLOS追跡 
	2.5 迎撃 
3章	パターンムーブメント 
	3.1 標準アルゴリズム 
	3.2 タイル環境でのパターンムーブメント 
	3.3 物理的なシミュレーション環境でのパターンムーブメント 
		3.3.1 制御構造 
		3.3.2 パターンの定義 
		3.3.3 パターンの実行 
		3.3.4 DoPattern関数 
		3.3.5 結果 
4章	フロッキング 
	4.1 標準的なフロッキング 
	4.2 フロッキングの例 
		4.2.1 操舵モデル 
		4.2.2 隣接ユニット 
		4.2.3 結合 
		4.2.4 整列 
		4.2.5 分離 
	4.3 障害物の回避 
	4.4 リーダーに続け 
5章	ポテンシャル関数に基づくムーブメント
	5.1 Game AIでのポテンシャル関数の用途 
		5.1.1 ポテンシャル関数とは 
	5.2 追跡と逃避 
	5.3 障害物の回避 
	5.4 スウォーミング 
	5.5 最適化のヒント 
6章	基本的な経路探索とウェイポイント 
	6.1 基本の経路探索 
		6.1.1 ランダムムーブメントによる障害物の回避 
		6.1.2 障害物のトレーシング 
	6.2 ブレッドクラム経路探索 
	6.3 経路の追跡 
	6.4 ウォールトレーシング 
	6.5 ウェイポイントナビゲーション 
7章	A*アルゴリズムによる経路探索
	7.1 探索領域の定義 
	7.2 探索の開始 
	7.3 スコアリング 
	7.4 袋小路の検出 
	7.5 地形コスト 
	7.6 影響マッピング 
	7.7 参考文献 
8章	AIのスクリプト化とスクリプティングエンジン
	8.1 スクリプティング技術 
	8.2 敵の属性のスクリプティング 
	8.3 基本スクリプトの解析 
	8.4 敵の振る舞いのスクリプティング 
	8.5 会話のスクリプティング 
	8.6 イベントのスクリプティング 
	8.7 参考文献 
9章	有限状態機械
	9.1 状態機械の基本モデル 
	9.2 有限状態機械の設計 
		9.2.1 有限状態機械の構造体とクラス 
		9.2.2 有限状態機械の振る舞い関数と遷移関数 
	9.3 蟻の例 
		9.3.1 有限状態機械の構造体とクラス 
		9.3.2 シミュレーション領域の定義 
		9.3.3 蟻の追加 
		9.3.4 ゲーム環境の更新 
	9.4 参考文献 
10章	ファジー理論
	10.1 ゲームでのファジー理論の用途 
		10.1.1 制御 
		10.1.2 脅威の査定 
		10.1.3 分類 
	10.2 ファジー理論の基礎 
		10.2.1 概要 
		10.2.2 ファジー化 
		10.2.3 ファジールール 
		10.2.4 非ファジー化 
	10.3 制御の例 
	10.4 脅威の査定の例 
11章	ルールベースのAI
	11.1 ルールベースシステムの基礎 
		11.1.1 ルールベースシステムでの推定 
	11.2 格闘技ゲームの攻撃予想 
		11.2.1 ワーキングメモリ 
		11.2.2 ルール 
		11.2.3 初期化 
		11.2.4 攻撃予想 
	11.3 参考文献 
12章	確率の基礎
	12.1 ゲームでの確率の用途 
		12.1.1 ランダム性 
		12.1.2 命中率 
		12.1.3 キャラクターの能力 
		12.1.4 状態遷移 
		12.1.5 適応性 
	12.2 確率とは 
		12.2.1 従来の確率 
		12.2.2 頻度の解釈 
		12.2.3 主観的な解釈 
	12.3 確率のルール 
		12.3.1 ルール1 
		12.3.2 ルール2 
		12.3.3 ルール3 
		12.3.4 ルール4 
		12.3.5 ルール5 
		12.3.6 ルール6 
	12.4 条件付き確率 
13章	不確定な状況下での意思決定−ベイズ法
	13.1 ベイズネットワークとは 
		13.1.1 構造 
		13.1.2 推定 
	13.2 罠が仕掛けられている確率 
		13.2.1 ツリー図 
		13.2.2 確率の決定 
		13.2.3 推論 
		13.2.4 ファジー理論の使用 
	13.3 財宝が収められている確率 
		13.3.1 別のモデル 
		13.3.2 推論 
		13.3.3 数値を使った例 
	13.4 空と陸の確率 
		13.4.1 モデル 
		13.4.2 確率の計算 
		13.4.3 数値を使った例 
	13.5 格闘技ゲーム 
		13.5.1 モデル 
		13.5.2 確率の計算 
		13.5.3 攻撃予想 
	13.6 参考文献 
14章	ニューラルネットワーク
	14.1 ゲームでのニューラルネットワーク 
		14.1.1 制御 
		14.1.2 脅威の査定 
		14.1.3 攻撃か逃走か 
	14.2 ニューラルネットワークの分析 
		14.2.1 構造 
		14.2.2 入力 
		14.2.3 重み 
		14.2.4 活性化関数 
		14.2.5 バイアス 
		14.2.6 出力 
		14.2.7 隠れた層 
	14.3 学習 
		14.3.1 バックプロパゲーション学習法 
	14.4 ニューラルネットワークのソースコード 
		14.4.1 層クラス 
		14.4.2 ニューラルネットワーククラス 
	14.5 頭脳を使った追跡と逃避 
		14.5.1 初期化と学習 
		14.5.2 学習 
	14.6 参考文献 
15章	遺伝的アルゴリズム
	15.1 進化の過程 
		15.1.1 第1世代 
		15.1.2 適性評価 
		15.1.3 選択 
		15.1.4 進化 
	15.2 植物の進化 
		15.2.1 花のデータの符号化 
		15.2.2 花の第1世代 
		15.2.3 花の適性評価 
		15.2.4 花の進化 
	15.3 ゲーム開発での遺伝学 
		15.3.1 RPGの例 
		15.3.2 データの符号化 
	15.4 参考文献 
付録	ベクトル演算
	Vectorクラス 
	Magnitude 
	Normalize 
	Reverse 
	ベクトルの加算:+=演算子 
	ベクトルの減算:-=演算子 
	スカラー乗算:*=演算子 
	スカラー除算:/=演算子 
	共役:-演算子 
	ベクトル関数と演算子 
	ベクトルの加算:+演算子 
	ベクトルの減算:-演算子 
	ベクトルの外積:^演算子 
	ベクトルの内積:*演算子 
	スカラー乗算:*演算子 
	スカラー除算:/演算子 
	スカラー三重積 
索引