Привет, Пикабу! С вами команда NordVader, и сегодня мы хотим поделиться закулисной историей создания роботов для нашей игры Asgard's Edda: Mechanical Threat. Эта увлекательная история, и мы надеемся, вам будет интересно узнать, какие этапы мы прошли и что у нас получилось в конечном счёте.
А что за роботы?
Мы хотели создать противников, которые будут запоминаться. Один из вариантов, которым мы вдохновлялись — это Репликаторы из сериала "Звёздные врата". Нас зацепила идея того, что роботы состоят из небольших блоков, позволяя им пересобираться и образовывать более сложные конструкции. Нам очень понравилась идея модульности робота вкупе с простотой визуальной части. Ну и ещё чуть-по-чуть они внушают страх, когда видишь их в первый раз, и требуют от игрока сосредоточенности в бою.
Этап 1: Моделирование в Blender
Всё началось с создания базовой модели блока в Blender. При выбранной нами задумке, блоки должны отвечать ряду требований. Детали должны подходить друг к другу и позволять собирать из них любые требуемые части тела, будто то туловище, лапы, крылья или что угодно ещё.
Составление референс-листа — один из важных этапов; рефы из сериала, фото различных насекомых и даже зарисовки в Paint — всё шло в дело. Мы решили, что наши жуки должны выглядеть одновременно устрашающе и технологично. Проработка анатомии, жала, хелицер и даже соединительных шарниров было основано на референсах. Вот кстати то, что мы использовали:
Вот, как выглядели жуки на раннем этапе без текстур:
Когда базовая модель была готова, настала очередь добавить текстуры. Мы стремились к тому, чтобы металл выглядел по-настоящему изношенным и использованным, с мелкими царапинами и потертостями, которые добавляют реалистичности. Текстурирование — это процесс, который придаёт жизни модели, делая её настоящей частью мира игры. Так как боты состоят из блоков, текстуры выбирали прямо на блок, а только потом смотрели, как они будут выглядеть на всей картине в целом.
Примеры текстур которые мы рассматривали.
Вот так в итоге выглядит наш жук - Гриммрейдер уже в собранном и затекстурированном виде:
Этап 3: Настройка Control Rig в Unreal Engine
После того, как жук был смоделирован и раскрашен, мы перешли к анимации. Для этого настроили Control Rig в Unreal Engine, который позволяет управлять всеми движениями нашего жука. Этот этап включает много тонкой настройки, чтобы добиться плавных и реалистичных движений. При создании рига использовали и Inverse Kinematics, и Forward Kinematics, и даже демпфирование, чтобы добавить пружинящий эффект на крылья и лапы.
И наконец, самый захватывающий момент — оживление нашего жука. Мы анимировали его так, чтобы он двигался быстро и агрессивно, как настоящий хищник. Важно было сделать его движения механическими, но в то же время плавными, чтобы жук выглядел угрожающе и в бою, и в моменты ожидания. В качестве референсов брали различные видео из интернета, например жуков из Звёздного Десанта.
При анимировании важно исходить не только из специфики поведения нашего робота, но и геймплейных метрик, которые будут влиять на игровой баланс. Например, скорость анимации атаки, как и её длительность, должны быть такими, чтобы игрок успевал среагировать, но при этом проявлял реакцию, чтобы отбежать/отскочить от атаки. Эти же правила диктуют нам то, с какой скоростью жук должен передвигать лапы, чтобы скорость перемещения совпадала с анимацией бега. Либо как альтернатива, использовать для анимаций передвижения Root Motion, но его сложнее анимировать. Вот одна из анимаций атаки собранная с использованием нашего Control Rig:
Это только малая часть того, что мы делаем, чтобы наш игровой мир был по-настоящему живым и захватывающим. Помимо этого бота, в работе сейчас робот тяжеловес, и робот-шершень, и в создании каждого из них свои тонкости. Надеемся, вам было интересно узнать о нашем опыте разработки роботов-жуков.
Если вам понравилось, поддержите нас лайком, а мы с радостью расскажем о других аспектах нашей разработки, так что задавайте вопросы и пишите, о чём вам хотелось бы узнать в следующий раз. Ну и конечно, добавляйте Asgard's Edda: Mechanical Threat в список желаемого на Steam!