Документация
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
  • Основные свойства
  • Привязка 3д-модели
  • Описание волюмов
  • Экипаж
  • Включение экипажа
  • Анимации посадки экипажа в технику
  • Размещение экипажа по местам
  • Включения
  • Инвентарь
  • Номер борта
  • Камуфляж
  • Зрение
  • Вооружение
  • Установка пулеметов
  • Лимиты угла наклона и поворота пулеметов
  • Описание ТТХ юнита
  • Шасси
  • Гусеницы
  • Настройка шасси и подвесок
  • Настройка щитов
  1. МОДЕЛИ
  2. План настройки моделей техники

Базовая настройка DEF-файла

Last updated 8 months ago

Def-файл (definition) - это текстовый документ, в котором прописаны все необходимые настройки и свойства модели.

Основные свойства

Подключить описания основных свойств юнита в его .def файл можно с помощью инструкций и списка свойств в блоке {props [...]}. Общие описания свойств юнитов находятся в папке main\scene\properties, файлы с расширениями .ext и .inc:

Шаблон подключения основных свойств юнита:

(include "/properties/[type_name].ext")
(include "/properties/shadow/[type_shadow].inc" scale(data))
(include "/properties/selection/[type_selection].inc" scale(data))
{props [property list]}
Файл
Описание

[type_name].ext

Файлы, содержащие базовые описания основных видов техники:

  • airborne.ext

  • cannon.ext

  • car.ext

  • armoredcar.ext

  • moto.ext

  • tank.ext

  • marine.ext

  • railway.ext

  • trailer.ext

Каждый из указанных файлов включает в себя описание vehicle.ext

shadow/[type_shadow].inc

Описание отбрасываемой тени. Вызов инструкции происходит с указанием значения аргумента scale для задания размеров тени

selection/[type_selection].inc

Описание спрайта выделения юнита (селектора):

  • airborne.inc

  • cannon.inc

  • vehicle.inc

  • vehicle_elongate.inc

Вызов инструкции происходит с указанием значения аргумента scale для задания размеров селектора.

Примеры включения основных свойств в .def файл юнита техники

Для машин:

{game_entity
    (include "/properties/car.ext")
    (include "/properties/shadow/tank.inc" scale(1.0))
    (include "/properties/selection/vehicle.inc" scale(1.1))
    {props "vehicle" "car" "wheeled" "windowed" "truck" "vision_lev03"}
}

Для танков:

{Entity
    (include "/properties/tank.ext")
    (include "/properties/shadow/tank.inc" scale(1.0))
    (include "/properties/selection/vehicle.inc" scale(1.1))
    ("bone_rotator")
    {props "medium" "turret_rotator" "vision_lev05"}
}

Для мотоциклов:

(include "/properties/moto.ext")
(include "/properties/shadow/moto.inc" scX(0.5) scY(0.6) psfX(-7) psfY(0))
(include "/properties/selection/vehicle.inc" scale(0.7))
{props "explosion_throw_crew" "turn_over" "vision_lev00"}

Чтобы соориентироваться, какие именно файлы и теги необходимо вписать в .def настраиваемой модели, можно посмотреть набор включений в .def файлах аналогичных моделей техники.

Привязка 3д-модели

3д модель техники включается в файл .def с помощью блока extension. В качестве значения параметра используется имя .mdl файла, взятое в кавычки. Название .mdl файла для каждого юнита уникально.

{extension "model_name.mdl"}

Файл model_name.mdl получается в результате экспорта модели в ресурсы игры.

Привязка 3д-модели на примере немецкого грузовика Opel Blitz
{extension "opel_blitz.mdl"}

Описание волюмов

Экипаж

Включение экипажа

("name_crew_define")
{extension "name_crew.ext"}
Примеры включения описания экипажа в .def юнита

Включение экипажа с помощью файла .ext

{extension "crew.ext"}

Включение экипажа вызовом инструкции define

("crew_4_human_extended")

Анимации посадки экипажа в технику

Блок параметра boarder отвечает за анимации посадки (и высадки) членов экипажа на технике, а также за их позу. Для каждого члена экипажа (командир, стрелок, пассажир, заряжающий и т.п.) и типа техники указывается свое значение анимации и позы.

Пример блока boarder
{boarder
    {anm "passenger"
        {forward 
            {begin "board_body"} 
            {end "seat_passenger"}
        }
        {reverse 
            {end "emit_body" 1}
        }
    }
    {anm "gunner"
        {forward 
            {end "pose_61K_gunlayer_right" 10}
        }
        {reverse 
            {end "emit_tank_1"}
        }
    }
    {anm "charger"
        {forward 
            {begin "board_LowTank_stand"} 
            {end "pose_61K_gunlayer_right" 10}
        }
        {reverse 
            {end "emit_tank_1"}
        }
    }
}

Чтобы подставить нужную анимацию конкретному члену экипажа необходимо название анимации вставить в значение begin (посадка) и end (высадка)

Пример назначения анимаций посадки и высадки для стрелка №1
{anm "gunner1"
    {forward 
        {begin "board_SdKfz251-1"} 
        {end "seat_sd251_mgunner"} 
        {base "doors"}
    }
    {reverse 
        {end "emit_body" 1} 
        {base "doors"}
    }
}

В блоке параметра base прописана анимация открытия дверей\люка на технике. Как только будет использована анимация gunner1, на технике запустится анимация doors.

Размещение экипажа по местам

Видимые пассажиры

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

Примеры описания логики размещения экипажа
("crew_human" place(gunner1) bone(gunner1) door(emit3) animation(gunner))
("crew_human" place(gunner2) bone(gunner2) door(emit4) animation(gunner))
("crew_human" place(gunner3) bone(gunner3) door(emit3) animation(gunner))
("crew_human" place(gunner4) bone(gunner4) door(emit4) animation(gunner))
("crew_human" place(seat1) bone(seat01) door(emit3) animation(passenger))
("crew_human" place(seat2) bone(seat02) door(emit4) animation(passenger))
("crew_human" place(seat3) bone(seat03) door(emit3) animation(passenger))
("crew_human" place(seat4) bone(seat04) door(emit4) animation(passenger))

Инструкция "crew_human" вызывается для каждого из членов экипажа, определяя для каждого стрелка или пассажира его кость места размещения в технике и кость посадки в технику.

  • place(gunner№)- стрелки

  • place(seat№) - пассажиры

  • bone(gunner№) - кости размещения стрелков

  • bone(seat№) - кости размещения пассажиров

  • emit№ - кости посадки в технику

Невидимые пассажиры

Если пассажиров в машине не видно (например, они скрыты под тентом), то вызывается инструкция "passenger_N_human_invisible", где значение N соответствует количеству пассажиров.

Пример вызова инструкции для невидимых пассажиров

Для 10 пассажиров, которые скрыты под тентом

("passenger_10_human_invisible")

Особенности описания экипажа танка

Для членов экипажа танков инструкция "crew_human" вызывается с указанием значения аргумента place, которое соответствует роли члена экипажа:

  • commander

  • charger

  • driver

  • gunner

Значения аргумента place для дополнительных стрелков:

  • gunner2 - видимый стрелок; например, пулеметчик в башне;

  • gunner3/gunner4 и так далее - невидимые стрелки в танке.

Если для невидимого стрелка задать значение gunner2 - это испортит анимацию люков при посадке экипажа.

Пример описания экипажа танка
("crew_human" place(gunner) door1(emit1) door2(emit2) visor(main))
("crew_human" place(driver) door1(emit0) door2(emit0) visor(driver))
("crew_human" place(charger) door1(emit1) door2(emit2) visor(main))
("crew_human" place(commander) door1(emit1) door2(emit2) visor(back))
("crew_human" place(gunner3) door1(emit1) door2(emit2) visor(main))

Стрелок gunner3 - невидимый

Включения

Инвентарь

Включение описания инвентаря осуществляется с помощью блока параметра {extender "inventory"}

{extender "inventory"
    {box
        {item "item_name" [data]}
    }
}
Пример включения описания инвентаря
{extender "inventory"
    {box
        {item "ammo bullet90 ap usa std" 45}
        {item "ammo bullet90 fg usa std" 25}
        {item "browning" filled {user "mgun"}}
        {item "ammo hmgun" 550}
        {item "ammo mgun" 2500}
    }
}

Номер борта

{extender "enumerator"}

Камуфляж

Не обязательный параметр. Включение описания камуфляжа происходит при помощи параметра extension. В качестве значения параметра используется имя файла, содержащего описание камуфляжа camouflage.ext

{extension "camouflage.ext"}

Файл camouflage.ext должен находиться в папке с файлом модели.

Пример содержимого файла camouflage.ext
;SDL
{extender "bodykit"
    {"camouflage"
        {delay 10}
        {"leafbush_01b_scale07" "turret"}
        {"leafbush_01b_scale05" "visor1"}
        {"leafbush_01b_scale07" "visor2"}
        {"leafbush_01b_scale07" "engine"}
        {"leafbush_01b_scale07" "seat01"}
        {"leafbush_01b_scale07" "seat02"}
    }           
}

leafbush_01b_scale07, leafbush_01b_scale05 - названия модели камуфляжа

turret, visor1, visor2, engine... - название костей модели техники, на которые линкуется указанная модель камуфляжа

Зрение

Подключение зрения юнита осуществляется с помощью блока sensor, который содержит блоки с параметрами визора {visor [data]}, типа зрения {vision [data]} и кости, к которой крепится визор {bone [data]}. Значениями параметров являются имена визора, типа зрения и кости, заключенными в кавычки.

Шаблон описания зрения юнита:

{Sensor
    {visor "[visor_name]"
        {vision "[vision_name]"}
        {bone "[bone_name]"}
    }
}

Описание визоров юнита техники может быть вынесено для удобства в отдельный файл и подключено в .def с помощью параметра extension. Значением параметра является имя файла, содержащего описание визоров юнита, заключенного в кавычки.

{extension "sensor.ext"}
Пример содержимого файла sensor.ext
;SDL
{sensor
    {visor "main"
        {vision "field_gun_main"}
        {bone "visor"}
    }
    {visor "view-around"
        {vision "field_gun_around"}
        {bone "basis"}
    }
}

Файл sensor.ext должен находиться в папке с файлом модели.

Вооружение

Блок {Weaponry} содержит описание элементов вооружения юнита

Пример описания вооружения

{Weaponry
    ("restore_ik_time")
    {place "gun"
        {RestoreIKAfterAim}
        {weapon "90mm_t15" filled}
        {gunner "gunner"}
        {charger "gunner"}
        {abm_tank_cannon}
        {basic}
    }
    {place "mgun"
        {type "aa"}
        {gunner "gunner2"}
        {charger "gunner2"}
        {LinkBone "mgun_aa"}
        {LinkAnimation "off"}
        {abm_mgun_heavy}
        {basic}
    }
    {place "mgun2"
        {type "coaxial"}
        {weapon "browning_m19" filled}
        {foresight "foresight5"}
        {gunner "gunner"}
        {charger "gunner"}
        {sequential_aim}
        {abm_mgun}
        {basic}
    }
    {place "mgun1"
        {type "hull"}
        {weapon "browning_m19" filled}
        {foresight "foresight4"}
        {gunner "driver"}
        {charger "driver"}
        {abm_mgun}
        {basic}
    }
}

Установка пулеметов

Пулеметы не являются частью мэша модели, поэтому в файле 3d max их нет.

Описание пулеметов задается в .def файле юнита техники с помощью вложенного блока {place "mgunN"} блока {Weaponry}. Каждому пулемету соответствует свой блок {place "mgunN"}, где N - номер пулемета.

Если пулемет не один, то прописывается соответствующее количество, с соблюдением названий костей прилинковки, экипажа и прочих параметров:

Лимиты угла наклона и поворота пулеметов

Описание ТТХ юнита

В .def юнита техники необходимо вписать ТТХ параметры и их значения:

  • вес,

  • описание шасси,

  • максимальная скорость,

  • разгон,

  • скорость поворота,

  • объем топливного бака и др.

Значения параметров настраивают в соответствии с концепцией игрового дизайна. В оригинальных играх серии Men of War геймдизайнеры настраивают эти параметры в соответствии с реальными характеристиками техники.

Шасси

Гусеницы

Скорость вращения гусениц задается значением аргумента len. Чем выше значение - тем гусеницы крутятся медленнее.

Настройка шасси и подвесок

Настройка щитов

Подключение описания экипажа происходит с помощью вызова нужной инструкции , либо с помощью блока {extension}, в котором в качестве значения необходимо указать имя соответствующего SDL файла, содержащего описание экипажа.

include
define