[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
Kuidas sättida helitugevust view järgi?
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 21.11.2009 08:28 Tsiteeri
Kuidas sättida helitugevust view järgi?



1. Mul on sigapikk ruum
2. Ruumis liigub ringi view
3. On kindel objekt, mis loopib mingit heli (ütleme, raadio)

* Mida ma tahan teha, on et heli mängib kõvemini kui objekt on view keskel ja keskmises kanalis
* Kui objekt on view servas, mängib vaiksemalt ja vastavas kanalis (paremal või vasakul)
* Ja kui objekt pole view's, üldse ei kuule heli.

Ühesõnaga,

* sound_volume on 1 kui objekti x on täpselt view_xview + 320,
* Ja sound_volume on 0 kui objekti x on view_xview (või vähem) või teisel pool, view_xview + 640 (ja rohkem)
* Ja sound_volume on vahepealne, kui objekt pole ei view servas ega keskel. Ühesõnaga, ühtlaselt muutub.

Kuidas volume ja pan arvutada? View ise on 640x480 suur.
Mingi valemi pusisin, aga ei tööta õieti. Matemaatikud, davai appi

http://www.indrek.org/i/soundprob.png

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Pilvemees
Moderator
Avatar

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 21.11.2009 09:03 Tsiteeri


kasuta 3d sounde
http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 21.11.2009 09:11 Tsiteeri


Ei. Nagu tavaliselt, lahendasin häda enne kui keegi midagi asjalikku vastata jõudis: :happy:

Script vabalt kasutamiseks. Muudab helitugevust ja stereot.

Kood:

//----------------------------------------------------------
// INCsound
// kasutus: incsound(helinimi,kaugus,viewlaius)
// näiteks incsound(musa,700,640) mängib heli "musa"
// kui see on view_xview keskelt 700 px kaugusel või lähemal ja view laius on 640
// kui view laiust ei pane, defaultib 640 peale, muuda esimest rida, kui mugavam ilma või muu default
//----------------------------------------------------------

if !(argument2) argument2 = 640;

if (distance_to_point(view_xview+argument2/2,y) < argument1)
{
f = abs(1-(distance_to_point(view_xview+argument2/2,y) * 1/argument1))
sound_volume(argument0,f);
if (x < view_xview+argument2/2)
sound_pan(argument0,abs(1-(f*-1)));
else
sound_pan(argument0,abs(1-f));
}
else
{
sound_volume(argument0,0);
sound_pan(argument0,0);
}


EDIT: Parandasin stereoefekti. Kui f=... koodireal y asemel panna view_yview, töötab vertikaalselt kah, aga ei soovita - liiga segane lugu, sest view on vertikaalselt väiksem tavaliselt.

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 21.11.2009 13:41 Tsiteeri


skript nimega _snd:

    var v b;
    b=degtorad(-point_direction(x,y,view_xview[0]+320,view_yview[0]+240))+180
    v=point_distance(x,y,view_xview[0]+320,view_yview[0]+240);
    sound_3d_set_sound_distance(argument0,80,800);
    sound_3d_set_sound_position(argument0,cos(b)*v,-sin(b)*v,0);
    sound_play(argument0);

et heli mängida: _snd(sound);

- mängitav heli peab olema 3D sound formaadis.

Siin skriptis on kõrv automaatselt viewi keskel. (640x480 viewi suuruse korral, kui teine reso, tuleb 320 ja 240 arvud skriptist ära muuta).

Min kaugus on 80, max kaugus on 800.

http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 9.12.2009 19:50 Tsiteeri


dm11 kood ei tööta. View ringi scrollides helitugevus ei muutu ega pani.

Ei tea ka miks...
Enda variandi limitatsiooniks oli, et sama heli ei saa kahes kohas mängida, niisiis proovisin 3D jama...
Jama ta on.

Üldse, tundub, et ainus võimalus panna mängu erinevaid asju mis mängivad sama soundi oma asukohas on igale objektile eraldi sound_add teha väliselt failist laadides.

Mis tähendaks, et sama heli on mällu mitu-mitu korda laetud eri nime all... totter

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 9.12.2009 20:33 Tsiteeri


"dm11 kood ei tööta. View ringi scrollides helitugevus ei muutu ega pani."

on sul sound type ikka 3D SOUND ?

http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 9.12.2009 22:12 Tsiteeri


ofc
A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 9.12.2009 22:35 Tsiteeri


a töötab ju

Lisatud fail: 3Dsound.gmk (16.91kb)
149 korda tõmmatud

http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum

Hetkel loevad seda teemat:
Mitte ühtegi - 1 külaline

Mine lehekülje lõppu





Foorumi algbaas põhineb XMB mootoril, modifitseeritud Valter Pundi poolt
Kodulehekülg on tehtud Valter Pundi poolt vpundi ät gmail punkt komm