開発日誌

テクニック

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] ダミーのタイルを透明にする

2025-09-18 17:53:50

指定した地形タグを持つマップチップ(タイル)を実際のゲーム画面で非表示(透明)にするプラグインを公開しました。

RPGツクールMZ専用です。

ダミータイル

過去記事「透明タイルや空イベントを使ったツクールの小技」で、透明のダミータイルを置いて通行設定を制御する小技を紹介しました。

すなわち、そのままでは通行できてしまうところに通行設定を[×]にした透明のマップチップを上のレイヤーに置いて通れなくしたり、逆に本来は通行できないところに通行設定[○]の透明チップを置いて隠し通路や特殊な通行設定を実現したりする方法です。

この方法には欠点があって、透明のタイルであるため置いてあることが目に見えない点です。変なところにダミータイルが残っていても、まず気付きにくいです。

それの対策として、制作中は透明ではなく○や×などの記号を入れておく方法も、当該記事内で紹介していますが、リリース時にタイルセット画像を差し替えるのが面倒ですし、差し替えるのを忘れると目も当てられません。

それを解決する方法として、ダミータイル非表示プラグインを公開しました。

これを使えば、ダミーの透明タイルも安心して設置できます。

プラグインの使い方

使い方は簡単で、まずタイルセット画像はダミータイルに分かりやすい記号を入れて作ります。

次にデータベースの「タイルセット」で、非表示にしたいダミータイルに任意の「地形タグ」を設定します。ここでは仮に1番の地形タグを設定します。

そしてプラグインパラメータの「非表示地形タグ」で、先ほど設定した地形タグの番号を指定します。

以上の設定で、指定された地形タグを持つタイルは、実際のゲーム画面では非表示(透明)になります。

一方で、ツクールのエディタ上では元の画像のままなので、エディタ上ではダミータイルの存在が分かるようになるのと、実際のゲーム画面では見えないようになるのが、これで両立できます。

▲ 通行不可にしたいところに×のダミータイルを設置。実際のゲーム画面では非表示に。

本プラグインは見た目だけ非表示にするもので、タイルの通行設定はもちろん、茂み属性やダメージ床の効果は維持されます。

また、地形タグはリスト形式で複数指定が可能です。

なお、通常のマップタイルだけでなく、イベント画像にタイル画像を利用した場合でも同様に、実際のゲーム画面では非表示になります。

地形タグ

地形タグを使う都合上、他の用途で地形タグを使い切っている場合は利用できませんので、ご注意ください。

また、番号に空きがあったとしても、他の用途と併用ができるかは、他の用途におけるプラグインやイベントの作りに依存します。一応、本プラグインでは他との併用がしやすいように、地形タグは複数指定可能にしてあるので、うまく活用してみてください。

なおこの「地形タグ」というのは、ツクールの数ある機能の中でもマイナーかつ特殊な立ち位置の機能です。

地形タグはマップチップに0~7の8つ(実質7つ)の番号の1つを割り当てることができ、プラグインやイベントコマンドの「指定位置の情報取得」で取得して使うことができますが、ツクールでは珍しい、本来の用途が定められていない機能となっています。

似たような機能に「リージョン」がありますが、地形タグは直接マップチップと紐付くため、特定のチップに対して何か処理を定義したい時に便利です。

詳しくは過去記事「地形タグで滑る床を実現」もご参照ください。

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

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

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としています。

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