開発日誌

プラグイン/スクリプト

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 足踏み・歩行アニメの速度を速める

2025-09-07 22:31:12

キャラクターの足踏みアニメと歩行アニメの速度を速めて、キャラが走っているように見せるプラグインを公開しました。

RPGツクールMV/MZ両対応です。

よくあるイベントで、キャラクターが走り去って行く、あるいは駆け寄って来るようなイベントを考えます。

イベントコマンドの「移動ルートの設定」で、移動速度をデフォルトの3(1/2倍速)よりも速い4(標準速)や5(2倍速)に変更してから移動させるのが普通ですが、これだと今イチ走っているように見えません。

滑り歩いているように見えるデフォルトの挙動

原因は歩行のアニメーション速度が遅いせいです。

移動の速度に比べて歩行アニメーションの速度が遅いために、走っているというより水平移動しているような違和感があります。

移動速度と足踏み・歩行アニメのグラフィック切り替え頻度は決まっていて、以下のような対応になっていると、最近X(旧twitter)でポストがありました。

出典:はらお絵描き丸
移動速度 かかるフレーム数
1マス移動 歩行アニメ 足踏みアニメ
1(1/8倍速) 128 16 24
2(1/4倍速) 64 14 21
3(1/2倍速) 32 12 18
4(標準速) 16 10 15
5(2倍速) 8 8 12
6(4倍速) 4 6 9

これを見ると違和感の正体がわかります。

移動速度は1段階上がるたびに倍々で速くなっていくのに対して、歩行アニメの方はそこまで速くなりません。特に5(2倍速)の時は1マスの移動で1歩分の歩行アニメーションであり、これが滑り歩いているように見える原因と思われます。

足踏みアニメと歩行アニメの切り替えフレーム数がどうなっているかは、コアスクリプトを見ればすぐに分かり、以下のような計算式で求められます。

足踏みアニメ切り替えフレーム数 = (9 - 移動速度) * 3

歩行アニメ切り替えフレーム数 = 足踏みアニメの 2/3

そこで、この計算式を変えられるプラグインを作りました。

「移動ルートの設定」の「スクリプト」でthis.startRunning();と記述すると、以降で歩行と足踏みのアニメーション切り替え速度が速くなり、this.stopRunning();と記述すると元の速度に戻ります。

イベントコマンドの「移動ルートの設定」だけでなく、自律移動の「カスタム」におけるルート設定の中でも使用可能です。

またルート設定中でなくとも、通常のイベントコマンドの「スクリプト」でも使用可能です。その場合はthisの部分を$gameMap.event(1)などとして、対象のマップイベント(キャラクター)を指定してください。

変更後の計算式は以下の通りです。

足踏みアニメ切り替えフレーム数 = (7 - 移動速度) * 3

歩行アニメ切り替えフレーム数 = 足踏みアニメの 2/3(変わらず)

歩行アニメの切り替えフレーム数が4(標準速)で6、5(2倍速)で4となり、ちゃんと走っているようなアニメーションに見せることが可能です。

一瞬だし細かい部分なのでそこまで気にするほどのことはないかもしれませんが、走り去ったり駆け寄って来たりといったシーンは割と緊迫感のあるシーンなので、できれば違和感は避けたいものです。

歩行アニメだけでなく足踏みアニメも速くなるため、走るシーンだけでなく歓声に沸く群衆やはしゃぐ子供といった表現でも使えるかと思います。

ただ試してみると分かりますが、かなりちょこまかとした動きになってしまうこともあり、実際の動きを確認しながらのご利用をお勧めします。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 飛行船の影を消す

2025-08-01 18:01:09

飛行船の影の表示・非表示を切り替えられるプラグインを公開しました。

切り替えをプラグインコマンドで行う都合上、RPGツクールMZ専用となります。

※ 2025-08-21追記:プラグイン導入前のセーブデータで始めるとデフォルトで影が表示されない不具合を修正しました

デフォルトだと遠景にも影がついてしまう

ツクールの乗り物の1つである飛行船は、乗り込むと地面に影が描画されます。

これはごく自然な描写であり、標準でこの機能が備わっているのは非常にありがたいことです。

しかし、はるか高い上空を飛んでいる場面や、遠景の上を通過するようなシーンなど、影があると不自然に見えてしまうケースも存在します。

飛行船の影は img/system/Shadow1.png の画像が使われるので、飛行船の影は常に非表示でよい、という場合にはこの画像を透明なものに差し替えるという手もありますが、状況によって影を付けたり消したりしたいというケースには、標準で実現できる手段はありません。

飛行船の影が消せる!

このプラグインを導入すると、飛行船の影の表示・非表示をプラグインコマンドで切り替えることができます。

プラグインコマンドの「飛行船の影を消去」で影が消え、「飛行船の影を表示」で表示されるという、ごく単純なものです。デフォルトは影が表示されている状態です。

例えば遠景の有無で影の有無を切り替えたい場合、並列処理で「指定位置の情報取得」を使ってプレイヤーの位置のタイルID(レイヤー1)を取得し、その値が0(レイヤー1が透明=遠景が見えている)であれば飛行船の影を消去、そうでなければ影を表示、とすれば簡単に実現できます。

特別なイベントシーンで、影を自前で制御したい場合にも便利です。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 画面シェイクの永続化

2025-07-30 20:39:55

画面のシェイクを永続化できるプラグインを公開しました。

RPGツクールMV/MZ両対応です。

以前にRPGツクールVX用に公開した「画面シェイクの永続化スクリプト」のMV/MZ版プラグインで、基本的な使い方は当時と同じです。

時間を999フレームに設定し、「完了までウェイト」のチェックを外す

このプラグインを導入し、イベントコマンドの「画面のシェイク」で時間を999フレーム(設定できる最大値)、「完了までウェイト」のチェックを外すと、画面を永続的にシェイクさせられます。

シェイクを直接的に停止する方法はありませんが、時間を1フレームなど、ごく短い時間に設定した「画面のシェイク」コマンドを実行すれば、そこでシェイクがストップします。

地震や建物の崩壊といった演出で画面を揺らしたい場合、途中でメッセージの表示やプレイヤー操作を入れると、通常のシェイク設定では時間切れでシェイクが止まってしまいます。

このプラグインを使えば、操作中でも揺れ続ける演出が可能になります。

ただ、ずっと画面が揺れ続けているというのはけっこう目が疲れるものなので、揺れの強さを弱めるとか、イベントの時間を短くするなど、適度な演出バランスにご配慮ください。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 身代わり・反撃・魔法反射でのTP獲得を無効に

2025-07-25 00:08:06

身代わり、反撃(カウンター攻撃)、魔法反射においてTPを獲得するかどうかを制御できるプラグインを公開しました。

RPGツクールMV/MZ両対応です。

RPGツクールの標準仕様では、以下のようにTPが獲得されます。

  • 攻撃者:使用したスキルやアイテムに設定された「得TP」を獲得
  • 被弾者:受けたダメージに応じたTPを獲得

この時、身代わりや反撃、魔法反射といった攻撃者や被弾者が変わる場合のTPについては、それぞれ以下のようになっています。

身代わり
  • 元の攻撃者:使用したスキルやアイテムに設定された「得TP」を獲得
  • 元の被弾者:TPは獲得しない
  • 身代わり者:受けたダメージに応じたTPを獲得
反撃
  • 元の攻撃者=反撃の被弾者:反撃で受けたダメージに応じたTPを獲得
  • 元の被弾者=反撃者:通常攻撃の「得TP」を獲得
魔法反射
  • 元の攻撃者=反射の被弾者:使用したスキルやアイテムに設定された「得TP」と反射で受けたダメージに応じたTPを獲得
  • 元の被弾者=反射者:TPは獲得しない

本プラグインを導入すると、上記のそれぞれのケースにおいてTPを獲得するか否かを個別に設定できます。

なお、上記の「TPは獲得しない」と記載されたケースで新たにTPが獲得できるようにはなりません。あくまで、標準仕様では獲得できるTPを獲得しないように変更できるだけです。

身代わりや反撃はTP消費特技として設定されていることも多く、身代わりや反撃でTPが得られてしまうと、消費したTP以上のTPが獲得できる場合もあり得ます。

また魔法反射は仕様上、反射された側に使用時のTPとダメージによるTPが両方とも入るため、TP獲得量が多すぎる可能性もあります。

本プラグインを使えば、TPの過剰獲得を抑えて、より計算された戦略的な戦闘バランスが実現できるでしょう。

なお自作品である『王国の英雄』では、身代わり者と反撃者のTP獲得をOFF、それ以外はONとしています。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 混乱付与・解除時の行動を改善

2025-07-24 00:49:55

混乱や激昂、魅了といった強制攻撃系のステートが付与・解除された時の、そのターン内の行動をより適切にするプラグインを公開しました。

RPGツクールMV/MZ両対応です。

※ 2025-09-12追記:混乱無効などのステートを付与すると、混乱が付与されていなくても行動がキャンセルてしまう不具合を解消しました。

ツクールの標準仕様では、混乱など行動制約が「敵/誰か/味方を攻撃」であるステートが付与された場合、そのターンでは攻撃が行われず、次のターンから混乱行動が開始されます。

また自分の行動順が回って来る前にステートが解除されると、通常攻撃が予定されたまま敵をランダムに攻撃してしまいます。

これは、混乱系ステートがかけられた際に予定の行動が通常攻撃で上書きされず、治った際にも予定の行動(通常攻撃)がクリアされないために起こる挙動です。

そういうものと割り切ってしまえばいいのかもしれませんが、混乱させられても次のターンで治せばほぼ無害なため、戦闘がぬるくなる要因となっています。

このプラグインを導入すると、こうした挙動が以下のように改善されます。

  • 混乱など行動制約が「敵/誰か/味方を攻撃」であるステートが付与された場合、同一ターン内で行動順が回って来た際にも、制約に従って敵や味方を通常攻撃します。
  • ステートが解除された場合は予定行動をキャンセルして、そのターン中は通常攻撃を行いません。

またツクールの標準仕様では、混乱中に睡眠など行動制約が「行動できない」であるステートが付与されると、予定行動がキャンセルされず、同一ターン内で解除された際に通常攻撃が発動してしまう問題がありますが、本プラグインはこの点も改善します。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。