Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Ressourcez votre RPG !
Ressourcez votre RPG !
  • Partage de ressources graphiques pour Rpg maker VX, customisées ou créées par Vincentmhd. Utilisation libre (si non commerciale) quand c'est signalé, nécéssité de citer l'auteur avec un lien vers la gallerie...
  • Accueil du blog
  • Créer un blog avec CanalBlog
Publicité
Newsletter
4 septembre 2009

SE 3D

SE 3D




-Description

Ce 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 pensé 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
#
#
#===============================================================================
#
#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




-Installation

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

-Utilisation

Il suffit d'appeler un script en event ou dans la trajectoire du personnage:

space_Sound_play(name,volume,picht, chance, r_max =0, 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 son les coordonnées du personnage en question)


-Démo

Disons 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
_________________

Publicité
Commentaires
Publicité