Bullet SoftBody

Материал из Blender3D.

Перейти к: навигация, поиск

Содержание

Bullet SoftBody (Мягкие тела Bullet)

Предисловие

Начиная с версии Blender 2.48 и в дальнейшем,движок игры изображает симуляцию мягких тел Bullet. Вот некоторая информация об особенностях и способах их применения.

Особенности мягких тел

  • Плоская одежда или объемные мягкие тела
  • Контроль над установками массы, трения, жесткости, соответствием форме и обнаружением столкновений
  • Обнаружение столкновений между мягкими телами, так же как и с твердымы телами и статические границы столкновения всех типов
  • Прикрепление мягких тел напротив твердых тел, или использование фиксированного скрепления
  • Физическая отладочная визуализация динамических структур мягких тел
  • Динамическое создание новых мягких тел с использованием активатора (actuator) Add Object (добавить объект)

Файлы примеров и обратная связь

Создание мягкого тела Bullet

Изображение:Softbody_select_new_small.jpg

  • Кнопки игры: выберите между static(статическое), dynamic(динамическое), rigid body(твердое тело) или soft body (мягкое тело)
  • Выберите границы контура столкновений для мягких тел
  • Тип границы для мягких тел автоматически выставляется convex hull (выпуклая оболочка) или triangle mesh(треугольная сеть).

Основные настройки мягких тел

  • Linear Stiffness (Линейная жесткость): меньшие величины позволяют создать очень гибкие мягкие тела, больше величина - больше жесткость. Примечание: характеристика соответствия форме и ограничения кривизны будут по прежнему держать чересчур гибкие тела в форме
  • shape matching (соответствие форме): если эта опция включена, Bullet запомнит первоначальную форму каждого тела, и будет пытаться соответствовать форме мягкого тела, неважно, какой деформации оно подвергается
  • kMT Shape mathing coefficient (коэффициент соответствия форме kMT): как быстро вернется мягкое тело к первоначальной форме. Может применяться только при включенной функцииShape mathing (соответствия форме)
  • Friction (трение) позволяет контролировать динамическое трение для мягких тел, находится в диапазоне от 0 до 1, 0 - нет трения, мягкие тела будут скользить.

Изображение:Softbody_new_buttons.jpg

Расширенные настройки

  • Use Clusters (Использовать кластера): кластеры соприкосновения могут улучшить обнаружение столкновений, а это позволит мягким телам избежать прохождения через треугольные объекты. Вместо столкновения отдельных вершин (узлов) и поверхностей, можно использовать деформируемые выпуклые кластера. Вы можете выбрать использование кластеров между мягкими телами или между мягким и твердым телами.
  • Cluster Iterations (повторение кластеров): бОльшие величины позволяют создать более детализированные кластеры соприкосновений. Если выбрать 1, единственный кластер будет использовать все вершины. Эта величина используется только когда включены кластеры RB / SS.
  • Position Iter(Положение итераций): положение итеррации решений. Использование бОльшей величины улучшает качество коррекции положения для мягких тел.

Изображение:Softbody_advanced_new.jpg

Фиксирование или прикрепление мягких тел

  • Можно использовать Rigid Body Joint (сустав твердого тела) для прикрепления к мягкому телу. Подобно соединению твердых тел, можно закрепить (зафиксировать) мягкое тело для того, чтобы сделать вершину неподвижной: просто не прикрепляйте второй объект, или прикрепляйте к статическому объекту.
  • В данный момент группы вершин не поддерживаются, поэтому нужно использовать соединение Rigid Body Joint (сустава твердого тела).
  • Выберите или мягкое тело или вместе мягкое и твердое тела, используя кнопку Rigid Body Joint:

Изображение:Softbody_constraint_selection_smaller.jpg

  • Включите Show Pivot (показывать оси)для того, чтобы увидеть, где будет зафиксировано мягкое тело (вид по осям x,y,z). Bullet автоматически выберет ближайшую вершину (узел) к этой оси.
  • Можно использовать несколько соединений , чтобы зафиксировать/приложить несколько частей мягкого тела.
  • Используйте кнопку No Col для выключения обнаружения соприкосновений между соединенными телами. Это позволит избежать нестабильности и дрожания между соединенными телами.

Изображение:Disable_collision_connected.jpg

  • Для создания соединений во время игрі можно использовать соединения Python. Однако во время игры (на лету) эти соединения невозможно корректно разорвать.

Основные советы по мягким телами и некоторые известные результаты

  • Add Object Actuator (Добавить активатор объекта) можно использовать для динамического добавления новых мягких тел.

Изображение:Add_object_actuator.jpg

  • В активаторе движения может быть включен только applyForce (приложить усилие). setPosition (установить положение), constraint actuator (активатор соединения) и другая логика не работает с мягкими телами.
  • Объекты с признаком мягких тел будут прорисованы как 'smooth'(сглаженные), потому что опция Soft body все время обновляет вершины и их нормали.
  • Подразделите треугольный меш (объект) мягкого теля для возможности деформиции: зайдите в режим редактирования (edit mode), выберите все вершины (А) и нажмите Subdivide (подразделить)

Изображение:subdivide_mesh_small.jpg

  • Сферы UV Sphere не совместымы с мягкими телами, поэтому используйте Ico sphere.
  • Если меш (объект) слишком детализирован, упростите его, используя mesh decimation(упрощение объекта):

Изображение:mesh_decimation_small.jpg

  • Blender 2.48 не обеспечивает сталкиваний между мягкими телами с включенными кластерами и мягкими телами с выключенными кластерами. Эта недоработка будет устранена в последующих версиях.
  • Используйте Show Physics Visualization (показать визуализацию физики) для отладки результатов с мягкими телами, грацами столкновений и т.д. Включите настройку в игровом меню
  • Во время игры с включенной Show Physics Visualization, вы заметите сложные динамические структуры мягких тел.
  • Самокасание в данный момент не поддерживается.
  • Для управления мягкими телами нет программных оболочек python, а также поддержки элементов логики, за исключением apply force(приложить усилие) и add object actuator(активатор добавить объект).
  • Объекты мягких тел / одежды не поддерживают сенсоры соприкосновений/near(близкий)/радар.
  • В данный момент имеется большой зазор между одеждой и объектом соприкосновения. Над ним пока нет контроля, это должно быть устранено в последующих версиях.
  • Не используйте масштабированные объекты. Вместо этого используйте функцию Apply Scaling(Применить масштабирование), or Apply Scale and Rotation (вращение) с помощью выделения объекта мягкого тела и нажатия <CTRL> A:

Изображение:apply_scaling.jpg

Личные инструменты