AI基礎
Slideshare用壁紙
Slideshare用壁紙
自己紹介
● Twitter: @com04
● ゲームプログラマー
● 作ったものとかは大体twitterモーメントに
○ https://twitter.com/i/moments/847072031048814594
○ https://twitter.com/i/moments/986364547098275840
自己紹介
● マーケットプレイスに出品しました
− ComMaterialTools - マテリアル検索の便利ツール
● https://www.unrealengine.com/marketplace/commaterialtools
● 講演したスライド
− マテリアル基礎・初級: https://www.slideshare.net/com044/ue4-80326829
− UE4でのチーム製作: https://www.slideshare.net/com044/4ue4-in-ue4
− アニメーション基礎: https://www.slideshare.net/com044/ue4-in-91056422
− もっとアニメーションBP: https://www.slideshare.net/com044/ue4-in-bp
− UE4 LODs for Optimization -Beginner-:
https://www.slideshare.net/com044/lods-for-optimization-beginner
− Volumetric Fogで空間を演出する!:
https://www.slideshare.net/com044/ue4-volumetric-fog
− UE4でTranslucencyやUnlitに影を落としたい!:
https://www.slideshare.net/com044/ue4translucencyunlit 5
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
はじめに
AIの基礎の基礎の話をします
はじめに
AI、と言っても様々なものがあり、多岐に渡ります。
今回はゲームAI、味方・敵の思考ルーチン周りのAIについ
てに話していきたいと思います。
はじめに
※残念ながら私はAIは専門分野ではなく、あまり最新技術
についていけておりません。
今回の内容は若干レガシーかもしれません。取っ掛かりと
して、またAIをあんまりやってない人が平易に組んでいく形
としてご了承ください
AIベテランの方は教えてください
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
AI、思考ルーチン - キャラクターの行動
キャラクターがどう動いて戦うのか?
AI、思考ルーチン - キャラクターの行動
一つだけの思考
● 相手に攻撃する
● 相手から逃げる
AI、思考ルーチン - キャラクターの行動
もう一声
● 相手に近づいて攻撃する
● 相手から攻撃を受けたら避ける
AI、思考ルーチン - キャラクターの行動
もっと
● 相手が攻撃中なら回避行動を取る。
+相手が遠ければ射撃攻撃。近ければ近接攻撃。
+自分のライフが少なければ隠れて回復
AI、思考ルーチン - キャラクターの行動
確率で攻撃を変える
1. 50% で攻撃
2. 30% でスキルA使用
3. 20% でスキルB使用
RPGやアクションゲーム、雑魚敵で割と見かけるパターン
AI、思考ルーチン - キャラクターの行動
ターン数に応じて行動パターンを変える
● ターン1:攻撃 or スキルA
● ターン2 : スキルB or スキルC
● ターン3 : ...
RPGでよくあった。行動パターンを知らないと完全にランダ
ムで動作しているように見える。
強さを調整しやすい
AI、思考ルーチン - キャラクターの行動
各条件でマッチングさせて処理する
1. HPが30%以下なら回復する
2. 敵が火の属性が苦手なら火のスキルを使う
3. 上記でなければ攻撃する
AI、思考ルーチン - キャラクターの行動
「状況」を「思考」が受け取って「行動」を決定する
● 自分のHP
● 状態異常
● 敵との距離
● 攻撃されている
● 危険度
● 敵の弱点
● ターン数
状況 思考
● 攻撃する
● 防御する
● スキルを使う
● 回復する
● 近づく
● 逃げる
● 隠れる
行動
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
AI、思考ルーチン - 誰に攻撃するか
行動パターンだけでなく、誰を狙うかも考えないといけな
い。
相手が1人だと考慮しなくていい。
AI、思考ルーチン - 誰に攻撃するか
RPGとかだと
● 完全ランダム
● 隊列の先頭から順に確率
○ 先頭50%、2番目30%、3番目15%、4番目5%とか
○ 敵の種類や攻撃によっては、逆に後ろから狙うパターンとか
AI、思考ルーチン - 誰に攻撃するか
シミュレーションやアクションだと
● 1番近い相手
● 1番HPが少ない相手
● 攻撃の相性が良い相手
AI、思考ルーチン - 誰に攻撃するか
もう少し凝っていくと
● 危険性が高い相手
○ 遠距離攻撃、ヒーラー
● ヘイト
○ 直前に殴られた相手
○ オンラインゲーム等で前衛が相手を攻撃してターゲットを取る
■ →前衛が相手のヘイトを高める
AI、思考ルーチン - 誰に攻撃するか
もうすこし突っ込んでアクションゲームを考えてみます
AI、思考ルーチン - 誰に攻撃するか
● 1番近い相手を狙う
○ 1番近い相手が逃げ回ったら?(追いかけっこ状態)
■ 相手パーティから遠距離攻撃でノーダメージで狙われ続ける
■ →それでも追い続ける。思考能力の低いAIを表現
■ →数秒相手との距離が詰まらなかったら次に近い相手を狙う
■ →味方パーティと連携して追い詰める
○ 1番近い相手との相性が悪かったら?
■ →関係なく攻撃する
■ →次の相手を探す
AI、思考ルーチン - 誰に攻撃するか
● 1番HPが少ない相手を狙う
○ でも攻撃範囲の外
■ →相手に近づく
● 近づく途中に攻撃できる相手が居たら?
■ どれくらい遠い?
● 攻撃範囲のすぐ外
○ →相手に近づく
● 全然届かない
○ →次の相手を探す
○ →その相手の方角に移動しつつ攻撃できる敵を探す
AI、思考ルーチン - 誰に攻撃するか
考えること一杯!
AI、思考ルーチン - 誰に攻撃するか
どこまで細かい思考を作るかはそのゲーム次第です。
詰めていく場合は様々な要因によってパターンを考えない
といけません。
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
AIの勉強
1から学習していくの大変!
イメージしにくい!
AIの勉強
→ゲームで学ぼう!
AIの勉強
ファイナルファンタジー XII
http://www.jp.square-enix.com/ff12_tza/
AIの勉強
ガンビットシステム
http://www.jp.square-enix.com/ff12_tza/tza/system/
AIの勉強
パーティメンバーの動き、AI思考をユーザーが組める
AIの勉強
1. 「条件」が一致すれば「行動」する
2. しなければ次の条件へ
「条件」と「行動」をユーザーが組める
条件
● HP<○○%の味方
● 「状態異常」の味方
● HP=100%の敵
● 最も近い敵
● 飛行タイプの敵
● もしHP>○%なら
● もしMP<○%なら
行動
● たたかう
● HP回復
● 状態異常回復
● アイテム
● 魔法
AIの勉強
そこそこ簡単に行動を作ることが出来ます。
本作ではパーティメンバーのAI思考として公開されていま
した。
例えばこのようなシステムを敵のAIとして実装すると、色々
な思考パターンを作ることが手軽に出来そうです。
AIの勉強
ユーザーのWikiに細かい説明や作例があります。
● ファイナルファンタジー用語辞典 Wiki* > システム/【ガンビット】
AIの勉強
カルネージハート エクサ
● PS VitaでPSP版が出来るハズ
○ https://store.playstation.com/ja-jp/product/JP0011-NPJH50341_00-201
01028ADPSP001
AIの勉強
条件分岐とかも有ります。
● FF XIIよりも、もっとプログラミング寄り
○ 難易度は高め
https://www.artdink.co.jp/japanese/title/che/system01.html
AIの勉強
ゲーム内でAIを実装できるゲームで学ぶことの利点として
● ゲーム製作の専門スキルが無くても作れる形になって
いる
○ ビヘイビアツリー等の複雑な機構を勉強してからでなくてもAI
を勉強し始めれる
○ エンジニアでなく、複雑なシステムを触れないスタッフでもAIを
作成できる形になっている。
AIの勉強
ゲーム内でAIを実装できるゲームで学ぶことの利点として
● AIの変更から、テストまですぐに行える
○ 既に世界が出来上がってる
AIの勉強
ゲーム内でAIを実装できるゲームで学ぶことの利点として
● ネットで探せば既に組まれた例が見つかる
○ どういう思考で動かせばいいのか、とか色んな人の作例が見
れる
AIの勉強
他にも、製品のゲームをプレイして学びます。
● このゲームの敵はどう動くのか
● 遊んでいて理不尽だと思った敵の動き
● 遊んでいて心地よく戦えた時の敵の動き
● 動いてくれないパーティーメンバー
○ どう動いてほしかった?
● 他に遊んだ人から評価が高かったゲーム
AIの勉強
ゲームAIは長年に渡る情報の蓄積により、最新技術に追
いつくまで山程あります。
一気に全部紐解くのはかなり大変だと思います。
AIの勉強
一つ一つ、例えば自分の好きなジャンルやゲームから資料
を漁って覚えていくのがいいと思います。
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
他に
ファジー理論(の雑な概要)
● HPが30%未満になると逃げるAI
○ 29.9%になった瞬間に逃げる
■ でも相手をあと一発で倒せそうなのに逃げる?
■ 5 vs 1で有利な状態で戦ってても逃げる?
→このままだと機械的な動きになってしまう。
そこで、「逃げたい度」0.0~1.0、「戦う度」0.0~1.0として行
動の評価値を付けて行動を決める
他に
● ファジー理論で思考ルーチン - のののーと
○ http://nonoui.hatenablog.jp/entry/2018/01/29/190522
● ファジー理論で遊んでみる - @ayumegu
○ https://qiita.com/ayumegu/items/f8715397775c27935875
他に
学習型(の雑な概要)
● プレイヤーのプレイスタイルがひたすらまっすぐ突っ込ん
でくる
○ その行動を学習して、AIがまっすぐの場所に罠を張るとか
→プレイヤーが取る行動を記憶
その行動にマッチした対処を取る。
プレイヤーの遊び方によってAI挙動が変わるとか
他に
群れ(の雑な概要)
● 先程までのはキャラクター1体の思考
● 他の仲間キャラクターと連携を取りたい場合
仲間と連携して
相手を囲みたい
魔法詠唱する仲間を
誰が守りに行く? 魔法詠唱!
他に
更に大人数での戦場レベルでの行動
● 数人1組の小隊
○ 小隊で一緒に行動する
● 大まかな戦場の移動は小隊単位
● 小隊が戦闘状態になると先程の1人1人の個別AIで戦うと
か
5人1組の小隊
他に
● 全体の思考管理
● 攻める、守る
● 手薄な場所は
○ 小隊単位の思考管理
● チームの移動
● チーム内の戦闘連携
■ 1人1人の思考
● 相手との戦闘
もくじ
● はじめに
● AI、思考ルーチン
○ キャラクターの行動
○ 誰に攻撃するか
● AIの勉強
● 他に
● 参考
参考
参考書
● ゲーム開発者のためのAI入門
○ https://www.oreilly.co.jp/books/4873112168/
● 実例で学ぶゲームAIプログラミング
○ https://www.oreilly.co.jp/books/9784873113395/
● 人工知能の作り方 ――「おもしろい」ゲームAIはいかにして動くの
か
○ https://gihyo.jp/book/2017/978-4-7741-8627-6
●
参考
ほかの資料
● ゲームAIの基礎と事例 - @Tomoaki TSUCHIE
○ https://www.slideshare.net/misolmiso/ai-54367524
● ゲームAI単語 - ニコニコ大百科
○ https://dic.nicovideo.jp/a/%E3%82%B2%E3%83%BC%E3%83%A0ai
●
参考
もっともっと深く知りたい方
● [CEDEC 2015]「FFXV」で導入されるゲームAIの仕組みが明ら
かに。ゲームエンジン「Luminous Studio」の先進的AIシステム -
4gamer.net
○ https://www.4gamer.net/games/075/G007535/20150831093/
● ゲームAI入門(前半) - 三宅 陽一郎
○ https://www.slideshare.net/youichiromiyake/ai-105125426
● 三宅 陽一郎さんのSlideshare
○ https://www.slideshare.net/youichiromiyake/presentations
● CEDiLを「ゲームAI」とかで検索
○ http://cedil.cesa.or.jp/
以上!

AI基礎