開発日誌

プラグイン/スクリプト

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 画面シェイクの永続化スクリプト素材

2011-02-06 22:18:03

小さな大冒険」で使用しているRGSSスクリプトを、素材として提供していくシリーズ、第5弾。

時間を600フレームに設定し、ウェイトのチェックを外します

イベントコマンドの「画面のシェイク」で、地震や建物の崩壊といった演出効果が実現できますが、1〜600フレーム(10秒)の間でシェイクの持続時間を設定しなければならないため、使える場面が限られてしまっています。

そこで、画面シェイクを永続化するスクリプトを作りました。

上記スクリプトを組み込んで、画面のシェイク設定の時間を600フレーム(設定できる最大値)に、「シェイクが終わるまでウェイト」のチェックを外せば、シェイクの効果がずっと持続するようになります。直接的にシェイクを止める方法はありませんが、時間を1フレームなど、ごく短い時間に設定したシェイクを入れれば、そこでシェイクがストップします。

これで、シェイクの最中にメッセージを表示したり、崩落しつつある建物から脱出するシーンなども、実現させることができます。

まあでも、実際に使用してみて分かりました。ずっと画面が揺れ続けているというのは、けっこう目が疲れるものです…。なので、ご利用はほどほどに。

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

大がかりなスクリプト素材などはありませんが、あるとちょっと便利なスクリプト素材を、今後も随時アップしていきますので、よろしくお願いします。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 使用可否スイッチ制御スクリプト

2011-02-01 22:59:25

小さな大冒険」で使用しているRGSSスクリプトを、素材として提供していくシリーズ、第4弾。

該当アイテムまたはスキルのメモ欄に、所定の文字列を記述します。

アイテムやスキルの使用可否を、スイッチで制御できるようにするスクリプト素材です。指定した番号のスイッチがONの時に、対象のアイテムまたはスキルが使用できるようになります。

使い方は、上記スクリプトを導入して、対象となるアイテムもしくはスキルのメモ欄に、以下の指定文字列を記述します。

PANDA::EnableSwitch = n

nには、使用可否制御に使用するスイッチの番号が入ります。例えば、

PANDA::EnableSwitch = 12

と記述すれば、12番のスイッチがONの時に、該当アイテムorスキルが使用可能になります。

代表的な用途としては、脱出や場所移動のアイテムor魔法でしょうか。ダンジョンに入る際に、「エスケープ可能」のスイッチをONにして、ダンジョンから出る際にOFFにする、といった具合です。この他に「小さな大冒険」では、敵から確実に逃げられるランナウェイの魔法および天馬の尻尾で、一部のボス戦で使用不可にするために用いています。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 話し手ウィンドウ表示スクリプト

2011-01-28 03:53:58

小さな大冒険」で使用しているRGSSスクリプトを、素材として提供していくシリーズ、第3弾。

キャラクターとの会話の際、メッセージウィンドウの左上に、話し手の名前を表示するウィンドウを出すスクリプトです。(メッセージウィンドウの位置が上の場合は左下)

まずは上記スクリプトを導入後、頭の定数のところにある「PANDA_SPEAKER_ACTOR = 」の後ろの番号を、未使用のアクターIDに書き換えます。

あとは、それぞれのイベントにおいて、イベントコマンドの「名前の変更」で、先ほど指定したIDのアクターの名前を、話し手の名前に変更すればOK。顔グラフィック付きの文章を表示する際に、話し手ウィンドウが表示されます。

これで、無味乾燥だった街の人々との会話が、楽しくなること間違いなし!!

注意点としては、顔グラフィック付きの文章の場合に、話し手の名前が表示されるという点。なので、顔グラのない文章の時は名前が表示されませんし、逆に顔グラがある文章の時は無名の人でもウィンドウが表示されてしまいます。その辺の表示条件を変更したい場合は、69行目の「unless $game_message.face_name.empty?」とある部分を、別の条件にすればOKだと思います。例えば、顔グラの有無に関わらず話し手の名前が指定されていたら表示、としたい場合には、「if $game_actors[PANDA_SPEAKER_ACTOR].name != ''」でOKかと。

あとは、メッセージウィンドウの背景タイプが通常でなく、暗くするだったり透明だったりした場合でも、話し手ウィンドウは通常背景で表示されてしまいます。メッセージウィンドウの背景に合わせたい場合は、少し改造が必要になりますかね。まあ、要望があるか、気が向くか、自分で必要になるかすれば、改良します…。

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

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 通常歩行・ダッシュ切り替えスクリプト

2011-01-26 00:33:18

小さな大冒険」で使用しているRGSSスクリプトを、素材として提供していきます。

第2弾は、「通常歩行とダッシュの切り替えスクリプト」です。

RPGツクール標準の機能として、Shiftキー(ゲームパッドならAボタン)を押しながら移動すると、ダッシュ状態となって移動速度が速くなりますが、いつもShiftキーを押しっぱなしにしているのは不便なので、Dキー(ゲームパッドならZボタン)を1回押すとダッシュ状態に、もう1回押すと通常歩行状態にと、歩行速度を切り替えられるようにするスクリプトです。

一応、「DashのD」ということで、覚えやすくしたつもり…。既にDキーに何らかのオリジナル機能を組み込んでいる場合は、別のキーに割り当てるなどの処置が必要になりますが。

なお、以前にベータ版で組み込んだ際には、意図に反して切り替え状態が保存されるようになっていましたが、Game_Tempクラスで変数を持つようにして、切り替え状態を保存しないように改良しました。まあ、これは逆に、保存してくれた方がありがたい、という意見もあるかとは思いますが…。

素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] カウンター属性拡張スクリプト

2011-01-10 22:54:08

赤枠内の9つのマップチップにカウンター属性が付与されます

小さな大冒険」で使用したスクリプトを、素材として提供していこうと思います。

まずは簡単なものから、「カウンター属性拡張スクリプト」です。

RPGツクールVXでは、TileA2-Cにある4種類のマップチップには、自動的にカウンター属性が付与され、お店等でカウンター越しに話しかけることができます。

ただ、これだけでは少し中途半端で、TileCにあるテーブル類のマップチップにも、カウンター属性があった方が自然かと思われます。XPまでは、エディタでカウンター属性を編集することができましたが、VXではカウンター属性が自動的に設定されるようになったため、変更するにはスクリプトを利用する必要があります。

上記スクリプトを組み込めば、TileCのテーブル類のマップチップ(右の赤枠内の9つのチップ)にもカウンター属性が付与され、家の住人などにテーブル越しに話しかけることができるようになります。

スクリプトの組み込み方法は、以下の通りです。

  1. スクリプトエディタを開き、「▼ 素材」の「( ここに追加 )」の下に挿入する。
  2. 名前欄に任意の名前(例:「PANDA_AdditionalCounter」など)を入力する。
  3. 上記スクリプトの内容を全てコピーして、エディタ欄に貼り付ける。

テーブル越しに話しかけられるようになります

変更しているのは、Scene_Titleクラスのload_databaseメソッドと、Game_Mapクラスのcounter?プロパティです。load_databaseメソッドの方はエイリアスによる追加定義なので、競合などはあまり起こらないと思いますが、counter?プロパティの方は再定義していますので、もし他のスクリプトでGame_Mapクラスのcounter?プロパティを使用している場合は、競合の解消やスクリプトの順序など、調整などが必要になってくると思われます。

また、あくまでRTPデフォルトに準拠していますので、もしRTP素材を改変していて、別のチップにカウンター属性を付与したい場合には、「$data_system.passages[342] |= 0x80」などとある部分の、「342」などのタイルIDを変更すればOKです。タイルIDは、TileBの左上が0、TileEの右下が1023となっているようです。

あとは、大きなテーブル越しにも話しかけられるように、複数のカウンター属性チップが間にあってもイベントが発動する(XPまでは確か3ブロックまではカウンター越しに話しかけられた)ようにしたかったのですが、修正すべき箇所が多くなりそうだったのと、既に大きなテーブル越しには話しかけられないことを前提にイベントを組んでいた部分もあって、面倒なので断念しました。次回作では組み込みたいと思います。

今後も、自作ゲーム内で使ったスクリプトやテクニック、素材などで、汎用性が高く手軽に公開・実装ができそうなものを、随時シェアしていこうと思います。

使用に際しての報告や提供元としての記載などは任意ですが、ご報告いただければ需要把握などもできますので、一言でも残してもらえるとありがたいです。改造や改造後のスクリプトの公開などもご自由にどうぞ。ご質問や、もっとこうした方がいいのでは?などのアドバイス等ありましたら、お気軽にコメントいただければと思います。