Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: ice99 от 01 Апреля 2009, 09:24:43



Название: Как програмно обновить "Collision tree" у объекта?
Отправлено: ice99 от 01 Апреля 2009, 09:24:43
Объект анимирован, причем не просто движение, а изменение формы.
CollisionRayCheck работает нормально только в самом начале анимации, в конце - нет. Обновляю вручную  - работает. Ставил галочку "Check is object child update" - нет эффекта.
По сути мне нужна разная коллизия в первой и последней точке анимации, т.е. всего 2 дерева. Есть вариант - сделать 2 дерева и переключать их, но может есть вариант легче? Всего то надо "при остановке анимации, программно обновить Collision tree"
Есть идеи?

Вопрос: Как програмно обновить "Collision tree" у объекта


Название: Re: Как програмно обновить "Collision tree" у объекта?
Отправлено: Viik от 01 Апреля 2009, 11:00:13
Пересчитать колижен три в рилтаме нельзя. Можно по таймеру переключаться между двумя отдельными мешами колизии, один для начала анимации а второй для конца.


Название: Re: Как програмно обновить "Collision tree" у объекта?
Отправлено: Viik от 01 Апреля 2009, 13:07:46
Тут еще вот какой вариант есть, все зависит от анимации, возможно что ничего не нужно пересчитывать если сделать упрощенный колижен меш и заанимировать его синхронно с мешем который рендериться. Какая анимация используеться?


Название: Re: Как програмно обновить "Collision tree" у объекта?
Отправлено: ice99 от 02 Апреля 2009, 12:02:50
Сделал 2 Collision Tree у объекта, Channel switch, все как положено, но:
КОНСТРУКЦИЯ РАБОТАЕТ ТОЛЬКО В РЕДАКТОРЕ, В ЕХЕ - коллизии не переключаются.
Я выводил на экран контрольные значения переменной, ответственной за переключение - оно изменяется. по идее должны переключаться и каналы, но этого не происходит.
скрин прикрепил