Aller au contenu


[Resolu]Comment Mettre Un Son


  • Veuillez vous connecter pour répondre
10 réponses à ce sujet

#1 Malcom X

Malcom X

    Van Houten


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 !

#2 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


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 !). :peur:

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 Malcom X

Malcom X

    Van Houten


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 abg

abg

    L'ABG pour les civilisés


Posté 02 août 2010 - 14:02

Voir le messageMalcom 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

#5 Kira

Kira

    Top-modeleuse...


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


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.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#6 Malcom X

Malcom X

    Van Houten


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

#7 elendell

elendell

    Mécano Dell'Arte


Posté 03 août 2010 - 00:38

Bonjour,

Voir le messageKira, 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"...
Excellents bruitages...  :lol:


Voir le messageKira, 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 Malcom X

Malcom X

    Van Houten


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

#9 Kira

Kira

    Top-modeleuse...


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...

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.....
Image IPB
(Wiwi d'or de la plus serviable et de la plus cool... Merci à vous tous...)

#10 elendell

elendell

    Mécano Dell'Arte


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 :

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  :huhu: ).

- 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 Malcom X

Malcom X

    Van Houten


Posté 04 août 2010 - 13:49

Le script de elendell marche parfaitement !
Merci à tous !




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)