Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Scripts: [XP] SE au volume variable / Scripts: [XP] Déplacements en (...) / Partenaires: Vidéo rewind 2024 / News: Les actualités de fin d'année / Jeux: Glixel en version complète / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

315 connectés actuellement

30916888 visiteurs
depuis l'ouverture

3285 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

Le Temple de Valor

Alex d'Or

Offgame

Lumen

Tous nos partenaires

Devenir
partenaire



SE au volume variable

SE localisé avec intensité du volume adaptée selon sa proximité avec le joueur

Script pour RPG Maker XP
Ecrit par Picot
Publié par Picot (lui envoyer un message privé)
Signaler un script cassé

❤ 2

Un Event pourra jouer un SE qui sera audible plus ou moins fortement en fonction que le héros se trouve proche de cet Event et à l'intérieur d'un rayon défini.
Hors de ce rayon, le SE ne sera pas audible.


1. Dans l'éditeur de scripts, créez une nouvelle fiche et insérez-y ce code :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
module Bruitage
 
  def self.se_local_cercle(fichier_se, volume_max, tempo, event_id, portee)
    
    # Positions des acteurs concernés
    joueur_x = $game_player.x
    joueur_y = $game_player.y
    event_x = $game_map.events[event_id].x
    event_y = $game_map.events[event_id].y
    
    # Calculer la distance euclidienne
    distance = Math.sqrt((joueur_x - event_x)**2 + (joueur_y - event_y)**2)
    
    if distance <= portee
      # Calculer le volume d'après la proximité avec la source :
      coef = portee - distance
      volume = (((1.00 * volume_max) / portee) * coef).to_i
      # Jouer le son :
      $game_system.se_play(RPG::AudioFile.new(fichier_se, volume, tempo))
    end
    
  end
 
end



2. Dans un Event, appelez le bruitage en insérant ce script, puis adaptez-le à vos besoins :

Portion de code : Tout sélectionner

1
Bruitage.se_local_cercle("nom_du_SE", volume_max, vitesse, @event_id, portee)


nom_du_SE : le nom du fichier audio (sans l'extension) présent dans le dossier Audio/SE ;

volume_max : le volume auquel le bruitage sera audible au centre du cercle (= 100 maximum) ;

vitesse : la vitesse à laquelle vous voulez que le son soit joué (= 50 à 150) ;

@event_id : entrez le numéro d'identification (ID) de votre Event, ou laissez "@event_id" si l'Event qui exécute le script d'appel est celui qui joue le bruitage ;

portee : le nombre de cases autour de l'Event où le son doit être entendu.


Sur le schéma ci-dessous, vous pouvez voir la zone de diffusion du son autour de l'Event avec un appel dont la portée vaut 3.

image




Roi of the Suisse - posté le 02/01/2025 à 20:23:12 (30466 messages postés) - honor -

❤ 1

Chanter l'hyperchleuasme

Très utile en effet, j'utilise un script similaire pour mon jeu.

Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte


Picot - posté le 02/01/2025 à 21:59:26 (1359 messages postés) -

❤ 0

C'est pas moi, j'ai un alibi !

Copain :biere
Pour genre les cris des monstres, les chutes d'eau, ... histoire de ne pas les entendre lorsqu'ils sont hors-champ ? :sourire3

Recueil de créations variées | RMXP : Quadrilogie "Le Tueur" | FPS : "Mr The Killer"


Crystal - posté le 03/01/2025 à 16:57:46 (2160 messages postés) -

❤ 2

L'idée est bien, mais au niveau de l'exécution, c'est vraiment pas une bonne idée d'instancier un nouvel objet à chaque fois. Ta classe Bruitage n'ayant aucune variable d'instance, le concept d'une classe ici est inapproprié. Bruitage devrait être un module et être utilisé en appelant Bruitage.se_local_cercle(...).


Picot - posté le 03/01/2025 à 18:45:24 (1359 messages postés) -

❤ 1

C'est pas moi, j'ai un alibi !

Je pars du principe que réécrire toujours sur la même $instance ne pose pas de problème en soi dans un tel cas, où il n'y a pas de dépendances et en plus un GC.
Mais pourquoi pas ! Remarque bonne à prendre ... et modification faite. Merci à toi :biere

Recueil de créations variées | RMXP : Quadrilogie "Le Tueur" | FPS : "Mr The Killer"


AnthonyP - posté le 12/01/2025 à 18:03:35 (1017 messages postés) -

❤ 1

@Crystal C'est une bonne critique de chercher à mieux optimiser le code. Bon état d'esprit.

Après en programmation "Je dit pas que c'est la meilleur philosophie" mais j'aime bien aussi ne pas voir que "Optimiser tout le temps le code" mais plutôt aussi voir le "contexte".

"Contexte" C'est à dire qu'on reste sur le développement de jeux pas trop gourmands, les jeux sur RMXP ça reste souvent du 640x480 + les ordis de maintenant qui sont quand même "Vachement plus puissants" que dans les années 90's. :rit2

Du coup on peut se permettre de taper du code pas très optimisé, ou "code sale selon les puristes". C'est pas quelques manques d'optimisations qui vont faire ramer les ordis de maintenant à moins que le jeu de Picot soit en 1920x1080 en 60FPs avec des milliers shaders de tout partout et une grosse usine à gaz du style Unreal ou Unity.

Je pense sans que ça ne soit handicapant pour l’expérience de jeu. Mais toute optimisation est quand même bonne à prendre quand même.

En tout cas encore un tuto bien chouette.

"Faudrait une version de chaque tuto optimisé pour les puristes et une version du tuto en code pas optimisé comme ça tout le monde il est content " :irate

Mes illustrations à : https://www.artstation.com/anthony-philippeau Les musiques que je compose pour mes projets de jeu vidéo : https://soundcloud.com/octonhy


Picot - posté le 13/01/2025 à 09:08:07 (1359 messages postés) -

❤ 0

C'est pas moi, j'ai un alibi !

Merci :amour2

AnthonyP a dit:

à moins que le jeu de Picot soit en 1920x1080 en 60FPs avec des milliers shaders de tout partout et une grosse usine à gaz du style Unreal ou Unity.

60 FPS : oui. Non pour tout le reste :kawaii


AnthonyP a dit:

"Faudrait une version de chaque tuto optimisé pour les puristes et une version du tuto en code pas optimisé comme ça tout le monde il est content " :irate


:lol :lol :lol


Recueil de créations variées | RMXP : Quadrilogie "Le Tueur" | FPS : "Mr The Killer"

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers