Механизм привязок в композитных моделях

Как вам стало известно из предыдущих постов, MatrixGame имеет механизм сборки композитных моделей по текстовому (в формате BlockPar) конфигу с расширением .cvo.

Самый сложный конфиг в игре принадлежит главной базе и выглядит примерно так (в этом варианте исправлены кое-какие проблемки, оригинальный немного более неуклюжий):

Main {
    Model=b0.vo
    TextureGloss=b0_gloss
    TextureMask=b0_mask
    TextureBack=b0_back
    TextureBackScroll=0,0.00006
}
Main2 {
    Texture=b0_1
    Model=b0_0.vo
}
{
    Texture=b0_1
    Model=b0_radar.vo
}
{
    Texture=b0_1
    Model=b0_anim.vo
}
Platform {
    Id=1
    Texture=b0_1
    Model=b0_platform.vo
}
Left {
    Id=2
    Texture=b0_1
    Model=b0_left.vo
}
Right {
    Id=3
    Texture=b0_1
    Model=b0_right.vo
}

Каждый блок описывает часть этой композитной модели. Он может быть именованным или безымянным. Блоку можно назначить идентификационный номер через параметр Id.

Элементу можно в параметрах прописать модель, текстуру (по умолчанию берётся одноимённая модели), свойства текстур, включая анимацию (свойство TextureBackScroll управляет скоростью изменения текстурных координат для назначенной в TextureBack текстуры подложки, указывается в единицах UV/мс).

Но кроме перечисленных вариантов параметров также есть параметр Link, который не используется ни в одной оригинальной модели. Он позволяет привязывать кусок композитной модели к другому через матрицы, точки привязки.

Матрицы – это стандартный механизм формата .vo для размещения корпуса на шасси, головы на корпусе, прикрепления оружия или отрисовки фонариков. Но в этих кейсах от матрицы используется только позиционная компонента, повороты задаются программно. Тогда как механизм Link, по идее, должен поддерживать позиционирование с поворотом.

Синтаксис параметра:

Link=Parent,LinkPoint

Здесь Parent может быть названием блока или его числовым id, LinkPoint – название или id матрицы. Элемент, которому прописали Link, своим ориджином (локальным нулём координат) привязывается к указанной точке на родителе.

Сами матрицы назначаются модели при моделировании и экспорте. А исходники экпортера моделей для 3ds Max 2024 можно найти здесь. Возможно, о нём будет отдельная статья или серия статей.