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

Материал из xrWiki
Перейти к: навигация, поиск
м
м
 
Строка 3: Строка 3:
  
 
В сталкире доступно 5 видов сочлений:
 
В сталкире доступно 5 видов сочлений:
* '''Rigid''' -- твёрдое тело
+
* '''Rigid''' твёрдое тело
* '''Cloth''' -- мягкое тело (тряпка)
+
* '''Cloth''' мягкое тело (тряпка)
* '''Joint''' -- сустав или шарнир (вращение по XYZ)
+
* '''Joint''' сустав или шарнир (вращение по XYZ)
* '''Wheel''' -- колесо (можно управлять осью X при вращении по оси Z)
+
* '''Wheel''' колесо (можно управлять осью X при вращении по оси Z)
* '''Slider''' -- скольжение (перемещение и вращение по Z)
+
* '''Slider''' скольжение (перемещение и вращение по Z)
  
 
Виды примитивов (collision shape) для просчёта столкновений:
 
Виды примитивов (collision shape) для просчёта столкновений:
Строка 13: Строка 13:
 
* '''Sphere''' (сфера)
 
* '''Sphere''' (сфера)
 
* '''Cylinder''' (цилиндр)
 
* '''Cylinder''' (цилиндр)
В простых обхъектах обычно используется один примитив (например, бочка использует один цилиндр). Сложные (составные) модели могут использовать несколько примитивов (например, стол использует один параллелепипед для столешницы и четыре для ножек).
+
В простых объектах обычно используется один примитив (например, бочка использует один цилиндр). Сложные (составные) модели могут использовать несколько примитивов (например, стол использует один параллелепипед для столешницы и четыре для ножек).
  
 
== Свойства тела ==
 
== Свойства тела ==
Строка 19: Строка 19:
 
* '''Mass''' (масса)
 
* '''Mass''' (масса)
 
* '''Center of Mass''' (позиция центра массы)
 
* '''Center of Mass''' (позиция центра массы)
* '''Friction''' -- коэффициент трения. Чем меньше, тем более "скользким" считается элемент.
+
* '''Friction''' коэффициент трения. Чем меньше, тем более "скользким" считается элемент.
* '''Spring Factor''' -- пружинистость. Чем меньше, тем мячге пружина.
+
* '''Spring Factor''' пружинистость. Чем меньше, тем мягче пружина.
* '''Damping Factor''' -- демпфирование. Чем больше, тем быстрее затухают колебания.
+
* '''Damping Factor''' демпфирование. Чем больше, тем быстрее затухают колебания.
  
 
== Свойства движения и остановки ==
 
== Свойства движения и остановки ==
Строка 34: Строка 34:
  
 
== Параметры отключения физики ==
 
== Параметры отключения физики ==
Актуальны для любой модели. Если не установлены используются значения по умолчанию.
+
Актуальны для любой модели. Если не установлены используются значения по умолчанию.
 
<syntaxhighlight lang="ini">[disable]
 
<syntaxhighlight lang="ini">[disable]
 
linear_factor  = 0.3
 
linear_factor  = 0.3
Строка 42: Строка 42:
 
Если нет этой секции, то возможность отключена.
 
Если нет этой секции, то возможность отключена.
 
<syntaxhighlight lang="ini">[capture]
 
<syntaxhighlight lang="ini">[capture]
 +
bone            = bip01_tail      ; кость, за которую хватать
 +
distance        = 0.45            ; объект можно захватить в пределах этого расстояния
 +
time_limit      = 500            ; максимальное время в секундах для попытки захвата
 +
pull_force      = 50000.          ; максимальная сила для захвата
 +
pull_distance    = 2.              ; максимальное расстояние, на которое можно перетащить объект
 +
velocity_scale  = 0.015          ; скорость вытаскивания
 +
capture_force    = 10000.          ; максимальная сила для удержания</syntaxhighlight>
  
bone            = bip01_tail      ; bone for capture
+
[[Категория:Actor Editor]]
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</syntaxhighlight>
 
 
 
[[Категория:ActorEditor]]
 

Текущая версия на 12:01, 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      ; кость, за которую хватать
distance         = 0.45            ; объект можно захватить в пределах этого расстояния
time_limit       = 500             ; максимальное время в секундах для попытки захвата
pull_force       = 50000.          ; максимальная сила для захвата
pull_distance    = 2.              ; максимальное расстояние, на которое можно перетащить объект
velocity_scale   = 0.015           ; скорость вытаскивания
capture_force    = 10000.          ; максимальная сила для удержания