自動戦闘使ってますか?

ツクールMVの自動戦闘(デフォルト)使ってますか?

  • 使っている

    Votes: 12 52.2%
  • 使ってない

    Votes: 11 47.8%

  • Total voters
    23

しぐれん

ユーザー
ツクールMV用にAIプラグインを作成しているのですが、デフォルトのAIが思ったよりしっかりしているので「へー」って感じです。
気になったのですが、ツクールMVでゲームを公開している方で自動戦闘を使った方はいますか?
また使ったうえでの感想なども聞きたいです。
 
私としては自動戦闘はジョブチェンジのある作品で遊び人に使いたいのですが、いかんせんAIが小賢しくてマイナス効果のお遊びスキルを使ってくれないのでうまくいきません。AIをアホ(出鱈目にスキルを使う)に出来るといいんですけどね…。
 
しぐれんさん、こん**は。
僕は、「戦う、逃げる」の際に「自動戦闘」を追加したプラグインを作りましたが、
中身は、まんま、ツクールMVのデフォルト戦闘の行動決定関数を呼び出しているだけです。
これはあるゲームの移植のために作ったプラグインなのですが、
そのゲームでは、状態変化やBuff/Debuffより、ひたすらダメージを与えるのが中心のゲームだったため、
上手く機能しました。

しかし、適用するゲームによっては、数々の問題があります。
・2000の頃と同様なのですが、状態変化やBuff/Debuffが戦略に大きく左右するゲームでは、
なかなか効力を発揮してくれない
・効果に対する消費MPなどのコストを考慮していない。このため、メガンテやマダンテなどがあれば
真っ先にそれを使ってしまう。

このあたりは、自動戦闘を導入する作者が、自分が導入した技に対してカスタマイズするしかないと
思っていましたが、このあたりをある程度賢くできれば、かなりの進歩になると思います。

ただ、どうしても、ゲーム独自の技ってのは、いろいろ出てきてしまうため、
全てのゲームにおいて万能なAIってのは難しいと思うので、
どこまで踏み込むか、どこで踏みとどまるかを決めるのが、AIを賢くするなら、コツになるかな、って感じています。
 

しぐれん

ユーザー
1週間経過して、自動手動の切り替えは大体できそうなところで、ドラクエのAIレベルまで進化させる道筋を見つけました。
>猫次郎さん
戦闘中に任意に切り替えるのが必須ですね。

>アリコヒットさん
AIをアホにするプラグイン、これもありですね。
原理的には十分可能です。タスクリストに入れておきます。

>サスケさん
同様の事例のサンプルありがとうございます。
一番欲しかったデータです。

やはり追加効果を見ないのが問題ですね。
ただ、追加効果を見ようとすると追加効果を線形探索することになるので、事前にデータを保存するのが必須だと感じました。
これもプログラムとして自動化はできますが、できればビルド時に焼きこみたいですね。
 

フトコロ

ユーザー
こんにちは。

私も、ツクマテさんのところで、リクエストを受けて自動戦闘に関するプラグインを作成しましたが
HPダメージ技やHP回復技が、最も効果が高い相手を選ぶように旨く作っているなーという印象でした。
ただ、それ以外のスキルをまったく使用しない設定や、消費MPなどをまったく考慮しない内容には驚きでした。

まあ、私のプラグインでは、付与スキルとダメージスキルのどちらを選択するか決める部分にはかなり悩んで
結局、プラグイン使用者にお任せする方向で作ってしまいましたが。
 
フトコロさんへ
FTKR_AISkillEvaluateのヘルプで「評価値式」と「評価知識」の表記が混在しています。
検索したところ「評価値式」のほうが正しいようですが後者でもそれなりに意味が通ってしまいます。
修正をお願いできないでしょうか?

あともう一つ、創作工房さんのサンプルデータベースを使ってバフに関する実験を
していました。
そこで、ウェポンブレスに<ASE_評価値式:b.aseBuff(2)>を
アーマーブレスに<ASE_評価値式:b.aseBuff(3)>のタグをつけました
そうすると、スキルを発動した次のターンにCannot read property 'name' of nullの
エラーを吐きました。
ちなみに両スキルともに強化レベルがMAXになるようにし、効果範囲を
全体化してあります。
さらに調べたところ、すべての行動の評価値が0になってしまったときに
エラーを吐くようです。

また、この仕様の場合例えばウェポンブレスを覚えたキャラが複数いると
それらのキャラがウェポンブレスを同時に発動してしまい
行動が無駄になってしまいます。
人間が操作するのであれば、キャラごとに役割分担をさせられるのかも
しれませんが自動戦闘ではそうもいきません。
解決するためにはプレイヤーにあたる「司令塔」を設定するか
「前のアクターがそのスキルを使う予定か判定する関数」があれば
複数のキャラが同時に強化スキルを使うことは少なくなるのではないでしょうか。
 
最後に編集:

フトコロ

ユーザー
フトコロさんへ
FTKR_AISkillEvaluateのヘルプで「評価値式」と「評価知識」の表記が混在しています。
検索したところ「評価値式」のほうが正しいようですが後者でもそれなりに意味が通ってしまいます。
修正をお願いできないでしょうか?

あともう一つ、創作工房さんのサンプルデータベースを使ってバフに関する実験を
していました。
そこで、ウェポンブレスに<ASE_評価値式:b.aseBuff(2)>を
アーマーブレスに<ASE_評価値式:b.aseBuff(3)>のタグをつけました
そうすると、スキルを発動した次のターンにCannot read property 'name' of nullの
エラーを吐きました。
ちなみに両スキルともに強化レベルがMAXになるようにし、効果範囲を
全体化してあります。
さらに調べたところ、すべての行動の評価値が0になってしまったときに
エラーを吐くようです。

また、この仕様の場合例えばウェポンブレスを覚えたキャラが複数いると
それらのキャラがウェポンブレスを同時に発動してしまい
行動が無駄になってしまいます。
人間が操作するのであれば、キャラごとに役割分担をさせられるのかも
しれませんが自動戦闘ではそうもいきません。
解決するためにはプレイヤーにあたる「司令塔」を設定するか
「前のアクターがそのスキルを使う予定か判定する関数」があれば
複数のキャラが同時に強化スキルを使うことは少なくなるのではないでしょうか。
ご連絡ありがとうございます。
プラグインの誤記は修正します。

すべてのスキルの評価値が0になるとエラーの件は、その通りです。
そのため、ヘルプに注意として、常に実行可能なスキルを最低1つは設定するように記載しましたが、分かりにくかったでしょうか。

同一ターンでの、同じ効果の重複については、前のキャラが何を選択したかわかるようにしたほうが、やり易いですね。
 
最後に編集:
自分はSRPGコンバータMVを利用して制作している過程で、プラグインの製作者様が自動戦闘に対応できる様にしてくれた為、自動戦闘が出来るタップボタンを設置するやり方を基本として制作しています。

自分の場合はステートですが自動戦闘で色々試してみると、設置し忘れると思わぬ誤動作が生じる事があります。多分、通常の戦闘でも起こり得ると思います。

それはそのキャラが表示しているスキルタイプとは、別のスキルタイプのスキルを覚えていると自動戦闘で勝手に使用する場合。
→勿論、非表示にするスキルタイプを封印すれば、一切利用しません。
 
最後に編集:
「使っていない」ですね。

計算式にアイテム消費や獲得を入れるなど、
ちょっぴり高度なことをすると
行動の成果を計算する仕様に引っ掛かって
バグめいた挙動になるらしい、というのが使わない理由。
 
トップ