Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ゲームAIの開発やってた時 敵AIを作るとき考えてた事
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
IZUN∀
May 26, 2019
Technology
2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ゲームAIの開発やってた時 敵AIを作るとき考えてた事
ZUN∀がコンシューマゲーム開発時代とソシャゲ開発時代に学んだ
開発に関する諸先輩から教わった知識や
開発中に見つけた知見を出せるレベルにしたものです。
IZUN∀
May 26, 2019
Other Decks in Technology
See All in Technology
ゼロをイチにする仕事が終わったあと
smasato
0
320
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
150
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
3k
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.3k
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
150
最近評価が難しくなった
maroon8021
0
260
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
570
Kotlin 開発のツラミを爆破した話! / Explode the difficulty of Kotlin dev!
eller86
0
160
Making sense of Google’s agentic dev tools
glaforge
1
120
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
290
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
360
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
We Are The Robots
honzajavorek
0
270
Claude Code のすすめ
schroneko
67
230k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
270
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Six Lessons from altMBA
skipperchong
29
4.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
180
Transcript
ゲームAIの開発やってた時 敵AIを作るとき教わった事 考えた事、やってきた事 気づいた事 IZUN∀
なにこれ? IZUN∀がコンシューマゲーム開発時代とソシャゲ開発時代に学んだ 開発に関する諸先輩から教わった知識や 開発中に見つけた知見を出せるレベルにしたものです。 なのでどこの現場でなどの話はありません。 今回はゲームAIで敵AIを作るときのお話です。技術的な話は少なめ どんな事考えてる面白いゲームAIを作ろうとしていたかの話です。 もっと深いことなら三宅さんの「人工知能の作り方」を読むといいかも
注意 スライドの内容は今から7~8年位前に仕事で教わったことや気づいたことです 今の環境にあっているかはわかりません。単純にメモとして公開してます プログラマだけではなくレベルデザイナー、マップイベントスクリプたとして仕事をしてき たこともあるのでそのへんも一緒に書いてます 思い出した事とか、ツッコミがあったら多分修正入ります。
必要な要素だけでは終わらない リアルさ、演技、反射、集団での行動 基本的によくある4つの要素があるが、これだけで敵AIは面白くはならない ゲームの表現が上がるとともに敵の表現も上がっていることを考える その場、その時、そしてその相手となるプレイヤーの動きから どのような役割として振る舞うと面白くなるのかまで考える必要もある モブだってドラマはあってもいいじゃない
ただ思考を作るだけがゲームAIの開発ではなかった ▪知性に関して、知能に関しての演算周りだけだと思ったらそうじゃなかった ・ビヘイビアツリーのパラメータを調整するだけじゃない ・動き、環境利用、敵としてのイメージ、などを考えてあげる ・そのキャラにとっての”自然な思考と行動”を作る (モーション、エフェクトや一部レベルデザインまで関わることがあった) ・性格とか魂とかってどう表現して面白くさせる?を考えようぜ
敵のAIを作る時に気をつけてた事 1 ・行動と外見イメージが合っているのか パッと見で”この外見だとこんな事してくるだろう”から大きく外れると 不気味になったりする ・その行動をする意味は? なぜその行動を行ったのかプレイヤーがわからない動きも不気味 無駄な動きと、全くいらない動きは違う
敵のAIを作る時に気をつけてた事 2 ・いやらしさ過ぎる状態になっていないか? 先読みのやり方や、ビヘイビアツリーのゆらぎが常に有利を取りに行ったり と言うか、いやらし過ぎると楽しくない。 ”難しいけど楽しい”には理由がある ・できることをちゃんと全部やれているのか? そのキャラが今できる事をやるやらないに関しての理由がプレイヤーから見て 不明確過ぎるのも不気味につながる
敵のAIを作る時に気をつけてた事 3 ・プレイヤーと戦っている環境は理解してるのか? 優勢、劣勢、自然環境まで含めてある程度プレイヤーが後からでも理解できる 行動じゃないことするとただのおバカに思えて来るときがある 難易度などに合わせているなら良いけど、そうじゃないところでやると 違和感になったりするからそのへんも調整しようねー イメージと合わせるてるなら良いけど、それとは別なら考えておこう
プレイヤーを楽しませる事ができるAIを目指して ・最終的に勝つのはユーザーでも簡単に勝たせるわけじゃない ・その敵キャラの役割はなんなのか? ・かっこいい負け方、面白くする負け方は何? ・敵AIを作ってるというより、actor作ってるってことを考えよう モブだろうが役者なんですよ。
敵キャラの動きを変わる時 ・戦っているのならニュートラルポジションにはならないでいるのも正しい プレイヤーとかゲーム中で命のやり取りするのになんでボーッとしてりするのさ ・”できそう”と思えているのならやらせてみたほうがいい それがキャラのイメージに合ってることもある。または許されるギャップとして 賑やかしになることもあるから実装して意見聞いたりするのは良い クイック過ぎるモーション変換でもキャラの攻撃の仕方、外見などから 問題ないことがあるから試してみるのはあり
ゲームAIプログラマだった時にやってた仕事内容 ・ビヘイビアツリーの処理の最適化、並列周り ・先読み、予測の精度の調整 ・担当キャラに適したIKの実装 ・担当キャラに適したモーション補間処理の実装 ・細かい関節の動きや予備動作系のモーションをプログラム側から実装 ・集団行動の際にどのような仲間と行動しているかをシーン内の環境に応じて最適に行動 させるように。単純に不要なツリーを呼んだりしないようにの最適化 ・性格に応じたゆらぎの対応 ・キャラが発するエフェクトやモーションの見栄えを整えたり
AIスクリプト+レベルデザインの仕事してたとき 登場するマップ、シーン側の構造やアイテムなどの配置に合わせた敵の配置 プレイヤーが「やってみたくなる倒し方」「タイミングよく爽快感がでる倒し方」の準備ができ るようにマップ構造に合わせて敵の配置 ボスキャラの場合倒した後のムービーにつながるような倒し方ができるように マップや、その時持っている武器、またはやっているだろう戦い方を考慮して誘導できるよ うなビヘイビアツリーの調整と評価パラメーターの調整 ・キャラのイメージや設定に合わせた先読みの深さ、予測の範囲のパラメータ調整