Перейти к содержимому

IMPORTANT

Статус: Поддерживается
Минимальная версия: IX-Ray Platform 1.4

Обзор ​

Оригинальная система отдачи

оригинал

Паттерная система отдачи

паттерн

При наличии заданного паттерна для оружия система активирует механику отдачи, работающую по принципу пружинного маятника. Каждый выстрел смещает цель для камеры, а сама камера следует к ней с инерцией — так достигается реалистичный рывок и возврат.

NOTE

Условием для работы паттерной отдачи является наличие суффикса _hipfire_pattern в названии секции оружия, например:

  • Если у вас есть секция wpn_ak74, то добавив суффикс (wpn_ak74_hipfire_pattern), вы задействуете новую систему отдачи для AK-74.

Настройка паттерна для оружия ​

Чтобы создать паттерн, кроме её обозначения, необходимо добавить в секцию параметры bullet_XXX. Где XXX - количество выстрелов. Формат значений указан как X, Y (два числа)

Логика паттерна: Для каждого выстрела укажите кумулятивные углы в градусах. Если X положительный — смещение влево, если отрицательный — вправо. Если Y положительный — смещение вверх, если отрицательный — вниз.

ini
[wpn_ak74_hipfire_pattern]
bullet_1 = 0.009, 0.157
bullet_2 = -0.070, 0.136
bullet_3 = -0.080, 0.169
bullet_4 = -0.088, 0.124
bullet_5 = -0.084, 0.180
bullet_6 = 0.121, 0.180
bullet_7 = -0.035, 0.270
bullet_8 = -0.134, 0.267
bullet_9 = -0.192, 0.293
bullet_10 = -0.146, 0.319
;и так далее

WARNING

При кумулятивных точках смещения каждый следующий выстрел начинается с той точки, где закончился предыдущий.

Настройка отдачи для оружия ​

Параметры задаются в конфиге оружия wpn_XXX . Где XXX - название оружия.

Список параметров:

ini
pattern_factor = 0.048 
pattern_factor_agility = 1 
pattern_factor_agility_vel = 2 
pattern_factor_agility_accel = 1 
pattern_factor_agility_crouch = 0.950 
pattern_factor_agility_crouch_no_acc = 0.910 
pattern_stiffness = 1000
pattern_damping = 45 
pattern_impulse = 90 
pattern_loop = 1 
pattern_return_speed = 3.500 
pattern_return_enable = 1
pattern_random_enable = 1 
pattern_random_x = -0.2, 0.2
pattern_random_y = -0.05, 0.2

WARNING

Для режима прицеливания добавляется префикс zoom_ в начале параметра.

ini
zoom_pattern_factor = 0.044
zoom_pattern_factor_agility = 1
zoom_pattern_factor_agility_vel = 3.700
zoom_pattern_factor_agility_accel = 1
zoom_pattern_factor_agility_crouch = 0.870
zoom_pattern_factor_agility_crouch_no_acc = 0.770
zoom_pattern_stiffness = 950
zoom_pattern_damping = 45
zoom_pattern_impulse = 85
zoom_pattern_loop = 1
zoom_pattern_return_speed = 3
zoom_pattern_return_enable = 1
zoom_pattern_random_enable = 1 
zoom_pattern_random_x = -0.2, 0.2 
zoom_pattern_random_y = -0.05, 0.2

Описание параметров: ​

pattern_factor / zoom_pattern_factor

  • Значение по умолчанию: 0.035, 0.025 (zoom)

  • Назначение: базовый множитель силы отдачи от паттерна. Чем выше значение, тем сильнее смещение точки bullet_

pattern_factor_agility / zoom_pattern_factor_agility

  • Значение по умолчанию: 1.0 , 1.0 (zoom)

  • Назначение: общий множитель отдачи оружия agility.

pattern_factor_agility_vel / zoom_pattern_factor_agility_vel

  • Значение по умолчанию: 3.0 , 3.5 (zoom)

  • Назначение: основной множитель отдачи оружия в зависимости от скорости движения игрока

pattern_factor_agility_accel / zoom_pattern_factor_agility_accel

  • Значение по умолчанию: 1.0, 1.0 (zoom)

  • Назначение дополнительный множитель отдачи оружия при беге.

pattern_factor_agility_crouch / zoom_pattern_factor_agility_crouch

  • Значение по умолчанию: 0.95, 0.9 (zoom)

  • Назначение: множитель отдачи оружия — регулирует отдачу игрока в положении сидя (с учётом движения)

pattern_factor_agility_crouch_no_acc / zoom_pattern_factor_agility_crouch_no_acc

  • Значение по умолчанию: 0.95, 0.85 (zoom)

  • Назначение: множитель отдачи оружия — регулирует отдачу игрока в положении полного приседа (с учётом движения и без бега)

pattern_stiffness / zoom_pattern_stiffness

  • Значение по умолчанию: 800.0, 800.0 (zoom)

  • Назначение: жёсткость пружины. Чем выше, тем быстрее камера стремится к целевой точке отдачи. Низкие значения дают "вялую", плавную отдачу, высокие — резкую

pattern_damping / zoom_pattern_damping

  • Значение по умолчанию: 40.0, 40.0 (zoom)

  • Назначение: демпфирование (гашение колебаний). Чем выше, тем быстрее затухает раскачка камеры. Низкие значения создают эффект "тряски" после отдачи

pattern_impulse / zoom_pattern_impulse

  • Значение по умолчанию: 35.0, 35.0 (zoom)

  • Назначение: сила мгновенного рывка в момент выстрела. Высокий импульс → резкий "удар" камеры, низкий → плавное нарастание отдачи

pattern_loop / zoom_pattern_loop

  • Значение по умолчанию: 1, 1 (zoom)

  • Назначение: зацикливать ли паттерн отдачи. Если 1, после последнего выстрела в паттерне отдача продолжается с первого шага. Если 0 — и список точек паттерна заканчивается, последующие выстрелы будут без смещений

pattern_return_speed / zoom_pattern_return_speed

  • Значение по умолчанию: 5.0, 5.0 (zoom)

  • Назначение: скорость возврата к предпоследней позиции. Чем выше, тем быстрее камера стремится к предпоследней позиции после окончания отдачи

pattern_return_enable / zoom_pattern_return_enable

  • Значение по умолчанию: 1, 1 (zoom)

  • Назначение: определяет, возвращается ли камера к предпоследней позиции точки выстрела после окончания отдачи. При значении 0 камера остаётся в последней точке выстрела.

pattern_random_enable / zoom_pattern_random_enable

  • Значение по умолчанию: 0, 0 (zoom)

  • Назначение: включает случайное смещение точек паттерна для большей непредсказуемости

pattern_random_x / zoom_pattern_random_x

  • Формат: X, X (два числа)

  • Назначение: диапазон случайного смещения по горизонтали. Первое число — минимальное, второе — максимальное значение

pattern_random_y / zoom_pattern_random_y

  • Формат: Y, Y (два числа)

  • Назначение: диапазон случайного смещения по вертикали. Первое число — минимальное, второе — максимальное значение

Настройка отдачи для аддонов оружия ​

Параметры задаются в секции прицела, глушителя и подствольного гранатомёта.

Секция прицела: ​

ini
scope_attached_recoil_factor            = 0.93
scope_attached_recoil_reduction         = 0.81

Описание параметров: ​

scope_attached_recoil_factor

  • Значение по умолчанию: 1.0

  • Назначение: множитель отдачи с установленным прицелом. Чем меньше, тем меньше общая отдача оружия.

scope_attached_recoil_reduction

  • Значение по умолчанию: 1.0

  • Назначение: дополнительный множитель, который делит scope_attached_recoil_factor, но только в режиме прицеливания

Секция глушителя: ​

ini
attached_recoil_f                           = 0.85

Описание параметров: ​

attached_recoil_f

  • Значение по умолчанию: 1.0

  • Назначение: множитель отдачи с установленным глушителем. Чем меньше, тем меньше общая отдача оружия.

Секция подствольного гранатомета: ​

ini
grenade_attached_recoil               = 0.95

Описание параметров: ​

grenade_attached_recoil

  • Значение по умолчанию: 1.0

  • Назначение: множитель отдачи с установленным подствольным гранатометом. Чем меньше, тем меньше общая отдача оружия.

Глобальные параметры отдачи ​

Параметры задаются в секции [actor], служат общим множителем, зависящим от движения игрока (agility в секции оружия). Необходимы для тонкой настройки, например:

  • Вы хотите создать свой класс персонажей как в модификации Misery

Список параметров:

ini
agility_vel_factor = 2
agility_accel_factor = 1.05
agility_crouch_factor = 0.98
agility_crouch_no_acc_factor = 0.96

Описание параметров: ​

agility_vel_factor

  • Значение по умолчанию: 2.0

  • Назначение: главный множитель движения игрока. Чем выше, тем сильнее значения pattern_factor_agility / zoom_pattern_factor_agility из секции оружия.

agility_accel_factor

  • Значение по умолчанию: 1.05

  • Назначение: множитель насколько увеличится отдача, если игрок бежит. Чем выше, тем сильнее значения pattern_factor_agility_accel / zoom_pattern_factor_agility_accel из секции оружия.

agility_crouch_factor

  • Значение по умолчанию: 0.98

  • Назначение: множитель движения игрока в положении сидя. Чем ниже, тем слабее значения pattern_factor_agility_crouch / zoom_pattern_factor_agility_crouch из секции оружия.

agility_crouch_no_acc_factor

  • Значение по умолчанию: 0.96

  • Назначение: множитель движения игрока в положении полного приседа. Чем ниже, тем слабее значения pattern_factor_agility_crouch_no_acc / zoom_pattern_factor_agility_crouch_no_acc из секции оружия.

Примеры использования ​

Сценарий 1: Базовая настройка ​

Recoil Pattern Editor — демонстрация готового паттерна в окне редактирования

image

Как выглядит секция данного паттерна:

ini
[wpn_mp5_hipfire_pattern]
bullet_1 = 0.088, 0.263
bullet_2 = -0.044, 0.263
bullet_3 = 0.044, 0.175
bullet_4 = 0.035, 0.175
bullet_5 = -0.044, 0.175
bullet_6 = 0.000, 0.132
bullet_7 = 0.088, 0.132
bullet_8 = -0.175, 0.175
bullet_9 = 0.225, 0.234
bullet_10 = 0.175, -0.175
bullet_11 = 0.009, 0.175
bullet_12 = 0.000, 0.175
bullet_13 = 0.053, 0.132
bullet_14 = 0.219, -0.088
bullet_15 = 0.096, 0.289
bullet_16 = -0.175, 0.263
bullet_17 = -0.013, 0.290
bullet_18 = 0.158, 0.259
bullet_19 = 0.086, 0.259
bullet_20 = 0.175, -0.132
bullet_21 = -0.026, 0.263
bullet_22 = 0.088, 0.219
bullet_23 = 0.161, 0.297
bullet_24 = -0.384, 0.130
bullet_25 = 0.162, 0.256
bullet_26 = 0.270, 0.135
bullet_27 = 0.243, -0.068
bullet_28 = -0.040, 0.216
bullet_29 = -0.068, 0.296
bullet_30 = -0.168, 0.175

Параметры указаные в секции wpn_mp5:

ini
![wpn_mp5]
pattern_factor = 0.049
pattern_factor_agility = 1
pattern_factor_agility_vel = 1.500
pattern_factor_agility_accel = 1
pattern_factor_agility_crouch = 0.890
pattern_factor_agility_crouch_no_acc = 0.810
pattern_stiffness = 1500
pattern_damping = 30
pattern_impulse = 60
pattern_loop = 1
pattern_return_speed = 5
pattern_return_enable = 1
pattern_random_enable = 0
zoom_pattern_factor = 0.042
zoom_pattern_factor_agility = 1
zoom_pattern_factor_agility_vel = 3.300
zoom_pattern_factor_agility_accel = 1
zoom_pattern_factor_agility_crouch = 0.850
zoom_pattern_factor_agility_crouch_no_acc = 0.770
zoom_pattern_stiffness = 1500
zoom_pattern_damping = 35
zoom_pattern_impulse = 55
zoom_pattern_loop = 1
zoom_pattern_return_speed = 5
zoom_pattern_return_enable = 1
zoom_pattern_random_enable = 0

Результат:

MP5 без глушителя

Сценарий 2: Глушитель снижает отдачу ​

  • Теперь добавим параметр attached_recoil_f в секцию глушителя [wpn_addon_silencer]
ini
![wpn_addon_silencer]
attached_recoil_f                           = 0.5
  • При установке глушителя общая отдача оружия снижается на 50%. Эффект одинаково активен как в режиме прицеливания, так и при стрельбе от бедра.

Результат с глушителем:

MP5 с глушителем

Сценарий 3: Уберем учет движения для [wpn_lr300] ​

lr300 с учетом движенияlr300 зум с учетом движения

В секции [actor] переопределим параметр agility_vel_factor (по умолчанию 2.0). Меняем на 1.0.

ini
![actor]
agility_vel_factor = 1.0

Так же переопределим pattern_factor_agility_vel и zoom_pattern_factor_agility_vel. Оба устанавливаем в 1.0.

ini
![wpn_lr300]
pattern_factor_agility_vel = 1.0 
zoom_pattern_factor_agility_vel = 1.0

Результат: при стрельбе из LR-300 движение персонажа больше не влияет на отдачу.

lr300 без учета движенияlr300 зум без учета движения

Рекомендации и ограничения ​

Советы:

  • ✔ Множители отдачи могут быть заданы в любую сторону: ниже 1.0 — для снижения, выше 1.0 — для повышения отдачи.
  • ✔ Настройка физики отдачи - это параметры pattern_stiffness / zoom_pattern_stiffness, pattern_damping / zoom_pattern_damping, pattern_impulse / zoom_pattern_impulse, используйте их.
  • ✔ Для уникальных оружий, не обязательно копировать весь паттерн, вы можете унаследовать параметры.
ini
[wpn_mp5_nimble_hipfire_pattern]:wpn_mp5_hipfire_pattern

⚠ Ограничения:

  • В режиме одиночных выстрелов с высокими значениями RPM, паттерн формально применяется, но немедленно сбрасывается из-за преждевременного завершения очереди выстрелов. Это приводит к отсутствию видимого эффекта. Для корректной работы необходимо добавить хотя бы один bullet_1 и принудительно активировать флаги pattern_random_enable и zoom_pattern_random_enable, а также настроить параметры смещения.

  • Итоговая отдача — произведение всех множителей: параметров оружия (pattern_factor, zoom_pattern_factor, точки bullet_), модификаторов аддонов и значений актора. Не рекомендуется устанавливать каждое из них равным 0.0 без веской причины — это может нарушить игровой баланс.

См. также ​

Опубликовано под лицензией MIT.