Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
29.01.2007, 17:52
JohnLeDon



Ich möchte, dass mein dialog System direkt von der Datei aus Sounds abspielen kann. Diese müssen nicht "3D" sein, sie müssen halt einfach abgespielt werden.

etwa so:
Sound "mysound.wav" im dialog-file gibt dann PlayGenericSound "mysound.wav"

ich habe nachgeguckt: es gibt das ambient_generic entity, aber das ist ja ein entity, das ich dann per output steuern müsste. Diese werden aber für anderes gebraucht. Ich möchte direkt einen Sound abspielen...

Im Code von valve hab ich unter PlaySound gesucht aber nichts rechtes gefunden.

Weiss jemand wie ich vom Code aus ein .wav file abspielen kann? (Der "Befehl" PlayGenericSound oben...)

thanx

--


Dieser Beitrag wurde am 29.01.2007 um 17:53 von JohnLeDon bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
29.01.2007, 18:17
feigling



Guck doch, wie das ambient_generic aufgebaut ist und welche Funktionen dieses aufruft. Irgendwelche Functionen zur Soundausgabe wird das ambient_generic auch verwenden.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
30.01.2007, 10:05
cinteX.



Der Befehl im Code heisst
EmitSound()

Such mal danach.
Hoffe es hilft.

mfg

--

zum Seitenanfang zum Seitenende Profil || Suche
003
30.01.2007, 19:04
JohnLeDon



Ok mit emitsound sollte was machbar sein. Das Problem ist, das es das zeug precached haben will. Da der sound vom dialogsystem aus mit Play "myfile.wav" abgespielt werden soll und der dialog scripter sich nicht mit prechache-files rumschlagen sollte, muss es irgendwie möglich sein, das OHNE Precache zu machen.

Weiss irgend jemand ob das geht und wie?
oder aber ich precache das file direkt davor vom code aus. nur wie geht das?
soviel ich weiss wird das von einem script aus gesteuert, und genau das will ich ja verhindern.

Mit EmitSound("mysound.wav") gehts ja schon halbwegs, es sagt dann einfach "mysound.wav is not precached (0)"...

thanx

btw. im code gibts kein einziges EmitSound, ich hab "Das ganze Projekt durchsuchen" angeklickt...

--


Dieser Beitrag wurde am 30.01.2007 um 19:09 von JohnLeDon bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
30.01.2007, 19:51
feigling



Ka, wie du suchst, aber wenn ich nach EmitSound suche, finde ich alleine in src\cl_dll 73 Mal EmitSound.

src\cl_dll\sdk\sdk_hud_weaponselection.cpp(756): pPlayer->EmitSound( "Player.WeaponSelectionMoveSlot" );

Ka, ob du die Datei kurz vor dem Abspielen Precachen kannst. Musst du alles ausprobieren und schauen, wie PrecacheScriptSound() aussieht. Zur Not musst du halt alle Sounds vom Scriptfile precachen bei dem Mapload.

--


Dieser Beitrag wurde am 30.01.2007 um 19:52 von feigling bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
31.01.2007, 10:54
oxff



Nicht zur not sondern realistischerweise. Denn wozu precachen wir? Richtig, damit man die Sounds direkt beim Abspielen schon geladen hat und sich nicht mit Disk I/O und decoden einen abbricht.

Daher: alle verwendeten Sounds beim Mapload precachen und dann bei Gelegenheit im Null-Komma-Nix abspielen können.

--

mwcollect - mein Projekt | oxlog - mein blog | happyhardcore.com Stream - gute Musik

zum Seitenanfang zum Seitenende Profil || Suche
006
31.01.2007, 13:40
JohnLeDon



Zitat:
0xFF postete
Nicht zur not sondern realistischerweise. Denn wozu precachen wir? Richtig, damit man die Sounds direkt beim Abspielen schon geladen hat und sich nicht mit Disk I/O und decoden einen abbricht.

Daher: alle verwendeten Sounds beim Mapload precachen und dann bei Gelegenheit im Null-Komma-Nix abspielen können.

--

zum Seitenanfang zum Seitenende Profil || Suche
007
31.01.2007, 13:43
JohnLeDon



naja, es precached ja damit der sound GLEICH abgespielt wird. darum machts einen
125 millisekunden precache...dann werden die 125 millisekunden abgespielt, während der sound geladen wird. das finde ich aber nicht so wichtig beim dialog system, da merkt doch niemand ob das jetzt eine zehntelsekunde später kommt oder nicht. bei schüssen oder so ist das schon wichtig...

darum frag ich, ob man das nicht ohne precache machen kann. geladen wird der sound ja trotzdem immer, die ersten 125 millisecs werden halt gleich abgespielt, "normalerweise"...

--

zum Seitenanfang zum Seitenende Profil || Suche
008
31.01.2007, 15:21
Bluthund



Zitat:
JohnLeDon postete
naja, es precached ja damit der sound GLEICH abgespielt wird. darum machts einen
125 millisekunden precache...dann werden die 125 millisekunden abgespielt, während der sound geladen wird. das finde ich aber nicht so wichtig beim dialog system, da merkt doch niemand ob das jetzt eine zehntelsekunde später kommt oder nicht. bei schüssen oder so ist das schon wichtig... [...]
Sry aber "finde ich nicht so wichtig" und "merkt niemand" sind keine Einstellung im Bezug auf Coding. Die Leute die sich das System ausgedacht haben, haben es ja auch nicht "zum Spaß" eingebaut.
0xFF hat schon den richtigen Grund angegeben: Disk I/O und das Dekodieren der Sounddaten. Nur weil es bei dir 0,1s sind, heißt das nicht das es bei Spieler A nicht vielleicht 0,01s und bei Spieler B 2s sind. Irgendwann benutzt du vielleicht auch mal eine etwas größere Sounddatei oder deine Festplatte hat gerade einen anderen Zugriff zu verarbeiten, dann wartest du auch länger auf die angeforderten Daten. Daher Precache beim Mapload.

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-

zum Seitenanfang zum Seitenende Profil || Suche