ES2883548T3 - Procedimiento y aparato de generación de animación - Google Patents

Procedimiento y aparato de generación de animación Download PDF

Info

Publication number
ES2883548T3
ES2883548T3 ES17812585T ES17812585T ES2883548T3 ES 2883548 T3 ES2883548 T3 ES 2883548T3 ES 17812585 T ES17812585 T ES 17812585T ES 17812585 T ES17812585 T ES 17812585T ES 2883548 T3 ES2883548 T3 ES 2883548T3
Authority
ES
Spain
Prior art keywords
interpolations
level
interpolation
conflicting
tween
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES17812585T
Other languages
English (en)
Inventor
Tong Huang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Original Assignee
Advanced New Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Application granted granted Critical
Publication of ES2883548T3 publication Critical patent/ES2883548T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Un procedimiento para generar una animación, comprendiendo el procedimiento: obtener una primera pluralidad de interpolaciones en respuesta a la recepción de una instrucción para generar una animación, donde cada interpolación comprende un objeto de interpolación, un cuadro clave de inicio, un cuadro clave de finalización y una secuencia de cuadros intermedios que proporcionan una apariencia de que el cuadro clave de inicio evoluciona suavemente hacia el cuadro clave de finalización (S101); generar una o más líneas de tiempo cuando la pluralidad de interpolaciones de la primera pluralidad de interpolaciones es mayor que o igual a 2, donde cada línea de tiempo corresponde a una o más interpolaciones de la primera pluralidad de interpolaciones, y el número de líneas de tiempo en la una o más líneas de tiempo generadas es menor que el número de interpolaciones de la primera pluralidad de interpolaciones (S102); y generar una animación para una interpolación correspondiente en función de una línea de tiempo respectiva (S103), estando la generación caracterizada por: cuando la línea de tiempo corresponde a una segunda pluralidad de interpolaciones, i) obtener, en función de la línea de tiempo respectiva, un intervalo de tiempo para cada interpolación de la segunda pluralidad de interpolaciones, donde cada intervalo de tiempo comprende un tiempo de inicio que corresponde al cuadro clave de inicio de interpolación y un tiempo de finalización que corresponde al cuadro clave de finalización de interpolación, ii) determinar si hay uno o más grupos de interpolaciones conflictivas de nivel M de interpolaciones conflictivas de nivel M en la segunda pluralidad de interpolaciones, donde las interpolaciones conflictivas de nivel M de un grupo de interpolaciones conflictivas de nivel M tienen el mismo objeto de interpolación e intervalos de tiempo de intersección, M es un número natural y un valor inicial es un valor inicial de conteo predeterminado opcionalmente igual a 1 (S301), iii) en respuesta a la determinación de que hay un grupo de interpolaciones conflictivas de nivel M, a) identificar una interpolación objetivo en el grupo de interpolaciones conflictivas de nivel M, donde la interpolación objetivo comprende una interpolación conflictiva de nivel M con un tiempo de finalización asociado que es posterior a cualquier otro tiempo de finalización asociado a otras interpolaciones conflictivas de nivel M del grupo de interpolaciones conflictivas de nivel M, b) actualizar la interpolación objetivo desde una interpolación conflictiva de nivel M a una interpolación de nivel (M+1), lo que comprende etiquetar la interpolación objetivo como una interpolación de nivel (M+1), iv) después de haberse realizado la etapa iii) para cada uno de los uno o más grupos de interpolaciones conflictivas determinados del mismo nivel, incrementar el nivel y repetir las etapas ii) y iii) para el nivel incrementado, hasta que no haya ningún grupo de interpolaciones conflictivas de nivel (M+K) de interpolaciones conflictivas de nivel (M+K), donde K es un número natural mayor que o igual a 0 (S302), y v) generar una animación para una interpolación no conflictiva y una interpolación restante de nivel (M+K) en función de la línea de tiempo respectiva (S303).

Description

DESCRIPCIÓN
Procedimiento y aparato de generación de animación
CAMPO TÉCNICO
La presente patente se refiere al campo de las tecnologías de procesamiento de imágenes y, en particular, a un procedimiento y aparato de generación de animación.
ANTECEDENTES
Un elemento de lienzo (canvas) es un elemento de lenguaje de marcado de hipertexto (HTML), y el elemento de lienzo no tiene una función de dibujo por sí misma, sino que proporciona una interfaz de programación de aplicaciones (API) para admitir operaciones de dibujo de un cliente de secuencia de comandos.
En tecnologías relacionadas, las tecnologías de interpolación de movimiento (tween) basadas en línea de tiempo generalmente se utilizan para generar una animación. Sin embargo, en una implementación de este tipo se puede generar una pluralidad de elementos de lienzo durante la generación de una animación compleja con una pluralidad de objetos. Un cliente dibuja un lienzo completo para cada elemento de lienzo al reproducir la animación. En consecuencia, se pueden producir sobrecargas de rendimiento relativamente altas en el dispositivo. El documento US 8 134 558 B1 describe sistemas y procedimientos para editar una animación generada por ordenador a través de múltiples pares de cuadros clave.
RESUMEN
En vista de esto, la presente patente proporciona un procedimiento y un aparato de generación de animación para mitigar el problema de que se producen sobrecargas relativamente altas cuando se genera una animación compleja mediante el uso de tecnologías relacionadas.
La presente patente está definida por las reivindicaciones. La invención proporciona un procedimiento y aparato para resolver de forma iterativa conflictos temporales entre interpolaciones que tienen el mismo objeto de interpolación (tween).
En la presente patente, durante la generación de la animación, se generan líneas de tiempo menores que las interpolaciones. Al reproducir la animación, el equipo de usuario no tiene que dibujar lienzos de la misma cantidad que las interpolaciones, por lo que se reducen muchas operaciones de redibujado innecesarias y se reducen las sobrecargas de rendimiento del equipo de usuario causadas cuando el equipo de usuario reproduce una animación compleja.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
La FIG. 1 es un diagrama de flujo esquemático que ilustra un procedimiento de generación de animación, de acuerdo con una implementación de ejemplo de la presente solicitud.
La FIG. 2 es un diagrama esquemático que ilustra una línea de tiempo de cuadros clave, de acuerdo con una implementación de ejemplo de la presente solicitud.
La FIG. 3 es un diagrama de flujo esquemático que ilustra un procedimiento para generar una animación para una interpolación correspondiente en función de una línea de tiempo, de acuerdo con una implementación de ejemplo de la presente solicitud.
La FIG. 4 es un diagrama estructural esquemático que ilustra un dispositivo de generación de animación al que se aplica un aparato de generación de animación, de acuerdo con una implementación de ejemplo de la presente solicitud.
La FIG. 5 es un diagrama de bloques estructural que ilustra un aparato de generación de animación, de acuerdo con una implementación de ejemplo de la presente solicitud.
DESCRIPCIÓN DE IMPLEMENTACIONES
En este documento se describen en detalle implementaciones de ejemplo, y en los dibujos adjuntos se presentan ejemplos de las implementaciones de ejemplo. Cuando la siguiente descripción se refiere a los dibujos adjuntos, a menos que se especifique lo contrario, los mismos números en diferentes dibujos adjuntos representan elementos iguales o similares. Las implementaciones descritas en las siguientes implementaciones de ejemplo no representan todas las implementaciones de acuerdo con la presente solicitud. En cambio, solo son ejemplos de aparatos y procedimientos coherentes con algunos aspectos de la presente solicitud que se describen en detalle en las reivindicaciones adjuntas.
Los términos utilizados en la presente solicitud son meramente para ilustrar implementaciones específicas, y no pretenden limitar la presente solicitud. Los términos "un" y "el/la" de las formas en singular utilizadas en la presente solicitud y en las reivindicaciones adjuntas también pretenden incluir las formas en plural, a menos que se especifique claramente lo contrario en el contexto. Se debe entender además que el término "y/o" utilizado en la presente memoria descriptiva indica e incluye cualquiera o todas las combinaciones posibles de uno o más elementos enumerados asociados.
Se debe entender que, aunque los términos "primero", "segundo", "tercero", etc., se pueden utilizar en la presente solicitud para describir diversos tipos de información, la información no se limita a dichos términos. Estos términos sólo se utilizan para diferenciar la información de un mismo tipo. Por ejemplo, sin apartarse del alcance de la presente solicitud, la primera información también puede denominarse segunda información y, de manera similar, la segunda información puede denominarse primera información. Dependiendo del contexto, por ejemplo, la palabra "si" utilizada en el presente documento puede equivaler a "mientras", "cuando" o "en respuesta a determinar".
Una interpolación, también denominada animación interpolada, es una animación de gradiente generada entre dos cuadros clave (un cuadro clave de inicio y un cuadro clave de finalización). Cuando se genera una animación compleja con una pluralidad de objetos, un dispositivo de generación de animación genera habitualmente una línea de tiempo correspondiente para cada interpolación en función de interpolaciones que son establecidas por un productor. Cuando el equipo de usuario reproduce la animación, se genera un elemento de lienzo en función de cada línea de tiempo, y el equipo de usuario dibuja un lienzo completo correspondiente para cada elemento de lienzo. En consecuencia, se realizan muchas operaciones de redibujado innecesarias y se generan sobrecargas de rendimiento relativamente altas en el equipo de usuario.
Para mitigar el problema anterior, la presente solicitud proporciona un procedimiento de generación de animación para reducir eficazmente las sobrecargas de rendimiento de un dispositivo cuando el dispositivo reproduce una animación.
La FIG. 1 es un diagrama de flujo esquemático que ilustra un procedimiento de generación de animación, de acuerdo con una implementación de ejemplo de la presente solicitud.
Con referencia a la FIG. 1, el procedimiento de generación de animación se puede aplicar a un dispositivo de generación de animación. El dispositivo de generación de animación puede incluir un dispositivo inteligente de usuario final, tal como un teléfono inteligente, una tableta electrónica, un asistente digital personal (PDA) y un PC. El procedimiento de generación de animación puede entenderse como una lógica de procesamiento realizada por un cliente que se carga en el dispositivo de animación y que tiene una función de generación de animación, y el procedimiento de generación de animación incluye las siguientes etapas.
Etapa 101: Obtener una cantidad de interpolaciones después de recibirse una instrucción de generación de animación.
En la presente implementación, para generar una animación, un productor puede insertar una imagen seleccionada en el cliente como un cuadro clave, o un usuario puede crear un cuadro clave mediante una función de dibujo proporcionada por el cliente. Las implementaciones no se limitan en la presente solicitud. El cuadro clave es equivalente a una imagen original en una animación bidimensional, y es un cuadro correspondiente a una acción clave en movimiento o cambio de un rol o un objeto.
En la presente implementación, el productor puede insertar el cuadro clave y establecer una interpolación en función de una línea de tiempo de cuadros clave proporcionada por el cliente. Con referencia a una línea de tiempo de cuadros clave mostrada en la Fig. 2, las escalas en la línea de tiempo de cuadro clave se utilizan para indicar números de cuadro de cuadros clave. Por ejemplo, la escala 1 indica un cuadro clave con el número de cuadro 1, y la escala 5 indica un cuadro clave con el número de cuadro 5. El productor puede insertar un cuadro clave en la línea de tiempo de cuadros clave, por ejemplo, el productor puede insertar, en la escala 1, el cuadro clave con el número de cuadro 1 e insertar, en la escala 15, un cuadro clave con el número de cuadro 15. Después de insertar el cuadro clave, el usuario puede seleccionar dos cuadros clave utilizados para una interpolación. Opcionalmente, el usuario puede seleccionar un número de cuadro en la línea de tiempo de cuadros clave usando un ratón, y los cuadros clave en los dos lados del número de cuadro son, respectivamente, un cuadro clave de inicio y un cuadro clave de finalización de la presente interpolación. El cliente puede generar la interpolación basándose en el cuadro clave de inicio y en el cuadro clave de finalización.
Por ejemplo, aún con referencia a la línea de tiempo de cuadros clave mostrada en la Fig. 2, supóngase que el productor inserta tres cuadros clave y que los números de cuadro de los tres cuadros clave son, respectivamente, 1, 10 y 15. Cuando el productor selecciona el número de cuadro 5, el cliente puede determinar que un cuadro clave de inicio de la presente interpolación es un cuadro clave con el número de cuadro 1 y que un cuadro clave de finalización es un cuadro clave con el número de cuadro 10.
En la presente implementación, el productor puede establecer una pluralidad de interpolaciones basándose en las necesidades y en la línea de tiempo de cuadros clave proporcionada por el cliente. Por ejemplo, el productor puede tocar la línea de tiempo de cuadros clave dos veces para establecer dos interpolaciones. Con referencia a la información de interpolación mostrada en la Tabla 1, un número de cuadro del cuadro clave de inicio de una interpolación es 5, un número de cuadro del cuadro clave de finalización de la interpolación es 8, un número de cuadro del cuadro clave de inicio de la otra interpolación es 12 y un número de cuadro del cuadro clave de finalización de la otra interpolación es 18.
Tabla 1
Figure imgf000004_0001
En la presente implementación, el usuario generalmente inicia la instrucción de generación de animación después de que el usuario establezca una interpolación, y el cliente puede obtener la cantidad de interpolaciones después de recibir la instrucción de generación de animación.
Etapa 102: Generar una o más líneas de tiempo cuando la cantidad de interpolaciones es mayor que o igual a 2, donde cada línea de tiempo corresponde a una o más interpolaciones, y una cantidad de líneas de tiempo es menor que la cantidad de interpolaciones.
Basándose en la etapa 101, después de obtener la cantidad de interpolaciones, el cliente puede determinar primero si la cantidad de interpolaciones es mayor que o igual a 2. Cuando la cantidad de interpolaciones es 1, el cliente puede generar una animación con referencia a una solución de implementación en tecnologías relacionadas. Cuando la cantidad de interpolaciones es mayor que o igual a 2, el cliente puede generar líneas de tiempo menores que las interpolaciones, y cada línea de tiempo corresponde a una o más interpolaciones.
En la presente implementación, la cantidad de líneas de tiempo generadas puede establecerse por un desarrollador. En un ejemplo, cuando la cantidad de interpolaciones es mayor que o igual a 2, se puede generar una línea de tiempo, y la línea de tiempo corresponde a todas las interpolaciones. En otro ejemplo, cuando la cantidad de interpolaciones es mayor que o igual a 2, la cantidad de líneas de tiempo generadas puede ser la mitad de la cantidad de interpolaciones. Por ejemplo, suponiendo que la cantidad de interpolaciones es 8, se pueden generar cuatro líneas de tiempo y cada línea de tiempo corresponde a dos interpolaciones. De forma alternativa, suponiendo que la cantidad de interpolaciones es 9, se pueden generar cuatro líneas de tiempo, donde cada una de tres líneas de tiempo corresponde a dos interpolaciones, y la línea de tiempo restante corresponde a tres interpolaciones. Ciertamente, se pueden generar cinco líneas de tiempo, donde cada una de cuatro líneas de tiempo corresponde a dos interpolaciones, y la línea de tiempo restante corresponde a una interpolación. Cuando se genera una pluralidad de líneas de tiempo, una interpolación correspondiente a cada línea de tiempo puede determinarse aleatoriamente o puede determinarse en base a una regla específica; por ejemplo, las interpolaciones se asignan secuencialmente a las líneas de tiempo en orden ascendente de números de cuadro de los cuadros de inicio de las interpolaciones.
Etapa 103: Generar una animación para la interpolación correspondiente en función de la línea de tiempo.
En función de la etapa 102, después de que se genera la línea de tiempo, la animación se puede generar para la interpolación correspondiente en función de cada línea de tiempo.
En la presente implementación, la animación generada es esencialmente código Javascript, y un navegador de un equipo de usuario puede ejecutar el código Javascript para generar una animación para que el usuario la vea. En la presente etapa, puesto que la cantidad de líneas de tiempo generadas es menor que la cantidad de interpolaciones establecidas por el productor, la cantidad de líneas de tiempo en el código Javascript generado también es menor que la cantidad de interpolaciones. Al ejecutar el código Javascript, el equipo de usuario genera un lienzo y dibuja basándose en la cantidad de líneas de tiempo en el código Javascript, reduciendo así muchos redibujos innecesarios.
De las descripciones anteriores se desprende que, en la presente solicitud, durante la generación de la animación, se generan líneas de tiempo menores que las interpolaciones. Al reproducir la animación, el equipo de usuario no tiene que dibujar lienzos de la misma cantidad que las interpolaciones, por lo que se reducen muchas operaciones de redibujado innecesarias y se reducen las sobrecargas de rendimiento del equipo de usuario causadas cuando el equipo de usuario reproduce una animación compleja.
En un ejemplo, cuando una determinada línea de tiempo corresponde a una pluralidad de interpolaciones, con referencia a la Fig. 3, la generación de una animación para la interpolación correspondiente en función de la línea de tiempo incluye las siguientes etapas.
Etapa 301: Determinar si hay un grupo de interpolaciones conflictivas de nivel M en la pluralidad de interpolaciones, donde M es un número natural, y un valor inicial es un valor inicial de conteo predeterminado. En caso afirmativo, se puede realizar la etapa 302.
En la presente implementación, cuando una determinada línea de tiempo corresponde a una pluralidad de interpolaciones, primero se obtiene un objeto de interpolación de cada interpolación y se cuenta una cantidad de interpolaciones correspondientes en función de cada objeto de interpolación. Cuando una cantidad de interpolaciones correspondientes a un determinado objeto de interpolación es mayor que o igual a 2, en otras palabras, dos o más interpolaciones de una pluralidad de interpolaciones correspondientes a la línea de tiempo tienen el mismo objeto de interpolación, se determina si un tiempo de interpolación de uno cualquiera de las dos o más interpolaciones entra en conflicto con un tiempo de interpolación de otra interpolación. Si el tiempo de interpolación de cualquier interpolación entra en conflicto con el tiempo de interpolación de la otra interpolación, se determina que hay al menos un grupo de interpolaciones conflictivas de nivel M en la pluralidad de interpolaciones correspondientes a la línea de tiempo, y el grupo de interpolaciones conflictivas de nivel M incluye dicha cualquier interpolación y la otra interpolación.
Tabla 2
Figure imgf000005_0001
Por ejemplo, con referencia al ejemplo de la Tabla 2, supóngase que un valor inicial de M es 1 y que la línea de tiempo A corresponde a cinco interpolaciones. En la presente etapa se determina si existe un grupo de interpolaciones conflictivas de nivel 1 en las cinco interpolaciones. Primero se obtiene un objeto de interpolación de cada interpolación y, a continuación, se puede contar una cantidad de interpolaciones correspondiente a cada objeto de interpolación. Por ejemplo, el elemento de objeto de interpolación A corresponde a tres interpolaciones, y el elemento de objeto de interpolación B corresponde a dos interpolaciones.
En la presente implementación, se determina si un tiempo de interpolación de uno cualquiera de las tres interpolaciones correspondientes al elemento de objeto de interpolación A entra en conflicto con un tiempo de interpolación de otra interpolación. Opcionalmente, en relación con la interpolación 1, puede determinarse si el tiempo de interpolación de la interpolación 1 entra en conflicto con el tiempo de interpolación de la interpolación 2, y puede determinarse si el tiempo de interpolación de la interpolación 1 entra en conflicto con el tiempo de interpolación de la interpolación 4. El tiempo de interpolación puede representarse utilizando un intervalo entre un número de cuadro del cuadro clave de inicio de una interpolación y un número de cuadro del cuadro clave de finalización de la interpolación. Por ejemplo, el tiempo de interpolación de la interpolación 1 es [5, 8], y el tiempo de interpolación de la interpolación 2 es [6, 11]. Cuando se determina si el tiempo de interpolación de la interpolación 1 entra en conflicto con el tiempo de interpolación de la interpolación 2, puede determinarse si hay una intersección entre el tiempo de interpolación de la interpolación 1 y el tiempo de interpolación de la interpolación 2. Hay una intersección entre [5, 8] y [6, 11]. Entonces, puede determinarse que el tiempo de interpolación de la interpolación 1 entra en conflicto con el tiempo de interpolación de la interpolación 2 y que hay un grupo de interpolaciones conflictivas de nivel 1 en interpolaciones correspondientes al elemento de objeto de interpolación A. El grupo de interpolaciones conflictivas de nivel 1 incluye la interpolación 1 y la interpolación 2. Para facilitar la descripción, una interpolación en el grupo de interpolaciones conflictivas de nivel 1 puede denominarse interpolación conflictiva de nivel 1.
En la presente implementación, con referencia a la solución anterior, puede determinarse además que el tiempo de interpolación de la interpolación 1 no entra en conflicto con el tiempo de interpolación de la interpolación 4 y que el tiempo de interpolación de la interpolación 2 no entra en conflicto con el tiempo de interpolación de la interpolación 4. Entonces, puede determinarse que hay un grupo de interpolaciones conflictivas de nivel 1 en las tres interpolaciones correspondientes al elemento de objeto de interpolación A, y que el grupo de interpolaciones conflictivas de nivel 1 incluye una interpolación conflictiva 1 de nivel 1 y una interpolación conflictiva 2 de nivel 1.
Además, en cuanto a las dos interpolaciones correspondientes al elemento de objeto de interpolación B: interpolación 3 e interpolación 5, puede determinarse que el tiempo de interpolación de la interpolación 3 no entra en conflicto con el tiempo de interpolación de la interpolación 5 y que no hay un grupo de interpolaciones conflictivas de nivel 1 en las dos interpolaciones correspondientes al elemento de objeto de interpolación B.
En la presente implementación, una interpolación que no está incluida en el grupo de interpolaciones conflictivas de nivel 1 es una interpolación no conflictiva; por ejemplo, la interpolación 3, la interpolación 4 y la interpolación 5 son interpolaciones no conflictivas correspondientes a la línea de tiempo A.
Etapa 302: Actualizar una interpolación conflictiva de nivel M que corresponda al último tiempo de finalización en el grupo de interpolaciones conflictivas de nivel M con una interpolación conflictiva de nivel (M+1), y determinar si hay un grupo de interpolaciones conflictivas de nivel (M+1) en la interpolación conflictiva de nivel (M+1), hasta que no haya ningún grupo de interpolaciones conflictivas de nivel (M+K) en una interpolación conflictiva de nivel (M+K).
En función de un resultado de determinación de la etapa 301, cuando hay un grupo de interpolaciones conflictivas de nivel M en la pluralidad de interpolaciones correspondientes a la línea de tiempo, una interpolación conflictiva de nivel M que corresponde al último tiempo de finalización en cada grupo de interpolaciones conflictivas de nivel M se actualiza con una interpolación conflictiva de nivel (M+1). Esto se debe a que una imagen de cuadro que corresponde al último cuadro clave de finalización puede indicar mejor, generalmente, lo que un productor quiere lograr. Por lo tanto, cuando hay un grupo de interpolaciones conflictivas para el mismo objeto de interpolación, se utiliza una interpolación correspondiente al último cuadro clave de finalización. Una interpolación conflictiva de nivel M que tiene el mayor número de cuadro de un cuadro clave de finalización de interpolación en el grupo de interpolaciones conflictivas de nivel M se actualiza con la interpolación conflictiva de nivel (M+1).
Se sigue usando como ejemplo la información de interpolación mostrada en la Tabla 2. En cuanto al grupo de interpolaciones conflictivas de nivel 1, una interpolación conflictiva de nivel 1 que tiene el mayor número de cuadro de un cuadro clave de finalización de interpolación en el grupo de interpolaciones conflictivas de nivel 1 se actualiza con una interpolación conflictiva de nivel 2. Un número de cuadro de un cuadro clave de finalización de interpolación 1 es 8, y un número de cuadro de un cuadro clave de finalización de interpolación 2 es 11. A continuación, la interpolación 2 se actualiza con la interpolación conflictiva de nivel 2. De esta manera, la línea de tiempo A corresponde a una interpolación conflictiva de nivel 2: interpolación 2, y no incluye ningún grupo de interpolaciones conflictivas de nivel 2. Por lo tanto, se puede realizar la etapa 303.
Etapa 303: En función de la línea de tiempo, generar una animación para una interpolación no conflictiva correspondiente y la interpolación de nivel (M+K).
En la presente implementación, cuando no hay ningún grupo de interpolaciones conflictivas de nivel (M+K) en la interpolación conflictiva de nivel (M+K), la animación se puede generar para la interpolación no conflictiva correspondiente y la interpolación de nivel (M+K) en función de la línea de tiempo. La Tabla 2 se sigue usando como ejemplo. En la presente etapa, se puede generar una animación para la interpolación 2, la interpolación 3, la interpolación 4 y la interpolación 5 en función de la línea de tiempo A.
De las descripciones anteriores se desprende que, en función de la solución técnica proporcionada en la presente solicitud, cuando una línea de tiempo corresponde a una pluralidad de interpolaciones, se puede generar una animación para una interpolación que corresponde al último tiempo de finalización en interpolaciones conflictivas con el mismo objeto de interpolación y tiempo de interpolación conflictivo con el fin de evitar eficazmente la generación de animaciones conflictivas para el mismo objeto de interpolación y mejorar la experiencia del usuario.
En otro ejemplo de la presente solicitud, en función de la información de interpolación mostrada en la Tabla 2, supóngase que la línea de tiempo A corresponde además a la interpolación 6, que un objeto de interpolación de la interpolación 6 es el elemento A, que el número de cuadro de un cuadro clave de inicio es 10 y el número de cuadro de un cuadro clave de finalización es 12 y que el tiempo de interpolación de la interpolación 6 es [10, 12]. En la etapa 301, puede determinarse que hay dos grupos de interpolaciones conflictivas de nivel 1 en cuatro interpolaciones correspondientes al elemento de objeto de interpolación A: interpolación 1, interpolación 2, interpolación 4 e interpolación 6. El grupo de interpolaciones conflictivas 1 de nivel 1 incluye la interpolación 1 y la interpolación 2, y el grupo de interpolaciones conflictivas 2 de nivel 1 incluye la interpolación 2 y la interpolación 6.
En la etapa 302, la interpolación 2 que corresponde al último tiempo de finalización en el grupo de interpolaciones conflictivas 1 de nivel 1 se actualiza con una interpolación conflictiva de nivel 2, y la interpolación 6 que corresponde al último tiempo de finalización en el grupo de interpolaciones conflictivas 2 de nivel 1 se actualiza con una interpolación conflictiva de nivel 2. Entonces, puede determinarse, con referencia a un procedimiento de implementación en la etapa 301, si sigue habiendo hay un grupo de interpolaciones conflictivas (que puede denominarse grupo de interpolaciones conflictivas de nivel 2) en la interpolación 2 y la interpolación 6. Debido a que el tiempo de interpolación de la interpolación 2 es [6, 11], y hay una intersección entre el tiempo de interpolación [6, 11] de la interpolación 2 y el tiempo de interpolación [10, 12] de la interpolación 6, puede determinarse que hay un grupo de interpolaciones conflictivas de nivel 2, y el grupo de interpolaciones conflictivas de nivel 2 incluye la interpolación 2 y la interpolación 6. Puesto que la interpolación 6 corresponde al último tiempo de finalización, la interpolación 6 se actualiza con una interpolación conflictiva de nivel 3. De este modo, no hay ningún grupo de interpolaciones conflictivas de nivel 3 en las cuatro interpolaciones correspondientes al elemento de objeto de interpolación A, y se puede proceder a la generación de una animación. En la etapa 303, se puede generar una animación para la interpolación 3, la interpolación 4, la interpolación 5 y la interpolación 6 en función de la línea de tiempo A. Los detalles se omiten en la presente solicitud.
En correspondencia con la implementación del procedimiento de generación de animación, la presente solicitud proporciona además una implementación de un aparato de generación de animación.
La implementación del aparato de generación de animación en la presente solicitud se puede aplicar a un dispositivo de generación de animación. La implementación del aparato puede implementarse mediante software, hardware o una combinación de hardware y software. La implementación de software se utiliza como ejemplo. Como un dispositivo lógico, el aparato se forma transfiriendo una instrucción de programa informático correspondiente de una memoria no volátil a una memoria mediante un procesador del dispositivo de generación de animación en el que el aparato está ubicado. Desde la perspectiva de hardware, como se muestra en la Fig. 4, la Fig. 4 es un diagrama estructural que ilustra hardware de un dispositivo de generación de animación en el que está ubicado un aparato de generación de animación de la presente solicitud. Además de un procesador, una memoria, una interfaz de red y una memoria no volátil mostrada en la Fig.4, el dispositivo de generación de animación en el que está ubicado el aparato en la presente implementación puede incluir generalmente otro hardware basado en funciones concretas del dispositivo de generación de animación. Los detalles se omiten aquí por simplicidad.
La FIG. 5 es un diagrama de bloques estructural que ilustra un aparato de generación de animación, de acuerdo con una implementación de ejemplo de la presente solicitud.
Con referencia a la Fig. 5, el aparato de generación de animación 400 se puede aplicar al dispositivo de generación de animación mostrado en la Fig. 4, e incluye una unidad de adquisición de cantidad 401, una unidad de creación de línea de tiempo 402 y una unidad de generación de animación 403. La unidad de generación de animación 403 puede incluir además una subunidad de determinación de conflicto 4031, una subunidad de actualización 4032 y una subunidad de generación de animación 4033.
La unidad de adquisición de cantidad 401 está configurada para obtener una cantidad de interpolaciones después de recibirse una instrucción de generación de animación.
La unidad de creación de línea de tiempo 402 está configurada para generar una o más líneas de tiempo cuando la cantidad de interpolaciones es mayor que o igual a 2. Cada línea de tiempo corresponde a una o más interpolaciones, y una cantidad de líneas de tiempo es menor que la cantidad de interpolaciones.
La unidad de generación de animación 403 está configurada para generar una animación para la interpolación correspondiente en función de la línea de tiempo.
La subunidad de determinación de conflicto 4031 está configurada para determinar si hay un grupo de interpolaciones conflictivas de nivel M en la pluralidad de interpolaciones cuando la línea de tiempo corresponde a una pluralidad de interpolaciones. Las interpolaciones conflictivas de nivel M en el grupo de interpolaciones conflictivas de nivel M tienen el mismo objeto de interpolación y tiempo de interpolación conflictiva, M es un número natural, y un valor inicial es un valor inicial de conteo predeterminado.
La unidad de actualización 4032 está configurada para actualizar una interpolación conflictiva de nivel M que corresponda al último tiempo de finalización en el grupo de interpolaciones conflictivas de nivel M con una interpolación conflictiva de nivel (M+1), y determinar si hay un grupo de interpolaciones conflictivas de nivel (M+1) en la interpolación conflictiva de nivel (M+1), hasta que no haya ningún grupo de interpolaciones conflictivas de nivel (M+K) en una interpolación conflictiva de nivel (M+K) cuando existe el grupo de interpolaciones conflictivas de nivel M. K es un número natural mayor que o igual a 0.
La subunidad de generación de animación 4033 está configurada para generar una animación para una interpolación no conflictiva correspondiente y la interpolación de nivel (M+K) en función de la línea de tiempo.
Opcionalmente, la subunidad de determinación de conflicto 4031 está configurada para obtener un objeto de interpolación de cada interpolación; cuando dos o más interpolaciones tienen el mismo objeto de interpolación, determinar si un tiempo de interpolación de una cualquiera de las dos o más interpolaciones entra en conflicto con un tiempo de interpolación de otra interpolación; y si el tiempo de interpolación de la cualquier interpolación entra en conflicto con el tiempo de interpolación de la otra interpolación, determinar que hay al menos un grupo de interpolaciones conflictivas de nivel M en la pluralidad de interpolaciones. El grupo de interpolaciones conflictivas de nivel M incluye la cualquier interpolación y la otra interpolación.
Opcionalmente, la subunidad de determinación de conflicto 4031 determina si hay una intersección entre un tiempo de interpolación entre un cuadro clave de inicio y un cuadro clave de finalización de la cualquier interpolación y un tiempo de interpolación entre un cuadro clave de inicio y un cuadro clave de finalización de la otra interpolación; y si hay una intersección, determina que el tiempo de interpolación de la cualquier interpolación entra en conflicto con el tiempo de interpolación de la otra interpolación.
Opcionalmente, la subunidad de actualización 4032 actualiza una interpolación conflictiva de nivel M que tiene el mayor número de cuadro de un cuadro clave de finalización de interpolación en el grupo de interpolaciones conflictivas de nivel M se actualiza con la interpolación conflictiva de nivel (M+1).
En lo que respecta a un proceso de implementación de funciones y roles de cada unidad en el aparato, se puede hacer referencia a un proceso de implementación de etapas correspondientes en el procedimiento anterior. Los detalles se omiten aquí por simplicidad.
Dado que una implementación de aparato corresponde básicamente a una implementación de procedimiento, en lo que respecta a partes relacionadas, se puede hacer referencia a descripciones relacionadas en la implementación de procedimiento. La implementación de aparato descrita anteriormente es simplemente un ejemplo. Las unidades descritas como partes separadas pueden estar, o no, físicamente separadas, y las partes mostradas como unidades pueden ser, o no, unidades físicas, y pueden estar ubicadas en una posición, o pueden estar distribuidas en una pluralidad de unidades de red. Algunos o todos los módulos o unidades se pueden seleccionar en función de las necesidades reales para lograr los objetivos de las soluciones de la presente solicitud. Un experto en la técnica puede entender e implementar las implementaciones de la presente solicitud sin esfuerzos creativos.
Las descripciones anteriores son simplemente implementaciones de ejemplo de la presente patente y no pretenden limitar la presente invención, que está definida por las reivindicaciones adjuntas.

Claims (6)

REIVINDICACIONES
1. Un procedimiento para generar una animación, comprendiendo el procedimiento:
obtener una primera pluralidad de interpolaciones en respuesta a la recepción de una instrucción para generar una animación, donde cada interpolación comprende un objeto de interpolación, un cuadro clave de inicio, un cuadro clave de finalización y una secuencia de cuadros intermedios que proporcionan una apariencia de que el cuadro clave de inicio evoluciona suavemente hacia el cuadro clave de finalización (S101);
generar una o más líneas de tiempo cuando la pluralidad de interpolaciones de la primera pluralidad de interpolaciones es mayor que o igual a 2, donde cada línea de tiempo corresponde a una o más interpolaciones de la primera pluralidad de interpolaciones, y el número de líneas de tiempo en la una o más líneas de tiempo generadas es menor que el número de interpolaciones de la primera pluralidad de interpolaciones (S102); y
generar una animación para una interpolación correspondiente en función de una línea de tiempo respectiva (S103), estando la generación caracterizada por:
cuando la línea de tiempo corresponde a una segunda pluralidad de interpolaciones,
i) obtener, en función de la línea de tiempo respectiva, un intervalo de tiempo para cada interpolación de la segunda pluralidad de interpolaciones, donde cada intervalo de tiempo comprende un tiempo de inicio que corresponde al cuadro clave de inicio de interpolación y un tiempo de finalización que corresponde al cuadro clave de finalización de interpolación,
ii) determinar si hay uno o más grupos de interpolaciones conflictivas de nivel M de interpolaciones conflictivas de nivel M en la segunda pluralidad de interpolaciones, donde las interpolaciones conflictivas de nivel M de un grupo de interpolaciones conflictivas de nivel M tienen el mismo objeto de interpolación e intervalos de tiempo de intersección, M es un número natural y un valor inicial es un valor inicial de conteo predeterminado opcionalmente igual a 1 (S301),
iii) en respuesta a la determinación de que hay un grupo de interpolaciones conflictivas de nivel M, a) identificar una interpolación objetivo en el grupo de interpolaciones conflictivas de nivel M, donde la interpolación objetivo comprende una interpolación conflictiva de nivel M con un tiempo de finalización asociado que es posterior a cualquier otro tiempo de finalización asociado a otras interpolaciones conflictivas de nivel M del grupo de interpolaciones conflictivas de nivel M, b) actualizar la interpolación objetivo desde una interpolación conflictiva de nivel M a una interpolación de nivel (M+1), lo que comprende etiquetar la interpolación objetivo como una interpolación de nivel (M+1),
iv) después de haberse realizado la etapa iii) para cada uno de los uno o más grupos de interpolaciones conflictivas determinados del mismo nivel, incrementar el nivel y repetir las etapas ii) y iii) para el nivel incrementado, hasta que no haya ningún grupo de interpolaciones conflictivas de nivel (M+K) de interpolaciones conflictivas de nivel (M+K), donde K es un número natural mayor que o igual a 0 (S302), y
v) generar una animación para una interpolación no conflictiva y una interpolación restante de nivel (M+K) en función de la línea de tiempo respectiva (S303).
2. El procedimiento de acuerdo con la reivindicación 1, en el que determinar si hay un grupo de interpolaciones conflictivas de nivel M de interpolaciones conflictivas de nivel M en la segunda pluralidad de interpolaciones comprende:
obtener un objeto de interpolación de cada interpolación en la segunda pluralidad de interpolaciones;
cuando dos o más interpolaciones de la segunda pluralidad de interpolaciones tienen el mismo objeto de interpolación, determinar si un intervalo de tiempo de una cualquiera de las dos o más interpolaciones de la segunda pluralidad de interpolaciones se interseca con un intervalo de tiempo de otra de las dos o más interpolaciones de la segunda pluralidad de interpolaciones; y
en respuesta a la determinación de que un intervalo de tiempo de una cualquiera de las dos o más interpolaciones de la segunda pluralidad de interpolaciones se interseca con un intervalo de tiempo de otra de las dos o más interpolaciones en la segunda pluralidad de interpolaciones, determinar que hay al menos un grupo de interpolaciones conflictivas de nivel M en la segunda pluralidad de interpolaciones, donde el grupo de interpolaciones conflictivas de nivel M comprende la una cualquiera de las dos o más interpolaciones de la segunda pluralidad de interpolaciones y la otra de las dos o más interpolaciones en la segunda pluralidad de interpolaciones.
3. El procedimiento de acuerdo con la reivindicación 2, en el que determinar si el intervalo de tiempo de una cualquiera de las dos o más interpolaciones de la segunda pluralidad de interpolaciones se interseca con un intervalo de tiempo de otra de las dos o más interpolaciones de la segunda pluralidad de interpolaciones comprende:
determinar si hay una intersección entre
i) un intervalo de tiempo entre un cuadro clave de inicio y un cuadro clave de finalización de la una cualquiera de las dos o más interpolaciones y
ii) un intervalo de tiempo entre un cuadro clave de inicio y un cuadro clave de finalización de la otra de las dos o más interpolaciones,
y en respuesta a la determinación de que hay una intersección, determinar que el intervalo de tiempo de la una cualquiera de las dos o más interpolaciones se interseca con el intervalo de tiempo de la otra de las dos o más interpolaciones.
4. El procedimiento de acuerdo con la reivindicación 1, en el que actualizar la interpolación objetivo desde una interpolación conflictiva de nivel M a una interpolación conflictiva de nivel (M+1) comprende:
actualizar una interpolación conflictiva de nivel M que tiene el mayor número de cuadro de un cuadro clave de finalización de interpolación en el grupo de interpolaciones conflictivas de nivel M con la interpolación conflictiva de nivel (M+1).
5. El procedimiento de acuerdo con una cualquiera de las reivindicaciones 1 a 4, en el que la línea de tiempo respectiva corresponde a una pluralidad de interpolaciones, y en el que generar la animación para la interpolación correspondiente en función de la línea de tiempo respectiva comprende:
usar un único objeto de interpolación que corresponde al último tiempo de finalización de una pluralidad de objetos de interpolación con el mismo objeto de interpolación y que tiene intervalos de tiempo conflictivos.
6. Un aparato de generación de una animación, comprendiendo el aparato una pluralidad de módulos configurados para realizar el procedimiento de una cualquiera de las reivindicaciones 1 a 5.
ES17812585T 2016-06-17 2017-06-05 Procedimiento y aparato de generación de animación Active ES2883548T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610440283.0A CN106887030B (zh) 2016-06-17 2016-06-17 一种动画生成方法和装置
PCT/CN2017/087132 WO2017215474A1 (zh) 2016-06-17 2017-06-05 一种动画生成方法和装置

Publications (1)

Publication Number Publication Date
ES2883548T3 true ES2883548T3 (es) 2021-12-09

Family

ID=59175498

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17812585T Active ES2883548T3 (es) 2016-06-17 2017-06-05 Procedimiento y aparato de generación de animación

Country Status (12)

Country Link
US (1) US10679399B2 (es)
EP (1) EP3474234B1 (es)
JP (1) JP6742643B2 (es)
KR (1) KR102151364B1 (es)
CN (1) CN106887030B (es)
ES (1) ES2883548T3 (es)
MY (1) MY193891A (es)
PH (1) PH12018502666A1 (es)
PL (1) PL3474234T3 (es)
SG (1) SG11201811171RA (es)
TW (1) TWI684954B (es)
WO (1) WO2017215474A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727825A (zh) * 2019-09-20 2020-01-24 彩讯科技股份有限公司 动画播放的控制方法、装置、服务器和存储介质
CN111753241A (zh) * 2020-07-01 2020-10-09 浪潮云信息技术股份公司 一种基于canvas绘制多功能时间模板的方法及系统
CN118071892B (zh) * 2024-04-16 2024-08-09 中国空气动力研究与发展中心计算空气动力研究所 流场关键帧动画生成方法及装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173623B2 (en) * 2003-05-09 2007-02-06 Microsoft Corporation System supporting animation of graphical display elements through animation object instances
US7598956B2 (en) * 2004-04-15 2009-10-06 Microsoft Corporation Blended object attribute keyframing model
US7342586B2 (en) * 2004-09-13 2008-03-11 Nbor Corporation System and method for creating and playing a tweening animation using a graphic directional indicator
US7336280B2 (en) 2004-11-18 2008-02-26 Microsoft Corporation Coordinating animations and media in computer display output
US20140300610A1 (en) * 2007-11-16 2014-10-09 Adobe Systems Incorporated System and method for using time re-mapping for computer-generated animation
US8134558B1 (en) * 2007-12-06 2012-03-13 Adobe Systems Incorporated Systems and methods for editing of a computer-generated animation across a plurality of keyframe pairs
US20110096076A1 (en) * 2009-10-27 2011-04-28 Microsoft Corporation Application program interface for animation
JP2013042309A (ja) 2011-08-12 2013-02-28 Sony Corp タイムライン動作制御装置、タイムライン動作制御方法、プログラムおよび画像処理装置
ES2625263T3 (es) 2011-09-27 2017-07-19 Huawei Technologies Co., Ltd. Procedimiento y aparato para generar animación de metamorfosis
CN104142820B (zh) * 2014-02-12 2016-03-16 腾讯科技(深圳)有限公司 一种动画制作方法、装置和系统

Also Published As

Publication number Publication date
CN106887030B (zh) 2020-03-06
US20190122413A1 (en) 2019-04-25
WO2017215474A1 (zh) 2017-12-21
TWI684954B (zh) 2020-02-11
SG11201811171RA (en) 2019-01-30
EP3474234A1 (en) 2019-04-24
PL3474234T3 (pl) 2021-11-08
EP3474234B1 (en) 2021-05-19
MY193891A (en) 2022-10-31
TW201801045A (zh) 2018-01-01
US10679399B2 (en) 2020-06-09
PH12018502666A1 (en) 2019-10-07
CN106887030A (zh) 2017-06-23
JP2019523950A (ja) 2019-08-29
JP6742643B2 (ja) 2020-08-19
KR102151364B1 (ko) 2020-09-03
EP3474234A4 (en) 2019-07-03
KR20190020066A (ko) 2019-02-27

Similar Documents

Publication Publication Date Title
ES2883548T3 (es) Procedimiento y aparato de generación de animación
CN103809964B (zh) 用线程组执行顺序代码的系统和方法和包含其的simt处理器
US9600349B2 (en) TASKS—RCU detection of tickless user mode execution as a quiescent state
US9965432B2 (en) Handling CPU hotplug events in RCU without sleeplocks
JP2005071109A (ja) マルチプロセッサシステムの同期方法
EP3230861B1 (en) Technologies for fast synchronization barriers for many-core processing
US20080028414A1 (en) Efficient processing of operator graphs representing three-dimensional character animation
US9135739B2 (en) Optimizing graph evaluation
US10013290B2 (en) System and method for synchronizing threads in a divergent region of code
JP2020187736A (ja) 地域的特徴を有する分類器学習のための学習データ生成方法およびそのシステム
US20200310766A1 (en) Generating vectorized control flow using reconverging control flow graphs
US20180349058A1 (en) Buffer-based update of state data
CN101310303A (zh) 用于显示高分辨率图像数据和时变低分辨率图像数据的方法
US20150135110A1 (en) Utilizing object cloning to enable nested drag and drop
CN108171778A (zh) 一种可视化呈现数据的处理、回放方法、装置及存储介质
CN107103636B (zh) 多表示相关图的系统和方法
CN106844044B (zh) 一种数据处理方法和装置
CN116301775A (zh) 基于复位树原型图的代码生成方法、装置、设备及介质
TWI507978B (zh) 圖形管線之外部驗證技術
EP3770863A1 (en) Multiplex pixel distribution for multi-machine rendering
CN109284481B (zh) 一种提示文本处理方法、装置及计算机可读存储介质
US9367221B2 (en) System and method for sequencing rotatable images
US20240257449A1 (en) Generating hard object shadows for general shadow receivers within digital images utilizing height maps
WO2023000078A1 (en) Method and system for animating hair with resolution independent fiber deformation
Isaacson Picture-system models and computer system design.