Анимация и физический движок15.09.2015, 14:40. Показов 4010. Ответов 28
Метки нет (Все метки)
Здравствуйте
Хотя к OpenGL это не имеет никакого отношения, но думается именно здесь большинство людей которым это будет интересно. Есть какая-то анимация, созданная извне и без всякой физики. Пример: летит бабочка, машет крылышками (бяк-бяк-бяк-бяк) и, покружившись, садится на цветок. Через неск кадров складывает крылышки. Чего хотелось бы: уметь делать такую анимацию автоматом/пулеметом для напр 100 (или 1000) бабочек и (обязательное требование) с учетом collision detection. Назначить каждой бабочке свой цветок - не вопрос, причем число цветков не обязано совпадать. Но вот все остальное - в полном тумане. Ясно что если хотим collision - нужен движок физики. Есть такой (Bullet), и есть опыт его использования. И тут много проблем. Конечно можно сделать бабочку "rigid body", но крылышками она уже просто так не замашет - body движется под действием сил (а не "как хочу"). Подлетая к цветку она должна сесть на него задницей и как-то держаться. А как? (идей пока нет). Ну и "облетать препятствия" - еще круче. Один из первых ответов (что я ожидаю) типа "а ты возьми отот готовый движок...". Хорошо бы, но здесь вход и выход свои, т.е. нет никаких планов делать игру, задача дать пользователю возможность создавать интересные анимации. Др словами рассчитать полет всех 100 бабочек на каждом кадре (получить матрицы трансформа для тела бабочки, а если потребуется - то и для крылышек, ножек и усиков). Не исключено что "хотелка" великовата - ну помечтать иногда тоже не вредно ![]() С уважением Игорь
0
|
|
| 15.09.2015, 14:40 | |
|
Ответы с готовыми решениями:
28
Стоит ли писать свой физический движок? Физический 3D движок Физический движок |
| 17.09.2015, 17:27 | |||||
|
0
|
|||||
| 17.09.2015, 17:55 | |
|
0
|
|
| 17.09.2015, 18:17 [ТС] | ||||
|
Не воспринимайте это слишком серьезно, это всего лишь весьма сырые соображения.
0
|
||||
| 17.09.2015, 18:59 | |||
1) Анимация - это как ТС написал: "крылышками (бяк-бяк-бяк-бяк)". Так вот опять это легко сделать в Unity, просто найти готовую 3D модель и за 5 минут сделать анимацию в Mecanim: один раз развернуть крылышки и свернуть - на этом анимация махания крылышками запишется. Её можно вызывать из скрипта. 2) Физический движок. Опять же работать с физ. движком PhysicsX в Unity прозрачная. Для бабочки будет сферический коллайдер. 3) Траектории движения множества бабочек. Пишется алгоритм на C#, который генерирует N траекторий для N бабочек. Добавлено через 3 минуты
0
|
|||
| 18.09.2015, 08:06 [ТС] | |||
|
- бабочка движется головой вперед - крылья сверху (вверх ногами бабочки не летают) - зато бабочка вполне может сидеть вверх ногами или на отвесной стене. Как ее "посадить"? Когда начинать разворот "на посадку"? - и даже махание крыльями не так уж просто, напр какое-то время она "планирует" ВСЕ данные что я перечислил (а найдутся и др) в анимации уже ЕСТЬ. А начиная генерировать путь "с нуля" их еще надо как-то задать - и я в упор не вижу как
0
|
|||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|||
| 18.09.2015, 16:20 | |||
|
Есть такая игра Freelancer так вот там корабль на автопилоте облетает астероиды плавно + физика от удара когда этот автопилот глючит )). Скорей всего движения корабля задается какраз силой т.к. там физ движок. Игрушка вроде 2003 года. Догадки как работает: похоже это что-то типа каждое препятствие источник электрического поля. Строиться изоуровень на определенном пороге значения поля, получаться облако точек где может пройти объект не зацепив другие объекты. Затем прореживают количество точек или выбирают из них и формируют ломанную выбирая направление хитрым математическим методом =)), связывая начальную и конечную точки. Затем по ломанной строят например путь из кривых Безье 2 степени который и даст плавную траекторию и объекты не будут сталкиваться. Возможно стоит погуглить в направлении космических леталок типа: “облет препятствий кораблем” и подобные темы. Например : http://plawius.com/prototype/?lang=ru Попробуйте связаться с разработчиками для подсказки как они делали в общих чертах или других схожих проектов. Добавлено через 59 минут А вот пару кликов по этому запросу. Сам удивлялся как они так сделали в игре… Похоже эта задача называется Pathfinding Algorithms http://gamma.cs.unc.edu/RVO2/ А вот их типы. http://gamedev.stackexchange.c... algorithms
0
|
|||
| 21.09.2015, 10:48 [ТС] | ||
Тут вообще хоть какой-то путь иметь. Вот что есть сейчасОбъекту (rigid body) назначается конечная точка и указывается величина прилагаемой силы. И точка и сила могут меняться во времени. Сила работает по Ньютону F = m * a, то есть на каждом кадре вычисляем вектор ускорения и добавляем его к вектору скорости объекта. Это впрочем совсем не значит что объект прилетит куда назначено - на него могут влиять др силы, или он может упереться в препятствие. Болезненная проблема - приземление. То есть прилететь-то все же прилетел, но как попало "прилип" к месту назначения, часто еще и "дергается" там. И вот есть хороший, интересный путь сделанный пользователем - как его задействовать? Можно тупо сделать объект "kinematic" - тогда его можно двигать самому, без физики. Но на такой объект никто не сможет повлиять, т.е. сам он может толкать других, но не наоборот
0
|
||
| 21.09.2015, 10:53 | |
|
0
|
|
| 22.10.2015, 08:26 [ТС] | |
|
Через некоторое время вернулся к этой задаче. В первую очередь почитал теорию - и все кажется не так уж мрачно
. Обсуждается здесь Стая, рой и.т.п. Кому интересно - присоединяйтесь
0
|
|
| 22.10.2015, 08:26 | |
|
Физический движок Физический движок с вращением Простейший физический движок Разработать физический движок Физический движок Box2d, сборка статической библиотеки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|