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
IZUN∀
May 26, 2019
Technology
3
1.9k
ゲームAIの開発やってた時 敵AIを作るとき考えてた事
ZUN∀がコンシューマゲーム開発時代とソシャゲ開発時代に学んだ
開発に関する諸先輩から教わった知識や
開発中に見つけた知見を出せるレベルにしたものです。
IZUN∀
May 26, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
GitHub Copilot のテクニック集/GitHub Copilot Techniques
rayuron
37
15k
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
110
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
190
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
880
コンテナセキュリティのためのLandlock入門
nullpo_head
2
320
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
120
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
250
Qiita埋め込み用スライド
naoki_0531
0
5.1k
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
110
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
170
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Facilitating Awesome Meetings
lara
50
6.1k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
520
The Invisible Side of Design
smashingmag
298
50k
Done Done
chrislema
181
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Faster Mobile Websites
deanohume
305
30k
Site-Speed That Sticks
csswizardry
2
190
Thoughts on Productivity
jonyablonski
67
4.4k
What's in a price? How to price your products and services
michaelherold
243
12k
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スクリプト+レベルデザインの仕事してたとき 登場するマップ、シーン側の構造やアイテムなどの配置に合わせた敵の配置 プレイヤーが「やってみたくなる倒し方」「タイミングよく爽快感がでる倒し方」の準備ができ るようにマップ構造に合わせて敵の配置 ボスキャラの場合倒した後のムービーにつながるような倒し方ができるように マップや、その時持っている武器、またはやっているだろう戦い方を考慮して誘導できるよ うなビヘイビアツリーの調整と評価パラメーターの調整 ・キャラのイメージや設定に合わせた先読みの深さ、予測の範囲のパラメータ調整