//============================================================================= // BattleVoice.js //============================================================================= /*: * @plugindesc play voice SE at battle when actor does spcified action * @author Sasuke KANNAZUKI * * @param pitch * @desc pitch of SEs. this setting is common among all voice SEs. * @default 100 * * @param volume * @desc volume of SEs. this setting is common among all voice SEs. * @default 90 * * @noteParam attackVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam recoverVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam friendMagicVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam magicVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam skillVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam damageVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam defeatedVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam victoryVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @help This plugin does not provide plugin commands. * * note specification: * write down each actor's note at following format to set SE filename. * plays when actor does normal attack. * plays when actor uses HP recovering magic. * plays when actor spells magic for friend * except HP recovering. if this is not set but is set, * it plays setting file. * plays when actor spells magic(except for friend). * plays when actor uses special skill except magic. * plays when actor takes damage. * plays when actor is died. * plays when battle finishes. * if plural actors attend the battle, randomly selected actor's SE is adopted. * */ /*:ja * @plugindesc アクターの戦闘時の行動にボイスSEを設定します。 * @author 神無月サスケ * * @param pitch * @desc ボイスSEのピッチです。この設定が全てのボイスSEの共通となります。 * @default 100 * * @param volume * @desc ボイスSEのボリュームです。この設定が全てのボイスSEの共通となります。 * @default 90 * * @noteParam attackVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam recoverVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam friendMagicVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam magicVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam skillVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam damageVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam defeatedVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @noteParam victoryVoice * @noteRequire 1 * @noteDir audio/se/ * @noteType file * @noteData actors * * @help このプラグインには、プラグインコマンドはありません。 * * メモ設定方法: * それぞれのアクターのメモに以下の書式で書いてください。 * filename はボイスSEのファイル名にしてください。 * * 通常攻撃の時に再生されるボイスです。 * HP回復魔法を使用した時に再生されるボイスです。 * HP回復以外の味方向け魔法を使用した時に * 再生されるボイスです。省略された場合でが * 設定されている場合は、そちらが再生されます。 * 味方向け以外の魔法を使用した時に再生されるボイスです。 * 必殺技を使用した時に再生されるボイスです。 * ダメージを受けた時に再生されるボイスです。 * 戦闘不能になった時に再生されるボイスです。 * 戦闘勝利時に再生されるボイスです。 * アクターが複数いる場合は、生きているアクターの中からランダムで再生されます。 * */ (function() { // // process parameters // var parameters = PluginManager.parameters('BattleVoice'); var pitch = Number(parameters['pitch']) || 100; var volume = Number(parameters['volume']) || 90; AudioManager.createAudioByFileame = function(name){ var audio = {}; audio.name = name; audio.pitch = pitch; audio.volume = volume; return audio; }; // // play actor voice // SoundManager.playActorVoice = function(actor, type){ var name = ''; switch(type){ case 'attack': name = actor.meta.attackVoice; break; case 'recover': name = actor.meta.recoverVoice; break; case 'friendmagic': name = actor.meta.friendMagicVoice || actor.meta.magicVoice; break; case 'magic': name = actor.meta.magicVoice; break; case 'skill': name = actor.meta.skillVoice; break; case 'damage': name = actor.meta.damageVoice; break; case 'dead': name = actor.meta.defeatedVoice; break; case 'victory': name = actor.meta.victoryVoice; break; } if(name){ var audio = AudioManager.createAudioByFileame(name); AudioManager.playSe(audio); } }; // // functions for call actor voice. // var _Game_Actor_performAction = Game_Actor.prototype.performAction; Game_Actor.prototype.performAction = function(action) { _Game_Actor_performAction.call(this, action); if (action.isAttack()) { SoundManager.playActorVoice(this.actor(), 'attack'); } else if (action.isMagicSkill() && action.isHpRecover()) { SoundManager.playActorVoice(this.actor(), 'recover'); } else if (action.isMagicSkill() && action.isForFriend()) { SoundManager.playActorVoice(this.actor(), 'friendmagic'); } else if (action.isMagicSkill()) { SoundManager.playActorVoice(this.actor(), 'magic'); } else if (action.isSkill() && !action.isGuard()) { SoundManager.playActorVoice(this.actor(), 'skill'); } }; var _Game_Actor_performDamage = Game_Actor.prototype.performDamage; Game_Actor.prototype.performDamage = function() { _Game_Actor_performDamage.call(this); SoundManager.playActorVoice(this.actor(), 'damage'); }; var _Game_Actor_performCollapse = Game_Actor.prototype.performCollapse; Game_Actor.prototype.performCollapse = function() { _Game_Actor_performCollapse.call(this); if ($gameParty.inBattle()) { SoundManager.playActorVoice(this.actor(), 'dead'); } }; var _BattleManager_processVictory = BattleManager.processVictory; BattleManager.processVictory = function() { var index = Math.randomInt($gameParty.aliveMembers().length); var actor = $gameParty.aliveMembers()[index].actor(); SoundManager.playActorVoice(actor, 'victory'); _BattleManager_processVictory.call(this); }; })();