Короче, суть такая.
Кастомную озвучку делаю так: регается событие 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
Это вообще само по себе "особое" решение, знаю, должны нормально быть кастомные саундсеты =/
Если кому не влом, киньте, плз, тут линки еще раз на то, как свои саундсеты делать, у меня будет уже по ссылкам прямо перебираться с блога сюда, а тут по линкам туда и постепенно мб раскурю.
//////////
/////////
Когда-нить мб пригодится
В общем, дело такое: поставлено проигрывать все звуки Картуса в начале одного триггера (на старте буквально сразу). В этот момент ощущается четкий сильный лаг, а потом пока лагов замечено не было.
Так что да, ятп, суть в необходимости прелоада.
Офк один "типа лаг" вначале в тысячу раз лучше небольших лагов в процессе геймплея. Но проблема в том, что если дальше делать так, то он будет только расти и расти. Можно ли прелоадить без лага? Ну не нахожу ничего, кроме вот той ссылки, и там вроде не то. Или только дораскуривать создание своих саундсетов через потрошение варкрафта?
загрузка в память требует времени == лаг
вывод
чтобы не было лагов не используй то что требует загрузки в память
а именно звуки, модели, текстуры и т.д.
либо прелоадь их при событии инициализация карты (тогда карта дольше грузится будет но лагов не будет)
и используй массивы как писал кет
это намного лучше чем писать 100500 ифов
Я функцию увидеть хочу, которая звуки прелоадит.
Я в упор не могу поиском найти ни через гугл, ни через здесь, то, что мне выдаёт, выше вон ссылка, но это старое и не то, по-моему.
про прелоад есть куча статей же