Создать убедительную анимацию персонажа, который не просто машет руками в воздухе, а реально берёт чашку, открывает дверь или несёт коробку - задача, где большинство инструментов сдаются уже на этапе контакта пальцев с предметом. CoDA решает эту проблему через текстовый промпт: описываешь действие, получаешь движение всего тела, где руки не проваливаются сквозь объекты, а пальцы естественно обхватывают поверхности.
Как работает генерация движений с объектами
Модель оперирует тремя диффузионными компонентами - отдельно для тела, левой и правой руки. Это позволяет координировать корпус и конечности так, чтобы движения выглядели физически достоверно: если персонаж тянется к ручке двери, плечи разворачиваются под нужным углом, а вес тела естественно смещается.
Ключевая фишка - унифицированное представление через BPS (базовые наборы точек). Система анализирует геометрию объекта и вычисляет оптимальные точки контакта для ладоней и пальцов. Благодаря этому рука не зависает рядом с предметом, а реально обхватывает его с учётом формы.
Движения на основе данных о руках
CoDA умеет восстанавливать позу всего тела, даже если входные данные содержат информацию только о положении рук. Например, при анимации персонажа, который открывает ящик стола, модель самостоятельно подстраивает наклон спины, сгиб коленей и поворот головы - всё, что нужно для естественного выполнения действия.
Совмещение ходьбы и манипуляций
Можно задать сценарий, где персонаж идёт и одновременно взаимодействует с предметом - открывает крышку коробки на ходу или несёт поднос. Система синхронизирует локомоцию и движения рук, сохраняя баланс и реалистичность. Это избавляет от необходимости вручную сводить анимацию ходьбы и жестов в редакторе.
Модель доступна на GitHub в открытом доступе - можно изучить архитектуру, запустить примеры или адаптировать под свои задачи. Для тех, кто работает с 3D-персонажами в играх, VR или анимационных проектах, CoDA закрывает боль с ручной настройкой взаимодействия рук и объектов.