Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wys³any: 2018-01-10, 23:46


noose

JESTÊ SKRYPTERÊ






Wiek: 35
Na forum: 3756 dni
Posty: 222

Piwa: 2294

Respekt: 155,8
Respekt: 155,8Respekt: 155,8

Witam! Uhh, d?uugo mnie tu nie by?o. To dlatego ?e ma?o ju? gram, i skryptuje. Je?li ju?, to okazjonalnie, dla siebie samego.
Przechodz?c do sedna mojego pytania, zacytuj? fragment z wikipedii:
"Naukowe badanie efektu po raz pierwszy przeprowadzi? Christoph Hendrik Diederik Buys Ballot w 1845 r. Poprosi? on grup? muzyk?w (tr?baczy), aby wsiedli do poci?gu i grali jeden ton. S?ucha? go i zaobserwowa?, ?e d?wi?k instrument?w jest wy?szy, gdy poci?g zbli?a si? do niego. Gdy ?r?d?o muzyki si? oddala, jego ton staje si? ni?szy."
Zauwa?y? to chyba ju? ka?dy, ?e efekt ten wyst?puje w grze. i jest na?o?ony chocia?by na obroty silnika, oraz klakson. Kiedy obok gracza przeje?d?a jaki? tr?bi?cy cej, to d?wi?k klaksonu jest wy?szy kiedy nadje?d?a, a kiedy ju? nas minie, ni?szy.
I moje pytanie jest nast?puj?ce: czy da si? to oskryptowa?? Ju? dawno chcia?em to zrobi?, tylko nie wiedzia?em, czy jest to mo?liwe :D
Dodawanie w?asnych d?wi?k?w do gry(np syren) jest fajne, niew?tpliwie, ale efekt by?by jeszcze lepszy, gdyby da?o sie wykorzysta? ten efekt na d?wi?kach 3d.
Fragment cytatu: https://pl.wikipedia.org/wiki/Efekt_Dopplera
Film: https://www.youtube.com/watch?v=___LDYTOIzw

Postaw piwo autorowi tego posta
 

 
Wys³any: 2018-01-11, 11:58


.RiV







Wiek: 25
Na forum: 3588 dni
Posty: 554
Nick w MP: Split

Piwa: 2596

Respekt: 597,8
Respekt: 597,8

Ja bym to zrobi? w renderingu tak:

- SetSoundVolume
- GetElementPosition

+ kilka oblicze?

Podpis

Autor OGRPG, na scenie MTA od 2012 roku.




U¿ytkownik: 08.08.2016
GTAO Member: 06.02.2017
Support-Team: 17.06.2017 & 01.06.2019 - 18.11.2019
Moderator: 14.01.2018 - 09.08.2018

Postaw piwo autorowi tego posta
 

 
Wiêcej szczegó³ów
Wystawiono 1 piw(a):
noose
Wys³any: 2018-01-11, 17:10


noose

JESTÊ SKRYPTERÊ






Wiek: 35
Na forum: 3756 dni
Posty: 222

Piwa: 2294

Respekt: 155,8
Respekt: 155,8Respekt: 155,8

.WhiteBlue, je?li nie zrozumia?e? mojego zapytania, lub nie jeste? na tyle dobry w LUA by mi pom?c z tym, nie nabijaj sobie post?w ;)
Chodzi?o o ton d?wi?ku, nie g?o?no??. G?o?no?? d?wi?ku maleje automatycznie, je?li u?yjemy na nim setSoundMinDistance...

Postaw piwo autorowi tego posta
 

 
Wys³any: 2018-01-11, 17:38


.RiV







Wiek: 25
Na forum: 3588 dni
Posty: 554
Nick w MP: Split

Piwa: 2596

Respekt: 597,8
Respekt: 597,8

"noose" napisa³/a:

.WhiteBlue, je?li nie zrozumia?e? mojego zapytania, lub nie jeste? na tyle dobry w LUA by mi pom?c z tym, nie nabijaj sobie post?w ;)
Chodzi?o o ton d?wi?ku, nie g?o?no??. G?o?no?? d?wi?ku maleje automatycznie, je?li u?yjemy na nim setSoundMinDistance...


Nie wiem co chcesz wie?? daj?c mi minusow? reputacj? na forum. Na o?lep na pewno nie odpowiadam, gdybym chcia? nabi? posty, nabi?bym sobie posty w innych tematach ni? ten. A co do mojej pomocy, pyta?e? to odpowiedzia?em i to nie jest pow?d ?eby? wmawia? ?e nabijam posty.

Co do tematu:
- https://forum.mtasa.com/topic/69318-doppler-effect-in-mta/
- https://forum.mtasa.com/topic/24114-relwip-radio3d-for-mta-11/

Kt?ry? z tych temat?w powinien Ci pom?c.

Podpis

Autor OGRPG, na scenie MTA od 2012 roku.




U¿ytkownik: 08.08.2016
GTAO Member: 06.02.2017
Support-Team: 17.06.2017 & 01.06.2019 - 18.11.2019
Moderator: 14.01.2018 - 09.08.2018

Postaw piwo autorowi tego posta
 

 
Wiêcej szczegó³ów
Wystawiono 1 piw(a):
noose
Wys³any: 2018-01-11, 19:21


noose

JESTÊ SKRYPTERÊ






Wiek: 35
Na forum: 3756 dni
Posty: 222

Piwa: 2294

Respekt: 155,8
Respekt: 155,8Respekt: 155,8

No dobraa, wzi??em pierwszy kod z forum z linka, kt?ry poda?e?, i nie powiem, co? tam dzia?a :D
Tylko ?e, skrypt nie rozpoznaje, czy gracz sie zbli?a, czy oddala. Np, jad?c infernusem w strone ?r?d?a d?wi?ku, ton tego d?wi?ku mala? dziwnie, od punktu 0, czyli od tak jakby warto?ci domy?lnej, a przy hamowaniu wzrasta? spowrotem, wi?c z realizmem ?rednio. Ale ju? mamy p?? roboty:D

Kod:


addEventHandler("onClientPreRender", root,
function ()
-- Get every sound
local sounds = getElementsByType("sound")

-- Abort if there is no sound active
if (#sounds == 0) then
return
end

-- Get if possible my vehicle
local me = getPedOccupiedVehicle(localPlayer)

-- Else use my ped
if (not isElement(me)) then
me = localPlayer
end

-- Get our position
local mpX, mpY, mpZ = getElementPosition(me)

-- Get our velocity
local mvX, mvY, mvZ = getElementVelocity(me)

-- Loop through the sounds
for index = 1, #sounds do
-- Get the current sound by index
local sound = sounds[index]

-- Get the element, which the sound is attached to
local attachedto = getElementAttachedTo(sound)

-- Continue if the sound is attached to a vehicle
if (isElement(attachedto) and getElementType(attachedto) == "vehicle") then
-- Get the vehicle's position
local tpX, tpY, tpZ = getElementPosition(attachedto)

-- Calculate the distance between him and us
local dX, dY, dZ = distance(mpX, mpY, mpZ, tpX, tpY, tpZ)

-- Get the actual length from the distance
local distance = getDistanceBetweenPoints3D(mpX, mpY, mpZ, tpX, tpY, tpZ)

-- Get the vehicle's velocity
local tvX, tvY, tvZ = getElementVelocity(attachedto)

-- Calculate the dotproduct from velocity and distance for the sender
local dpS = dotproduct(tvX, tvY, tvZ, dX, dY, dZ)

-- Calculate the dotproduct from velocity and distance for the receiver
local dpR = dotproduct(mvX, mvY, mvZ, dX, dY, dZ)

-- Calculate teh vs value for the sender
local vr = dpR / distance

-- Calculate the vr value for the receiver
local vs = dpS / distance

-- Calculate the frequency (modified formula to improve the effect in GTA)
local f = ((1 + vr) / (1 + vs)) * (4.5 * (vs - vr))

-- Adjust the sound speed and effect
local samplerate, _, _, reverse = getSoundProperties(sound)
setSoundProperties(sound, samplerate, f, f, reverse)
end
end
end
)

function distance(x, y, z, a, b, c)
return math.abs(a - x), math.abs(b - y), math.abs(c - z)
end

function dotproduct(x, y, z, a, b, c)
return math.abs(x * a) + math.abs(y * b) + math.abs(z * c)
end



Postaw piwo autorowi tego posta
 

 
Tagi: efekt :: dopplera
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wy¶wietl posty z ostatnich:   
GTAONLINE.PL » JÊZYKI PROGRAMOWANIA » LUA » Efekt Dopplera Ten temat jest zablokowany bez mo¿liwo¶ci zmiany postów lub pisania odpowiedzi

Nie mo¿esz pisaæ nowych tematów
Nie mo¿esz odpowiadaæ w tematach
Nie mo¿esz zmieniaæ swoich postów
Nie mo¿esz usuwaæ swoich postów
Nie mo¿esz g³osowaæ w ankietach
Dodaj temat do Ulubionych
Wersja do druku