Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.10.24;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.049 c
1-1097139093
Cosinus
2004-10-07 12:51
2004.10.24
Координаты вывода сообщения по ShowMessageCj,


4-1095712680
Саша
2004-09-21 00:38
2004.10.24
ExitWindow


3-1096461753
Shaman
2004-09-29 16:42
2004.10.24
Как в sql-запросе на вставку указать значение блоб-поля?


1-1097219208
maxistent
2004-10-08 11:06
2004.10.24
Клик крысой на экране


4-1095572440
SergP.
2004-09-19 09:40
2004.10.24
Работа с СОМ-портом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский