AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

Partagez
 

 [VX] SE 3D

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


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

[VX] SE 3D Empty
MessageSujet: [VX] SE 3D   [VX] SE 3D Icon_minitimeVen 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
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


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

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

Once again, très bon script et idée intéressante. Félicitation.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
vincentmhd
Maire Lv.9
Maire Lv.9
vincentmhd


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

[VX] SE 3D Empty
MessageSujet: Re: [VX] SE 3D   [VX] SE 3D Icon_minitimeVen 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
jebbou
Doyen
Doyen
jebbou


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

[VX] SE 3D Empty
MessageSujet: Re: [VX] SE 3D   [VX] SE 3D Icon_minitimeVen 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
vincentmhd
Maire Lv.9
Maire Lv.9
vincentmhd


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

[VX] SE 3D Empty
MessageSujet: Re: [VX] SE 3D   [VX] SE 3D Icon_minitimeVen 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
osamobouf
Poulet Lv.1
Poulet Lv.1
osamobouf


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

[VX] SE 3D Empty
MessageSujet: Re: [VX] SE 3D   [VX] SE 3D Icon_minitimeLun 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
Contenu sponsorisé




[VX] SE 3D Empty
MessageSujet: Re: [VX] SE 3D   [VX] SE 3D Icon_minitime

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 | Cookies | Forum gratuit