MQ ONLINE BLOG

サイトの更新状況や、ツクールでの制作日記などを書いていきたいと思います。

素材スクリプト

素材スクリプトのフォローについて

VXが発売され、購入された皆さんは色々といじくっている最中だと思いますが、素材スクリプト関連の連絡を。

同梱のマニュアルに記載しています通り、素材スクリプトに関するご質問等は「First Seed Material」へお願いします。
僕に聞かれても答えようがありません。ハイ。

First Seed Material」では、mackieさんが素材スクリプトのフォローをやってくれるようで(投げっぱなし/笑)、「次のレベルまでの経験値を表示」というスクリプトが追加になっています。
今後も少しずつ追加されていくようですので、気になる方はチェックしてみてください。

VX:1ターンに2回行動する敵

ボスクラスの敵ともなると、その強さを出すために1ターンに2回行動させたくなります。このような2回行動というのはバトルイベントで作れない事もないですが、色々と面倒くさいわけでして。
また、VXではスキルで連続攻撃を作る事が出来るようになりましたが、これは同じ攻撃を連続して行うものなので、厳密な意味で2回行動とは言い難いものがあります。

そこで、敵を2回行動させる素材スクリプトを用意しました。

2回行動の設定
設定は簡単。
メモ欄に「*DOUBLE_ACTION」と書くだけ。
これで、敵は1ターンに2回行動を行うようになります。

2回行動を行う確率はスクリプト内で指定出来ますし、それとは別に個別に確率を指定する事も出来ます。例えば「*DOUBLE_ACTION[50]」と書くと、この敵だけ50%の確率で2回行動を行います。
スクリプト内で指定する基本確率は100%にしておき、それ以外の確率の敵は個別に設定するというのが一番スマートな形になるでしょうか。

VX:フォグの設定

フォグとは、霧や雲などを表示させる機能の事ですね。
ピクチャーとの違いは、スクロールさせた時に画像がループしてくれる点でしょうか。

フォグの表示
不透明度や合成方法、スクロールの速度などを設定可能になっていますので、RPGツクールXPにあった同機能とほぼ同じように使ってもらえると思います。
フォグ用の画像は同梱してませんので、「レクトールと黒獅子の紋章」で使っているものをコピーしたり、XP用の素材を流用したりしてください。

なお、フォグの表示は比較的重い処理になりますので、お使いのPCの性能によっては、目に見えて動作が重くなると思われます。
ですので、イベントを多数配置しているマップでフォグを表示すると、ものすごく重くなってしまいますので、フォグを使用する際にはご注意ください。

VX:交換ショップ

「レクトールと黒獅子の紋章」では、集めた「小さな輝石」と様々なアイテムとを交換する事が出来ますが、このようなお金以外のものと商品とを交換するお店というのは、RPGではよく見かけます。
しかし、これをツクールで再現しようとすると結構面倒なわけでして。
ですので、「レクトールと黒獅子の紋章」の中で使いたかった事もあり、この機能を素材スクリプトで用意しました。
交換に使うアイテム(コインやメダルなどのこと)、交換レート、単位などを指定できます。

設定
このように、交換ショップ機能を有効にするスイッチをONにして、それから通常のショップの処理を行えばOK。通常のショップの処理を流用しているので、設定が楽。
ショップの処理が終わると、自動的にスイッチがOFFになって交換ショップ機能は無効になります。

通常のショップ
通常のショップはこちらですが、

交換ショップ
交換ショップはこうなります。

レイアウトはまったく同じ。
画像だけだと、単に値段と通貨単位をいじっただけじゃないかと思われそうですが。

交換レートは、全アイテム一括で値段の何%かを設定する形になってますが、それとは別に具体的なレートを個別設定することも可能なので、レートは高いけど売ると安いアイテムなんかも作ることが出来ます。

交換レートを個別に
こんな感じ。

また、ショップによってレートの違うアイテムも作成可能です。


なお、交換に使うアイテムに変数を指定する変数バージョンも用意してますので、100以上の数を扱いたくて変数をアイテム代わりに使っている人は、こちらでどうぞ。

VX:天候の設定

これは、マップ単位であらかじめ天候を設定してしまうという素材スクリプト。
設定されていないマップに移動すると、自動的に天候が「なし」になります。

この自動的に「なし」になるのがポイント。
通常のイベントコマンドによる天候の設定だと、場所移動しても天候の設定が引き継がれてしまいます。
単なる場所移動ならば、場所移動コマンドのところで天候を「なし」に設定すればいいんですが、例えば、雨が降っているマップから晴れているマップへテレポートさせたい場合、天候を「なし」にするタイミングがありません。
その時には、このスクリプトを使ってもらえば万事解決。

常時、何らかの天候が設定されているマップがある場合には、このスクリプトで設定した方が楽でしょう。
それに、場所移動の暗転中に天候を切り替えるので、天候の切り替えが見た目にもスムーズになります。イベントコマンドですと、場所移動の暗転中に割り込むことが出来ませんので。

VX:テレポートとエスケープ

体験版をプレイしてくださった方はお分かりだと思いますが、「レクトールと黒獅子の紋章」には、1度行った町などに瞬間移動出来る「テレポート」と、ダンジョンから脱出できる「エスケープ」機能があります(ゲーム内で、エスケープはリターンという名称ですが)。
そして、これらの機能は、素材スクリプトとしても収録しています。
ダメージ床の設定の紹介の所で使っている画像で、これの存在に気づいた人がいるかもしれませんね(笑)

テレポート

スキルとアイテム、どちらにも設定可能です。


せっかくなので、テレポートの設定方法を簡単に紹介。

テレポート先の設定
まずは、テレポート先の候補をあらかじめスクリプト内に書いておきます。
テレポート後のキャラクターの向きも指定できます。

画像の例で言うと、ID11のスイッチがONの時にリストに「最初の町」が表示され、それを選ぶとID2のマップのX座標20、Y座標31の地点に、キャラクターが下向き(向きはテンキーの配置で示しますので、下向きは2になります)で飛ぶ事になります。

アイテムやスキルの設定
次に、テレポート機能を持たせたいスキルやアイテムの設定を行います。
効果範囲を「なし」、使用可能時を「メニューのみ」にしたら、メモ欄に「*TELEPORT」と書くだけ。
画像はアイテムの設定ですが、スキルの場合も同様に行います。

あとは、新しい町に入った時など、任意のタイミングでテレポート先に対応したスイッチをONにすれば、その場所がリストに表示されます。
なお、OFFにすればリストから消えますので、ゲームの都合でテレポート先に制限をかけたい場合などにも対応できますよ。

VX:歩数でステートを解除

昨日紹介したダメージ床に関連しての素材スクリプト。

トラマナのように、ダメージ床を無効化するステートを一定の歩数で解除したい時のためのスクリプトも用意してあります。
もちろん、他のステートを一定歩数で解除するのにも使えます。アクションRPGなどで、一定時間だけパワーアップするステートってのはありかも。

歩数で解除されるステート
このように、メモ欄に「*STEPS_REMOVE[XX]」と書くだけ。
XXは解除する平均歩数です。平均エンカウント歩数のようなものだと思ってください。

VX:ダメージ床の設定

ダンジョンなどの仕掛けとして、毒の沼などのダメージを受ける床というのは定番中の定番。
で、これを実現するのが、この素材スクリプト。

どのタイルをダメージ床にするのか、ダメージ量をどのくらいにするのか、そしてSEなどの演出をどうするのかという事を指定できます。
ついでに、ダメージ床を無効化するステートも作れますので、このステートにするアイテムやスキルを作ることで、トラマナやレビテトのようなものを再現可能です。

ダメージ床にするタイルは、タイルIDで指定してもらいます。ところが、VXではタイルIDをエディタ上で確認出来ないので、通常では指定のしようがありません。
そこで、このスクリプトを導入するとテストプレー時のデバッグ画面(F9キーを押すと出る画面)が拡張され、現在地のタイルIDが表示されるようになります。

デバッグ画面の拡張
左から、下層、中層、上層に置かれているタイルのIDです。

面倒ではありますが、テストプレーでダメージ床にしたいタイルの上に乗ってデバッグ画面でIDを確認後、そのIDを設定してください。


なお、オートタイルをダメージ床に指定したい場合は要注意。
と言うのも、VXではオートタイルのパターンごとに異なるタイルIDが振られてしまうのです。
ですので、オートタイルの全パターンのタイルIDを調べ、それらをすべて設定する必要があるんですが……正直言って、これは非常にしんどい(笑)

そこで、上層にダメージ床認識用タイルを用意します。グラフィックは分かりやすければ何でもOK。
そして、ダメージ床にしたいオートタイルの上に、この認識用タイルを置いてやります。

こうすることで、オートタイルがどんなパターンになっていようとも上層のタイルIDは同じになるわけですから、この認識用タイルのIDのみをダメージ床として設定してあげればOKです。

当たり前の話ですが、最終的に認識用タイルのグラフィックは透明にしてください。でないと、完成版のゲームに認識用のグラフィックが残ったままになってしまいますので。


ちなみに、この素材スクリプトはダメージ床として紹介してますが、足音を鳴らしたりするのにも使えます。

VX:文章の表示関連

イベントコマンド「文章の表示」に関する素材スクリプトを2つ紹介。

●文章の表示中にウェイトをかける

体験版を試した方なら分かると思いますが、VXではメッセージウインドウが表示されている間も、マップ上にある他のイベントは動きます。個人的に、町の人との会話中に他のキャラが動くというのがイヤでしたので、従来のツクールにあったウェイト機能を復活させました。
具体的に言うと、メッセージウインドウが表示されている間、すべてのイベントの自律移動が停止されます。
移動ではなく「自律移動」ってところがミソでして、「移動ルートの設定」によって指定した内容は通常通り実行されます。また、足踏みアニメは止まりません。
もちろん、指定したスイッチを切り替えることにより、機能のON/OFFが可能です。


●顔グラがない時の文字表示領域を調整する

顔グラ表示の有無に関わらず、メッセージウインドウのサイズは常に同じです。

顔グラあり
顔グラなし

顔グラを表示しない場合、どうしても文章全体が左に寄りすぎている印象を受けてしまいます。1行の文字数がもっと増えれば、この違和感は解消されますが、1行ギリギリまで文字で埋まる機会はほとんどないわけで。

そこで、このスクリプトでは、顔グラなしの時に1行に表示できる文字数を、顔グラありの時と同じにし、文字の表示領域をセンタリングします。

全体をセンタリング

さらに、メッセージウインドウの幅を表示領域に合わせることも出来ます。

ウインドウ幅を調整


ウインドウ右側の余白が気になる時や、ゲーム全体における1行の文字数を統一したい時などに使ってみてください。

VX:セーブの設定

町やフィールドではセーブOK。でも、ダンジョンではセーブ禁止。……というように、マップごとにセーブを許可したり禁止したりするパターンのゲームは結構あると思います。
でも、マップが切り替わるたびに、「セーブの許可」「セーブの禁止」というイベントコマンドをいちいち設定するのは面倒くさいわけで。
そこで、マップ単位で許可か禁止か設定させやがれ!……という人のための素材スクリプトを紹介。

設定は簡単。

セーブの設定
許可や禁止にしたいマップIDを書くだけ。
[ ]内に、マップIDを書いてください。

マップIDを指定していないマップでのセーブの扱いをどうするかという項目もあるので、セーブ出来るマップとセーブ出来ないマップのどちらが多いかによって、使い分けてください。
例えば、ダンジョン内のみセーブ禁止というゲームならば、指定していないマップはセーブ許可扱いにしておくと、セーブ禁止にしたいマップIDだけを書けばいいので、設定がとても楽になります。
Twitter
Profile
よしむら
「よっし〜」と名乗ったりも。
ツクールでゲームを作ったり、お手伝いをしたりしています。

ツクール関連以外は、こちらのブログに書いています。
Yossy's Diary
Recent Comments
QRコード
QRコード
  • ライブドアブログ