Показать сообщение отдельно
Старый 24.12.2013, 12:38   #151
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Clear Engine (Понятный движок)

Я хочу что-бы волк шел потом шел и поворачивал, затем бил лапами и шел дальше, и так бесконечно.
Смена действий во времени - это уже геймплейная часть конкретной игры имхо, а не движка. Движок должен просто уметь проигрывать анимацию, типа
Animate (wolf, wolf_run)
Делать какие-то действия, ждать их завершения и делать следующие - это распространённая задача в играх и касается далеко на только анимаций.
Наблюдал реализацию этой фишки в скриптовых движках, что мне кажется довольно удобным.
Например, в первой Мафии такой скрипт выглядел бы так:
label 1
model_playanim 0, "wolf_walk", 1 // записывает время анимки в переменную 1
wait flt[1] // ждём окончания
model_playanim 0, "wolf_turn", 1
wait flt[1]
model_playanim 0, "wolf_paws", 1
wait flt[1]
goto 1
а в юнити с C# он бы мог выглядеть так:
IEnumerator loop()
{
 animation.CrossFade(wolf_walk);
 yield return new WaitForSeconds(animation["wolf_walk"].length);
 animation.CrossFade(wolf_turn);
 yield return new WaitForSeconds(animation["wolf_turn"].length);
 animation.CrossFade(wolf_paws);
 yield return new WaitForSeconds(animation["wolf_paws"].length);
}
В обоих вариантах всё куда понятнее. Плюс, оба варианта не ограничены движениями. Я могу поставить wait, чтобы NPC просто какое-то время занимался одной скриптовой деятельностью, интерактясь с миром, а потом переключался на другое дело, могу сделать часовую бомбу, миссию на время и много чего ещё на одном и том же функционале.
Специализированная версия waitов для анимаций в феноменально замороченной обёртке - не нужна.

---
алсо, как в мафе, так и в юнити, нет реальной асинхронности у этих штук (ибо не нужно), виртуальная машина просто умеет не обновлять скрипт, пока условие не выполнено, чекая его время от времени.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (24.12.2013)