![見出し画像](https://assets.st-note.com/production/uploads/images/148320533/rectangle_large_type_2_ebd27555f709d7ba8ae7af6f587921b0.png?width=1200)
戦闘AIを作る(概要)
RPG風味の周回ゲームを制作しています。戦闘シーンをしっかり実装しました。
実装内容
戦闘シーンの大きな実装は以下の3つです。このうちエフェクトの再生と順序管理は以前に実装しました。1年前だといま気づいて少し震えています。
今回:シーン実行前のアセットのプリロード
今回:戦闘AI(行動の自動決定)
(済):戦闘のエフェクト類の再生、および再生順序の管理
今回はプリロードと戦闘AIに手を付けました。
実装の中身(別サイト)
実装の中身の記事はBloggerに掲載します。今回は図に加えて数式も多いので…
プリロード:https://symbolicgarden.blogspot.com/2024/06/battlepreload.html
戦闘ログ生成とログ再生(ビューワ)の分離
アセットのプリロードとシーン遷移のシーケンス
ログのヤード変換(モジュール間の情報の変換)
戦闘AIを作る:https://symbolicgarden.blogspot.com/2024/07/battleAI.html
戦闘AIの方針:行動と対象の組を確率値に応じてランダムで選択
単純ベイズ分類器の枠組みを使用
所持行動と行動の好み
対象のフィルタ
選択素性と素性関数
実装コード
確率計算
モデルデータ(CSVファイル)のインポータ
雑感
単純な構成ですがキャラ同士の戦闘ができるようになったので、これでゲームシステムのインフラがまた一つ整いました。
コード実装は今年(2024年)6月にはおおむねできていたのですが、記事を更新する体制を整えるのにとても時間がかかりました…。
具体的には表を書きやすくするためのマークアップ表記とその処理系を作ったりしてました。markdownだと表がどうも書きづらくて。マークアップ処理系の実装のよもやま話もいずれ書ければと思います。