Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
dodoyuzo
16,495 views
適度に弱い敵aiの作り方
強すぎず、しかし露骨に弱すぎない敵AIを作るための手法
Engineering
◦
Read more
10
Save
Share
Embed
Embed presentation
Download
Downloaded 19 times
1
/ 30
2
/ 30
3
/ 30
4
/ 30
5
/ 30
6
/ 30
7
/ 30
8
/ 30
Most read
9
/ 30
10
/ 30
11
/ 30
12
/ 30
13
/ 30
14
/ 30
Most read
15
/ 30
16
/ 30
17
/ 30
18
/ 30
19
/ 30
20
/ 30
21
/ 30
22
/ 30
23
/ 30
24
/ 30
25
/ 30
26
/ 30
27
/ 30
28
/ 30
29
/ 30
Most read
30
/ 30
More Related Content
PDF
ノベルゲーム動的演出の考え方
by
tuna cook
PDF
MMORPGで考えるレベルデザイン
by
Katsumi Mizushima
PDF
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
by
小林 信行
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PPTX
ゲームの楽しさを図式化する ―楽しさを網羅的に分類する「主体性構造モデル」
by
井戸 里志
PDF
고대특강 게임 프로그래머의 소양
by
Jubok Kim
PDF
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
by
강 민우
PDF
任天堂の呪いとナラティブについてバンナム編
by
Kawamura Yasuhisa
ノベルゲーム動的演出の考え方
by
tuna cook
MMORPGで考えるレベルデザイン
by
Katsumi Mizushima
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
by
小林 信行
オンラインゲームの仕組みと工夫
by
Yuta Imai
ゲームの楽しさを図式化する ―楽しさを網羅的に分類する「主体性構造モデル」
by
井戸 里志
고대특강 게임 프로그래머의 소양
by
Jubok Kim
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
by
강 민우
任天堂の呪いとナラティブについてバンナム編
by
Kawamura Yasuhisa
What's hot
PDF
Unityでオンラインゲーム作った話
by
torisoup
PPTX
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
by
Game Tools & Middleware Forum
PDF
ゲームAI入門(前半)
by
Youichiro Miyake
PDF
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
by
Daisuke Masubuchi
PDF
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
by
Sugimoto Chizuru
PPTX
ゲームの面白さを解明する ―構造化IRFモデルと自動ゲームデザインの未来―
by
井戸 里志
PPTX
UniRxでMV(R)Pパターンをやってみた
by
torisoup
PDF
게임제작개론: #2 세부 디자인 요소
by
Seungmo Koo
PDF
面白いゲームを作る方法
by
kosenconf012hachinohe
PPTX
ゲーム制作初心者が知るべき8つのこと
by
MASA_T_O
PDF
【Unity】 Behavior TreeでAIを作る
by
torisoup
PDF
UniTask入門
by
torisoup
PDF
ゲームの仕様書を書こう2 仕様書に記載する機能内容
by
Sugimoto Chizuru
PDF
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
by
narumi_
PPTX
도탑전기 분석
by
MooSeok Kang
PDF
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
PDF
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
by
Eunseok Yi
PDF
Unityと.NET
by
AimingStudy
PDF
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
by
Kwangyoung Lee
PDF
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
by
KLab Inc. / Tech
Unityでオンラインゲーム作った話
by
torisoup
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
by
Game Tools & Middleware Forum
ゲームAI入門(前半)
by
Youichiro Miyake
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
by
Daisuke Masubuchi
ゲームの仕様書を書こう4 仕様書作成で楽をするconfluenceの活用
by
Sugimoto Chizuru
ゲームの面白さを解明する ―構造化IRFモデルと自動ゲームデザインの未来―
by
井戸 里志
UniRxでMV(R)Pパターンをやってみた
by
torisoup
게임제작개론: #2 세부 디자인 요소
by
Seungmo Koo
面白いゲームを作る方法
by
kosenconf012hachinohe
ゲーム制作初心者が知るべき8つのこと
by
MASA_T_O
【Unity】 Behavior TreeでAIを作る
by
torisoup
UniTask入門
by
torisoup
ゲームの仕様書を書こう2 仕様書に記載する機能内容
by
Sugimoto Chizuru
個人開発でゲーム一本完成させるまでの苦難の道のり 〜企画編〜
by
narumi_
도탑전기 분석
by
MooSeok Kang
UE4でマルチプレイヤーゲームを作ろう
by
エピック・ゲームズ・ジャパン Epic Games Japan
NDC 2017 키노트: 이은석 - 다가오는 4차 산업혁명 시대의 게임개발
by
Eunseok Yi
Unityと.NET
by
AimingStudy
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
by
Kwangyoung Lee
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
by
KLab Inc. / Tech
適度に弱い敵aiの作り方
1.
適度に弱い敵AIの作り方 2015/07/25
2.
自己紹介 • 名前 ドドリゲス雄蔵(@dodoyuzo) • 職業 ゲームプログラマ
10年くらい • 言語 C/C++やC#を主に使用しています
3.
敵AIとは何か • ※この先、プログラムのコードは1行も出てきません
4.
敵AIとは何か ・アクションゲーム、RPG、シミュレーション さまざまなジャンルのゲームに登場する"敵AI“ ・ここでは、人間の代わりにキャラクターを動かし 人間の対戦相手を務めるプログラムを指します NPC 1P 2P 3P これ COM
5.
敵AIをどのようにプログラミングしますか? 条件式 行動 プレイヤーが3m以内にいる プレイヤーに対して近接攻撃 プレイヤーが10m以内にいる
プレイヤーに対して射撃攻撃 自分のHPが10%未満 味方を食べて回復する その他 プレイヤーを探す ・シンプルな実装方法 条件式とそれに合致した場合の行動を用意し 上から順番に条件式を評価します 優先順位、条件式、行動が明確で調整と実装がしやすいです 優先度
6.
敵AIをどのようにプログラミングしますか? ・この方法ではすべての敵AIが 条件さえ満たせば全く同じ行動をとってしまう問題もあります つまり、条件式によっては常に手加減無しの敵AIが出来上がってし まいます。 ・難易度によって敵AIをある程度弱くしたい場合 何かしらの対策が必要になります。 ・ではどうしたら、敵AIは弱くなるでしょうか?
7.
敵AIを弱くしたい A案.AIの更新処理を遅くする 敵AIの反応や行動が遅くなりますので、必然的に弱くなります ただ、"単に行動の遅い敵AI"にもなってしまいます 強いAI弱いAI 60F に 1回更新
1F に 1回更新
8.
敵AIを弱くしたい B案.難易度別に敵AIの条件式と行動を用意する ゲームバランスの調整もしやすい方法です 「条件さえ満たせば全く同じ行動をとってしまう問題」が残りますが ゲームルールによっては問題にならない場合もあります 条件式 行動 プレイヤーが3m以内にいる プレイヤーに対して近接攻撃 プレイヤーが10m以内にいる
プレイヤーに対して射撃攻撃 自分のHPが10%未満 味方を食べて回復する その他 プレイヤーを探す 条件式 行動 プレイヤーが3m以内にいる プレイヤーに対して近接攻撃 プレイヤーが10m以内にいる プレイヤーに対して射撃攻撃 自分のHPが10%未満 味方を食べて回復する その他 プレイヤーを探す 条件式 行動 プレイヤーが3m以内にいる プレイヤーに対して近接攻撃 プレイヤーが10m以内にいる プレイヤーに対して射撃攻撃 自分のHPが10%未満 味方を食べて回復する その他 プレイヤーを探す 難易度:イージー用 難易度:ノーマル用 難易度:ハード用
9.
敵AIを弱くしたい C案.AIの行動に弱点を用意しておく B案同様に難易度、もしくは敵キャラクターごとにAIを用意します プレイヤーがゲームプレイを繰り返し、敵AIの弱点を理解する事で 徐々にゲームの展開を有利に進められるゲームデザインを構築で きます パターンC ・4m以内にプレイ ヤーがいると逃げる パターンB ・2~3mのプレイ ヤーに対して攻撃し ない パターンA ・同じプレイヤーに対 して3秒に1回までし か攻撃できない
10.
敵AIを弱くしたい D案.AIはそのままで、敵のパラメータを弱くする HPや攻撃力を下げれば、弱くなります 敵AIが約束された動きをするので、それをプレイヤーが逆手にとっ て 有利に状況を進めるゲームデザインを構築できます Lv.1 HP 6
Lv.99 HP 999 AIは同じ弱い敵 強い敵
11.
敵AIを弱くしたい • A案.AIの更新処理を遅くする • B案.難易度別に敵AIの条件式と行動を用意する •
C案.AIの行動に弱点を用意しておく • D案.AIはそのままで、敵のパラメータを弱くする • これらはあくまで一例です。 上記のケースのいずれか もしくはその複合で求めていた結果を得られる場合もあります
12.
敵AIを弱くしたい しかし、上記のケースでは不十分な場合もあります。 もうちょっと自然に しかし露骨に手を抜いている訳ではないが、適度に弱くしたい それも、パラメータでは無くAIの動きで見せたい場合です。 以下の方法はあくまで一例です ゲームジャンルや実装方法によってベストな答えは違いますので こういうやり方もあるんだな、程度で見て下さい
13.
適度に弱いAIを作りたい • まずAIの取りうる行動を全て書き出します • 例えばコインを取る、相手を攻撃する、ゴールに向かう、などです コインを取る 相手を攻撃 ゴールに向かう
14.
適度に弱いAIを作りたい • 次にその行動にプライオリティを設定します • コインを集めるのがメインのゲームルールであれば "コインを取る"の行動のプライオリティを高めにします コインを取る 相手を攻撃 ゴールに向かう Priority
100 Priority 60 Priority 40
15.
適度に弱いAIを作りたい • ゲームルールにあわせて 相手を攻撃する、相手よりも先にゴールする、など プライオリティを調整します コインを取る 相手を攻撃 ゴールに向かう Priority 0 Priority
80 Priority 40
16.
適度に弱いAIを作りたい • 次にその行動を“どの程度、実行しやすいか?"を調べます • 具体的には対象物との距離を測り、有効距離内であればその割合 を算出します NPC
1.0 0.0 この範囲を有効距離とする 中心だと 1.0
17.
適度に弱いAIを作りたい • 例えば敵AIの近くにコインがあったとします。 これらをコインA、コインBとし、それぞれ距離が違うものとします この範囲を有効距離とする NPC この範囲を有効距離とする A B 0.5 0.2
18.
適度に弱いAIを作りたい • 同じコインでも、AよりもBの方が近いので “コインBを取る”という行動のプライオリティが高くなります NPC この範囲を有効距離とする A B 0.5 0.2 コインAを取る Priority 100
A 0.2 × = 20 コインBを取る Priority 100 B 0.5 × = 50
19.
適度に弱いAIを作りたい • こうして、その敵AIが取りうる全ての行動の プライオリティを算出して、高い順番にソートします 行動 プライオリティ コインBを取る
50 1Pを攻撃する 35 コインAを取る 20 挑発 10
20.
適度に弱いAIを作りたい • こうすると、一番プライオリティの高い行動が その状況で本来取るべき"最適な行動"になります。 つまり"強い行動"です 行動 プライオリティ コインBを取る
50 1Pを攻撃する 35 コインAを取る 20 挑発 10 強い
21.
適度に弱いAIを作りたい • では、2位以下はというと "その行動も間違えではないが、最適ではない"行動になります この順位が下がるにつれて、どんどん場違いな行動になっていきます 行動 プライオリティ コインBを取る
50 1Pを攻撃する 35 コインAを取る 20 挑発 10 大体あってる 間違いではない それは大きな ミステイク
22.
適度に弱いAIを作りたい • もうお分かりかと思いますが。 行動のプライオリティが1位のものだけではなく 2位未満の行動もたまに取るようにすると、敵AIは適度に弱くなっていき ます 行動 プライオリティ コインBを取る
50 1Pを攻撃する 35 コインAを取る 20 挑発 10 採用率70% 採用率15% 採用率10% 採用率5% 適度に弱い
23.
適度に弱いAIを作りたい • この手法のポイントは、2位以下の行動でも 人間であれば実行しても不思議ではないものが、ある点です 上位3つまで、など範囲を限定すれば、不自然さはだいぶ低くなります 行動 プライオリティ コインBを取る
50 1Pを攻撃する 35 コインAを取る 20 挑発 10 大体あってる 間違いではない それは大きな ミステイク
24.
適度に弱いAIを作りたい この方法に加えて 「A案.AIの更新処理を遅くする」を併用すると “反応はすこぶる早いけど、行動はデタラメ“ “実行するまで腰が重いけど、行動は正確“ といった特徴付けから 「反応も遅いし、行動もデタラメ」といった超弱いAIも作れます
25.
実装時のメリット ゲームルールに最適化されたAI 執拗に攻撃するAI ゴールに近づくプレイヤーを妨害するAI • AIに性格付けを行いやすくなります ゲームルールに基づいた行動のプライオリティを高くすれば ゲームルールに向いたAIになります 何か特定の行動のプライオリティを高くすれば ゲームルールを無視して、その行動を優先するAIになります
26.
実装時のメリット • AIの調整や別パターンを作成する場合でも 行動のプライオリティと有効距離割合の値を書き換えるのみで 処理そのものに手を加える部分が少なくて済みます AIの処理はとにかく複雑になりがちなので 数値パラメータにまとめられれば、調整が非常に行い易い
27.
向くゲームジャンル ・アクション ・対戦全般 本来は人間が操作するはずの部分を代行するNPCとしてのAIを使用 するジャンル 実行できる行動の種類が多いほど、優先順位の2位以下を 選択しても不自然に見えにくい
28.
向かないゲームジャンル ・シューティング ・RPG ・戦略シミュレーション AIの振る舞いをプレイヤーが理解、予測する事でゲームの展開を有利に 進める事ができるジャンル 行動の選択肢が少なくて、優先順位の2位以下の行動が目立つものや 詰将棋のように1ターン1ターンを計算して進めるジャンルなど
29.
総括 • 敵AIの作りは、ジャンルによって様々 • 強いAIは作れても、弱いAIは工夫しないと不自然に見えてしまう •
シンプルに実装できて調整しやすいのなら、それがベスト
30.
ご清聴ありがとうございました
Download