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

Вниз

РЕАЛИСТИЧНАЯ Физика в игре.   Найти похожие ветки 

 
Alek Aaz ©   (2004-01-26 14:09) [40]

2Ken
>Помоему где то годик назад ты нечто подобное уже писал. :)
Да помню, помню ... :) руки не доходят... Будет время - бильярд накропаю :)
Поддерживать мотоцикл не буду, т.к. не понимаю в ODE ничего. Перевел маленькую статейку о DelphiODE с материнского сайта. Ничего особенного, так, общие принципы. Может выложу куда...

2Alex Storm
Лучше с CVS не заморачиваться, на http://glscene.sourceforge.net/index.php болтается GLScene_SnapShot_231203.zip (4.2 MB). Вроде достаточно работоспособный snapshot :)

2Stalker_23b
>dJointSetHingeParam(TODejointHinge.jointID,dParamVel,10) - примерно так, через экспортную функцию ОДЕ, ты можешь влиять на СКОРОСТЬ вращения джоинта.
Думаешь кто-нибудь понял о чем речь? :) Особенно про джоинт :)
>А вообще - читайте хэлп по ОДЕ
Народ бъет себя в грудь, что читал. Но я давно заметил, что на родной мове материал почемуто лучше усваивается. Если буду переводить ODE User Guide поможешь?

Идея тут родилась. Не знаю, покатит или нет.
ИМХО. В принципе, SMD анимация это текстовый файл. На сайте http://www.geocities.com/stuart_gooding/ есть програмка Skeletal Mesh Collider (SMC) Editor описывающая smd модельку геометриями ODE (в основном капсулами). Берем анимацию (текстовый файл smd) и переводим в вид косточка-направление силы-время действия.
Только я не понял, еще формата smd анимации, но думаю, не сложно будет это сделать(мне кажется косточка должна быть вида x,y,z единичный вектор+h длина или xyz координаты начала и конца косточки в данный момент времени).
Скажем так:
кость: FingR01
направление: 1 кадр (получаем вектор косточки), 10 кадр (получаем вектор косточки)вычитаем один из другого, строим нормали  или что там необходимо и получаем вектор-направление, куда двигался конец косточки относительно своего начала(ну или как там это грамотно называется, пусть математики поправят) на протяжении 10 кадров.
Время действия силы - знаем что движение было 10 кадров, а кадров 24 в секунду (или сколько их там) тогда сила должна действовать на косточку 0,41666 секунды. Либо вообще не выставлять время действия, а гнать в константе покадрово. (скажем кость такая-то, направление такое-то, а в следующем кадре сменить направление) У косточки есть своя геометрия к ней и садим всякими dJointAddHingeTorque силы.
Причем не надо вычислять все силы дейстующие на косточку, а только ту которая "создается" роботом для выполнения движения.
При соприкосновении с чужой головой, туловищем или стеной ODE сама добавит нужные силы и нужные моменты. При накаутирующем ударе(когда робот впечатывается в стенку)силы "создаваемые" роботом можно убрать и он полетит как Нормально Летающий Объект. Или не убирать их. Будет как в китайских фильмах-литит кунфуист от полученного удара метров за 300, а сам в воздухе руками и ногами махает. Просто силу к роботу нужно приложить Большую, я бы даже сказал ЧУДОВИЩНУЮ. И тогда силы "создаваемые" роботом будут просто ничтожны и их можно будет не рассматривать. Для ярых реалистов сценарий нокаута: удар - потеря сознания (убрали "создаваемые" роботом силы)- робот валится на пол как мешок.
Так как это не чистая анимация то можно использовать не TActor, а TFreeForm или вообще разбить фигуру на три составляющие башка, тело с руками, ноги. Как в примере с моделькой md3 (Quake 3).    
Во... Наверное так лучше всего сделать.
>Фактически, чтобы робот хотя бы умел стоять, ему постоянно нужно совершать кучу телодвижений, чтобы самобалансироваться.
Нифига! Робот может ничего не делать если проекция центра массы робота не вышла за площадь его опоры (ступней). Скажем, стоит брусок, мы его отклоняем чуть и отпускаем. Если проекция центра массы вышла за площадь опоры, он упадет, если нет - вернется в первоначальное положение. Собственно, если проекция не вышла за пределы-че роботу волноваться? самобалансироваться - просто центр массы робота загоняется в площадь его опоры. Чем меньше площадь тем сложнее это сделать (на канате устоять простому смертному вообще невозможно).
Скажем для ног сделать следующие анимашки: стойки (у меня где-то самоучитель по ушу и карате был :) можно надергать оттуда), шаг вперед левой ногой, вперед правой ногой, шаг назад (левой, правой),шаг в сторону (левой, и правой ногой), перекрестный ход. Про всякие маваши-гири пока забываем.
Скажем робот "работает" в стойке его выводят из равновесия ударом чего-нибудь (например кулака :), но для эксперимента можно в него шарики тяжелые пулять). Если центр массы его не сместился критически он ничего не предринимает, если появилась угроза опрокидывания, делает шаг назад или в бок. В общем никаких нейросетей, простая геометрия. Хочет двигаться вперед, смещает центр массы вперед и делает шаг. Мля... Мне проще на листке нарисовать :) ...
Мля... устал писать... Ладно, подумаю, завтра допишу...


 
Кен ©   (2004-01-27 04:10) [41]


> Alek Aaz ©   (26.01.04 14:09) [40]
> 2Ken
> >Помоему где то годик назад ты нечто подобное уже писал.
> :)

Исходники живы. Код я комментировал, так, что при желании можно будет легко воскресить.
А забросил я всё это тогда из-за нереалистичной физики, которую писал сам. А потом, когда посмотрел ODE, то понял, что надо не велосипед с физикой изобретать, а прикрутить к программе ODE, с тех пор вот и прикручиваю ...

Жду когда появится на ODE больше демок и примеров, чтобы можно было хоть откуда нибудь позаимствовать код, хоть посмотреть, как это правильно писать. Чудаки они вообще. Написать движок и почти не написать как его использовать.
Только примеры нужны не на чистом ODE, а на том, что под GLScene, потому, что на чистом, любая мелочь - это три страницы кода, и мне лень столько писать.


> 2Alex Storm
> Лучше с CVS не заморачиваться, на http://glscene.sourceforge.net/index.php
> болтается GLScene_SnapShot_231203.zip (4.2 MB). Вроде достаточно
> работоспособный snapshot :)

Они раз в год обновления выкладывают. Ждать замучишься.


 
Кен ©   (2004-01-27 04:21) [42]


> Alek Aaz ©   (26.01.04 14:09) [40]
> 2Ken
> >Помоему где то годик назад ты нечто подобное уже писал.
> :)

Ту программу можно как бы разделить на части. Та часть, которая отвечает за диалоги, сумку героя и квестовую логику можно считать законченной. Хоть сейчас бери да пиши в ней текстовый квест. Можно даже в виде dll оформить да выложить здесь, чтоб народ пользовался. ( код не покажу ! :) )

Другая часть программы - редактор. Добавление в программу объектов (пальмы, камни, дома в формате 3ds), возможность их крутить, масштабировать, перемещать, добавлять кубы коллизий. Автоматическая загрузка и сохранение. В принципе давольно примитивно, но своё дело делает.

Ну и так мелочь ещё. Камера которая плавно летает за героем как в Томб Рэйдере. Пули, которые могут убивать и самоликвидироваться когда улетают слишком далеко, ещё вроде что то там было ...


 
Napilnik   (2004-02-26 19:49) [43]

Кен кажется я знаю в чем проблема с колесом.Я думаю что если колесо соединить джоинтом с корпусом мотоцикла то все проблемы исчезнут  т.к джоинт накладывает ограничения на вращение колеса по определённым координатам.Следовательно оно по идее не не будет
бултыхатся в воздухе абы какю


 
md3   (2004-05-22 20:03) [44]

Мастера, извините что не в тему, но в ОДЕ и меня такой глюк:
загружаю в Оде какой-нибудь mesh(3ds)из GLfreeform ,и mesh
просто пролетает через пол или застревает в кубе если падает
на него.


 
md3   (2004-05-22 20:04) [45]

Мастера, извините что не в тему, но в ОДЕ и меня такой глюк:
загружаю в Оде какой-нибудь mesh(3ds)из GLfreeform ,и mesh
просто пролетает через пол или застревает в кубе если падает
на него.как этого глюка избежать.help....



Страницы: 1 2 вся ветка

Форум: "Игры";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.041 c
1-1094189174
jenbond
2004-09-03 09:26
2004.09.19
Недостаточно памяти


3-1093083459
Lizka
2004-08-21 14:17
2004.09.19
кол-во записей в ListBox


3-1092755395
zazoo
2004-08-17 19:09
2004.09.19
D5: не хочет работать при работе с dbgrid на 16 цветах


1-1093935514
hgd
2004-08-31 10:58
2004.09.19
Подсмотреть команду с exe


6-1089736761
Vladimir_v
2004-07-13 20:39
2004.09.19
Увеличение Headera письма?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский