開発日誌

テクニック

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 任意のセルフスイッチを消去

2020-08-24 22:55:43

自分で使うプラグインをRPGツクールMZ向けに作成していっています。

イベントコマンドでセルフスイッチを操作するのは、そのイベントもしくはそのイベントから呼び出されたコモンイベントでしかできませんが、宝箱や扉の状態をリセットするなど、イベント外からセルフスイッチを操作したいというケースはよくあります。

VXやVX Aceの頃はスクリプトで都度記述していましたが、MVからプラグインコマンドが登場したお陰で、より簡単に記述することができるようになり、さらにMZでプラグインコマンドの仕様がより使いやすくなりました。

というわけで作りました。

※2025-01-05追記:
不具合修正および「セルフスイッチのON」もできるようにしました。詳細は「任意のセルフスイッチをONに」をご覧ください。

このプラグインを導入すると、「セルフスイッチの消去(Reset Self Switches)」のプラグインコマンドが使用できます。

対象のマップID、イベントIDを数字で、対象のセルフスイッチをA-Dで指定すると、該当のセルフスイッチをOFFにすることができます。

マップIDに0を指定すると全てのマップ、-1を指定すると現在のマップが対象になります。

イベントIDに0を指定すると対象マップの全てのイベントが対象になります。

対象セルフスイッチを空欄にするとA-D全てのセルフスイッチが対象になります。

ミニゲームなどでよく必要になる、特定のマップの全てのセルフスイッチをOFFにする、といったことが簡単にできるようになります。

ごく基本的な機能なので、より高機能なものが探せば既にあるかもしれませんが、探すのがめんどk……プラグイン制作の勉強も兼ねて自分で作ってみました。

いったんは必要最低限の機能のみ。今後さらに拡張して、対象マップの番号を変数で指定するとか、マップやイベントの名前やメモ欄に特定の文字列があるもののみを対象にするとか、OFFだけじゃなくてONにもできるとか、柔軟な指定が可能になるといいかなと思っています。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。プラグイン素材の利用条件についてはMITライセンスとしています。丸パクリなどでなければ基本的に利用は自由です。このサイトについての「提供素材について」の項目なども併せてご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 文章中にアイテムや敵キャラ等の名前を表示

2020-08-22 12:41:50

天下御免!からくり屋敷』の歴史編制作と並行して、RPGツクールMZも触っていこうと思っているので、さっそく自分で使いそうなプラグインを作ってみました。

MZ用に作ったものですが、試したらMVでも普通に動作しました。

「文章の表示」コマンドやアイテム等の説明文で、以下の制御文字をそれぞれの名前に置き換えてくれるプラグインです。

\class[n] n番の職業名
\skill[n] n番のスキル名
\item[n] n番のアイテム名
\weapon[n] n番の武器名
\armor[n] n番の防具名
\enemy[n] n番の敵キャラ名
\troop[n] n番の敵グループ名
\state[n] n番のステート名

\item[\V[1]]のように、nに変数を用いることも可能です。この場合、1番の変数に格納されているID番号のアイテム名が表示されます。

さらに\*skill[n]のように頭に*を付けると、そのスキルのアイコンを表示できます。item、weapon、armor、stateも同様です。もちろんclass、enemy、troopは、*を付けてもアイコンは表示されません(付けてもエラーにはなりません)。

具体的な使い方は以下の通り。

上のように書いておくと、下のように表示されます。

こうしておけば、アイテム名や敵キャラ名を後で変更した時に、台詞もいちいち変更して回る必要がなくなるので、非常に便利だと思います。

プレビューだと正しく表示されないのですが、実際のゲームではちゃんと置き換わって表示されます。ウィンドウの横幅からはみ出さないようにご注意ください。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。プラグイン素材の利用条件についてはMITライセンスとしています(英文を考えるのが面倒くさかったから)。丸パクリなどでなければ基本的に利用は自由です。このサイトについての「提供素材について」の項目なども併せてご覧ください。

[ テクニック ] マップ講座(5) 自然地形の鉄則(2) 直角を避ける

2020-08-18 21:39:34

前回に引き続き、洞窟や川など自然の地形をキレイに作るための鉄則を解説します。

  • 直線をなるべく避ける
  • 直角をなるべく避ける
  • 対称をなるべく避ける

以上の3つのうち、今回は2つ目。直角をなるべく避けるについて解説します。

1つ目の直線と同様に、自然の地形が直角になることは少ないです。

もちろんこれも前回同様、RPGツクールはマス目が基本なので、デフォルトのタイルセットではどうしても直角になってしまいますが、その点は除外して考えてください。

今回は洞窟の壁で考えてみましょう。まずは壁の天井にあたる部分を輪郭としてフリーハンドで描きます。左側が入口で行き止まりとなる洞窟の小部屋をイメージしました。

繋がっていない部分を修正しつつ、壁面と地面を描き入れました。最初の段階では右端が狭まった形をしていましたが、壁面の2マスと地面の1マスで、合わせて3マス分を空けておかないと、ちゃんとした地形にならないので注意です。

ここで、2マス×2マス以上の辺で作られる角は、直角に見えます。

なので、角を削って2マス×2マスの辺ができないようにします。

これで直角はなくなり、最初に比べてかなり自然になりましたが、右の先端部分がいかにも削って整えました感を出していて、不自然さが残ります。

不自然さの原因は、ここが鋭角になっているせいです。

直角と同様に鋭角も、避けた方が自然です。もともと左右の端は壁面と地面で合わせて3マス分を空ける必要があるため、フリーハンドで描いた地形をもとに調整すると、どうしても鋭角が形成されやすくなります。

こういう場合は、右端を思い切って1マス削ってしまうのがお勧めです。

これで右端もスムーズな弧を描き、自然な地形になりました。

最後の欲を言うと、左下の部分です。ここは、1マス×1マスの辺が4マス続いており、45度の斜めの直線が見えてしまいます。

こういう場合は、どこか1カ所を1マス×2マスの辺にしてやれば、直線感がなくなります。

これで、自然な洞窟の小部屋を作ることができました。

ポイントは、2マス×2マス以上の辺を作らないことです。1マス×1マス、1マス×2マス、1マス×3マスなどの辺を組み合わせて、自然なカーブを描くようにしていけば、直線や直角を避けて自然な地形を作ることができます。

洞窟の壁だけでなく、川や森林でも同じことです。

鉄則を押さえて自然な地形を作っていってください!

[ テクニック ] マップ講座(4) 自然地形の鉄則(1) 直線を避ける

2020-08-15 15:06:08

マップ制作講座の第4回。

今回は特に、洞窟や川など自然の地形をキレイに作るための鉄則を解説します。

その鉄則とは、以下の3つです。

  • 直線をなるべく避ける
  • 直角をなるべく避ける
  • 対称をなるべく避ける

もちろんRPGツクールはマス目が基本なので、よほど凝らない限りは直線や直角ができるのですが、そういうことではありません。あくまでデフォルトのマス目タイルの範囲で、自然なマップを作ることも目的としていますので、ご注意を。

今回はそのうちの1番目。直線をなるべく避けるについて解説します。

まず、自然の地形はあまり一直線を形作ることがありません。形成時の力の作用や風化・浸食などによって、ランダムな曲線を描くのが普通です。

マップを作る際も、そのことを念頭に置いて描くと、自然な地形が描けます。

試しに、川を横に引いてみましょう。まずは一直線に引いてみます。

まったく自然ではありませんね。人工的に引いた用水路のようです。

これを自然な川に見せるためには、いい感じに蛇行させてあげればよいのですが、そのいい感じってのをどうすればいいんだよって話ですね。

まずは、フリーハンドで川を引きます。

なるべく一直線にならないよう、波線を描くように引くといいです。スケールを1/4(25%)ぐらいに縮小すれば引きやすいと思います。まずは深く考えずに引きましょう。途中で川が切れたり太くなったりするのは、気にしなくて構いません。

だいたいのラインが引けたら、途中で切れたり太くなったりしている部分を修正します。

これで十分、自然な川になりました。

しかし、欲を言うともうひとつ。波線の下端と上端が、一直線上に並んでしまっています。

こういう揃っているラインが見えると自然な感じが薄れます。より自然な川を目指すなら、できるだけ揃わないようにしましょう。

というわけで、右側の下端と上端を1マスずつ下にずらしてみました。

これでだいぶ自然に蛇行する川ができました。

ポイントは、まずフリーハンドで引くことです。こうすれば直線を避けることは難しくありません。最初にフリーハンドで大体の形を引いて、途切れたり重なったりした部分を修正すれば、それだけでもOKです。

それに加えて、端のラインが揃わないように気を付けることがポイントです。隣のカーブと上下左右の端が揃わないように、ずらしてあげましょう。

今回は川で解説しましたが、森林や洞窟の壁などでも同じです。

鉄則を押さえて自然な地形を作っていってください!

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] お行儀良く寝ましょう

2020-08-09 22:48:30

和風マップチップの豪華なお布団って、横に2マス分ありますね。

ここに一人を寝かすと、布団の左右どちらかに寄ってしまって、見栄えが良くありません。

そんなにこだわらなくても、という気もしますが、シリアスなシーンでは、そういう突っ込み甲斐のある部分はできるだけ避けた方が無難です。

というわけで、ちゃんとお布団の真ん中で寝てくれるように直しました。

具体的にどうしたかと言うと、専用のキャラクターチップを作って対処しました。

専用キャラチップは、横幅が通常の2倍になっており、そのうち左右どちらかにキャラを寄せた形にしています。

キャラクターチップは置いたマスの下端中央が基準になるので、こうすれば布団の中央にキャラを寝かすことができます。

しかし、ここで問題がいくつか。

2マス分の布団のうち、イベントが設置されているのは左右どちらかだけになるので、このままだと話しかけたりした場合に片方でしかイベントが発生しませんし、反対側から話しかけようとすると顔の半分を踏んづけてしまうことになります。

というわけで、もう片方にも通行不可の空のイベントを設置して、同じイベントが発生するようにしました。これだとセルフスイッチとかは使えなくなるので、スイッチやコモンイベントを多用することになりますが。

これでちゃんと布団の中央で寝てくれるようになりましたが、今度は目が開いたままなのが気になってきました。

特に死に別れのシーンなどでは、「目を開けてくれ!」などの台詞も飛び出しているのに、キャラは目が開いてるじゃん、というのもオマヌケな感じです。これはキャラチップを加工して、閉じた目のキャラ画像にしました。この程度なら何とかできます。

さらに、フキダシアイコンは元のマスが基準になるので、このままだとずれて表示されてしまいます。

これはスクリプトを作って対処しました。相変わらずRPGツクールVX用ですが、スクリプトを公開します。

指定した番号の変数にX座標・Y座標の調整値を代入しておくと、その分だけフキダシアイコンがずれて表示されるようになります。X座標だけで十分でしたが、ついでなのでY座標も調整できるようにしました。表示後に変数の値を0にするのを、忘れないようにしてください。

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

簡易な実装なので、いくつか制約があります。

調整は同時に表示されているフキダシアイコン全てに適用されます。特定のキャラのフキダシアイコンのみを調整することはできません。また、調整値の変数はフキダシアイコンが消えるまで保持しておかないといけません。「フキダシアイコンの表示」コマンドの直後で調整値の変数を0に戻すと、調整値が反映されなくなってしまいます。必ずフキダシアイコンが消えるまで待ってから、調整値を戻しましょう。

うーん……。

最初はお布団の真ん中でお行儀良く寝かせたいだけだったのに、一つを直したことによって連鎖的に他の部分も直す必要が出てきてしまうという。まさに角を矯めて牛を殺す状態になるため、ある程度のところで割り切るのが必須だと思いました。