Код документа: RU2544770C2
УРОВЕНЬ ТЕХНИКИ
Множество вычислительных приложений, таких как компьютерные игры, мультимедийные приложения и т.п., включают в себя аватары или персонажей, которые анимируются с использованием типичных способов захвата движения. Например, при разработке игры в гольф профессиональный гольфист может быть приглашен в студию, имеющую оборудование для захвата движения, включающее в себя, например, множество камер, направленных в конкретную точку в студии. Профессиональный гольфист затем может быть одет в костюм для захвата движения, имеющий множество точечных индикаторов, которые могут конфигурироваться и отслеживаться посредством камер, так что камеры могут захватывать, например, движения при игре в гольф профессионального гольфиста. Движения затем могут применяться к аватару или персонажу во время разработки игры в гольф. При проведении игры в гольф аватар или персонаж затем могут быть анимированы с помощью движений профессионального гольфиста во время проведения игры в гольф. К сожалению, типичные способы захвата движения являются затратными, привязаны к разработке конкретного приложения и не включают в себя движения, ассоциированные с фактическим игроком или пользователем приложения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В данном документе раскрыты системы и способы для смешивания анимаций. Например, в одном варианте осуществления живое движение пользователя может захватываться, и предварительно записанное движение, к примеру предварительно записанное сгенерированное актером движение, предварительно записанное движение пользователя и/или программно-управляемое преобразование может быть принято. Живое движение затем может применяться к первой части виртуального персонажа, и предварительно записанное движение может применяться ко второй части виртуального персонажа, так что виртуальный персонаж может быть анимирован с помощью комбинации живых и предварительно записанных движений. Согласно одному варианту осуществления, живое движение и/или предварительно записанное движение может применяться к виртуальному персонажу в ответ на прием телодвижения от пользователя, которое может быть ассоциировано с командой анимации. Дополнительно, виртуальный персонаж может быть анимирован с помощью комбинации предварительно записанных движений, к примеру предварительно записанного движения пользователя и предварительно записанной сгенерированной актером анимации, например, посредством применения предварительно записанного движения пользователя к первой части виртуального персонажа и применения предварительно записанной сгенерированной актером анимации ко второй части виртуального персонажа.
Данная сущность изобретения предоставлена для того, чтобы представлять в упрощенной форме выбор концепций, которые дополнительно описаны ниже в подробном описании. Эта сущность не имеет намерением ни то, чтобы идентифицировать ключевые признаки или важнейшие признаки заявленного предмета изобретения, ни то, чтобы использоваться так, что она ограничивает объем заявленного предмета изобретения. Кроме того, заявленный предмет изобретения не ограничен реализациями, которые разрешают какие-либо или все недостатки, отмеченные в любой части данного раскрытия сущности.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1A и 1B иллюстрируют примерный вариант осуществления системы распознавания, анализа и отслеживания целей при проведении игры пользователем.
Фиг.2 иллюстрирует примерный вариант осуществления устройства захвата, которое может быть использовано в системе распознавания, анализа и отслеживания целей.
Фиг.3 иллюстрирует примерный вариант осуществления вычислительного окружения, которое может быть использовано для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, отображаемого посредством системы распознавания, анализа и отслеживания целей.
Фиг.4 иллюстрирует другой примерный вариант осуществления вычислительного окружения, которое может быть использовано для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, отображаемого посредством системы распознавания, анализа и отслеживания целей.
Фиг.5 описывает блок-схему последовательности операций примерного способа для генерирования и применения файла захвата движения пользователя.
Фиг.6 иллюстрирует примерный вариант осуществления изображения, которое может включать в себя человеческую цель, ассоциированную с пользователем.
Фиг.7 иллюстрирует примерный вариант осуществления модели, которая может быть сгенерирована для человеческой цели, ассоциированной с пользователем.
Фиг.8A-8B иллюстрируют примерный вариант осуществления модели, ассоциированной с пользователем, который может захватываться в различные моменты времени в файле захвата движения.
Фиг.9A-9B иллюстрируют примерный вариант осуществления модели для виртуального персонажа, который может быть анимирован на основе модели в различные моменты времени.
Фиг.10A-10B иллюстрируют примерный вариант осуществления виртуального персонажа, который может быть анимирован.
Фиг.11A-11F иллюстрируют другой примерный вариант осуществления виртуального персонажа, который может быть анимирован.
Фиг.12A-12B иллюстрируют другой примерный вариант осуществления виртуального персонажа игры, который может быть анимирован.
ПОДРОБНОЕ ОПИСАНИЕ ИЛЛЮСТРАТИВНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Как описано в данном документе, пользователь может управлять приложением, запущенным в вычислительном окружении, таком как игровая приставка, компьютер и т.п., и/или может анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., посредством выполнения одного или более телодвижений и/или перемещений. Согласно одному варианту осуществления, телодвижения и/или перемещения могут быть приняты, например, посредством устройства захвата. Например, устройство захвата может захватывать изображение глубины сцены. В одном варианте осуществления, устройство захвата может определять то, соответствует или нет одна или более целей либо объектов в сцене человеческой цели, к примеру, пользователю. Каждая цель или объект, который совпадает (соответствует) с человеческой целью, затем может сканироваться, чтобы сгенерировать модель, такую как скелетная модель, ячеистая модель человека и т.п., ассоциированную с ним. В примерном варианте осуществления, модель может отслеживаться, файл захвата движения отслеживаемой модели может генерироваться, виртуальный персонаж или объект, ассоциированный с моделью пользователя, может подготавливаться посредством рендеринга, виртуальный персонаж или объект может быть анимирован с помощью живых движений, ассоциированных с моделью пользователя, и/или предварительно записанных движений, и/или может определяться то, какие управляющие воздействия выполнять в приложении, запущенном в компьютерном окружении, на основе, например, отслеживаемой модели.
Фиг. 1A и 1B иллюстрируют примерный вариант осуществления конфигурации системы 10 распознавания, анализа и отслеживания целей при проведении пользователем 18 боксерской игры. В примерном варианте осуществления, система 10 распознавания, анализа и отслеживания целей может быть использована для того, чтобы распознавать, анализировать и/или отслеживать человеческую цель, к примеру, пользователя 18.
Как показано на фиг. 1A, система 10 распознавания, анализа и отслеживания целей может включать в себя вычислительное окружение 12. Вычислительное окружение 12 может быть компьютером, игровой приставкой или устройством и т.п. Согласно примерному варианту осуществления, вычислительное окружение 12 может включать в себя аппаратные компоненты и/или программные компоненты, так что вычислительное окружение 12 может быть использовано для того, чтобы запускать приложения, к примеру игровые приложения, неигровые приложения и т.п. В одном варианте осуществления, вычислительное окружение 12 может включать в себя процессор, к примеру стандартизированный процессор, специализированный процессор, микропроцессор и т.п., который может выполнять инструкции, включающие в себя, например, инструкции для захвата живого движения пользователя, приема предварительно записанного движения, применения живого движения к первой части виртуального объекта и предварительно записанного движения ко второй части виртуального объекта, либо любые другие подходящие инструкции, что подробнее описано ниже.
Как показано на фиг. 1A, система 10 распознавания, анализа и отслеживания целей дополнительно может включать в себя устройство 20 захвата. Устройство 20 захвата может быть, например, камерой, которая может быть использована для того, чтобы визуально отслеживать одного или более пользователей, к примеру пользователя 18, так что телодвижения и/или перемещения, выполняемые одним или более пользователями, могут захватываться, анализироваться и отслеживаться, чтобы выполнять одно или более управляющих воздействий или действий в приложении и/или анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., как подробнее описано ниже.
Согласно одному варианту осуществления, система 10 распознавания, анализа и отслеживания целей может подключаться к аудиовизуальному устройству 16, такому как телевизионный приемник, монитор, телевизионный приемник высокой четкости (HDTV) и т.п., который может предоставлять видео и/или аудиоигры либо приложения пользователю, к примеру пользователю 18. Например, вычислительное окружение 12 может включать в себя видеоадаптер, к примеру видеокарту, и/или аудиоадаптер, к примеру звуковую карту, которая может предоставлять аудиовизуальные сигналы, ассоциированные с игровым приложением, неигровым приложением и т.п. Аудиовизуальное устройство 16 может принимать аудиовизуальные сигналы из вычислительного окружения 12 и затем может выводить видео и/или аудиоигры либо приложения, ассоциированного с аудиовизуальными сигналами, пользователю 18. Согласно одному варианту осуществления, аудиовизуальное устройство 16 может подключаться к вычислительному окружению 12, например, через S-Video-кабель, коаксиальный кабель, HDMI-кабель, DVI-кабель, VGA-кабель и т.п.
Как показано на фиг. 1A и 1B, система 10 распознавания, анализа и отслеживания целей может быть использована для того, чтобы распознавать, анализировать и/или отслеживать человеческую цель, к примеру, пользователя 18. Например, пользователь 18 может отслеживаться с использованием устройства 20 захвата, так что телодвижения и/или перемещения пользователя 18 могут захватываться, чтобы анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., и/или могут быть интерпретированы в качестве управляющих воздействий, которые могут быть использованы для того, чтобы влиять на приложение, запущенное посредством компьютерного окружения 12. Таким образом, согласно одному варианту осуществления, пользователь 18 может двигать своим телом, чтобы управлять приложением и/или анимировать виртуальный объект.
Как показано на фиг. 1A и 1B, в примерном варианте осуществления, приложением, запущенным в вычислительном окружении 12, может быть боксерская игра, которую может проводить пользователь 18. Например, вычислительное окружение 12 может использовать аудиовизуальное устройство 16, чтобы предоставлять визуальное представление оппонента 38 по боксерскому поединку пользователю 18. Вычислительное окружение 12 также может использовать аудиовизуальное устройство 16, чтобы предоставлять визуальное представление аватара игрока 40, которым пользователь 18 может управлять с помощью своих перемещений. Например, как показано на фиг. 1B, пользователь 18 может наносить удар в физическом пространстве, чтобы заставлять аватар игрока 40 наносить удар в игровом пространстве. Таким образом, согласно примерному варианту осуществления, компьютерное окружение 12 и устройство 20 захвата системы 10 распознавания, анализа и отслеживания целей могут быть использованы для того, чтобы распознавать и анализировать удар пользователя 18 в физическом пространстве так, что удар может быть интерпретирован в качестве игрового управляющего воздействия аватара игрока 40 в игровом пространстве, и/или движение при ударе может быть использовано для того, чтобы анимировать аватар игрока 40 в игровом пространстве.
Другие перемещения пользователем 18 также могут быть интерпретированы в качестве других управляющих воздействий или действий и/или использованы для того, чтобы анимировать аватар игрока, к примеру управляющих воздействий, чтобы отскакивать, уклоняться, уворачиваться, блокировать, наносить резкий удар рукой или множество ударов различной силы. Кроме того, некоторые перемещения могут быть интерпретированы в качестве управляющих воздействий, которые могут соответствовать действиям, отличным от управления аватаром игрока 40. Например, игрок может использовать перемещения для того, чтобы завершать, приостанавливать или сохранять игру, выбирать уровень, просматривать рекордное количество очков, общаться с другом и т.д. Дополнительно, полный спектр движения пользователя 18 может быть доступен, использован и проанализирован любым подходящим способом, чтобы взаимодействовать с приложением.
В примерных вариантах осуществления, человеческая цель, к примеру, пользователь 18 может иметь объект. В таких вариантах осуществления, пользователь электронной игры может держать объект так, что движения игрока и объекта могут быть использованы для того, чтобы регулировать и/или управлять параметрами игры. Например, движение игрока, держащего ракетку, может отслеживаться и использоваться для управления экранной ракеткой в электронной спортивной игре. В другом примерном варианте осуществления, движение игрока, держащего объект, может отслеживаться и использоваться для управления экранным оружием в электронной боевой игре.
Согласно другим примерным вариантам осуществления, система 10 распознавания, анализа и отслеживания целей дополнительно может быть использована для того, чтобы интерпретировать целевые перемещения в качестве управляющих воздействий операционной системы и/или приложения, которые находятся вне области игр. Например, фактически любой управляемый аспект операционной системы и/или приложения может управляться посредством перемещений цели, к примеру пользователя 18.
Фиг. 2 иллюстрирует примерный вариант осуществления устройства 20 захвата, которое может быть использовано в системе 10 распознавания, анализа и отслеживания целей. Согласно примерному варианту осуществления, устройство 20 захвата может быть выполнено с возможностью захватывать видео с информацией глубины, включающей в себя изображение глубины, которое может включать в себя значения глубины, через любую подходящую технологию, включающую в себя, например, время пролета, структурированный свет, стереоизображение и т.п. Согласно одному варианту осуществления, устройство 20 захвата может организовать информацию глубины в "Z-уровни", или уровни, которые могут быть перпендикулярными оси Z, идущей от камеры глубины вдоль ее линии видимости.
Как показано на фиг. 2, устройство 20 захвата может включать в себя компонент 22 камеры для съемки изображений. Согласно примерному варианту осуществления, компонент 22 камеры для съемки изображений может быть камерой для съемки глубины, которая может захватывать изображение глубины сцены. Изображение глубины может включать в себя двумерную пикселную область захватываемой сцены, причем каждый пиксел в двумерной пикселной области может представлять значение глубины, к примеру длину или расстояние, например, в сантиметрах, миллиметрах и т.п. объекта в захватываемой сцене от камеры.
Как показано на фиг. 2, согласно примерному варианту осуществления, компонент 22 камеры для съемки изображений может включать в себя компонент 24 инфракрасного света, трехмерную камеру 26 и RGB-камеру 28, которые могут быть использованы для того, чтобы захватывать изображение глубины сцены. Например, при анализе на основе времени пролета компонент 24 инфракрасного света устройства 20 захвата может испускать инфракрасный свет на сцену и затем может использовать датчики (не показаны), чтобы обнаруживать свет обратного рассеяния от поверхности одной или более целей и объектов в сцене с использованием, например, трехмерной камеры 26 и/или RGB-камеры 28. В некоторых вариантах осуществления, импульсный инфракрасный свет может быть использован, так что время между исходящим световым импульсом и соответствующим входящим световым импульсом может измеряться и использоваться для того, чтобы определять физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах в сцене. Дополнительно, в других примерных вариантах осуществления фаза исходящей световой волны может сравниваться с фазой входящей световой волны, чтобы определять сдвиг фаз. Сдвиг фаз затем может быть использован для того, чтобы определять физическое расстояние от устройства захвата до конкретного местоположения на целях или объектах.
Согласно другому примерному варианту осуществления, анализ времени прохождения может быть использован для того, чтобы косвенно определять физическое расстояние от устройства 20 захвата до конкретного местоположения на целях или объектах посредством анализа интенсивности отраженного луча света во времени через различные способы, включающие в себя, например, формирование изображений на основе световых импульсов.
В другом примерном варианте осуществления, устройство 20 захвата может использовать структурированный свет, чтобы захватывать информацию глубины. При таком анализе шаблонный свет (т.е. свет, отображаемый в качестве известного шаблона, к примеру сетчатого шаблона или полоскового шаблона) может проецироваться на сцену, например, через компонент 24 инфракрасного света. После удара о поверхность одной или более целей или объектов в сцене шаблон может становиться деформированным в ответ. Такое искажение шаблона может захватываться, например, посредством трехмерной камеры 26 и/или RGB-камеры 28 и затем может анализироваться, чтобы определять физическое расстояние от устройства захвата до конкретного местоположения на целях или объектах.
Согласно другому варианту осуществления, устройство 20 захвата может включать в себя две или более физически разделенных камеры, которые могут просматривать сцену с различных углов, чтобы получать визуальные стереоданные, которые могут разрешаться, чтобы генерировать информацию глубины.
Устройство 20 захвата дополнительно может включать в себя микрофон 30. Микрофон 30 может включать в себя преобразователь или датчик, который может принимать и преобразовывать звук в электрический сигнал. Согласно одному варианту осуществления, микрофон 30 может быть использован для того, чтобы уменьшать обратную связь между устройством 20 захвата и вычислительным окружением 12 в системе 10 распознавания, анализа и отслеживания целей. Дополнительно, микрофон 30 может быть использован для того, чтобы принимать аудиосигналы, которые также могут предоставляться пользователем, чтобы управлять приложениями, такими как игровые приложения, неигровые приложения и т.п., которые могут быть запущены посредством вычислительного окружения 12.
В примерном варианте осуществления, устройство 20 захвата дополнительно может включать в себя процессор 32, который может поддерживать функциональную связь с компонентом 22 камеры для съемки изображений. Процессор 32 может включать в себя стандартизированный процессор, специализированный процессор, микропроцессор и т.п., который может выполнять инструкции, включающие в себя, например, инструкции для захвата живого движения пользователя, приема предварительно записанного движения, применения живого движения к первой части виртуального объекта и предварительно записанного движения ко второй части виртуального объекта, либо любые другие подходящие инструкции, что подробнее описано ниже.
Устройство 20 захвата дополнительно может включать в себя компонент 34 памяти, который может сохранять инструкции, которые могут быть выполнены посредством процессора 32, изображения или кадры изображений, захватываемых посредством трехмерной камеры или RGB-камеры, или любую другую подходящую информацию, изображения и т.п. Согласно примерному варианту осуществления, компонент 34 запоминающего устройства может включать в себя оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), кэш, флэш-память, жесткий диск или любой другой подходящий компонент хранения данных. Как показано на фиг. 2, в одном варианте осуществления, компонент 34 памяти может быть отдельным компонентом, поддерживающим связь с компонентом 22 захвата изображений и процессором 32. Согласно другому варианту осуществления, компонент 34 памяти может быть интегрирован в процессор 32 и/или компонент 22 захвата изображений.
Как показано на фиг. 2, устройство 20 захвата может поддерживать связь с вычислительным окружением 12 через линию 36 связи. Линия 36 связи может быть проводным подключением, в том числе, например, USB-подключением, Firewire-подключением, подключением по Ethernet-кабелю и т.п., и/или беспроводным подключением, таким как беспроводное подключение по стандарту 802.11b, g, a или n. Согласно одному варианту осуществления, вычислительное окружение 12 может предоставлять синхросигнал в устройство 20 захвата, который может быть использован для того, чтобы определять, когда захватывать, например, сцену через линию 36 связи.
Дополнительно, устройство 20 захвата может предоставлять информацию глубины и изображения, захватываемые, например, посредством трехмерной камеры 26 и/или RGB-камеры 28, и/или скелетную модель, которая может генерироваться посредством устройства 20 захвата, в вычислительное окружение 12 через линию 36 связи. Вычислительное окружение 12 затем может использовать модель, информацию глубины и захватываемые изображения, например, для того, чтобы управлять приложением, таким как игра или текстовый процессор, и/или анимировать виртуального персонажа, такого как экранный персонаж, аватар, экранный объект и т.п. Например, как показано на фиг. 2, вычислительное окружение 12 может включать в себя библиотеку 190 телодвижений. Библиотека 190 телодвижений может включать в себя набор фильтров телодвижений, каждый из которых содержит информацию относительно телодвижения, которое может выполняться посредством скелетной модели (по мере того, как пользователь перемещается). Данные, захватываемые посредством камер 26, 28 и устройства 20 захвата в форме скелетной модели, и перемещения, ассоциированные с ним, могут сравниваться с фильтрами телодвижений в библиотеке 190 телодвижений, чтобы идентифицировать, когда пользователь (как представлено посредством скелетной модели) выполняет одно или более телодвижений. Эти телодвижения могут быть ассоциированы с различными управляющими воздействиями приложения. Таким образом, вычислительное окружение 12 может использовать библиотеку 190 телодвижений для того, чтобы интерпретировать перемещения скелетной модели и управлять приложением на основе перемещений.
Фиг.3 иллюстрирует примерный вариант осуществления вычислительного окружения, которое может быть использовано для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., отображаемый посредством системы распознавания, анализа и отслеживания целей. Вычислительное окружение, к примеру вычислительное окружение 12, описанное выше относительно фиг. 1A-2, может быть мультимедийной приставкой 100, к примеру игровой приставкой. Как показано на фиг. 3, мультимедийная приставка 100 имеет центральный процессор (CPU) 101, имеющий кэш 102 первого уровня, кэш 104 второго уровня и флэш-ROM (постоянное запоминающее устройство) 106. Кэш 102 первого уровня и кэш 104 второго уровня временно сохраняют данные и, следовательно, сокращают число циклов доступа к памяти, тем самым повышая скорость обработки и пропускную способность. CPU 101 может быть предоставлен с несколькими ядрами, и, таким образом, с дополнительными кэшами 102 и 104 первого и второго уровней. Флэш-ROM 106 может сохранять исполняемый код, который загружается во время первоначальной фазы процесса загрузки, когда мультимедийная приставка 100 включается.
Блок 108 графической обработки (GPU) и видеокодер/видеокодек (кодер/декодер) 104 формируют конвейер видеообработки для высокоскоростной графической обработки с высоким разрешением. Данные передаются из блока 108 графической обработки в видеокодер/видеокодек 114 через шину. Конвейер видеообработки выводит данные в A/V-(аудио/видео) порт 140 для передачи на телевизионный приемник или другой дисплей. Контроллер 110 памяти соединен с GPU 108, чтобы упрощать доступ процессора к различным типам памяти 112, таким как, но не только, RAM (оперативное запоминающее устройство).
Мультимедийная приставка 100 включает в себя контроллер 120 ввода-вывода, контроллер 122 управления системой, блок 123 аудиообработки, контроллер 124 сетевого интерфейса, первый USB-хост-контроллер 126, второй USB-контроллер 128 и подсистему 130 ввода-вывода на передней панели, которые предпочтительно реализованы в модуле 118. USB-контроллеры 126 и 128 служат в качестве хостов для периферийных контроллеров 142(1)-142(2), беспроводного адаптера 148 и внешнего запоминающего устройства 146 (к примеру, флэш-памяти, внешнего накопителя на CD/DVD ROM, съемных носителей и т.д.). Сетевой интерфейс 124 и/или беспроводной адаптер 148 предоставляют доступ к сети (например, к Интернету, домашней сети и т.д.) и может быть любым из широкого множества различных компонентов проводных или беспроводных адаптеров, включающих в себя Ethernet-карту, модем, Bluetooth-модуль, кабельный модем и т.п.
Системная память 143 предусмотрена для того, чтобы сохранять данные приложений, которые загружаются во время процесса загрузки. Предусмотрен накопитель 144 на носителях, и он может содержать накопитель на DVD/CD, жесткий диск или другой накопитель на съемных носителях и т.д. Накопитель 144 на носителях может быть внутренним или внешним для мультимедийной приставки 100. Данные приложений могут быть доступными через накопитель 144 на носителях для выполнения, воспроизведения и т.д. посредством мультимедийной приставки 100. Накопитель 144 на носителях подключается к контроллеру 120 ввода-вывода посредством шины, такой как шина Serial ATA или другое высокоскоростное подключение (к примеру, IEEE 1394).
Контроллер 122 управления системой предоставляет множество служебных функций, связанных с обеспечением работоспособности мультимедийной приставки 100. Блок 123 аудиообработки и аудиокодек 132 формируют соответствующий конвейер аудиообработки с высокой точностью и стереообработкой. Аудиоданные передаются между блоком 123 аудиообработки и аудиокодеком 132 через линию связи. Конвейер аудиообработки выводит данные в A/V-порт 140 для воспроизведения посредством внешнего аудиопроигрывателя или устройства, имеющего аудиовозможности.
Подсистема 130 ввода-вывода на передней панели поддерживает функциональность кнопки 150 включения питания и кнопки 152 выброса, а также множества светодиодов (светоизлучающих диодов) или других индикаторов, размещенных на внешней поверхности мультимедийной приставки 100. Модуль 136 системного источника питания предоставляет питание в компоненты мультимедийной приставки 100. Вентилятор 138 охлаждает схему внутри мультимедийной приставки 100.
CPU 101, GPU 108, контроллер 110 памяти и различные другие компоненты в мультимедийной приставке 100 взаимосвязаны через одну или более шин, включающих в себя последовательные и параллельные шины, шину запоминающего устройства, периферийную шину и процессорную или локальную шину, с использованием любой из множества шинных архитектур. В качестве примера, такие архитектуры могут включать в себя шину по стандарту взаимодействия периферийных компонентов (PCI), PCI-Express-шину и т.д.
Когда мультимедийная приставка 100 включается, данные приложений могут быть загружены из системной памяти 143 в память 112 и/или кэши 102, 104 и выполнены в CPU 101. Приложение может представлять графический пользовательский интерфейс, который предоставляет согласованные возможности работы пользователей при переходе к различным типам носителей, доступных на мультимедийной приставке 100. При работе приложения и/или другие носители, содержащиеся в накопителе 144 на носителях, могут быть запущены или воспроизведены с накопителя 144 на носителях, чтобы предоставлять дополнительные функциональные возможности для мультимедийной приставки 100.
Мультимедийная приставка 100 может управляться как автономная система посредством простого подсоединения системы к телевизионному приемнику или другому дисплею. В этом автономном режиме мультимедийная приставка 100 позволяет одному или более пользователям взаимодействовать с системой, смотреть фильмы или слушать музыку. Тем не менее, при интеграции широкополосных возможностей подключения, доступных посредством сетевого интерфейса 124 или беспроводного адаптера 148, мультимедийная приставка 100 дополнительно может управляться как участник более крупного сетевого сообщества.
Когда мультимедийная приставка 100 включается, заданный объем аппаратных ресурсов резервируется для системного использования посредством операционной системы мультимедийной приставки. Эти ресурсы могут включать в себя резервирование памяти (например, 16 МБ), CPU- и GPU-циклов (например, 5%), полосы пропускания сети (например, 8 килобайт/с) и т.д. Поскольку эти ресурсы резервируются во время загрузки системы, зарезервированные ресурсы не существуют с точки зрения приложения.
В частности, резервирование памяти предпочтительно является достаточно большим, чтобы содержать ядро запуска, параллельные системные приложения и драйверы. Резервирование CPU предпочтительно является постоянным, так что если зарезервированное использование CPU не используется посредством системных приложений, то бездействующий подпроцесс использует все неиспользуемые циклы.
Относительно резервирования GPU, небольшие сообщения, сгенерированные посредством системных приложений (например, всплывающие меню), отображаются посредством использования GPU-прерывания, чтобы диспетчеризовать код, чтобы подготавливать посредством рендеринга всплывающее меню в наложение. Объем памяти, требуемый для наложения, зависит от размера области наложения, и наложение предпочтительно масштабируется с разрешением экрана. Если весь пользовательский интерфейс используется посредством параллельного системного приложения, предпочтительно использовать разрешение, независимое от разрешения приложения. Пересчетный модуль может быть использован для того, чтобы задавать это разрешение, так что необходимость изменять частоту и вызывать повторную синхронизацию телевизионного сигнала исключается.
После того как мультимедийная приставка 100 загружена, и системные ресурсы зарезервированы, параллельные системные приложения запускаются, чтобы предоставлять системные функциональности. Системные функциональности инкапсулируются в наборе системных приложений, которые запускаются в рамках зарезервированных системных ресурсов, описанных выше. Ядро операционной системы идентифицирует подпроцессы, которые являются подпроцессами системных приложений, отличными от подпроцессов игровых приложений. Системные приложения предпочтительно диспетчеризуются так, что они выполняются на CPU 101 в предварительно определенные моменты и интервалы времени, чтобы предоставлять согласованное представление системных ресурсов для приложения. Диспетчеризация заключается в том, чтобы минимизировать рассинхронизацию кэша для игрового приложения, выполняющегося на приставке.
Когда параллельное системное приложение требует аудио, аудиообработка диспетчеризуется асинхронно с игровым приложением вследствие зависимости от времени. Диспетчер приложений мультимедийной приставки (описан ниже) управляет уровнем громкости игрового приложения (например, отключением, приглушением звука), когда системные приложения являются активными.
Устройства ввода (например, контроллеры 142 (1) и 142 (2)) совместно используются посредством игровых приложений и системных приложений. Устройства ввода не являются зарезервированными ресурсами, а должны переключаться между системными приложениями и игровыми приложениями, так что каждое из них должно фокусировать устройство. Диспетчер приложений предпочтительно управляет переключением входного потока без сведений по игровому приложению, и драйвер поддерживает информацию состояния, касающуюся переключений фокуса. Камеры 26, 28 и устройство 20 захвата могут задавать дополнительные устройства ввода для приставки 100.
Фиг. 4 иллюстрирует другой примерный вариант осуществления вычислительного окружения 220, которое может быть вычислительным окружением 12, показанным на фиг. 1A-2, используемым для того, чтобы интерпретировать одно или более телодвижений в системе распознавания, анализа и отслеживания целей и/или анимировать виртуального персонажа, такого как аватар, экранный персонаж, экранный объект и т.п., отображаемый посредством системы распознавания, анализа и отслеживания целей. Окружение 220 вычислительной системы является только одним примером подходящего вычислительного окружения и не имеет намерением налагать какое-либо ограничение на объем использования или функциональность раскрытого в настоящее время предмета изобретения. Вычислительное окружение 220 не должно интерпретироваться как имеющее какую-либо зависимость или требование в отношении какого-либо или комбинации компонентов, проиллюстрированных в примерном операционном окружении 220. В некоторых вариантах осуществления, различные проиллюстрированные вычислительные элементы могут включать в себя схему, выполненную с возможностью конкретизировать конкретные аспекты настоящего раскрытия сущности. Например, термин "схема", используемый в раскрытии сущности, может включать в себя специализированные аппаратные компоненты, выполненные с возможностью осуществлять функцию(и) посредством микропрограммного обеспечения или коммутаторов. В других примерных вариантах осуществления, термин "схема" может включать в себя процессор общего назначения, запоминающее устройство и т.д., конфигурируемое посредством программных инструкций, которые осуществляют логику, выполненную с возможностью осуществлять функцию(и). В примерных вариантах осуществления, в которых схема включает в себя комбинацию аппаратных средств и программного обеспечения, разработчик может писать исходный код, осуществляющий логику, и исходный код может быть компилирован в машиночитаемый код, который может обрабатываться посредством процессора общего назначения. Поскольку специалисты в данной области техники могут принимать во внимание, что уровень техники дошел до такой точки развития, в которой практически отсутствует разница между аппаратными средствами, программным обеспечением или комбинацией аппаратных средств/программного обеспечения, выбор аппаратных средств относительно программного обеспечения, чтобы осуществлять конкретные функции, зависит от выбранной разработчиком структуры. Более конкретно, специалисты в данной области техники могут принимать во внимание, что программный процесс может быть преобразован в эквивалентную аппаратную структуру, и аппаратная структура может быть преобразована в эквивалентный программный процесс. Таким образом, выбор аппаратной реализации относительно программной реализации зависит от выбранной разработчиком структуры.
На фиг.4 вычислительное окружение 220 содержит компьютер 241, который типично включает в себя множество машиночитаемых носителей. Машиночитаемыми носителями могут быть любые носители, которые могут быть доступными посредством компьютера 241, и они включают в себя энергозависимые и энергонезависимые носители, съемные и стационарные носители. Системная память 222 включает в себя компьютерные носители хранения данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянная память 223 (ROM) и оперативная память 260 (RAM). Базовая система 224 ввода/вывода (BIOS), содержащая в себе базовые процедуры, которые помогают передавать информацию между элементами в рамках компьютера 241, к примеру, во время запуска, типично сохраняется в ROM 223. RAM 260 типично содержит данные и/или программные модули, которые являются непосредственно доступными и/или в настоящее время обрабатываются блоком 259 обработки. В качестве примера, но не ограничения, фиг. 4 иллюстрирует операционную систему 225, прикладные программы 226, другие программные модули 227 и программные данные 228.
Компьютер 241 также может включать в себя другие съемные/стационарные, энергозависимые/энергонезависимые компьютерные носители хранения данных. Только в качестве примера, фиг. 4 иллюстрирует жесткий диск 238, который считывает или записывает на стационарные энергонезависимые магнитные носители, накопитель 239 на магнитных дисках, который считывает или записывает на съемный энергонезависимый магнитный диск 254, и накопитель 240 на оптических дисках, который считывает или записывает на съемный энергонезависимый оптический диск 253, такой как CD-ROM или другие оптические носители. Другие съемные/стационарные, энергозависимые/энергонезависимые компьютерные носители хранения данных, которые могут быть использованы в примерном операционном окружении, включают в себя, но не только, кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, полупроводниковое RAM, полупроводниковое ROM и т.п. Жесткий диск 238 типично подключен к системной шине 221 через интерфейс стационарной памяти, например интерфейс 234, а накопитель на 239 магнитных дисках и накопитель 240 на оптических дисках типично подключены к системе посредством интерфейса съемной памяти, например интерфейса 235.
Накопители и ассоциированные компьютерные носители хранения данных, поясненные выше и проиллюстрированные на фиг. 4, предоставляют хранение машиночитаемых инструкций, структур данных, программных модулей и других данных для компьютера 241. На фиг. 4, например, накопитель 238 на жестких дисках проиллюстрирован как сохраняющий операционную систему 258, прикладные программы 257, другие программные модули 256 и программные данные 255. Следует отметить, что эти компоненты могут быть идентичными или отличными от операционной системы 225, прикладных программ 226, других программных модулей 227 и программных данных 228. Операционной системе 258, прикладным программам 257, другим программным модулям 256 и программным данным 255 присвоены в настоящем документе другие номера, чтобы иллюстрировать, что, как минимум, они являются различными другими копиями. Пользователь может вводить команды и информацию в компьютер 241 через устройства ввода, такие как клавиатура 251 и указательное устройство 252, обычно упоминаемое как мышь, шаровой манипулятор (трекбол) или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой планшет, спутниковую антенну, сканер и т.п. Эти и другие устройства ввода часто подключены к процессору 259 через интерфейс 236 пользовательского ввода, который соединен с системной шиной, но могут быть подключены посредством других интерфейсов и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Камеры 26, 28 и устройство 20 захвата могут задавать дополнительные устройства ввода для приставки 100. Монитор 242 или другой тип дисплейного устройства также подключается к системной шине 221 через интерфейс, такой как видеоинтерфейс 232. В дополнение к монитору, компьютеры также могут включать в себя другие периферийные устройства вывода, такие как динамики 244 и принтер 243, которые могут подключаться через периферийный интерфейс 233 вывода.
Компьютер 241 может работать в сетевом окружении, использующем логические соединения с одним или более удаленными компьютерами, такими как удаленный компьютер 246. Удаленным компьютером 246 может быть персональный компьютер, сервер, маршрутизатор, сетевой PC (персональный компьютер), равноправное устройство или другой общий сетевой узел, и он типично включает в себя многие или все элементы, описанные выше относительно компьютера 241, хотя на фиг. 4 проиллюстрировано только запоминающее устройство 247. Логические соединения, показанные на фиг. 2, включают в себя локальную вычислительную сеть (LAN) 245 и глобальную вычислительную сеть (WAN) 249, но также могут включать в себя другие сети. Такие сетевые окружения широко распространены в офисах, корпоративных компьютерных сетях, сетях intranet и в Интернете.
При использовании в сетевом LAN-окружении компьютер 241 подключается к LAN 245 через сетевой интерфейс или адаптер 237. При использовании в сетевом WAN-окружении компьютер 241 типично включает в себя модем 250 или другое средство для установления связи по WAN 249, к примеру по Интернету. Модем 250, который может быть внутренним или внешним, может быть подключен к системной шине 221 через интерфейс 236 пользовательского ввода или другой подходящий механизм. В сетевом окружении программные модули, изображенные относительно компьютера 241, или их части могут быть сохранены в удаленной памяти. В качестве примера, а не ограничения, фиг. 4 иллюстрирует удаленные прикладные программы 248 как находящиеся на памяти 247 хранения. Следует принимать во внимание, что показанные сетевые соединения являются примерными, и может быть использовано другое средство установления линии связи между компьютерами.
Фиг. 5 иллюстрирует блок-схему последовательности операций примерного способа 300 для смешивания анимаций. Примерный способ 300 может быть реализован с использованием, например, устройства 20 захвата и/или вычислительного окружения 12 системы 10 распознавания, анализа и отслеживания целей, описанной относительно фиг. 1A-4. В примерном варианте осуществления, примерный способ 300 может принимать форму программного кода (т.е. инструкций), который может быть выполнен, например, посредством устройства 20 захвата и/или вычислительного окружения 12 системы 10 распознавания, анализа и отслеживания целей, описанной относительно фиг. 1A-4.
Согласно одному варианту осуществления на этапе 305 может быть принято изображение. Например, система распознавания, анализа и отслеживания целей может включать в себя устройство захвата, к примеру устройство 20 захвата, описанное выше относительно фиг. 1A-2. Устройство захвата может захватывать или наблюдать сцену, которая может включать в себя одну или более целей. В примерном варианте осуществления, устройство захвата может быть камерой для съемки глубины, выполненной с возможностью получать изображение, такое как RGB-изображение, изображение глубины и т.п., сцены с использованием любой подходящей технологии, к примеру анализа на основе времени пролета, анализа на основе структурированного света, анализа на основе стереовидения и т.п.
Например, в одном варианте осуществления изображение может включать в себя изображение глубины. Изображение глубины может быть множеством наблюдаемых пикселов, причем каждый наблюдаемый пиксел имеет наблюдаемое значение глубины. Например, изображение глубины может включать в себя двумерную пикселную область захватываемой сцены, причем каждый пиксел в двумерной пикселной области может представлять значение глубины, к примеру длину или расстояние, например, в сантиметрах, миллиметрах и т.п. объекта в захватываемой сцене от устройства захвата.
Фиг.6 иллюстрирует примерный вариант осуществления изображения 400 глубины, которое может быть принято на этапе 305. Согласно примерному варианту осуществления, изображение 400 глубины может быть изображением или кадром сцены, захватываемой, например, посредством трехмерной камеры 26 и/или RGB-камеры 28 устройства 20 захвата, описанного выше относительно фиг. 2. Как показано на фиг. 6, изображение 400 глубины может включать в себя человеческую цель 402, соответствующую, например, пользователю, такому как пользователь 18, описанный выше относительно фиг. 1A и 1B, и одну или более нечеловеческих целей 404, таких как стена, стол, монитор и т.п. в захватываемой сцене. Как описано выше, изображение 400 глубины может включать в себя множество наблюдаемых пикселов, причем каждый наблюдаемый пиксел имеет наблюдаемое значение глубины, ассоциированное с ним. Например, изображение 400 глубины может включать в себя двумерную пикселную область захватываемой сцены, причем каждый пиксел в двумерной пикселной области может представлять значение глубины, к примеру длину или расстояние, например, в сантиметрах, миллиметрах и т.п. цели или объекта в захватываемой сцене от устройства захвата. В одном варианте осуществления, изображение 400 глубины может быть цветным, так что различные цвета пикселов изображения глубины соответствуют и/или визуально иллюстрируют различные расстояния человеческой цели 402 и нечеловеческих целей 404 от устройства захвата. Например, согласно одному варианту осуществления пикселы, ассоциированные с целью, ближайшей к устройству захвата, могут быть окрашены с оттенками красного и/или оранжевого цвета в изображении глубины, тогда как пикселы, ассоциированные с целью, расположенной дальше, могут быть окрашены с оттенками зеленого и/или синего цвета в изображении глубины.
Снова ссылаясь на фиг. 5, в одном варианте осуществления после приема изображения на этапе 305 изображение может дискретизироваться с понижением разрешения до более низкого разрешения обработки, так что изображение глубины может проще использоваться и/или быстрее обрабатываться с меньшим потреблением вычислительных ресурсов. Дополнительно, одно или более значений глубины с высокой дисперсией и/или зашумленных значений глубины могут удаляться и/или сглаживаться в изображении глубины; части отсутствующей и/или удаленной информации глубины могут заполняться и/или восстанавливаться; и/или любая другая подходящая обработка может выполняться для принимаемой информации глубины, так что информация глубины может использоваться для того, чтобы формировать модель, такую как скелетная модель, что подробнее описано ниже.
На этапе 310, может генерироваться модель пользователя в изображении. Например, после приема изображения система распознавания, анализа и отслеживания целей может определять то, включает или нет изображение глубины в себя человеческую цель, такую как человеческая цель 402, описанная выше относительно фиг.6, соответствующую, например, пользователю, такому как пользователь 18, описанный выше относительно фиг. 1A и 1B, посредством заливки каждой цели или объекта в изображении глубины и сравнения каждой залитой цели или объекта с шаблоном, ассоциированным с моделью тела человека, в различных позициях или позах. Залитая цель или объект, который совпадает с шаблоном, затем может изолироваться и сканироваться, чтобы определять значения, включающие в себя, например, измерения различных частей тела. Согласно примерному варианту осуществления, модель, такая как скелетная модель, ячеистая модель и т.п., затем может формироваться на основе сканирования. Например, согласно одному варианту осуществления значения измерения, которые могут быть определены посредством сканирования, могут быть сохранены в одной или более структур данных, которые могут быть использованы для того, чтобы задавать один или более суставов в модели. Один или более суставов могут быть использованы для того, чтобы задавать одну или более костей, которые могут соответствовать части тела человека.
Фиг.7 иллюстрирует примерный вариант осуществления модели 500, которая может быть сгенерирована для пользователя на этапе 310. Согласно примерному варианту осуществления, модель 500 может включать в себя одну или более структур данных, которые могут представлять, например, трехмерную модель человеческой цели, ассоциированной с пользователем, в изображении глубины, такой как человеческая цель 402 в изображении 400 глубины, описанная выше относительно фиг.6. В одном варианте осуществления, каждая часть тела человеческой цели, ассоциированной с пользователем, может отличаться как математический вектор, задающий суставы и кости модели 500.
Как показано на фиг.7, модель 500 может включать в себя один или более суставов j1-j18. Согласно примерному варианту осуществления, каждый из суставов j1-j18 может предоставлять возможность перемещения одной или более частей тела, заданных между ними, относительно одной или более других частей тела. Например, модель, представляющая человеческую цель, может включать в себя множество твердых и/или деформируемых частей тела, которые могут быть заданы посредством одного или более структурных элементов, таких как "кости", с суставами j1-j18, расположенными на пересечении смежных костей. Суставы j1-18 могут предоставлять возможность перемещения различных частей тела, ассоциированных с костями и суставами j1-j18, независимо друг от друга. Например, кость, заданная между суставами j7 и j11, показанными на фиг.7, может соответствовать предплечью, которое может перемещаться независимо, например, от кости, заданной между суставами j15 и j17, которая может соответствовать икре.
Как описано выше, каждая из частей тела может отличаться как математический вектор, имеющий значение X, значение Y и значение Z, задающие суставы и кости, показанные на фиг. 7. В примерном варианте осуществления, пересечение векторов, ассоциированных с костями, показанными на фиг. 7, может задавать соответствующую точку, ассоциированную с суставами j1-j18.
Снова ссылаясь на фиг. 5, на этапе 315 движение в реальном времени или живое движение модели, ассоциированной с пользователем, может захватываться. Например, модель может отслеживаться таким образом, что модель может регулироваться или перемещаться так, что она имитирует перемещение пользователем. Такие регулирования или движения модели, ассоциированной с пользователем, могут захватываться в реальном времени. Дополнительно, такие регулирования или движения могут применяться к виртуальному персонажу, такому как аватар, экранный персонаж, экранный объект и т.п., что подробнее описано ниже.
Согласно одному варианту осуществления, модель, такая как модель 500, описанная выше относительно фиг. 7, может быть представлением пользователя, к примеру пользователя 18, описанного выше относительно фиг.1A и 1B. Система распознавания, анализа и отслеживания целей может наблюдать или захватывать перемещения от пользователя 18, которые могут быть использованы для того, чтобы регулировать или перемещать модель 500, так что регулирования или движения модели 500 могут захватываться на этапе 315.
Например, устройство захвата, к примеру устройство 20 захвата, описанное выше относительно фиг. 1A-2, может наблюдать или захватывать несколько изображений, таких как изображения глубины, RGB-изображения и т.п. сцены, которые могут быть использованы для того, чтобы регулировать модель. Согласно одному варианту осуществления, каждое из изображений может наблюдаться или захватываться на основе заданной частоты. Например, устройство захвата может наблюдать или захватывать новое изображение сцены один раз в миллисекунду, микросекунду и т.п.
После приема каждого из изображений информация, ассоциированная с конкретным изображением, может сравниваться с информацией, ассоциированной с моделью, чтобы определять то, выполнено или нет, возможно, перемещение пользователем. Например, в одном варианте осуществления модель может быть растеризирована в синтезированное изображение, такое как синтезированное изображение глубины. Пикселы в синтезированном изображении могут сравниваться с пикселами, ассоциированными с человеческой целью, в каждом из принимаемых изображений, чтобы определять то, перемещена или нет человеческая цель в принимаемом изображении.
Согласно примерному варианту осуществления, один или более векторов силы могут вычисляться на основе пикселов, сравниваемых между синтезированным изображением и принимаемым изображением. Одна или более сил затем могут прикладываться или преобразовываться в один или более аспектов приема силы, таких как суставы модели, чтобы регулировать или перемещать модель в позу, которая более близко соответствует позе человеческой цели или пользователя в физическом пространстве.
Регулирования или движения отслеживаемой модели затем могут захватываться на этапе 315. В одном варианте осуществления, регулирования или движения отслеживаемой модели могут записываться в файл захвата движения. Например, система распознавания, анализа и отслеживания целей может подготавливать посредством рендеринга и сохранять файл захвата движения, который может включать в себя одно или более движений, к примеру колебательное движение, качательное движение, такое как раскачивание при игре в гольф, движение при ударе, движение при ходьбе, движение при беге и т.п., конкретное для пользователя, к примеру пользователя 18, описанного выше относительно фиг. 1A и 1B. Согласно одному варианту осуществления, файл захвата движения может формироваться в реальном времени на основе информации, такой как векторы, включающие в себя значения X, Y и Z, ассоциированные с отслеживаемым режимом, и может включать в себя один или более кадров перемещений, выполняемых пользователем, которые могут применяться к модели. Движения модели в файле захвата движения дополнительно могут применяться к виртуальному персонажу, такому как аватар, экранный объект, экранный персонаж и т.п., в реальном времени или вживую. Дополнительно, движения модели в файле захвата движения могут быть сохранены или предварительно записаны, так что файл захвата движения может применяться к виртуальному объекту или персонажу в будущий момент времени, что подробнее описано ниже.
Фиг. 8A-8B иллюстрируют примерный вариант осуществления модели 500, ассоциированной с пользователем, к примеру пользователем 18, описанным выше относительно фиг. 1A и 1B, которая может захватываться в различные моменты времени в файле захвата движения. Как показано на фиг. 8A-8B, модель 500, описанная выше относительно фиг. 7, может регулироваться или перемещаться на основе перемещений пользователя в различные моменты времени, как описано выше. Например, как показано на фиг. 8A, суставы j3, j7 и j11 и кости, заданные между ними, для модели 500 могут регулироваться или перемещаться так, что они представляют позу 502, когда пользователь поднимает свое правое предплечье, например, посредством применения одного или более векторов силы к суставам j3, j7 и j11, как описано выше. После того как пользователь поднимает свое правое предплечье, как показано на фиг. 8A, пользователь, такой как пользователь 18, затем может поднимать свое левое предплечье. Как показано на фиг. 8B, модель 500 затем может регулироваться из позы 502 в позу 504, так что суставы j4, j8 и j12 и кости, заданные между ними, для модели могут регулироваться или перемещаться, когда пользователь поднимает свое левое предплечье, например, посредством применения одного или более векторов силы к суставам j4, j8 и j12, как описано выше. Регулирования или движения, которые могут применяться к модели 500, как показано посредством поз 502 и 504 на фиг. 8A и 8B, могут захватываться на этапе 315 в соответствующих кадрах файла захвата движения, как описано выше.
Снова ссылаясь на фиг. 5, предварительно записанное движение может быть принято на этапе 320. Например, система распознавания, анализа и отслеживания целей может принимать предварительно записанное движение для виртуального персонажа, к примеру экранного персонажа игры, аватара, экранного объекта и т.п. В одном варианте осуществления, предварительно записанное движение может быть файлом захвата разработанной актером анимации или движения для виртуального персонажа или объекта, разработанного разработчиком приложений, и/или программно-управляемого преобразования, такого как контролируемая устройством ввода анимация или движение, анимация или движение тряпичной куклы и т.п., разработанная разработчиком приложений. Согласно другому варианту осуществления, предварительно записанное движение может быть файлом захвата движения модели, ассоциированной с пользователем системы распознавания, анализа и отслеживания целей, который может быть сохранен для будущего использования, как описано выше.
Фиг. 9A-9B иллюстрируют примерный вариант осуществления модели 600 персонажа для виртуального объекта или персонажа, к примеру кентавра в различные моменты времени или в различных кадрах, которые могут приниматься как предварительно записанное разработанное актером движение на этапе 320. Как показано на фиг. 9A-9B, модель 600 персонажа может включать в себя один или более суставов j1'-j20'. В одном варианте осуществления, каждый из суставов j1'-j20' может задавать одну или более частей тела, которые могут перемещаться относительно или независимо от одной или более других частей тела в суставах j1'-j20', чтобы анимировать виртуальный объект или персонаж, что подробнее описано ниже.
Дополнительно, согласно примерному варианту осуществления каждый из суставов j1'-j20' модели 600 персонажа может иметь соответствующий трек анимации в файле захвата предварительно записанной разработанной актером анимации или движения в различные моменты времени или в соответствующем кадре файла захвата предварительно записанной разработанной актером анимации или движения. Например, как показано на фиг. 9A, суставы j16', j18' и j20' и части тела, заданные между ними, для модели 600 персонажа могут иметь трек анимации, который может приводить к позе 602 модели 600 персонажа в файле предварительно записанной разработанной актером анимации или движения в первый момент времени или в первом кадре в файле захвата предварительно сгенерированной актером анимации или движения. Суставы j16', j18' и j20' затем могут регулироваться, чтобы представлять позу 604 для каждого из треков анимации для суставов j16', j18' и j20' модели 600 персонажа в файле предварительно записанной разработанной актером анимации или движения в последующий или второй момент времени или во втором или последующем кадре.
Снова ссылаясь на фиг. 5, на этапе 325 движение модели и/или предварительно записанное движение может применяться к виртуальному объекту или персонажу. Например, система распознавания, анализа и отслеживания целей может преобразовывать одно или более движений в реальном времени или живых движений и/или предварительно записанных движений пользователя, по меньшей мере, в часть виртуального объекта или персонажа, так что виртуальный объект или персонаж может быть анимирован так, что он имитирует перемещения, выполняемые пользователем, к примеру пользователем 18, описанным выше относительно фиг. 1A и 1B.
Дополнительно, система распознавания, анализа и отслеживания целей может преобразовывать одну или более предварительно записанных разработанных актером анимаций или движений и/или одно или более предварительно записанных программно-управляемых преобразований, по меньшей мере, в часть виртуального объекта или персонажа, так что виртуальный объект или персонаж может быть анимирован так, что он имитирует предварительно записанные разработанные актером движения и/или предварительно записанные программно-управляемые преобразования.
Фиг. 10A-10B иллюстрируют примерный вариант осуществления виртуального персонажа 700, который может иметь живое движение пользователя и/или предварительно записанное движение, применяемое к нему на этапе 325. Как показано на фиг. 10A-10B, персонаж 700 может включать в себя кентавра, который может быть персонажем, например, в игровом приложении. Согласно одному варианту осуществления, виртуальный персонаж 700 может быть анимирован с помощью живого движения отслеживаемой модели, ассоциированной с пользователем, и предварительно записанного движения, такого как предварительно записанное разработанное актером движение, на этапе 325. Например, первая часть A виртуального персонажа 700 может быть анимирована с помощью живого движения, выполняемого пользователем, к примеру пользователем 18, описанным выше относительно фиг. 1A и 1B, а вторая часть B может быть анимирована с помощью предварительно записанного разработанного актером движения.
Согласно примерному варианту осуществления, суставы j1-j12 модели 500, ассоциированной с пользователем, как описано выше относительно фиг. 7-8B, могут преобразовываться в первую часть A виртуального персонажа 700, а суставы j9'-j20' модели 600 персонажа, как описано выше относительно фиг. 9A-9B, могут преобразовываться во вторую часть B виртуального персонажа 700, так что первая часть A может быть анимирована так, что она имитирует живые движения, которые могут выполняться пользователем, а вторая часть B может быть анимирована так, что она имитирует анимации модели персонажа, такой как модель 600 персонажа, ассоциированная с виртуальным персонажем 700. Например, суставы j4, j8 и j12 и кости, заданные между ними, для модели 500, показанной на фиг. 8A-8B, могут преобразовываться в левое плечо, левый локоть и левое запястье и соответствующие части тела, заданные между ними, для виртуального персонажа 700, так что первая часть A виртуального персонажа 700, показанного на фиг. 10A-10B, может имитировать позы 502 и 504 суставов j4, j8 и j12, показанные на фиг. 8A-8B, ассоциированные с перемещением пользователем своей левой руки. Дополнительно, суставы j16', j18' и j20' и части тела, заданные между ними, для модели 600 персонажа, показанной на фиг. 9A-9B, могут преобразовываться в переднее левое бедро, переднее левое колено и переднюю левую лодыжку и соответствующие части тела, заданные между ними, для виртуального персонажа 700, так что вторая часть B виртуального персонажа 700, показанного на фиг. 10A-10B, может имитировать позы 602 и 604 суставов j16', j18' и j20', показанные на фиг. 9A-9B, в модели кентавра, выставившего левую переднюю ногу. Таким образом, согласно примерному варианту осуществления виртуальный персонаж 700 может включать в себя живые движения модели 500, ассоциированной с пользователем, смешанные с предварительно записанными движениями модели 600 персонажа, ассоциированной с виртуальным персонажем или объектом.
В одном варианте осуществления, чтобы анимировать виртуального персонажа 700 с помощью живых движений и предварительно записанных движений, система распознавания, анализа и отслеживания целей может деактивировать треки анимации или движения, ассоциированные с суставами и/или частями тела модели 600 персонажа, которые соответствуют первой части A виртуального персонажа 700. Дополнительно, система распознавания, анализа и отслеживания целей может деактивировать анимации или движения, ассоциированные с суставами модели 500, в файле захвата движения, которые соответствуют второй части B виртуального персонажа 700. Система распознавания, анализа и отслеживания целей затем может смешивать анимации или движения модели 500, ассоциированной с пользователем, в файле захвата движения с треками анимации или движения модели 600 персонажа, так что первая часть A может быть анимирована с помощью движений модели 500, ассоциированной с пользователем, а вторая часть может быть анимирована с помощью анимаций или движений модели персонажа 500, ассоциированной с виртуальным персонажем 700.
Например, система распознавания, анализа и отслеживания целей может деактивировать треки анимации или движения суставов j1'-j8' модели 600 персонажа и анимации или движения суставов j13-j18 модели 500, ассоциированной с пользователем. Система распознавания, анализа и отслеживания целей затем может смешивать анимации и движения модели 600 персонажа и модели 500, ассоциированной с пользователем, так что первая часть A виртуального персонажа 700 может имитировать перемещения пользователем, а вторая часть B виртуального персонажа 700 может имитировать предварительно записанные анимации или движения модели персонажа, как показано на фиг. 10A-10B.
Фиг. 11A-11F иллюстрируют другой примерный вариант осуществления виртуального персонажа 800, который может иметь живое движение пользователя и/или предварительно записанное движение, применяемое к нему на этапе 325. Как показано на фиг. 11A-11F, виртуальный персонаж 800 может включать в себя робота, который может быть персонажем, например, в игровом приложении. Согласно одному варианту осуществления, виртуальный персонаж 800 может быть анимирован с помощью живого движения отслеживаемой модели, ассоциированной с пользователем, и/или предварительно записанного движения, такого как сохраненное движение модели, ассоциированной с пользователем, или предварительно записанное разработанное актером движение, на этапе 325. Например, первая часть A' виртуального персонажа 800 может быть анимирована с помощью живого движения, выполняемого пользователем, к примеру пользователем 18, описанным выше относительно фиг. 1A и 1B, а вторая часть B' может быть анимирована с помощью предварительно записанного движения пользователя в файле захвата движения или предварительно записанного разработанного актером движения.
Согласно одному варианту осуществления, живые и/или предварительно записанные движения или анимации могут применяться к виртуальному персонажу 800 в ответ на телодвижение, принятое от пользователя. Например, одно из движений в реальном времени или живых движений модели, ассоциированной с пользователем, которое может захватываться на этапе 315, может включать в себя телодвижение, которое может быть использовано для того, чтобы управлять перемещением или анимацией виртуального персонажа 800 на этапе 325.
В примерном варианте осуществления, пользователь может поднимать свою левую руку, так что модель, ассоциированная с пользователем, может регулироваться так, что она имитирует поднятие пользователем своей левой руки, и может захватываться на этапе 315. Например, суставы j4, j8 и j12 модели 500, описанной выше относительно фиг. 7-8B, могут регулироваться так, что они отражают поднятие пользователем своей левой руки. Система распознавания, анализа и отслеживания целей затем может интерпретировать телодвижение, ассоциированное с поднятием левой руки, так что система распознавания, анализа и отслеживания целей может применять предварительно записанное движение или живое движение, по меньшей мере, к части, к примеру первой части A' виртуального персонажа 800, может переключаться с предварительно записанного движения или живого движения, применяемого, по меньшей мере, к части, к примеру первой части A' виртуального персонажа 800 и т.п., в ответ на телодвижение, ассоциированное с поднятием пользователем левой руки.
Например, согласно одному варианту осуществления в ответ на поднятие пользователем своей левой руки виртуальный персонаж 800 может быть анимирован на основе корректировок, внесенных, например, в модель 500, ассоциированную с пользователем, так что живое движение поднятия пользователем своей левой руки может применяться, например, к первой части A' виртуального персонажа 800, как показано на фиг. 11B. Т.е. в ответ на поднятие пользователем своей левой руки суставы j4, j8 и j12 модели 500, ассоциированной с пользователем, могут преобразовываться в левую руку виртуального персонажа 800, так что первая часть A' виртуального персонажа 800 может быть анимирована посредством живых движений, выполняемых пользователем с помощью своей верхней части тела. Дополнительно, последующее перемещение пользователем своей верхней части тела дополнительно может применяться к виртуальному персонажу 800. Например, по мере того как пользователь поднимает свое правое предплечье, живые движения поднятия пользователем своего правого предплечья могут применяться к суставам j7 и j11 модели 500. Живые движения затем могут применяться к виртуальному персонажу 800, как описано выше, так что виртуальный персонаж 800 может быть анимирован или перемещен так, что он поднимает свое левое предплечье, как показано на фиг. 11C. Таким образом, согласно одному варианту осуществления в ответ на принимаемое телодвижение, по меньшей мере, часть виртуального персонажа 800 может быть анимирована так, что она имитирует перемещения пользователем, которые могут применяться к модели 500, ассоциированной с пользователем.
Аналогично, пользователь может поднимать свою левую ногу, так что модель, ассоциированная с пользователем, может регулироваться так, что она имитирует поднятие пользователем своей левой ноги, и может захватываться на этапе 315. Например, суставы j14, j16 и j18 модели 500, описанной выше относительно фиг. 7-8B, могут регулироваться так, что они отражают поднятие пользователем своей левой ноги. Система распознавания, анализа и отслеживания целей затем может интерпретировать телодвижение, ассоциированное с поднятием левой ноги, так что система распознавания, анализа и отслеживания целей может применять предварительно записанное движение или живое движение, по меньшей мере, к части, к примеру второй части B' виртуального персонажа 800, может переключаться с предварительно записанного движения или живого движения, применяемого, по меньшей мере, к части, к примеру второй части B' виртуального персонажа 800 и т.п., в ответ на телодвижение, ассоциированное с поднятием пользователем левой ноги.
Например, согласно одному варианту осуществления в ответ на поднятие пользователем своей левой ноги вторая часть B' виртуального персонажа 800 может быть анимирована с помощью предварительно записанного движения при ходьбе, к примеру предварительно записанного движения при ходьбе модели 500, ассоциированной с пользователем, захватываемого в файле захвата движения, или разработанной актером анимации ходьбы, как показано на фиг. 11D-11F. Т.е. в ответ на поднятие пользователем своей левой ноги суставы j13-j18 модели 500 в сохраненном файле захвата движения могут преобразовываться в соответствующую правую и левую ногу виртуального персонажа 800, так что вторая часть B' виртуального персонажа 800 может быть анимирована посредством предварительно записанных движений при ходьбе, выполняемых пользователем. Альтернативно, в ответ на поднятие пользователем своей левой ноги суставы и/или части тела модели персонажа могут преобразовываться в соответствующую правую и левую ногу виртуального персонажа 800, так что вторая часть B' виртуального персонажа 800 может быть анимирована посредством предварительно записанного разработанного актером движения при ходьбе.
В одном варианте осуществления, живые движения пользователя и/или предварительно записанные движения могут применяться, например, к первой и второй частям A' и B' виртуального персонажа 800 до тех пор, пока последующее телодвижение, которое может управлять анимациями, применяемыми к виртуальному персонажу 800, не может быть принято. Например, живые движения пользователя могут применяться, например, к первой части A' виртуального персонажа 800 до тех пор, пока последующее телодвижение, такое как поднятие пользователем правой и левой рук, не может быть принято. После приема последующего телодвижения первая часть A' виртуального персонажа 800 может быть неподвижной или может переключаться так, что она анимируется, например, с помощью предварительно записанного движения, к примеру предварительно записанного движения пользователя в файле захвата движения, описанном выше, или предварительно записанной сгенерированной актером анимации.
Согласно примерному варианту осуществления, чтобы анимировать первую часть A' виртуального персонажа 800 в ответ на поднятие пользователем своей левой руки с помощью живых движений, выполняемых пользователем с помощью своей верхней частью тела, система распознавания, анализа и отслеживания целей может деактивировать анимации или движения суставов и/или частей тела, к примеру суставов j13-j18 модели 500, ассоциированной с более нижней частью тела пользователя. Дополнительно, чтобы анимировать вторую часть B' виртуального персонажа 800 в ответ на поднятие пользователем своей левой ноги с помощью предварительно записанных движений при ходьбе, система распознавания, анализа и отслеживания целей может деактивировать анимации или движения суставов и/или частей тела модели персонажа или модели 500, ассоциированной с верхней частью тела модели персонажа, ассоциированной с виртуальным персонажем 800 или пользователем. Система распознавания, анализа и отслеживания целей затем может смешивать разрешенные живые анимации или движения верхней части тела пользователя с разрешенными предварительно записанными движениями при ходьбе модели 600 персонажа, так что первая часть A' может быть анимирована с помощью живых движений верхней части тела пользователя в ответ на поднятие пользователем своей левой руки с помощью предварительно записанных движений при ходьбе, как показано на фиг. 11D-11F.
Дополнительно, в одном варианте осуществления в ответ на прием последующего телодвижения, такого как поднятие пользователем обеих рук, которое может переключать, например, живое движение пользователя, применяемое к первой части A' виртуального персонажа 800, на предварительно записанное движение, система распознавания, анализа и отслеживания целей может смешивать переход, например, за предварительно определенное число кадров, к примеру 15-20 кадров, так что часть A' виртуального персонажа может плавно переходить между живым движением и предварительно записанным движением. Например, каждый из суставов и/или частей тела модели 500 в живых движениях может быть смешан с соответствующими суставами и/или частями тела в предварительно записанных движениях за 15-20 кадров. Таким образом, каждый сустав, ассоциированный с верхней частью тела модели 500 в первом кадре живых движений в файле захвата движения, может быть смешан с каждым соответствующим суставом и/или частью тела модели персонажа в первом кадре предварительно записанных движений или анимаций. Живые движения затем могут быть постепенно свернуты после предварительно определенного числа кадров так, что первая часть A' виртуального персонажа 800 может быть анимирована с помощью предварительно записанного движения или анимаций.
Фиг. 12A-12B иллюстрируют примерный вариант осуществления персонажа 900 игры, который может иметь живое движение пользователя и/или программно-управляемое преобразование, применяемое к нему на этапе 325. Как показано на фиг. 12A-12B, персонаж 900 игры может включать в себя футболиста, который может быть персонажем, например, в футбольном игровом приложении. Согласно одному варианту осуществления, персонаж 900 игры может быть анимирован с помощью живого движения отслеживаемой модели, ассоциированной с пользователем, и программно-управляемого преобразования, к примеру, контролируемой устройством ввода анимации или движения, анимации или движения тряпичной куклы и т.п., на этапе 325. Например, первая часть, такая как руки 906a и 906b персонажа 900 игры, может управляться или анимироваться посредством живого движения, выполняемого пользователем, к примеру пользователем 18, описанным выше относительно фиг. 1A и 1B, руками. Согласно примерному варианту осуществления, вторая часть, такая как каждая из оставшихся частей тела персонажа 900 игры, показанного на фиг. 12A-12B, может иметь предварительно записанное программно-управляемое преобразование, примененное к ней.
В одном варианте осуществления, предварительно записанное программно-управляемое преобразование может включать в себя анимацию или движение на основе цели, которое может использовать физические явления, чтобы давать возможность персонажу игры, к примеру персонажу 900 игры, достигать своей цели в приложении. Например, персонаж 900 игры может быть крайним нападающим, который может иметь цель достигать конкретного местоположения на футбольном поле, предусмотренном в футбольном игровом приложении, чтобы ловить пас. Предварительно записанное программно-управляемое преобразование может включать в себя анимацию или движение с использованием, например, физических явлений, которые могут заставлять персонаж 900 игры автоматически достигать этого местоположения.
Дополнительно, согласно другому примерному варианту осуществления персонаж 900 игры может быть сбит с ног персонажем игры из соперничающей команды, как показано на фиг. 12A-12B. Программно-управляемое преобразование может включать в себя предварительно записанное движение или анимацию на основе тряпичной куклы, которая может размещаться так, что она сбивает с ног персонажа 900 игры в данной позиции в футбольном игровом приложении. Например, движение или анимация программно-управляемого преобразования может включать в себя анимацию или движение тряпичной куклы, которая может генерироваться на основе вычисления физических явлений, на основе реакции персонажа 900 игры, когда персонаж 900 игры может быть сбит с ног посредством тряпичной куклы, ассоциированной с местоположением соперничающего игрока.
Таким образом, в одном варианте осуществления руки 906a и 906b могут иметь живое движение ног пользователя, применяемое к ним, и оставшиеся части тела персонажа 900 игры могут быть анимированы с помощью программно-управляемого преобразования анимации или движения тряпичной куклы, ассоциированной со сбиванием с ног персонажа 900 игры соперничающим игроком, так что пользователь может сохранять управление рук 906a и 906b, чтобы ловить мяч, как показано на фиг. 12A-12B, и оставшаяся часть тела может реагировать способом, аналогичным сбиванию с ног игрока в реальной жизни соперничающим игроком.
Таким образом, в примерном варианте осуществления визуальный внешний вид экранного персонажа может быть изменен на этапе 325, как показано на фиг. 5, в ответ на одно или более живых или предварительно записанных движений в файле захвата движения. Например, игрок, к примеру пользователь 18, описанный выше относительно фиг. 1A-1B, проводящий электронную игру на игровой приставке, может отслеживаться посредством игровой приставки, как описано в данном документе. Когда игрок раскачивает руку, игровая приставка может отслеживать это движение и затем в ответ на отслеживаемое движение может регулировать модель, ассоциированную с пользователем. Как описано выше, отслеживаемая модель дополнительно может захватываться в файле захвата движения. Файл захвата движения затем может применяться, например, к верхней части тела экранного персонажа, так что экранный персонаж может быть анимирован так, что он имитирует фактическое движение раскачивания пользователем своей руки. Дополнительно, предварительно записанное сгенерированное актером движение или программно-управляемое преобразование могут быть смешаны с живыми или предварительно сгенерированными движениями в файле захвата движения. Например, согласно примерным вариантам осуществления экранный персонаж может быть анимирован так, что он раскачивает, например, клюшку для игры в гольф, биту или наносит удар в игре, идентично тому, как пользователь раскачивает свою руку в реальном времени или вживую, и может быть анимирован так, что он бежит, идет или едет на велосипеде, как профессиональный спортсмен, который может захватываться в предварительно записанном движении или анимации при беге, ходьбе и езде на велосипеде.
Следует понимать, что конфигурации и/или подходы, описанные в данном документе, являются примерными по своему характеру, и что эти конкретные варианты осуществления или примеры не должны считаться ограничивающими. Конкретные процедуры или способы, описанные в данном документе, могут представлять одну или более из любого числа стратегий обработки. Также различные проиллюстрированные действия могут выполняться в проиллюстрированной последовательности, в других последовательностях, параллельно и т.п. Аналогично, порядок вышеописанных процессов может быть изменен.
Предмет изобретения настоящего раскрытия сущности включает в себя все новые и неочевидные комбинации и субкомбинации различных процессов, систем и конфигураций, а также других признаков, функций, действий и/или свойств, раскрытых в данном документе, как и все без исключения эквиваленты означенного.
Изобретение относится к области применения анимаций или движений к персонажу. Техническим результатом является обеспечение анимации виртуального персонажа посредством комбинации живых и предварительно записанных движений. Способ содержит этапы, на которых: принимают предварительно записанное движение и живое движение пользователя; преобразуют одну или более частей тела виртуального персонажа в один или более суставов в первой модели пользователя, ассоциированной с живым движением; преобразуют одну или более частей тела виртуального персонажа в один или более суставов во второй модели, ассоциированной с предварительно записанным движением; и анимируют виртуальный персонаж с помощью предварительно записанного движения и живого движения посредством по меньшей мере следующего: деактивируют один или более суставов в первой модели пользователя, которые соответствуют одной или более частям тела во второй части виртуального персонажа; деактивируют один или более суставов во второй модели, ассоциированной с предварительно записанным движением, которые соответствуют одной или более частям тела в первой части виртуального персонажа; и смешивают живое движение, ассоциированное с первой моделью пользователя, с предварительно записанным движением, ассоциированным со второй моделью, в ответ на деактивацию одного или более суставов в первой модели пользователя и деактивацию одного или более суставов во второй модели; и анимируют первую часть и вторую часть виртуального персонажа с помощью смешанных живых и предварительно записанных движений. 3 н. и 9 з.п. ф-лы, 22 ил.