Последние публикации
  • Визуализация точек крепления

    #новый движок #matrixgame #графика

    Визуализация точек крепления. На них вешаются другие модули, оружие, фонарики или, как в случае с матрицами на «ступнях» пневматики – отображение спецэффектов.

  • Что не так с анимациями в MatrixGame?

    Как работают анимации в движке планетарных битв.

    #новый движок #matrixgame #анимации

    В отличии от современных игр, в которых за движения моделей отвечают скелет и привязки, движок планетарных битв использует покадровые вершинные (вертексные) анимации, примерно как в Quake 2.

    Для тех лет это стандарт, база и основа. Скелетные анимации были дорогими по вычислительным ресурсам по сравнению с практически бесплатными вершинными. Платить, однако, приходится местом на диске – в отличие от той же Quake 2, где в файлах MD2 хранилась дельта (разница) положения вершин (и, насколько помню, вообще использовалось много разных оптимизаций, включая индексированные значения, почти как в GIF), в моделях формата VO покадрово запекаются вертексы целиком.

    Компенсируется такая растрата сжатием zlib и малым количеством анимированных моделек.

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

    Контроллера анимаций в привичном виде в движке нет. Из доступных модификаторов есть только управление скоростью воспроизведения, что используется в модельках шасси. Тем не менее, в движке есть машина состояний для управления переключениями анимаций шасси – эти состояния как раз и перечислены в посте про демонстрацию их переключения.

    Как было упомянуто ранее, для анимированной модели каждый кадр сохраняется как полноценная копия всех её вершин, только в изменённом положении. Как же поступать с моделями, в которых нужно анимировать только отдельный кусочек, как, например, радар у главной базы? Ради этих нескольких вертексов пересохранять и перерисовывать всю геометрию целиком? Нет, как раз для решения этой проблемы и ввели композитные модели с разделением на части, тестирование работы которых демонстрировалось в предыдущем посте. Анимированный кусочек выделяется в отдельный файл VO и цельная модель собирается из таких кусочков по конфигу CVO.

    Также в моделях запекаются положения точек соединения (матриц), которые синхронизируются с геометрией. Таким образом место сочленения шасси и корпуса, например, никуда не «съезжает» при воспроизведении анимации.

    Про интересный факт относительно этих самых матриц и конфигов CVO будет отдельный пост.


    Так что же, собственно, не так с анимациями в MatrixGame? Всё так, для уровня начала XXI века. Но на текущий момент они довольно сильно технологически устарели. Будет ли что-то с этим сделано в нашем проекте? Посмотрим. Планы есть, но не хочу ничего загадывать наперёд. Следите за развитием.

  • Композитные модели

    #новый движок #matrixgame #графика

    Очередное тестовое приложение движка. На этот раз – для демонстрации композитных моделей.

    Конкретная база собирается из семи кусков (отдельных моделей VO) и использует две текстуры, не считая масок. У каждой составной части может быть собственная анимация, независимая от других (скорее всего, для оптимизации этого момента такой хак и придумали). Собираются композитные модели по конфигурации из файлов с расширением CVO.

  • Переключение анимаций

    #новый движок #matrixgame #анимации

    Возможность тестового приложения движка: переключение анимаций.

    У модели пневматического шасси есть 7 анимаций:

    • Идём вперёд («Move»)
    • Останавливаемся («EndMove»)
    • Стоим (да, это тоже анимация) («Stay»)
    • Начинаем движение («BeginMove»)
    • Начинаем движение назад («BeginMoveBack»)
    • Идём назад («MoveBack»)
    • Останавливаемся при движении назад («EndMoveBack»)

    Всё настолько сложно. Если кто-то думал, что пневматика – это развернулся и алга, то нет, это далеко не так. Также этот список многое говорит о примитивности системы анимации ПБ, но об этом в другом посте.

  • Просмотрщик моделей

    #новый движок #matrixgame #инструменты

    Одно из тестовых приложений текущего состояния движка – просмотрщик моделей.