Настройка физических объектов — различия между версиями

Материал из xrWiki
Перейти к: навигация, поиск
м
Строка 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