Текущий архив: 2004.10.24;
Скачать: CL | DM;
ВнизGLScene овский редактор ODE: Как можно из него сохранять модели ? Найти похожие ветки
← →
Алекс А (2004-06-23 04:00) [0]GLScene"овский редактор ODE: Как можно из него сохранять модели ?
Решил посмотреть старые демки с ODE, и обранужил, что их сильно переделали. Например, демка machine . Если раньше там, все жоинты и бади писались кодом, то теперь появился визуальный редактор, в котором их можно просто добавлять, удалять, и настраивать. А сам код теперь сводится к одной единственной строчке :TGLODEDynamicBehaviour(Pin2.Behaviours[0]).AddForce(AffineVectorMake(-50,0,0));
В ней даётся начальный импульс системе, чтобы она начала двигаться.
Я попытался разобраться где там чего. Пишу, если кому интересно.
Смотрим в GLScene Editor этой демки. Видим несолько кубов и цилиндров. (Wheel, Axle, Pin1, Arm, Pin2, Slider). Это наши графические объекты которым мы придаём физические параметры. А придаём мы их в свойстве TGLBehaviours. Кликаем скажем на Pin1 и на его свойство TGLBehaviours. Появляется окошко редактора Pin1.Behaviours. Там единственный пункт ODEDynamic. Кликаем на него и смотрим его свойства. Здесь самое нужное это TODEElements, так как в нём описываются ODE-шные бади, то есть тела для которых просчитывается физика. Для Pin1 тут было изменено единственное свойство, это Radius, по умолчанию он 0,5, а тут сделали 0,25, чтобы он соответсовал радиусу графического объекта Pin1. Но можно сделать его и больше, и меньше. Таким образом физические размеры объекта задаются независимо от его графических размеров, что в принципе логично.
Дальше объектам надо установить связи. Кликаем для этого на компонент, TGLODEJointList, у него одно свойство Joints, кликаем на него. Открывается окошко редактора с заголовком GLODEJointList1.XCollection , здесь описаны все наши связи между бадями (физическими телами). Кликаем например на строчку "1 - Wheel - Arm" Hinge . ( Hinge - означает соединение в виде петли. ) Смотрим в инспекторе объектов его свойства.
Anchor - это якорь, точка в которой петля рассположена.
Axis - это ось вдоль которой петля направлена
Manager - это мэнэджер, который руководит работой этого всего. Он один и одинаков для всех GLODEManager1.
Оbject1 и Object2 - это объекты которые петля соединяет. В данном случае Wheel и Arm которые видны в GLScene Editor"е.
В общем всё давольно неплохо сделано. Только непонятно как это всё сохранить. В смысле сохранить не форму полностью, а только отдельно вот эту конкретную Machine с её физикой. Я хочу сделать тут физический автомобиль, а потом его сохранить и загружать по несколько раз. Чтобы было много автомобилей. Что нибудь типа GTA. Но как это сделать ? Есть какие нибудь идеи, мысли на этот счёт ?
← →
КиТаЯц © (2004-06-23 07:26) [1]Ну... Я бы так попробовал.
1. Слепить нужную машину в редакторе ODE
2. Слепить рядом вторую в рантайме, так чтобы от первой не отличалась
3. Вынести "слепить рядом вторую" в отдельную процедуру
4. Создать класс что-то типа tODECar. Перенести "слепить вторую" в "конструктор"...
← →
Алекс А (2004-06-24 06:07) [2]
> КиТаЯц © (23.06.04 07:26) [1]
> Ну... Я бы так попробовал.
> 1. Слепить нужную машину в редакторе ODE
Слепил : http://tankgame.narod.ru/machine2.html
Ехешник и исходник в архиве.
Два кубика и четыри цилиндра, получилась простейшая модель легковушки в ODE. Само собой пока не обклеенная графикой. Передние колёса вращаются и поворачиваются, задние только поворачиваются.
Теперь вопрос как колёсам придать вращение в нужной плоскости ? А то им почему-то придаётся вращение относительно абсолютной системы координат. А надо же вокруг осей на которых они закреплены. Как это сделать ?
Кому интересно, можете поэксперементировать.
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.031 c