Skip to content
This repository has been archived by the owner on May 4, 2024. It is now read-only.

Latest commit

 

History

History
57 lines (31 loc) · 4.19 KB

File metadata and controls

57 lines (31 loc) · 4.19 KB

Захват движения тела и анимирование в Unity

Rus | Eng

Описание

В этой проекте демонстрируется, как использовать Python с захватом изображений OpenCV для достижения:

* Обнаружение движения человека и распознавания; 

* Последующей передачи данных в Unity в режиме реального времени;

* Анимирование персонажей при помощи полученных данных и IK Animation. 

Проект состоит из двух составляющих

  • Motion Capture - эта часть предназначена для того, чтобы распознавали человека, обрабатывали значения и передавали их клиентам. Реализовано на python. В config.ini хранится информация о том, по какому ip адресу и порту должна передаваться информация и нужно ли отрисовать в реальном времени изображение с камеры с обработкой захвата точек.

  • Body control 3D model - тут мы уже занимаемся получением данных о точках тела и дальнейшим использованием. Реализовано на Unity. В файле StreamingAssets/config.json хранится информация о том, по какому ip адресу и порту должна получаться информация информация.

Сначала должен запускаться Motion Capture проект, а только потом Body control 3D model иначе Unity зависает. При завершении сначала приостановите работу Body control 3D model, а потом Motion Capture.

Схема захвата точек на теле человека

scheme

Описание демонстрационных проектов в Unity

Пример 1. Примитивы

При старте создаются сферы которые служат примером точек захвата, так же создаются линии которые соединяют определённые точки захватом, благодаря этому получается подобие человеческого тела.

Контроллер который получает данные по сокету, обрабатывает полученные данные и перемещает сферы согласно их позиции полученными из данных.

Пример 1. Примитивы

Пример 2. IK-анимация

В данном примере используется готовая модель Unity-chan. В модели настроены Rig рук, ног, головы, так же модель перемещается относительно позиции захватываемого человека по центру камеры.

Контроллер который получает данные по сокету, обрабатывает полученные данные и перебирает настроенные точки и перемещает их, каждая такая точка имеет информацию о её индексе и хранит Transform объекта. Так же происходит перемещение основного тела, вычисляется центр при помощи математических подсчётов и координат тела и ног.

Пример 2. IK-анимация

Информация

Автор и разработчик

  • Кирилл Шутов (ShutovKS), Россия

Лицензия

MIT Лицензия