И так, за рагдолл отвечают непосредственно следующий блок:
Все значения подбирались эксперементальным путем (значения уже изменены и включены в мод).
;---PHYSICS-----------------------------------------------------------
ph_box0_center = 0.0, 0.9, 0.0
ph_box0_size = 0.35, 0.9, 0.35
ph_box1_center = 0.0, 0.75, 0.0
ph_box1_size = 0.35, 0.75, 0.35
ph_box2_center = 0.0, 0.6, 0.0
ph_box2_size = 0.35, 0.6, 0.35
ph_crash_speed_min = 14
ph_crash_speed_max = 30
ph_collision_damage_factor = 1.0
ph_mass = 80
ph_skeleton_airr_lin_factor = -0.40
ph_skeleton_airr_ang_factor = -0.21
ph_skeleton_hinger_factor1 = 1.0
ph_skeleton_hinge_vel = 0.7
ph_skeleton_ddelay = 0
ph_skel_fatal_impulse_factor = 1
ph_after_death_velocity_factor= 0.75
ph_skel_shot_up_factor = 0.25
;-----------------------------------------------------------------------------
В точных значениях всех строчек разобраться не удалось, но поясню основные непосредственно относящиеся к теме.
При прочтении комментариев учитывайте то, что комменты писал своими словами исходя из экспериментов с параметрами... мои трактовки и выводы могут быть неверными! Так что не ругайте и не стебайте:)
ph_box - (для человеческих существ и мутантов парметры разные) что это мне так и не удалось выяснить, скорее всего это и есть физические реакторы (от слова реагировать
) привязанные к скелету, хотя хз.
ph_crash_speed - хз - оставил стандартными, судя по всему скорость срабатывания физ реакторов.
ph_collision_damage_factor = 1.0 - судя по всему, отвечает за импульс при столкновении с поверхностью при падении с высоты. Значение от 0 до 1. Будет ли тело отпружинивать или нет. (лично на мой взгляд эффект крайне слабо вражен)
ph_mass = 80 - соответственно масса объекта в кг. отвеачет, в основном, за реагирование тела на импульс взрывной волны. чем меньше тем, дальше тело отбросит, ну и чем тяжелее, тем больше вероятность того что игрок не сможет перетащить его. (если переборщить с массой актера, могут возникнуть проблемы с прыжками и с дэмэджем при падении с большой высоты)
ph_skeleton_airr_lin_factor = -0.40 - параметр отвечающий за "гравитацию" при вертикальном падении (на самом деле это значение вязкости воздуха! - пояснение разрабов). По умолчанию оно стояло слишком большое, из-за этого тела не падали, а своего рода тонули.
ph_skeleton_airr_ang_factor = -0.21 - параметр отвечающий за трение в суствах трупа. Чем оно отрицательнее тем более эпелептично и не реально тело будет себя вести. Значение -0.21 самый оптимальный вариант, если поставить больше (положительнее) труп будет излишне деревянным. Своего рода напряженность мышц.
ph_skeleton_hinger_factor1 = 1.0 - параметр отвечающий за "цепучесть/висючесть"
Точное его влияние проследить толком не удалось.
ph_skeleton_hinge_vel = 0.7 - относится к ph_skeleton_hinger_factor. - Именно при таких значениях этих двух строк у меня намного чаще рагдолл вел себя более артистически при падении.. задевал, при возможности, конечностями за выступы, зацепляясь на доли секунд, и срываясь снова. (в роликах есть пара таких моментов).
ph_skeleton_ddelay = 0.7 - Время изменения значения трения в суставе с момента создания шелла, сек (коммент разрабов).
Грубо говоря время реагирования лимбов на полученный импулс, тело будет дергаться слишком долго, если стоит слишком отрицательное значение ph_skeleton_airr_ang_factor
ph_skel_fatal_impulse_factor = 1 - в основном играет роль тормоза дя тела.. например чтоб далеко не отбрасывало... но в некоторых случаях такой эффект можно получить и настройками других параметров. Но так на мой взгляд более правильно.
ph_after_death_velocity_factor= 0.75
ph_skel_shot_up_factor = 0.25 - эти строки отвечают за реагирование на импульс полученный при последнем хите, когда здоровье равно 0 или меньше и создан рагдолл. Выражается в основном на реагировании трупа при его обстреле и манере умирания (выражается крайне слабо, свое рода тонкие дополнительные настройки и от значений разрабов отличаются не сильно).
____________
Не забывайте что данный мод работает корректно (приближает поведение рагдолла к реальному поведению) только в совокупе с корректными настройками оружия!!!
Изначально (настройки разрабов) стоял слишком завышенный импульс взрывной волны гранат, рпг, канистр, бочек и подствольныйх снарядов. Он корректно работал только с базовыми настройками рагдолла. В связи с тем что основной недочет был связан с завышенной "вязкостью воздуха", после его уменьшения пришлось соответсвенно уменьшать и импульс взрывной волны, иначе тела разлетались в случайном порядке за пределы карты.
В сзвязи с этим в мод включены исправленные конфиги оружия находящиеся в папке weapons.
Исправлены были следующие файлы cо следующими параметрами:
_______
w_f1.ltx
_______
blast = 2.00
blast_r = 7
blast_impulse = 140
;delete
blast_impulse_factor = 1
frags = 12
frags_r = 20
frag_hit = 3.00
frag_hit_impulse = 240
_________
w_rgd5.ltx
_________
blast = 1.50
blast_r = 10
blast_impulse = 145
;delete
blast_impulse_factor = 1
frags = 15
frags_r = 15
frag_hit = 3
frag_hit_impulse = 300
__________
w_rpg7.ltx
__________
hit_power = 4.50
hit_impulse = 170
hit_type = explosion
blast = 1.50
blast_r = 10
blast_impulse = 190
;delete
blast_impulse_factor = 1
frags = 15
frags_r = 15
frag_hit = 4
frag_hit_impuls = 300
__________
weapon.ltx
__________
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_gauss]:ammo_base
...
k_impulse = 6
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_12x70_buck]:ammo_base
...
k_hit = 1
k_impulse = 0.3
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_12x76_dart]:ammo_base
...
k_hit = 1.8
k_impulse = 1.5
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_12x76_zhekan]:ammo_base
...
k_hit = 1.5
k_impulse = 1.5
...
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_m209.ogf]:ammo_base
...
blast = 2.00;150
blast_r = 6
blast_impulse = 160
frag_hit = 1.50
frag_hit_impulse = 200
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_vog-25p]:ammo_base
...
blast = 2.00;150
blast_r = 6
blast_impulse = 170
frag_hit = 1.50
frag_hit_impulse = 200
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[ammo_vog-25]:ammo_base
...
blast = 2.00;150
blast_r = 5
blast_impulse = 170
frag_hit = 1.50
frag_hit_impulse = 200
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Explosive Inventory Items
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[explosive_fuelcan]:identity_immunities,delayed_action_fuse
GroupControlSection = spawn_group
discovery_dependency =
...
blast = 1.50
blast_r = 8
blast_impulse = 210
...
frag_hit = 0.75
frag_hit_impulse = 150
.....
[explosive_tank]:identity_immunities,delayed_action_fuse
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "weapons\explosive\tank"
...
blast_r = 8
blast_impulse = 200
;delete
blast_impulse_factor = 1
...
frag_hit = 0.75
frag_hit_impulse = 150
.....
[explosive_barrel_low]:identity_immunities,delayed_action_fuse
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "weapons\explosive\barrel_low"
...
blast_r = 8
blast_impulse = 200
;delete
blast_impulse_factor = 1
...
frag_hit = 0.75
frag_hit_impulse = 150
.....
[explosive_barrel]:identity_immunities,delayed_action_fuse
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "weapons\explosive\barrel"
...
blast_r = 8
blast_impulse = 210
;delete
blast_impulse_factor = 1
...
frag_hit = 0.75
frag_hit_impulse = 150
.....
[explosive_mobiltank]:identity_immunities,delayed_action_fuse
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "weapons\explosive\mobiltank"
...
blast_r = 8
blast_impulse = 170
;delete
blast_impulse_factor = 1
...
frag_hit = 0.75
frag_hit_impulse = 150
.....
[explosive_dinamit]:delayed_action_fuse
GroupControlSection = spawn_group
discovery_dependency =
$spawn = "weapons\explosive\dinamit"
...
blast_r = 5
blast_impulse = 210
;delete
blast_impulse_factor = 1
...
frag_hit = 0.55
frag_hit_impulse = 150
_________________________________________________________________________________________________