Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

РЕАЛИСТИЧНАЯ Физика в игре.


Страницы:   1 2 3

Stalker_23b ©   (2004-01-09 23:13:00) 

Я хочу использовать в игре физическую библиотеку ODE, встроенную в GLScene. Но при ее использовании, я ставлю игровой процесс в рамки физичности. То есть я не могу просто взять и нарисовать скелетную анимацию персонажа, ибо теперь все его руки и ноги имеют массу и инерцию, и подчиняются физическим законам.
  Вообще я хочу написать файтинг роботов, который выглядел бы полностью физично. То есть при ударе, робот по всем законам физики вмазывается в стену и сползает по ней, при попадании в определенную часть тела толчок происходит именно туда, и т.д. И проблема моя в том, что, если я хочу анимировать двуногих роботов, до мне нужно написать алгоритм полностью физической ходьбы, ударов и т.д. - так как это делает человек. Но это очень сложно. Фактически, чтобы робот хотя бы умел стоять, ему постоянно нужно совершать кучу телодвижений, чтобы самобалансироваться. И как это реализовать - непонятно.
  Но я могу воздействовать на физическую систему, прилагая какие угодно силы и ограничения к частям тела робота. Как, с помощью этих ухищрений, добиться того, чтобы двуногий робот мог стоять, ходить, прыгать и драться?
  Мда...сложноватый вопрос получился...короче, как сделать физичную, но подконтрольную систему???


Кен   (2004-01-21 07:24:00) [21]


> Alek Aaz ©   (16.01.04 09:11) [23]

Не знаю почему, но когда пытаюсь подводить момент к объетам ODE,
AddTorque(AffineVectorMake(0,0,10));
у меня вылетает сообщение об ошибке. В чём она может заключаться ?


Кен   (2004-01-17 02:55:00) [22]


> Alek Aaz ©   (16.01.04 09:11) [23]
> ИМХО. В начале нужно перевести и почитать статью по ODE
> http://opende.sourceforge.net/ode-latest-userguide.html
> А там посмотрим...

Читали только более старую версию. Насколько позволяет знание языка.
Вопрос в редакторе для создания динамических моделей и в формате для их храненния. Наподобии MilkShape для графических моделей.

Потому, что каждый раз писать код, чтобы создать сферу, потом куб, потом что-то ещё - гиморой. Представь, что захочешь создать автомобиль, сколько кода надо будет написать ? А если потом захочешь что-либо изменить ?

Нужен формат для дин. моделей и редактор.


Alek Aaz   (2004-01-16 09:11:00) [23]

ИМХО. В начале нужно перевести и почитать статью по ODE http://opende.sourceforge.net/ode-latest-userguide.html
А там посмотрим...


Alek Aaz   (2004-01-16 08:18:00) [24]

Этот человечек?
http://www.vrac.iastate.edu/~streeter/avh.html
Тут еще есть
http://www.natew.com/juice/


Asteroid   (2004-01-16 02:26:00) [25]

> MrAngel   (15.01.04 09:47) [20]
У человека сколько мышц, причем неразвитых? А у робота? :)


MrAngel   (2004-01-15 09:47:00) [26]

Если брать обучение хождению, то немного страшноватенько становится - человек очень долго обучался такому.


Asteroid   (2004-01-15 06:08:00) [27]

> Stalker_23b   (15.01.04 03:55) [16]
Я имел в виду, что НС могут объединять схожие ситуации и давать один вывод. Она объединяет ситуации, в которых ее обучили и дает соотв. результат. Если ей дать новую и попросить сделать вывод, в лучшем случае будет несколько ситуаций, схожих (по мнению сети) с уже бывшими.
У ГА нет памяти, они не могут анализировать. Зато быстро вычисляют оптимальные параметры для любой функции. В т.ч. могут подстроить ту же НС при обучении (когда известен вход, известен выход, но нужно найти коэффициенты).
Наверное, я просто придираюсь к словам,. Сорри за оффтоп :)

Насчет робота - я просто слабо представляю весь ход обучения (от того момента, когда ему сказали "пройти 50м" до того, когда он выработал последовательность действий). Надо почитать литературку.
P.S. Человек ведь не знает реакцию на все случаи жизни. Так что нужен механизм принятия решений.


Кен   (2004-01-15 04:37:00) [28]


> Stalker_23b   (15.01.04 03:55) [16]
> 2 KEN : http://q12.org/phd-movies.htmlтут ролики

Зачем мне ролики ? Я хотел "аналогичный змейке пример для двуногого робота".


Кен   (2004-01-15 04:05:00) [29]


> Asteroid ©   (15.01.04 01:57) [14]
> > Кен ©   (15.01.04 01:54) [13]
> А как бы ты искал их стандартными методами?

А мне и не надо. Задача уж больно вычурная. Функция и целые числа. Как будто специально её придумывали чтобы хоть где-то можно было ГА использовать.


Stalker_23b   (2004-01-15 03:55:00) [30]

2 KEN : http://q12.org/phd-movies.htmlтут ролики из дипломной работы автора библиотеки ODE (Russel Smith) о...как раз об обучении ходьбе физичных двуногих роботов и прыгающего робота. Но учти - ролик о полном обучении весит 14 мб.

2 Астероид : Не понял, что значит нейронные сети = распознование и классификация информации? Не только! Нейронная сеть - это есть обработка некого входного сигнала и генерация выходного, с возможностью обучения и оптимизации для наилучшего результата. И, с помощью такой сетки, можно решать мнооогие задачи, от игры в шахматы до распознавания изображений. И вот как раз, в этих роликах мы видим, как сеть учится ходить роботом.


Asteroid   (2004-01-15 02:00:00) [31]

Насчет применения - везде, где нужно найти минимум функции :) Что это будет - в общем-то, все равно. Тут вот висит в трее прога, находит состяния молекул с минимальной энергией, работает на ГА. Та же несчастная змея [8] - приспоабливается к новым условиям.


Asteroid   (2004-01-15 01:57:00) [32]

> Кен ©   (15.01.04 01:54) [13]
А как бы ты искал их стандартными методами? Насколько быстрее у тебя бы это получилось, если бы переменных было штук 10-15?


Кен   (2004-01-15 01:54:00) [33]


> Asteroid ©   (15.01.04 01:47) [11]
> ГА сами по себе обучения не требуют, они дадут минимум ф-ции
> в любых условиях - и всегда относительно быстро.

Помоему их негде применять, эти генетические алгоритмы. Единственный пример который удалось найти - это поиск целых a,b,c в формуле a+const*b+const*c=const
Других примеров не нашёл. Хотя хотелось бы.


Кен   (2004-01-15 01:47:00) [34]

Кстати в демках GLScene появился плащ Тринити. С физикой ODE. Типа шевелится по физическим законам. И давольно шустро.


Asteroid   (2004-01-15 01:47:00) [35]

> Stalker_23b   (15.01.04 01:26) [9]
И почему же он полетит на пол?
P.S. Поищи wireframe.swf и ты поймешь, о чем я говорю :)
P.P.S. Товарищи, просьба, не путайте нейронную сеть с генетическими алгоритмами. Нейронная сеть - распознавание и классификация информации, ГА - метод нахождения минимума функции. ГА сами по себе обучения не требуют, они дадут минимум ф-ции в любых условиях - и всегда относительно быстро.


Кен   (2004-01-15 01:42:00) [36]


> Stalker_23b   (15.01.04 01:26) [9]
> 2Ken : Здесь ты прав, нихрена там в реал-тайме не обсчитывается,
> идет обучение нейронной сети ходьбе на мноооогих поколениях.
> И действительно оно ТОЛЬКО для тех условий, где обучалось
> (наклон плоскости, отсутствие препятствий).


Вот. Это и называется МААААААААТРИЦА !!!

Берём робота, типа собачка Aibo.
Ставим на неё камеру и анализируем поверхность на которой Аибо стоит. Загоняем её(поверхность) в ODE, и тренируемся в нём ходить по этой поверхности. Лучший вариант из найденных передаём Аибо и она идёт по поврехности.

Вот так Агент Смит из Матрицы и работал.


> Ссылка -...эээ..гдето на ODEшном сайте (не помню адрес).

Очень бы хотелось увидеть.


Stalker_23b   (2004-01-15 01:26:00) [37]

2Ken : Здесь ты прав, нихрена там в реал-тайме не обсчитывается, идет обучение нейронной сети ходьбе на мноооогих поколениях. И действительно оно ТОЛЬКО для тех условий, где обучалось (наклон плоскости, отсутствие препятствий). Ссылка -...эээ..гдето на ODEшном сайте (не помню адрес).

2Asteroid : Хы, просто тебе говорить - задать напряжение в суставах. Ну, допустим, при долгом геморое мы его зададим, чтобы он стоял...но малейший толчок - и тело летит на пол. А вот чтобы в реалтайме само обсчитывалось, какое и где нужно напряжение - это есть задача не из легких.

Короче, посмотрел я на это дело, и плюнул - пусть будут хоть четырехногие роботы в игре, ибо чтоб не совсем уж колесные :) А то, действительно, без отключения физики НЕ РЕАЛЬНО сделать нормальный двуногий алгоритм. Н Е  РЕАЛЬНО. Вот.


Asteroid   (2004-01-14 18:38:00) [38]

> MrAngel   (14.01.04 18:03) [7]
Встать на ноги - это уже совершенно другая статья. Это уже переход из одного "нормального" положения в другое. Если человек лежит на полу, ему придется выполнить определенную последовательность, чтобы встать на ноги. Может просто сделать отдельную анимацию для поднятия себя - без физики или отключив напряжения.


MrAngel   (2004-01-14 18:03:00) [39]

А какже тогда в случае, если роботу надо встать на ноги ? При помощи напряжений это достаточно сложно реализовать.


Asteroid   (2004-01-13 22:13:00) [40]

> MrAngel   (10.01.04 18:09) [1]
Насчет змейки. Может это что-то другое, но читал новость, чот сделали змею на генетических алгоритмах (змея состояла из некоторого числа кусков), причем в случае повреждения каких-либо фрагментов тела она перенастраивалась на оптимальное передвижение.

По теме - идеи такие:
1) задать напряжения в суставах и заставить робота стремиться к минимизации напряжений ("стойка по умолчанию").
2) высчитывать центр тяжести робота и если он выходит за рамки круга, переставить ногу с наименьшей нагрузкой.
Можно также ввести элементы случайности: чтобы робот в спокойном состоянии не стоял как мумия, слегка изменять угол минимальных напряжений.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо