|   Регистрация (Registration)   Вход  



1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9

Car suspension (Автомобильная подвеска)

В этом туториале мы будем создавать автомобильную подвеску. Цель - контроль над колесом, так чтобы площадь соприкосновения колеса с землей была настолько велика насколько позволяет подвеска.
Основная идея определить где между нижним и верхним концами подвески колесо соприкасается с поверхностью. Особенно полезен для этого нод Ray Collision. Один Null-объект используется как основная часть подвески с двумя дочерними Null-объектами, которые представляют собой верхний и нижний концы подвески. Эти два Null-объекта мы будем использовать как точки в ноде Ray Collision.
Нод Ray Collision требует задания луча (проведения линии) между двумя точками и первого пересечения с заданным полигональным объектом. Нод даст нам булевый результат (Bool) а заодно и глобльную позицию происхождения коллизии.
Поскольку нам надо чтоб подвеска работала относительно корпуса машины надо делать расчеты в локальных координатах, иначе колесо будет крутиться вдоль глобальной оси у, а не оси у машины. Чтобы облегчить процесс введем 2 нода COFFEE, которые позволят нам легче переходить от локальных координат к глобальным и наоборот. (info)
Чтобы облегчить контроль используем пользовательские поля (User Data fields) на Null-объектах подвески чтобы определить протяженность подвески, а заодно и радиус колеса. Объект коллизии и колесо соединены через свойства поля ссылки (Link) нода Xpresso (info)
Кроме Xpression для контроля над подвеской здесь еще есть маленький Xpression на каждый Null-объект подвески, который правильно располагает его относительно главного Null-объекта.

Чтобы сделать Xpression легче переносимым все ссылки надо сделать либо относительными (Null-объекты краев подвески/точки луча) либо полями ссылки.
Чтобы подвеска работала правильно надо различать 2 состояния зависящих от наличия коллизии (произошло касание или нет). Если коллизия в наличии то ее глобальные координаты надо пересчитать в локальные для подвески и добавить радиус колеса к локальной Y координате. Новое локальное положение перевести назад в глобальное и связать с колесом. Если коллизии нет - локальную Y координату надо использовать как нижнюю точку луча (полностью растянутую подвеску). Дополнительные комментарии к этой Xpresso конструкции Вы найдете в сцене. Анимация


1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9


  К списку уроков

 новости   plugin db   а-чем-а-как   форум   ссылки   о проекте  
Вся ответственность за содержание материалов, опубликованных на сайте, лежит на их авторах.
Использование материалов, опубликованных на сайте, разрешено только со ссылкой на источник.

Copyright © 2003-2011 C!NEMAXiMUS