Soundeffekte mehrere BGS (Script bereits vorhanden)
Hey Community,
ich besetze die Map meines "Intro-Dorfes" gerade mit Soundeffekten und wollte fragen ob mir einer mein von Leif bzw. fütz!baerchen erstelltes Script editieren kann.
Auch Maker intern kann man glaub ich immer eine BGS abspielen, ist es möglich das Script insofern zu erweiteren/verbessern, dass man mehrere BGS gleichzeitig laufen lassen kann?
Hier das Script
Vielen Dank im Vorraus
ich besetze die Map meines "Intro-Dorfes" gerade mit Soundeffekten und wollte fragen ob mir einer mein von Leif bzw. fütz!baerchen erstelltes Script editieren kann.
Auch Maker intern kann man glaub ich immer eine BGS abspielen, ist es möglich das Script insofern zu erweiteren/verbessern, dass man mehrere BGS gleichzeitig laufen lassen kann?
Hier das Script
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
#============================================================================== # ** Sound Effekt Script #------------------------------------------------------------------------------ # # # Leif / f0tz!baerchen # v1.0 # 20.02.2011 # #------------------------------------------------------------------------------- # # Was tut dieses Script? # Dieses Script ermöglichst es, verschiedene Soundquellen (z.B. Feuer, Tiere) # auf der Map zu platzieren. Diese Quellen geben Geräusche von sich, sobald sich # der Spieler in ihrer Nähe befindet. Je näher er an der Quelle ist, desto # lauter der Sound. # #------------------------------------------------------------------------------- # # Wie kann ich eine neue Soundquelle erstellen? # Grundsätzlich gibt es zwei Arten von Quellen: SE Soundquellen für kurze, # wiederkehrende Geräusche und BGS Soundquellen, für konstante Geräusche. # SE können gleichzeitig abgespielt werden, von den BGS wird immer der # Lauteste abgespielt. Beide werden erstellt, indem man ein Event auf der Karte # an entsprechender Stelle platziert, welches oben einen Kommentar enthält, # der folgendermaßen aussieht: # # BGS:Sound,Entfernung,Volume,Pitch # oder # SE:Sound,Entfernung,Volume,Pitch,Frames (1sec = 20 frames) # # *Sound: der Name der Sounddatei (ohne Endung) # *Entfernung: die maximale Entfernung in Tiles, aus der das Geräusch noch # *hörbar ist # *Volume, Pitch: max. Volume und Pitch des Geräuschs # *Frames: Anzahl Frames, nachdem das Geräusch wiederholt wird (nur für SE) # #============================================================================== #============================================================================== # class for sounds #============================================================================== class Game_Sound attr_reader :current_volume attr_reader :type #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(type, event, name, distance, volume, pitch, count=10) @type = type @event = event @name = name @distance = distance @count = count @volume = volume @current_volume = volume @pitch = pitch @last_count = 0 end #-------------------------------------------------------------------------- # * Object update #-------------------------------------------------------------------------- def update add = @type == 'BGS' ? 0 : @event.id * @count / 5 #return false if Graphics.frame_count - @last_count <= @count return false if (Graphics.frame_count + add) % @count != 0 p_x = $game_player.x p_y = $game_player.y dist = Math.sqrt((@event.x - p_x) ** 2 + (@event.y - p_y) ** 2) @current_volume = [@volume - dist * @volume / @distance, 0].max.round @last_count = Graphics.frame_count if @current_volume > 0 or @type == 'BGS' return true end #-------------------------------------------------------------------------- # returns audio file #-------------------------------------------------------------------------- def audio return RPG::AudioFile.new(@name, @current_volume, @pitch) end end #============================================================================== # ** Game_Event #------------------------------------------------------------------------------ # This class deals with events. It handles functions including event page # switching via condition determinants, and running parallel process events. # It's used within the Game_Map class. #============================================================================== class Game_Event < Game_Character attr_reader :event end #============================================================================== # ** Game_Map #------------------------------------------------------------------------------ # This class handles the map. It includes scrolling and passable determining # functions. Refer to "$game_map" for the instance of this class. #============================================================================== class Game_Map #-------------------------------------------------------------------------- # * Setup # map_id : map ID #-------------------------------------------------------------------------- if !method_defined?(:sound_script_game_map_setup) alias sound_script_game_map_setup setup end def setup(map_id) sound_script_game_map_setup(map_id) # sounds settings @sounds = [] for event in @events.values i = 0 while event.event.pages[0].list[i].code == 108 or event.event.pages[0].list[i].code == 408 list = event.event.pages[0].list[i] if list.parameters[0][0..2] == 'SE:' param = list.parameters[0].downcase.split(':')[1].split(',') sound = Game_Sound.new('SE', event, param[0], param[1].to_i, param[2].to_i, param[3].to_i, param[4].to_i) @sounds.push(sound) break elsif list.parameters[0][0..3] == 'BGS:' param = list.parameters[0].downcase.split(':')[1].split(',') sound = Game_Sound.new('BGS', event, param[0], param[1].to_i, param[2].to_i, param[3].to_i) @sounds.push(sound) break end i += 1 end end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- if !method_defined?(:sound_script_game_map_update) alias sound_script_game_map_update update end def update # updates sounds self.sound_update sound_script_game_map_update end #-------------------------------------------------------------------------- # updates sounds effects #-------------------------------------------------------------------------- def sound_update list = [] @sounds.each do |sound| next if !sound.update if sound.type == 'SE' next if sound.current_volume == 0 $game_system.se_play(sound.audio) next end next if list.size > 0 and sound.current_volume <= list.last.current_volume list.push(sound) end if list.size > 0 $game_system.bgs_play(list.last.audio) end end end |
zum Lesen den Text mit der Maus markieren
Vielen Dank im Vorraus
Ich stand vor geraumer Zeit auch mal mit Leif im losen Kontakt und fragte ihn dasselbe. Scheinbar ist es wohl wirklich nicht möglich. Man kann aber teilweise mit SE's ein wenig rumtricksen.
-
Verfolgte Projekte:
-
Empfehlenswerte XP-Skripte:
ccoa, ForeverZer0, Agckuu Coceg, Blizzard - Advanced Weatherscript (Vielzahl neuer Wettereffekte und bessere Regulierung ihrer Intensität)
Leif - Sound Effekt Script (Events können an Entfernung angepasste Geräusche von sich geben)
Jumping Coconut - Hide and Seek (Events erhalten Reaktionsradius/Sichtlinien) -
Projekt:
Weite Welt (Arbeitstitel)
Genre: RPG in einer Dark-Fantasy-Welt
Status: In der Konzeptionsphase
Schade. das kostet wieder Preformance und macht a bissl mehr Arbeit, aber du hast Recht mit den SE´s kann man das selbe Ziel erreichen
Da erinnere ich mich gleich wieder an die gute alte 2000er Zeit ^^
Danke für die Antwort
Da erinnere ich mich gleich wieder an die gute alte 2000er Zeit ^^
Danke für die Antwort
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Gjorsch« (30. April 2013, 19:11)
Momentan nutze ich anhand des Skriptes den BGS für Fackelevents im inneren einer Taverne. Ein NPC spielt dann über den Kommentar einen SE ab (leicht gekürzter "BGS" von Freesounds), welcher in einer Dauerschleife verschiedene Stimmen wiedergibt, um das Ganze zu beleben. Die Stimmen sind im gesamten Raum zu hören, das Feuer jedoch nur in unmittelbarer Nähe. Mehr Hintergrundgeräusche brauche ich derzeit eigentlich auch noch nicht und das ganze stellt für mich einen annehmbaren Kompromis dar.
-
Verfolgte Projekte:
-
Empfehlenswerte XP-Skripte:
ccoa, ForeverZer0, Agckuu Coceg, Blizzard - Advanced Weatherscript (Vielzahl neuer Wettereffekte und bessere Regulierung ihrer Intensität)
Leif - Sound Effekt Script (Events können an Entfernung angepasste Geräusche von sich geben)
Jumping Coconut - Hide and Seek (Events erhalten Reaktionsradius/Sichtlinien) -
Projekt:
Weite Welt (Arbeitstitel)
Genre: RPG in einer Dark-Fantasy-Welt
Status: In der Konzeptionsphase
Okay, danke für die Antwort. So in etwa mache ich das auch. Hab nur ein Outside-Setting und muss mir überlegen ab wo man den Wasserfall hört und wo der Bach Überhand gewinnt. Aber das ist es wohl, was das Spiele entwickeln am RMXP ausmacht, permanent die richtigen Kompromisse abwägen. Der Jenige der am besten abwägt was wichtig und was nicht ist macht das beste Spiel...^^ Fleiß ist also nicht alles...
Hehe, mal schauen wie sich das handeln lässt.
Hehe, mal schauen wie sich das handeln lässt.
Ich stand vor geraumer Zeit auch mal mit Leif im losen Kontakt und fragte ihn dasselbe. Scheinbar ist es wohl wirklich nicht möglich.
Aber das ist es wohl, was das Spiele entwickeln am RMXP ausmacht, permanent die richtigen Kompromisse abwägen.
So ein Quatsch, man könnte sich auch einfach mal selbst informieren:
Audio Module Rewrite mcisendstring
FMOD Ex Audio Module Rewrite
MCI Audio Player
Ryex's Dynamic Sounds
Hey. Ich kenne die dortigen Scripts bereits alle. Habe Ryexs Sound System, MCI und afMod auch schon getestet.
Habe jedoch nur bei Ryexs soundsystem eine Entfernungsberechnung gefunden und bin leider ohne das Tut buw. die Erklärung zum Script nicht im Stande die richtigen Script-Befehle in den Event-Script-Command einzutragn um einen Bgs mit "leiser werden bei entfernen" einzubinden.
Hast du Noch die Tut dieses Scripts?
Danke für die Antwort.
Habe jedoch nur bei Ryexs soundsystem eine Entfernungsberechnung gefunden und bin leider ohne das Tut buw. die Erklärung zum Script nicht im Stande die richtigen Script-Befehle in den Event-Script-Command einzutragn um einen Bgs mit "leiser werden bei entfernen" einzubinden.
Hast du Noch die Tut dieses Scripts?
Danke für die Antwort.
Dynamic Sounds.pdf

Alle drei Rewrites können mehrere BGS' abspielen (was ja laut Startpost dein Anliegen ist), mcisendstring bietet außerdem eine Entfernungsberechnung. Mit dem eingebauten Audio-Modul wirst du dein Ziel nicht erreichen, es sei denn du weichst auf Tricks mit SEs aus.
Alle drei Rewrites können mehrere BGS' abspielen (was ja laut Startpost dein Anliegen ist), mcisendstring bietet außerdem eine Entfernungsberechnung. Mit dem eingebauten Audio-Modul wirst du dein Ziel nicht erreichen, es sei denn du weichst auf Tricks mit SEs aus.
Terv. Du bist echt hilfsbereit. Vielen Dank. Mal ne Frage nebenbei wie lange makerst du schon und was machst du beruflich. Bist ja anscheinend echt belaufen in Script-Fragen und in der Maker Szene.
Danke für die PDF. Denke mit diesem Script lässt es sich für meine Ansprüche am einfachsten und besten arbeiten.
Danke für die PDF. Denke mit diesem Script lässt es sich für meine Ansprüche am einfachsten und besten arbeiten.
Ähnliche Themen
-
Skript-Anfragen »-
Auf der Suche nach guten Save/Load scripts
(23. März 2013, 08:59)
-
RGSS 3 Probleme & Talk »-
Pixel Movement von Victor
(18. Oktober 2012, 17:26)
-
Maker-Talk »-
MID Soundeffekte
(13. Februar 2011, 21:09)
-
Ressourcen-Archiv »-
FFX und FFX-2 Soundeffekte
(2. Februar 2010, 14:16)
-
Skript-Anfragen »-
Tolles Item-Lager-Script
(20. Juli 2009, 13:32)

