開発日誌

素材

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] [ ツクール情報 ] ステート相殺の不具合

2012-07-01 21:13:46

天下御免!からくり屋敷』のデバッグ作業中に、RPGツクールVXのプリセットスクリプトの不具合と思われる部分を発見しました。

戦闘中、防御力など変化していないのに、なぜか「防御力が元に戻った!」というメッセージが表示されるという現象に悩まされていたのですが、その原因がVXのプリセットスクリプトの不具合にあるらしいことが判明しました。Game_Battlerクラスのadd_stateメソッドで、ステートが相殺された場合にも、自然解除のターン数が設定されてしまっているのは、おかしいですね。新規プロジェクトで試してみても、同様の現象が起きました。

ちょっと検索してみた限りでは、あまり話題になっていない模様ですね。ただ、話題が皆無ではなかったので、不具合には違いないのでしょう。Scene_Battleクラスのremove_states_autoモジュールを見ると、実際のステートに変化が起きない場合は、ステート解除のメッセージが表示されることはないため、簡単にはこの不具合が発覚しないようですし、余計なメッセージが表示される以外には特に実害がないので、放置されているのでしょうか…。

というわけで、修正するスクリプトを作ってみました。Game_Battlerクラスのadd_stateメソッドに追加定義していますので、ここに手を加えている場合は競合に注意してください。

一応、能力値の上昇・低下に関わるステート相殺では、上手く動いている模様ですが、綿密なテストは行っていないので、いろいろな形でステートの相殺を応用しているような場合に、不備があるかもしれません。もし上手く動かないような場合には、コメント欄等にてご報告いただけると、ありがたいです。

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 付加ステート発動確率設定スクリプト素材

2011-05-04 02:55:48

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

RPGツクールVXでは、武器に「付加するステート」が設定でき、これで攻撃と同時に敵をマヒさせたり、混乱させたりといった武器を作ることができます。しかしながら、ステートの成功確率は相手のステート有効度のみに依存するため、デフォルトのCで60%の成功確率となり、ちょっと強力すぎる気がします。

そこで、付加ステート攻撃の発動確率を指定できるスクリプト素材を用意しました。

上記スクリプトを導入して、対象となる武器のメモ欄に、以下の指定文字列を記述します。

PANDA::StateProbability = n%

nには発動確率が入ります。なお、%を忘れずに付けてください。

例えば「PANDA::StateProbability = 50%」とすると、設定した付加ステートが50%の確率で発動します。したがって、対象者のステート有効度がC(60%)であれば、50%×60%=30%の確率でステートにかけることができます。

Game_Actorクラスのplus_state_setメソッドを再定義していますので、ここを改造しているスクリプトを導入している場合は、競合にご注意ください。

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

[ ゲームリリース情報 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] アイテム発見イベント規格化スクリプト素材とサンプルミニゲーム

2011-04-27 00:32:00

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

なんのこっちゃって感じですが、宝箱やタンス、タルなどを調べるとアイテムが見つかる、というイベントを簡単に組むためのスクリプト素材です。

宝箱であれば、「イベントの簡単設置」で簡単に設置することはできますが、後から入っているアイテムを別の物に変更する場合、アイテムを増減するイベントコマンドと、「○○を手に入れた!」というメッセージの表示の両方を修正しなければならず、面倒かつミスりやすいです。

そんな面倒なアイテム発見イベントを、簡単に作れるようにするスクリプトです。導入方法は以下の通り。

  1. 上記スクリプト素材を組み込む。
  2. アイテム発見のコモンイベントを作る。
  3. 宝箱やタンスなどをイベントとして設置する。イベント名を入手品のIDとし、アイテム発見のコモンイベントを呼び出します。

以下、詳しく説明します。

アイテム発見コモンイベント

先に、アイテム発見のコモンイベントを作成します。

イベントコマンドの「スクリプト」で、「PANDA_FindItem(n, m)」を呼び出します。(nとmにはそれぞれ変数の番号が入ります)

n番の変数にアイテムの種別(お金=1、アイテム=2、武器=3、防具=4、敵グループ=5)、m番の変数に入手品や敵グループのIDもしくは金額が取得されます。アイテムやお金の増減はスクリプト内で処理していますので、後は効果音などの演出や、入手メッセージを表示すればOKです。ミミックなど、敵モンスターを出現させる場合は、戦闘の処理が必要です。

また、メッセージ内で、「\item[x]」「\weapon[x]」「\armor[x]」「\troop[x]」と記述すると、x番のIDのアイテム、武器、防具、敵グループ名が表示できるようになっています。これを利用すれば、n番の変数に入っているアイテム種別で分岐させつつ、「\item[\V[m]]」(mは上で指定した変数番号)などとすれば、入手時のメッセージを表示させることができます。

イベント設置

コモンイベントを用意したら、実際の宝箱などのオブジェクトをイベントとして設置します。

「ページ1」は、入手前の状態を表しており、アイテム発見コモンイベントの呼び出しにします。「ページ2」は、入手後の状態を表しており、条件を「セルフスイッチAがON」にし、イベントコマンドには何も設定しません(もしくは「もう何もない」のメッセージ表示など)。

そして、イベント名を入手品のIDとします。アイテムの場合は「i + アイテムID」、武器の場合は「w + 武器ID」、防具の場合は「a + 防具ID」とします。例えば、「i1」ならば1番のIDのアイテムが、「w25」ならば25番のIDの武器が手に入ります。また、お金の場合は「g + 金額」とし、モンスターを出現させる場合は「e + 敵グループID」とすればOKです。

入手品を変更したくなったら、イベント名を変更するだけでOKですし、入手時の演出効果やメッセージを変更したくなったら、コモンイベントの方を変更すればOKです。

サンプルミニゲーム

はっきり言って、なんのこっちゃだと思いますので、実際のサンプルプロジェクトを用意しました。

ただのサンプルでは味気ないので、ちょっとしたミニゲームに仕立ててみました。

  • 部屋の中を調べて、ダンナの浮気の証拠を探しましょう。
  • 浮気の証拠だけでなく、便利アイテムや装備品、ストレス解消に役立つ道具もあります。中には怪物が潜んでいる場所も…。
  • 探せるチャンスは10回です。10回調べ終わると、ダンナが帰ってきます。
  • それまでに入手したアイテムによって、エンディングが変わります。
  • エンディングは全部で10種類。ハッピーエンドを目指してがんばってください!

ダウンロードした「FindItem.exe」をダブルクリックして解凍してください。解凍されたフォルダの中にある「Game.exe」をダブルクリックして起動すると、ゲームがスタートします。「RPGツクールVX」をお持ちの方は、プロジェクトとして開くと、実際にどのようにイベントが組まれているかを確認することができます。ご利用の際の参考にしてください。

プレイするためには、「RPGツクールVX RTP」が必要ですので、お持ちでない場合は別途インストールしてください。

バグ報告、ご質問、ご要望等は、お気軽にコメント欄までどうぞ!

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

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にする、といった具合です。この他に「小さな大冒険」では、敵から確実に逃げられるランナウェイの魔法および天馬の尻尾で、一部のボス戦で使用不可にするために用いています。

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