Maire Lv.9
Age : 37 Inscrit le : 04/02/2009 Messages : 326
| Sujet: [VX] SE 3D Ven 4 Sep 2009 - 0:19 | |
| SE 3D -DescriptionCe script permet de donner une origine à un son. Le son se propage, il est entendu plus ou moins fort en fonction de la distance entre l'origine et le joueur. La propagation est circulaire. J'ai orienté ce script en pensant aux personnages, aux bruits qu'ils pourraient faire. J'ai ajouté une notion de probabilité car un chien n'aboye pas à chaque pas. Ainsi vous pouvez donc attribuer une probabilité. -Le script - Code:
-
#=============================================================================== # # # 3D SE.v1 # # #=============================================================================== # #By Vincentmhd #http://vincentmhdmaker.canalblog.com/ # # # # # # #=====================================NOTE====================================== # #Ce script permet d'adapter le volume des sons joués par un event en fonction de #sa distance avec le player. #La dégression du son est linéaire. # #pour jouer un son faire l'appel de script suivant: #space_Sound_play(nom du son,volume à l'origine, tonalité, rayon maximal, x de #la source, y de la source) #------------------------------------------------------------------------------ module RPG class SE alias mhd_play play def play(x=0, y=0, r_max=0) #r_max est le rayon maximal où l'on peut entendre le son #x et y sont les coordonnées de l'origine du son
if (r_max != 0) #il est impossible que le sons n'est pas de rayon, #sauf si c'est le même volume partout #Calcul de la distance par rapport à l'event, #ramené en pourcentage par rapport au r_max. dx= Math.sqrt(($game_player.real_x - x*256)*($game_player.real_x - x*256) + ($game_player.real_y - y*256)*($game_player.real_y - y*256)) dx = (100*dx/(r_max*256)) if (dx > 100) #si le player est trop loin alors on entend rien @volume = 0 else #sinon on utilise le pourcentage sur le volume à l'origine #pour avoir le volume à la position du player. @volume = 100 - dx end end mhd_play end end end
class Game_Interpreter
def space_Sound_play(name,volume,picht, chance =100, r_max =0, x =0, y =0) if rand(100)<=chance sound=RPG::SE.new(name,volume,picht) sound.play(x,y,r_max) end end end
class Game_Character def space_Sound_play(name,volume,picht, chance =100, r_max =0, x =@x, y =@y) if rand(100)<=chance sound=RPG::SE.new(name,volume,picht) sound.play(x,y,r_max) end end end
-InstallationCe script n'échappe pas à la régle du "copiez en dessous de material". Il n'a pas de nécéssité particulière. Compatibilité optimale. -UtilisationIl suffit d'appeler un script en event ou dans la trajectoire du personnage: space_Sound_play(name,volume,picht, chance, r_max, x, y) name est le nom du son. (le mettre entre guillemets) volume est le volume à l'origine. picht est le ton ou la tonalité. chance est le pourcentage de chance que le son soit joué. r_max est le rayon maximal de propagation au-delà de cette distance le son est inaudible. x et y sont les coordonnées de l'origine. (si appelée dans le déplacement d'un personnage, les coordonnées par défaut sont les coordonnées du personnage en question) -DémoDisons qu'elle est spéciale!! La première map c'est un peu du n'importe quoi! La seconde est une illustration de la progressivité du son. Démo-Crédit: Vincentmhd
Dernière édition par vincentmhd le Ven 4 Sep 2009 - 14:06, édité 5 fois |
|
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
| Sujet: Re: [VX] SE 3D Ven 4 Sep 2009 - 13:26 | |
| Once again, très bon script et idée intéressante. Félicitation. |
|
Maire Lv.9
Age : 37 Inscrit le : 04/02/2009 Messages : 326
| Sujet: Re: [VX] SE 3D Ven 4 Sep 2009 - 13:57 | |
| ^^ merci, Je reprend les idées des events de ma map du paradis du concours des 5 thèmes, pour les mettre sous script. J'ai encore un ou deux scripts en réserve... L'effet de la progressivité sur les sons reste difficile à appréhender pour de courtes distances. Il faut garder à l'esprit, qu'il y a un lien entre volume initial et rayon maximal. Dans la réalité, si un son ne se propage pas loin, c'est qu'il n'a pas un volume élevé. Il faut équilibrer les deux. Personnnellement, je ne suis pas moi-même au point dans l'utilisation de ce script. Ca se ressent bien dans la première map de la démo, où j'ai mis un peu n'importe quelle valeur. L'idée du script est lancée mais, il doit être améliorable. |
|
Doyen
Age : 46 Inscrit le : 20/08/2008 Messages : 2485
| Sujet: Re: [VX] SE 3D Ven 4 Sep 2009 - 14:20 | |
| Est-ce qu'on peut avoir plus d'un point avec un son? Par exemple, si j'ai plusieurs chutes d'eau dans une même carte, est-ce que chacune peut avoir cette fonctionalité? |
|
Maire Lv.9
Age : 37 Inscrit le : 04/02/2009 Messages : 326
| Sujet: Re: [VX] SE 3D Ven 4 Sep 2009 - 14:41 | |
| Je vais réfléchir aux BGS, parce que c'est avec cela que je l'avais fait. En attendant, tu peux tester de donner à chacune un SE dans un mouvement répétitif, ça devrais faire du bruit, mais je pense que ça va faire un peu bazard... Du moins, ça ferait beaucoup de sons identiques à jouer pour en entendre qu'un seul, il doit être possible de moins surcharger le jeu inutilement. Je fini mes scripts en cours, je les poste et j'y réfléchi. |
|
Poulet Lv.1
Avertissements : Banni ! Inscrit le : 09/05/2010 Messages : 2
| Sujet: Re: [VX] SE 3D Lun 10 Mai 2010 - 17:36 | |
| omais ou
Banni pour 1 mois, pour flood 2 PSP, insultes, SMS, en gros t'a presque tout enfreint.
|
|