プラグイン:自動戦闘みたいに、自分で判断するAIを作りたい

高望み侍
記事: 6
登録日時: 2021年9月17日(金) 09:08

プラグイン:自動戦闘みたいに、自分で判断するAIを作りたい

投稿記事by 高望み侍 » 2021年9月17日(金) 09:39

初めまして、高望み侍です。
ハードルが高いことを聞いているとは思いますが
自分で判断するAIのようなものを作ってみたいと思っています。

ゲームAI – 基礎編(2) – 『はじめてのエージェントベースアーキテクチャ』
上記タイトルのサイトのように、NPCに自分で判断させて行動させたいです。

そこで、自動戦闘のように評価値を用意します。
・オブジェクトの位置を把握するもの
・ゴール
・ゴールの座標、移動方法
・ゴールに行った時の動作(アニメーション)
・サブゴール
・欲求
色んな情報をもとに判定して行動させたいと思っています。

rpg_objects.jsのファイルを元に考えていけば出来るのかと思ったのですが
スクリプト解析のサイトを見てなんとなく動きは分かりましたが
Game_Actor*
Game_Action*
Game_Battler* など様々な所を参照?しており、作るのが大変そうだと思ってます。

プラグインのような形で作れたらいいなと思ったのですが
rpg_objects.jsを転用して作ることは出来るのでしょうか?
参考になりそうなサイトがあれば教えてください。
よろしくお願いします。

アバター
Plasma Dark
記事: 669
登録日時: 2020年2月08日(土) 02:29
連絡を取る:

Re: プラグイン:自動戦闘みたいに、自分で判断するAIを作りたい

投稿記事by Plasma Dark » 2021年9月18日(土) 03:59

マップ上で、特定の目的を持つNPC(イベントキャラクター)が、目的達成のための評価値を計算しながらマップ上を移動したり、対象キャラクターが目的を達した場合にふきだしアニメーションなどを表示するような仕組みを作りたいという要件で合っているでしょうか。
できるとは思いますが、関連コードの理解を深めるためにもう少し簡単なものから作ってみることを推奨します。

Game_Actor, Game_Action, Game_Battler いずれもマップ上のイベントの挙動に直接関わるものではなく、今回の目的を達するために読む必要はなさそうです。
(オートバトルでは確かに行動ごとの評価値に応じて取るべき行動を決定していますが、それ以上深く読んだところで今回の目的達成に寄与することはないように思えます)

MVにデフォルトで組み込まれているイベントの自律移動の仕組みは、 Game_Event.prototype.updateSelfMovement 辺りからコードを追うことで理解できます。
もし私が自律移動を拡張したいと思った場合、当該メソッドをフックして簡単な独自の自律移動タイプを定義するようなプラグインを書くところから始めてみます。
(例えば、メモ欄に <toNearPlayer> と書かれたイベントは、常にプレイヤーから2マス右のマスに向かう、等)

不慣れな方にはこれでも難しいと思うので、もっと簡単なものから書いてみても良いと思います。

いずれにせよ、目的となるNPCの移動ルーチン拡張のためには Game_Event クラスの大まかな仕組みを理解しておく必要はあります。
コードを読む上で参考になるのは下記のサイトですね。
http://tonbi.jp/Game/RPGMakerMV/004/
https://katai5plate.github.io/RPGMV-Cor ... Event.html
高望み侍
記事: 6
登録日時: 2021年9月17日(金) 09:08

Re: プラグイン:自動戦闘みたいに、自分で判断するAIを作りたい

投稿記事by 高望み侍 » 2021年9月19日(日) 11:44

Plasma Dark様

回答ありがとうございます。丁寧にありがとうございます!
おっしゃる通りの動作をさせたいと思っています。

参考サイトありがとうございます。確認します。

どのように目的を決めるのか、評価周りについて
自動戦闘AIからわかるかなと思ったのですが、少し複雑だったので混乱してました。
やはり何を作るにしても一番最初の最初、まずは動かしてみるのが大事ですね。

ほかの方が作った、自律移動関係や、特定位置まで移動するプラグインを参考にさせてもらいつつ
元のツクールのjsも勉強しつつ作ろうと思います。

“MV:質問” へ戻る