Документация
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. FSM

Настройка idle

Основные принципы

Список fms состояний, из которых возможен запуск анимаций типа idle:

  • board - прилинкованный

  • lie_idle - лежит

  • snipe - из-за забора выглядывает

  • squat - сидит

  • idle - стоит

Выбор idle анимации идёт в 2 стадии:

  1. Выбирается запрос с помощью \scene\properties\animation_selector\human_idle_selector.set

  2. Выбираются конкретные анимации idle

Если запрос на анимацию вернёт пустую строку, то солдат стоит неподвижно некоторое время, потом выбор стартует заново

Для создания цепочек в fsm хранится текущее состояние idle

Семафоры

Семафоры используются для создания задержки между переключениями в разные состояния или для блокировки на время определенных действий.

Семафор может быть в 2-х состояниях - разрешен или запрещен. После имени семафора указывается время блокировки семафора в секундах. При этом 0 разблокирует семафор, 1 - блокирует семафор на 1 с. Рекомендуется указывать два числа для создания рандома времени блокировки, чтобы не получить колышащееся в общий такт поле юнитов.

Добавлять собственные семафоры можно в разделе init

Пример использования семофоров и выбора анимаций idle из файла human_idle_selector.set

{init
    {state "idle"} ;стартовое состояние обязательно
    {semaphore "can_smoke" 10 30} ;семафор can_smoke будет заблокирован от 3 до 10 секунд 
    {semaphore "can_inhale" 3 5}
    {semaphore "can_action" 5 15}
}
{selector
    {idle 
        ;запрос на анимации через human.set
        {run "stand_action"} ;обязательный параметр в idle
        {semaphore "smoke" 3 10} 
        {state "idle"} ;новое состояние (не обязательный)
    }
}

В примере используются семофоры:

  • can_smoke - когда уже можно начинать курить

  • can_inhale - когда можно делать следующую затяжку

  • can_action - когда можно запускать более активный idle, а не просто дыхание и мелкие шевеления

В блоке selector задается запрос на анимации через human.set. В блоке selector можно также переключать состояния и семафоры, если это необходимо.

Можно добавлять свои запросы на анимации и прописывать выборку анимаций в файле human_idle.inc

Чтобы добавить возможность idle в состоянии, где его раньше никогда не было, необходимо добавить его поддержку в коде. Состояния, которые на текущий момент имеют поддержку в коде: idle - играет обычные idle анимации smoking - курит

Условия

Условия в human.set, которые используются в первую очередь:

  • {if human_fsm_idle_semaphore "smoke"

  • {if human_fsm_idle_state "smoking_begin"

  • {if fsm_tags "board"

Запросы

Варианты запросов на анимации idle в блоке run:

для запросов *_idle предполагается какая-то серьёзная активность для запросов *_breath - ожидаются анимации дыхания или небольшого шевеления

  • Стоит

    stand_idle

    stand_breath

  • Сидит

    squat_idle

    squat_breath

  • Смотрит из-за горизонтального укрытия (окопы, заборы по пояс) snipe_breath

  • Лежит lie_idle lie_breath

  • Поджигает сигарету stand_smoking_begin

  • Делает затяжку stand_smoking_process

  • Тушит сигарету stand_smoking_end

Last updated 1 year ago