Besoin D'aide Pour Script Musique
#1
Posté 30 mars 2009 - 21:30
Je suis un nouveau modeur, enfin je retouche des mods deja fais pour mon usage personnel car je ne suis pas assez doué pour en faire un moi même mais je bloque sur un petit truc!!
Je sais pas si vous connaissais le mod du dome de l'alchimiste (position seyda nihyn) il possede une harpe et un livre ki fé passé 1 musique soit en boucle soit en une fois.
J'aimerais que quelqu'un si il y arrive me fasse un seul script pour que quand je click sur la harpe se me fasse défiler des musique ke je veut que j'aurais appeler Dark1 , Dark2 , Dark3 , .... jusqu'à Dark20 placé dans le dossier Dark dans la section Music dans Data Files.
Des que je click sur la harpe sa enclenche la premiere musique des ke je reactive la harpe sa passe a la suivante et des que j'arrive à la fin de la 20 la harpe arrete de produire la musique et je doit reclicker dessus pour relancer la lecture!!
Si quelqu'un comprend ce que je veut faire peut-il me faire mon script svp pour apres je c k'il vous faudra des info que j'ai que je vous donnerais.
Vous pouvez me contacter à l'adresse : dark-arya@hotmail.fr
Svp aidez moi!!
Merci d'avance
#2
Posté 31 mars 2009 - 07:29
darkarya, le 30.03.2009 à 22:29, dit :
Je suis un nouveau modeur, enfin je retouche des mods deja fais pour mon usage personnel car je ne suis pas assez doué pour en faire un moi même mais je bloque sur un petit truc!!
Je sais pas si vous connaissais le mod du dome de l'alchimiste (position seyda nihyn) il possede une harpe et un livre ki fé passé 1 musique soit en boucle soit en une fois.
J'aimerais que quelqu'un si il y arrive me fasse un seul script pour que quand je click sur la harpe se me fasse défiler des musique ke je veut que j'aurais appeler Dark1 , Dark2 , Dark3 , .... jusqu'à Dark20 placé dans le dossier Dark dans la section Music dans Data Files.
Des que je click sur la harpe sa enclenche la premiere musique des ke je reactive la harpe sa passe a la suivante et des que j'arrive à la fin de la 20 la harpe arrete de produire la musique et je doit reclicker dessus pour relancer la lecture!!
Si quelqu'un comprend ce que je veut faire peut-il me faire mon script svp pour apres je c k'il vous faudra des info que j'ai que je vous donnerais.
Vous pouvez me contacter à l'adresse : dark-arya@hotmail.fr
Svp aidez moi!!
Merci d'avance
Une fois à 20, tu le réinitialise.
Pour la musique, tu regarde quelle est la valeur de ton compteur (1 à 20), et tu lances la bonne musique.
En avant !
Not Quite Dead, le 22.06.2006 à 19:42, dit :
Fervent Partisan de l'Immuabilité Avatarienne.
#3
Posté 31 mars 2009 - 08:15
Valeur, Incremente, activate lol
Je n'ai jamais fais de script et je débute tout joust avec le TESC tu pourrais m'expliquer comment faire avec un peu plus de detail ou avec un debut ou exemble de script?? Je suis perdu
#4
Posté 31 mars 2009 - 08:20
darkarya, le 30.03.2009 à 22:29, dit :
A quoi ressemble le ou les scripts des objets que tu mentionnes? Les as-tu déjà regardés dans le TESCS?
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV
#5
Posté 31 mars 2009 - 19:58
Pour que les musique tourne en boucle voici le script de base:
Citation
; Utilise la Var globale "Gwen_SreamMusic"
; Merci à Mordicus sur le forum : http://www.wiwiland....orrowind/forum/
begin Gwen_Harp_boucle
short doOnce
if ( OnActivate == 1 )
if (doOnce == 0)
if ( Gwen_SreamMusic < 201 ); la longueur du morceau de musique
if ( Gwen_SreamMusic == 0 )
streammusic "Gwen\Gwen_Sheebeg & Sheemore.mp3" ;
set doOnce to 1
endif
set Gwen_SreamMusic to ( Gwen_SreamMusic + GetSecondsPassed )
return
endif
set Gwen_SreamMusic to 0
else
streammusic "Gwen\Gwen_Sheebeg & Sheemore end.mp3"
set Gwen_SreamMusic to 0
set doOnce to 0
endif
endif
end Gwen_Harp_boucle
Pour une lecture simple des musique voici le script:
Citation
; Joue une fois le morceau.
Begin Gwen_Harp_simple
short doOnce
if ( OnActivate == 1 )
if (doOnce == 0)
streammusic "Gwen\Gwen_Sheebeg & Sheemore.mp3" ;
Activate
set doOnce to 1
else
streammusic "Gwen\Gwen_Sheebeg & Sheemore end.mp3"
set doOnce to 0
endif
endif
End Gwen_Harp_simple
Je tient à rappeler que je veut faire tourner 20 musique que je nommerais Dark1 ; Dark2 ; Dar3; jusqu'à Dark20
Qui seront placées dans un dossier Dark dans la section Data Files\Music.
Si vous avez d'autres question n'hésitez pas mais svp aidez moi à créer ce script je veut vrément écouter ses musique en activant la harpe (script musique simple)ou en activant le livre(script musique en boucle).
Je sais pas si c'est possible mais est-ce possible que chaque fois que j'active l'objet sa passe à la musique suivant et à la derniere sa arrete la musique??
Si oui pouvez vous intégré ceci au script je sais que dans le script de base sa le faisais et j'aimerais que sa continue dans le nouveau script!!
Merci à tous pour votre attention!!
Amicalement
#6
Posté 31 mars 2009 - 20:11
Comme l'a dit Finraïl il faut une variable d'incrément, c'est à dire une variable qui prend +1 à chaque activation de la harpe donc :
begin music short doOnce if ( OnActivate == 1 ); je détecte si on active la harpe ... set doOnce to doOnce + 1; j'incrémente if ( doOnce == 1 ) streammusic "morceau1.mp3 endif if (doOnce == 2 ) streammusic "morceau2.mp3" endif ... if ( doOnce == 20 ) streammusic "morceau20.mp3 endif endif end
P.S : Ici les musiques ne tournent pas en boucle, il faut adapter si tu veux les faire tourner en boucle ...
Voilà.
Edit :
- Est-ce que tu veux que les morceaux de musique soit joué en boucle ? par exemple le morceau 1 se répète tant que tu n'appuies pas sur la harpe ...
- Une fois les 20 morceaux joués la harpe s'arrête en appuyant un dernière fois. Si tu appuies de nouveau est-ce que la harpe ne joue plus ou joue-t-elle le morceau 1 ?
Modifié par Post-it, 31 mars 2009 - 20:44.
Y'a le Post-it et le Post-at ...
Membre auto-proclamé des défenseurs des post-its sur forum, maintenant que je sais ce que c'est ...
#7
Posté 31 mars 2009 - 20:48
Post-it, le 31.03.2009 à 21:10, dit :
streammusic "morceau2.mp3"
Un truc à prendre en compte avant d'utiliser streammusic :
(dans le genre tout change, tout lasse, tout casse... les certitudes d'hier ne sont plus celles d'aujourd'hui )
Il y a la situation avant le Morrowind Code Patch : streammusic envoie la purée et met la musique de fond à plein volume même chez ceux qui jouent sans musique...
Avec le MCP, streammusic ne touche plus au volume. Lorsqu'il est réglé à zéro, on entend rien même si l'envoi de la musique est un effet voulu par un moddeur (effet dramatique... tout ça)
Moralité : Le MCP étant en passe de devenir un standard autant que le PNO, utilisez streammusic pour vous même si vous aimez jouer en musique ou pour quelque chose de non crucial. Si vous voulez faire de la mise en scène, pensez plutôt à PlaySound
Coaching de PNJs chez Morrowind Renaissance
#8
Posté 31 mars 2009 - 21:07
Post-it, le 31.03.2009 à 21:10, dit :
Voilà.
Edit :
- Est-ce que tu veux que les morceaux de musique soit joué en boucle ? par exemple le morceau 1 se répète tant que tu n'appuies pas sur la harpe ...
- Une fois les 20 morceaux joués la harpe s'arrête en appuyant un dernière fois. Si tu appuies de nouveau est-ce que la harpe ne joue plus ou joue-t-elle le morceau 1 ?
Alors pour te repondre je veut bien que les morceaux soit jouer en boucle et change à chaque fois que j'active l'objet!!
Et des que j'active l'objet avec les 20 morceaux joué la harpe s'arrete!!
Si tu y arrive je te remerci de tout mon coeur!!!!!!!
En tout cas merci beaucoup c'est deja un bon début qui me manquait!!
#9
Posté 31 mars 2009 - 21:18
J'essayerais déjà avec le script que je t'ai donné ... ( comme l'a dit abg, faire jouer des sons peut se révéler galère donc utilise playsound vérifie bien la fréquence des musiques ... Cf MSfD8)
Bref tu vois ce que ça fait ...
Une fois que tu as réussi à entendre une musique ( c'est déjà un bon début crois en ma petite expérience ... ) on pourra essayer de faire exactement ce que tu demandes ...
Maintenant il y a des personnes beaucoup plus douées sur ce forum que moi et qui pourrait te donner la réponse de suite ... Mais je ne pense pas que cela te sera utile ...
donc commence par ce script simple :
begin music if ( OnActivate == 1 ) PlaySound, "SoundID" endif endet mets le sur ta harpe ... Si cela ne fonctionne pas c'est que ton fichier son ne passe pas ...
Y'a le Post-it et le Post-at ...
Membre auto-proclamé des défenseurs des post-its sur forum, maintenant que je sais ce que c'est ...
#10
Posté 31 mars 2009 - 21:30
Pour intégrer un son au TESCS, il faut cliquer sur l'icône Sounds (un menu s'ouvre avec les sons du jeu) puis choisir 'new' et parcourir ses dossiers jusqu'à parvenir au son que l'on souhaite intégrer. Il faut aussi donner une ID au son (un nom) qui est celle qui sera utilisée dans la commande playsound:
Playsound, ID_du_son
Il est donc possible que l'ID_du_son et le titre du son soient différents.
Tant que le son n'a pas une ID dans le TESCS, la commande playsound ne marchera pas.
- You were a doctor!
- I had bad days! »
John Watson, en train d'étrangler Sherlock Holmes, Sherlock - A Scandal in Belgravia (2012)
---------------
Vous aussi rejoignez les Fervents Partisans de l'Immuabilité Avatarienne!
---------------
VGM impénitent (était-il besoin de le préciser?)
---------------
Paterfamilias niv.IV
#11
Posté 01 avril 2009 - 01:39
Il y a comme toujours plusieurs moyens de faire. Concernant "streammusic", j'ai horreur de cette fonction car je joue et teste sans musique et sans le MCP. A chaque fois qu'un script lance "streammusic", je dois aller dans les options pour couper à nouveau mon volume !
Je préfère donc les divers "PlaySound" mais celles-ci sont en partie boguées également. "PlaySoundVP" et "PlaySound3DVP" sont sensées prendre en compte l'indication de volume ; hors, chez moi le volume est toujours au maximum (1.0), quelque soit la valeur que je lui donne. Par contre, les valeurs de "pitch" (hauteur) sont bien prises en compte par ces fonctions.
Donc, si on veut jouer un son avec un volume différent que celui établi pour l'ID du son, il faut utiliser "PlayLoopSound3DVP" qui elle, prend bien en compte la valeur de volume que l'on donne.
"PlaySound" et "PlaySoundVP" jouent le son sans point d'origine (comme une musique d'ambiance).
"PlaySound3D", "PlaySound3DVP" et "PlayLoopSound3DVP" font sortir le son de l'objet (comme un juke-box). Donc, suivant la position du PJ par rapport à l'objet, on entendra la musique à gauche, au centre ou à droite.
Ceci dit, voici quelques exemples de scripts pour ce que tu souhaites. Ne te contente pas de les recopier mais étudie-les. Le but est d'apprendre comment ça fonctionne puisque tu veux "moder".
A chaque fois que tu actives l'objet, celui-ci joue une musique différente. Si tu actives à nouveau pendant qu'une musique joue, elle est remplacée par la suivante. La musique n'est pas jouée en boucle :
Même chose pour celui-ci, sauf qu'il ne prendra en compte une activation que si aucune musique n'est en cours. (Pour qu'elle ne soit pas coupée brusquement) :
Celui-là joue les musiques en boucle sans pouvoir les arrêter. Activer l'objet change juste de musique :
Le dernier joue les musiques en boucle mais si tu actives l'objet pendant qu'une musique joue, ça l'arrête immédiatement :
Important :
- Les "PlaySoundXXX" qui ont "3D" dans leur nom ne sont audibles que si le PJ est à proximité de l'objet. Plus le PJ s'éloigne, plus le volume baisse. Les autres sont audibles au volume maximal dans toute la cellule où se trouve l'objet.
- En utilisant les "PlaySound" pour jouer de la musique, tu dois tenir compte que les joueurs jouant avec la musique d'ambiance entendront les deux à la fois. Si tu veux empêcher la cacophonie, il faut que tu lances en même temps une musique vide aussi longue que la plus longue de tes musiques (ou répétée) avec "streammusic".
Ce qui a encore l'effet négatif de mettre le volume des options à fond quand on n'utilise pas MCP !
- Lis et relis le MSfD.
- Fais des petits essais pour comprendre une fonction (comme suggéré par Post-it).
- Relis le MSfD.
#12
Posté 01 avril 2009 - 14:16
JE vous en suis tres reconnaissant et je vais essayé sa dessuite!!
Encore merci.
Si j'ai des probleme dans la réalisation du script je vous en informe pour que vous puissiez m'aider une fois encore.
Amicalement
J'ai de nouveau une nouvelle question!!
Est ce que le scripts des musique en boucle que tu m'a passé peut s'adapter si on le lit a un item qui quand on l'équipe lance le script donc lance les musiques et des k'on le deséquipe la musique s'arrete.
C'est mon nouveau projet et j'ai encore besoin de vous!!
J'ai aussi un probleme avec mon ancien script j'ai quand meme choisir de garder streammusic plutot que playsound mais j'ai un bug dans le script et je trouve pas ou
Voici le script finit svp aidez moi encore une fois
Citation
short doOnce
if ( OnActivate == 1 ); je détecte si on active la harpe ...
set doOnce to doOnce + 1; j'incrémente
if ( doOnce == 1 )
streammusic "Dark\Dark1.mp3
endif
if (doOnce == 2 )
streammusic "Dark\Dark2.mp3"
endif
if (doOnce == 3 )
streammusic "Dark\Dark3.mp3"
endif
if (doOnce == 4 )
streammusic "Dark\Dark4.mp3"
endif
if (doOnce == 5 )
streammusic "Dark\Dark5.mp3"
endif
if (doOnce == 6 )
streammusic "Dark\Dark6.mp3"
endif
if (doOnce == 7 )
streammusic "Dark\Dark7.mp3"
endif
if (doOnce == 8 )
streammusic "Dark\Dark8.mp3"
endif
if (doOnce == 9 )
streammusic "Dark\Dark9.mp3"
endif
if (doOnce == 10 )
streammusic "Dark\Dark10.mp3"
endif
if (doOnce == 11 )
streammusic "Dark\Dark11.mp3"
endif
if (doOnce == 12 )
streammusic "Dark\Dark12.mp3"
endif
if (doOnce == 13 )
streammusic "Dark\Dark13.mp3"
endif
if (doOnce == 14 )
streammusic "Dark\Dark14.mp3"
endif
if (doOnce == 15 )
streammusic "Dark\Dark15.mp3"
endif
if (doOnce == 16 )
streammusic "Dark\Dark16.mp3"
endif
if (doOnce == 17 )
streammusic "Dark\Dark17.mp3"
endif
if (doOnce == 18 )
streammusic "Dark\Dark18.mp3"
endif
if (doOnce == 19 )
streammusic "Dark\Dark19.mp3"
endif
if ( doOnce == 20 )
streammusic "Dark\Dark20.mp3
endif
if (doOnce == 21 )
streammusic "Dark\Dark21.mp3"
endif
if (doOnce == 22 )
streammusic "Dark\Dark22.mp3"
endif
endif
End Dark
Modifié par darkarya, 01 avril 2009 - 16:33.
#13
Posté 01 avril 2009 - 17:14
darkarya, le 01.04.2009 à 15:15, dit :
darkarya, le 01.04.2009 à 15:15, dit :
Citation
PS : Dans tes messages, place les scripts dans des "Codebox" ; ils seront plus facile à lire. Si tu veux que l'insertion en "CodeBox" soit sans ascenseur, enlève "box" des balises de début et de fin de l'insertion "CodeBox". Et tu peux en plus les mettre en "Spoiler" comme j'ai fait pour les miens, pour éviter de trop grands messages.
#14
Posté 01 avril 2009 - 17:54
Not Quite Dead, le 22.06.2006 à 19:42, dit :
Fervent Partisan de l'Immuabilité Avatarienne.
#15
Posté 01 avril 2009 - 18:01
Citation
Citation
C'est moi qui l'ai écrit ... Veux-tu dire par là que les parenthèses sont obligatoires ?
Citation
Citation
Citation
Et des que j'active l'objet avec les 20 morceaux joué la harpe s'arrete!!
Modifié par Post-it, 01 avril 2009 - 19:09.
Y'a le Post-it et le Post-at ...
Membre auto-proclamé des défenseurs des post-its sur forum, maintenant que je sais ce que c'est ...
#16
Posté 01 avril 2009 - 19:12
elendell, le 01.04.2009 à 18:13, dit :
darkarya, le 01.04.2009 à 15:15, dit :
Citation
Tu me dit que cette instruction est mal écrite mais faut que je la remplace par quoi??
Et pour le "OnPCEquip" Je doit le placer au début du script mais ou exactement j'ai du mal à voir meme avec le MSfD8 (p. 35/36)
Merci d'avance.
Pour repondre à Finraïl je ne veut pas faire de boucle juste passer la musique une seule fois!!
Mais merci du conseil
#17
Posté 01 avril 2009 - 20:16
darkarya, le 01.04.2009 à 20:11, dit :
Tu me dit que cette instruction est mal écrite mais faut que je la remplace par quoi??
Et pour le "OnPCEquip" Je doit le placer au début du script mais ou exactement j'ai du mal à voir meme avec le MSfD8 (p. 35/36)
Il paraît qu'il faut mieux mettre des parenthèses... Ceci dit pour ce genre d'incrément je n'ai jamais eu de problèmes, mais par acquis de conscience j'ai fini par prendre l'habitude d'en mettre :
Set DoOnce To ( DoOnce + 1 )
OnPCEquip fait partie des variables réservées auxquelles le moteur de jeu donne un sens particulier. Il faut donc la déclarer en même temps que les autres variables :
Short OnPCEquip
Après quoi tu n'as plus qu'à la tester, le jeu la passe automatiquement à 1 lorsque tu "équipes" l'objet
If ( OnPCEquip == 1 ) Blablabla... Set OnPCEquip To 0 EndIf
Coaching de PNJs chez Morrowind Renaissance
#18
Posté 01 avril 2009 - 22:25
darkarya, le 01.04.2009 à 20:11, dit :
elendell dit :
Pour "OnPCEquip", abg t'a répondu avec justesse. Mais, dans ton cas, il ne faut pas que tu mettes "Set OnPCEquip To 0".
Si tu le mets, "OnPCEquip" détectera à chaque fois que tu équiperas l'objet de la même manière que "OnActivate" détecte si on active l'objet.
Mais un objet ne peut pas rester activé alors qu'il peut rester équipé. Donc, "OnActivate" se remet à 0 tout seul dès qu'il est utilisé mais "OnPCEquip" ne se remet pas à 0 tout seul tant que l'objet reste équipé.
Si tu voulais uniquement que la musique se déclenche à chaque fois que tu équipes l'objet, il aurait bien fallu ajouter "Set OnPCEquip To 0".
Hors, tu veux également que la musique s'arrête si l'objet n'est plus équipé. Il te faut donc savoir si l'objet est toujours équipé ou non.
Si tu n'ajoutes pas "Set OnPCEquip To 0", tu peux le savoir car "OnPCEquip" reste à 1 tant que l'objet reste équipé. Quand tu déséquipes l'objet, ça repasse tout seul à 0. Il te suffit donc de vérifier si "OnPCEquip" est à 1 ou à 0 pour savoir si l'objet est oui ou non équipé.
Mais ça ne suffit pas car il ne faut pas déclencher la musique si l'objet est équipé mais uniquement s'il vient d'être équipé. Sinon, il lancera la musique à chaque frame.
Il ne faut donc pas faire : Si OnPCEquip est à 1 -> lance la musique
mais : Si OnPCEquip était à 0 et qu'il passe à 1 -> lance la musique
Pour faire ça, tu pourrais utiliser "Set OnPCEquip To 0" comme l'a dit abg. Mais comme tu veux aussi savoir le moment ou tu déséquipes l'objet, tu dois laisser "OnPCEquip" à 1 tant que l'objet est équipé.
Il te faut donc utiliser une variable : Si "OnPCEquip" est à 1 et que "variable" est à 0 -> lance la musique et mets "variable" à 1.
A la frame suivante, "OnPCEquip" est toujours à 1 et "variable" est aussi à 1. Il ne lancera donc pas à nouveau la musique.
Essaye déjà de faire ça des deux façons possibles : 1) sans variable mais en utilisant "Set OnPCEquip To 0" et 2) sans "Set OnPCEquip To 0" mais avec une variable.
Quand tu arriveras à faire ça, on passera à la suite : comment stopper la musique.
#19
Posté 02 avril 2009 - 20:34
J'ai essayé aussi de rajouter une derniere etape qui fait que sa stop le script quand j'ai passé la 20eme musique.
Il y a surement des erreurs surtout sur la fin à l'étape 21.
Je pense m'être trompé sur comment stoper le script mais je compte sur vous pour m'aiguiller apres avoir reussit à faire marcher ce script je passe a celui de l'anneau en suivant les conseil de elendell!!
Modifié par darkarya, 02 avril 2009 - 20:37.
#20
Posté 02 avril 2009 - 20:54
Juste un truc qui me saute aux yeux (avant dernière ligne) :
darkarya, le 02.04.2009 à 21:33, dit :
Il faut écrire :
Set etape to 0
Modifié par abg, 02 avril 2009 - 20:54.
Coaching de PNJs chez Morrowind Renaissance
#21
Posté 03 avril 2009 - 04:35
abg, le 02.04.2009 à 21:53, dit :
elendell dit :
darkarya, le 02.04.2009 à 21:33, dit :
C'est l'ID des sons que tu dois marquer dans le script, pas les noms des "musique.wav". Au fait, je crois qu'il faut obligatoirement des fichiers "wav" et pas des "mp3". Il existe des logiciels gratuits pour transformer les "mp3" en "wav".
darkarya, le 02.04.2009 à 21:33, dit :
Il faut donc à la place empêcher qu'il continue à agir et réduire au minimum le nombre d'instructions qu'il va lire dans chaque frame, pour ne pas surcharger l'ordinateur.
On utilise donc "return" qui renvoie immédiatement au début du script et termine la frame, sans lire ce qui suit.
Voici deux exemples, essaye les deux :
#22
Posté 03 avril 2009 - 16:41
Bon le script fonctionne bien mais les musique s'enclenche que quand je sort de la cellule où j'ai activé l'objet qui lance le script vous avez une idée??
Voici le script:
Merci d'avance
Modifié par darkarya, 03 avril 2009 - 10:23.
#23
Posté 04 avril 2009 - 01:11
EDIT : Commence par stopper le son en cours.
#24
Posté 06 avril 2009 - 18:09
Par contre je voudrais que la musique s'arrete quand je sort de la cellule comment il faut faire?
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)