Описание иерархии структуры модели дома

Пайплайн по настройке домов

Основные элементы и кости

Basis

Модель дома перед экспортом в игру необходимо настроить как структурный объект. Главная структурная кость называется basis. В его свойствах указывается тип сущности, путь экспорта и свойство Структуры.

Piece и piece_point

Каждый кусок дома piece - это отдельная модель со своими настройками, которая линкуется к basis через вспомогательную кость. Для удобства ее следует называть одноименно кости-piece с добавлением в имя приписки _point.

В свойствах кости типа _point ничего не указывается.

В свойствах кости типа piece указывается параметр poly (полигональный объект), тип сущности и путь экспорта.

Важно! Каждый кусок дома экспортится в отдельную папку. Папки всех кусков дома находятся в папке-родителе объекта.

Непосредственно в кость basis линкуются также:

bottom_floor_vol

со свойствами:

  • Volume

  • clear

  • Touch=1

obstacle

со свойствами:

  • Obstacle

  • Rotate

emit

Кости посадки без свойств

лэндовые объекты

Например пол - land - со свойствами:

  • Poly

  • Land

  • Ground

Вспомогательные кости для настройки

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

fort_window

Кость для возведения укреплений на окна.

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

Если в куске несколько окон, то нейминг укреплений должен быть по принципу: fort_window, fort_window01, fort_window02 и т.д. В каждом отдельном куске нейминг сбрасывается и начинается сначала.

fort_wall

Кость для возведения укреплений на стены.

В дефе можно указать, какую конкретно энтитю использовать как укрепление, обычно это модели мешков.

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

Если в куске несколько укреплений, то нейминг укреплений должен быть по принципу: fort_wall, fort_wall01, fort_wall02 и т.д. В каждом отдельном куске нейминг сбрасывается и начинается сначала.

attach

Кость для посадки юнита в дом.

В дефе описывается роль юнита, это может быть активный стрелок в оконных рамах или же вспомогательный. Юниты-стрелки имеют ориентацию по оси Х в направлении стрельбы, “запасные” юниты - по оси Х в направлении стены.

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

Нейминг по принципу: attach1, attach2, attach3 и т.д. В каждом отдельном куске нейминг НЕ сбрасывается и продолжается по счету.

fix

Кость зависимости разрушения кусков.

Принцип этих костей такой, что при уничтожении кусков в нижней части строения или несущих конструкций, верхние или боковые должны также обрушиваться, как домино. В иерархии эти кости должны быть в куске, за который они отвечают, но в пространстве - находиться в волюме соседнего куска. На скрине ниже желтые суппорты и есть fix-кости. Данный кусок, по сути, держится за эти точки, которые физически находятся в других кусках. Если падает соседний кусок, в волюме которого находится чужой fix, то этот fix тянет за собой и свой кусок. Зависимость кусков дома друг от друга нужно определять по конкретному, уже порезанному, строению, здесь все случаи уникальны. В свойствах ничего не указывается, зависимость кусков описывается в дефе.

Нейминг по принципу: fix001, fix002, fix003 и т.п. В каждом отдельном куске нейминг НЕ сбрасывается и продолжается по счету.

volume

Кости для определения попаданий.

Стандартная кость, со свойством volume, крепится непосредственно к куску. Описывается геометрия объекта, можно примитивами, можно полигидронами. Пробелов между волюмами быть не должно (если только это не обусловлено особенностью конструкции, напр. арки и т.п.), пересечение допускается. Волюмы должны описывать все элементы объекта.

emit

Механика посадки в дома использует кости “emit” как опорные точки для старта перехода сквозь обстакл внутрь здания. Важно учесть направление кости (в сторону выхода). И размещение относительно входа. Глубину посадки внутрь входа учитывать не нужно. Движок сам сместит эмит на нужное расстояние в сторону выхода. На основе таких костей движок генерирует дополнительные 3 кости для посадки в дома. Которые и будут использоваться игровыми механиками.

Волюмы для прицеливания и атаки

Для атаки юнитов в дома используются вспомогательные волюмы, а сами юниты не атакуются напрямую. Поэтому необходимо добавить и настроить волюмы.

Window

Для целых кусков атака обычно происходит в окна. Для этого используются волюмы window

{volume "window1"
    {thickness 0.2}
    {able {visible 0}{window}{Obstacle 0}}
}

target- vol

Для атаки в разрушенные куски необходимо добавить target-волюм

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

{volume "target_vol_02"
    {Tags "target"}
    {able clear {bullet}}
}

где Tags - target включает прицеливание в такие волюмы. Able bullet - включает атаку и урон в такие волюмы.

*Для отображения волюмов в движке r_meshGroupStructure 0 v_volume* команды для отображения, фильтрации волюмов.

Для строений типа бункера, где окон нет как таковых, на целые модели тоже нужно добавлять и описывать волюмы target, по принципу х-моделей домов (где есть окна).

Last updated