Настройка физических объектов — различия между версиями
RedPython (обсуждение | вклад) |
RedPython (обсуждение | вклад) м |
||
Строка 52: | Строка 52: | ||
capture_force = 10000. ; max force for holding taget</syntaxhighlight> | capture_force = 10000. ; max force for holding taget</syntaxhighlight> | ||
− | [[Категория: | + | [[Категория:ActorEditor]] |
Версия 11:53, 24 февраля 2024
Содержание
Вводная
Система координат в ODE аналогична используемой в OpenGL: вертикальная Y направлена снизу вверх, X слева направо, Z к наблюдателю.
В сталкире доступно 5 видов сочлений:
- Rigid -- твёрдое тело
- Cloth -- мягкое тело (тряпка)
- Joint -- сустав или шарнир (вращение по XYZ)
- Wheel -- колесо (можно управлять осью X при вращении по оси Z)
- Slider -- скольжение (перемещение и вращение по Z)
Виды примитивов (collision shape) для просчёта столкновений:
- Box (параллелепипед)
- Sphere (сфера)
- Cylinder (цилиндр)
В простых обхъектах обычно используется один примитив (например, бочка использует один цилиндр). Сложные (составные) модели могут использовать несколько примитивов (например, стол использует один параллелепипед для столешницы и четыре для ножек).
Свойства тела
Жесткие тела в сталкире обладают следующими основными свойствами:
- Mass (масса)
- Center of Mass (позиция центра массы)
- Friction -- коэффициент трения. Чем меньше, тем более "скользким" считается элемент.
- Spring Factor -- пружинистость. Чем меньше, тем мячге пружина.
- Damping Factor -- демпфирование. Чем больше, тем быстрее затухают колебания.
Свойства движения и остановки
Диапазон движения/остановки ограничивается т.н. лимитами. Они задают диапазон, в котором сустав может перемещаться/вращаться.
Примеры
Пример жёсткого тела: ящик и бочка
Пример мягкого тела: мешок с песком
Пример сустава: цепь с грузом
Пример с колесами: тележка
Пример скольжения: выдвижной ящик
Параметры отключения физики
Актуальны для любой модели. Если не установлены — используются значения по умолчанию.
[disable]
linear_factor = 0.3
angular_factor = 0.3
Захват предметов
Если нет этой секции, то возможность отключена.
[capture]
bone = bip01_tail ; bone for capture
distance = 0.45 ; distance - less this distance between
; bome and capture taget object is captured
time_limit = 500 ; max time (seconds) for trying to capture object
pull_force = 50000. ; max force used to bring the taget to capture bone
pull_distance = 2. ; max distance taget can be puled
velocity_scale = 0.015 ; velocity scale for pulling 1- normal
capture_force = 10000. ; max force for holding taget