Описание иерархии структуры модели дома
Пайплайн по настройке домов
Last updated
Пайплайн по настройке домов
Last updated
Модель дома перед экспортом в игру необходимо настроить как структурный объект. Главная структурная кость называется basis. В его свойствах указывается тип сущности, путь экспорта и свойство Структуры.
Каждый кусок дома piece - это отдельная модель со своими настройками, которая линкуется к basis через вспомогательную кость. Для удобства ее следует называть одноименно кости-piece с добавлением в имя приписки _point.
В свойствах кости типа _point ничего не указывается.
В свойствах кости типа piece указывается параметр poly (полигональный объект), тип сущности и путь экспорта.
Важно! Каждый кусок дома экспортится в отдельную папку. Папки всех кусков дома находятся в папке-родителе объекта.
Непосредственно в кость basis линкуются также:
со свойствами:
Volume
clear
Touch=1
со свойствами:
Obstacle
Rotate
Кости посадки без свойств
Например пол - land - со свойствами:
Poly
Land
Ground
Каждый отдельный кусок может иметь набор функционала, который реализуется с помощью вспомогательных костей:
Кость для возведения укреплений на окна.
Подгоняется под геометрию окна, пивотом по оси Х в направлении дома. В свойствах ничего не указывается.
Если в куске несколько окон, то нейминг укреплений должен быть по принципу: fort_window, fort_window01, fort_window02 и т.д. В каждом отдельном куске нейминг сбрасывается и начинается сначала.
Кость для возведения укреплений на стены.
В дефе можно указать, какую конкретно энтитю использовать как укрепление, обычно это модели мешков.
Подгоняется под геометрию здания, выбирается необходимая ориентация. В свойствах ничего не указывается.
Если в куске несколько укреплений, то нейминг укреплений должен быть по принципу: fort_wall, fort_wall01, fort_wall02 и т.д. В каждом отдельном куске нейминг сбрасывается и начинается сначала.
Кость для посадки юнита в дом.
В дефе описывается роль юнита, это может быть активный стрелок в оконных рамах или же вспомогательный. Юниты-стрелки имеют ориентацию по оси Х в направлении стрельбы, “запасные” юниты - по оси Х в направлении стены.
Подгоняется под геометрию здания, первоочередно занимаются места у имеющихся окон для ведения стрельбы.
Нейминг по принципу: attach1, attach2, attach3 и т.д. В каждом отдельном куске нейминг НЕ сбрасывается и продолжается по счету.
Кость зависимости разрушения кусков.
Принцип этих костей такой, что при уничтожении кусков в нижней части строения или несущих конструкций, верхние или боковые должны также обрушиваться, как домино. В иерархии эти кости должны быть в куске, за который они отвечают, но в пространстве - находиться в волюме соседнего куска. На скрине ниже желтые суппорты и есть fix-кости. Данный кусок, по сути, держится за эти точки, которые физически находятся в других кусках. Если падает соседний кусок, в волюме которого находится чужой fix, то этот fix тянет за собой и свой кусок. Зависимость кусков дома друг от друга нужно определять по конкретному, уже порезанному, строению, здесь все случаи уникальны. В свойствах ничего не указывается, зависимость кусков описывается в дефе.
Нейминг по принципу: fix001, fix002, fix003 и т.п. В каждом отдельном куске нейминг НЕ сбрасывается и продолжается по счету.
Кости для определения попаданий.
Стандартная кость, со свойством volume, крепится непосредственно к куску. Описывается геометрия объекта, можно примитивами, можно полигидронами. Пробелов между волюмами быть не должно (если только это не обусловлено особенностью конструкции, напр. арки и т.п.), пересечение допускается. Волюмы должны описывать все элементы объекта.
Механика посадки в дома использует кости “emit” как опорные точки для старта перехода сквозь обстакл внутрь здания. Важно учесть направление кости (в сторону выхода). И размещение относительно входа. Глубину посадки внутрь входа учитывать не нужно. Движок сам сместит эмит на нужное расстояние в сторону выхода. На основе таких костей движок генерирует дополнительные 3 кости для посадки в дома. Которые и будут использоваться игровыми механиками.
Для атаки юнитов в дома используются вспомогательные волюмы, а сами юниты не атакуются напрямую. Поэтому необходимо добавить и настроить волюмы.
Для целых кусков атака обычно происходит в окна. Для этого используются волюмы window
Для атаки в разрушенные куски необходимо добавить target-волюм
По высоте центр этого волюма приходится примерно на уровне плеч сидящего юнита По глубине внутрь дома - центр волюма приходится на центр стены. Габариты чуть больше размера корпуса юнита. Сбоку волюм немного выпирает, чтобы был доступен для прицеливания и атаки под углом к дому. Пример даже на скриншоте
где Tags - target включает прицеливание в такие волюмы. Able bullet - включает атаку и урон в такие волюмы.
*Для отображения волюмов в движке r_meshGroupStructure 0 v_volume* команды для отображения, фильтрации волюмов.
Для строений типа бункера, где окон нет как таковых, на целые модели тоже нужно добавлять и описывать волюмы target, по принципу х-моделей домов (где есть окна).