KR102151364B1 - 애니메이션 생성 방법 및 장치 - Google Patents

애니메이션 생성 방법 및 장치 Download PDF

Info

Publication number
KR102151364B1
KR102151364B1 KR1020197001612A KR20197001612A KR102151364B1 KR 102151364 B1 KR102151364 B1 KR 102151364B1 KR 1020197001612 A KR1020197001612 A KR 1020197001612A KR 20197001612 A KR20197001612 A KR 20197001612A KR 102151364 B1 KR102151364 B1 KR 102151364B1
Authority
KR
South Korea
Prior art keywords
tween
level
tweens
colliding
animation
Prior art date
Application number
KR1020197001612A
Other languages
English (en)
Other versions
KR20190020066A (ko
Inventor
통 후앙
Original Assignee
알리바바 그룹 홀딩 리미티드
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 알리바바 그룹 홀딩 리미티드 filed Critical 알리바바 그룹 홀딩 리미티드
Publication of KR20190020066A publication Critical patent/KR20190020066A/ko
Application granted granted Critical
Publication of KR102151364B1 publication Critical patent/KR102151364B1/ko

Links

Images

Classifications

    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • 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

본 출원은 애니메이션 생성 방법 및 장치를 제공하고, 상기 방법은, 애니메이션 생성 명령을 수신한 후에 트윈의 양을 취득하는 단계; 트윈의 양이 2보가 크거나 같을 때 하나 이상의 타임라인 - 각 타임라인은 하나 이상의 트윈에 대응하고 타임라인의 양은 트윈의 양보다 적음 - 을 생성하는 단계; 및 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성하는 단계를 포함한다. 본 출원에서, 애니메이션 생성 중에, 트윈보다 적은 타임라인이 생성된다. 애니메이션을 재생할 때, 사용자 장비는 트윈과 동일 양의 캔버스를 그릴 필요가 없어서, 다수의 불필요한 다시 그리기 동작이 감소되고 사용자 장비가 복잡한 애니메이션을 재생할 때 야기되는 사용자 장비의 성능 오버헤드가 감소된다.

Description

애니메이션 생성 방법 및 장치
본 출원은 그 전체가 참조에 의해 여기에 포함되며, 발명의 명칭이 "ANIMATION GENERATION METHOD AND APPARATUS"인 중국 특허 출원 No. 201610440283.0(2016년 6월 17일 출원)에 대한 우선권을 주장한다.
본 출원은 이미지 프로세싱 기술의 분야에 관한 것이고, 특히 애니메이션 생성 방법 및 장치에 관한 것이다.
캔버스 엘리먼트는 HTML(Hypertext Markup Language) 엘리먼트이며, 캔버스 엘리먼트 자체에는 그리기 기능이 없지만, 스크립트 클라이언트의 그리기 동작을 지원하는 API(Application Programming Interface)가 있다.
관련 기술에서, 애니메이션을 생성하기 위해 통상적으로 타임라인 기반 트윈 기술(timeline-based tween technology)이 사용된다. 그러나, 이러한 구현예에서, 복수의 오브젝트로 복잡한 애니메이션을 생성하는 중에 복수의 캔버스 엘리먼트가 생성될 수 있다. 클라이언트는 애니메이션을 재생할 때 각 캔버스 엘리먼트에 대해 전체 캔버스를 그린다. 따라서 상대적으로 높은 성능 오버헤드가 디바이스에 생성될 수 있다.
이를 고려하여, 본 출원은 관련 기술을 이용하여 복잡한 애니메이션이 생성될 때 상대적으로 높은 오버헤드가 발생하는 문제점을 완화하기 위한 애니메이션 생성 방법 및 장치를 제공한다.
본 출원은 후술하는 기술 솔루션을 사용함으로써 구현된다.
애니메이션 생성 명령을 수신한 후에 트윈(tween)의 양(quantity)을 취득하는 단계; 트윈의 양이 2보다 크거나 같을 때 하나 이상의 타임라인 - 각 타임라인은 하나 이상의 트윈에 대응하고, 타임라인의 양은 트윈의 양보다 적음 - 을 생성하는 단계; 및 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성하는 단계를 포함하는 애니메이션 생성 방법이 제공된다.
애니메이션 생성 명령이 수신된 후에, 트윈의 양을 취득하도록 구성된 양 취득 유닛; 트윈의 양이 2보다 크거나 같을 때 하나 이상의 타임라인 - 각 타임라인은 하나 이상의 트윈에 대응하고 타임라인의 양은 트윈의 양보다 적음 - 을 생성하도록 구성된 타임라인 생성 유닛; 및 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성하도록 구성된 애니메이션 생성 유닛을 포함하는 애니메이션 생성 장치가 제공된다.
본 출원에서, 애니메이션의 생성 중에, 트윈보다 적은 타임라인이 생성된다는 것을 이전 설명으로부터 볼 수 있다. 애니메이션을 재생할 때, 사용자 장비는 트윈과 동일 양의 캔버스를 그릴 필요가 없어서, 다수의 불필요한 다시 그리기 동작이 감소되고 사용자 장비가 복잡한 애니메이션을 재생할 때 야기되는 사용자 장비의 성능 오버헤드가 감소된다.
도 1은 본 출원의 예시적 구현예에 따른, 애니메이션 생성 방법을 예시한 개략적 플로우차트이다.
도 2는 본 출원의 예시적 구현예에 따른, 키 프레임 타임라인을 예시한 개략적 다이어그램이다.
도 3은 본 출원의 제1 구현예에 따른, 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성하는 방법을 예시한 개략적 플로우차트이다.
도 4는 본 출원의 예시적 구현예에 따른, 애니메이션 생성 장치가 적용된 애니메이션 생성 디바이스를 예시한 개략적인 구조 다이어그램이다.
도 5는 본 출원의 예시적 구현예에 따른, 애니메이션 생성 장치를 예시한 구조적 블록 다이어그램이다.
여기에 예시적 구현예가 상세히 설명되고, 예시적 구현예의 실시예가 첨부 도면에서 제시된다. 첨부 도면과 후속 설명이 관련될 때, 다르게 언급하지 않으면, 상이한 첨부 도면에서의 동일한 도면부호는 동일 또는 유사한 엘리먼트를 나타낸다. 이하의 예시적 구현예에서 설명되는 구현예는 본 출원에 따른 모든 구현예를 나타내지 않는다. 대신에, 이것들은 첨부된 청구 범위에서 상세히 설명되는 본 출원의 일부 양태와 일치하는 장치 및 방법의 단지 예일 뿐이다.
본 출원에서 사용되는 용어는 특정 구현예를 예시하기 위한 것일 뿐이며, 본 출원을 한정하려는 의도는 없다. 본 출원에서 사용된 단수 형태의 "a" 및 "the"라는 용어는 문맥상 명확하게 달리 규정되지 않는 한, 복수 형태를 포함하고자 한다. 또한, 본 명세서에서 사용된 "및/또는"이라는 용어는 하나 이상의 관련 열거된 항목의 임의의 또는 모든 가능한 조합을 나타내며 포함한다.
"제1", "제2", "제3" 등의 용어가 다양한 타입의 정보를 설명하기 위해 본 출원에서 사용될 수 있지만, 정보는 용어에 한정되지 않는다는 것을 이해해야 한다. 이 용어들은 동일 타입의 정보를 구분하기 위해서만 사용된다. 예를 들어, 본 출원의 범위를 벗어나지 않고, 제1 정보가 제2 정보로도 지칭될 수 있고, 유사하게, 제2 정보가 제1 정보로 지칭될 수 있다. 문맥에 따라 예를 들어, 여기에서 사용된 "if"라는 단어는 "while", "when", 또는 "결정에 대한 응답"으로 설명될 수 있다.
트윈 애니메이션(tween animation)으로도 지칭되는 트윈(tween)은 2개의 키 프레임(시작 키 프레임 및 종료 키 프레임) 사이에서 생성되는 그래디언트 애니메이션(gradient animation)이다. 복수의 오브젝트(object)로 복합한 애니메이션을 생성할 때, 애미메이션 생성 디바이스는 통상적으로 프로듀서(producer)에 의해 설정되는 트윈에 기초하여 각 트윈에 대한 대응하는 타임라인을 생성한다. 사용자 장비가 애니메이션을 재생할 때, 캔버스 엘리먼트는 각 타임라인에 기초하여 생성되고, 사용자 장비는 각 캔버스 엘리먼트에 대하여 대응하는 전체 캔버스를 그린다. 따라서, 다수의 불필요한 다시 그리기 동작이 초래되고, 상대적으로 높은 성능 오버헤드가 사용자 장비에 발생된다.
전술한 문제점을 완화하기 위해, 본 출원은 디바이스가 애니메이션을 재생할 때 성능 오버헤드를 효과적으로 감소시기키 위한 애니메이션 생성 방법을 제공한다.
도 1은 본 출원의 예시적 구현예에 따른, 애니메이션 생성 방법을 예시한 개략적 플로우차트이다.
도 1을 참조하면, 애니메이션 생성 방법이 애니메이션 생성 디바이스에 적용될 수 있다. 애니메이션 생성 디바이스는, 스마트폰, 태블릿 컴퓨터, PDA(personal digital assistant), 및 PC 등의 지능형 엔드 유저 디바이스(intelligent end-user device)를 포함할 수 있다. 애니메이션 생성 방법은 애니메이션 디바이스에 탑재되고 애니메이션 생성 기능을 갖는 클라이언트에 의해 수행되는 프로세싱 로직으로 이해될 수 있으며, 애니메이션 생성 방법은 이하의 단계를 포함한다.
단계 101: 애니메이션 생성 명령을 수신한 후에 트윈의 양을 취득한다.
본 구현예에서, 애니메이션을 생성하기 위해, 프로듀서가 선택된 픽쳐(picture)를 클라이언트에 키 프레임으로서 삽입하거나, 사용자가 클라이언트에 의해 제공되는 그리기 기능을 사용하여 기 프레임을 그릴 수 있다. 본 출원에서 구현예는 제한되지 않는다. 키 프레임은, 2차원 애니메이션의 원본 이미지와 동일하며, 롤(role)이나 오브젝트의 이동 또는 변경시 키 액션(key action)에 대응하는 프레임이다.
본 구현예에서, 프로듀서는 키 프레임을 삽입하고 클라이언트에 의해 제공된 키 프레임 타임라인에 기초하여 트윈을 설정할 수 있다. 도 2에 도시된 키 프레임 타임라인을 참조하면, 키 프레임 타임라인에서의 스케일(scale)이 키 프레임의 프레임 넘버를 표시하는데 사용된다. 예를 들어, 스케일 1은 프레임 넘버 1을 가진 키 프레임을 나타내고, 스케일 5는 프레임 넘버 5를 가진 키 프레임을 나타낸다. 프로듀서는 키 프레임 타임라인에 키 프레임을 삽입할 수 있다. 예를 들어, 프로듀서는 스케일 1에서 키 프레임을 프레임 넘버 1로 삽입할 수 있고, 스케일 15에서 키 프레임을 프레임 넘버 15로 삽입할 수 있다. 키 프레임을 삽입한 후에, 사용자는 트윈에 대하여 사용된 2개의 키 프레임을 선택할 수 있다. 선택적으로, 사용자는 마우스를 사용하여 키 프레임 타임 라인에서 프레임 넘버를 선택할 수 있으며, 프레임 넘버의 양측의 키 프레임은 각각 현재 트윈의 시작 키 프레임과 종료 키 프레임이다. 클라이언트는 시작 키 프레임 및 종료 키 프레임에 기초하여 트윈을 생성할 수 있다.
예를 들어, 도 2에 도시된 키 프레임 타임라인을 계속 참조하면, 프로듀서가 3개의 키 프레임을 삽입하고, 3개의 키 프레임의 프레임 넘버는 각각 1, 10, 및 15인 것으로 가정한다. 프로듀서가 프레임 넘버 5를 선택할 때, 클라이언트는, 현재 트윈의 시작 키 프레임은 프레임 넘버 1을 가진 키 프레임이고, 종료 키 프레임은 프레임 넘버 10을 가진 키 프레임이라고 결정할 수 있다.
본 구현예에서, 프로듀서는 필요에 따라 그리고 클라이언트가 제공한 키 프레임 타임라인에 기초하여 복수의 트윈을 설정할 수 있다. 예를 들어, 프로듀서는 2개의 트윈을 설정하기 위해 키 프레임 타임라인을 2회 탭(tap)할 수 있다. 표 1에 도시된 트윈 정보를 참조하면, 트윈의 시작 키 프레임의 프레임 넘버가 5이고, 트윈의 종료 키 프레임의 프레임 넘버가 8이고, 다른 트윈의 시작 키 프레임의 프레임 넘버가 12이고, 다른 트윈의 종료 키 프레임의 프레임 넘버가 18이다.
[표 1]
본 구현예에서, 애니메이션 생성 명령은 통상적으로 사용자가 트윈을 설정한 후에 사용자에 의해 트리거되고(triggered), 클라이언트는 애니메이션 생성 명령을 수신한 후에 트윈의 양을 취득할 수 있다.
단계 102: 트윈의 양이 2보가 크거나 같을 때 하나 이상의 타임라인 - 각 타임라인은 하나 이상의 트윈에 대응하고 타임라인의 양은 트윈의 양보다 적음 - 을 생성한다.
단계 101에 기초하여, 트윈의 양이 취득된 후에, 클라이언트는 첫번째로, 트윈의 양이 2보다 크거나 같은지 여부를 결정할 수 있다. 트윈의 양이 1일 때, 클라이언트는 관련 기술에서의 구현 솔루ㅅㄴ을 참조하여 애니메이션을 생성할 수 있다. 트윈의 양이 2보다 크거나 같을 때, 클라이언트는 트윈보다 적은 타임라인 - 각 타임라인은 하나 이상의 트윈에 대응함 - 을 생성할 수 있다.
본 구현예에서, 생성된 타임라인의 양은 개발자에 의해 설정될 수 있다. 실시예에서, 트윈의 양이 2보가 크거나 같을 때, 하나의 타임라인이 생성될 수 있고, 타임라인은 모든 트윈에 대응한다. 다른 실시예에서, 트윈의 양이 2보가 크거나 같을 때, 생성된 타임라인의 양은 트윈의 양의 절반이 될 수 있다. 예를 들어, 트윈의 양이 8이라고 가정하면, 4개의 타임라인이 생성될 수 있고, 각 타임라인은 2개의 트윈에 대응한다. 대안적으로, 트윈의 양이 9라고 가정하면, 4개의 타임라인이 생성될 수 있고, 3개의 타임 라인 각각은 2개의 트윈에 대응하고, 나머지 타임라인은 3개의 트윈에 대응한다. 물론, 4개의 타임라인이 각각 2개의 트윈에 대응하고 나머지 타임라인은 1개의 트윈에 대응하는 5개의 타임라인이 생성될 수 있다. 복수의 타임라인이 생성될 때, 각 타임라인에 대응하는 트윈이 임의로 결정되거나, 예를 들어, 트윈의 시작 프레임의 프레임 넘버의 오름차순으로 타임라인에 트윈이 순차적으로 할당되는 등의 특정 룰에 기초하여 결정될 수 있다.
단계 103: 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성한다.
단계 102에 기초하여, 타임라인이 생성된 후에, 각 타임라인에 기초하여 대응하는 트윈에 대하여 애니메이션이 생성될 수 있다.
본 구현예에서, 생성된 애니메이션은 본질적으로 자바스크립트 코드이고, 사용자 장비의 브라우저는 자바스크립트 코드를 실행하여 사용자가 보기 위한 애니메이션을 생성할 수 있다. 본 단계에서, 생성된 타임라인의 양은 프로듀서가 설정한 트윈의 양보다 적기 때문에, 생성된 자바스크립트 코드에서의 타임라인의 양도 트윈의 양보다 적다. 자바스크립트 코드를 실행할 때, 사용자 장비는 캔버스를 생성하고, 자바스크립트 코드에서의 타임라인의 양에 기초하여 그리며, 이에 따라 다수의 불필요한 다시 그리기가 감소된다.
본 출원에서, 애니메이션의 생성 중에, 트윈보다 적은 타임라인이 생성된다는 것을 이전 설명으로부터 볼 수 있다. 애니메이션을 재생할 때, 사용자 장비는 트윈과 동일 양의 캔버스를 그릴 필요가 없어서, 다수의 불필요한 다시 그리기 동작이 감소되고 사용자 장비가 복잡한 애니메이션을 재생할 때 야기되는 사용자 장비의 성능 오버헤드가 감소된다.
실시예에서, 특정 타임라인이 복수의 트윈에 대응할 때, 도 3을 참조하면, 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성하는 단계는 하기의 단계를 포함할 수 있다.
단계 301: 복수의 트윈 내에 M 레벨의 충돌하는 트윈 그룹 - M은 자연수이고, 초기 값은 디폴트 카운트 초기 값임 - 이 존재하는지 여부를 결정한다. 존재하면, 단계 302가 수행될 수 있다.
본 구현예에서, 특정 타임라인이 복수의 트윈에 대응할 때, 각 트윈의 트윈 오브젝트가 첫번째로 취득될 수 있고, 대응하는 트윈의 양은 각 트윈 오브젝트에 기초하여 카운트된다. 특정 트윈 오브젝트에 대응하는 트윈의 양이 2보가 크거나 같을 때, 환전하면, 타임 라인에 대응하는 복수의 트윈에서의 2개 이상의 트윈이 동일한 트윈 오브젝트를 가질 때, 2개 이상의 트윈 중 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하는지 여부가 결정될 수 있다. 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하면, 타임라인에 대응하는 복수의 트윈 내에 적어도 하나의 M 레벨의 충돌하는 트윈 그룹이 존재하고, M 레벨의 충돌하는 트윈 그룹은 상기 임의의 트윈 및 또 다른 트윈을 포함한다고 결정될 수 있다.
[표 2]
예를 들어, 표 2의 예를 참조하면, M의 초기 값이 1이고, 타임라인 A는 5개의 트윈에 대응한다고 가정한다. 본 단계에서, 5개의 트윈 내에 레벨-1의 충돌하는 트윈 그룹이 존재하는지 여부를 결정한다. 각 트윈의 트윈 오브젝트가 첫번째로 취득되고, 이어서 각 트윈 오브젝트에 대응하는 트윈의 양이 카운트될 수 있다. 예를 들어, 트윈 오브젝트 엘리먼트 A는 3개의 트윈에 대응하고, 트윈 오브젝트 엘리먼트 B는 2개의 트윈에 대응한다.
본 구현예에서, 트윈 오브젝트 엘리먼트 A에 대응하는 3개의 트윈 중 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하는지 여부가 결정된다. 선택적으로, 트윈 1에 대하여, 트윈 1의 트윈 시간이 트윈 2의 트윈 시간과 충돌하는지 여부가 결정될 수 있고, 트윈 1의 트윈 시간이 트윈 4의 트윈 시간과 충돌하는지 여부가 결정될 수 있다. 트윈의 시작 키 프레임의 프레임 넘버와 트윈의 종료 키 프레임의 프레임 넘버 사이의 간격(interval)을 사용함으로써 트윈 시간이 표현될 수 있다. 예를 들어, 트윈 1의 트윈 시간은 [5, 8]이고, 트윈 2의 트윈 시간은 [6, 11]이다. 트윈 1의 트윈 시간이 트윈 2의 트윈 시간과 충돌하는지 여부를 결정할 때, 트윈 1의 트윈 시간과 트윈 2의 트윈 시간 사이에 인터섹션(intersection)이 존재하는지 여부가 결정될 수 있다. [5, 8]과 [6, 11] 사이에 인터섹션이 존재한다. 이어서, 트윈 1의 트윈 시간이 트윈 2의 트윈 시간과 충돌한다는 것과 트윈 오브젝트 엘리먼트 A에 대응하는 트윈에서 레벨-1의 충돌하는 트윈 그룹이 존재한다는 것이 결정될 수 있다. 레벨-1의 충돌하는 트윈 그룹은 트윈 1 및 트윈 2를 포함한다. 설명의 편의를 위해, 레벨-1의 충돌하는 트윈 그룹 내의 트윈은 레벨-1의 충돌하는 트윈으로 지칭될 수 있다.
본 구현예에서, 이전 솔루션을 참조하면, 트윈 1의 트윈 시간은 트윈 4의 트윈 시간과 충돌하지 않는다는 것과 트윈 2의 트윈 시간이 트윈 4의 트윈 시간과 충돌하지 않는다는 것이 더 결정될 수 있다. 이어서, 트윈 오브젝트 엘리먼트 A에 대응하는 3개의 트윈 내에 하나의 레벨-1의 충돌하는 트윈 그룹이 있다는 것이 결정될 수 있고, 레벨-1의 충돌하는 트윈 그룹은 레벨-1의 충돌하는 트윈 1 및 레벨-1의 충돌하는 트윈 2를 포함한다.
또한, 트윈 오브젝트 엘리먼트 B에 대응하는 2개의 트윈: 트윈 3 및 트윈 5에 대하여, 트윈 3의 트윈 시간이 트윈 5의 트윈 시간과 충돌하지 않는다는 것과, 트윈 오브젝트 엘리먼트 B에 대응하는 2개의 트윈 내에 레벨-1의 충돌하는 트윈 그룹이 존재하지 않는다는 것이 결정될 수 있다.
본 구현예에서, 레벨-1의 충돌하는 트윈 그룹에 포함되지 않는 트윈은 비충돌 트윈(non-conflicting tween)이다. 예를 들어 트윈 3, 트윈 4, 및 트윈 5는 타임라인 A에 대응하는 비충돌 트윈이다.
단계 302: M 레벨의 충돌하는 트윈 그룹 내에 최신 종료 시간에 대응하는 M 레벨의 충돌하는 트윈을 (M+1) 레벨의 충돌하는 트윈으로 업데이트하고, (M+K) 레벨의 충돌하는 트윈 내에 (M+K) 레벨의 충돌하는 트윈이 존재하지 않을 때까지 (M+1) 레벨의 충돌하는 트윈 내에 (M+1) 레벨의 충돌하는 트윈 그룹이 존재하는지 여부를 결정한다.
단계 301의 결정 결과에 기초하여, 타임라인에 대응하는 복수의 트윈 내에 M 레벨의 충돌하는 트윈 그룹이 존재할 때, 각각의 M 레벨의 충돌하는 트윈 그룹 내의 최신 종료 시간에 대응하는 M 레벨의 충돌하는 트윈은 (M+1) 레벨의 충돌하는 트윈으로 업데이트될 수 있다. 이것은, 최신 종료 키 프레임에 대응하는 프레임 이미지가, 프로듀서가 달성하고 싶어하는 것을 통상적으로 가장 잘 나타낼 수 있기 때문이다. 따라서, 동일 트윈 오브젝트에 대하여 충돌하는 트윈 그룹이 존재할 때, 최신 종료 키 프레임에 대응하는 트윈이 사용된다. M 레벨의 충돌하는 트윈 그룹 내의 트윈 종료 키 프레임의 최대 프레임 넘버를 갖는 M 레벨의 충돌하는 트윈은 (M+1) 레벨의 충돌하는 트윈으로 업데이트될 수 있다.
표 2에 도시된 트윈 정보가 계속 실시예로서 사용된다. 레벨-1의 충돌하는 트윈 그룹에 대하여, 레벨-1의 충돌하는 트윈 그룹 내의 트윈 종료 키 프레임의 최대 프레임 넘버를 갖는 레벨-1의 충돌하는 트윈은 레벨-2의 충돌하는 트윈으로 업데이트될 수 있다. 트윈 1의 종료 키 프레임의 프레임 넘버는 8이고, 트윈 2의 종료 키 프레임의 프레임 넘버는 11이다. 이어서, 트윈 2는 레벨-2의 충돌하는 트윈으로 업데이트될 수 있다. 이와 같이, 타임라인 A은 하나의 레벨-2의 충돌하는 트윈: 트윈 2에 대응하고, 레벨-2의 충돌하는 트윈 그룹을 포함하지 않는다. 따라서, 단계 303이 더 수행될 수 있다.
단계 303: 타임라인에 기초하여 대응하는 비충돌 트윈 및 (M+K) 레벨의 트윈에 대한 애니메이션을 생성한다.
본 구현예에서, (M+K) 레벨의 충돌 트윈 내에 (M+K) 레벨의 충돌하는 트윈 그룹이 존재하지 않을 때, 타임라인에 기초하여 대응하는 비충돌 트윈 및 (M+K) 레벨의 트윈에 대한 애니메이션이 생성될 수 있다. 표 2가 실시예로서 계속 사용된다. 본 단계에서, 타임라인 A에 기초하여 트윈 2, 트윈 3, 트윈 4, 및 트윈 5에 대한 애니메이션이 생성될 수 있다.
이전의 설명으로부터, 타임라인이 복수의 트윈에 대응할 때, 본 출원에 제공된 기술적 솔루션에 기초하여, 동일 트윈 오브젝트에 대한 충돌하는 애니메이션을 생성하는 것을 효과적으로 회피하고 사용자 경험을 향상시킬 수 있도록, 동일 트윈 오브젝트와 충돌하는 트윈에서의 최신 종료 시간 및 충돌하는 트윈 시간에 대응하는 트윈에 대한 애니메이션이 생성될 수 있다.
본 출원의 다른 실시예에서, 표 2에 도시된 트윈 정보에 기초하여, 타임라인 A는 또한 트윈 6에 대응하고, 트윈 6의 트윈 오브젝트는 엘리먼트 A이고, 시작 키 프레임의 프레임 넘버는 10이고, 종료 키 프레임의 프레임 넘버는 12이고, 트윈 6의 트윈 시간은 [10, 12]라고 가정한다. 단계 301에서, 트윈 오브젝트 엘리먼트 A에 대응하는 4개의 트윈: 트윈 1, 트윈 2, 트윈 4, 및 트윈 6 내에 2개의 레벨-1의 충돌하는 트윈 그룹이 존재한다는 것이 결정될 수 있다. 레벨-1의 충돌하는 트윈 그룹 1은 트윈 1 및 트윈 2를 포함하고, 레벨-1의 충돌하는 트윈 그룹 2는 트윈 2 및 트윈 6을 포함한다.
단계 302에서, 레벨-1의 충돌하는 트윈 그룹 1에서의 최신 종료 시간에 대응하는 트윈 2는 레벨-2의 충돌하는 트윈으로 업데이트될 수 있고, 레벨-1의 충돌하는 트윈 그룹 2에서의 최신 종료 시간에 대응하는 트윈 6은 레벨-2의 충돌하는 트윈으로 업데이트될 수 있다. 이어서, 단계 301에서의 구현 방법을 참조하여, 트윈 2 및 트윈 6에서 (레벨-2의 충돌하는 트윈 그룹으로 지칭될 수 있는) 충돌하는 트윈 그룹이 계속 존재하는지 여부가 결정될 수 있다. 트윈 2의 트윈 시간이 [6, 11]이고, 트윈 2의 트윈 시간 [6, 11]과 트윈 6의 트윈 시간 [10, 12] 사이에 인터섹션이 존재하기 때문에, 레벨-2의 충돌하는 트윈 그룹이 존재하고, 레벨-2의 충돌하는 트윈 그룹은 트윈 2 및 트윈 6을 포함한다는 것이 결정될 수 있다. 트윈 6이 최신 종료 시간에 대응함에 따라, 트윈 6은 레벨-3의 충돌하는 트윈으로 업데이트될 수 있다. 이와 같이, 트윈 오브젝트 엘리먼트 A에 대응하는 4개의 트윈에서 레벨-3의 충돌하는 트윈 그룹이 존재하지 않고, 계속 애니메이션이 생성될 수 있다. 단계 303에서, 타임라인 A에 기초하여 트윈 3, 트윈 4, 트윈 5, 및 트윈 6에 대한 애니메이션이 생성될 수 있다. 본 출원에서 세부사항은 생략된다.
애니메이션 생성 방법의 구현예에 대응하여, 본 출원은 또한, 애니메이션 생성 장치의 구현예를 제공한다.
본 출원에서의 애니메이션 생성 장치의 구현예는 애니메이션 생성 디바이스에 적용될 수 있다. 장치 구현예는 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 소프트웨어 구현예가 실시예로서 사용된다. 장치가 위치되는 애니메이션 생성 디바이스의 프로세서에 의해 비휘발성 메모리 내의 대응하는 컴퓨터 프로그램 명령어를 메모리로 판독함으로써 장치가 논리 디바이스로서 형성된다. 도 4에 도시된 바와 같이, 하드웨어의 관점에서 볼 때, 도 4는 본 출원의 애니메이션 생성 장치가 위치되는 애니메이션 생성 디바이스의 하드웨어를 예시하는 구조적 다이어그램이다. 도 4에 도시된 프로세서, 메모리, 네트워크 인터페이스, 및 비휘발성 메모리에 추가하여, 본 구현예에서의 장치가 위치되는 애니메이션 생성 디바이스는 통상적으로 애니메이션 생성 디바이스의 실제 기능에 기초하여 다른 하드웨어를 포함할 수 있다. 간략함을 위해 여기서 세부사항은 생략된다.
도 5는 본 출원의 예시적 구현예에 따른, 애니메이션 생성 장치를 예시한 구조적 블록 다이어그램이다.
도 5를 참조하면, 애니메이션 생성 장치(400)는 도 4에 도시된 애니메이션 생성 디바이스에 적용될 수 있고, 양 취득 유닛(401), 타임라인 생성 유닛(402), 및 애니메이션 생성 유닛(403)을 포함한다. 애니메이션 생성 유닛(403)은 충돌 결정 서브유닛(4031), 업데이트 서브유닛(4032), 및 애니메이션 생성 서브유닛(4033)을 더 포함할 수 있다.
양 취득 유닛(401)은 애니메이션 생성 명령이 수신된 후에 트윈의 양을 취득하도록 구성된다.
타임라인 생성 유닛(402)은 트윈의 양이 2보다 크거나 같을 때 하나 이상의 타임라인을 생성하도록 구성된다. 각 타임라인은 하나 이상의 트윈에 대응하고 타임라인의 양은 트윈의 양보다 적다.
애니메이션 생성 유닛(403)은 타임라인에 기초하여 대응하는 트윈에 대한 애니메이션을 생성하도록 구성된다.
충돌 결정 서브유닛(4031)은 타임라인이 복수의 트윈에 대응할 때 복수의 트윈에 M 레벨의 충돌하는 트윈 그룹이 존재하는지 여부를 결정하도록 구성된다. M 레벨의 충돌하는 트윈 그룹 내의 M 레벨의 충돌하는 트윈은 동일한 트윈 오브젝트 및 충돌 트윈 시간을 갖고, M은 자연수이고 초기 값은 디폴트 카운트 초기 값이다.
업데이트 유닛(4032)은, M 레벨의 충돌하는 트윈 그룹 내에 최신 종료 시간에 대응하는 M 레벨의 충돌하는 트윈을 (M+1) 레벨의 충돌하는 트윈으로 업데이트하고, M 레벨의 충돌하는 트인 그룹이 존재할 때, (M+K) 레벨의 충돌하는 트윈 내에 (M+K) 레벨의 충돌하는 트윈이 존재하지 않을 때까지 (M+1) 레벨의 충돌하는 트윈 내에 (M+1) 레벨의 충돌하는 트윈 그룹이 존재하는지 여부를 결정하도록 구성된다. K는 0보다 크거나 같은 자연수이다.
애니메이션 생성 서브유닛(4033)은 타임라인에 기초하여 대응하는 비충돌 트윈 및 (M+K) 레벨의 트윈에 대한 애니메이션을 생성하도록 구성된다.
선택적으로, 충돌 결정 서브유닛(4031)은, 각 트윈의 트윈 오브젝트를 취득하고; 2개 이상의 트윈이 동일 트윈 오브젝트를 가질 때, 2개 이상의 트윈 중 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하는지 여부를 결정하고; 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하면, 복수의 트윈 내에 적어도 하나의 M 레벨의 충돌하는 트윈 그룹이 존재하는 것을 결정하도록 구성된다. M 레벨의 충돌하는 트윈 그룹은 임의의 트윈 및 또 다른 트윈을 포함한다.
선택적으로, 충돌 결정 서브유닛(4031)은, 임의의 트윈의 시작 키 프레임과 종료 키 프레임 사이의 트윈 시간과, 또 다른 트윈의 시작 키 프레임과 종료 키 프레임 사이의 트윈 시간 사이에 인터섹션이 존재하는지 여부를 결정하고; 인터섹션이 존재하면, 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌한다는 것을 결정한다.
선택적으로, 업데이트 서브유닛(4032)은, M 레벨의 충돌하는 트윈 그룹 내에 트윈 종료 키 프레임의 최대 프레임 넘버를 갖는 M 레벨의 충돌하는 트윈을 (M+1) 레벨의 충돌하는 트윈으로 업데이트한다.
장치 내의 각 유닛의 기능 및 역할의 구현 프로세스에 대하여, 상기 방법에서의 대응하는 단계의 구현 프로세스에 대한 참조가 이루어질 수 있다. 간략함을 위해 여기서 세부사항은 생략된다.
장치 구현예는 기본적으로 방법 구현예에 대응하기 때문에, 관련 파트에 대하여, 방법 구현예에서의 관련 설명에 대한 참조가 이루어질 수 있다. 전술한 장치 구현예는 단지 실시예이다. 분리된 부분들로 기술된 유닛들은 물리적으로 분리될 수도 있고 그렇지 않을 수도 있으며, 유닛들로서 디스플레이된 부분들은 물리적 유닛일 수도 있고 아닐 수도 있으며, 하나의 위치에 위치되거나 또는 복수의 네트워크 유닛 상에 분포될 수 있다. 모듈 또는 유닛의 일부 또는 전체는 본 출원의 솔루션의 목적을 달성하기 위한 실제 필요에 기초하여 선택될 수 있다. 통상의 기술자는 창의적 노력 없이 본 출원의 구현예를 이해하고 구현할 수 있다.
전술한 설명은 본 출원의 단지 예시적인 구현예일뿐이며, 본 출원을 제한하려는 것은 아니다. 본 출원의 사상 및 원리를 벗어나지 않고 행해지는 임의의 수정, 동등한 대체 또는 개선은 본 출원의 보호 범위 내에 있다.

Claims (10)

  1. 애니메이션 생성 방법으로서,
    애니메이션 생성을 위해 사용하기 위한 키 프레임을 식별하는 애니메이션 생성 명령을 수신하는 단계;
    상기 애니메이션에 대응하는 복수의 트윈(tween) - 각각의 트윈은 시작 키 프레임과 종료 키 프레임 사이의 트윈 오브젝트(object)를 포함함 - 을 결정하는 단계(S101);
    트윈의 양(quantity)이 2보다 크거나 같을 때, 하나 이상의 타임라인 - 각각의 타임라인은 하나 이상의 트윈에 대응하고, 타임라인의 양은 상기 트윈의 양보다 적음 - 을 생성하는 단계(S102); 및
    상기 하나 이상의 타임라인에 기초하여 상기 복수의 트윈을 사용하여 상기 애니메이션을 생성하는 단계(S103)
    를 포함하고,
    상기 애니메이션을 생성하는 단계는,
    상기 하나 이상의 타임라인 중 주어진 타임라인이 복수의 트윈에 대응할 때, 상기 복수의 트윈 내에 M 레벨의 충돌하는 트윈 그룹 - 상기 M 레벨의 충돌하는 트윈 그룹 내 M 레벨의 충돌하는 트윈은 동일한 트윈 오브젝트 및 충돌하는 트윈 시간을 갖고, M은 자연수이고, 초기 값은 디폴트 카운트 초기 값임 - 이 존재하는지 여부를 결정하는 단계(S301);
    상기 M 레벨의 충돌하는 트윈 그룹이 존재할 때, 상기 M 레벨의 충돌하는 트윈 그룹 내에 최신 종료 시간에 대응하는 M 레벨의 충돌하는 트윈을 (M+1) 레벨의 충돌하는 트윈으로 업데이트하는 단계, 및 (M+K) 레벨의 충돌하는 트윈 내에 (M+K) 레벨의 충돌하는 트윈 그룹 - K는 0보다 크거나 같은 자연수임 - 이 존재하지 않을 때까지, (M+1) 레벨의 트윈 내에 (M+1) 레벨의 충돌하는 트윈 그룹이 존재하는지 여부를 결정하는 단계(S302); 및
    상기 타임라인에 기초하여 대응하는 비충돌 트윈 및 상기 (M+K) 레벨의 트윈에 대한 애니메이션을 생성하는 단계(S303)
    를 포함하는 것인,
    애니메이션 생성 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 복수의 트윈 내에 M 레벨의 충돌하는 트윈 그룹이 존재하는지 여부를 결정하는 단계는,
    각 트윈의 트윈 오브젝트를 취득하는 단계; 및
    2개 이상의 트윈이 동일한 트윈 오브젝트를 가질 때, 상기 2개 이상의 트윈 중 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하는지 여부를 결정하는 단계
    를 포함하는 것인, 애니메이션 생성 방법.
  4. 제3항에 있어서,
    상기 임의의 트윈의 트윈 시간이 상기 또 다른 트윈의 트윈 시간과 충돌하면, 상기 복수의 트윈 내에 적어도 하나의 M 레벨의 충돌하는 트윈 그룹 - 상기 M 레벨의 충돌하는 트윈 그룹은 상기 임의의 트윈 및 상기 또 다른 트윈을 포함함 - 이 존재한다는 것을 결정하는 단계를 더 포함하는, 애니메이션 생성 방법.
  5. 제3항에 있어서,
    상기 2개 이상의 트윈 중 임의의 트윈의 트윈 시간이 또 다른 트윈의 트윈 시간과 충돌하는지 여부를 결정하는 단계는,
    상기 임의의 트윈의 시작 키 프레임과 종료 키 프레임 사이의 트윈 시간과, 상기 또 다른 트윈의 시작 키 프레임과 종료 키 프레임 사이의 트윈 시간 사이에 인터섹션(intersection)이 존재하는지 여부를 결정하고, 인터섹션이 존재하면, 상기 임의의 트윈의 트윈 시간이 상기 또 다른 트윈의 트윈 시간과 충돌한다고 결정하는 단계를 포함하는 것인, 애니메이션 생성 방법.
  6. 제1항에 있어서,
    상기 M 레벨의 충돌하는 트윈 그룹 내에 최신 종료 시간에 대응하는 M 레벨의 충돌하는 트윈을 (M+1) 레벨의 충돌하는 트윈으로 업데이트하는 단계는,
    상기 M 레벨의 충돌하는 트윈 그룹 내의 트윈 종료 키 프레임의 최대 프레임 넘버를 갖는 M 레벨의 충돌하는 트윈을 상기 (M+1) 레벨의 충돌하는 트윈으로 업데이트하는 단계를 포함하는 것인, 애니메이션 생성 방법.
  7. 삭제
  8. 제1항 및 제3항 내지 제6항 중 어느 한 항에 있어서,
    상기 애니메이션을 생성하는 단계는,
    충돌하는 트윈 시간을 갖는 복수의 트윈 오브젝트로부터 단일 트윈 오브젝트를 사용하는 단계를 포함하는 것인, 애니메이션 생성 방법.
  9. 제1항 및 제3항 내지 제6항 중 어느 한 항에 기재된 방법을 수행하도록 구성된 복수의 모듈들을 포함하는, 애니메이션 생성 장치.
  10. 삭제
KR1020197001612A 2016-06-17 2017-06-05 애니메이션 생성 방법 및 장치 KR102151364B1 (ko)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
KR20190020066A KR20190020066A (ko) 2019-02-27
KR102151364B1 true KR102151364B1 (ko) 2020-09-03

Family

ID=59175498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197001612A KR102151364B1 (ko) 2016-06-17 2017-06-05 애니메이션 생성 방법 및 장치

Country Status (12)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727825A (zh) * 2019-09-20 2020-01-24 彩讯科技股份有限公司 动画播放的控制方法、装置、服务器和存储介质
CN118071892A (zh) * 2024-04-16 2024-05-24 中国空气动力研究与发展中心计算空气动力研究所 流场关键帧动画生成方法及装置

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

Similar Documents

Publication Publication Date Title
CN106021421B (zh) 一种加速网页渲染的方法及装置
CN111931097B (zh) 信息展示方法、装置、电子设备以及存储介质
US8687002B2 (en) Method, medium and system rendering 3-D graphics data having an object to which a motion blur effect is to be applied
US20160291846A1 (en) Generating carousel user interface with graphics processing unit
CN105335410A (zh) 一种基于合成渲染加速的网页更新方法和装置
CN109145272B (zh) 文本渲染和布局方法、装置、设备和存储介质
KR102151364B1 (ko) 애니메이션 생성 방법 및 장치
CN105869199A (zh) 用于处理动画的装置和方法
CN106570060B (zh) 一种信息流中数据的随机抽取方法及装置
CN109298819B (zh) 选择对象的方法、装置、终端及存储介质
US10592307B2 (en) Multi user threaded executor
CN113312125B (zh) 多窗口调整方法、系统、可读存储介质和电子设备
US20200151003A1 (en) Reducing spin count in work-stealing for copying garbage collection based on average object references
CN113918249A (zh) 一种背景模糊控件的实现方法及装置
CN113449498A (zh) 生成表单的方法、装置、存储介质及电子设备
CN110719493A (zh) 弹幕显示方法、装置、电子设备及可读存储介质
US10424041B2 (en) Thread independent scalable vector graphics operations
CN110989982B (zh) 一种带返回值函数的积木块构建方法、装置、存储介质和处理器
CN109101143B (zh) 适用于页面滚动的焦点置顶方法、存储介质、设备及系统
US20150081765A1 (en) System and method for enhancing multi-module experience
US10437911B2 (en) Fast bulk z-order for graphic elements
CN111273972A (zh) 一种窗口管理方法、装置、存储介质及终端
CN113779466B (zh) 一种页面显示方法、装置、存储介质及电子设备
CN112954423B (zh) 一种动画播放方法、装置及设备
CN110231930B (zh) 基于编程教育的嵌入式答题系统的实现方法及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant