Короче, суть такая.
Кастомную озвучку делаю так: регается событие unit_selected для конкретного юнита,
дальше триггер:
  • отключает себя во избежание звукоабуза
  • задаёт случайное значение переменной от 1 до x-xxx, сколько там звуков.
Далее идут ифзенэлсы от 1 до xxx
if (udg_integer == 1) then
call PlaySoundOnUnitBJ( gg_snd_SingerOfDeath1, 100, GetTriggerUnit() )
else
if (udg_integer == 2) then
call PlaySoundOnUnitBJ( gg_snd_SingerOfDeath2, 100, GetTriggerUnit() )
else
if (udg_integer == 3) then
call PlaySoundOnUnitBJ( gg_snd_SingerOfDeath3, 100, GetTriggerUnit() )
else
и так до последнего звука из саундсета.
Потом триггер запускает однократный таймер в Y секунд, после завершения которого исходный триггер (занесенный ранее в хэш) включается обратно.
Всё так-то действует. Но иногда при выделении юнита может проявиться раздражающее подлагивание. Чтобы его убрать, продрачиваются туда-сюда громкости звуков и изменение значения Y (просто больше ничего придумать не удаётся), и в конце концов обычно такое шаманство приводит к чему-то приемлемому (подлагивание устраняется до незаметного уровня). А бывает и так, что просто во время игры это подлагивание при выделении то достаточно заметно проявляется, то внезапно пропадает и все как по маслу идет (ну это если так-то отмечено, что оно ещё не устранилось).
Собственно прошу прокомментировать и посоветовать по оптимизации. Понимаю, что в идеале вообще должны быть кастомные саундсеты, но всё никак это раскурить не могу, да и, ятп, там не только вшивать в мпкью придётся, но и формат звуковых файлов нужный ставить, а их и так нарезать ещё и громкость настраивать...

ClotPh:
Ige, т. е. как-то так (при инициализации)?
call Preload (war3mapImported\SingerOfDeath1.wav)
call Preload("war3mapImported\\SingerOfDeath1.wav")
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Че еще подумалось... может, есть смысл кастомные звуки "прелоадить" - при инициализации карты массово проигрывать с громкостью 0? Или бред и ни на что не повлияет?
32
ClotPh:
Че еще подумалось... может, есть смысл кастомные звуки "прелоадить" - при инициализации карты массово проигрывать с громкостью 0? Или бред и ни на что не повлияет?
Надо же, сам ответил на свой вопрос - подгрузка звуков требует времени, для подгрузки есть целый набор функций preload.
Так что подгружаем все звуки вначале, чтобы не было просадки фпс.
21
quq_CCCP, то есть уточни, плз: их проиграть при инициализации карты с громкостью 0? Или что конкретно сделать? Хочется увидеть образец прелоада на 1 любой звук.
32
ClotPh, просто загрузи прелоадом. Уже 100500 раз выкладывал код, поиск в помощь.
21
Только вот что находит:
Но не прелоадить же каждый из сотен (если не тысяч потом) звуков подобным образом, это же бред, да и тема столетняя
Короче, если не получаю ясности, для начала пока попробую проиграть звуки с громкостью 0 при инициализации и посмотрю, что получится
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.