BlenderУкраина
Главная
Новости
Статьи
Уроки
Файлы
Ссылки
Форум
Галерея
Конкурсы

• Поиск по сайту

Логин:

Пароль:

 Запомнить
Восстановление пароля

Зарегистрироваться

Наше сообщество:

 Форум

 Галерея
       Все работы по рейтингу
       Все новые работы
       Последние комментарии

 Конкурсы
       Ежедневный
       На баннер
       Повтори
       Художественный

 Гостевая

 Радио

RSSНовости Blender
Последние сообщения форума

 Добавить новость
парфюмерияпарфюмерия : Днепропетровск : модели радиомоделирадиомодели модели на радиоуправлении
Сейчас на сайте 34 посетителей:
Dead, CWLROS, Ruslo, suomi, Stillioo, Uriy, discodzen, Pucalo, Kausica и 25 гостей

Обсуждаемые темы:

W.I.P. Uriy (suomi)
Вопросы новичков и ответы (Uriy)
WIP от MageasteR (suomi)
Linux (suomi)
WIP suomi (suomi)
Lux Render (SATtva)
Другие 3D редакторы (Alexandr15)
Мультфильм "Ничего страшного!" (ExeQt0r)
Ежедневный Конкурс моделирования в Blender (Juliya)
Анекдоты (DukeNukem2005)
WIP_Alexandr15 (Alexandr15)
Игра "Дом на скале" (Lunorcist)
Еженедельный конкурс ПОВТОРИ (Ratix6)
Вопрос(ы) по созданию игр (Иван П.)
W.I.P. от Indigo (Indigo)
Работы-победители ЕЖЕДНЕВНОГО КОНКУРСА (alber)

Работа дня:

Кузнец
Ежедневный конкурс моделирования

Новые работы в галерее:


Автор: DigitalRange

Автор: toSter

Автор: dopeless


Автоматический полив


Лекарственные травы


Прически и стрижки  

Сообщений 6, на страницах: 1
добавить сообщение

Boids частицы



В этом уроке я попытаюсь рассказать о системе симуляции толпы — boids-моделей, о том когда она появилась, что из себя представляет и как реализована в блендере.

В 1986 году Крэиг Рейнолдс (Craig Reynolds) создал компьютерную модель координации животного движения, такого как стаи птиц и косяки рыб. Она была основана на трехмерной вычислительной геометрии, которая обычно используется в компьютерной анимации и компьютерном дизайне. Общую симуляцию существ в толпе он назвал boids. Основная модель толпы состоит из трех простых рулевых поведений которые описывают, как маневрирует каждое существо (boid) в соответствии с позицией и скоростью его ближайших соседей:



Separation (Разделение): руль для предотвращения
скоплений существ



Alignment (Выравнивание): руль для выравнивания плотности местного скопления



Cohesion (Сплоченность): руль для движения в среднюю позицию местного скопления

Каждый boid имеет прямой доступ ко всей сцене, но реагирует только на соседей в определенном районе вокруг себя. Этот район характеризуется дистанцией (измеряемой от центра существа (boid)) и углом, измеряемым от направления движения существа (boid). Район можно считать моделью ограниченного восприятия (как у рыбы в мутной воде) но вероятно более корректно полагать, что это определенная область в которой толпа влияет на поведение существа (boid).



Немого более подробная поведенческая модель была использована в первых экспериментах. Она включала прогнозирование и уклонение от препятствий и поиск цели (goal seeking). Препятствие не допускало существам (boid) пролетать сквозь них имитируя статические объекты. Для компьютерной анимации, низкий приоритет поиска цели позволял толпе двигается по заранее заданному пути.



Симуляция избегания толпой цилиндрических препятствий (1986) (Первый тест, 20-секундный клип, QuickTime, 10 MB)


Впервые на SIGGRAPH '87 был показан короткий клип, который назывался Stanley and Stella in: Breaking the Ice.





Stanley and Stella in: Breaking the Ice (1987) (40 секундный клип, QuickTime, 2.8 MB)

С 1987 года было много других применений boids-модели в области анимаций поведения. Первым, в 1992 году был фильм Тима Бертона (Tim Burton) Бэтмен Возвращается (Batman Returns). В содержится симуляция стай летучих мышей и пингвинов, которые были созданы с измененными версиями оригинальных boids-моделей.

Источник: http://www.red3d.com/cwr/boids/

А теперь немного о теории о boids-модели блендера. Boids-частицы в блендере используются для имитации скоплений различных объектов: косяков рыб, животных в стаде, а также для имитации поведения хищник-жертва, в которой одни частицы являются жертвами и убегают от хищников, а хищники в свою очередь их догоняют.

Поведение Boids



AI на основе boids может обрабатывать только определенное количество информации в единицу времени, поэтому возможные направления поведения могут быть выведены в единый список:



Правила, расположенные в списке, действуют сверху вниз (это дает явные приоритеты), их порядок может быть изменен с помощью маленьких стрелок. В списке правил находятся:

• Столкновение (Collision): Избегать объектов-отражателей
• Избегание (Avoid): Избегать хищников
• Толпа (Crowd): Избегать других существ (boids)
• Центр (Center): Придерживаться центра скопления
• СрСкор (AvVel): Поддерживать среднюю скорость
• Скорость (Velocity): Поддерживать скорость ближайших существ (boids )
• Цель (Goal): Поиск цели
• Уровень (Level): Сохранять Z уровень

Вес каждого правила может быть настроен индивидуально; значения показывают насколько жестко boid будет пытаться выполнить заданное правило (значение 1.000 означает что boid будет всегда ему следовать, а значение 0.000 означает что никогда). Если boid встретит более одного конфликтного условия в один момент, то он будет стараться выполнить каждое правило в соответствии с их весом. Каждому правилу можно назначить вес от -1.000 до +2.000 для того чтобы придать ему большую или меньшую важность.

- Нормальное поведение можно ожидать с весом от 0.000 до 1.000
- От 1.000 до 2.000 boid'ы реагирует сверх заданного правила
- От -1.000 до 0.000 boid'ы реагирует противоположно правилам

Обратите внимание, что каждый boid сделает все что сможет, чтобы выполнить данные ему правила, но некоторые правила в особых случаях имеет преимущество перед другими. Например, чтобы не оказаться «добычей», boid вероятно «забудет» про правила держаться центра толпы и избегать столкновений, а это означает что «впав в панику» он может столкнуться с препятствием.
В заключение, алгоритм столкновений все еще не совершенен находится в процессе исследований, так что вы можете рассчитывать на неправильное поведение в некоторых случаях.

Физика Boids



• МаксСкор (MaxVelocity): Максимальная скорость
• СрСкор (AvVelocity): Процент от максимальной скорости. Если значение MaxVelocity установлено 10.000 а AvVelocity 0.300, то средняя скорость boid'ов будет 3.000.
• БокУскор (LatAcc): Боковое ускорение в процентах от максимальной скорости (изменение направления). Определяет, насколько быстро boid может изменить направление.
• ТангУскор (TanAcc): Тангенциальное (касательное) ускорение в процентах от максимальной скорости (подталкивание вперед). Определяет, сколько boid'ов может внезапно ускориться, для того чтобы выполнить правило.
• Вираж (Banking): Вираж boid'ов (1.0 == нормальный вираж)
• МаксЗанос (MaxBank ): Насколько может занести boid за один шаг
• N : Сколько соседей рассматривается каждым boid'ом
• 2D: Удерживает boid на поверхности: либо на поверхности заданного объекта (объект обозначается в поле OB) либо на определенном значении Z (GroundZ). Применяется, например для симуляции стада на земле. Когда активировано, то Level, Banking и MaxBank становятся нерелевантными

- GroundZ: Значение Z по умолчанию
OB: Поверхность объекта, к которой привязаны boid'ы
Если траектория boid'ов отходит от поверхности объекта, тогда используется значение GroundZ

Boids, дефлекторы (deflectors) и эффекторы (effectors)



Подобно Ньютоновским (Newtonian) частицам, Boids также реагируют на окружающие дефлекторы и поля, в зависимости от потребностей аниматора:

• Отклонение (Deflection): Boid'ы постараются избежать объектов-отражателей в соответствии со значением правила Столкновение (Collision). Оно лучше всего работает для выпуклых поверхностей (для вогнутых поверхностей нужна некоторая работа).

Для boid-физики, отрицательные сферические (Sherical) поля (от объекта или системы частиц) будут хищниками для всех других boid'ов, а положительные поля будет целями. Когда вы выбираете объект с включенной системой частиц, то на панели Fields появляется маленькое меню, в котором можно выбрать к чему будет применяться поле: к объекту или системе частиц.

• Сферические поля (Spherical fields): Эти эффекторы при отрицательной силе будут хищниками и boid'ы будут пытаться избежать их, а при положительной силе boid'ы будут пытаться увеличить значения правил Avoid и Goal (будут являться добычей). Сила сферического поля фактически умножается на соответствующий вес (например, если Strength или Goal равна нулю, то толпа boid'ов не будет отслеживать сферические поля).

Вы также можете активировать «смерть при ударе» die on hit (панель Extras), тогда частица-добыча исчезнет, когда ее настигнет частица-хищник.

В настоящее время эта система не позволяет проводить сложные отношения (т.е. добычей для одной системы, и другой для хищников), но это станет возможным, когда частицы будут должным пайтонизированы (pythonised).

Источник: http://www.blender.org/development/release-logs/blender-246/particles/boids-physics/

Ну а теперь, когда мы знаем что означает каждая кнопка, приступим к практике. Мы создадим модель хищник-добыча с помощью boid-частиц.

Итак, создаем два куба, один побольше называем Predator (Хищник), а другой поменьше называем Prey (Добыча). Устанавливаем конечным кадром 500.



Создаем для куба Prey новую систему частиц и назовем ее Prey. Выбираем тип системы частиц — Boids. Для нее установим количество частиц равное 500, жизнь — 500 кадров, и нажимаем кнопку Unborn, чтобы видеть частицы, которые еще не родились. Также нажимаем кнопку Die on hit, чтобы частица-добыча исчезла при атаке частицы-хищника.

Теперь установим правила поведения. Чтобы у хищников было преимущество в скорости уменьшим MaxVelosity до 3.000 и установим ускорение TanAcc равное 0.300 (оно показывает насколько шустрой будет наша добыча, как быстро она будет убегать от хищников). Теперь установим правило Avoid равное 0.300, если хотите чтобы ваша добыча была «умнее» и лучше избегала хищников устанавливайте большее значение.

Теперь переходим на вкладку Fields, выбираем нашу систему частиц вместо объекта, выбираем тип поля Shperical, и вводим значение силы 3.000 — сила положительная, этим мы обозначили, что данная система частиц — это добыча.

(кликните по уменьшенной копии для увеличения)


Создадим для куба Predator новую систему частиц и назовем ее Predator. Вводим количество частиц — 20, жизнь — 500 кадров, и нажимаем кнопку Unborn. Увеличиваем размер отображаемых частиц до 9 (Draw Size).

Главное для хищника — это поиск добычи, поэтому поднимаем в самый верх правило Goal и вводим значение 1.500, также поднимаем вверх правило Crowd со значением 1.000 — это не позволит нашим хищникам сталкиваться друг с другом. Среднюю скорость AvVelocity поставим больше, чем у добычи — 0.500. Если вы имитируете например стадо носорогов, которым сложно развернуться в противоположную сторону, тогда уменьшите значение бокового ускорения LatAcc, если это более маневренные животные, например гепарды или львы, то оставьте значение равное 1,000.

Параметр N, то есть количество соседей, которых видит отдельный boid, ставим равное 10, это на мой взгляд делает поведение более «результативным», хотя и не так явно.

(кликните по уменьшенной копии для увеличения)


Переходим на панель Fields, устанавливаем силу -10.000 (Вы уже поняли, что отрицательная сила у частиц-хищников). И еще один важный параметр Fall-off — спад силы, он определяет «бесстрашность» добычи, т.е при значении 0.000 добыча будет убегать от хищников постоянно, а при более высоком значении со временем она успокоится и не станет удирать от хищников.

Теперь устанавливаем конечный кадр 500 на панелях bake для каждой системы частиц и нажимаем Alt+A.

По материалам: http://feeblemind.tuxfamily.org/dotclear/index.php/2007/12/28/106-setting-a-prey-predator-relationship-using-boids-particles

Примеры boid-анимаций можно скачать здесь: Prey - Predator и fish school

Это самый простой пример, Вы можете устанавливать другие правила и другие значения, Вы также можете использовать для отображения не просто точки, а объекты с арматурой, анимацией и таким образом создавать реалистичные стаи птиц, с размахивающими крыльями, или стада животных с двигающимися ногами, или даже толпу людей, стоящую на очередной демонстрации или в очереди в магазин. Вот например более расширенный урок, с нем рассказывается, как создать стаю птиц, размахивающих крыльями и преследующую движущуюся сферу. Удачи!

Перевод: Evgeny



Сообщений 6, на страницах: 1
добавить сообщение
© 2007-2012 Юлия Корбут, некоторые права соблюдены.
© 2007-2012 Julia Korbut, some rights reserved.