1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

「攻撃」などのステータスについて質問です。

カワセミ2018-09-06に開始した「ゲーム制作」の中の討論

  1. カワセミ

    カワセミ ユーザー

    例えば
    ・「攻撃」が高いとクリティカル率があがる
    ・「素早さ」が高いと行動回数が増える
    のような、ステータスの高さによって能力が増えるようなシステムを作りたいのですが、
    作り方が分かりません。
    教えていただけたら幸いです。
     
    #1
    リンクス がいいね!しました
  2. 猫二郎

    猫二郎 ユーザー

    素早さが高いと行動回数が増やしたいのなら、ターン制ではなく、ATB制にすれば行動回数増えます。

    攻撃力が高いとクリティカル率が上がる仕組みなら、単に武器自体に装備条件が設定できるプラグインを利用したらどうでしょうか?
    そうしたら、攻撃力高いキャラにクリティカルが高い武器を装備する事ができますよ。そういう種類のプラグインが二人程、作っていたような気がします。
     
    #2
    カワセミ がいいね!しました
  3. カワセミ

    カワセミ ユーザー

    ありがとうございます。
    武器を持っていない素の状態で「能力が高いとついてくるおまけ」みたいなものを考えていたのですが、
    ツクールのシステム的に難しいのであれば、戦闘のシステム自体を考え直す必要がありそうですね。
    装備条件が設定できるプラグインを探してみようと思います!

    ATBはちょっと個人的に苦手なので(慣れない)また別の方法を考えます。
     
    #3
  4. ネコタ

    ネコタ ユーザー

    こんにちは。
    ツクールでやる方法が無いわけではないと思いますが、すこぶる面倒そうな予感しかしません。

    システムを作るための方向性として、パッと思いつくことは、
    ・まず、素の状態というのを割り出す方法が必要
    ・次に、攻撃力などの数値を条件分岐に落とし込む方法
    ・追加能力の付与タイミングは?
    ・ステータス画面には上がった能力値を表示するかどうか?
    これくらいでしょうか。

    ステータス画面の能力値表示はプラグインが必要そうですが、それ以外はやろうと思えばできそう。
    ただし、追加能力付与のタイミングは、戦闘終了直後(レベルアップ後)になるか、常時(ただし、メニューからマップに戻ってきたとき)になると思います。


    まず、素の状態を割り出す方法です。

    変数には、アクターのステータスを放り込むことができます。変数>代入>ゲームデータ>アクターからパラメーターを指定できます。

    これだと、多分、武器防具も含んだ能力値になると思いますので、ここから装備している武器の能力値を減算する必要があります(試してないので、武器防具の能力値を含んでなかったらごめんなさい)。

    武器防具の能力値を減算するためには、何を装備しているかの条件分岐が必要なので、条件分岐>アクター>装備で条件分岐を作ります。そして、最初に代入した変数から、その装備の能力値分の定数を設定して減算します。これを、全てのアクター、全ての装備で条件分岐と変数計算を作っていきます(超面倒くさい。たぶん、挫折しそう)。

    これで、裸の状態でのステータスが割り出せますので、その変数を条件分岐に、ステート追加を行います。

    指定するステートで、攻撃回数を追加するなり、会心率を上昇させるなりすれば、そのステートにかかっている限り能力値が付与されます。


    もし、何らかのギミックで、獲得した能力を失うことがあれば、今度はこれの逆を行わなければならないので、同様に指定ステータス以下の条件分岐を組んで、ステートを外す処理を作ります。


    で、最後に。これら一連のイベントを起動させる条件を考えなければなりませんが、戦闘開始時に適当なスイッチをONにし、コモンイベントの方にこの一連のイベントを仕込んで、自動実行、条件スイッチ○がONにすれば、戦闘終了直後(レベルアップしてステータスアップした後)に起動させることが出来ます。

    常時監視する方法としては、この一連のイベントを並列処理に仕込んでおいて、例えば15フレームごとにステータスを監視します。アイテムなどを使ってステータスが上がったときにも対応できますが、(変数の処理だけなので、ひとつひとつは非常に軽い処理ではあるものの、処理工程が膨大になりそうなため)多少重くなるかもしれません。

    常時でなくても、都度であれば、コモンイベントの起動スイッチをアイテムなりイベントなりに仕込んでも良さそう。重さ対策にはなる。


    以上がざっと思いついた工程になります。
    参考になれば、幸いです。

    (ごめんなさい。考えはしましたが、ステータス管理のところで素のステータスを引っ張ってこれない場合、イベントで作るのは気が遠くなりそう。なので、私はやめときます)
     
    最後に編集: 2018-09-07
    #4
  5. カワセミ

    カワセミ ユーザー

    ありがとうございます。
    武器の数が少ないゲームだとできなくもなさそうですが、多くなると処理で大変そうですね……。
    参考にさせていただきます!
     
    #5
    ネコタ がいいね!しました
  6. WTR

    WTR ユーザー

    素のステータスを割り出す方法として
    装備を強制的に解除してしまう、というのも手かもしれません。
    現在の装備武器防具のIDを保存しておいて装備解除。
    素のステータス取得して、保存しておいたIDを使って装備を復元する。

    イベントコマンドだけで出来たか確信がないですが、手段はあるはずです。
    そんなスクリプト書いた記憶があるので。
    装備による条件分岐を網羅するよりははるかに楽だと思います。
     
    #6
    カワセミネコタ がいいね!しています
  7. カワセミ

    カワセミ ユーザー

    ありがとうございます!
    装備のIDの取得はやったことがありませんが、やってみたいと思います。
     
    #7
  8. しぐれん

    しぐれん ユーザー

    装備品による影響を除外した数値なら、actor.paramBase(ステータス番号)で取れますね。
    ちょっとプラグイン作ってみます。
     
    #8
    ネコタ, カワセミリンクス がいいね!しています
  9. カワセミ

    カワセミ ユーザー

    ありがとうございます!
    ステータス番号で取れるんですね、試してみます。
     
    #9
    リンクス がいいね!しました
  10. しぐれん

    しぐれん ユーザー

    (これプラグイン作らなくても解決できる流れ?)
     
    #10
    カワセミ がいいね!しました
  11. カワセミ

    カワセミ ユーザー

    まだ試していないのでなんとも……。
     
    #11
  12. シトラス

    シトラス ユーザー

    一応私は
    クリティカルや回避などの確率を再定義するプラグイン・LuckEffectExtendと
    素の能力を算出するプラグイン・nakedParamを作ったことはあります。
     

    添付ファイル:

    #12
    カワセミ がいいね!しました
  13. カワセミ

    カワセミ ユーザー

    気付くのが遅くて申し訳ありません……。 素の能力のプラグインの方をちょっと試させていただきます。
     
    #13
    シトラス がいいね!しました

このページを共有