Переработка анимации

Сообщение от Šimon Kolčiter, среда, 18 февраля 2014

ОТ: Šimon Kolčiter, программиста отдела программирования
КОМУ: Пользователям версии Arma 3 для разработчиков
ТЕМА: Распутывая паутину: улучшение системы анимации в Arma 3.

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

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

ЖЕЛАЕМЫЕ ИЗМЕНЕНИЯ
Чтобы добиться этого, мы реализовали систему на базе “желаемых запросов”, то есть движок теперь решает какое сочетание стойка/оружие выбрано и посылает соответствующую команду системе анимации, которая, в свою очередь, выбирает новую анимацию. Команда может содержать желаемую категорию оружия (винтовка, пистолет, гранатомет, бинокль, без оружия), желаемую стойку (стоя, гуськом, ползком) и обращение с оружием, определяемое текущим состоянием ИИ (безопасный, настороженный, с опущенным оружием, поднятое боевое положение).

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

СЛОЖНЫЕ ОТНОШЕНИЯ
Прежде чем мы приступили к полной переделке всего, мы знали, что отношения между ИИ и анимацией были довольно сложными. Чтобы подступить к этой проблеме, мы начали с постепенного внедрения новой системы - сперва оружие, затем стойки, затем позы - шаг-за-шагом переделывая старую систему в новую. Впрочем, мы быстро поняли, что некоторые фишки сильно зависят друг от друга и должны быть изменены одним махом. Получалось, что мы улучшали, дорабатывали какую-нибудь функцию так, чтобы она работала (некорректно) с 10 другими, только чтобы снова опять все переделать - это была просто пустая трата времени.

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

РИСК/НАГРАДА
Хотя такая работа и не без риска (например, недавно открытый в версии для разработчиков баг с невозможностью ИИ сменить стойку после входа в боевой режим), мы полагаем, что очень важно продолжать поддерживать и развивать систему. Это наша обязанность - убедиться, что игра “играбельна”, и мы приносим извинения за возможные неудобства.

Пока наши видимые успехи довольно скромные, но мы надеемся, что продемонстрируем на что способны, с выходом обновленных и новых возможностей уже в ближайшем будущем!