Отправлено: 01.10.08 07:38. Заголовок: WME и тормоза...
Ситуация такая. На сцене несколько анимированных (looping) объектов (entety). Часть активирована, часть нет. В момент, когда я из скрипта активирую неактивные объекты и делаю им PlayAnim или SetSprite, то игра неприятно подтормаживает. Некритично, но впечатление портит безвозвратно. Я так понимаю, что подтормаживает из-за PlayAnim и SetSprite, которые подгружают новые анимации. Как с этим бороться, как сделать так, чтобы при загрузке сцены, были загружены все анимации для объектов на сцене (как например у актера)? Но для объектов все анимации хранятся в независимых sprite, поэтому нигде не связаны.
Еще какие есть советы по оптимизации в WME, чтобы ничего не тормозило. А то пара объектов начнет проигрывать анимацию и все подторможивает. Например, когда именно надо ставить галочку streamins у спрайтов. Т.е. по логике получается, что для всех спрайтов с одним кадром она должна стоять.
Отправлено: 01.10.08 12:24. Заголовок: Для объекта сделано ..
Для объекта сделано несколько анимаций. Грубо говоря, анимация проявления, постоянная анимация и анимация исчезания. Я соответственно цепляю за entity эти спрайты исходя из действий на сцене.
Сообщение: 94
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация:
0
Отправлено: 01.10.08 13:07. Заголовок: Тормоза, скорее всег..
Тормоза, скорее всего, происходят из-за большого количества анимированных объектов в сцене. Какие у твоей машины характеристики (видеокарта, процессор, оперативная память)?
Отправлено: 01.10.08 22:33. Заголовок: Возможно тормоза от ..
Возможно тормоза от большого колличества кадров в каждой анимации. Я когда начинал все эти дела ковырять, делал в одной сцене часы с маятником. Так для более плавного хода маятника я делал инимацию 25 кадров/сек. И это была не единственная анимация в сцене. Плюс еще были открывающеся/закрывающиеся ящики стола (тоже 25 FPS), которые открывались/закрывались таким же способом - заменой спрайта. Естественно это все жутко тормозило. Ищи компромисы.
Отправлено: 02.10.08 07:44. Заголовок: В общем я так и дума..
В общем я так и думал. Буду резать число кадров и двигать объекты из скрипта. Кстати, а если в анимации много кадров (20-30), но на самом деле оригинальных среди них 3-5, а все остальное движение делаются средствами редактора спрайтов WME?
Отправлено: 02.10.08 12:41. Заголовок: Еще такая мысль появ..
Еще такая мысль появилась. В момент загрузки сцены. Брать все объекты на ней по очереди делать их неактивными, а потом делать SetSprite для всех аниаций, которые этот объект будет испольлзовать. Затем либо оставлять объект неактивным, либо активным. Если я понимаю, то таким образом в память загрузятся все анимации (если он не streaming), а неактивность объекта позволит избежать проигрывания звуков в этих анимациях. Сцена начинается с фейда, поэтому все эти манипцляции будут происходить при черном экране.
Это сработает? Или анимация будет подгружаться только, когда объект становится активным?
Отправлено: 10.10.08 10:20. Заголовок: В общем самый правил..
В общем самый правильный путь, чтобы не тормозило, это объекты на сцене превращать в актеров, тогда все их анимации будут подгружаться сразу и не будут тормозить.
Отправлено: 14.10.08 14:09. Заголовок: Раз уж эта тема полу..
Раз уж эта тема получилась про оптимизацию в WME. Появилс такой вопрос. Я в сцене пишу несколько Scena.LoadActor и когда перехожу на другую сцену, мне надо писать Scena.UnloadObject, чтобы игра выгрузила все ненужное из памяти, или движок делает это автоматически при переходе к другой сцене?
Все даты в формате GMT
3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет