ita_fox Posted August 7, 2016 Share Posted August 7, 2016 (edited) NMessageVoice.jsby Nomid DescrizioneQuesto plugin vi consentirà di impostare una voce per i vostri messaggi di dialogo. AutoreNomid ...ovvero io u.u Allegativoice_good.zip Istruzioni--- Prerequisiti Per prima cosa, è necessario che sia presente almeno un suono per la voce, da mettere nella cartella SE nei due formati m4a e ogg.Per comodità, vi allego un suono creato da me da usare come voce, già convertito.--- ConfigurazioneUsare il mio plugin è molto semplice e necessita di poche impostazioni di base.http://s25.postimg.org/6onzz25r3/screenshot_704.png Innanzitutto notiamo che la descrizione dice che ogni lettera avrà il suo suono, quindi il file audio verrà suonato per ogni lettera del dialogo, motivo per cui è probabile che i suoni si accavallino.Per evitare questo fastidioso effetto sarebbe comodo avere un audio che duri poco come quello che vi ho allegato, oppure potete provare impostando Use Static Sound su true. Passiamo ora nello specifico:Default Voicehttp://s25.postimg.org/utopgrq1r/screenshot_705.pngDefault: voice_defaultQuesto parametro contiene il nome del file senza estensione del suono SE da utilizzare come voce di default, cioè quando non viene specificata alcuna voce per il dialogo.Nel nostro caso possiamo usare voice_good come valore.Has Voice By Defaulthttp://s25.postimg.org/61ton9y8v/screenshot_706.pngDefault: trueQuando questo parametro è impostato su true tutti i dialoghi avranno una voce (se non specificata verrà usata quella di default), altrimenti, impostare il parametro su false. Voice Volumehttp://s25.postimg.org/aq9oignfj/screenshot_708.pngDefault: 80Questo valore imposta il volume del suono della voce, che deve essere compreso tra 0 e 100. Use Static Soundhttp://s25.postimg.org/yvae067q7/screenshot_709.pngDefault: falseQuesto parametro indica se si deve utilizzare il metodo static per suonare la voce.Se impostato su true allora i suoni non verranno accavallati, altrimenti impostare false. Fixed Voice Pitchhttp://s25.postimg.org/6jou34ntr/screenshot_710.pngDefault: falseSe impostato su true le voci avranno un tono fisso (che sarà 100 di default, ma si può modificare con il comando NMsgVoice.setPitch) e non randomico (compreso tra i valori di Voice Pitches che possono essere modificati col comando NMsgVoice.setPitches). Voice Pitcheshttp://s25.postimg.org/cynuzsujj/screenshot_711.pngDefault: 70 100 150Questo parametro indica una lista di valori possibili separati da spazi per il tono randomico della voce.I valori devono essere compresi tra 0 e 200.Questa impostazione verrà ignorata se Fixed Voice Pitch è impostato su true. Se i valori delle impostazioni dovessero risultare erronei, un NMessageVoiceException verrà mostrato come errore.In tal caso, un try-catch dovrebbe funzionare. --- Comandi plugin Per avere più controllo sulla voce, metto a disposizione alcune imposazioni istantanee per i messaggi di dialogo. Questi comandi vanno eseguiti prima del dialogo di riferimento e hanno effetto solo su quel medesimo dialogo, mentre sui successivi varranno le impostazioni del plugin se nessun altro comando le modifica. Per comodità e per evitare conflitti con altri plugin, ogni comando ha il prefisso NMsgVoice: NMsgVoice.setNameQuesto comando imposta il nome del file della voce da utilizzare per il dialogo successivo.Uso: NMsgVoice.setName voice_goodNMsgVoice.setVolumeQuesto comando imposta il volume della voce per il dialogo successivo.Il valore è numerico e deve essere compreso tra 0 e 100.Uso: NMsgVoice.setVolume 80NMsgVoice.setPanQuesto comando imposta la direzione dalla quale proviene la voce per il dialogo successivo.Il valore è numerico e deve essere compreso tra -100 e 100.Il che significa che se il valore è -100, il suono proverrà dall'estrema sinistra.Uso: NMsgVoice.setPan -100NMsgVoice.setPitchQuesto comando imposta il tono della voce per il dialogo successivo.Il valore è numerico e deve essere compreso tra 0 e 200.Viene ignorato se Fixed Voice Pitch è impostato su false.Uso: NMsgVoice.setPitch 100NMsgVoice.setPitchesQuando Fixed Voice Pitch è false, questo comando imposta i toni che può randomicamente assumere la voce del dialogo successivo.I valori sono numerici, separati da spazi e devono essere compresi tra 0 e 200.Uso: NMsgVoice.setPitches 70 100 150NMsgVoice.useFixedPitchQuesto comando modifica il parametro Fixed Voice Pitch del plugin per il dialogo successivo.Può essere true oppure false.Uso: NMsgVoice.useFixedPitch trueNMsgVoice.useStaticQuesto comando modifica il parametro Use Static Sound del plugin per il dialogo successivo.Può essere true oppure false.Uso: NMsgVoice.useStatic trueNMsgVoice.useDefaultQuesto comando imposta la voce di default per il dialogo successivo.Non ha parametri.Uso: NMsgVoice.useDefaultNMsgVoice.hasVoiceByDefaultQuesto comando modifica il parametro Has Voice By Default del plugin per il dialogo successivo.Può essere true oppure false.Uso: NMsgVoice.hasVoiceByDefault falseSe i valori delle impostazioni dovessero risultare erronei, un NMessageVoiceException verrà mostrato come errore.In tal caso, un try-catch dovrebbe funzionare. --- enjoy u.u Script //============================================================================= // NMessageVoice.js //============================================================================= /*: * @plugindesc Every letter in the dialogs has a voice. * @author Nomid * * @param Default Voice * @desc The sound to be played by default. * @default voice_default * * @param Has Voice By Default * @desc Whether or not the messages have a voice by default. * @default true * * @param Voice Volume * @desc Volume of the voice sound between 0 and 100. * @default 80 * * @param Use Static Sound * @desc If true, every instance of the sound will be stopped to play another one (can be useful for long sounds). * @default false * * @param Fixed Voice Pitch * @desc If true, all the messages will use a fixed pitch instead of a random one and the pitch will be set to 100 as default. * @default false * * @param Voice Pitches * @desc A list of possible pitches for the voice. * @default 70 100 150 * * @help * --- Prerequisites * First, you need at least one sound to use as a voice, to be placed in the SE folder as both m4a and ogg. * * --- Configuration * Using my plugin is really simple and requires just a few settings. * * First of all, every letter will have its sound, so they might overlap. * To avoid this effect you can shorten the audio length or try setting Use Static Sound on true. * * Let's now go to the technical specifications: * * --- Plugin Settings * > Default Voice * Default: voice_default * This contains the name of the SE sound to be used as default voice when no voice has been specified. * * > Has Voice By Default * Default: true * When this is true, all dialogs will have a voice (when not specified, the default voice will play). * * > Voice Volume * Default: 80 * This sets the voice volume; values between 0 and 100. * * > Use Static Sound * Default: false * Whether to use the Static sound method. * When it is true, sounds will not overlap. * * > Fixed Voice Pitch * Default: false * If true, voices will play with a fixed pitch (which is 100 by default, you can modify with the command NMsgVoice.setPitch). * * > Voice Pitches * Default: 70 100 150 * A list of pssible voice pitches. * Values between 0 and 200, separated by spaces. * Ignored if Fixed Voice Pitch is true. * * If an invalid setting is given, a NMessageVoiceException is thrown. * Try-catch should work. * * --- Plugin Commands * These commands modifies the settings for the next dialog only. * To avoid conflicts with other plugins, each command has the prefix NMsgVoice.: * * > NMsgVoice.setName * This command sets the file name for the next dialog. * Example: * NMsgVoice.setName some_voice * * > NMsgVoice.setVolume * Sets the volume of the voice for the next dialog. * Values between 0 and 100. * Example: * NMsgVoice.setVolume 80 * * > NMsgVoice.setPan * This command sets the audio panning of the voice for the next dialog. * Values between -100 and 100, so -100 means "far left". * Example: * NMsgVoice.setPan -100 * * > NMsgVoice.setPitch * This command sets the voice pitch for the next dialog. * Values between 0 and 200. * Ignored if Fixed Voice Pitch is false. * Example: * NMsgVoice.setPitch 100 * * > NMsgVoice.setPitches * If Fixed Voice Pitch is false, sets the random voice pitches for the next dialog. * Values between 0 and 200, separated by spaces. * Ignored if Fixed Voice Pitch is true. * Example: * NMsgVoice.setPitches 70 100 150 * * > NMsgVoice.useFixedPitch * Sets the parameter Fixed Voice Pitch for the next dialog. * true or false. * Example: * NMsgVoice.useFixedPitch true * * > NMsgVoice.useStatic * Sets the parameter Use Static Sound for the next dialog. * true or false. * Example: * NMsgVoice.useStatic true * * > NMsgVoice.useDefault * Uses the default voice for the next dialog. * No parameters. * Example: * NMsgVoice.useDefault * * > NMsgVoice.hasVoiceByDefault * Sets the parameter Has Voice By Default for the next dialog. * true or false. * Example: * NMsgVoice.hasVoiceByDefault false * * If an invalid setting is given, a NMessageVoiceException is thrown. * Try-catch should work. * * --- enjoy u.u */ var Imported = Imported || {}; Imported.NOMID_Message_Voice = true; !function() { "use strict"; /******* UTILS *******/ // Try-Catch works function NMessageVoiceException(message) { SceneManager.stop(); AudioManager.stopAll(); Graphics.printError('NMessageVoice Exception', message); return new Error("NMessageVoice Exception: " + message); } function _parseBool(val) { return Boolean(val == "true" || parseFloat(val) == true || parseInt(val) == true); } function _param(what, typ) { var val = PluginManager.parameters("NMessageVoice")[what]; switch (typ) { case "str": return String(val); break; case "bool": return _parseBool(val); break; case "int": return parseInt(val); break; case "float": return parseFloat(val); break; } } function _falls_in_range(val, range, func) { if(parseFloat(range[0]) <= parseFloat(val) && parseFloat(range[1]) >= parseFloat(val)) return parseFloat(val); else NMessageVoiceException(func + "(): Value \"" + String(val) + "\" does not fall in the required range."); } function _parse_pitches(val, func) { if(typeof val === "object") val.forEach(function (v, i) { val[i] = _falls_in_range(v, [0, 200], func); }); else return _parse_pitches(val.split(" "), func); return val; } /******* UTILS END *******/ /******* PLUGIN PRIVATES *******/ var Voice = function(name, volume, pan) { this.name = name; this.volume = volume; this.pitch = 100; this.pan = pan || 0; }; var _pars = { has_voice_by_default: _param("Has Voice By Default", "bool"), voice_default: _param("Default Voice", "str"), voice: new Voice(_param("Default Voice", "str"), _param("Voice Volume", "float")), useStatic: _param("Use Static Sound", "bool"), fixed_pitch: _param("Fixed Voice Pitch", "bool"), pitch_list: _param("Voice Pitches", "str") }; var _default_pars = _pars; /******* PLUGIN PRIVATES END *******/ /******* OVERRIDES ********/ var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function (command, args) { _Game_Interpreter_pluginCommand.call(this, command, args); switch (command) { case "NMsgVoice.setName": _pars.voice.name = String(args[0]); break; case "NMsgVoice.setVolume": _pars.voice.volume = _falls_in_range(args[0], [0, 100], "NMsgVoice.setVolume"); break; case "NMsgVoice.setPan": _pars.voice.pan = _falls_in_range(args[0], [-100, 100], "NMsgVoice.setPan"); break; case "NMsgVoice.setPitch": _pars.pitch_list = [_falls_in_range(args[0], [0, 200], "NMsgVoice.setPitch")]; break; case "NMsgVoice.setPitches": _pars.pitch_list = _parse_pitches(args, "NMsgVoice.setPitches"); break; case "NMsgVoice.useFixedPitch": _pars.voice.fixed_pitch = _parseBool(args[0]); break; case "NMsgVoice.useDefault": _pars.voice.name = "default"; break; case "NMsgVoice.useStatic": _pars.useStatic = _parseBool(args[0]); break; case "NMsgVoice.hasVoiceByDefault": _pars.has_voice_by_default = _parseBool(args[0]); break; } }; Window_Message.prototype.processVoice = function () { _pars.voice.pitch = _parse_pitches(_pars.pitch_list)[Math.floor(Math.random() * _pars.pitch_list.length)]; if (_pars.voice.name == "null" || _pars.voice.name == "default") _pars.voice.name = _pars.voice_default; if (_pars.useStatic) AudioManager.playStaticSe(_pars.voice); else AudioManager.playSe(_pars.voice); }; var _WMESS_PROC_NORM_CHAR = Window_Message.prototype.processNormalCharacter; Window_Message.prototype.processNormalCharacter = function (textState) { if (_pars.has_voice_by_default) this.processVoice(); if (this.isEndOfText(this._textState)) _pars = _default_pars; _WMESS_PROC_NORM_CHAR.apply(this, arguments); }; /******* OVERRIDES END *******/ }(); Bug e conflitti notiN/A Termini di utilizzoCredit & link me e il pluginvoice_good.zip Edited August 8, 2016 by ita_fox Ho una pistola a raggi R e non ho paura di usarla!! (generalmente la uso su di me, quindi...)Hai quella canzoncina in testa, famosissima, ma non sai come si chiama??? Dai, che forse lo so io ;) Progetto in corso: ------- Ancora senza nome --------Progresso: [--------------------------------------------------0%] Stato corrente: ---------------------------------------------------------------------Mie creazioni...La musica della volpe... http://www.rpg2s.net/forum/index.php/topic/18843-la-musica-della-volpe/La Nuova musica della volpe... http://www.rpg2s.net/forum/index.php/topic/20899-la-nuova-musica-della-volpe/ Mio soundcloud... https://soundcloud.com/nomid-unmusMio deviantart... http://nomidfox.deviantart.com/ Citazioni degli utenti (non voglio pavoneggiarmi, giuro!) Mmmh... è molto puccioso così che dorme! [...] questo è più carino e simpatico XD...http://www.mediafire.com/convkey/8f00/bpccrnvcrkt0q0wfg.jpghttp://www.rpg2s.net/forum/index.php/topic/6762-pa-le-vostre-opere-di-pixelart/page-176 Nonostante io abbia studiato musica e sia un musicista, lascio le lezioni di composizione ai "grandi maestri" del forum, con i loro schemi, strutture di base, ecc... Da parte mia penso che il brano sia bellissimo.Delicato e semplice, trasmette quasi un'idea di purezza. Inoltre la sua ripetitività è coerente con il titolo "La strada infinita", poiché attribuisce al brano un senso di continuità, senza per questo diventare frustrante per chi lo ascolta. Bel lavoro!http://www.rpg2s.net/forum/index.php/topic/18213-la-mia-prima-canzone-di-tre-minuti/ Questa è decisamente una BGM come si deve.http://www.rpg2s.net/forum/index.php/topic/18265-chiptune-dungeon/ Figata sto topic XD!http://www.rpg2s.net/forum/index.php/topic/18679-le-canzoni-che-conoscono-tutti-ma-di-cui-non-si-sa-il-nome/page-2 Link to comment Share on other sites More sharing options...
Guardian of Irael Posted August 8, 2016 Share Posted August 8, 2016 Ottima la descrizione del plugin con screen punto per punto e comandi! :3 Essendoci il set_name si possono creare quindi diversi suoni per diversi personaggi, bel lavoro! ^ ^ (\_/)(^ ^) <----coniglietto rosso, me! (> <) Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^ http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^ http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^ REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^ 🖤http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gifhttp://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3http://i.imgur.com/MpaUphY.jpg by Idriu E:3Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44) http://i.imgur.com/PgUqHPm.pngUfficiale"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.pngGrazie Testament XD Fan n°1 ufficiale di PQ! :DVivail Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che nonavevo programmi di grafica per fare un banner su questo pc XD (ora ho dinuovo il mio PC veramente :D) Rosso Guardiano dellahttp://i.imgur.com/Os5rvhx.pngRpg2s RPG BY FORUM:Nome: Darth Reveal PV totali 2PA totali 16Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.Bozze vesti non definitive qui.Equipaggiamento:Indossa:60$ e 59$ divisi in due tasche interneLevaitanSpada a due mani elsa lungaGuanti del Defender (2PA)Anello del linguaggio animale (diventato del Richiamo)Scrinieri da lanciere (2 PA)Elmo del Leone (5 PA)Corazza del Leone in Ferro Corrazzato (7 PA) ZAINO (20) contenente:Portamonete in pelle di cinghiale contenente: 100$Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)CordaBottiglia di idromeleForma di formaggioTorcia (serve ad illuminare, dura tre settori)Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)Ampolla BiancaSemi di Balissa CAVALLO NORMALE + SELLA (30 +2 armi) contentente:66$Benda di pronto soccorso x3Spada a due maniFagotto per Adara (fazzoletto ricamato) Link to comment Share on other sites More sharing options...
ita_fox Posted August 8, 2016 Author Share Posted August 8, 2016 (edited) Ottima la descrizione del plugin con screen punto per punto e comandi! :3Ho cercato di essere più semplice, diretto e dattagliato possibile u.u Essendoci il set_name si possono creare quindi diversi suoni per diversi personaggi, bel lavoro! ^ ^Grazie u.u Edited August 8, 2016 by ita_fox Ho una pistola a raggi R e non ho paura di usarla!! (generalmente la uso su di me, quindi...)Hai quella canzoncina in testa, famosissima, ma non sai come si chiama??? Dai, che forse lo so io ;) Progetto in corso: ------- Ancora senza nome --------Progresso: [--------------------------------------------------0%] Stato corrente: ---------------------------------------------------------------------Mie creazioni...La musica della volpe... http://www.rpg2s.net/forum/index.php/topic/18843-la-musica-della-volpe/La Nuova musica della volpe... http://www.rpg2s.net/forum/index.php/topic/20899-la-nuova-musica-della-volpe/ Mio soundcloud... https://soundcloud.com/nomid-unmusMio deviantart... http://nomidfox.deviantart.com/ Citazioni degli utenti (non voglio pavoneggiarmi, giuro!) Mmmh... è molto puccioso così che dorme! [...] questo è più carino e simpatico XD...http://www.mediafire.com/convkey/8f00/bpccrnvcrkt0q0wfg.jpghttp://www.rpg2s.net/forum/index.php/topic/6762-pa-le-vostre-opere-di-pixelart/page-176 Nonostante io abbia studiato musica e sia un musicista, lascio le lezioni di composizione ai "grandi maestri" del forum, con i loro schemi, strutture di base, ecc... Da parte mia penso che il brano sia bellissimo.Delicato e semplice, trasmette quasi un'idea di purezza. Inoltre la sua ripetitività è coerente con il titolo "La strada infinita", poiché attribuisce al brano un senso di continuità, senza per questo diventare frustrante per chi lo ascolta. Bel lavoro!http://www.rpg2s.net/forum/index.php/topic/18213-la-mia-prima-canzone-di-tre-minuti/ Questa è decisamente una BGM come si deve.http://www.rpg2s.net/forum/index.php/topic/18265-chiptune-dungeon/ Figata sto topic XD!http://www.rpg2s.net/forum/index.php/topic/18679-le-canzoni-che-conoscono-tutti-ma-di-cui-non-si-sa-il-nome/page-2 Link to comment Share on other sites More sharing options...
leooo0010 Posted August 8, 2016 Share Posted August 8, 2016 Bel plugin; è utile in molti ambiti Before the apocalypse... Team Project 64-Bit http://i.imgur.com/6bcoRgE.png Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now