Цитата:
Сообщение от Gregory_777
Сегодня добавлю ешё рандомное воспроизведение звука движения по "бесстыковому" пути и перестука на скоростях выше 30 км/ч, чтобы перестук не задалбывал.
|
Да, работа скрипта с длинными звуками нереальна, а короткие, своей зацикленностью всю реалистичность сводят на нет.
Решил поступить так. Взял длинный звуковой файл соответсвующий определенной скорости и разрезал его на равные части. Так поступил и с другими. Звуки обозвал soundp_i, где p - № набора звуков определенной скорости, а i - № файла из набора.
Задача: воспроизведение звуков из набора друг за другом (ну, пока скорость позволяет, иначе будет "играть" другой набор), т.к. рандомно "играет" не всегда убедительно из-за несовпадений.
Скрипт работает, звуки воспроизводятся, правда надо еще все это настроить, чтоб без запинки и задоринки, а так, результат меня порадовал.
Единственное что напрягает, так это большая кипа звуковых файлов в папке sound. А вот сам фаргмент кода (поток), тестовый, сырой, но рабочий:
Код:
thread void SoundLooper(void)
{
while(true)
{
float speed=GetVelocity();
if (speed > 0.2 and speed <= 2.8)
{
p = 1;
i = 0;
sound = true;
count = true;
}
if (speed > 2.8 and speed <= 5.6)
{
p = 1;
count = true;
if (i >= 19)
i = 1;
else
{
sound = true;
i++;
}
}
if (speed > 5.6 and speed <= 8.4)
{
p = 2;
if (count == true or i == 20)
{
count = false;
i = 1;
}else{
sound = true;
i++;
//Interface.Print(i);
}
}
if (speed > 8.4 and speed <= 14.0)
{
p = 3;
if (count == false or i == 16)
{
count = true;
i = 0;
}else{
sound = true;
i++;
}
}
if (speed > 14.0 and speed <= 17.0)
{
p = 4;
if (count == true or i == 16)
{
count = false;
i = 0;
}else{
sound = true;
i++;
}
}
if (speed > 17.0 and speed <= 26.0)
{
p = 5;
if (count == false or i == 22)
{
count = true;
i = 0;
}else{
sound = true;
i++;
}
}
if (speed > 26.0)
{
p = 6;
if (count == true or i == 17)
{
count = false;
i = 0;
}else{
sound = true;
i++;
}
}
if (sound == true and p > 0)
Sleep(World.PlaySound(asset,"sound/sound" + p + "_" + i + ".wav",1.0,10.0,100.0,me,"a.bog0")-0.5);
Сразу говорю, он недоделанный, но идея может быть кому и пригодится.