Документация
English
  • Gem RTS v1. Документация
  • Базовая информация о ресурсах в GEM RTS
    • Расположение локальных файлов игры и профиля игрока
    • Архитектура ресурсов игры
      • Пакеты
      • Структура файлов в Пакетах
    • Общая информация о конфигурационных файлах
      • Инструкция include
      • Инструкция define
      • Инструкция mod
  • РАЗРАБОТКА МОДОВ
    • Создание мода
    • Расширенная настройка пакета
    • Создание шаблонов опций
    • Портирование карт из "В тылу врага"
  • РЕДАКТОР
    • Управление камерой в редакторе
    • Горячие клавиши и консольные команды
    • Редактор карт
      • Создание новой карты
      • Редактор сцены
      • Редактор Еntity
      • Редактор ландшафта
        • Редактор высот
        • Редактор полигонов
        • Флаги
        • Редактор типов территорий
        • Редактор материалов земли
        • Редактор цвета
        • Редактор травы
        • Редактор Foliage
      • Редактор воды
      • Создание миникарты
      • Специфика редактирования карт
        • Объекты зданий
        • Объекты Камней
        • Создание складок местности
          • Создание ландшафтного рельефа
          • Объекты обрывов и оврагов
        • Разрушенная техника как антураж карты
        • Объект для озвучивания водных бассейнов
    • Редактор миссий
      • Окно свойств Миссии
      • Редактор Камеры
    • Редактор cпецэффектов
      • Настройка VFX на основе спрайта
      • Настройка VFX на основе декаля
      • Настройка VFX на основе источника света
        • Уровни детализации для локальных источников света
      • VFX на основе генератора частиц
      • Свойства VFX
    • Редактор окружения
      • Общая информация про освещение
      • Создание пресета Environment
      • Настройка Environment
    • Режимы отладки
      • Консольные команды
      • Окно отладки рендера
    • Режим Симуляции
  • НАСТРОЙКИ ИГРОВЫХ ПАРАМЕТРОВ
    • Режимы передвижения юнитов типа human
    • Движение по склонам
    • Настройка бронепробиваемости
      • Алгоритм работы брони
    • Настройка сенсора
    • Модификаторы сложности
    • Пороговое значение для захвата местности
    • Настройка Узла кампании
    • Настройка параметров ветра
    • Metagame
      • Кампании
      • Карты
      • Актеры
      • Юниты
      • Батальоны
      • Факты
      • Счетчики
      • Задачи
      • Page 1
  • АНИМАЦИИ
    • FSM
      • Общие сведения
      • Формат описания FSM
      • Выбор анимации на примерах
      • Выбор анимаций ходьбы и бега
      • Выбор позы
      • Настройка idle
      • Анимации смерти
      • Выбор способа броска гранаты
      • Fsm для юнита Человек
      • Отладка анимаций в редакторе
    • Анимирование объекта placement
    • Звуки и события в анимации
    • Параметры укрытий для аниматоров
  • МОДЕЛИ
    • Плагин для экспорта моделей в игру
    • План настройки моделей техники
      • Создание иерархии элементов модели
        • Корпус
        • Башня
        • Орудие
        • Двигатель
        • Второстепенные кости
        • Трансмиссия
          • Механизмы в шасси
      • Особенности настройки моделей колесной техники
      • Особенности настройки моделей пушек
      • Экспорт модели техники в игру
      • Базовая настройка DEF-файла
      • Тестирование модели техники
      • Назначение материалов на модель
      • Уровни детализации (LOD)
      • Х-модель техники
      • ХХ-модель модели техники
    • Настройка модели дома
      • Описание иерархии структуры модели дома
      • Настройка .def файла модели дома
      • Х-модель дома и его .def файл
      • Тестирование модели дома
  • ТЕКСТУРЫ И МАТЕРИАЛЫ
    • Physically Based Rendering
      • Основные параметры в PBR
      • Компрессия текстур
      • Конверсия текстур в Gem RTS
      • Конверсия текстур с помощью Nvidia Texture Exporter
      • Тестирование материалов
      • Инструменты
    • Текстуры неба
  • ЛОКАЛИЗАЦИЯ
    • Добавление нового языка
    • Переменные строки в локализации
Powered by GitBook
On this page
  • Эффективная толщина брони при пробитии
  • Пробивание снарядом
  • Нормализация
  • Взрыв
  • Примечания
  • Отладка
  1. НАСТРОЙКИ ИГРОВЫХ ПАРАМЕТРОВ
  2. Настройка бронепробиваемости

Алгоритм работы брони

Эффективная толщина брони при пробитии

Пусть s - толщина volume со стороны попадания снаряда (значение берется из настроек volume в .def модели)

Если есть настройки брони 
    Если установлен флаг ray_cast_thickness
        s равно расстоянию, которое луч прошел в volume умноженное на коэффициент приведения материала volume к мм. стали,
    иначе, 
        s равно толщине брони из настроек armor с нужной стороны (4 стороны - перед, зад, верх/низ, бока)
Вычислить влияние наклона брони slope_factor от угла входа снаряда в броню
    //slope_factor - множитель толщины брони, который ограничен g_bulletSlopeMax.
    // при входе снаряда в броню под прямым углом - slope_factor = 1
    // при входе по касательной = g_bulletSlopeMax
overmatch = Ограничить(s / калибр снаряда * коэф. overmatch снаряда, g_bulletOvermatchMin, g_bulletOvermatchMax)
    // overmatch - влияние наклона брони на пробитие: при 0 - не влияет, при 1 - влияет максимально
    // при калибре снаряда близком к толщине брони наклон почти не влияет
вернуть s * (1 + overmatch * (slope_factor - 1))

Пробивание снарядом

Пусть s - эффективная толщина брони, вычисленная в точке попадания с учетом параметров armor (см. выше) Пусть e - энергия снаряда

Если запрещено наносить урон
    весь урон поглощается броней
    выход
Если  e >= s
    произошло пробитие

Пусть w - это энергия, которую броня может поглотить

w = Минимум(e,s)

Если калибр больше порогового калибра и e>=порога и накопление урона не запрещено, то
    броне нанесен урон
    вычисляем накопление урона, приведенное к эффективной прочности (от 0 и выше), → hit
    вычисляем оставшуюся после предыдущих попаданий прочность [0..1] → current
    если current <= hit
        произошло разрушение брони
    иначе внести накопленный урон hit
снаряд тратит энергию w на прохождение брони

По результатам пробития и свойствам снаряда далее возможны различные эффекты:

  • снаряд застрял в броне (потратил всё энергию)

  • детонация (при пробивании лёгкой брони может не сдетонировать, например, тяжелый фугас пролетает сквозь человека)

    • подрыв фугасной части

    • срабатывание кумулятивной струи

  • рикошет (броня не пробита и угол попадания всколзь)

Нормализация

Взрыв

Пусть e = энергия взрыва в этой точке

Если запрещено наносить урон, то 
весь урон поглощается броней
выход
Пусть w - это энергия, которую броня может поглотить
w = e
Если e >= порога и накопление урона не запрещено
	броне нанесен урон
	вычисляем накопление урона, приведенное к эффективной прочности (от 0 и выше), → hit
	вычисляем оставшуюся после предыдущих попаданий прочность [0..1] → current
	если current <= hit
		произошло разрушение брони
		w = w * Ограничить(current / hit, 0, 1)
			// сколько энергии могут задержать остатки брони
			// если броня полностью разрушена, то она не задерживает взрывную волну
	внести накопленный урон hit
взрыв тратит энергию w на прохождение брони

Примечания

  • Для пробития (pierce) значения задаются / считаются в мм условной брони (стали).

  • Для взрывной волны (blast) значения задаются в кг условной взрывчатки

  • Так же, для внутренних расчётов, есть преобразование урона в общую энергию

    • g_energyperprojective 1.0

    • g_energyperhealth 0.025

    • g_energyperblastwave 5.0

  • Компоненты есть только на технике

  • Домики работают без компонент

  • g_bulletSlopeMax → максимальное увеличение толщины брони от угла попадания

Отладка

Для отладки можно включить:

  • dbg_piercing 1 → отладочная информация в консоль о каждом попадании снаряда

  • dbg_blast 1 → отладочная информация в консоль о каждом взрыве

  • v_armor 1 → сейчас отключен (возможно появится позже)

  • ui_showArmorBar 1 → показ накопления урона

  • v_damage 1 → отображение кумулятивной струи, горения иё ударной волны

Last updated 2 months ago