0
[Resolu]Comment Mettre Un Son
Débuté par
Malcom X
, 02 août 2010 - 12:04
10 réponses à ce sujet
#1
Posté 02 août 2010 - 12:04
Bonjour , il y a peu , j'ai créer un objet , (meshes et icons) , mais j'aimerai mettre un son de ma création (en wav) à cette objet , le seul problème c'est comment le mettre ?
Merci d'avance !
Merci d'avance !
#2
Posté 02 août 2010 - 12:17
Un son joué en boucle ?
Si oui, c'est tout simple comme script, c'est même le premier script que j'ai réalisé de ma vie (j'étais fière !).
Il suffit de regarder les scripts sur les activateurs jouant des sons, celui-là par exemple:
Si oui, c'est tout simple comme script, c'est même le premier script que j'ai réalisé de ma vie (j'étais fière !).
Il suffit de regarder les scripts sur les activateurs jouant des sons, celui-là par exemple:
begin Sound_Crystal_Ringing if ( CellChanged == 0 ) if ( GetSoundPlaying "Crystal Ringing" == 0 ) PlayLoopSound3DVP "Crystal Ringing", 1.0, 1.0 endif endif end
#3
Posté 02 août 2010 - 13:49
non , à un objet , exemple lorsqu'on tire à l'arbalète il y a un son ! C'est ce son là que j'aimerai éditer
#4
Posté 02 août 2010 - 14:02
Malcom X, le 02 août 2010 - 13:49, dit :
non , à un objet , exemple lorsqu'on tire à l'arbalète il y a un son ! C'est ce son là que j'aimerai éditer
Dans ce cas il faut regarder dans le menu Gameplay/Sounds. C'est là que sont affectés les différents sons utilisés par le jeu. Pour l'arbalète par exemple tu verras les entrées "Item Weapon Crossbow Down" et "Item Weapon Crossbow Up".
Mais si tu modifies ces sons, ça concernera toutes les arbalètes du jeu et non simplement la tienne... Il doit y avoir moyen de blouser par script. Je connais mal le sujet mais je crois que Mordicus a mis en œuvre des astuces dans son mod Effets Sonores+. A étudier...
Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance
Coaching de PNJs chez Morrowind Renaissance
#5
Posté 02 août 2010 - 14:58
Bonjour...
En fait, le son est joué au moment de l'animation, par le squelette du joueur et pas par l'arbalète... Quand le joueur joue l'idle "crossbow_pull", le squelette fait "Crrr" et quand il joue "crossbow hit", le squelette fait "Dzboing"...
Si tu veux changer le son d'une arbalète, il faut donc lui adjoindre un script qui teste le fait que le joueur a bien l'arbalète en main, et que le son de tir est bien en train d'être joué...
Je pense que quelque chose du genre
Devrait à peu près marcher, mais je n'ai pas testé....
Attention toutefois, ce script requiert Tribunal pour fonctionner...
En fait, le son est joué au moment de l'animation, par le squelette du joueur et pas par l'arbalète... Quand le joueur joue l'idle "crossbow_pull", le squelette fait "Crrr" et quand il joue "crossbow hit", le squelette fait "Dzboing"...
Si tu veux changer le son d'une arbalète, il faut donc lui adjoindre un script qui teste le fait que le joueur a bien l'arbalète en main, et que le son de tir est bien en train d'être joué...
Je pense que quelque chose du genre
Begin shboing_script short done if ( done == 0 ) if (Player->hasItemEquipped, "mon_arbalete" !=0 ) if ( Player-> GetSoundPlaying, "Id d'origine" == 1 ) Player->StopSound "Id d'origine" PlaySound "Nouveau son" Set done to 1 endif endif endif if ( done == 1 ) set done to 0 endif end
Devrait à peu près marcher, mais je n'ai pas testé....
Attention toutefois, ce script requiert Tribunal pour fonctionner...
Tout n'est qu'illusion... Surtout le fait de le penser.....
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
#6
Posté 02 août 2010 - 15:02
Ok , je teste ça ce soir , en fait je suis en train d'améliorer le mod "arme à feu" , en rajoutant un son que je possède et des icons et meshes pour les balles sans meshes !
Merci Kira
Si vous avez d'autres idées n'hésitez pas !
Malcom X
Merci Kira
Si vous avez d'autres idées n'hésitez pas !
Malcom X
#7
Posté 03 août 2010 - 00:38
Bonjour,
Excellents bruitages...
Devrait à peu près marcher, mais je n'ai pas testé....
Je ne l'ai pas testé non plus mais je signale une précision sur les sons :
Si mes souvenirs sont bons, un "playsound" simple (non loop) ne dure qu'une frame, celle de son déclenchement. Ce qui veut dire que même si le wav dure 10mn, il est impossible de le stopper. Les sons d'animation du squelette sont des "playsound" et non des "playloopsound".
En fait, il est impossible d'empêcher le son original de se faire dans son intégralité. On ne fait que le masquer par un son plus fort dés qu'il se produit. Le "StopSound" est donc inutile et c'est à vérifier mais il est probable que le "done" qui est destiné à empêcher que le nouveau son soit joué plusieurs fois soit également inutile.
PS : Attention, il manque des espaces dans cette ligne :
Kira, le 02 août 2010 - 14:58, dit :
En fait, le son est joué au moment de l'animation, par le squelette du joueur et pas par l'arbalète... Quand le joueur joue l'idle "crossbow_pull", le squelette fait "Crrr" et quand il joue "crossbow hit", le squelette fait "Dzboing"...
Kira, le 02 août 2010 - 14:58, dit :
Begin shboing_script short done if ( done == 0 ) if (Player->hasItemEquipped, "mon_arbalete" !=0 ) if ( Player-> GetSoundPlaying, "Id d'origine" == 1 ) Player->StopSound "Id d'origine" PlaySound "Nouveau son" Set done to 1 endif endif endif if ( done == 1 ) set done to 0 endif end
Devrait à peu près marcher, mais je n'ai pas testé....
Je ne l'ai pas testé non plus mais je signale une précision sur les sons :
Si mes souvenirs sont bons, un "playsound" simple (non loop) ne dure qu'une frame, celle de son déclenchement. Ce qui veut dire que même si le wav dure 10mn, il est impossible de le stopper. Les sons d'animation du squelette sont des "playsound" et non des "playloopsound".
En fait, il est impossible d'empêcher le son original de se faire dans son intégralité. On ne fait que le masquer par un son plus fort dés qu'il se produit. Le "StopSound" est donc inutile et c'est à vérifier mais il est probable que le "done" qui est destiné à empêcher que le nouveau son soit joué plusieurs fois soit également inutile.
PS : Attention, il manque des espaces dans cette ligne :
Citation
if (Player->hasItemEquipped, "mon_arbalete" !=0 )
#8
Posté 03 août 2010 - 17:19
J'ai suivi vos conseils , mais ça ne marche pas !
Begin shboing_script
short done
if ( done == 0 )
if (Player->hasItemEquipped, "1_boom" !=0 )
if ( Player-> GetSoundPlaying, "crossbowShoot" == 1 )
Player->StopSound "crossbowShoot"
PlaySound "1Fusil"
Set done to 1
endif
endif
endif
if ( done == 1 )
set done to 0
endif
end
Pourquoi ??
Merci
Begin shboing_script
short done
if ( done == 0 )
if (Player->hasItemEquipped, "1_boom" !=0 )
if ( Player-> GetSoundPlaying, "crossbowShoot" == 1 )
Player->StopSound "crossbowShoot"
PlaySound "1Fusil"
Set done to 1
endif
endif
endif
if ( done == 1 )
set done to 0
endif
end
Pourquoi ??
Merci
#9
Posté 03 août 2010 - 18:29
Bonjour, Malcom X...
Cette fois-ci, j'ai pris le temps de mettre le script sur un arc et d'aller l'essayer en jeu, et en voici une version opérationnelle et testée...
L'effet est assez amusant, surtout avec les flèches électriques que j'avais faites, il y a quelque temps...
@Elendell...
J'ai testé le conseil que tu m'avais donné d'enlever le "StopSound", mais il semblerait bien qu'il serve à quelque chose, finalement... Sans cette commande, le son de remplacement est saccadé et haché sur le début, mais avec, le son se joue parfaitement... On dirait qu'on peut arrêter un son joué par l'animation, tout compte fait...
Cette fois-ci, j'ai pris le temps de mettre le script sur un arc et d'aller l'essayer en jeu, et en voici une version opérationnelle et testée...
Begin shboing_script short done if ( done == 0 ) if ( Player->hasItemEquipped, "k_boom_bow" != 0 ) if ( Player-> GetSoundPlaying, "bowShoot" == 1 ) Player->StopSound, "bowShoot" Player->PlaySound "Thunder0" Set done to 1 endif endif endif if ( done == 1 ) set done to 0 endif end
L'effet est assez amusant, surtout avec les flèches électriques que j'avais faites, il y a quelque temps...
@Elendell...
J'ai testé le conseil que tu m'avais donné d'enlever le "StopSound", mais il semblerait bien qu'il serve à quelque chose, finalement... Sans cette commande, le son de remplacement est saccadé et haché sur le début, mais avec, le son se joue parfaitement... On dirait qu'on peut arrêter un son joué par l'animation, tout compte fait...
Tout n'est qu'illusion... Surtout le fait de le penser.....
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)
#10
Posté 03 août 2010 - 19:36
Bonjour,
J'étais en train d'essayer moi aussi. Effectivement, j'ai dit une bêtise et le "StopSound" est utile. En fait, le "PlaySound" de l'animation du squelette s'étale sur plusieurs frames.
Par contre, la variable "done" est inutile car le "PlaySound" du script ne dure lui qu'une seule frame, semble-t-il.
J'ai testé le script ci-dessous sur une arbalète avec succès :
Notes :
- Le "hasItemEquipped" me semble inutile car si le PJ joue le son, c'est forcément qu'il a l'arme équipée.
- Le script fonctionne en local comme en global. C'est un choix à faire en sachant que s'il est en local, les armes identiques ne peuvent pas s'empiler dans l'inventaire mais s'il est en global, il faut le lancer d'une manière ou d'une autre.
- Ce script est prévu pour l'utilisation de l'arme par le PJ uniquement. Si des PNJs sont susceptibles d'avoir cette arme, il faut faire autrement.
- Les guillemets dans les instructions ne sont nécessaires que s'il y a un espace dans l'ID ou un caractère spécial en début d'ID. (Mais leur présence ne gêne pas non plus ).
- Si tu veux conserver quand même le "if ( done == 1 )", il vaut mieux le remplacer par un "elseif" pour éviter un test inutile. Le gain est bien sûr ridicule mais je le signale juste pour l'habitude de toujours optimiser au mieux.
J'étais en train d'essayer moi aussi. Effectivement, j'ai dit une bêtise et le "StopSound" est utile. En fait, le "PlaySound" de l'animation du squelette s'étale sur plusieurs frames.
Par contre, la variable "done" est inutile car le "PlaySound" du script ne dure lui qu'une seule frame, semble-t-il.
J'ai testé le script ci-dessous sur une arbalète avec succès :
Begin shboing_script if ( Player->GetSoundPlaying, crossbowShoot == 1 ) Player->StopSound crossbowShoot Player->PlaySound, "conjuration bolt" endif end
Notes :
- Le "hasItemEquipped" me semble inutile car si le PJ joue le son, c'est forcément qu'il a l'arme équipée.
- Le script fonctionne en local comme en global. C'est un choix à faire en sachant que s'il est en local, les armes identiques ne peuvent pas s'empiler dans l'inventaire mais s'il est en global, il faut le lancer d'une manière ou d'une autre.
- Ce script est prévu pour l'utilisation de l'arme par le PJ uniquement. Si des PNJs sont susceptibles d'avoir cette arme, il faut faire autrement.
- Les guillemets dans les instructions ne sont nécessaires que s'il y a un espace dans l'ID ou un caractère spécial en début d'ID. (Mais leur présence ne gêne pas non plus ).
- Si tu veux conserver quand même le "if ( done == 1 )", il vaut mieux le remplacer par un "elseif" pour éviter un test inutile. Le gain est bien sûr ridicule mais je le signale juste pour l'habitude de toujours optimiser au mieux.
#11
Posté 04 août 2010 - 13:49
Le script de elendell marche parfaitement !
Merci à tous !
Merci à tous !
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)