開発日誌

テクニック

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

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ブロックまではカウンター越しに話しかけられた)ようにしたかったのですが、修正すべき箇所が多くなりそうだったのと、既に大きなテーブル越しには話しかけられないことを前提にイベントを組んでいた部分もあって、面倒なので断念しました。次回作では組み込みたいと思います。

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

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

[ 小さな大冒険 ] [ テクニック ] ステート関連調整中

2010-09-24 02:14:46

引き続き、後回しにしていた細かい要素を作り込んでいます。

今日は主に、ステート関連の仕様を調整していました。中でも苦労したのが、スリップダメージの調整。

スリップダメージ、いわゆる毒状態のステートですが、標準の仕様では、戦闘中はターンごとに最大HPの10%程度、歩行中は1歩ごとに1ポイントのダメージを受け、かつスリップダメージによって戦闘不能にはならない(HPが1未満には減らない)という仕様で固定となっています。

しかし、これでは芸がなさ過ぎるので、受けるダメージ量を調整できるように、かつ戦闘不能にもなるように、スクリプトをいじりました。

が、これがなかなか厄介で…。ダメージ量調整は簡単ですが、戦闘不能になるようにするのが難しい。戦闘不能になることはなるのですが、気づくと死んでる、みたいな状態なので、効果音やメッセージを出したいところ。戦闘中の効果音はperform_collapseメソッドで実現可能ですが、メッセージはどうやって表示させたものか。さらに歩行中にHPが0になった場合は、どうしたものか。もう面倒だから、歩行中には戦闘不能にはならないようにしてしまおうかな…。

[ 小さな大冒険 ] [ テクニック ] 教会システム完成

2010-09-23 04:28:28

ドラクエにおける教会、すなわち、蘇生や、毒・呪いなどのステータス異常の解除を有料で行ってくれる施設を作りました。

標準のイベントコマンドでは、条件分岐などを駆使しないといけなそうで、とりあえず後回しにしてあったのですが、メインの部分が完成してしまったため、作らざるを得ない状況に…。

当初は、ドラクエの教会と同じように、まず蘇生・毒の治療・呪いの解除…などの用件を選択して、その次に対象となるメンバーを選択、という風にしたかったのですが、分岐処理が複雑になるのと、ステータス異常の種類が毒と呪いだけでなく何種類も存在するのと、そもそもそうしたステータス異常は教会なんか使わずに、アイテムや魔法で治療してしまうのが普通だろう(実際、ドラクエでも教会で毒の治療なんて、わざわざしませんよね)ということで、以下のように簡略化しました。

  1. 蘇生・治療したい人を選択
  2. 対象者のステータスを調べて必要な金額を計算
  3. 金額の確認
  4. 対象者の全ステータスを解除

基本的に、イベントコマンドでできるものはイベントコマンドで作り、なるべくスクリプトは使わないようにしているのですが、最初の対象者選択のところは、ステートアイコンも表示させたかったので、スクリプトを組みました。パーティーメンバーの選択は、汎用的な需要もありそうなので、いずれスクリプト素材として提供する予定です。まあ既にありそうな気もしますが。

金額計算やステータス解除の部分は、イベントコマンドでダラダラと組みました。ツクール2000の頃は、変数で指定した番号のアクターに対する処理ってのがあったはずですが、今のツクールにはそれがなく、一人ずつ条件分岐でやっていかないといけないのですよね。そういう高度な処理はスクリプトでやれってことなんでしょうけど、幸いパーティーメンバーは固定の4人のみで、ステータスの種類もまあ1桁…ということで、かなり力業ですが、なんとかイベントコマンドで乗り切りました。