ランダムにアイテムを取得するプラグイン

らんだむダンジョンがすごい好きで周回要素ないのに50時間ぐらいかかるのを2週プレイした。
らんだむダンジョンはランダムにアイテムが手に入る宝箱がある。今回はそれを実装した。
ツクールのデフォルトの機能でも実現できるけど、結構面倒くさいので、簡単にできるプラグインを作る。

ランダムに手に入る宝箱

いろいろ仕様を考えたんだけど、こういう仕様にしたい。

  1. ランダムに手に入るアイテム群を設定できる(ダンジョンごとに異なるアイテム群を設定できる)
  2. アイテムごとに異なる確率を設定できる
  3. できるだけ設定しやすく、1と2を実現する

ランダムに手に入るアイテム群を設定できる

まず1だけど、参考になるのはデフォルトにあるガチャのプラグイン。
あれはどうやってアイテムを設定しているかというとプラグインコマンドで以下のようにしている。

1
2
Gacha add item 5
Gacha add armor 1

これでもいいんだけど、IDとか調べてやるのちょっと大変。
この際、アイテム選択があるコマンドを乗っ取ることにした。ショップコマンドだ。
ショップコマンドはアイテムをGUIで選択できるので設定しやすくて良い。

ショップコマンド

アイテムごとに異なる確率を設定できる

次に2番。つまりレアなアイテムは出にくくしたい。ショップコマンドはアイテムごとに価格を設定できる。
ちょうどいいので、この価格を確率にしてしまおう。
くじの本数だと考えてほしい。例えば、アイテムが3つあって、アイテム1=10、アイテム2=10、アイテム3=1だったとする。
こうすれば、くじの本数が1本しかないアイテム3は出にくくなる。

確率

確率一覧

導入方法

まず、プラグインがこれ
導入したら、まずプラグインコマンドで RandomTreasure reset を実行する。
このコマンド直後のショップ処理で登録したアイテムがランダムに手に入るアイテム群となる。ショップは開かれない。

設定プラグインコマンド

そして、次に宝箱側の設定だ。プラグインコマンドで RandomTreasure get を実行するとランダムに1個手に入る。
メッセージウィンドウに手に入れたアイテム名を表示したいときは以下のようなスクリプトを書く。

1
2
3
var item = $gameSystem.lastRandomTreasure;
$gameMessage.add("\\i[" + item.iconIndex + "]" + item.name + "を手に入れた");
this.setWaitMode('message');

宝箱側のプラグインコマンド

ランダムに取得

ライセンス

MIT
自由にご利用ください。

ASCIIアートフィルターを試す

すごい用途に困るフィルターを見つけた。これ。よく見て欲しいんだけど、全部ASCIIアートになる。

導入方法はまず、Githubのpixi.jsにあるpixi-filtersレポジトリからfilters.jsをダウンロードする。
下記URLのbin/filter.js がそうです。
https://github.com/pixijs/pixi-filters/tree/publish
これをMVのプラグインフォルダに放り込む。
そして、スクリプトコマンドから下記を実行すれば実現する。

1
2
var filter = new PIXI.filters.AsciiFilter();
SceneManager._scene.filters = [filter];

まあ、ここまではネタなんだけど、まじめな話、フィルターはいろいろあって使えそうなのもある。
ここここで試せるフィルターは実装すれば使えるはず。
特に今、必要としてないから試さないけど・・・。

TweenプラグインのTorigoya_Tween.jsが便利

ウィンドウをアニメーションさせたく、updateメソッド内でちまちま動かしていた。
しかし、さすがに汎用性に欠けるし、コードが複雑になりすぎる。
jQueryのanimateメソッドみたいな、UnityでいうiTweenみたいなプラグインないかなと思っていたら、まさにそのとおりのがあった。
鳥小屋.txtさんのTorigoya_Tween.jsだ。

例えば、以下のようなスクリプトでこんな感じのアニメーションができる。

1
2
3
4
5
6
7
8
9
10
11
var height = 200;
var window = new Window_Base(0, Graphics.height, Graphics.width, height);
window.opacity = 0;
SceneManager._scene.addWindow(window);
var toY = Graphics.height - height;
Torigoya.Tween.create(window)
.to({y: toY - 20, opacity: 255}, 15, Torigoya.Tween.Easing.easeOutSine)
.to({y: toY}, 5, Torigoya.Tween.Easing.easeInSine)
.wait(60)
.to({opacity: 0}, 60, Torigoya.Tween.Easing.linear)
.start();

超便利。すばらしー。

easingがどんなのかわからないときは、ここが参考になる。

全てのアイテムを取得するプラグイン

デバッグ用で、ゲーム開始時に全てのアイテム、武器、防具を取得済みの状態で始めたかった。
探せばあるような気がするんだけど、探しても見つからなかったのでプラグインを制作した。

下記からダウンロードできます。
https://raw.githubusercontent.com/kido0617/rpgmakerMV-plugin/master/GetAlIItems/GetAllItems.js

プラグインコマンドで以下のようにして使う。
それぞれ全アイテムを99個獲得、全武器を1個獲得、全防具を10個獲得の意味。

1
2
3
GetAllItems item 99
GetAllItems weapon 1
GetAllItems armor 10

こんな感じにゲーム開始時にそれぞれ取得するように書いておけば、全所持状態から開始できる。

ライセンス

MIT
自由にご利用ください。

簡易メッセージプラグイン

VX Aceに同じようなのがあったけど、MVで見つからなかったので自作した。
以下みたいな感じです。

スクリプトコマンドで以下のように指定して使います。
TickerManager.show(‘\I[5]あいうえお’);

ソースは以下です。
https://raw.githubusercontent.com/kido0617/rpgmakerMV-plugin/master/Ticker/Ticker.js

ニュースティッカー的な感じだから、Tickerという名前。

ライセンス

MIT
自由にご利用ください。