2016-04-12

RGSS-歩行キャラクターをフラッシュ

ShareLink
«RGSS一覧/利用規約

目印や演出に、歩行キャラクターをピカピカ好きな色に点滅するのに
わざわざ差分グラフィックを増やさないといけないのは、ゲーム自体の容量が増えるだけじゃなく手間ですよね。
スクリプト数行ならグラフィックより何倍もサイズが食わない上に、好きな時に全ての(グラフィック指定のある)歩行キャラクターに適用できるスグレモノに変身できます。

そんなわけで!
今回はいつものように移動ルート設定を使って、任意のキャラクターをフラッシュさせるスクリプトを組んでみましょう!


変わるわよッ☆ミ




【今回の変更点】
・Game_Character 1
・Sprite_Character




■Game_Character 1

他のattr_accessorの下に

attr_accessor :flash_flag

を追加し、


def initialize、オブジェクト初期化に

@flash_flag = [false,nil,nil]

を追加。
順番に @flash_flag = [フラッシュするか判定, フラッシュ色調, フラッシュする時間] を入れますが、詳細は後で。


■Sprite_Character

次はフラッシュさせるかの判定とフラッシュの実行を行うスクリプトの追加です。
フレーム更新、def updateの内部に以下を追加しましょう。

 if @character.flash_flag[0]
  self.flash(@character.flash_flag[1],@character.flash_flag[2])
  @character.flash_flag[0] = false
 end

flash_flag[0]がtrueならキャラクターを[1]で設定した色調に[2]の時間分フラッシュ。
続けてフラッシュしないように[0]のfalseにする、という仕組みが出来上がります。
当たり障りの無いように、アニメーションの記述の下あたりに追加するといいかもしれません。


ここまで組み終わったら、次は実行あるのみ!
お馴染みイベントコマンドの「移動ルートの設定」でスクリプトを選び

@flash_flag = [true, Color.new(赤,緑,青,透過), 時間]

を記述して挿入。※ColorのRGBと透過は0~255までの数値
すると、ぴかーっと設定したキャラクターがフラッシュするはず。
ウェイトを挟んで「動作を繰り返す」で繰り返しピカピカフラッシュさせる事もできます!
※イベント中は並列処理じゃない場合、「動作を繰り返す」にチェックを入れたまま「移動完了までウェイト」にするとフリーズするから注意してね!




あるようで無かった機能じゃないかなーと、今回キャラクターフラッシュについて執筆しました。

キャラクターにタイルか歩行グラを設定していないとピカピカしませんが、
地面と同じタイルを指定してピカピカさせると案内みたいになりますし
イベントなどでキャラクターが神々しくピカーーーッと光る演出ができるようになります。

他にも、キャラクターの色を減算・加算だけでなく
好きな色に光らせたい、色を重ねたい時、一定時間光りっぱなしにしたい時などは
@flash_flagを設定した移動ルートの動作をウェイトなしで繰り返してみる…
なんてビミョ~な使い方もできます。
それだと移動と合わせるのは難しいか。。。

使いようによっては、意外と便利。


簡単なスクリプトしか書いてないですが
SilverHeartsのとこのRGSSを参考にしたよ!とか、使った作品のどこかに書いてくれると嬉しいので、任意ですがよろしくお願いします!(とか言ってみる)
ちょっとわがままだけど、作品完成したら報告くれると嬉しいな~と思ったり…してたりして
(ツクールXP使用のゲーム作者さんが少数派のようなので判明したらなんか嬉しい)

category: