СПОСОБ И УСТРОЙСТВО ДЛЯ СОЗДАНИЯ ВИДЕОАНИМАЦИИ

1. Способ создания видеоанимации, включающий этапы:
принимают переданную пользователем команду, определяют соответствующее команде действие, определяют общее число кадров, соответствующих действию, и определяют коэффициент движения для каждого кадра;
вычисляют смещение каждой контрольной точки в каждом кадре согласно коэффициенту движения для каждого кадра, и создают видеоанимацию согласно смещению каждой контрольной точки в каждом кадре и общему числу кадров.
2. Способ по п.1, отличающийся тем, что действие является связанным с лицом действием, контрольная точка связана с контуром деталей лица и в число деталей лица входит, по крайней мере, одно из следующего: глаза, брови, рот, голова.
3. Способ по п.2, отличающийся тем, что создание видеоанимации, выполняемое согласно смещению каждой контрольной точки в каждом кадре и общему числу кадров, включает этапы:
А) вычисляют целевую координату каждой контрольной точки в каждом кадре согласно смещению каждой контрольной точки в каждом кадре, причем смещение контрольной точки включает смещение в горизонтальном направлении и смещение в вертикальном направлении, целевая координата каждой контрольной точки включает
целевую координату в горизонтальном направлении = координату точки начала отсчета в горизонтальном направлении + смещение в горизонтальном направлении,
целевую координату в вертикальном направлении = координату точки начала отсчета в вертикальном направлении + смещение в вертикальном направлении;
если действие связано с движением глаз, бровей, киванием, поворотами головы или движением рта, точка начала отсчета является контрольной точкой; если действие связано с наклонами головы влево и вправо, точка начала отсчета является точкой пересечения осевой линии головы и нижней контурной линии головы;
В) создают видеоанимацию согласно целевой координате каждой контрольной точки в каждом кадре и общему числу кадров.
4. Способ по п.1, отличающийся тем, что определение общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра включает этапы:
пользователь задает общее число кадров, соответствующих действию, и коэффициент движения для каждого кадра, либо
предварительно задает общее число кадров, соответствующих действию, и коэффициент движения для каждого кадра.
5. Способ по п.3, отличающийся тем, что (когда действие связано с движением глаз или бровей) вычисление смещения каждой контрольной точки в каждом кадре, выполняемое согласно коэффициенту движения каждого кадра, включает:
смещение в горизонтальном направлении = (А_х-Src_x)×m_eyeCoef,
смещение в вертикальном направлении = (А_y-Src_y)×m_eyeCoef; где
(Src_x, Src_y) является исходной координатой контрольной точки, исходная координата контрольной точки - это координата контрольной точки в исходном изображении, полученном перед созданием видеоанимации; (А_х, А_y) является координатой точки пересечения отвесной линии и линии начала отсчета, причем отвесная линия проходит от исходной координаты контрольной точки к линии начала отсчета; когда действие связано с движением глаз, линия начала отсчета является линией, соединяющей углы глазной щели; когда действие связано с движением бровей, линия начала отсчета является осевой линией лица; m_eyeCoef является коэффициентом движения.
6. Способ по п.3, отличающийся тем, что (когда действие связано с наклонами головы влево и вправо) вычисление смещения каждой контрольной точки в каждом кадре, выполняемое согласно коэффициенту движения каждого кадра, включает:
смещение в горизонтальном направлении = (Src_x-Pivot_x)×cos(m_angle)-(Src_y-Pivot_y)×sin(m_angle),
смещение в вертикальном направлении = (Src_x-Pivot_x)×sin(m_angle)+(Src_y-Pivot_y)×cos(m_angle); где
(Src_x, Src_y) является исходной координатой контрольной точки, исходная координата контрольной точки является координатой контрольной точки в исходном изображении, полученном перед созданием видеоанимации; (Pivot_x, Pivot_y) является координатой точки начала отсчета; m_angle является коэффициентом движения.
7. Способ по п.3, отличающийся тем, что (когда действие связано с киванием или поворотами головы) вычисление смещения каждой контрольной точки в каждом кадре, выполняемое согласно коэффициенту движения каждого кадра, включает:
смещение в горизонтальном направлении = Src_x+K_i×v_angle×V_x,
смещение в вертикальном направлении = Src_y+K_i×v_angle×V_y; где
(Src_x, Src_y) является исходной координатой контрольной точки, исходная координата контрольной точки является координатой контрольной точки в исходном изображении, полученном перед созданием видеоанимации; K_i=Delta_1/Dis_1 и (V_x, V_y) является координатой стандартного вектора; когда действие связано с киванием головой, Delta_1 соответствует величине движения по вертикали при перемещении головы на фиксированный угол в градусах, Dis_1 соответствует максимальной длине головы по вертикали, стандартный вектор является вектором от самой верхней точки головы к самой нижней точке головы; когда действие связано с поворотами головы, Delta_1 соответствует величине движения по горизонтали при перемещении головы на фиксированный угол в градусах, Dis_1 соответствует максимальной длине головы по горизонтали, стандартный вектор является вектором от крайней левой точки головы к крайней правой точке головы; v_angle является коэффициентом движения.
8. Способ по п.3, отличающийся тем, что (когда действие связано с движением рта) вычисление смещения каждой контрольной точки в каждом кадре, выполняемое согласно коэффициенту движения каждого кадра, включает:
смещение в горизонтальном направлении = mouthWidth×cos(m_horAngle)×horizonCoef×horModelCoef+mouthHeight×cos(m_verAngle)×verticeCoef×verModelCoef,
смещение в вертикальном направлении = mouthWidth×sin(m_horAngle)×horizonCoef×horModelCoef+mouthHeight×sin(m_verAngle)×verticeCoef×verModelCoef; где
mouthWidth является расстоянием между левым углом рта и правым углом рта, mouthHeight является высотой от верхней точки осевой линии верхней губы до нижней точки осевой линии нижней губы, m_verAngle является углом между осевой линией головы и горизонталью, m_horAngle является углом между линией углов рта и горизонталью, horizonCoef и verticeCoef являются, соответственно, коэффициентами степени движения рта по горизонтали и вертикали, horModelCoef и verModelCoef являются, соответственно, коэффициентами движения для рта в горизонтальном и вертикальном направлениях.
9. Способ по п.1, отличающийся тем, что переданная пользователем команда является командой для одиночного действия или командой для нескольких действий.
10. Устройство для создания видеоанимации, содержащее:
блок приема, сконфигурированный для приема переданной пользователем команды;
блок определения, сконфигурированный для определения соответствующего команде действия согласно команде, а также для определения общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра;
вычислительный блок, сконфигурированный для вычисления смещения каждой контрольной точки в каждом кадре согласно коэффициенту движения для каждого кадра; и
блок генерации, сконфигурированный для создания видеоанимации согласно смещению каждой контрольной точки в каждом кадре и общему числу кадров.
11. Устройство по п.10, отличающееся тем, что действие является связанным с лицом действием, контрольная точка связана с контуром деталей лица и в число деталей лица входит, по крайней мере, одно из следующего: глаза, брови, рот, голова.
12. Устройство по п.11, отличающееся тем, что в состав блока генерации входят:
модуль вычисления координат, сконфигурированный для вычисления целевой координаты каждой контрольной точки в каждом кадре согласно смещению каждой контрольной точки в каждом кадре, причем смещение контрольной точки включает смещение в горизонтальном направлении и смещение в вертикальном направлении, целевая координата каждой контрольной точки является
целевой координатой в горизонтальном направлении = координатой точки начала отсчета в горизонтальном направлении + смещение в горизонтальном направлении,
целевой координатой в вертикальном направлении = координатой точки начала отсчета в вертикальном направлении + смещение в вертикальном направлении;
если действие связано с движением глаз, бровей, киванием, поворотами головы или движением рта, точка начала отсчета является контрольной точкой; если действие связано с наклонами головы влево и вправо, точка начала отсчета является точкой пересечения осевой линии головы и нижней контурной линии головы;
модуль генерации видео, сконфигурированный для создания видеоанимации согласно целевой координате каждой контрольной точки в каждом кадре и общему числу кадров.
13. Устройство по п.10, отличающееся тем, что в состав блока определения входят:
модуль пользовательского конфигурирования, сконфигурированный для задания пользователем общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра, либо
модуль конфигурирования, сконфигурированный для предварительного задания общего числа кадров, соответствующих действию, и коэффициента движения для каждого кадра.
14. Устройство по п.12, отличающееся тем, что (когда действие связано с движением глаз или бровей) вычислительный блок содержит:
вычислительный модуль для движений глаз, сконфигурированный для вычисления смещения глаз или бровей, причем смещение в горизонтальном направлении = (А_х-Src_x)×m_eyeCoef и смещение в вертикальном направлении = (А_у-Src_y)×m_eyeCoef; где
(Src_x, Src_y) является исходной координатой контрольной точки, исходная координата контрольной точки - это координата контрольной точки в исходном изображении, полученном перед созданием видеоанимации; (А_х, А_y) является координатой точки пересечения отвесной линии и линии начала отсчета, причем отвесная линия проходит от исходной координаты контрольной точки к линии начала отсчета; когда действие связано с движением глаз, линия начала отсчета является линией, соединяющей углы глазной щели; когда действие связано с движением бровей, линия начала отсчета является осевой линией головы; m_eyeCoef является коэффициентом движения.
15. Устройство по п.12, отличающееся тем, что (когда действие связано с наклонами головы влево и вправо) вычислительный блок содержит:
вычислительный модуль для наклонов головы, сконфигурированный для вычисления смещения при наклонах головы влево и вправо, причем смещение в горизонтальном направлении = (Src_x-Pivot_x)×cos(m_angle)-(Src_y-Pivot_y)×sin(m_angle) и смещение в вертикальном направлении = (Src_x-Pivot_x)×sin(m_angle)+(Src_y-Pivot_y)×cos(m_angle); где
(Src_x, Src_y) является исходной координатой контрольной точки, исходная координата контрольной точки является координатой контрольной точки в исходном изображении, полученном перед созданием видеоанимации; (Pivot_x, Pivot_y) является координатой точки начала отсчета; m_angle является коэффициентом движения.
16. Устройство по п.12, в котором (когда действие связано с киванием или поворотами головы) вычислительный блок содержит:
вычислительный модуль для движений головы, сконфигурированный для вычисления смещения при кивании или поворотах головы, причем
смещение в горизонтальном направлении = Src_x+K_i×v_angle×V_x,
смещение в вертикальном направлении = Src_y+K_i×v_angle×V_y; где
(Src_x, Src_y) является исходной координатой контрольной точки, исходная координата контрольной точки является координатой контрольной точки в исходном изображении, полученном перед созданием видеоанимации; K_i=Delta_1/Dis_1 и (V_x, V_y) является координатой стандартного вектора;
когда действие связано с киванием головой, Delta_1 соответствует величине движения по вертикали при перемещении головы на фиксированный угол в градусах, Dis_1 соответствует максимальной длине головы по вертикали, стандартный вектор является вектором от самой верхней точки головы к самой нижней точке головы; когда действие связано с поворотами головы, Delta_1 соответствует величине движения по горизонтали при перемещении головы на фиксированный угол в градусах, Dis_1 соответствует максимальной длине головы по горизонтали, стандартный вектор является вектором от крайней левой точки головы к крайней правой точке головы; v_angle является коэффициентом движения.
17. Устройство по п.12, в котором (когда действие связано с движением рта) вычислительный блок содержит:
вычислительный модуль для движений рта, сконфигурированный для вычисления смещения при движении рта, причем
смещение в горизонтальном направлении = mouthWidth×cos(m_horAngle)×horizonCoef×horModelCoef+mouthHeight×cos(m_verAngle)×verticeCoef×verModelCoef,
смещение в вертикальном направлении = mouthWidth×sin(m_horAngle)×horizonCoef×horModelCoef+mouthHeight×sin(m_verAngle)×verticeCoef×verModelCoef; где
mouthWidth является расстоянием между левым углом рта и правым углом рта, mouthHeight является высотой от верхней точки осевой линии верхней губы до нижней точки осевой линии нижней губы, m_verAngle является углом между осевой линией головы и горизонталью, m_horAngle является углом между линией углов глазной щели и горизонталью, horizonCoef и verticeCoef являются, соответственно, коэффициентами степени движения рта по горизонтали и вертикали, horModelCoef и verModelCoef являются, соответственно, коэффициентами движения для рта в горизонтальном и вертикальном направлениях.