SlideShare a Scribd company logo
1 of 59
Download to read offline
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/
以上!

More Related Content

More from com044

UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-com044
 
2019年01月 UE4界隈ニュース
2019年01月 UE4界隈ニュース2019年01月 UE4界隈ニュース
2019年01月 UE4界隈ニュースcom044
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!com044
 
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュースcom044
 
UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-com044
 
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュースcom044
 
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュースcom044
 
UE4勉強会 in 大阪 - もっとアニメーションBP
UE4勉強会 in 大阪 - もっとアニメーションBPUE4勉強会 in 大阪 - もっとアニメーションBP
UE4勉強会 in 大阪 - もっとアニメーションBPcom044
 
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュースcom044
 
UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎com044
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてcom044
 
第4回UE4勉強会 in 大阪 UE4でのチーム製作
第4回UE4勉強会 in 大阪   UE4でのチーム製作第4回UE4勉強会 in 大阪   UE4でのチーム製作
第4回UE4勉強会 in 大阪 UE4でのチーム製作com044
 
第4回UE4勉強会 in 大阪 201801 UE4界隈ニュース
第4回UE4勉強会 in 大阪   201801 UE4界隈ニュース第4回UE4勉強会 in 大阪   201801 UE4界隈ニュース
第4回UE4勉強会 in 大阪 201801 UE4界隈ニュースcom044
 
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュースcom044
 
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級com044
 
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュースcom044
 
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?com044
 
第1回UE4勉強会 in 大阪 - UE4界隈ニュース
第1回UE4勉強会 in 大阪 - UE4界隈ニュース第1回UE4勉強会 in 大阪 - UE4界隈ニュース
第1回UE4勉強会 in 大阪 - UE4界隈ニュースcom044
 
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみたUE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみたcom044
 

More from com044 (19)

UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-UE4でAIとビヘイビアツリーと-基礎-
UE4でAIとビヘイビアツリーと-基礎-
 
2019年01月 UE4界隈ニュース
2019年01月 UE4界隈ニュース2019年01月 UE4界隈ニュース
2019年01月 UE4界隈ニュース
 
UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!UE4でTranslucencyやUnlitに影を落としたい!
UE4でTranslucencyやUnlitに影を落としたい!
 
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
第8回UE4勉強会 in 大阪 201809 UE4界隈ニュース
 
UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-
 
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
第7回UE4勉強会 in 大阪 201807 UE4界隈ニュース
 
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
第6回UE4勉強会 in 大阪 201805 UE4界隈ニュース
 
UE4勉強会 in 大阪 - もっとアニメーションBP
UE4勉強会 in 大阪 - もっとアニメーションBPUE4勉強会 in 大阪 - もっとアニメーションBP
UE4勉強会 in 大阪 - もっとアニメーションBP
 
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
第5回UE4勉強会 in 大阪 201803 UE4界隈ニュース
 
UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
第4回UE4勉強会 in 大阪 UE4でのチーム製作
第4回UE4勉強会 in 大阪   UE4でのチーム製作第4回UE4勉強会 in 大阪   UE4でのチーム製作
第4回UE4勉強会 in 大阪 UE4でのチーム製作
 
第4回UE4勉強会 in 大阪 201801 UE4界隈ニュース
第4回UE4勉強会 in 大阪   201801 UE4界隈ニュース第4回UE4勉強会 in 大阪   201801 UE4界隈ニュース
第4回UE4勉強会 in 大阪 201801 UE4界隈ニュース
 
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
 
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
第2回UE4勉強会 in 大阪 - マテリアル基礎・初級
 
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
 
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
第1回UE4勉強会 in 大阪 - エンジン改造ってどうなの?
 
第1回UE4勉強会 in 大阪 - UE4界隈ニュース
第1回UE4勉強会 in 大阪 - UE4界隈ニュース第1回UE4勉強会 in 大阪 - UE4界隈ニュース
第1回UE4勉強会 in 大阪 - UE4界隈ニュース
 
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみたUE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
UE4.14.0 Forward Shadingのエンジン改造でセルシェードやってみた
 

AI基礎