Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 11.12.2008, 16:07   #16
viper86
Нуждающийся
 
Аватар для viper86
 
Регистрация: 19.11.2008
Адрес: Украина, Луганск
Сообщений: 72
Написано 34 полезных сообщений
(для 123 пользователей)
Ответ: Комбинация клавиш

Задам ещё один вопрос. Мне тяжело будет его обьяснить, но я попытаюсь.
Когда мы экспортируем анимацию через b3dPipeline, все обьекты являются детями Scene Root. И когда мы используем команды предвижения, вращения и тд, то они применяются к Scene Root. Поэтому, если у нас анимация ходьбы (не на месте, как родной блицевский робот, а с премещением в пространстве), то когда мы запустим анимацию в Блитце, персонаж тоже будет перемещатся в пространстве. Но Scene Root нет, он останется в точке 0,0,0 (естественно, если мы не двигали обьект). И вот что получается: когда анимация заканчивается и мы запускаем другую (или опять эту), то персонаж опять начинает движение с центра, а не там, где закончилась предыдущая анимация. Это потому, что все обьекты привязаны к Scene Root и анимация тоже. Вот и получается, что если зациклить ходьбу, то персонаж будет всё время доходить до определённого места и опять перемещатся в центр. Конешно вы скажете, что нужно сделать анимацию без перемещения в пространстве (как робот блитцевский), и использовать MoveEntity. Но скорость движения тогда будет линейная, а шагают персонажи не линейно. Вы скажете, что можно задать движение по синусоиде (точнее его скорость). Да можно, но это только для ритмичных движений. А для остальных? Особенно со сложной и меняющейся траекторией.

В итоге я хочу, чтобы SCENE ROOT двигался вместе с обьектом, согласно анимации. Тогда и анимация будет нормальная, где законилась предыдущая, там же и следующая начинается. Тогда можно к Scene Root связывать обьекты для коллизий и физики.

Для большей наглядности прикрепляю пример.
Вложения
Тип файла: zip Primer.zip (660.8 Кб, 376 просмотров)
__________________
Лечим заражение... одна пуля - один больной.
(Offline)
 
Ответить с цитированием
Старый 12.12.2008, 12:19   #17
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Комбинация клавиш

Хм, вообще это изврат, и всёже придётся делать програмное перемещение, но есть небольшая идея:
Если SceneRoot в анимации двигается, ты можешь каждый цикл, двигать сам Entity на ту локальную координату как сместился SceneRoot и двигать SceneRoot обратно в нуль, таким образом ты будешь двигать объект програмно, получая скорость и т.п. из анимации.
Но минусы в этом, то что ты не контролируешь определённую скорость перемещения, и такой варриант полностью зависит от анимации, а этом имхо нехорошо..
Можно сделать чисто программно, а ходьбу сделать на месте, с небольшими перемещениями, эмитируя нелинейность.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
viper86 (12.12.2008)
Старый 12.12.2008, 18:14   #18
viper86
Нуждающийся
 
Аватар для viper86
 
Регистрация: 19.11.2008
Адрес: Украина, Луганск
Сообщений: 72
Написано 34 полезных сообщений
(для 123 пользователей)
Ответ: Комбинация клавиш

Нет, SceneRoot при анимации на месте. Я тоже сначала хотел каждый цикл ставить SceneRoot на то место, куда сместился персонаж. Но тогда амплитуда движений с каждым циклом увеличивается. Я решил сделать вообще изврат ))). Экспортирую главную кость с анимацией, а потом из анимации с перемещением получаю статическую анимацию. Использую статическую, то есть персонаж ходит на месте. Затем загружаю главную кость с такое же анимацией, одновременно анимирую и персонажа и кость, но задаю каждый цикл, чтоб SceneRoot персонажа следовал координатам главной кости, а по завершению анимации SceneRoot кости ставлю на то место, где находиться SceneRoot персонажа. То есть у меня двигаются всё время 2 обьекта:персонаж и главная кость. И загружаю тоже 2 анимации:статическую для персонажа и с премещением для главной кости. Таким образом я могу использовать и програмную анимацию, и заданную. Я понимаю, этот способ дикий изврат, но по другому не знаю как и анимация получается красивая и с плавными переходами.

2MoKa Спасибо, что делишься идеями и помогаешь
__________________
Лечим заражение... одна пуля - один больной.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как решить проблемы с обработкой клавиш? integra Основной форум 1 28.11.2009 13:15
отслежывание нажатий клавиш beZ_probleM Основной форум 7 20.10.2008 01:17
Обработка нажатий клавиш Phantom Программирование 4 24.08.2008 23:02
Отлов нажатий клавиш SkyFox Основной форум 2 27.06.2008 09:42
Реализация переназначения клавиш Fant 2D-программирование 12 19.05.2006 21:49


Часовой пояс GMT +4, время: 21:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com