【VX / RGSS2】ダメージを受けた時にキャラごとの効果音

okuyamj
記事: 10
登録日時: 2017年10月25日(水) 11:55

【VX / RGSS2】ダメージを受けた時にキャラごとの効果音

投稿記事by okuyamj » 2017年10月25日(水) 12:00

初めまして。
この度は「ダメージを受けた時に、キャラごとに違う被害ダメージのボイス」を実装したく、ご相談に参りました。
VXはもしかするともう古いのかもしれませんが、スクリプトの提案をして下さる方をお待ちしております。

faida
記事: 272
登録日時: 2015年12月17日(木) 16:44

Re: 【VX / RGSS2】ダメージを受けた時にキャラごとの効果音

投稿記事by faida » 2017年10月27日(金) 15:03

初めまして。

まず、「ダメージを受けた時」を考えてみましょう。
「ダメージ」で全体検索をかけると色々出てきますが、今回は「ダメージの反映」を選択します。
Game_Battlerの758行目ですかね。

コード: 全て選択

  def execute_damage(user)
    if @hp_damage > 0           # ダメージが正の数
      remove_states_shock       # 衝撃によるステート解除
    end
    self.hp -= @hp_damage
    self.mp -= @mp_damage
    if @absorbed                # 吸収の場合
      user.hp += @hp_damage
      user.mp += @mp_damage
    end
  end
ここの処理は、「攻撃、スキル、アイテムによって発生したダメージ/回復を実際にHPに反映する」処理と
なっています。
ご丁寧に「@hp_damage > 0 # ダメージが正の数」の条件もあります。ここを改造しましょう。

コード: 全て選択

class Game_Battler
  def execute_damage(user)
    if @hp_damage > 0           # ダメージが正の数
      remove_states_shock       # 衝撃によるステート解除
      if self.actor? # ここから
        case self.id
        when 1
          Audio.se_play("Audio/SE/アクター1ダメージ", 80, 100)
        when 2
          Audio.se_play("Audio/SE/アクター2ダメージ", 80, 100)
        when 3
          Audio.se_play("Audio/SE/アクター3ダメージ", 80, 100)
        end
      end  # ここまで
    end
    ~以下省略~
  end
end
Audio.se_playとは、SE「として」音源を再生する手法です。SEの特徴は以下の通りです。
・ループしない
・別のどの音源とも干渉しない
なので、例えば("Audio/Voice/アクター3ダメージ", 80, 100)とやれば、Voiceに入っている音源も再生できます。
後ろの二つは音量とピッチです。お好みでどうぞ。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
okuyamj
記事: 10
登録日時: 2017年10月25日(水) 11:55

Re: 【VX / RGSS2】ダメージを受けた時にキャラごとの効果音

投稿記事by okuyamj » 2017年11月02日(木) 15:04

ありがとうございます!
無事実装できました。本当に助かりました!

“VX / Ace:スクリプト素材のリクエスト” へ戻る