Как мы создавали и оживляли наших роботов для Asgard's Edda: Mechanical Threat

Привет, DTF! С вами команда NordVader, и сегодня мы хотим поделиться закулисной историей создания роботов для нашей игры Asgard's Edda: Mechanical Threat. Эта увлекательная история, и мы надеемся, вам будет интересно узнать, какие этапы мы прошли и что у нас получилось в конечном счёте.

А что за роботы?

Мы хотели создать противников, которые будут запоминаться. Один из вариантов, которым мы вдохновлялись — это Репликаторы из сериала "Звёздные врата". Нас зацепила идея того, что роботы состоят из небольших блоков, позволяя им пересобираться и образовывать более сложные конструкции. Нам очень понравилась идея модульности робота вкупе с простотой визуальной части. Ну и ещё чуть-по-чуть они внушают страх, когда видишь их в первый раз, и требуют от игрока сосредоточенности в бою.

Как мы создавали и оживляли наших роботов для Asgard's Edda: Mechanical Threat

Этап 1: Моделирование в Blender

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

Как мы создавали и оживляли наших роботов для Asgard's Edda: Mechanical Threat

Составление референс-листа — один из важных этапов; рефы из сериала, фото различных насекомых и даже зарисовки в Paint — всё шло в дело. Мы решили, что наши жуки должны выглядеть одновременно устрашающе и технологично. Проработка анатомии, жала, хелицер и даже соединительных шарниров было основано на референсах. Вот кстати то, что мы использовали:

Вот, как выглядели жуки на раннем этапе без текстур:

Этап 2: Текстурирование

Когда базовая модель была готова, настала очередь добавить текстуры. Мы стремились к тому, чтобы металл выглядел по-настоящему изношенным и использованным, с мелкими царапинами и потертостями, которые добавляют реалистичности. Текстурирование — это процесс, который придаёт жизни модели, делая её настоящей частью мира игры. Так как боты состоят из блоков, текстуры выбирали прямо на блок, а только потом смотрели, как они будут выглядеть на всей картине в целом.

Вот так в итоге выглядит наш жук - Гриммрейдер уже в собранном и затекстурированном виде:

Этап 3: Настройка Control Rig в Unreal Engine

После того, как жук был смоделирован и раскрашен, мы перешли к анимации. Для этого настроили Control Rig в Unreal Engine, который позволяет управлять всеми движениями нашего жука. Этот этап включает много тонкой настройки, чтобы добиться плавных и реалистичных движений. При создании рига использовали и Inverse Kinematics, и Forward Kinematics, и даже демпфирование, чтобы добавить пружинящий эффект на крылья и лапы.

Этап 4: Анимация жуков

И наконец, самый захватывающий момент — оживление нашего жука. Мы анимировали его так, чтобы он двигался быстро и агрессивно, как настоящий хищник. Важно было сделать его движения механическими, но в то же время плавными, чтобы жук выглядел угрожающе и в бою, и в моменты ожидания. В качестве референсов брали различные видео из интернета, например жуков из Звёздного Десанта.

При анимировании важно исходить не только из специфики поведения нашего робота, но и геймплейных метрик, которые будут влиять на игровой баланс. Например, скорость анимации атаки, как и её длительность, должны быть такими, чтобы игрок успевал среагировать, но при этом проявлял реакцию, чтобы отбежать/отскочить от атаки. Эти же правила диктуют нам то, с какой скоростью жук должен передвигать лапы, чтобы скорость перемещения совпадала с анимацией бега. Либо как альтернатива, использовать для анимаций передвижения Root Motion, но его сложнее анимировать. Вот одна из анимаций атаки собранная с использованием нашего Control Rig:

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

Если вам понравилось, поддержите нас лайком, а мы с радостью расскажем о других аспектах нашей разработки, так что задавайте вопросы и пишите, о чём вам хотелось бы узнать в следующий раз. Ну и конечно, добавляйте Asgard's Edda: Mechanical Threat в список желаемого на Steam!

1111
14 комментариев

Пните когда демо

2
Ответить

Текстурки так себе получились
Если имитируете износ - прикрутить рафнес, чтобы он не блестел как зеркало. Загрязнение и окисление.
Ну и все же надо добавить меху реальных загрязнений. Либо написать простеньй шейдер и процедурно накинуть на него грязи. Можно использовать координаты объекта и снизу накинуть грязи, а сверху пыли. Но это вариант для ленивых) можно нарисовать в пейнтере маски и по маскам в ue накинуть грязь и пыль. (используйте второй UV канал для масок).
Так вы и цвет разобъете и правдоподобности добавите. Пока это выглядит очень дёшево.
Игрок кстати не заметит микро детализацию на ваших модельках. Так что детали можно делать крупнее, а резолюцию текстур меньше.
Прикольно, что контрол риг уже идёт в работу) очень перспективная штука

2
Ответить

Жук кнч сомнительно выглядит, это же типа меха железная, где там гидравлика моторы, тросы/шланги всякие, что его короч в движение то приводит?

Ответить

Сила божья

1
Ответить

Это игра по звёздным вратам но без звёздных ворот. Арка с реплкаторами.

1
Ответить