Dear!くろうどぃあ!

このブログでは、私、くろうどの趣味に関する事を記述します。
当面は、「RPGツクールMV」をメインにします。

最も簡単に作るルーレット【RPGツクールMZ】

2023-09-22 15:13:49 | RPGツクールMZ
こんにちは。くろうどです。
今回はプラグインを使わずにルーレットを作ってみたので紹介したいと思います。
スクリプトは使ってますけどね。

まずは、こちらの動画をご覧ください。

それではルーレットを作っていくのですが、ペイントソフト等を使って以下を用意する必要があります。
  • ルーレット画像
  • ポインター画像(ルーレットを指す針)
この時、ルーレット画像は角度がいくつの時にどの場所を指しているか分かるようにしておいてください。
今回は円を4等分した画像を使いましたので、90度ごとに場所が変わります。

要するに、円(360度)を割り切れる値で等分したルーレット画像がよいでしょう。

画像の準備できたらRPGツクールのイベントを作るだけです。
以下の画像をご覧ください。

今回はプレイヤーがSTOPさせるモノではなくランダム時間で勝手に止まるようにしました。
ウエイトの17フレームはテキトーな値です。

重要なのは、変数の操作をしている以下の部分です。
◆変数の操作:#0176 Roulette 角度 = $gameScreen.picture(21).angle()
◆変数の操作:#0176 Roulette 角度 %= 360
ここでスクリプトを使っています。
回転させたピクチャ(今回は21番)の角度(angle)を変数176番に入れています。

この時、角度は回り続けた分だけ増えています。
つまり、360より大きくなることがあります。

そこで、角度を360で割った余り(剰余)を算出しています。

今回のルーレットは実はこれだけです。

あとは、用意したルーレット画像に合わせて角度ごとの処理を行うだけです。
実に簡単でしたね。

ルーレット画像を用意するのが一番大変ですね……。
drawCircleみたいな関数でルーレット作れれば楽でしょうね。
それではまた。


「エリア感知センサー」プラグインを作ったよ【RPGツクールMZ】

2023-09-20 12:52:35 | RPGツクールMZ
今回は、KRD_MZ_AreaSensor (エリア感知センサー)プラグインについて書きたいと思います。

この「エリア感知センサー」プラグインでは、
  • イベントから指定マス数以内にプレイヤーがいるかどうか
  • イベントから指定マス数以遠にプレイヤーがいるかどうか
をチェックするための関数を提供するプラグインです。

関数を提供するプラグインなので、プラグインコマンドではなく、条件分岐コマンドの「スクリプト」にJavaScriptを記述する形で使います。

また、「移動ルートの設定」の中の「スクリプト」でも使えます。

上手く使えば「チェイス系ミニゲーム」や「だるまさんがころんだ」を作ることができます。

このプラグインで感知できるのは縦横含めたマス数なので、3マスの場合は以下の画像の灰色の床タイルが範囲内となります。


このエリア感知イベントの作り方の例としては、
  • 並列処理にする
  • 条件分岐で「エリア感知センサー」プラグインの関数を使う
  • (この例では this.sensePlayer(3) という記述で関数を使っています)
となります。


高度な使い方としては、「自律移動」を「カスタム」にした場合の「ルート」の設定で、
if (this.senseOutPlayer(6)) $gameSwitches.setValue(19, false)
※プレイヤーが6マス以遠の場合、スイッチ19番をOFFにする。
のように、「スクリプト」欄にif文を書くことも可能です。

この「エリア感知センサー」プラグインのダウンロードは以下のリンク先(GitHub)からどうぞ。
それではまた。