【RPGツクールMVプラグイン】スキルの効果範囲を拡張

2020年02月01日

 スキル(およびアイテム)の効果範囲を拡張するプラグインです。

 縦列、横列、円形、グループ、敵味方全体など様々な効果範囲を実現できます。
 初期状態のままでも多数の範囲パターンを使用できますが、独自追加も可能です。いわゆるレベル5デスなど、風変わりなスキルもこのプラグインで実現可能です。
 基本的にはサイドビュー用ですが、一部はフロントビューでも使えます。

 以下は紹介動画です。
 縦・横・円・十字・敵味方全体(使用者除く)などの範囲で魔法を使ってみました。ついでにレベル5デスもあります。
※画面が小さい場合は右下の全画面表示をクリックしてください。


  • 導入方法
  • 注意点
  • 更新履歴
  • 使用方法
  • パラメータ
  • 個別設定

    導入方法


     以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールMVのプラグイン管理から機能をONにしてください。

     NRP_SkillRangeEX.js ver1.011(2020/02/15)

    注意点


     当サイトにあるCTBおよびCTTBを導入している場合は、このプラグインをNRP_VisualTurn.jsよりも、上部に配置してください。
     そうしないと、拡張した範囲が行動順序リストの色変え対象になりません。

    更新履歴


    2020/02/12(ver1.01)

    • 作成中プラグインとの連携処理を実装。
    • アクターのサイズが0として計算される不具合修正。
    • ↑の修正が不完全だったので再修正。(ver1.011)

    2020/02/01(ver1.00)

    • 公開!
    • パーティ人数が3人以下だとエラーとなる不具合修正。(ver1.001)

    使用方法


     スキル(アイテム)のメモ欄に<RangeEx:[範囲]>を書き込めばOKです。
     初期状態で以下の範囲が使用できます。日本語でも英語でもどちらでも構いません。

    • vertical(縦)
    • horizontal(横)
    • group(グループ)
    • circle(円)
    • cross(十字)
    • line(直線)
    • around(自分周辺)
    • all(敵味方全員)
    • allOther(自分以外)
    • lv5(LV5の倍数)

     例1:<RangeEx:縦>
     例2:<RangeEx:vertical>

     エディタ上で設定する範囲は基本的に単体系のものを使います。ただし、全体範囲を使った特殊なスキルも作れます(詳細は後述)。
     以下、各範囲の詳細です。

    <RangeEx:縦> or <RangeEx:vertical>

     縦列範囲を対象にします。

    20200201_fireWall.JPG

     エディタ上で設定した範囲が『単体』の場合、選択した対象と同じ列にいるキャラも巻き込みます。
     以後、選択した対象を『主対象』。巻き込まれた側を『副対象』と記述します。
     対象選択時の範囲に含まれていれば、副対象も色が変わります。

     位置が『画面』のアニメーションを指定した場合、主対象と同一のX座標を中心に表示します。

     エディタ上で設定した範囲が『全体』の場合、最前列にいる主対象を強制で選択します。前列しか攻撃できないスキルが作れます。

     正確な巻き込み範囲は主対象のX座標から±40ピクセルです。数値は変更可能です。

    <RangeEx:横> or <RangeEx:horizontal>

     主対象とその横列上にいる相手を対象とします。

    20200201_thunderbolt.JPG

     要領は縦列とほぼ同じです。
     位置が『画面』のアニメーションを指定した場合、主対象と同一のY座標を中心に表示します。

    20200201_animatioon.JPG

     こんな感じで中央から左を範囲としたアニメーションを作ればいい感じになります。もちろん敵が使う場合はちゃんと左右反転されます。

     エディタ上で設定した範囲が『全体』の場合、最下段にいる主対象を強制で選択します。下段しか攻撃できないスキルが作れます。
     まあ、サイドビューでは用途不明なんですけどね。奥行きのあるフロントビューでの前列攻撃とかに使えませんかね?

     正確な巻き込み範囲は主対象のY座標から±40ピクセルです。

    <RangeEx:グループ> or <RangeEx:group>

     いわゆるドラクエシリーズのアレ。同一IDの敵キャラをまとめて対象とします。対象が味方の場合は単なる全体スキルです。
     配置が離れていても、同種の敵は同グループ扱いです。

    20200201_group.JPG

    <RangeEx:円> or <RangeEx:circle>

     主対象を中心とした円内にいる相手を対象とします。

    20200201_circle.jpg

     正確な巻き込み範囲は主対象から半径100ピクセルです。縦横100ピクセル以上のデカブツが主対象だと範囲が画像内に収まるため、何も巻き込めません。

     範囲を『全体』にすると、最も近くにいる相手を主対象とします。使い道は謎ですが、こういうこともできるというサンプルです。

    <RangeEx:十字> or <RangeEx:cross>

     主対象と同一の縦列&横列にいる相手を対象とします。

    20200201_cross.JPG

     前述の縦と横の範囲をくっつけたものです。

    <RangeEx:直線> or <RangeEx:line>

     行動主体と主対象を通過する直線上にいる相手を対象とします。
     投擲っぽいアニメーションを作れれば使い道もあるかも。

    <RangeEx:自分周辺> or <RangeEx:around>

     行動主体を中心とした円内にいる相手を対象とします。

     20200201_around.JPG

     正確な巻き込み範囲は行動主体から半径250ピクセルです。
     なお、対象がいないとアニメーションも何もなしで不発します。

     この範囲は主対象を使用しないため、エディタ上の範囲は『全体』にしたほうが自然かもしれません。この下の三項目も同様です。

    <RangeEx:敵味方全員> or <RangeEx:all>

     敵味方全員を対象とします。

    <RangeEx:自分以外> or <RangeEx:allOther>

     上の範囲からスキル使用者を除いたものです。

    <RangeEx:LV5の倍数> or <RangeEx:lv5>

     レベル5の倍数の相手を対象とします。これでレベル5デスもバッチリ再現できます。
     なお、初期状態では味方対象専用です。敵を対象にしてもレベルがないため意味をなしません。

    パラメータ


     上記だけで十分に利用可能ですが、当プラグインはパラメータによって独自範囲の追加も可能です。
     上級者向けの内容も含まれますが、ご了承ください。

    範囲一覧(rangeList)

     範囲を定義した一覧です。既存の設定を編集したり新しい範囲の追加が可能です。
     以下は範囲に含まれる項目です。

    名前(name)

     名称です。
     識別用のメモ書きとして作った項目ですが、メモ欄での指定にも使えます。

    識別子(id)

     スキル(アイテム)のメモ欄から呼び出す際に使う識別子です。

    範囲条件(rangeIf)

     範囲を定める条件式(JavaScript)です。

     例えば範囲『縦』だと、
    40 >= Math.abs(b.x - c.x)

     というように、定義されています。

     これは主対象(b)と副対象(c)のX座標を引き算し、その差が40ピクセル以下ならば副対象を巻き込むという意味です。
     Math.abs()というのは絶対値を求める関数です。つまり「(b.x - c.x)が-40〜40の範囲にあるかどうか?」ということ。

     40の数値を変えれば、範囲を広げたり狭めたりできます。難しいという人も、それだけ分かれば十分です。

     範囲『横』だと、以下の通りです。
     『縦』のxをyに変えるだけかと思いきや、少し違います。
    40 >= Math.abs(b.y - b.height / 2 - (c.y - c.height / 2))

     長くなって嫌な感じですが、これは画像の高さ(height)によってY座標の基準点を調整しているためです。
     というのも、戦闘キャラ画像のY座標は足元が基準になっています。画像の中央を基準とするように調整すると、こういう式になります。

     長くなるためその他の条件式については割愛します。
     これ以外の数式も範囲の広さや半径などは数式の先頭付近に記述しています。調整したい場合はそこをいじってください。
     円の数式とか凄いことになっていますが、最初の数値が半径です。それだけ理解すれば支障ありません。

     また、上述の数式では使用していませんが、行動主体の座標は『a』で参照可能です。
     ただし、この数式で使用する『a』『b』『c』はスキルの計算式で使用するものとは、中身が異なることにご注意ください。実体はスプライト(画像情報)なので、座標や画像幅の状態などしか持っていません。

     では、レベルや攻撃力などいつもの情報(バトラー情報)を参照したい時はどうするかというと……。
    c._battler.level % 5 == 0

     というようにやります。
     上記は『LV5の倍数』で使用している範囲条件です。
     『c._battler』というように記述すれば、バトラー情報を参照できます。

     ちなみに『% 5』というのは、5で割った余りという意味です。

    画面アニメのX座標(screenAnimationX)

    画面アニメのY座標(screenAnimationY)

     画面対象アニメーションを表示するX座標およびY座標です。
     それぞれ指定しないと通常の全体アニメーションと同じ位置に表示されます。

     例えば範囲『縦』のX座標は以下の通りです。
    b.x

     対して、Y座標は空のままです。
     これはX座標は主対象と同位置、Y座標は通常の全体アニメと同位置に戦闘アニメーションを表示するという意味です。

    全体時の主対象条件(mainTargetAllIf)

     エディタ上で範囲を『全体』に指定した場合、この条件に従って主対象を選択します。『全体』を使わない場合、および主対象を条件にしない場合は不要な項目です。
     
     例えば範囲『縦』だと以下の通りです。
    c1._battler.isEnemy() ? c1.x > c2.x : c1.x < c2.x

     これは副対象(c1, c2と定義)を比較しあって、最も条件に合う対象を求めています。

     対象が敵の時はX座標が最も大きな対象(最も右)、そうでない場合は最も小さな対象(最も左)という意味です。これによって、範囲『全体』を選んだ場合に強制で前列を選択するようにしています。

     ……あまりピンとこないと思いますが、分からなくともさして問題ありません。正直、前列対象技を作るぐらいしか用途はないので。

    敵味方の区別をしない(noSide)

     ONにすると敵味方を無差別に対象とします。
     『敵味方全員』や『自分以外』はこれによって実現しています。

    個別設定

     以下のタグをスキル(アイテム)のメモ欄に記入すれば、個別の設定も可能です。
     例えば『レベル5の倍数』など一つしか使わないような設定の時に。また、呼び出した範囲の一部だけ条件を変えたい場合などにも使えます。

    • 範囲条件:<RangeExIf:[条件]>
    • 画面アニメのX座標:<RangeExAnimationX:[座標]>
    • 画面アニメのY座標:<RangeExAnimationY:[座標]>
    • 全体時の主対象条件:<RangeExMainTargetAllIf:[条件]>
    • 敵味方の区別をしない:<RangeExNoSide:[true or false]>

     >RPGツクールMV目次に戻る
  • posted by 砂川赳 at 20:13 | RPGツクールMV | このブログの読者になる | 更新情報をチェックする

    【RPGツクールMVプラグイン】敵キャラの通常攻撃の戦闘アニメを設定する

    2020年01月27日

     サイドビューにおける敵キャラの通常攻撃の戦闘アニメを設定するプラグインです。
     設定には特徴の『武器タイプ装備』を使います。

    20200126_claw.JPG

    初めに


     RPGツクールMVの初期状態(サイドビュー)では、敵の通常攻撃の戦闘アニメがありません。
     設定するには通常攻撃っぽく見せかけた個別のスキルを作ったり、YEP_BattleEngineCoreなど特定のプラグインを導入する必要があります。

     前者は打撃、斬撃など戦闘アニメ分のスキルが必要です。また、技名を非表示にしたければ、そのためのプラグインも必要となります。YEP_BattleEngineCoreは影響の大きいプラグインのため、必ずしも全てのユーザが使える方法ではありません。

     ……などなど、意外と初心者には敷居が高く、中上級者にとっても面倒です。

     そんなわけで、特徴の『武器タイプ装備』によって通常攻撃の戦闘アニメを判定させるのが、このプラグインです。
     敵の『武器タイプ装備』はデフォルトだと全く無意味な項目ですが、このプラグインを導入すれば剣なら剣、槍なら槍というように戦闘アニメを設定できるようになります。

  • 導入方法
  • 更新履歴
  • パラメータ
  • 個別設定

    導入方法


     以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールMVのプラグイン管理から機能をONにしてください。

     NRP_EnemyAttackAnimation.js ver1.00(2020/01/27)

     プラグインパラメータに『武器タイプ装備』に対応するアニメーションを設定します。初期状態ではデフォルトの武器タイプに対応するそれっぽいアニメーションを設定しています。ただし、元が元なのでパターンが少ないです。
     打撃、斬撃、刺突、爪、銃撃の5種類しかないって少なすぎませんかね? 武器タイプは無駄に12種類もあるのに……。

     詳細は下記のパラメータを参照してください。

    20200126_enemyAttackAnimation.JPG

     こんな感じで敵の特徴欄に『武器タイプ装備』を設定すれば、通常攻撃にアニメーションが表示されるようになります。
     
     元々、アクター用の項目であるため、イメージに合うものがない可能性もあります。その場合はクチバシなら槍、触手ならムチというように近いものを使うか、追加で定義を増やすとよいでしょう。一応、個別に設定する機能(下参照)もあります。

     ちなみに武器タイプはデータベースのタイプで設定できます。

    更新履歴


    2020/01/27(ver1.00)

    • 公開開始!

    パラメータ


    各武器タイプ装備の設定(weapons)

     各武器タイプ装備ごとにアニメーションの設定を行います。
     リスト形式になっており、ダブルクリックで内容が表示されます。

     なお、敵の武器タイプ装備が未設定なら、リスト先頭のものが使用されます。(素手のアニメーションを想定)
     不要なら先頭のアニメーションは『0:なし』に設定してください。

     以下、リスト項目の内容です。
     リストに新しい項目を追加することも可能です。パターンを増やしたい場合はどうぞ。

    武器タイプ名(name)

     武器タイプ名です。
     プラグイン画面用のただのメモです。分かりやすいように名前をつけてください。

    アニメーションID(animationId)

     武器タイプに対応するアニメーションを指定します。

    再反転(reMirror)

     アニメーションをさらに左右反転するかどうかの設定です。
     ※敵のアニメは元々反転される仕様です。ONにするとさらに反転して、元の向きに戻ります。基本はOFFで問題ありません。

    個別設定


     以下のタグを敵キャラのメモ欄に記入すれば、個別設定も可能です。
     イメージの合う武器タイプがない。あるいはボス敵など固有の戦闘アニメを使いたいという場合はどうぞ。

    <AttackAnimation:[アニメーションID]>

     例:<AttackAnimation:10>で、10番のアニメーションを再生します。

     >RPGツクールMV目次に戻る
  • posted by 砂川赳 at 19:23 | RPGツクールMV | このブログの読者になる | 更新情報をチェックする

    【RPGツクールMVプラグイン】各種モーション時間(+歩行時間)の調整

    2020年01月26日

     サイドビュー戦闘における各種モーション時間を調整するプラグインです。
     ついでに前進・後退時間も調整可能です。

    20200126_motionTime.jpg

    初めに


     RPGツクールMVの初期状態では、前進・武器振りなどのモーション時間が全て12/30秒(=0.4秒)に設定されています。
     対するデフォルトの斬撃のアニメーションは5/15秒(10/30秒)。わずかに武器を振り遅れた感があります。
     その程度なら気にならないと思いますが、これが6/30秒などの短いアニメだったら、はっきりと振り遅れが分かるかと思います。

     しかしながら、モーション時間は全て12/30秒に固定。そのため、武器振りだけ速くしたいといった調整が困難です。
     そこで18あるモーションそれぞれに対して、個別にモーション時間を調整できるようにしたのがこのプラグインです。

     ついでに行動時の前進・後退動作の時間も調整できるようにしました。
     デフォルトだとやや遅い感じを受けるので、初期値の12から8ぐらいまで短縮するのが個人的にはオススメです。

     歩行時間もモーションも、いずれも1/30秒単位でかかる時間を設定します。

  • 導入方法
  • 更新履歴
  • パラメータ

    導入方法


     以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールMVのプラグイン管理から機能をONにしてください。

     NRP_MotionTime.js ver1.00(2020/01/26)

    更新履歴


    2020/01/26(ver1.00)

    • 公開開始!

    パラメータ(基本設定)


    モーション時間の初期値(defaultTime)

     指定がない場合に適用される時間の初期値です。
     各モーション項目をブランクにすると、この値が適用されます。

    パラメータ(各種モーション時間)


    前進(コマンド待ち)(walk)

     前進時のモーション時間です。
     MVのヘルプでは『前進』となっていますが、実際にはコマンド待ちや後退時もこのモーションのようです。

    通常待機(wait)

     通常待機時のモーション時間です。
     正確にはコマンド入力後の待機状態を指します。

     ……後は大体そのまんまなので、解説を省略します。
     (すみません、面倒臭くなりました。)

    詠唱待機(chant)

    防御(guard)

    ダメージ(damage)

    回避(evade)

    突き(thrust)

    振り(swing)

    飛び道具(missile)

    汎用スキル(skill)

    魔法(spell)

    アイテム(item)

    逃げる(escape)

    勝利(victory)

    瀕死(dying)

    状態異常(abnormal)

    睡眠(sleep)

    戦闘不能(dead)


    パラメータ(移動時間)


    前進時間(stepForward)

     行動時に一歩前へ出る際の所要時間です。
     MVの初期値は12です。8ぐらいにしておくとオススメ。

    後退時間(stepBack)

     行動終了時に後ろへ戻る際の所要時間です。
     MVの初期値は12です。8ぐらいにしておくとオススメ。

     >RPGツクールMV目次に戻る
  • posted by 砂川赳 at 10:15 | RPGツクールMV | このブログの読者になる | 更新情報をチェックする