ページ 11

【解決済み】与えたダメージ量によって鳴らすSEを変える方法

Posted: 2023年8月09日(水) 16:12
by ツクヌ
与えたダメージ量が1~50ならSE1を鳴らす、51~100ダメージならSE2を鳴らすといったように
与えたダメージ量によって鳴らすSEを変える方法があればお教えいただきたいです。

現在はトリアコンタン様のダメージSEカスタマイズプラグイン(ダメージ倍率でSEを変える)を使用しておりますが、
もし標題のようなダメージ量によってSEを変える方法があるならば表現の幅が更に広げられると考えている次第です。

また、本内容に関係していると思われるプラグインが過去に作成されていたようですが、現在は使用できないみたいです。(URLアクセス不可、プラグイン名で検索しても見つかりません)

https://forum.tkool.jp/index.php?thread ... C%89.1452/

Re: 与えたダメージ量によって鳴らすSEを変える方法

Posted: 2023年8月13日(日) 20:20
by DoujinRuis
一度、そちらの環境で試していただきたいです

https://www.youtube.com/watch?v=t1Z6rKMps9M


/*:
* @plugindesc ダメージ量に応じてSEを変更するプラグイン for MV
* @author ChatGPT
*
* @param DamageSESettings
* @text ダメージSE設定
* @type struct<SESetting>[]
* @desc ダメージの範囲に応じて再生するSEを設定します。
* @default []
*
* @help
* このプラグインはダメージ量に応じて異なるSEを再生する機能を提供します。
*
*/

/*~struct~SESetting:
* @param DamageMin
* @text 最小ダメージ
* @type number
* @desc この範囲の最小ダメージ。
* @default 0
*
* @param DamageMax
* @text 最大ダメージ
* @type number
* @desc この範囲の最大ダメージ。
* @default 100
*
* @param SoundName
* @text SEの名前
* @type string
* @desc 再生するサウンドの名前。
* @default Bell1
*
*/

var DamageSEPlugin = DamageSEPlugin || {};
DamageSEPlugin.Parameters = PluginManager.parameters('DamageSEPlugin');
DamageSEPlugin.DamageSESettings = JSON.parse(DamageSEPlugin.Parameters['DamageSESettings'] || '[]').map(data => {
const parsedData = JSON.parse(data);
return {
DamageMin: parseInt(parsedData.DamageMin),
DamageMax: parseInt(parsedData.DamageMax),
SoundName: parsedData.SoundName
};
});

const _Game_Action_apply = Game_Action.prototype.apply;
Game_Action.prototype.apply = function(target) {
_Game_Action_apply.call(this, target);

if (this.subject().isActor() && target.result().hpDamage > 0) {
const damageValue = target.result().hpDamage;
console.log("ダメージ: " + damageValue); // このログが表示されるか確認

for (let setting of DamageSEPlugin.DamageSESettings) {
if (damageValue >= setting.DamageMin && damageValue <= setting.DamageMax) {
console.log("SE再生: " + setting.SoundName); // このSEが再生されるかのログを表示
const se = {
name: setting.SoundName,
volume: 100,
pitch: 100,
pan: 0
};
AudioManager.playSe(se);
break;
}
}
}
};

Re: 与えたダメージ量によって鳴らすSEを変える方法

Posted: 2023年8月14日(月) 02:42
by ツクヌ
試行してみましたが、私の環境では音が鳴らなかったです...

その他、試してみたこと
・新規プロジェクトにてテスト(本プラグインのみ環境)
・コードの空白部分が無かった(すべて左揃え)ため、空白を入れてみた

動画を拝聴させていただきましたが、新規プロジェクトなら恐らく同環境になるハズだと思うのですが...なぜダメなのでしょう?

Re: 与えたダメージ量によって鳴らすSEを変える方法

Posted: 2023年8月14日(月) 05:06
by DoujinRuis
プラグインの名前は大丈夫でしょうか?

"DamageSEPlugin" という名前でお願いします

これでダメなら3日後、対応します

Re: 与えたダメージ量によって鳴らすSEを変える方法

Posted: 2023年8月14日(月) 17:04
by ツクヌ
プラグイン名を"DamageSEPlugin" に設定したところ、正常に動作しました!
これで制作の幅が広がりそうです。ご対応いただきありがとうございましたm(_ _)m