AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 [VX] SE 3D

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Maire Lv.9
Maire Lv.9
avatar


Masculin Age : 30
Inscrit le : 04/02/2009
Messages : 326

MessageSujet: [VX] SE 3D   Ven 4 Sep 2009 - 0:19

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




-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, 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é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

_________________


Dernière édition par vincentmhd le Ven 4 Sep 2009 - 14:06, édité 5 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ex-Admin-Script
Ex-Admin-Script
avatar


Masculin Age : 35
Inscrit le : 26/05/2008
Messages : 2360

MessageSujet: Re: [VX] SE 3D   Ven 4 Sep 2009 - 13:26

Once again, très bon script et idée intéressante. Félicitation.

_________________
Hikari.

«Si je comprenais mieux ce que tu ne comprends pas, ça m'aiderait à t'aider à mieux comprendre.», Hikari
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://mirainohikari.deviantart.com
Maire Lv.9
Maire Lv.9
avatar


Masculin Age : 30
Inscrit le : 04/02/2009
Messages : 326

MessageSujet: 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... Wink

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.

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Doyen
Doyen
avatar


Masculin Age : 39
Inscrit le : 20/08/2008
Messages : 2485

MessageSujet: 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é?

_________________




Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Maire Lv.9
Maire Lv.9
avatar


Masculin Age : 30
Inscrit le : 04/02/2009
Messages : 326

MessageSujet: 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. Wink

_________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Poulet Lv.1
Poulet Lv.1
avatar


Avertissements : Banni !
Inscrit le : 09/05/2010
Messages : 2

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [VX] SE 3D   

Revenir en haut Aller en bas
 

[VX] SE 3D

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Divers-
Créer un forum | © phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit | Informatique et Internet | Programmation