Вокруг Вселенной: используемые объекты

Вокруг Вселенной: используемые объекты

Полный перевод последнего выпуска еженедельного шоу «Вокруг Вселенной» от MaxVatutin

Отдельное спасибо Владимиру (Vovson) за помощь в маркировке видео и разметке под локализованные подписи.

Сэнди Гардинер – Вице-Президент по маркетингу | Крис Робертс – Основатель и Исполнительный Директор

СГ: Привет, и добро пожаловать на очередной эпизод Вокруг Вселенной – нашего еженедельного взгляда на продолжающуюся разработку Star Citizen. Я – Сэнди Гардинер.

КР: А я – Крис Робертс

СГ: На сегодняшнем шоу мы рассмотрим нашу обширную систему взаимодействия с окружением и взглянем, что потребуется от игрока для того, чтобы поднять, положить и даже сесть на объект в игре, а также побьем ли мы рекорд по анимациям для столовой на один эпизод.

КР: Скорее всего побьем. Но для начала давайте сверимся с командой по поводу новейших багов и блокеров, влияющих на 3.0, в новом Burndown.

Burndown

Эрик Кайрон Дэвис – директор студии, глава всей разработки в США

С возвращением в Burndown – наше еженедельное шоу, посвященное обзору прогресса над проблемами, мешающими релизу Star Citizen Alpha 3.0. Прошлую неделю мы завершили с  7 обязательными к исправлению ошибками, которые были приоритезированы как 3 блокера, 2 критических, 1 ошибка с высоким приоритетом и одна со средним. Давайте проверим прогресс на этой неделе.

Мэттью Вэбстер — помощник продюсера

То, что мы сделаем – я передам этот список багов из Jira команде QA. Мы соберем все баги для них и внесем любые новые. Большая часть моих заметок по этому поводу будет вроде списка багов, которые мы отметили за наше прохождение, и я включу те, что, похоже, необходимо исправить к публичному тесту. А затем я свяжусь с Эрином, чтобы он решил, какие из них отберет, согласен ли он со всеми, или с какими-то нет.

Этим утром двери Easy Hub и на Grim Hex не открываются. Эта проблема была назначена на Матиаса. Это может быть проблемой с базой данных анимации. Все остальные, по большей части, связаны с бэк-эндом.

Ранее сегодня у нас было ревью геймплея с главами разработки и директорами. Идеей этого было пройтись по тому, что мы хотим сделать для эвокати: выбраться из кровати на Олисаре, забраться в корабль, летать вокруг и исследовать, путешествовать и совершать квантовые прыжки, исследовать всякое… Мы хотели убедиться, что, с учетом такого множества проявившихся новых багов, которых раньше ни у кого не было, мы исправили абсолютно все, что действительно хотели для Эвокати. И я рад сказать, что мы нашли лишь три бага, о которых мы уже знали и собирались исправить для Эвокати, так что это было очень хорошо.

Эрин Робертс — глава всей разработки, директор студий в Европе

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

Крис Робертс – Основатель и Исполнительный Директор | Шон Трейси – технический директор по контенту

КР: Одна вещь с собрания инженеров… Мы обсуждали систему контейнеров объектов, их открытие и редактирование на месте, в особенности для освещения. Знаете, Эриэл кое над чем работал, Стив Хампфри вроде как делает работу, нужную Роджеру, но я думаю, что существует проблема несоответствия между инженерными вещами, среди которых есть определенные задачи, над которыми люди работают сами по себе, и тем, что нужно и чего хотят пользователи. Так что мы говорили о попытках несколько сместить фокус на это, так как, я думаю, проблема в том, что кажется будто они закончили с чем-то, но знает ли об этом кто-то вообще? И кроме того, может, часть вещей не были сделаны в том виде, в котором они подойдут художникам, так что нам нужен кто-то, кто попытается наладить этот процесс, кто сможет быть связующим звеном между технической и художественной частями. И я в добровольно-принудительном порядке назначил тебя и главу инженеров.

ШТ: Ок, звучит неплохо и опять схоже с тем, о чем мы говорили на встрече директоров проекта, мне и Дереку надо синхронизироваться, ибо в конечном итоге программисты инструментов подчиняются Дереку, так? Ну, может не все они, но два из четырех.

КР: Я имею в виду то, что, фактически, должно происходить то, что мы выявим, что упростит работу для Иэна или Криса Кэмпбелла, или Зейна, или Ханны или еще кого, и обеспечим работу над этими вещами, потому что у нас есть определенные задачи. Я имею в виду то, что Эриэл работал над редактированием смежных контейнеров объектов и своими окнами квантовых перелетов, и прочими штуками, но я думаю, что о многом на стороне контента люди даже и не знают. Например, вроде только сегодня они такие: «О, я могу помочь с некоторыми из этих вещей». Думаю, есть какие-то проблемы с открытием этого и они хотят это исправить, но я хотел бы сделать это так, чтобы был кто-то, кто рулит этим процессом, и я подумал о ком-то вроде директора по глобальному контенту, это же вроде как твоя работа – переводить для инженеров то, что им нужно делать в плане инструментов и прочего, будучи уверенным, что ты выслушиваешь все нужды создателей контента, ибо у нас был некоторый дисконнект в этом плане, что-то вроде того, что нам нужны эти штуки, так что Jira заполняется и люди работают над этим…

ШТ: Нет, что еще хуже, это…

КР: Абстрактно говоря, нет связующего лидера, верно?

Мэттью Вэбстер — помощник продюсера | прочие

Пр: Мы в замедлении? Ок, мы в замедлении.

МВ: Думаю, мы в замедлении. Это баг, над которым сейчас работает Клайв…

Пр: Время догонит в конце концов.

МВ: Это первый раз, когда вы видите такое, за последние несколько дней, верно?
Пр: Мы уже наблюдали такое.

МВ: Хотя и довольно редко. Обычно такое случается редко и Винсу вчера удалось воспроизвести редкий баг со звездной картой.

Пр: Только насколько знаем мы.

Клайв Джонсон – ведущий сетевой программист

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

Сэм Чайлд– ведущий QA тестировщик

Мы с Эрином провели ревью, и он, фактически, сел с нами, поиграл в игру и обозначил ошибки, которые, как он подумал, будут большой проблемой, мешающей всему этому попасть в руки Эвокати. Таких проблем всего пара, и затем мы вместе составили список того, что входит в эти вещи, на которые он указал. Мы отправили письмо в продакшн и нацепили ярлычки «обязательно к исправлению» на все эти ошибки, чтобы они полностью на них сосредоточились.

Риз Твелвз – старший сетевой программист

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

Михаэль Диллон – инженер игрового процесса

Осталось еще две обязательные к исправлению ошибки. Квантовый двигатель больше не будет привязан к плоскости звездной системы, когда вы прыгаете, ибо оказалось, как мы с Марком выяснили, что есть две разных системы координат справа и слева, что меняет несколько вещей. Баг, отмеченный как критический, над которым мы работаем прямо сейчас, связан со станциями вокруг Крусейдера вблизи Port Olisar, к которым можно прыгнуть. По какой-то причине при прыжке к ним оказываешься вдали от них, думаю, что это проблема с настройками, так как радиус прибытия где-то 10000 километров, также, как и смещение еще где-то 10000, а в итоге оказываешься где-то очень далеко. Да, и для чего-то столь небольшого, вы должны прилетать ближе, какая-то часть возвращаемых данных… Просто поправим переменные, а затем не знаю, над чем продолжим работу. Просто пойдем дальше по списку к следующей наиболее важной вещи.

Мэттью Вэбстер — помощник продюсера

На данный момент у нас осталось два бага до того, как мы дадим 3.0 Эвокати. Вчера у нас были ошибки с постоянством, которые вызывали кучу проблем, у нас уже есть фиксы для них, QA в Остине получили новый билд ради этого и протестировали их, и все, кажется, в порядке. Так что мы уже на финишной прямой к релизу для группы Эвокати.

Кристофер Эккерсли – старший технический QA тестировщик

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

Мэттью Вэбстер — помощник продюсера

Когда мы пришли сегодня утром, то обнаружили письмо из нашей Остинской студии, которое пришло нам, пока все в Соединённом Королевстве были по домам. В нем вроде как излагалось, каковы основные причины некоторых прочих проблем, которые мы наблюдали. Основная причины, видимо, заключалась в том, что наша система билдов по какой-то причине не принимала никаких изменений в нашем кэше данных постоянства в течение последних пары билдов, что, кажется, и было основной причиной того, почему у нас было несколько проблем вроде того, что предметы в магазинах вообще напрочь отсутствовали. Затем, когда мы запустили билд с должным образом обновленным кэшем постоянства, было еще несколько падений, связанных с этим, так как в промежутке между обновлениями кэша также шла работа над самим кэшем, что привело к каскадному эффекту и вызвало прочие падения.

Крис Робертс – Основатель и Исполнительный Директор

Да, я имею в виду, что не хочу запускать все так… Я не думаю, что выйдет что-то хорошее, раз уж у вас пять или шесть человек роняют сервер каждые 5-10 минут на протяжении двух часов. Это будет разочаровывающим опытом, а вы собираетесь получить целую кучу народу, который загрузит это и затем, если частота вылетов схожая или пропорциональна количеству играющих людей, крашей будет еще больше. Знаете, у вас будут вылеты каждую минуту или две, ибо вы собираетесь заполнить эти инстансы довольно быстро. Предполагаю, что Эвокати ждет именно это, и в самый же первый раз, когда они наконец смогут сыграть в 3.0, они будут воодушевлены, скачают это, а затем их выкинет обратно на рабочий стол.

Чэд Мак-Кинни- ведущий инженер по геймплею | Шон Трейси – технический директор по контенту | Крис Робертс – Основатель и Исполнительный Директор | Эрик Кайрон Дэвис – директор студии, глава всей разработки в США

ЧМ: Все, что я могу сейчас сказать по этому поводу – это все очень странно. Нужно время, чтобы докопаться до причины возникновения конкретно этой последовательности событий.

ШТ: Мы хотим, чтобы билд был как можно более чистым от багов и стабильным, это вы тестируете окружение, в которое будут играть. 3.0 – мультиплеер, так что вы тестируете мультиплеер. Ваши тесты связаны с серверной частью, вот и все.

КР: Думаю, что нам стоит обеспечить доступность команд QA из Соединенного Королевства и Германии для помощи в тестировании мультиплеера

ШТ: Именно, чтобы поднять все в работоспособном виде.

ЭКД: Окей, я сейчас собираюсь записать Burndown.

Эрик Кайрон Дэвис – директор студии, глава всей разработки в США

Как вы можете видеть, мы начали проводить наши официальные встречи формата «да/нет релизу», на которых ключевые люди от каждой дисциплины оцениваю билд вместе с Крисом, чтобы решить, все ли согласны с тем, что билд готов к процессу публикации. С этого момента они будут проводиться практически каждый день. На этой неделе наш счетчик проблема колебался вверх-вниз на основе стабильности билда. Вчера, когда мы достигли нуля, мы провели нашу первую встречу «да/нет релизу» и обнаружили еще несколько ошибок, которые нам нужно исправить перед этим релизом. У нас была другая встреча сегодня, и даже с новыми фиксами билд оставался нестабильным. Так что на момент съемки мы сократили число обязательных к исправлению багов на два, что означает, что у нас осталось 5 проблем, мешающих этому первому релизу. Мы очень воодушевлены перспективами более широкого тестирования и не можем дождаться, когда дадим это массивное обновление вселенной Star Citizen вам для игры в очень-очень ближайшем будущем. Увидимся на следующей неделе здесь в Burndown.

Сэнди Гардинер – Вице-Президент по маркетингу | Крис Робертс – Основатель и Исполнительный Директор

СГ: Спасибо, Эрик! Если вы хотите получить больше информации о том, какие баги мы исправили, проверьте график разработки на нашем сайте.

КР: А теперь давайте перейдем к используемым объектам, которые фактически включают в себя любые предметы, с которыми в игре могут взаимодействовать игроки или ИИ. Это включает всебя все от поднятия кружки или использования ноутбука до взлома контрольного терминала в Star Marine или даже сидения за столом в столовой, так что поехали.

СГ: Разработка системы, которая сможет дать ощущение реалистичности, в то же время покрывая огромное количество и вариации используемых объектов, которые появятся в игре, была существенным испытанием, которое пришлось преодолеть команде.

КР: Да, так что давайте взглянем.

Используемые Объекты

Дженс Линд – ведущий программист FPS

Работа над используемыми объектами началась для нас во время подготовки к прошлогоднему CitizenCon. Мы поняли, что у нас есть множество сидений в игре, и единственный тип сидени доступный для нас – кресло пилота. Кресла пилота сложны. Вы не хотите говорить: «Ох, это скамейка» или про лавку в столовой или про кровать, вы не хотите говорить, что у них такие же атрибуты, как у кресла пилота. Мы хотели создать что-то простое, так что мы придумал идею, которая звучала так: «О, это просто обычное сиденье, оно должно быть легким и легким при массовом производстве».

Так что мы начали с этого, и по мере роста туда включались прочие вещи, вроде первого реального тестового сценария для этого простого сиденья, из-за чего нам в действительности пришлось сменить название. Это был взлом ноутбука в Star Marine, а там как бы вообще не задействовано сиденье. В итоге все это стало в большей степени используемыми объектами – чем-то, что вы можете использовать, и когда вы это используете, воспроизводится анимированная реакция игрока. И может быть множество сценариев использования, и может быть множество идей поверх этого, вроде того, что вы можете выбрать что-то типа» О, я хочу взломать ноутбук. Я хочу закрыть ноутбук. Может кто-то его закрыл, так что сначала мне нужно открыть его». Все эти виды сложного поведения.

Грегуар Андиверо – дизайнер систем

В игровом мире это что-то вроде разговора с детьми, верно? Когда я говорю вам: «Сядь на стул» — вы знаете, как сесть на стул, потому что вы проделывали это уже тысячу раз. Но в игровом мире все происходит так, что ИИ нужно фактически спросить у стула, как ему следует его использовать. И стулу вроде как нужно содержать данные о том, как вы можете на него сесть со всех этих разных углов, какие вы можете использовать анимации для этого. Когда вы уже сидите, то можете проигрывать это, это… и все в таком духе.

Если вы сидите на чем-то, что привязано к столу, то вы можете подбирать что-то со стола. Но тут опять, если вы сами сидите на стуле, вы знаете, что есть на столе, и просто это берете. У ИИ нет подобного сознания, так что вам нужно говорить ИИ: «Ты на стуле, он связан со столом», а потом стол говорит: «На мне также есть стакан». И лишь затем ИИ узнает, что он может взять этот стакан. Но мы собираемся… мы переназначаем все то, что касается зашитого «мозга» ИИ. Это поэтапный процесс, который кажется тривиальным, но это действительно то, с чем нам нужно разобраться.

Это вроде переназначения каждого сознательного выбора, связанного с ходьбой. Вы поднимаете ногу, переносите ее вперед, потом опускаете. И вам нужно сказать ИИ, чтобы он проделывал все это по очереди, вместо того, чтобы полагаться на его способность просто делать то, что требуется, так как нет такого принципа.

И после провала мы поняли, что нам нужно больше взгляда со стороны, больше вовлечения в процесс, чем у нас было до этого. Так что из студии в Соединенном Королевстве, из команды Дженса Линда, к нам присоединился Джейми Виссер, программист геймплея. Мы начали работать над улучшением рабочего процесса и того, как анимация и геометрия используемых объектов обрабатывалась на конвейере разработки. И мы получили несколько обновлений, которые действительно настолько ускоряли процесс, вроде всех этих согласований, связанных с используемыми объектами, о которых я говорил ранее… Мы просто считываем все это из анимаций, так что нам не нужны все эти тяжелые и громоздкие разметки, что так сильно ускорило художественный процесс.

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

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

И с самого начала… команда действительно создала… было действительно просто выбрать одно из этого списка и просто сказать: «Ох, окей, давайте разберемся с этим блокером. Давайте просто сделаем это.»

Дженс Линд – ведущий программист FPS

Первый раз, когда вы увидели используемый объект – это взлом панели. Затем мы двинулись дальше. Мы также преобразовали медицинский инжектор, он будет используемым объектом, надеемся в следующем релизе. Так что мы потихоньку наращиваем взаимодействие игроков с объектами. А затем, в начале этого года, дизайнеры захотели использовать используемые объекты и для ИИ. Так что мы начали всю эту новую парадигму спринта, когда мы работаем с дизайнерами, работаем с командой по реквизиту, работаем со специалистами по анимации. Все вместе в одной специальной группе, которая вырастит эту систему взаимодействия ИИ с вещами в игровом мире самыми разнообразными способами.

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

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

Каждое место за общим столом несколько отличается. Вы не можете использовать одну и ту же анимацию, чтобы сесть с краю лавки, или чтобы сесть в ее центре. На самом деле есть больше точек подхода, если вы подходите сбоку, а также если вы подходите сзади.

И ради достижения естественности происходящего вы не захотите, чтобы кто-то обходил стол вокруг для того, чтобы добраться до его конца. Вы захотите, чтобы персонажи могли использовать кратчайший путь, как бы и сделал любой человек. И как только они это делает, возникает еще целая история типа: «А что они делают, когда сидят за общим столом?». Если их там восемь, то как вы их разделите, чтобы они буквально не сидели в линию по четыре слота с каждой стороны, делая одно и тоже, проигрывая одни и те же циклы. Как сделать все это естественным? Также как и вставание из-за стола. Вы хотите, чтобы, когда вы выходите из-за используемого объекта, вы делали это не одним и тем же образом. Вы же не отходите все время прямо назад, а потом выбираете новое направление. Вы можете выходить немного левее или правее, ибо это то направление, куда вы хотите пойти далее.

А затем я думаю о сложности, если вы возьмете в качестве примера стол в столовой, то там предметы на столе. Там может быть стакан. Там может быть тарелка. Вам нужно есть одновременно с… В общем, когда вы взаимодействуете с объектом, на самом деле вы используете еще одну вещь поверх первой. Так что происходит совмещение поведений, что и расширило это механику за пределы оригинальной концепции.

Если взглянуть на взламываемый ноутбук, то это лишь сценарий типа добраться туда, взламывать определенное время. Игрок может выбрать отмену взлома и сказать: «Окей, я прервал взлом». Или сам ноутбук горит: «Чтож, вы закончили взлом. Взаимодействие с этим объектом для вас более недоступно. Вам нужно прекратить использование.» Что означает, что ваш персонаж проиграет анимацию выхода. Так что это очень простая вводная анимация, ведущая к зацикленному действию, когда вы что-то делаете в соответствии с выбранным взаимодействием, а затем, либо вы можете выбрать выход, так как не хотите больше это делать и хотите отменить взаимодействие, либо сам объект скажет: «Чтож, вы больше не можете этого делать». Так что теперь вам нужно будет проиграть анимацию выхода. Вход, действие, выход.

Но когда речь заходит об ИИ, он может хотеть проделывать множество вещей во время взаимодействия с объектом из-за накладывающихся поведений. Это может быть верно даже для чего-то столь простого как ноутбук. Вы можете пойти за ним, вы можете сказать что-то вроде: «окей, я пойду за своим ноутбуком»… «Я сказал, что хочу взломать это – я собираюсь взломать его», но затем я скажу: «окей, на самом деле я не хочу взламывать его. Я хочу его уничтожить, так как мой взлом провалился». Так что я выбираю опцию «уничтожить» и просто приношу с собой стакан воды и поливаю ей ноутбук. И он уничтожен, и больше его нельзя использовать. Там больше нечего использовать, это уничтоженный объект.

Думаю, что код для его уничтожения в мире системы предметов 2.0 будет отдельным компонентом. Это уничтожаемый объект. Что-то обозначает его, и уже сам предмет привязывается к действию типа «Я хочу это уничтожить», проигрывается подходящая анимация, а в какой-то момент этой анимации вызывается уничтожающее поведение. Идея в том, что этот используемый компонент представляет из себя связующее звено между тем, что вы можете сделать и тем, что случится, когда вы это сделаете.

Теперь мы можем делать используемые объекты более реалистичными и естественными. Многое тут зависит от наличия различных вариаций анимации. Для начала, у нас есть сложная… если вы взгляните только на описание, у нас была система, про которую вы бы сказали: «так, вот используемый объект». У нас есть пять анимаций. Для каждой анимации мы говорим: «Эта анимация прекращается здесь, эта – здесь, а эта – здесь. Мы хотим это этой анимации того-то.» А затем ИИ выберет одну из наиболее естественных на основании того, откуда он движется и с какого направления. И постарается добиться действительно хорошего и естественного движения к используемому объекту.

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

Грегуар Андиверо – дизайнер систем

На самом деле мы подошли к проблеме с двух сторон. Одна вещь заключается в том, что нам нужно высокое качество анимации, точность воспроизведение, нужно, чтобы все хорошо выглядело и ощущалось, и мы все ближе и ближе к этому. Но другая вещь заключается в том, что нам придется создать тысячи используемых объектов, чтобы заселить аванпосты, все посадочные зоны, некоторые интерьеры, интерьеры кораблей, на планетах и так далее, на каждом из уровней Squadron 42… Мы не может позволить себе столь большую нагрузку на разработку. Нам нужно оптимизировать процесс. Нам нужно было сделать все быстро, так что мы действительно пытаемся сделать все без сучка и задоринки, то есть нам нужно было сделать так, чтобы все выглядело хорошо, но сделать быстро. Нам нужно было подойти с умом, но нужно было избежать слишком больших временных затрат или привлечения большого количества людей, или слишком большой цены для хода разработки. Фактически нам нужно быть способными сделать используемый объект на следующей день после запроса, и только тогда моя работа была бы сделана.

Дженс Линд – ведущий программист FPS

И что мы сделали вместо этого, так сказали: «Окей, давайте нам все входные анимации, а затем дайте нам что-то вроде большой группы анимаций, а затем просто извлеките движения из тех анимаций, а мы создадим точки входа по утвержденным точкам, ибо мы не хотим, чтобы взаимодействие с объектом завершалось переходом на другой объект, используемый другим персонажем, или если объект находится вне сетки навигации, так что ИИ не сможет найти к нему путь. Так что мы можем убрать все эти динамические точки… добавить их заново так, как мы действительно хотим. И если кто-то собирается добавить новую входную точку или другой стиль подхода, он просто добавляет их туда. Система выстраивает данные динамически, и чем больше у нас там вариаций, тем более естественно все будет выглядеть. Вроде того, что вы можете предпочесть добраться до объекта бегом или просто легким шагом, или, например, подойти с другой стороны, все, что будет ощущаться более естественным и даст эту вариативность, так как каждая анимация будет иметь немного собственного уникального стиля. И даже с одним и тем же используемым объектом вы можете смотреть на пять-шесть ИИ, использующих его, и каждый раз они проигрывают немного разную анимацию подхода к объекту, а когда они уже взаимодействуют, то есть вариации того, как персонаж выглядит во время взаимодействия. И это отличный способ вдохнуть больше жизни. Так что мы обеспечиваем наличие множества разных стилей сидения вместо одного, а также привносим вариации, когда они долго сидять на месте, чтобы они постоянно смещались, немного ерзали, сменяли позу. Мы надеемся, что все это привнесет более естественный вид, а другой важной вещью является то, что мы хотим убедиться, что, если вы посмотрите на что-то используемое, когда за ним персонаж, то верхняя часть его тела остается доступной, и он все еще сможет делать разные вещи, например, оглядываться. Знаете, если игрок войдет в поле зрения, они, наверное, могут посмотреть на него, или кивнуть кому-то проходящему мимо, даже если они уже заняты проигрыванием того, что должно быть взаимодействием с используемым объектом.

Грегуар Андиверо – дизайнер систем

Одна из вещей, через которую прошли используемые объекты – процесс провалов с ними, о котором я улыбаюсь, но который был действительно болезненным. Однако, хорошая вещь заключается в том, что это лишь подчеркнуло, насколько интерактивен процесс, особенно когда мы пытались раздвинуть рамки, чтобы сделать что-то новое и свежее, что-то, чего раньше никогда не делали. В процессе мы должны опробовать вещи и иногда должны выбросить что-то, что мы думали сработает, а не сработало, и наоборот добавить несколько вещей, о которых мы думали, как о необязательных, а они оказались действительно нужны. И что действительно хорошего вышло с используемыми объектами, так это то, что после первого провала мы внедрили более прямой подход, когда мы что-то пробуем, проверяем, немного прогоняем это, и если это не работает, то мы еще что-то изменяем. И мы просто стараемся охватить каждую проблему, которая попадается нам на пути, одну за другой, но в рамках единой системы, стараясь развить ее, чтобы она охватила все, вместо того, чтобы снова и снова расширять ее, пока она не рухнет.

Дженс Линд – ведущий программист FPS

Есть список с крупнейшими прорывами с точки зрения команды. Я считаю, что самый крупный, лично для меня, был, когда мы смогли избавиться от ячейки соответствия. Вместо того, чтобы говорить: «Это точка входа, это – анимация, которая проигрывается» мы можем сказать: «Вот группа анимаций, которая позволит тебе подойти к используемому объекту». Мы можем динамически выстраивать все данные, которые нужны для выбора лучшей анимации в текущей ситуации. И то же самое касается и обратного. Типа: «Я собираюсь идти… Я собираюсь вылезть из этого кресла» или «Сейчас я собираюсь прекратить взлом, и я собираюсь пойти налево». Знаете, обеспечиваем такую мелочь вроде этой… обеспечиваем то, чтобы выход сразу выводил их в направлении, в котором он собирается двигаться. Это просто огромное преимущество в плане масштабирования всего этого, предоставляющее необходимую точность воспроизведения, но затем другие вещи, которые мы используем, мы стараемся по возможности использовать инверсивную кинематику, чтобы все было немного различалось, так что вы не должны сидеть в кресле прямо идеально. И вам не нужно идеально подходить к консоли взлома, система регулярно позволяет корректировки крайностей. Так что, если вашей руке надо достичь кружки, мы хотим убедиться, что не заставляем вас находиться на идеальной линии с этой кружкой. Эта кружка может быть немного сдвинута, она может быть несколько иначе развернута, и тут мы можем использовать инверсивную кинематику, чтобы скорректировать ее в руке, что дает естественный вид и ощущение, а затем просто стараемся уменьшить расхождение в повороте насколько возможно. И мы это используем также тогда, когда позиционируем что-то и нам нужна хорошая точность. Мы всегда стараемся усреднить коррекцию за долгий период времени, чтобы вы не увидели что-то вроде того, когда разрыв в пять сантиметров, вы не захотите, чтобы один кадр сказал: «теперь исправляем на пять сантиметров», так как всегда 60 кадров в секунду или пять секунд, пяти сантиметровый разрыв на одном из кадров будет заметен. И мы как бы можем сгладить это. Насколько возможно стараемся управлять этим на основе данных. Даем дизайнерам возможность сказать: «пусть позиция сдвигается за этот период времени». То же самое и с инверсивной кинематикой, когда мы ее задействуем.

У нас есть два типа инверсивной кинематики, которые мы стараемся использовать. У нас есть инверсивная кинематика, управляемая анимацией, которая под контролем проигрывающего анимацию. Он говорит: «это, ты можешь использовать это, ок?». Вначале они говорят, можно ли использовать это или нет, а затем они также распределяют входные и выходные точки, используют диалог для оружия. Вроде того, когда вы хотите перезарядить оружие, вы должны убрать левую руку с оружия, но вы не хотите, чтобы она прошла сквозь магазин. Нужно, чтобы она постепенно опустилась, но при этом вы можете не знать, где она находится, так как держите оружие несколько иначе, так как установили на оружие какой-то эксклюзивный обвес, которого не было в оригинальной анимации. А мы уже откорректировали руку, чтобы она корректно хватала оружие, а затем другой тип инверсионной кинематики, который больше управляется дизайном, который может сказать что-то вроде: «так, на этом этапе анимации я хочу, чтобы руки начали двигаться к этой точке, этой кружке, этой части его лица, завершили салют…» Этот тип немного подправляет то, куда движется рука, это происходит в виде дополнительного слоя поверх изначальной анимации. Так что есть анимация, а затем есть данные от дизайнера, в которых говорится, как мы собираемся это совместить, как разъединить обратно, какая рука двигается, и куда она движется.

Грегуар Андиверо – дизайнер систем

Действительно интересна человеческая сторона работы над системой используемых объектов. Я – член команды здесь во Франкфурте. Есть Джейме из Соединенного Королевства, а команда Джена вообще оказала помощь во многом. Еще Кёртис работает над объектами и геометрией, а еще часто оказывает помощь также из UK, но мы также работает с Брайаном Брювером из Остина, что в США.

Брайан Брювер – ведущий специалист по анимации

Сегодня мы вроде как собираемся заняться захватом для нашей системы используемых объектов. Мы будем проделывать штуки, вроде открытия дверей. Мы уже закончили рассчеты размеров наших дверей и выяснили, что нам понадобится для этого. И мы наконец определились с размерами туалета. Так что мы захватили парочку небольших движений, которые нам были нужны для «смывания» в нашей системе туалетов. Простите, не сдержался. Мы делаем небольшие импровизированные съемки вроде этого, чтобы захватить небольшие кусочки того, что мы переделывали, когда осознали, что нам нужно изучить и разработать все это. У нас есть кое-что, что мы захватывали, называемое переходами. Это небольшие анимации, которые помогают нам с переходами от одной анимации к следующей. Это позволяет нам, когда мы проводим крупные съемки в Imaginarium Studios или поднимаем нашу систему целиком, уже иметь эти небольшие переходы, которые помогают нам переходить к этим определенным движениям и от них.

Дженс Линд – ведущий программист FPS

Некоторое из используемых объектов довольно сложны, так что мы хотим сохранять последовательность взаимодействий. И мы можем, например, захотеть сказать: «Возьми поднос». И когда персонаж доходит до использования раздачи подносов, он фактически воспроизводит целиковую последовательность. Ибо он подходит, получает поднос, получает кружку, получает тарелку, получает нож с вилкой, и все это в рамках одной большой анимации, в течении которой персонаж как бы должен стать владельцем кружки, владельцем тарелки, владельцем вилки, владельцем ножа, а затем освободить маркер владения этими объектам. А положение этих объектов тоже может различаться, если персонаж не прошагал весь путь или подошел под немного иным углом. Так что каждый раз, когда персонаж касается одного из этих объектов, мы можем захотеть проиграть небольшую корректирующую анимацию или сгенерированный фикс, чтобы достичь объекта. Вроде того, как вы прочерчиваете линию, но вся идея с используемыми объектами о том, что этого делать не нужно. Все должно быть настолько масштабируемым, что, пока мы не достигли точки, говорим: «Так, это слишком далеко. А теперь это будет слишком долгим для удержания. Давайте отмасштабируем это назад и упростим». Но до тех пор, пока мы можем описать все это в виде данных для кода, надеюсь, не должно быть большой разницы.

Сэнди Гардинер – Вице-Президент по маркетингу | Крис Робертс – Основатель и Исполнительный Директор

КР: Как вы можете видеть, используемые объекты в будущем будут ключевой частью вселенной. И вот почему команда вложила столько усилий в создание максимально мощной системы, и у нас все еще много работы над функциональностью, так как возможность взаимодействия с широким разнообразием объектов и локаций только добавит реализма, которого мы пытаемся достичь в Star Citizen и Squadron 42.

СГ: На сегодня это все, за большей информацией о процессе разработки обратитесь к нашему графику разработки, который будет обновлен завтра.

КР: Да, спасибо всем нашим подписчикам за их поддержку, мы можем делать Around the Verse, Bugsmashers и прочие наши отличные шоу лишь благодаря вашей поддержке, так что спасибо огромное.

СГ: Да, и спасибо всем нашим бекерам за их интерес и энтузиазм в наблюдении за разработкой игры. Это то, что сделало Star Citizen возможным.

КР: Да, именно так, и также спасибо вам за это. До следующей недели…

Увидимся во Вселенной!