KR100938036B1 - 그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체 - Google Patents

그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR100938036B1
KR100938036B1 KR1020047010340A KR20047010340A KR100938036B1 KR 100938036 B1 KR100938036 B1 KR 100938036B1 KR 1020047010340 A KR1020047010340 A KR 1020047010340A KR 20047010340 A KR20047010340 A KR 20047010340A KR 100938036 B1 KR100938036 B1 KR 100938036B1
Authority
KR
South Korea
Prior art keywords
animation
property
value
class
timeline
Prior art date
Application number
KR1020047010340A
Other languages
English (en)
Other versions
KR20060006990A (ko
Inventor
맷트 칼킨스
조셉 스테판 3세 베다
케빈 갈로
길맨 케이. 웡
레오나르도 에스테반 브랜코
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=33416767&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100938036(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060006990A publication Critical patent/KR20060006990A/ko
Application granted granted Critical
Publication of KR100938036B1 publication Critical patent/KR100938036B1/ko

Links

Images

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
    • G06T2213/00Indexing scheme for animation
    • G06T2213/04Animation description language

Abstract

그래픽 표시 장치 내의 요소들의 요소 특성값의 적시 변경을 지원하는 그래픽 표시 애니메이션 시스템이 개시된다. 애니메이션 시스템은 그래픽으로 표시되는 화면 내에서 표시되는 오브젝트에 대응하는 요소의 세트를 유지하는 표시 구조를 이용한다. 요소는 가변 특성 값을 포함한다. 애니메이션 시스템은 또한 표시 구조에 의해 유지되는 요소와 관계된 특성을 유지하는 특성 시스템을 이용한다. 특성은 시간에 따라 변할 수 있는 다이나믹 특성을 포함하고, 따라서, 그래픽 표시 장치 상의 대응하는 요소의 외관에 영향을 줄 수 있다. 애니메이션 시스템은 애니메이션 클래스를 포함하며, 애니메이션 클래스로부터 애니메이션 오브젝트가 인스턴스화되고 런타임시 요소 특성과 관련지어진다. 애니메이션 오브젝트 인스턴스는 특성 시스템에 의해 유지되는 다이나믹 특성에 할당된 값에 영향을 주는 시변값을 제공한다.
그래픽 표시 요소, 애니메이션 오브젝트 인스턴스, 애니메이션 시스템, 애니메이션 클래스

Description

그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체{SYSTEM SUPPORTING ANIMATION OF GRAPHICAL DISPLAY ELEMENTS THROUGH ANIMATION OBJECT INSTANCES}
본 발명은 일반적으로 컴퓨팅 장치에 관한 것이다. 특히, 본 발명은 운영 체제 및/또는 애플리케이션으로부터 데이터 및 명령 입력에 의해 구동되는 그래픽 사용자 인터페이스 뷰를 유지 및 제공하는 컴퓨팅 시스템 컴포넌트 및 서브시스템에 관한 것이다.
그래픽 사용자 인터페이스는 그 속성상 매우 비쥬얼(visual)하다. 사용자 및 그래픽 사용자 인터페이스를 포함하는 통상의 대화식 세션은 동작을 호출하기 위해 표시된 요소에 관한 동작(예컨대, 포인터의 이동, 및 아이콘 또는 컨트롤의 선택)을 수행하고 이후 동작의 결과를 시각적으로 관측하는 사용자의 다수의 인스턴스를 포함한다. 활성 또는 변경된 상태를 표시하기 위해, 그래픽 사용자 인터페이스 상에서 특정 요소에 대한 사용자의 주의를 끌기 위한 하나의 방법은 그래픽 요소의 애니메이션을 통해 이루어진다. 본 명세서에서 사용되는 애니메이션은 기간에 걸쳐 표시 요소에 적용된 점진적인 변경의 시퀀스를 통해 그래픽 표시 요소(예컨대, 아이콘, 컨트롤, 윈도 등)의 외관 또는 위치를 변경시키는 것을 포함한다. 그러나, 애니메이션은 또한 넌-비쥬얼(non-visual) 표시 요소에 대한 시간-기반 변경(time-based change)을 포함한다. 따라서, 본 명세서에서 언급되는 애니메이션은 비쥬얼(즉, 비쥬얼 표시 패러미터값의 변경)과 넌-비쥬얼 애니메이션(즉, 비쥬얼 표시 요소에 영향을 주지 않고 시간에 대한 패러미터 값의 변경) 모두를 포함한다.
애니메이션은 컴퓨터 시스템 및 애플리케이션의 유용성 및 심미성을 향상시키는 잠재력을 가지고 있다. 사용자 인터페이스 및 보다 상세하게는 그래픽 사용자 인터페이스는 컴퓨터/사용자 상호작용에서 중요한 역할을 차지하고 있다. 애니메이션은 정보의 부가 형태 또는 컴퓨터 프로그램의 상태, 또는 그들의 컴포넌트를 사용자에게 전달하는 방법을 제공함으로써 컴퓨터/사용자 상호작용 경험을 향상시킨다. 예를 들면, 선택된 아이템을 간단히 사라지게 하거나 순간적으로 변경시키기보다는, 애니메이션은 이해될 수 있는 문맥과 조합하여, 사용자에게 발생된 것(예컨대, 리사이클 빈(recycle bin)으로의 삭제된 파일 플로팅)을 알리는 변경의 진행이 표시되게 한다. 더욱이, 애니메니션이 컴퓨터 시스템과 더욱 흥미있게 상호작용하게 하고 사용자의 주의를 더욱 효과적으로 끌게 한다는 것에 대중은 동감할 수 있다. 더욱이, 애니메이션은 또한 적당한 값으로의 변경을 자동화할 수 있다. 특히, 사용자-모드 애플리케이션은 수동 타이머를 설정하고 이후 이들 타이머에 응답하여 값을 변경하는 것이다.
애니메이션이 사용자에게 이로울 수 있는 많은 사용자 인터페이스에 애니메이션을 통합하지 않으려 할 수 있다. 하나의 이유는 단순히 사용자 인터페이스 요소의 애니메이션화의 비용 때문이다. 애니메이션은 일반적으로 시간이 많이 들고 성가신 작업이다. 그래픽 사용자 인터페이스에서 애니메이션을 구현하는 원가/이익 접근 방법(cost/benefit approach)을 취할 경우 애니메이션을 통합하는 이점은 그 비용을 초과해야 한다. 애니메이션 프로그래밍의 현재의 비교적 높은 비용으로 인해, 애니메이션으로부터 이점을 얻을 수 있는 많은 애플리케이션이 그 비교적 높은 구현 비용 때문에 애니메이션화되지 못한다.
애니메이션 비용을 감소시키는 하나의 방법은 다수의 별개의 용도를 위한 애니메이션 프로그래밍을 다시 사용하는 것이다. 그러나, 애니메이션 코드는 일반적으로 다시 사용되지 않는다. 대신에, 단일 (애플리케이션) 사용 애니메이션 코드가 프로그래밍 툴을 사용하여 개발 시간에 애플리케이션 자체 내에서 완전히 프로그래밍된다. 애니메이션 동작은 컴파일된 프로그램 코드 내에서 명백하게 정의된다. 런타임 중, 애니메이션은 이전에 프로그램된 코드 세그먼트를 단순히 실행시킴으로써 정의된다. 시간을 소모하는 노력이 있는 것 외에, 프로그램에 애니메이션을 통합하면 표시 요소에서 원하는 애니메이션 동작을 실행하는 데 이용되는 상세 데이터와 명령어들로 인해 과도하게 큰 프로그램이 생길 수 있다.
사용자 인터페이스에서 애니메이션의 프로그램 가능성을 향상시키기 위한 노력은 결국 원하는 애니메이션 동작을 제공하기 위해 실행 가능한 스크립트 세그먼트가 참조되는 편집 불가능(non-editable)/모놀리식 애니메이션 스크립트 시퀀스의 설계 및 제공으로 이어진다. 예를 들어 SMIL(Synchronized Multimedia Integration Language) 표준에 기초한, 이와 같은 공지된 애니메이션 프로그래밍 방법은 키-프레이밍(key-framing)을 통합한다. 키-프레이밍 방법은 모놀리식, 편집 불가능, 애니메이션 스크립트의 특정 세그먼트의 참조에 의지한다.
종래의 키-프레이밍 방법은 그래픽 사용자 인터페이스에서 새로운 애니메이션 동작을 프로그래밍하는 것에 대한 상당한 유연성 부족을 나타낸다. 키-프레이밍 스크립트는 지정된 시점과 종점 사이에서 표시 요소(또는 요소의 조합)를 변형하는 컴파일된, 편집 불가능한 시퀀스의 애니메이션 명령을 포함한다. 애니메이션 시퀀스에서 2개의 포인트를 선택하고 이후 이들 2개의 포인트 사이에서 프로그램 스크립트를 실행하는 공지된 키-프레이밍 애니메이션 방법은 이전에 생성된/컴파일된 애니메이션 스크립트 내에서 구체화되는 애니메이션 동작을 구현하기 위해 노력하는 프로그래머를 돕는다. 그러나, 키-프레이밍 방법은 기존의 기본 애니메이션 스크립트에 의해 정의된 선형 진행에 대한 지원되는 애니메이션의 범위를 제한한다. 기본 애니메이션 스크립트의 발전은 애니메이션 스크립트를 사용자/개발자에게 보내기 전에 모든 지원되는 애니메이션 동작을 식별하고 코딩할 필요에 의해 방해를 받는다. 애니메이션 스크립트의 수명 동안, 원하는 애니메이션 동작이 스크립트에 포함되지 않은 곳에서 많은 인스턴스가 발생하려고 한다. 그러나, 스크립트는 사용자/개발자가 편집할 수 없으므로 컴파일된 애니메이션 스크립트에 미리 인코드되지 않았던 새로운 원하는 애니메이션 동작을 실행하기 위해 사용될 수 없다.
그러므로, 재미있고, 유익하고, 의미 있는 애니메이션 동작을 그래픽 사용자 인터페이스 표시에 구현하는 더 효율적이고, 유연성이 있고, 비용이 덜 드는 방법이 요구된다.
이하에 예로서 기술되고 청구된 애니메이션 시스템은 그래픽 사용자 인터페이스 표시 요소와 넌-비쥬얼(non-visual) 패러미터 값 모두에 대한 애니메이션 동작을 정의, 생성 및 실행하는 프레임워크를 제공한다. 애니메이션 동작은 요소에 적용될 때, 특성과 관계된 값이 애니메이션 동작이 활성화되는 시간에 따라 변하게 한다.
애니메이션 시스템은 컴퓨터 시스템 그래픽 사용자 인터페이스의 표시 윈도와 같은 화면 내에 표시되는 오브젝트에 대응하는 요소의 세트를 유지하기 위한 표시 구조를 이용하는 시스템에 통합된다. 요소는 요소의 표시 특성에 영향을 주는 가변 특성값을 포함한다. 이와 같은 가변 특성의 예는 위치, 치수, 컬러, 불투명성 등이다.
애니메이션 시스템은 또한 특성 시스템을 이용한다. 특성 시스템은 표시 구조에 의해 유지되는 요소와 관계된 특성을 유지한다. 특성 시스템은 다이나믹 특성을 지원하며, 이 다이나믹 특성은 시간에 따라 변할 수 있는 것이다.
애니메이션 시스템은 또한 기본값에 따라 실행 가능한 특정 애니메이션 동작을 특정하는 애니메이션 클래스를 포함한다. 애니메이션 오브젝트는 애니메이션 클래스로부터 인스턴스화된다. 이와 같은 애니메이션 오브젝트 인스턴스는 다이나믹 특성에 할당된 값에 영향을 주는 시변값(time varying values)을 제공한다. 관계된 애니메이션 오브젝트에 따라 시간의 경과에 따라 변하는 요소를 포함하는 표시 장치를 구동하는 애플리케이션의 지배 하에서 이와 같은 애니메이션 오브젝트가 생성되어 특성 시스템에 의해 유지되는 특성에 부가된다.
첨부 청구항들은 특히 본 발명의 특징을 기술하고 있지만, 본 발명 및 그 이점은 첨부 도면을 참조한 후속의 상세한 설명으로부터 가장 잘 이해될 것이다.
도 1은 본 발명의 일 실시예를 실행하는 예시적인 컴퓨터 시스템을 도시한 블록도.
도 2는 그래픽 표시 요소의 애니메이션을 지원하는 애니메이션 시스템을 포함하는 그래픽 관리 구조의 주요 컴포넌트를 도시한 예시적인 고 레벨 개략도.
도 3은 애니메이션화된 그래픽 사용자 인터페이스를 유지/렌더링하기 위한 본 발명을 구현하는 시스템에서 수행되는 반복되는 단계의 예시적인 시퀀스를 요약한 플로우차트.
도 4는 특정 요소 특성에 대해 애니메이션을 실행하는 예시적인 애니메이션 클래스 정의를 나타낸 도면.
도 5는 요소 특성을 애니메이션화하는 예시적인 애니메이션 구성자 형태의 세트를 요약한 도면.
도 6은 본 발명을 실시하는 애니메이션 구조를 위한 예시적인 애니메이션 컬렉션 클래스를 요약한 도면.
도 7은 본 발명을 실시하는 애니메이션 구조를 위한 예시적인 다이나믹 애니메이션 컬렉션을 요약한 도면.
애니메이션 시스템, 특성 시스템, 및 표시 요소의 구성 구조를 포함하는 그래픽 사용자 인터페이스 구조가 기술된다. 이들 컴포넌트는 조합되어 그래픽 사용자 인터페이스 표시 요소 및 심지어 비표시(non-display) 값의 특성-기반 애니메이션을 지원한다. 개시된 애니메이션 구조는 요소에 의해 원하는 애니메이션 동작을 달성하기 위해 다양한 그래픽 표시(및 비표시) 요소(예컨대, 아이콘, 대화 상자, 스크롤 바 등)에 부가되는 애니메이션 인스턴스의 생성 및 트래킹을 용이하게 하는 애니메이션 클래스, 인터페이스 및 컬렉션을 포함하는 애니메이션 시스템을 포함한다. 표시 요소의 애니메이션화는 표시 요소의 특성 값을 변경함으로써 달성된다. 본 발명의 일 실시예에 있어서, 특성값에 대한 변경은 애니메이션 클래스로부터 인스턴스화되고 특성에 부가되는 애니메이션 오브젝트에 의해 구동된다.
본 발명의 일 실시예에 있어서, 그래픽 애니메이션은 애니메이션 컬렉션을 요소 트리 내의 특정 요소에 대한 렌더링 조작과 관련지음으로써 달성된다. 일단 애니메이션화된 요소가 처음에 그려지면, 렌더링 시스템은 특정 애니메이션 클래스로부터 인스턴스화된 애니메이션 오브젝트의 컴포넌트에 의해 정의된 애니메이션 동작에 따라 때때로 요소의 표시 상태를 업데이트한다.
본 발명의 일 실시예에 있어서, 애니메이션은 리프레시 사이클이 다른 그래픽 표시 시스템에서 다중 레벨로 지정된다. 용이하게 계산되는 어떤 애니메이션은 비교적 높은 리프레시율로 업데이트된다. 예를 들어 다른 그래픽 표시 오브젝트에 영향을 주는 것과 같은 더욱 복잡한 다른 애니메이션은 비교적 낮은 리프레시율로 업데이트된다.
전체로서 고려한 경우, 본 명세서에 기술된 애니메이션 구조는 다양한 새로운 애니메이션 동작을 실행하는 고도로 유연한 플랫폼을 제공하고 새로운 동작을 표시 요소에 부가하여 새롭고 고도로 결합하는 애니메이션화된 표시 인터페이스를 생성한다.
도 1은 본 발명을 구현하는 애니메이션 구조를 수행하기 위한 적절한 오퍼레이팅 환경(100)의 예를 나타낸다. 오퍼레이팅 환경(100)은 단지 적절한 오퍼레이팅 환경의 일 예이며 본 발명의 사용 또는 기능의 범위에 제한을 가하도록 의도된 것은 아니다. 본 발명과 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경, 및/또는 구성의 예로는, 퍼스널 컴퓨터, 서버 컴퓨터, 랩탑/포터블 컴퓨팅 장치, 핸드헬드 컴퓨팅 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 장치 중의 임의의 것을 포함하는 분산형 컴퓨팅 환경 등이 포함될 수 있지만, 이에 한정되지 않는다.
본 발명은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령에 의해 수행되는 프로세스 및 단계의 세트와 일반적으로 관련하여 기술된다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 예시적인 실시예는 단일 컴퓨터 시스템 상의 국부 실행 프로세스를 참조하여 설명하였지만, 본 발명은 통신 네트워크를 통해 링크된 원격 처리 장치에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 동작하는 네트워크 노드 내에 잠재적으로 통합된다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 국부 및 원격 컴퓨터 저장 매체 내에 위치할 수 있다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터(110)의 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들로는, 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 처리 장치(120)에 연결시키는 시스템 버스(121)가 포함될 수 있지만, 이에 한정되는 것은 아니다. 시스템 버스(121)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 장치 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다..
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스될 수 있는 컴퓨터 판독가능 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식(removable) 및 비이동식(non-removable) 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 둘다 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장장치, 자기 카세트, 자기 테이프, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터(110)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 기타 매체를 포함할 수 있지만, 이에 한정되지 않는다. 통신 매체는 통상적으로 반송파 또는 기타 전송 메카니즘 등의 변조된 데이터 신호에 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(130)는 ROM(131) 및 RAM(132) 등의 휘발성 및/또는 비휘발성 메모리의 형태의 컴퓨터 저장 매체를 포함한다. 시동중과 같은 때에 컴퓨터(110) 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(133; BIOS)은 일반적으로 ROM(131)에 저장된다. RAM(132)은 일반적으로 처리 장치(120)에 즉시 액세스될 수 있고 및/또는 처리 장치(120)에 의해 현재 작동되는 프로그램 모듈 및/또는 데이터를 포함한다. 예로서, (한정하고자 하는 것은 아님) 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 도시한다.
컴퓨터(110)는 또한 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 단지 예로서, 도 1에는 비이동식 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(140), 이동식 비휘발성 자기 디스크(152)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(151), 및 CD-ROM 또는 기타 광 매체 등의 이동식 비휘발성 광 디스크(156)로부터 판독하거나 그 광 디스크에 기록하는 광 디스크 드라이브(155)가 도시되어 있다. 예시적인 오퍼레이팅 환경에서 사용될 수 있는 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체는 자기 테이프 카세트, 플래쉬 메모리 카드, DVD(Digital versatile disk), 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등을 포함하지만 이에 한정되지 않는다. 하드 디스크 드라이브(141)는 일반적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 일반적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
앞서 기술되고 도 1에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)를 위한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시된다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다는 것이다. 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(different copies)이라는 것을 나타내기 위한 것이다. 사용자는 일반적으로 마우스, 트랙볼, 또는 터치 패드라 불리우는 포인팅 장치(161) 및 키보드(162)와 같은 입력 장치를 통해 컴퓨터(110)에 명령 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 종종 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus)와 같은 기타 인터페이스 및 버스 구조에 의해 접속될 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치는 또한 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에도, 컴퓨터는 또한 출력 주변 장치 인터페이스(195)를 통해 접속될 수 있는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(181)만이 도시되어 있지만, 컴퓨터(110)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 171) 및 원거리 통신망(WAN; 173)을 포함하지만, 그 외의 네트워크를 포함할 수도 있다. 이러한 네트워크 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 컴퓨터(110)는 일반적으로 인터넷 등의 WAN(173)을 통해 통신을 구축하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수 있다. 네트워크 환경에서, 컴퓨터(110)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 예로서 (한정하고자 하는 것은 아님), 도 1은 메모리 장치(181)에 상주하는 원격 애플리케이션 프로그램(185)을 도시한다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 외의 수단이 사용될 수 있다.
도 2는 본 발명을 구현하는 그래픽 표시 장치 구조의 구성 요소를 식별하고 애니메이션 시스템의 상호작용 기능 요소의 세트를 포함하는 고 레벨 개략도이다. 도 2에 도시된 그래픽 표시 장치 구조는 본 발명의 실시예의 설명을 돕기 위해 기능 요소의 세트로 나누어진다. 본 발명은 예시적으로 도시된 방식에서 구성 요소의 배열에 제한되지 않는다. 오히려, 이하에 기재된 구성 요소의 기능은 본 발명의 다른 실시예에서 상이하게 그룹화된다.
애니메이션 시스템은, 조합되어 애플리케이션(200)에 의해 제기된 고 레벨 명령들에 기초하여 그래픽 표시 오브젝트들(및 넌비쥬얼 패러미터들)의 애니메이션화를 용이하게 하는 다수의 부 요소(subcomponent)를 포함한다. 애플리케이션(200)은 운영 체제의 내부 또는 외부에 존재하는 임의의 애플리케이션 또는 컨트롤일 수 있다. 본 명세서에 기술된 애니메이션 기반 구조는 일반화된 애니메이션 구성 요소에 대한 애니메이션의, 상당한 범위까지 위임(delegating), 프로그래밍 및 실행을 가능하게 한다. 본 발명의 실시예에 있어서, 업데이트된 비트맵들을 계산하기보다는 애플리케이션(200)은 하나 이상의 표시 오브젝트에 대해 특정하는/정의하는 애니메이션 시스템에 명령을 제시한다.
애플리케이션(200)의 명령에 따라, 애니메이션 시스템은 애니메이션 오브젝트를 만든다. 애니메이션 오브젝트들은, 일단 인스턴스화되면 요소 트리(202)와 관련지울 수 있다. 요소 트리(202)는 애플리케이션(200)에 의해 발생된 이벤트들에 응답하여 생성된다. 이와 같은 이벤트들의 예는 애플리케이션(200)의 시작 또는 새로운 뷰(view)를 생성하는 몇몇 다른 실행 명령을 포함한다. 이후, 애플리케이션은 새로운 요소들을 생성하고, 나중에 그 요소들을 요소 트리(202)에서 제거한다.
요소 트리(202)는 계층적으로 배열된 요소의 세트를 구비한다. 본 발명의 실시예에 있어서, 요소 트리(202)는 구조적으로 문서(document)를 정의한다. 각 요소는 대부분의 경우, 예를 들면 그래픽 사용자 인터페이스에서 표시 가능한 비쥬얼 이미지에 대응하는 오브젝트를 기술한다. 요소들의 예로는 버튼, 테이블, 테이블 셀, 리스트 컨트롤, 프레임, 이미지 및 패러그래프(플로우 패널)가 포함된다. 요소 트리(202)의 요소들은 일반적으로 하나 이상의 특성(예컨대, 컬러, 높이, 폭, 위치, 투명성 등)을 포함한다. 요소의 특성에 할당된 값은 요소의 표시 상태를 정의하는 데에 기여한다. 본 발명의 실시예에 있어서, 애니메이션 오브젝트는 하나 이상의 요소/특성 조합들에 할당된다. 이후, 애니메이션 오브젝트 인스턴스는 애니메이션 오브젝트 인스턴스 각각이 관련되어 있는 타임라인에 따라 요소 특성에 대해 애니메이션 동작(behavior)을 렌더링하기 위해 실행한다.
"타임라인"
타이밍 및 타임라인들은 본 명세서에 기술된 애니메이션 시스템을 구동한다. 본 명세서에 기술된 애니메이션 시스템의 타이밍 특징은 동기화 멀티미디어 통합 언어(Synchronized Multimedia Integration Language; SMIL 2.0) W3C 스펙으로부터 파생된 것이다. 일단 생성되고 실행되기 전까지의 각 애니메이션 오브젝트는 애니메이션의 오브젝트의 정의된 동작과 관계된 변경 시퀀스의 진행을 제어하는 타임라인(예컨대, 시간 순서 정의)과 관련되어 있다. 더욱이, 전술한 타임라인은 단지 애니메이션 동작(예컨대, 애니메이션의 지속 기간, 반복, 가속 등)의 로컬/상대 타이밍 순서를 정의한다. 따라서, 애니메이션 오브젝트는 애니메이션 오브젝트가 "페어런트" 타임라인에 (다른 오브젝트를 통해 직접 또는 간접으로) 할당될 때까지 실행할 수 없다. 그러므로, 애니메이션 오브젝트를 실행하기 위해, 상대 타임라인은 애니메이션 오브젝트의 상대 타이밍 정의를 페어런트 타임라인에 의해 정의된 실제 런타임과 관계시키는 "페어런트" 타이밍 정의("페어런트 타임라인")에 부가된다. 따라서, 페어런트 타임라인은 애니메이션 오브젝트의 애니메이션 동작을 통제하지 않는다. 대신, 페어런트 타임라인은 예를 들면 애니메이션이 실제로 기동할 때 외부 동작을 통제한다. 타임라인은 계층식 타이밍 트리 구조로 유지되고, 개개의 타임라인들은 페어런트 타임라인에 대해 이들의 동작을 정의하는 속성들을 가진다. 최상위 레벨 타임라인은 루트(예컨대, 문서, 페이지, 프레임 등) 타임라인에 대해 정의된다.
페어런트 타임라인을 로컬 애니메이션 타이밍 동작을 정의하는 그 자신의 내부 타임라인을 가진 애니메이션 오브젝트와 관계시키는 많은 방법이 있다. 예를 들어, 페어런트 타임라인은 애니메이션 오브젝트가 부가되는 타이밍 정의이다. 타임라인을 지정하는 하나의 예시적인 형태에 있어서, 애니메이션 오브젝트의 생성을 요청하는 엔티티(예컨대, 애플리케이션)가 애니메이션 오브젝트에 대한 타임라인이 부가되는 페어런트 타임라인을 특정한다. 이 경우, 애니메이션 오브젝트의 타임라인은 생성시 페어런트 타임라인을 식별하고, 생성된 애니메이션 오브젝트는 애니메이션 오브젝트가 이후에 결합되는 하나 이상의 요소/특성 조합에 의해 이용되는 실제 실행 애니메이션 오브젝트(복제와는 대조되는)이다.
애니메이션 오브젝트에 타임라인을 지정하는 다른 예시적인 형태에 있어서, 그 자신의 타임라인을 포함하지만 페어런트 타임라인을 포함하지 않는 부분 완성 애니메이션 오브젝트 클래스가 생성된다. 이 미완성 형태의 애니메이션 오브젝트 정의(페어런트 타임라인 결여)는 본 명세서에서 "애니메이션 템플리트"라고 한다. 이 애니메이션 템플리트는 실행되지 않고, 그 대신 애니메이션 템플리트의 복사(또는 복제(clone))가 생성되고, 새로운 애니메이션 인스턴스들에 각각 새로운 애니메이션이 부가되는 요소의 애니메이션 페어런트 타임라인이 할당된다. 이와 같은 인스턴스들에서, 복제된 애니메이션 오브젝트의 페어런트 타임라인은 복제된 애니메이션 오브젝트가 부가되는 요소에 의해 특정된 페어런트 타임라인이다. 특정 페어런트 타임라인 타이밍 정의가 없으면 단일 애니메이션 템플리트로부터 다수의 복제물을 생성할 수 있게 하고, 각각의 "복제된" 애니메이션 오브젝트는 오브젝트가 부가된 요소에 의해 정의된 요소-특정 애니메이션 실행(예컨대, 시작, 정지 등)을 채택한다. 본 시스템은 페어런트 타임라인의 후 지정을 지원하기 때문에, 요소 트리(202)에 배치하기 위해 생성된 애니메이션 오브젝트들은 생성시 페어런트 타임라인의 명시적 지정을 요구하지 않는다. 이와 같은 타이밍 정보가 완료되어 애니메이션이 실행될 수 있게 된다.
선택적으로, 애플리케이션(200)은 애니메이션 오브젝트를 미디어 통합 계층(MIL) 인터페이스(206)를 통해 미디어 통합 계층(MIL)(204)으로 직접 보낸다. MIL(204)은 예를 들어 발명의 명칭이 "다중 레벨 그래픽 처리 시스템 및 방법"(Multiple-Level Graphics Processing System and Method)인 2002년 6월 27일자로 출원된 베다(Beda) 등의 미국 특허 출원 번호 제10/184795호에 기재되어 있고, 상기 특허출원에 포함된 임의의 문헌의 내용을 포함해서 그 내용은 명백히 본 명세서에 참고자료로 합체되어 있다. 본 발명의 일 실시예에 있어서, 애플리케이션(200)으로부터 MIL 인터페이스(206)로 직접 보낸 애니메이션 오브젝트는 페어런트 타임라인의 명시적 지정을 요구하거나, 또는 애니메이션 오브젝트는 실행되지 않는다.
MIL(204)는 MIL 인터페이스(206)를 통해 액세스되는 제어 컴포넌트 및 그래픽 표시 오브젝트 렌더링의 세트를 포함한다. MIL 인터페이스(206)는 예를 들어 발명의 명칭이 "화면 그래프를 위한 포괄 매개변수화"(Generic Parameterization for a Scene Graph)인 2002년 6월 27일자로 출원된 베다 등의 미국 특허 출원 제10/184796호에 기재되어 있고, 상기 특허출원에 포함된 임의의 문헌의 내용을 포함해서 그 내용은 명백히 본 명세서에 참고자료로 합체되어 있다. MIL 인터페이스(206)는 애플리케이션(200) 또는 프리젠터 시스템(208)(이하에 기술됨)이 애플리케이션의 표시 프레임의 저 레벨 설명을 구성할 것이라고 믿는 인터페이스이다. MIL 인터페이스(206)는 메소드 콜들의 세트, 예를 들어 DrawLine(...), PushTransform(...) 및 PopTransform(...)를 포함한다. MIL 인터페이스(206)가 서비스하는 콜들은 화면/문서/또는 그래픽 사용자 인터페이스를 기술한다.
본 명세서에 다루고 있는 발명은 그래픽 오브젝트를 위한 애니메이션을 정의하는 기반구조 및 시간에 따라 변하는 어떤 패러미터 값들을 제공한다. 따라서, 실제 애니메이션은 예를 들어 본 명세서에 요약된 MIL(204)를 포함하는 다양한 그래픽 렌더링 엔진들 중 어느 하나에 의해 실행될 수 있다.
요소 트리(202)에 의해 유지되는 요소들은 고 레벨 그래픽 아이템들(예컨대, 버튼, 스크롤 바 등)을 나타낸다. 본 발명의 실시예에 있어서, 이와 같은 그래픽 오브젝트는 MIL(204) 컴포넌트가 직접 사용할 수 없는 고 레벨로 기술된다. 따라서, 프리젠터 시스템(208) 내의 프리젠터는 프리젠터가 관련되어 있는 요소 트리(202)의 구성요소들을 요소 트리(202)의 요소들을 구성하는 비쥬얼들(예컨대, 선, 채워진 직사각형 등)로 컴파일/변환한다. 프리젠터 시스템(208)은 비쥬얼을 MIL(204)으로 MIL 인터페이스(206)를 통해 보낸다. 프리젠터 시스템(208)의 기능을 실행하는 많은 방법이 있다. 프리젠터 시스템(208)의 실시예가 2003년 5월 9일자로 출원되고(익스프레스 메일 EV 329734584 미국) 발명의 명칭이 "그래픽 레이아웃/프레젠테이션 오브젝트의 호스팅을 위한 시스템"(SYSTEM FOR HOSTING GRAPHICAL LAYOUT/PRESENTATION OBJECTS)인 파릭(Parikh) 등의 미국 특허 출원 번호 10/(출원 번호는 아직 부여되지 않음)에 상세히 기재되어 있고, 상기 특허출원에 포함된 임의의 문헌의 내용을 포함해서 그 내용은 명백히 본 명세서에 참고자료로 합체되어 있다.
본 발명의 특정 실시예에 있어서, MIL(204)는 MIL 인터페이스(206)를 통해 MIL(204)에 프리젠터 시스템(208)에 의해 보내지는 비쥬얼을 처리할 수 있는 고 레벨 비쥬얼 트리(210)를 포함한다. 고 레벨 비쥬얼 트리(210)는 구조화된 프리미티브 세트(예컨대, 선, 직사각형, 이미지 등)를 포함한다. 구조화된 프리미티브 세트는 애플리케이션에 대한 단일 이미지 프레임을 기술한다. 고 레벨 비쥬얼 트리(210)는 "독립 애니메이션"이라고 하는 애니메이션의 클래스를 지원한다. 이하에 더 기술되는 독립 애니메이션은 애니메이션을 달성하기 위해 프리젠터 시스템(208)의 레이아웃 기능에 의존하지 않는다.
저 레벨 비쥬얼 트리(212)는 고 레벨 비쥬얼 트리(210)의 플래튼(flatten)된 버전일 가능성이 있다. 저 레벨 비쥬얼 트리(212)는 고 레벨 비쥬얼 트리(210)를 통해 저 레벨 비쥬얼 트리(212)로 보내진 독립 애니메이션을 신속하게 렌더링하고 실행하도록 구성된다. 저 레벨 비쥬얼 트리(212)는 예를 들면 고 레벨 비쥬얼 트리(210)로부터 그 구조로의 업데이트들 사이에서 잠재적으로 다수의 프레임을 작성한다.
저 레벨 비쥬얼 트리(212)는 출력 드라이버와 인터페이스하도록 구성된다. 원격 머신 네트워크 통신 드라이버(214)는 애플리케이션(200)이 출력을 렌더링하는 머신에 대응하는 오브젝트이다. 이 머신은 잠재적으로 애플리케이션(200)이 실행하는 머신과는 다른 머신이다. 이와 같은 경우, 애플리케이션(200)은 그 비쥬얼 출력을 네트워크 접속을 통해 전달하여 애플리케이션(200)의 사용자를 위한 원격 머신 상에 출력을 표시한다.
또한, 저 레벨 비쥬얼 트리(212)는 그래픽 표시 드라이버(216)에 출력을 렌더링한다. 그래픽 표시 드라이버(216)는 로컬 사용자를 위한 애플리케이션(200)을 현재 실행하는 머신을 위한 출력 표시 장치(예컨대, 비쥬얼 표시 스크린)에 프레임을 드로잉(drawing)하는 역할을 하는 로컬 머신의 하드웨어로의 프레임 표시 데이터 통신을 나타낸다.
오브젝트가 애니메이션화되고 있을 때, 렌더 큐 아이템(213)은 애니메이션들이 서로 동기한 채로 있도록 보장한다. 렌더 큐 아이템(213)은 새로운 프레임이 렌더링될 필요가 있을 때마다, 예컨대 변경이 요소 트리(202)에 대해 이루어질 때 또는 애니메이션 오브젝트가 값들을 변경시킬 때 생성된다. 렌더 큐 아이템(213)은 그것이 완전히 처리되자마자 사라진다. 렌더 큐 아이템(213)은, 그 동기화 역할을 수행함에 있어서 다음과 같은 처리, 즉 타이밍 트리(228)(이하에 기술됨)를 티킹(ticking)하여 종속적으로 애니메이션화된 특성들을 무효화하는 처리, 티킹 과정이 완료된 후 레이아웃을 완성하고 고 레벨 비쥬얼 트리(210)를 업데이트하기 위해 프리젠터 시스템(208)을 호출하는 처리, 프리젠터 시스템(208)이 레이아웃을 완성한 후, 변경을 저 레벨 비쥬얼 트리(212)로 컴파일하여 전달하기 위해 비쥬얼 트리(210)에 요청하는 처리로 구성된다. 이하, 렌더 큐 아이템(213)의 기능을 행하는 단계를 본 명세서에서 도 3과 관련하여 설명한다.
제공된 애니메이션화된 값에 따라 데이터의 프레임을 유지 및 발생하는 특정 예시적인 기능 블록을 기술하였으나, 요소 트리(202) 및 이들 시간-구동 변경 내의 애니메이션화된 특성의 소스에 유의해야 한다. 특성 시스템(220)은 특성들의 값들을 유지하는 역할을 한다. 특성 시스템(220)은 요소들에 대한 값을 저장하고 산출함으로써 이들이 프리젠터 시스템(208)에 의해 사용되어 고 레벨 비쥬얼 트리(210)를 생성할 수 있도록 한다. 특성 시스템(220)은 특성 값에 대한 상속 모델을 지원하고, 여기서 특정 특성에 대한 요소 값이 요소의 차일드(children) 세트에 의해 상속된다.
도 2에 예시적으로 도시된 것과 같이, 특성 시스템(220)은 많은 소스로부터 입력 값을 수신한다. 애플리케이션(200)은 특성 시스템(220)에 의해 유지되는 다이나믹 특성에 대한 기본값을 설정(및 이들의 현재 값을 검색)한다. 요소 트리(202)는 특성 시스템(220)으로부터, 요소 트리(202) 내의 요소의 특성에 대한 값을 요청하여 프리젠터 시스템(208)에 준다. 프리젠터 시스템(208)은 또한 특성값을 사용하여 MIL 인터페이스(206)로의 콜(call)에 대한 입력을 발생한다. 요소 트리(202)의 요소를 처리하는 과정 중, 프리젠터 시스템(208)은 다이나믹 특성 기 본값과 특성 시스템(220)으로부터 요소와 관계된 다른 정보를 요청하여 프리젠터 시스템(208)이 관련되어 있는 특정 뷰를 구성하는 요소에 대한 값을 구성하여 할당한다.
특성 시스템(220)은 상이한 소스로부터의 값에 우선 순위를 매긴다. 예를 들어, 특성 시스템(220)은 국부적으로 특정된 특성값이 특성 시트에서 특정된 값 또는 페어런트로부터 상속된 값보다 높은 우선 순위를 가지게 한다. 특성 시스템(220)은 다양한 소스에 의해 제공되는 값을 분류하고 가장 높은 우선 순위값을 그 값의 임의의 수신자에게 돌려 보내는 로직을 포함한다. 특성 시스템(220)은 특성에 대한 현재 값을 산출할 때 특성에 부가된 어떤 액티브 애니메이션을 고려한다. 사용자가 특정 소스로부터 값을 요청하면, 그 때 특성 시스템(220)은 그러한 요청을 취급한다.
특성 시스템(220)에 의해 유지되는 특성값을 변경하는 애니메이션 오브젝트는 애니메이션 오브젝트 인스턴스(또는 그것의 페어런트)와 관계된 타임라인에 기초하여 특성 값을 변경하는 방법을 정의하여 실행하는 애니메이션 클래스(222)로부터 인스턴스화된다. 애니메이션 클래스 오브젝트 인스턴스는 애플리케이션(220)에 의해 생성된다. 애플리케이션(200)은 또한 애니메이션 클래스(222)로부터 인스턴스화된 애니메이션 오브젝트에 대한 값을 설정한다. 애플리케이션(200)은 또한 특정 애니메이션 클래스 오브젝트에 대한 현재 값을 요청할 수 있다. 애니메이션 클래스 오브젝트는 애니메이션 클래스 오브젝트에 대해 참조가 존재하지 않을 때 제거된다. 애니메이션 클래스(222)는 각각 특정 애니메이션 동작을 기술하는 From, To 및 Duration 등과 같은 특정의 가능한 특성을 가진다.
애니메이션 클래스가 분류되어 상이한 클래스가 상이한 애니메이션 동작 및 이들의 대응하는 데이터 종류에 대해 존재한다. 애니메이션 클래스의 예는 다음과 같다.
FloatAnimation - 부동 소수점 값을 제공
BoxUnitAnimation - 프리젠터 박스에 대한 치수를 제공
PointAnimation - 직사각형의 좌측 위의 위치를 제공
ColorAnimation - 시간 변경 컬러 값을 제공, 및
BoolAnimation - 불린 값을 제공.
애니메이션 클래스(220)의 인스턴스는 불변이다. 따라서, 일단 이들이 생성되면, 이들의 특성 값은 결코 변경되지 않는다. 이것은 애플리케이션 작성자(writer)가 그것의 정의된 동작이 변경될 것이라는 염려없이 여러 장소에서 애니메이션 인스턴스를 재사용할 수 있다는 것을 의미한다.
애니메이션 컬렉션 클래스(224)는 애니메이션 클래스(222)를 구성한다. 애니메이션 컬렉션 클래스는 애플리케이션(220)에 의해 생성된다. 애플리케이션(200)은 애니메이션 컬렉션 클래스 내에 포함되는 하나 이상의 애니메이션 클래스(222)를 특정한다. 이때, 애플리케이션(200)은 특성 시스템(220)에서 다이나믹 특성을 애니메이션화할 애니메이션의 컬렉션으로서 애니메이션 컬렉션 클래스를 설정한다. 애플리케이션(220)은 또한 애니메이션 컬렉션 클래스 인스턴스를 요소 트리(202) 내의 임의의 특정 요소와 관계된 임의의 다이나믹 특성과 관련 지을 수 있다. 애플리케이션(200)은 포함된 애니메이션 클래스를 애니메이션 컬렉션 클래스(224)의 특정 애니메이션 컬렉션 클래스 내에 열거할 수 있고, 애니메이션 컬렉션 클래스로부터 구성된 애니메이션 값을 요청할 수 있다. 애니메이션 컬렉션 클래스 인스턴스는 특정 애니메이션 컬렉션 클래스 인스턴스에 대한 참조가 존재하지 않을 때 수집되는 불용 정보이다.
애니메이션 컬렉션은 동일 데이터 종류를 처리하는 애니메이션 오브젝트의 컬렉션이다. 애니메이션 컬렉션 클래스는 리스트 내의 애니메이션 클래스의 상대적 우선 순위 및 애니메이션 컬렉션 클래스 인스턴트로 보내진 기본 값에 따라 애니메이션 클래스를 함께 구성하는 방법을 알고 있다. 본 발명의 실시예에서, 애니메이션 클래스는 애니메이션 컬렉션 클래스에서 함께 연결되어 있다. 애니메이션 컬렉션의 입력은 기본 특성값을 수신한다. 제1 스테이지(애니메이션 오브젝트)는 다음의 가능한 스테이지(애니메이션 컬렉션 클래스 오브젝트 내에 있는 다수의 애니메이션 오브젝트의 경우에)에 대한 입력과 동일 종류의 변형된 특성값을 렌더링한다. 애니메이션 컬렉션의 파이프라인 방식 애니메이션 오브젝트에 의한 기본값의 파이프라인 방식 처리는 애니메이션화된 특성에 대한 현재 값을 렌더링한다. 이러한 파이프라이닝의 결과로서 연속적으로 실행되는 복합 애니메이션 기능이 생성된다.
애니메이션 컬렉션 클래스는 애니메이션이 지원되는 특성값의 각 형태에 존재한다(예컨대, FloatAnimationCollection, BoxUnitAnimationCollection, PointAnimationCollection, ColorAnimationCollection, 및 BoolAnimationCollection). 애니메이션 컬렉션 클래스 형태의 리스트는 단지 예일 뿐이다. 이 기술 분야에서 숙련된 사람은 가능한 넓은 범위의 상이한 애니메이션 컬렉션 클래스 형태를 용이하게 이해할 수 있을 것이다. 애니메이션 클래스(220)에 있어서, 애니메이션 컬렉션 클래스(224)로부터의 애니메이션 컬렉션 클래스의 인스턴스는 불변이다.
다이나믹 애니메이션 컬렉션 클래스(226)는 애니메이션 컬렉션 클래스(224)의 기능에 의존한다. 다이나믹 애니메이션 컬렉션 클래스(226)의 인스턴스는 애니메이션 컬렉션 클래스(224)의 애니메이션 컬렉션 클래스 인스턴스에 대한 참조에 의지한다. 더욱이, 다이나믹 애니메이션 컬렉션 오브젝트 인스턴스는 요소 트리(202) 내의 요소 및 다이나믹 애니메이션 컬렉션 인스턴스가 애니메이션화하고 있는 요소에 대한 특성에 대한 참조에 의존한다. 본 발명의 실시예에서, 애플리케이션 작성자는 다이나믹 컬렉션 인스턴스를 생성 또는 액세스할 수 없다. 대신, 특성 시스템(220)은 애플리케이션(220)으로부터 요청의 수신시 다이나믹 애니메이션 컬렉션 인스턴스를 생성한다.
다이나믹 애니메이션 컬렉션 오브젝트 인스턴스는 애니메이션 컬렉션 클래스 인스턴스가 다이나믹 특성과 관련되어 있을 경우 특성 시스템(220)에 의해 생성된다. 다이나믹 특성은 폭, 높이, 상측, 좌측과 같은 요소 트리(202) 내의 요소에 대한 단일 정의 특성 또는 임의 종류의 요소의 임의의 다른 정의 특성과 관계된 값을 유지 및/또는 계산한다. 다이나믹 애니메이션 켈렉션은 또한 애니메이션 컬렉션 클래스(224)의 애니메이션 클래스로부터 인스턴스화된 애니메이션 컬렉션을 유지하여 애니메이션 컬렉션 클래스를 요소 트리(202) 내의 특정 요소/특성 조합과 관계시킨다. 특성 시스템(220)이 다이나믹 특성의 현재값을 요청하면, 특성 시스템(220)은 다이나믹 특성이 다이나믹 애니메이션 컬렉션 클래스(226)로부터 인스턴스화된 관련 다이나믹 애니메이션 컬렉션 오브젝트를 가지는 지의 여부를 판정하고, 특성 시스템(220)은 현재의 애니메이션화된 값을 제공하기 위해 다아나믹 애니메이션 컬렉션 내의 임의의 현재 활성화되어 있는 애니메이션 클래스에 의해 기본값을 처리한다. 본 발명의 실시예에 있어서, 특성 시스템(220)이 현재값에 대한 특정 다이나믹 애니메이션 컬렉션 오브젝트를 요청할 경우, 특정된 다이나믹 애니메이션 컬렉션은 그 요청을 애니메이션 컬렉션 클래스(224) 중 하나로부터 인스턴스화된 적합한 애니메이션 컬렉션 오브젝트로 보낸다. 애니메이션 컬렉션 오브젝트는 또한 이들의 현재 값을 렌더링하기 위해 애니메이션 클래스(222)로부터 인스턴스화된 애니메이션 오브젝트의 그 세트를 통해 루프하여 애니메이션 컬렉션 오브젝트에 의한 최종값을 그 콜링 다이나믹 애니메이션 컬렉션에 렌더링하기 위한 기초를 제공한다.
애플리케이션(200)에 의해 생성되는 몇몇 애니메이션은 페어런트 타임라인을 특정하지 않고 애니메이션 시스템이 요청된 애니메이션에 대한 적합한 페어런트 타임라인을 선택할 것을 예상한다. 관계시키는 처리(association process) 중, 특성 시스템(220)은 애니메이션 컬렉션 클래스 내의 각 애니메이션 클래스가 페어런트 타임라인을 가지는 지의 여부를 처음에 판정한다. 어떤 애니메이션 클래스도 페어런트 타임라인과 관련되어 있지 않으면, 이때 다이나믹 애니메이션 컬렉션이 관련 되어 있는 표시 요소의 페어런트 타임라인과 관련되어 있는 새로운 애니메이션 클래스가 생성된다. 더욱이, 표시 요소와 관계된 페어런트 타임라인이 변경되면, 이때 페어런트 타임라인에서의 변경을 반영하기 위해 다이나믹 애니메이션 컬렉션이 재구성되는 것을 알 수 있다.
적절히 기능하도록, 애니메이션 컬렉션 클래스 내의 모든 애니메이션 클래스는 이들의 실행 타이밍을 통제하는 페어런트 타임라인을 결국 특정해야 한다. 특정된 애니메이션 컬렉션 내의 모든 애니메이션 클래스가 페어런트 타임라인과 관련되어 있으면, 이때 다이나믹 애니메이션 컬렉션은 특정된 애니메이션 컬렉션 클래스를 사용한다. 그렇지 않으면, 애니메이션 클래스 및 애니메이션 컬렉션 클래스의 불변의 점을 고려하여, 특성 시스템(220)은 새로운 애니메이션 컬렉션 클래스를 생성하고, 새로운 애니메이션 컬렉션 클래스는 각각 할당된 페어런트 타임라인을 가진 새로운 애니메이션 클래스를 포함한다. 특성 시스템(220)이 페어런트 타임라인을 가진 각각의 애니메이션 오브젝트를 갖는 새로운 애니메이션 컬렉션 클래스를 생성하면, 특성 시스템(220)은 애니메이션 컬렉션 클래스를 요소/다이나믹 특성 쌍과 관계된 다이나믹 애니메이션 컬렉션에 부여한다. 이러한 쌍과 관계된 다이나믹 애니메이션 컬렉션이 아직 없으면, 특성 시스템은 새로운 것(226)을 생성할 것이다.
위에서 여러 번 기재한 것과 같이, 타이밍은 요소 트리(202) 내의 요소의 특성에 부가된 애니메이션 오브젝트와 관계된 애니메이션 동작을 구동한다. 본 명세서에 사용된 것과 같이, 타임라인은 타이밍 속성 세트에 따라 런타임 상태를 유지하는 타이밍 엔티티의 인스턴스이다. 타이밍 트리(228)는, 본 발명의 실시예에서, 계층 방식으로 배열된 타이밍 노드(타임라인)를 포함하는 데이터 구조이다. 타이밍 노드 간의 관계는 상속 규칙 및 타이밍 트리(228) 내의 타이밍 노드에 대응하는 각 타임라인의 노드-특정 타이밍 속성에 의해 정의된다. 상속 규칙은 페어런트 시작 시간과 관계된 차일드 시작 시간의 오프셋 정의를 포함한다. 더욱이, 계층 관계는 제어 관계를 특정한다. 예를 들면, 페어런트가 재시작, 반복, 일시정지, 재개, 탐색 또는 종료되면, 모든 차일드(및 이들의 차일드 등)도 마찬가지이다. 이와 같은 관계는 단일 페어런트 타임라인 상에서의 조작을 통해 차일드 타임라인의 전체 그룹을 시작시키는 것을 가능하게 한다. 타이밍 트리(228)는 (1) 잠재적으로 변경을 애니메이션 클래스 인스턴스의 값으로 하는 타임라인 및 (2) 다른 타임라인을 포함하는 컨테이너 타임라인에 의지한다. 타임라인으로부터 구한 진행 값은 임의의 주어진 애니메이션 오브젝트의 현재 값을 계산하기 위해 사용된다. 타이밍 트리(228)는 애플리케이션(200)의 기동 시에 생성된다.
타이밍 트리(228)는 도 2에 도시된 애니메이션 기반구조에 대한 타이밍 이벤트 통지 역할을 수행한다. 처음에, 다이나믹 애니메이션 컬렉션이 인스턴스화되면, 요청이 다이나믹 애니메이션 컬렉션에 의해 타이밍 트리(228)로 발행되어 그 애니메이션 컬렉션 클래스 오브젝트 내의 애니메이션 인스턴스가 진행될 때마다 통지를 발행한다. 다이나믹 애니메이션 컬렉션이 그 애니메이션 중 하나가 진행되었다는 통지를 타이밍 트리(228)로부터 받으면, 다이나믹 애니메이션 컬렉션 인스턴스는 특성 시스템(220)에 관련된 표시 요소에 대한 다이나믹 특성이 지금 무효라고 통지한다. 표시 요소 특성의 무효화는 또한 본 명세서에서 종속 애니메이션이라고 불리우는 처리를 시작한다. 종속 애니메이션 처리 중, 프리젠터 시스템(208)은 애니메이션과 관계된 값 변경에 따라 고 레벨 비쥬얼 트리(210)를 구성하도록 요청된다.
타이밍 트리(228)는 또한 진행 측정(progress measurement) 및 애니메이션 클래스(222)의 인스턴스에 대한 보고 역할을 수행한다. 무효화에 응답하여, 애니메이션 클래스(222)는 그들의 현재값을 보고하도록 요청된다. 애니메이션 클래스(222)는 각각 관련되어 있는 타임라인 진행 값에 대하여 타이밍 트리(228)에게 질의한다. 이 후, 애니메이션 클래스(222)는 타이밍 트리에 의해 공급된 진행 값에 기초하여 이들의 현재값을 계산하고, 현재값을 임의의 요구하는 엔티티에 제공한다.
렌더 큐 아이템(213)은 또한 타이밍 트리(228)와 상호 작용한다. 렌더 큐 아이템은 실행될 때 애플리케이션(200)에 의해 발생된 애플리케이션/페이지/화면이 저 레벨 비쥬얼 트리(212)로 컴파일되도록 하고 결국 표시 장치에 주어지도록 하는 운영 체제 내의 큐 아이템이다. 일단 호출되면, 렌더 큐 아이템이 수행하는 첫 번째 것은, 타이밍 트리(228)의 "틱(tick)"이다. 이것은 타이밍 트리가 그 타임라인을 현재 시간으로 업데이트하는 효과를 가진다. 그 결과, 타이밍 트리(228)는 특성 시스템(220)에서 많은 무효화를 일으킬 수 있는 통지를 발송한다. 독립 애니메이션의 진행 값은 틱이 실행될 때에도 업데이트된다. 렌더 큐 아이템(213)의 진행 중, 타이밍 트리(228)가 변형되면, 렌더 큐 아이템은 타이밍 트리(228)가 안정화할 때까지 루프하고 동시에 "리-틱(re-tick)"할 것이다.
독립/종속 애니메이션
독립 및 종속 애니메이션 양자를 전술하였다. 본 발명의 실시예에 있어서, 도 2에 도시된 애니메이션 시스템은 적어도 이들 2 형태의 애니메이션 인스턴스를 지원하고, 그것의 분류는 다른 애니메이션 인스턴스와 이들의 관계에 기초한다. 독립 애니메이션 인스턴스는 뷰의 레이아웃에 영향을 주지 않으므로 더 높은 비율로 리프레시될 수 있다. 독립 애니메이션의 예는 컬러 애니메이션이다. 오브젝트의 컬러는 그 폭 또는 높이를 변형시키지 않으므로 컬러 변경 애니메이션은 컬러 변경 애니메이션화된 요소가 페이지 상에서 레이아웃(예컨대, 크기 또는 위치)되는 방법에 영향을 미치지 않는다.
종속 애니메이션은 일반적으로 종속 애니메이션이 관련되는 요소의 레이아웃을 변경하므로 종속 애니메이션은 그래픽 사용자 인터페이스 레이아웃의 재계산을 요구한다. 종속 애니메이션 인스턴스가 요소 트리(202) 구조 내에 저장되어 모든 영향을 받은 표시 요소 특성의 적절한 처리를 보장한다. 가능한 상당히 큰 계산 및 메모리 액세스 요구조건으로 인해, 종속 애니메이션은 MIL(204)에 의해 가능한 작은 리프레시율로 계산된다.
"애니메이션" 클래스에 대한 3 레벨/스테이지
본 발명의 실시예에 있어서, 표시 요소 특성에 적용된 애니메이션 동작은 3 레벨의 클래스 및 이들의 대응하는 인스턴스를 통해 구현된다. 도 2를 계속 참조하면, 애니메이션 클래스(222)는 특성값(통상적으로 단일 애니메이션 동작)에 대한 특별히 정의된 애니메이션 동작을 계산할 수 있는 오브젝트 클래스 정의 오브젝트의 세트를 구비한다.
다음의 레벨에서, 애니메이션 컬렉션 클래스(224)는 애니메이션 클래스(222)로부터 단일 애니메이션 클래스 정의로 하나 이상의 개개의 애니메이션 클래스를 그룹화/할당하는 오브젝트의 세트를 정의하므로 단일 요소 특성에 대한 복합 애니메이션 동작의 생성을 지원한다.
다음의 레벨에서, 다이나믹 애니메이션 컬렉션(226)은 요소 트리(202) 내의 요소의 특성에 대해, 애니메이션 컬렉션 클래스(224) 중 하나에 의해 정의된, 애니메이션 동작을 수행/실행하기 위해 오브젝트 형태를 정의한다. 이와 같은 기능은 애니메이션 컬렉션 클래스(224)의 애니메이션 컬렉션 클래스 인스턴스에 대한 참조, 및 요소 트리(202) 내의 요소 및 다이나믹 애니메이션 컬렉션 인스턴스가 애니메이션화하고 있는 요소의 특성에 대한 참조에 의존하는 다이나믹 애니메이션 컬렉션(226)의 인스턴스에 의해 용이하게 된다. 다이나믹 애니메이션 컬렉션은 애니메이션 컬렉션 클래스 인스턴스가 다이나믹 특성과 관련되어 있을 경우 특성 시스템(220)에 의해 생성된다. 다이나믹 특성은 요소 트리(202) 내의 요소에 대한 단일 정의 특성, 예를 들어 폭, 높이, 상측, 좌측 또는 임의의 종류의 요소의 임의의 다른 정의 특성과 관계된 값을 유지 및/또는 계산한다. 다이나믹 애니메이션 컬렉션은 또한 애니메이션 컬렉션 클래스(224) 중 하나로부터 인스턴스화된 애니메이션 컬렉션 클래스 오브젝트에 대한 참조를 유지하여 애니메이션 컬렉션 클래스 오브젝트를 요소 트리(202) 내의 특정 요소/특성 조합과 관계시킨다.
도 3으로 되돌아가면, 도 2의 렌더 큐 아이템(213)에 의해 수행되는 예시적인 렌더링 시퀀스에 대한 단계들의 세트가 요약되어 있다. 위에 설명된 것과 같이, 렌더 큐 아이템(213)은 실행될 때, 애플리케이션(200)에 의해 발생된 애플리케이션/페이지/화면이 저 레벨 비쥬얼 트리(212)로 컴파일되어 표시 장치에 의해 렌더링되게 한다. 이러한 단계의 시퀀스는 예시적인 것이며, 렌더 큐 아이템 동작은 본 발명의 다른 실시예에서 변형된다는 것을 알 수 있다.
처음에, 단계 300 동안, 렌더 큐 아이템(213)은 타이밍 트리(228)의 티킹을 발생한다. 타이밍 트리(228)를 티킹함으로써 타임 트리(228)가 그 타임라인을 현재 시간으로 업데이트하는 효과를 가진다. 그 결과, 타이밍 트리(228)는 특성 시스템(220)에서 많은 무효화(예컨대, 종속적으로 애니메이션화된 특성의 무효화)가 일어날 수 있는 통지를 발송한다. 본 발명의 실시예에 있어서, 변경 이벤트가 업데이트된 시간에 의해 영향을 받은 애니메이션 오브젝트에 의해 생성된다. 이들 이벤트는 애니메이션 오브젝트 관련 다이나믹 애니메이션 컬렉션 오브젝트 인스턴스에 의해 수집되어 처리된다. 다이나믹 애니메이션 컬렉션 오브젝트는 또한 요소의 다이나믹 특성을 무효화한다. 독립 애니메이션의 진행값은 틱이 단계 300에서 실행될 때에도 업데이트된다.
타이밍 트리(228)를 티킹한 후, 단계 310 동안 레이아웃 처리가 렌더 큐 아이템(213)에 의해 수행된다. 레이아웃 처리(310) 동안 고 레벨 비쥬얼 트리(210)가 렌더 큐 아이템의 최후 실행 이래로 요소 트리(202)에 대한 어떤 변경에 따라 업데이트된다. 본 발명의 실시예에서, 특성 값(시간의 티킹의 결과로서)을 변경하 는 점에서 그래픽 요소를 레이아웃하는 역할을 하는 프리젠터가 무효화되고, 이것은 이들이 이들의 레이아웃을 다시 계산하고 영향받은 다이나믹 특성에 대한 변경을 포함하는 새로운 고 레벨 비쥬얼 트리를 생성하는 것을 의미한다. 또한 단계 310 동안, 표시 시스템은 레이아웃에 잠재적으로 영향을 줄 수 있는 애플리케이션, 운영 체제 쉘 등으로부터 요청을 수신 및 디스패치한다. 이와 같은 요청의 예는 히트 테스트, 사용 프로그램에 대한 콜백 및 그래픽 표시에 영향을 주는 일반 동작을 포함한다.
레이아웃 처리(310)동안, 타이밍 트리(228) 구조는 잠재적으로 변경할 수 있다(예컨대, 새로운 타임이 노드가 부가되고, 기존 노드가 제거되고, 새로운 참조가 기존 타이밍 노드에 설정되는, 등등). 단계 320에서, 타이밍 트리 구조가 변경되었다고 판정되면, 이후 제어는 단계 300으로 되돌아가고 타이밍 틱이 새로운 형태로 타이밍 트리(228)에 대해 다시 실행된다.
타이밍 트리(228)의 구조가 변경되지 않았으면, 이때 제어는 단계 320에서 렌더 단계 330으로 이행하고, 여기서 고 레벨 비쥬얼 트리(210)는 새로운/업데이트된 그래픽 표시 데이터를 저 레벨 비쥬얼 트리(212)로 컴파일하여 전달한다. 저 레벨 비쥬얼 트리(212)는, 수신된 변경에 기초하여, 재계산된 출력을 드라이버(262) 및/또는 드라이버(264)에 렌더링한다.
그 후, 단계 340 동안, 다이나믹 애니메이션 컬렉션과 관계된 타임라인에는 틱될 필요가 있는 다음 시간(가장 가까운 이벤트)을 결정하기 위해 질의된다. 다른 틱이 필요로 되지 않으면, 제어는 종료 360으로 이행한다. 트리의 부가 틱이 필요로 되면, 이때 제어는 단계 350로 이행하고 여기서 렌더 큐 아이템(213)의 새로운 인스턴스가 애니메이션화된 요소 특성의 다이나믹 애니메이션 컬렉션 인스턴스에 대해 생성된다. 새로운 렌더 큐 아이템은 실행되어야 할 시간을 특정한다. 특정 실행 시간이 아직 도달하지 않은 어떤 시간이면, 이때 렌더 큐 아이템은 처음에는 비활성 리스트에 놓인다. 시간이 도달된 경우, 렌더 큐 아이템은 도 3에 도시된 단계에 따라 실행을 위한 활성 큐 내에 놓인다. 새로운 렌더 큐 아이템이 생성된 후, 이 후 제어는 종료 360로 이행한다.
요소 특성에 대한 애니메이션 동작은 애니메이션 클래스(222)로부터 인스턴스화된 하나 이상의 애니메이션 오브젝트에 의해 실행된다. 각 애니메이션 오브젝트는 입력의 제1 세트(적어도 현재의 타임라인 값을 포함)를 취하고 애니메이션화된 표시 요소를 렌더링하는 데에 적합한 형태의 출력을 생성하는 애니메이션 기능을 포함한다. 애니메이션 클래스(222)의 여러 클래스(예컨대, PointAnimation)는 타임라인 진행값을 요소 특성을 위한 적당한 데이터 형태(예컨대, 포인트)로 변환한다.
도 4로 돌아가면, 예시적인 고 레벨 애니메이션 클래스 구조가 요약되어 있다. 다양한 애니메이션 클래스는 공통 패턴을 따라가고 유사한 인터페이스 세트를 구현한다. 상이점은 우선 특성의 데이터 형태 및 계산된 진행값의 점에서 현재값을 입력값에 할당하기 위해 수행되는 계산(특정 데이터 형태 예를 들면, 부동 소수점, 불린, 포인트 등의 점에서)에서 생긴다. 이와 같은 변경은 본 명세서에 포함된 애니메이션 클래스의 기능의 설명 및 예를 고려하여 이 기술에 숙련된 사람의 숙련 범위 내에서 이루어 질 수 있다.
본 발명의 일 실시예에 있어서, 애니메이션 클래스 구조는 애니메이션 특성(Animation Properties)의 세트를 포함할 수 있다. From 특성은 시작 애니메이션 값을 지정한다. To 특성은 종료 애니메이션 값을 특정한다. By 특성은 애니메이션의 종료 시의 변경(델타) 값을 특정한다. To 특성에서 명시적 종료값을 특정하기 보다, By 특성은 종료 애니메이션 값과 초기 애니메이션 값간의 차이를 특정한다.
애니메이션 클래스는 각 세그먼트 내의 상이한 타이밍 패러미터를 이용하는 다수의 세그먼트를 포함한다. KeyValues 특성은 애니메이션에 대한 값의 리스트를 특정한다. 보간 방법 특성은 KeyValues 특성에 특정된 2개의 키 값 사이에서 보간하는 방법을 특정한다. 보간 방법의 예는 이산, 선형, 페이스(pace) 및 스플라인(spline)을 포함할 수 있다. KeyTimes 특성은 애니메이션의 페이싱을 제어하기 위해 사용된 시간값의 리스트를 지정한다. 이 리스트는 KeyValues 리스트와 같은 수의 요소를 포함한다. 리스트는 시간 값이 증가하는 순서로 정렬되고 이 리스트의 제1 값은 0이고 최후는 1이다(보간 방법(interpolationMethod)이 이산으로 설정되어 있지 않으면, 그 경우 최후 값은 1보다 작거나 같을 수 있다). KeySplines 특성은 KeyTimes 리스트와 관계된 베지에(Bezier) 컨트롤 포인트의 세트를 특정한다. 베지에 컨트롤 포인트는 애니메이션의 간격 페이싱을 제어하는 큐빅 함수를 정의한다. 이 리스트는 KeyTimes 리스트보다 하나 작은 요소를 포함한다. 이 리스트는 단지 보간방법 속성이 Spline으로 설정되면 사용된다.
애니메이션 클래스 구조 내의 애니메이션 특성은 특정 불린 속성을 포함한다. IsOverridingBaseValue 특성은 애니메이션 오브젝트의 타임라인이 활성화 되 어 있거나 필(fill) 기간에 있으면 참(True)으로 설정된다. 더욱이, IsAccumulating 특성은 반복되는 애니메이션 시퀀스가 요소의 특성에 따라 누적 효과를 가지도록 한다. IsAccumulating 특성이 참으로 설정된 경우, 반복되는 애니메이션 시퀀스의 모든 반복에 대한 동일 궤적을 반복하기보다는, 애니메이션은 각 반복에 대한 효과를 누적시켜 본질적으로 그 자신과 합성하고 요소의 특성에 대한 이전의 애니메이션-유도 변경에 의존한다.
애니메이션 오브젝트에 대한 GetValue의 복귀값(방법 420과 관련하여 이하에 기술됨)이 기본값(애니메이션 오브젝트에 제공됨)에 의존하면, UsesBaseValue 특성은 참으로 복귀한다. UsesBaseValue 특성이 거짓(False)으로 복귀하면, 이때 애니메이션 오브젝트는 기본값을 전체로서 무시한다. 애니메이션 오브젝트가 리스에 있으면, UsesBaseValue 특성은 최적화를 허용하며 여기서 애니메이션 오브젝트의 서브세트만이 어떤 경우에는 평가될 필요가 있다.
애니메이션 클래스 구조는 또한 타이밍 특성의 세트(410)를 포함한다. CurrentTime 특성은 현재의 시간 로컬을 애니메이션 오브젝트를 위한 타임라인에 제공한다. ParentTimeline 특성은 애니메이션 오브젝트의 타임라인의 타이밍 페어런트인 타임라인을 지정한다. ParentTimeline 특성은 임의의 다른 타임라인, 또는 2개의 특정 참조값 중 하나, 즉 Timeline.VisualParent 또는 Timeline.RootTimeline를 참조할 수 있다. ParentTimeline 특성이 Timeline.VisualParent으로 설정되면, 이때 타이라인은 타임라인이 사용되는 비쥬얼과 관계된 타임라인에 사용시 자동 페어런트된다. 비쥬얼이 관계된 DefaultTimeline을 가지지 않으면, 이때 페어런트 비쥬얼이 순환 검사된다. ParentTimeline 특성이 Timelin.RootTimeline으로 설정되면 이때 이 타임라인은 타이밍 트리(228)의 "루트(root)"에 사용 시 자동 페어런트된다.
타이밍 특성의 세트는 특정 애니메이션 오브젝트에 대한 타임라인이 시작되어야 하는 시간을 지정하는 Begin 특성을 포함한다. 디폴트로 시작 시간값이 페어런트 타임라인의 시작 시간에 관련되지만, 오프셋도 잠재적으로 특정되어 몇몇 다른 타임라인의 시작 또는 종료 시간에 관계된 시간을 제공한다. 후자의 경우, 다른 타임라인이 이러한 특정 애니메이션 오브젝트에 대한 타임라인과 동일한 타임라인으로 페어런트되어야 한다. 애니메이션 오브젝트에 대한 Duration 특성은 시작에서 종료까지의 단일 주기의 지속 기간을 지정한다. Progress 특성은 타임라인의 현재의 진행 값을 지정한다. IsOverridingBaseValue(이하에 기술됨)가 거짓이면, 이때 Progress 특성은 0으로 복귀한다. 모든 경우, Progress 특성의 복귀 값은 항상 0과 1 사이(0과 1을 포함함)의 값이다.
본 발명의 일 실시예에 있어서, 애니메이션 반복이 지원된다. RepeatCount 특성은 애니메이션 오브젝트가 살아 있는 동안 반복되어야 하는 시작에서 종료로의 기간을 다수 회 특정한다. RepeatCount 특성 값은 분수값이 될 수 있다. 특정 값, float.PositiveInfinity는 타임라인이 연속하여 반복되어야 하는 것을 나타낸다. CurrentRepeat 특성은 그것이 반복되면 타임라인의 현재 반복을 특정한다. 제1 반복은 반복 1이다. IsOverridingBaseValue 애니메이션 특성이 거짓이면 CurrentRepeat 특성은 0으로 복귀한다.
RepeatDuration 특성은 시작에서 종료로의 기간이 반복되어야 하는 시간 길이를 특정한다. 이것은 결과적으로 부분 실행으로 이어질 수 있다(반복 카운트). Time.Indefinite의 RepeatDuration 특성값은 타임라인이 영원히 반복되어야 하는 것을 나타낸다. IsOverridingBaseValue 특성이 거짓이면, 이 특성은 Time.Unspecified을 복귀시킨다. 값이 RepeatCount 특성과 RepeatDuration 특성 모두에 대해 특정되면, 이때 총 활성 지속 기간은 2개의 특정된 특성의 최소이다.
애니메이션 클래스에 대한 타이밍 특성은 또한 0과 1 사이의 값을 지정하는 가속 특성을 포함하며, 타임 가속 위상에서 소비된 단순 지속 기간의 부분을 나타낸다. 감속 특성은 0과 1 사이의 값을 지정하며, 시간 감속 위상에서 소비된 단순 지속 기간의 부분을 나타낸다. 애니메이션은 동시에 가속 및 감속될 수 없으므로, 가속 및 감속 특성값의 합은 1을 초과하지 않는다(단순 지속 기간).
Autoreverse 특성은 애니메이션이 시작에서 종료 및 그후 역으로 진행하는지의 여부를 지정한다. Autoreverse 특성이 "참(True)"의 값을 가지면, 이때 타임라인은 시작에서 종료로 진행하고 이후 즉시 역방향으로 종료에서 시작으로 진행한다. 타임라인은 애니메이션 오브젝트의 Duration 특성에 의해 특정된 시간량의 2배 동안 활성화될 것이다.
End 특성은 애니메이션 오브젝트에 대한 타임라인 동안 최대 종료 시간을 특정하는 값을 유지한다. End 특성값이 Begin과 Duration 특성값의 합보다 작으면, 이후 활성화 기간은 End 특정값에 의해 짧게 잘린다. 더욱이, End 속성에 의해 특정된 시간이 경과된 모든 특정 애니메이션 시작부(스케쥴링된 또는 상호작용)는 무 시된다.
EndSync 특성값은 타임라인의 암시적 지속 기간을 정의한다. EndSync 특성에 의해 특정된 암시적 지속 기간은 Duration 특성이 명시적으로 설정되지 않으면 사용된다. 타임라인의 암시적 지속기간은 그것이 제어하는 타임 오브젝트 및 그것에 페어런트될 수 있는 다른 타임라인에 의해 정의될 수 있다.
Fill 특성은 종료 시간이 경과한 후 애니메이션 오브젝트의 타임라인의 동작을 특정한다. 디폴트로, 타임라인은 시작에서 종료까지의 "온(on)"에만 존재하지만, Fill 특성이 "프리즈(Freeze)"로 설정되면, 이때 타임라인은 종료 시간이 경과된 채로 있다. 그 경우, 종료 시간 후 애니메이션 오브젝트에 대한 진행값은 그것이 종료 시간에 있었을 때와 동일하다. Fill 특성값에 대한 설정은 Remove(글로벌 디폴트), Freeze, Hold이다. FillDefault 특성은 Fill 특성에 대한 디폴트값을 지정한다. Fill 특성값이 특정되지 않으면, 이때 DefaultFill 특성의 값은 필 동작(fill behavior)을 특정한다. 더욱이, 타임라인이 이들 자신의 FillDefault 속성 세트를 가지지 않으면, 이러한 디폴트는 이 하나에 페어런트된 타임라인에 의해 상속된다. DefaultFill 특성에 대한 가능한 값은 Fill 속성에 대한 값과 동일하다.
Restart 특성은 제2(또는 나중의) 시작 시간이 도달되면 애니메이션 오브젝트의 타임라인의 동작을 지정한다. 디폴트로, 시작 시간은 임의의 활성 기간을 인터럽트하고 타임라인에 대해 t=0으로 되돌아간다. 그러나, Restart 특성이 WhenNotActive로 설정되면, 이때 활성 기간을 인터럽트할 시작 시간은 무시된다. Restart 특성에 대한 가능한 값은 항상 WhenNotActive 및 Never이다. Restart Default 특성은 Restart 특성에 대한 디폴트 값을 지정한다.
Speed 특성은 시간이 애니메이션 오브젝트에 대한 타임라인(그 페어런트 타임라인에 비교되는)에 대해 패스되어야 하는 상대 속도를 지정한다. 즉, 1의 값은 정상 속도를 의미하는 한편, 2의 값은 시간이 2배 빨리 경과한 것을 의미한다(따라서, 인식된 지속 시간은 단지 Duration 속성에 의해 특정된 절반으로 종료함). 이 값은 음일 수 있고, 이 경우 시간은 페어런트 타임라인이 역으로 된 것처럼 타임라인에서 후방으로, 종료에서 시작 시간으로 흐른다.
Boolean 특성의 세트에는 애니메이션 오브젝트의 애니메이션의 상태를 식별하도록 포함된다. IsForwardProgressing 특성은 이 타임라인에서의 진행이 벽시계 시간에 대해 0에서 1로 이동하는지의 여부를 식별한다. IsForwardProgressing 특성은 잠재적으로 역전된 타임라인에 존재하는 효과를 고려한다. IsOverridingBaseValue가 거짓이면, 이때 IsForwardProgressing은 이 타임라인의 페어런트 타임라인이 복귀할 수 있는 값과 동일한 값으로 복귀한다. IsReversed 특성은 참조의 타임라인 자신의 로컬 프레임타임으로부터 알 수 있는 것과 같이, 타임라인이 역의 기간에 있는지의 여부를 식별한다. 이러한 특성은 IsForwardProgressing 특성과 대조적으로, 잠재적으로 역의 타임라인에 존재할 수 있는 효과를 고려하지 않는다. IsOverridingBaseValue 특성값이 거짓이면, 이때 IsReversed 특성은 거짓으로 복귀한다.
다른 특성은 활성도의 애니메이션 상태의 상태와 관련이 있다. IsChanging 특성은 애니메이션 오브젝트의 타임라인이 활성인지의 여부를 식별한다. 대조적으로, IsPaused 특성은 타임라인이 활성되어 있으면 참으로 복귀하지만, 애니메이션은 정지된다.
애니메이션 클래스는 또한 방법의 세트(420)를 포함한다. 구성자 방법의 세트는, 특정 애니메이션 클래스 내에서, 특정 애니메이션 클래스 형태(예컨대, 플로트, 불린, 포인트 등)의 특정 애니메이션 동작을 포함하는 애니메이션 오브젝트를 생성한다. 특정 애니메이션 동작에 대응하는 애니메이션 구성자 방법 형태의 세트는 이하에 기술되는 도 5에 예로서 식별된다.
BeginIn 방법은 입력으로서 오프셋 타임 값을 받는다. BeginIn 방법은 오프셋 값에 대응하는 미래 또는 과거의 시간의 포인트에서 상호작용 시작을 트리거한다. 입력 오프렛 패러미터는 애니메이션 오브젝트의 페어런트 타임라인을 참조하여 시간을 특정한다. 페어런트 타임라인이 활성화되어 있지 않으면, 이 방법은 효과가 없다.
유사하게, EndIn 방법은 입력으로 다른 상대 시간값을 수신한다. EndIn 방법은 미래 또는 과거 시간의 특정 포인트에서 상호작용 종료를 트리거한다. 패러미터는 애니메이션 오브젝트의 페어런트 타임라인의 참조 프레임에 있다. 페어런트 타임라인이 활성화되어 있지 않으면, 이 방법은 효과가 없다.
방법은 애니메이션 오브젝트가 활성화되어 있어 있는 동안 애니메이션 오브젝트의 진행을 정지/기동시키기 위해 제공된다. Pause 방법은 애니메이션 오브젝트 타임라인 및 애니메이션 오브젝트 타임라인을 참조하는 차일드를 일시정지시킨 다. 이러한 타임라인이 활성화되어 있지 않으면, 이 방법은 효과가 없다. 역으로, Resume 방법은 애니메이션 오브젝트 타임라인 및 그 차일드 타임라인 모두를 재시작시킨다. 이 타임라인이 활성화되지 않고 정지되어 있으면, 이 방법은 효과가 없다.
Seek 방법은 특정 오프셋 값에 기초하여 애니메이션 실행 시퀀스내의 특정 포인트로 직접 이동시키는 것을 가능하게 한다. Seek 방법은 잠재적으로 그 차일드 타임라인의 모두에 영향을 줄 수 있는, 이러한 타임라인에 대해 현재 시간을 변경시킨다. 타임라인이 활성화되어 있지 않으면, 이 방법은 효과가 없다.
GetUniqueInstance 방법은 입력으로서 타임라인을 수신하고, 다른 인스턴스와는 별도로 그 자신의 런-타임 상태를 유지할 수 있는 애니메이션 오브젝트의 인스턴스를 복귀시킨다. 애니메이션 오브젝트가 자동-페어런트 타임라인을 포함하면, 복귀된 인스턴스는 패러미터로서 보내진 타임라인에 페어런트된 이들 타임라인을 가진다.
GetValue 방법은 입력으로서 특정 형태의 기본값을 취하고, 입력 기본값과 도일 형태의 다른 값을 복귀시킨다. 출력값은 입력(기본값)과 출력값이 전달되는 변형자(예컨대, 애니메이션 오브젝트/컬렉션)의 내부 상태 모두에 의존한다. 특히, 이것은 동일한 입력으로 두번 이상 GetValue을 호출하는 것은 동일한 출력을 복귀시키는 것을 보장하지 않고, 실제로 애니메이션 시퀀스 과정 동안 변경이 예상되는 것을 의미한다. 애니메이션 오브젝트 클래스(222)의 경우에 있어서, GetValue 방법은 보내진 기본값을 수신하고 진행값의 내부 변형자 정의 계산에 기초한 값을 복귀시킨다.
최종적으로, 애니메이션 클래스 구조는 이벤트의 세트를 지원한다. 변경된 이벤트(430)는 애니메이션 오브젝트의 내부 상태가 변경될 때마다 발생된다. 변경된 이벤트(430) 플래그는 리렌더링이 요구되는(무언가 위치 또는 치수가 변경됨) 것을 표시하기 위해 사용된다. Begun 이벤트 신호는 오브젝트가 그 내부 상태가 연속하여 변경되는 기간에 들어갈 때 발생된다. Ended 이벤트 신호는 오브젝트가 그 내부 상태가 연속하여 변경되고 있는 기간을 떠날 때마다 발생된다. Repeated 이벤트는 애니메이션 오브젝트 타임라인이 그 단순 지속 기간을 반복할 때마다 발생된다. Reversed 이벤트는 시간의 방향이 애니메이션 오브젝트 타임라인에 대해 변할 때마다 발생된다. 이벤트 Paused, Resumed 및 Seeked는 애니메이션 오브젝트의 타임라인 상에서 대응하는 Pause, Resume 및 Seek 방법의 완료에 응답하여 발생된다.
도 5를 참조하면, 애니메이션 오브젝트 동작의 세트가 식별된다. 식별된 동작 각각은 본 명세서의 앞에서 기재된 애니메이션 클래스 형태 각각에 의해, 적당한 곳에서, 지지되는 특정 구성자 클래스에 대응한다. From 구성자 형태(500)는 그 초기 값으로 전달된 "From" 값을 취하고 관계된 특성에 대해 특정된 기본 값으로 진행하는 애니메이션 오브젝트를 생성한다. To 구성자 형태(510)는 그 초기값으로서 관련 특성에 대해 특정되고 전달된 "To" 값으로 진행된 기본 값을 취하는 애니메이션 오브젝트를 생성한다. From-To 구성자 형태(520)는 애니메이션 오브젝트에 대한 From 및 To 특성값을 지정하는 전달된 패러미터를 수신하고, 애니메이션 화된 요소의 특성에 대한 기본값은 애니메이션 동안 사용되지 않는다. 그러나, 애니메이션 시퀀스가 종료하면, 요소 특성은 애니메이션 오브젝트에 대한 Fill 타이밍 특성이 "Freeze"가 아니면 기본값으로 되돌아간다.
애니메이션에 대한 엔드 포인트를 특정하기보다는, 애니메이션 값 범위는 종료 포인트 및 변경(델타) 값을 통해 특정될 수 있다. By 구성자(530)는 델타값을 수신하고, 애니메이션을 기본값에서 기동시키고, 애니메이션 사이클 과정 동안 델타값에 의해 특정된 양만큼 기본값을 변경시키기 시작한다. From-By 구성자(540)는 그 입력으로서 시작 "From" 값을 수신하고 애니메이션 사이클 동안 전달된 델타 값만큼 초기 "From" 값을 변경시키기 시작한다. 애니메이션 오브젝트에 대한 구성자의 기본 세트를 기술하였으나, 본 발명은 상기 동작의 합성/조합을 포함하여, 다양한 애니메이션 동작( 및 대응하는 구성자)을 고려하는 것을 알 수 있다.
예시적인 애니메이션 클래스 구조를 기술하였으나, 애니메이션 오브젝트, 애니메이션 컬렉션 클래스(224)의 컨테이너에 주목해야 한다. 도 6를 참조하면, 애니메이션 컬렉션 클래스에 대한 예시적인 구조가 도시되어 있다. 애니메이션 컬렉션 오브젝트는 애니메이션 클래스(224)로부터 인스턴스화된 애니메이션 오브젝트의 리스를 유지한다. 애니메이션 컬렉션 클래스에 의해 지지되는 방법의 세트(600)를 먼저 참조하면, GetUniqueInstance 방법은 전달된 타임라인 식별에 대응하는 디폴트 페어런트 타임라인과 함께 애니메이션 컬렉션 인스턴스를 복귀시킨다. 애니메이션 컬렉션 클래스는 또한 애니메이션 컬렉션 클래스에 대한 DefaultParentTimeline 특성을 설정하기 위한 인터페이스를 지원한다. 본 발명의 실시예에 있어서, 특성 시스템(220)은 GetUniqueInstance 방법을 콜하여 다이나믹 애니메이션 컬렉션 오브젝트에 대한 특정 애니메이션 컬렉션의 복사본을 얻는다. 애니메이션 컬렉션 오브젝트는 애니메이션 오브젝트의 리스트를 포함한다. 빌더(builder) 기능/엔티티는 애니메이션 오브젝트를 생성된 애니메이션 컬렉션 인스턴스에 부가한다. 애니메이션 컬렉션 내의 애니메이션 오브젝트는 리스트(어레이에서와 같이) 내의 특정 위치를 특정함으로써 인덱스되고 참조되고/액세스된다.
GetValue 방법은 입력으로서 특정 형태의 기본값을 취하고 입력 기본값과 동일한 형태의 다른 값을 복귀시킨다. 출력값은 입력(기본값)과 출력값이 전달되는 변형자(예컨대, 애니메이션 오브젝트/컬렉션)의 내부 상태 모두에 의존한다. 특히, 이것은 동일한 입력으로 두번 이상 GetValue를 콜하는 것은 동일한 출력을 복귀시키는 것을 보장하지 않고, 실제로 애니메이션 시퀀스의 과정 동안 변경이 예상되는 것을 의미한다. 애니메이션 컬렉션 클래스의 경우, GetValue 방법은 보내진 기본값을 그 컬렉션 내의 제1 애니메이션 오브젝트에 제공한다. 제1 애니메이션 오브젝트의 출력은 애니메이션 컬렉션 내의 다음 애니메이션 오브젝트(존재한다면)에 대한 입력 기본값이 된다. 이 처리는 애니메이션 컬렉션 내의 최후 애니메이션 오브젝트가 출력을 계산할 때까지 반복한다. GetValue 방법은 애니메이션 컬렉션 내의 애니메이션 오브젝트의 파이프라인 내의 최후 애니메이션 오브젝트에 의해 제공되는 출력값을 복귀시킨다.
애니메이션 컬렉션 클래스는 또한 특성의 세트(610)를 포함한다. IsChanging 특성 및 IsOverridingBaseValue 특성은 애니메이션 오브젝트에 대해 대응하도록 명명된 특성과 유사하다. 그러나, 애니메이션 컬렉션 클래스의 경우에, 애니메이션 오브젝트의 대응하는 특성 중 어느 하나가 "참"으로 복귀되면, 이때 애니메이션 컬렉션에 대한 대응하는 특성이 "참"으로 복귀하도록 특성이 합쳐진다. Animations(어레이) 특성은 애니메이션 컬렉션 내의 애니메이션 오브젝트의 리스트를 유지한다.
애니메이션 컬렉션은 또한 이벤트의 세트(620)를 지원한다. Changed 이벤트는 애니메이션 컬렉션의 구성요소 애니메이션 오브젝트로부터 나온, 상기한 대응하는 이벤트를 합체하여 보고한다.
도 7를 참조하면, 방법 및 특성의 세트가 다이나믹 애니메이션 컬렉션 클래스(226)에 대해 식별된다. 방법의 세트(700)는 다이나믹 애니메이션 컬렉션 구성자 방법을 포함한다. 다이나믹 애니메이션 컬렉션 구성자 방법은 입력으로서 요소 참조(요소 트리 200에 대한), 요소에 대한 다이나믹 특성 및 애니메이션 컬렉션 인스턴스를 수신하고, 구성자는 패스된 애니메이션 컬렉션 오브젝트 내의 애니메이션 오브젝트에 대한 타임라인 유도 변경 사이의 인터페이스로서 동작하는 다이나믹 애니메이션 컬렉션 오브젝트, 및 요소 트리(202)에 포함되어 있는 요소에 대한 다이나믹 특성을 복귀시킨다.
다이나믹 애니메이션 컬렉션 오브젝트에 대한 인터페이스는 다이나믹 애니메이션 컬렉션 오브젝트가 관련되어 있는 애니메이션 컬렉션 오브젝트의 설정/획득을 지원한다. SetDefaultParentTimeline 방법은 다이나믹 애니메이션 컬렉션 오브젝트가 부가되어 있는 요소가 요소 트리(202)에 재위치되거나 그렇지 않으면 요소에 대한 타이밍이 변경되는 이벤트에서 타임라인 접속을 복구한다.
GetValue 방법은 요소의 애니메이션화된 특성(다이나믹 애니메이션 컬렉션이 부가되는 애니메이션 컬렉션에 의해 제공됨)에 대해 현재 값을 복귀시킨다.
OnChanged 방법은 애니메이션 컬렉션 내의 어떤 애니메이션 오브젝트가 변경되었을 때 호출된다. 호출되면, OnChanged 방법은 다이나믹 특성을 무효화시킨다. 이것은 또한 영향받은 요소들의 리렌더링을 야기한다.
특성(710)으로 돌아가면, OriginalDynamicProperty 특성은 다이나믹 애니메이션 컬렉션이 관련되어 있는 다이나믹 특성에 대한 참조를 복귀시킨다. Element 특성은 다이나믹 애니메이션 컬렉션과 관련이 있는 요소를 복귀시킨다. IsOveridingBaseValue는 그것이 관련되어 있는 애니메이션 컬렉션에 대해 대응되도록 명명된 특성에 대한 호출에 기초한 값을 복귀시킨다.
애니메이션 구조를 기술하였으나, 애니메이션화 특성에 시변(time-varying)값을 부여함으로써 요소에 대한 애니메이션화 특성에 대한 전술한 구조를 이용하여 예로서 설명된다. 일반적으로, 모든 애니메이션화된 자원, 방법 또는 오브젝트는 엔티티의 애니메이션 능력의 인터페이스 가능 통지, 그것의 디폴트 페어런트 타임라인, 그것이 변경되었는지의 여부, 오브젝트의 현재 값 및 엔티티가 변경되었는지의 여부를 포함한다. 특정 예에 의해, 애니메이션화 가능한 엔티티의 인터페이스는 오브젝트가 시간에 따라 변하면 참을 복귀시키는 DoesChange 특성을 포함한다. 일반적으로, DoesChange 특성은 오브젝트가 어떤 애니메이션 컬렉션을 유지하고 있으면 참이다. DefaultParentTimeline 특성은 참조를 어떤 오토-페어런트된 타임라인의 페어런트인 타임라인으로의 참조를 복귀시킨다. DefaultParentTimeline 특성이 설정되면, 이때 임의의 오트-페어런트된 타임라인은 리페어런트(re-parent)되지만 새로운 복제는 타임라인 또는 이 애니메이션화 가능한 오브젝트에 대해 생성되지 않는다. IsChanging 특성은 애니메이션화 가능한 오브젝트 내의 애니메이션 중 어느 하나가 변경되면 참으로 복귀한다. IsOverridingBaseValue 특성은 애니메이션화 가능한 오브젝트의 어떤 타임라인이 활성되어 있거나 필 기간(fill period)에 있으면 참으로 복귀한다. Changed 이벤트는 애니메이션화 가능한 엔티티 값이 변할 때마다 발생된다.
더욱이, 애니메이션화 가능한 엔티티는 특성의 값으로서 사용되는 오브젝트를 복귀시키는 CurrentValue 방법을 포함한다. 값은 오브젝트의 순간 값이지만 그것은 일단 설정되면 변경되지 않는다. 특정 타임라인을 특정하는 GetUniqueInstance 방법은 특성 값으로서 사용될 수 있는 오브젝트를 복귀시킨다. 오브젝트가 임의의 오토-페어런트된 타임라인을 참조하면, 복귀된 인스턴스는 이들 타임라인이 특정 디폴트 페어런트 타임라인으로 페어런트되게 한다.
애니메이션화 가능한 엔티티는 또한 특성 시스템에 의해 다이나믹 애니메이션 컬렉션의 생성을 용이하게 하기 위해 모든 애니메이션화 가능한 특성에 대해, 애니메이션 컬렉션 형태에 대한 대응하는 참조를 특정한다. 본 발명의 실시예에 있어서, 그와 같은 용도가 애니메이션 구성을 불가능하게 할 수 있으므로 기본 애니메이션 오브젝트보다는 애니메이션 컬렉션이 사용된다.
자원은 개개의 특성에 애니메이션 컬렉션을 부가함으로써 애니메이션화된다. 다음의 예는 애니메이션화 컬러를 갖는 SolidColorBrush를 생성하는 방법을 나타낸다.
ColorAnimationBuilder animBuilder = new ColorAnimtionBuilder(); animBuilder.From = new Color(1.0f, 0.0f, 0.0f, 0.0f); animBuilder.Begin = new Time(0); animBuilder.To = new Color(1.0f, 1.0f, 0.0f, 0.0f); animBuilder.Duration = new Time(1000); animBuilder.AutoReverse = true; animBuilder.RepeatDuration = Time. Indefinite; SolidColorBrushBuilder brushBuilder = new SolidColorBrushBuilder(); brushBuilder.Color = new Color(1.0f, 0.0f, 0.0f, 0.0f); brushBuilder.ColorAnimations = animBuilder.ToColorAnimation(); SolidColorBrush animateBrush = brushBuilder.ToBrush();
애니메이션화 자원은 렌더링 동작에 또는 요소 특성에 대한 값으로서 사용될 수 있다. 렌더링 동작은, 일 예로서, 애니메이션 컬렉션을 드로잉 컨텍스트 방법 콜(drawing contet method call)에 부가함으로써, 또는 애니메이션화 자원을 사용함으로써 애니메이션화된다. 다음의 예는 애니메이션화된 불투명 값을 드로잉 컨텍스트에 넣는 방법을 나타낸다.
FloatAnimationBuilder animBuilder = new FloatAnimationBuilder (); animBuilder.From = 0.0f; animBuilder.Begin = Time.Immediately; animBuilder.To =1.0f; animBuilder.Duration = new Time(1000); animBuilder.Fill = TimeFill.Freeze; myDrawingContext.PushOpacity(0.0f, animBuilder.ToFloatAnimation());
요소는 애니메이션 컬렉션을 Element 특성에 부가함으로써 애니메이션화될 수 있다. 다음의 예는 C 샤프에서 버튼의 폭을 애니메이션화하는 방법을 나타낸다.
BoxUnitAnimationBuilder animBuilder = new BoxUnitAnimationBuilder(); animBuilder.From = new BoxUnit (50); animBuilder.Begin = Time.Immediately; animBuilder.To = new BoxUnit (100); animBuilder.Duration = new Time (1000); animBuilder.Acceleration = 0.2; animBuilder.Deceleration = 0.2; animBuilder.Fill = TimeFill.Freeze; myButton.Width = new BoxUnit (50); myButton.WidthAnimations = animBuilder.ToBoxUnitAnimation();
다음은 XAML에서의 동일한 예를 나타낸다.
<Button ID="myButton" Width="50"> <Button.Width> <BoxUnitAnimation From="50" Begin="Immediately" To="100" Duration="1" Acceleration="0.2" Deceleration="0.2" Fill="Freeze" /> </Button.Width> </Button>
애니메이션(또는 애니메이션화된 자원)이 사용되면, 애니메이션(또는 자원)이 복제되어 유일, 독립적으로 제어 가능한 타임라인을 갖는 목적지를 제공한다. 특성에 대한 애니메이션을 구현하는 이러한 특정 방법의 결과는 본래의 애니메이션이 비쥬얼 화면의 일부가 아니므로 그것은 애니메이션 오브젝트 타이밍 인터페이스를 통해 콜 제어에 응답하지 않는다는 것이다. 이러한 효과를 달성하기 위해, 콜 코드는 먼저 애니메이션을 사용하고 이 후 애니메이션을 다시 판독해야 한다. 그 후 판독된 값은 다시 저장되고 타이밍 컨트롤에 사용된다. 다음의 예는 애니메이션을 제어하고자하는 코드가 다음과 같은 패턴을 나타낸다.
private FloatAnimation myOpacityAnimation; public void Initialize() { FloatAnimationBuilder animBuilder = new FloatAnimationBuilder(); // Set the Begin property to Indefinite because we want to start
// this animation interactively, not automatically, animBuilder.Begin = Time.Indefinitely; animBuilder.From = 1.0f; // Fully opaque animBuilder.Duration = new Time (500); // half a second animBuilder.To = 0.5f; // Half transparent animBuilder.AutoReverse = true // Create the animation FloatAnimation animation = animBuilder.ToFloatAnimation(); // Animate the opacity of some element we own myElement.Opacity = 1.0f; myElement.OpacityAnimations = animation; // ERROR: The following line doesn't have the intended result : // myOpacityAnimation = animation; // // This line caches an animation "template", not the actual animation // that controls the opacity of the element. // This caches the right animation -- the one that is actually in use: myOpacityAnimation = (FloatAnimation)myElement.OpacityAnimations[0]; } public void OnSomeEvent() { // Whenever we detect some event, "blink" the element myOpacityAnimation.BeginIn(0); }
이 기술 분야에서 숙련된 사람은 그래픽 사용자 인터페이스 표시 장치와 같은 그래픽 출력 장치를 포함하는 컴퓨팅 환경에서 그래픽 표시 장치에 애니메이션 동작을 부가 및 실행하는 새로운 예시적인 플랫폼 및 본 명세서에 포함된 예시적인 인터페이스, 클래스 및 구조가 기술되었다는 것을 알 수 있을 것이다. 본 발명의 원리가 적용될 수 있는 많은 가능한 환경 및 상기 애니메이션 구조를 설계하고 행할 수 있는 유연성의 관점을 고려하여, 본 명세서에 기술된 실시예는 예시적인 것이며 본 발명의 범위를 제한하는 것으로 고려되지 않아야 하는 것임을 알아야 한다. 본 발명을 적용하는 이 기술 분야에서 숙련된 사람은 본 발명의 사상을 일탈하지 않고 배열 및 상세가 변경될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 본 명세서에 기술된 발명은 다음의 청구항들 및 그 균등물의 범위 내에 포함될 수 있는 모든 이러한 실시예를 고려한다.

Claims (40)

  1. 요소 특성값의 적시 변경(timed modification)을 지원하는 그래픽 표시 애니메이션 시스템에 있어서,
    요소들의 세트를 유지하기 위한 표시 구조 - 요소는 그 요소의 표시 특성에 영향을 주는 가변 특성값을 포함함 -;
    시간에 따라 변할 수 있는 다이나믹 특성들을 포함해서 상기 표시 구조에 의해 유지되는 요소들과 관계된 특성들을 유지하기 위한 특성 시스템; 및
    애니메이션 클래스를 포함하고,
    상기 애니메이션 클래스들로부터 애니메이션 오브젝트들이 인스턴스화되며,
    상기 애니메이션 오브젝트 인스턴스들은 상기 다이나믹 특성들에 할당된 값에 영향을 주는 시변값(time varying value)들을 제공하며, 상기 시변값들은 활성 애니메이션 기간에 걸쳐, 현재 시간과 기본 특성값을 여러 번 적용시킴으로써 생성되고, 상기 애니메이션 오브젝트들을 개시(initiate)하기 위해, 상기 애니메이션 클래스들은, 기본 특성값을 수신하고 진행 값에 대한 프로세스의 내부 변형자 정의 계산에 기초하여 값을 복귀시키는 프로세스를 사용하는, 그래픽 표시 애니메이션 시스템.
  2. 제1항에 있어서, 하나 이상의 애니메이션 오브젝트를 상기 표시 구조 내의 요소의 다이나믹 특성과 관계시키는 다이나믹 애니메이션 클래스를 더 포함하는 그래픽 표시 애니메이션 시스템.
  3. 제1항에 있어서, 애니메이션 클래스 오브젝트의 세트를 그룹화하는 애니메이션 컬렉션 클래스를 더 포함하고, 상기 애니메이션 컬렉션 클래스의 인스턴스는 상기 애니메이션 클래스 오브젝트의 세트를 기본값에 적용시킴으로써 구성된 출력값(composed output value)을 제공하는 그래픽 표시 애니메이션 시스템.
  4. 제1항에 있어서, 상기 애니메이션 클래스들 각각은 내부 타임라인(an internal timeline)을 특정하는 그래픽 표시 애니메이션 시스템.
  5. 제4항에 있어서, 애니메이션 오브젝트 인스턴스들이, 상기 내부 타임라인에 의해 정의된 타이밍 시퀀스의 컨텍스트를 제공하는 페어런트 타임라인(parent timeline)에 부가되는 그래픽 표시 애니메이션 시스템.
  6. 제5항에 있어서, 상기 페어런트 타임라인은 상기 애니메이션 오브젝트 인스턴스들을 위한 컨테이너(container)에 의해 특정되는 그래픽 표시 애니메이션 시스템.
  7. 제1항에 있어서, 상기 애니메이션 클래스들 중의 임의의 애니메이션 클래스들은 이들이 시변값을 렌더링(render)하는 특정 데이터 형태와 관계되는 그래픽 표시 애니메이션 시스템.
  8. 제7항에 있어서, 상기 애니메이션 클래스들 중의 하나의 애니메이션 클래스는 부동 소수점 값을 제공하는 그래픽 표시 애니메이션 시스템.
  9. 제7항에 있어서, 상기 애니메이션 클래스들 중 하나의 애니메이션 클래스는 프리젠터 박스(presenter box)에 대한 치수를 제공하는 그래픽 표시 애니메이션 시스템.
  10. 제7항에 있어서, 상기 애니메이션 클래스들 중의 하나의 애니메이션 클래스는 직사각형의 좌측 위의 위치를 제공하는 그래픽 표시 애니메이션 시스템.
  11. 제7항에 있어서, 상기 애니메이션 클래스들 중의 하나의 애니메이션 클래스는 시변 컬러 값(time-changing color value)을 제공하는 그래픽 표시 애니메이션 시스템.
  12. 제7항에 있어서, 상기 애니메이션 클래스들 중 하나의 애니메이션 클래스는 불린(Boolean) 값을 제공하는 그래픽 표시 애니메이션 시스템.
  13. 실행 프로그램에 의해 생성되는 런타임 표시 요소들의 세트를 유지하기 위한 표시 구조 및 상기 표시 요소들과 관계된 특성들을 관리하기 위한 특성 시스템을 포함하는 그래픽 표시 시스템에서의 표시 요소 애니메이션화 방법에 있어서, 이 방법은, 시간의 경과에 따라 표시 요소 특성값들을 변경함으로써 여러 개의 상기 표시 요소의 애니메이션화가 달성되고,
    변경 가능한 특성을 포함하는 그래픽 표시 요소를 생성하는 단계;
    상기 변경 가능한 특성에 할당 가능한 애니메이션 동작을 정의하는 단계;
    런타임시에 프로그램으로부터의 요청에 따라 상기 애니메이션 동작을 상기 요소의 상기 변경 가능한 특성과 관계시키는 단계; 및
    상기 애니메이션 동작에 따라 시변값들의 시퀀스를 상기 변경 가능한 특성에 제공하는 단계를 포함하며, 상기 시변값들의 시퀀스를 제공하는 단계는,
    활성 애니메이션 기간에 걸쳐, 현재 시간과 기본 특성값을 상기 애니메이션 동작을 구현하는 애니메이션 값 발생기에 여러 번 적용하여 상기 변경 가능한 특성의 현재 값을 렌더링하는 단계 - 상기 여러 번 적용하는 단계는 상기 기본 특성값을 수신하여, 진행 값(progress value)에 대한 프로세스의 내부 변형자(modifier) 정의 계산에 기초하여 값을 복귀시키는 프로세스를 사용하는 단계를 포함함 -; 및
    상기 변경 가능한 특성의 상기 현재 값에 따라 업데이트된 레이아웃을 생성하는 단계를 포함하는, 표시 요소 애니메이션화 방법.
  14. 제13항에 있어서, 각각이 애니메이션 동작을 정의하는 애니메이션 클래스들의 세트를 제공하는 단계를 더 포함하는 표시 요소 애니메이션화 방법.
  15. 제13항에 있어서, 상기 애니메이션 클래스들의 세트는 애니메이션 형태를 특정하고, 애니메이션 형태는 애니메이션 클래스의 인스턴스들에 의해 처리되는 데이터의 형태에 대응하는 표시 요소 애니메이션화 방법.
  16. 제13항에 있어서, 상기 제공 단계는 상기 애니메이션 동작을 구현하는 애니메이션 클래스로부터 인스턴스화된 애니메이션 오브젝트에 의해 용이하게 되는 표시 요소 애니메이션화 방법.
  17. 제13항에 있어서, 상기 애니메이션 동작을 정의하는 단계는 애니메이션 컬렉션 클래스 내의 애니메이션 클래스 인스턴스들의 세트를 그룹화하는 단계를 포함하고,
    상기 애니메이션 컬렉션 클래스의 인스턴스는 상기 애니메이션 클래스 인스턴스들의 세트를 기본값에 적용함으로써 구성된 출력값을 제공하는 표시 요소 애니메이션화 방법.
  18. 제13항에 있어서, 상기 관계시키는 단계는 하나 이상의 애니메이션 오브젝트를 상기 요소의 변경 가능한 특성에 부가하는 다이나믹 애니메이션 클래스를 인스턴스화하는 단계를 포함하는 표시 요소 애니메이션화 방법.
  19. 제13항에 있어서, 상기 시변값들의 시퀀스의 진행을 위한 타이밍은 상기 애니메이션 동작을 정의하는 하나 이상의 애니메이션 오브젝트와 관계된 타이밍 트리 노드에 따라 특정되는 표시 요소 애니메이션화 방법.
  20. 제13항에 있어서, 페어런트 타임라인을 애니메이션 오브젝트에 부가하여, 내부 타임라인에 의해 정의되는 로컬 타이밍 시퀀스의 글로벌 타이밍 컨텍스트를 제공하는 단계를 더 포함하는 표시 요소 애니메이션화 방법.
  21. 제20항에 있어서, 상기 애니메이션 오브젝트의 상기 페어런트 타임라인은 애니메이션 오브젝트 인스턴스들의 컬렉션을 위한 컨테이너에 의해 특정되는 표시 요소 애니메이션화 방법.
  22. 시간의 경과에 따라 요소 특성값에 대한 순차 변경을 구현하기 위해 특성 시스템에 의해 유지되는 요소 특성에 애니메이션 동작을 적용하는 방법에 있어서,
    기본 애니메이션 동작들을 특정하는 애니메이션 오브젝트 클래스들로부터 애니메이션 오브젝트 인스턴스들을 인스턴스화하는 단계;
    구성 요소 애니메이션 오브젝트들의 리스트를 특정하는 애니메이션 컬렉션 클래스로부터 애니메이션 컬렉션 오브젝트를 인스턴스화하는 단계;
    상기 애니메이션 컬렉션 오브젝트를 상기 특성 시스템에 의해 유지되는 상기 요소 특성과 관계시키는 애니메이션 컬렉션 클래스로부터 다이나믹 애니메이션 컬렉션을 인스턴스화하는 단계;
    현재 시간과 기본 특성값을 상기 애니메이션 컬렉션 클래스의 상기 구성 요소 애니메이션 오브젝트들에 적용시켜, 상기 요소 특성의 현재 특성값을 렌더링하는 단계 - 상기 적용 단계는 상기 기본 특성값을 수신하여, 진행 값에 대한 프로세스의 내부 변형자 정의 계산에 기초하여 값을 복귀시키는 프로세스를 사용하는 단계를 포함함 - ; 및
    상기 요소 특성의 상기 현재 특성값에 따라 업데이트된 레이아웃을 생성하는 단계
    를 포함하는 애니메이션 동작 적용 방법.
  23. 제22항에 있어서, 페어런트 타임라인을 상기 애니메이션 오브젝트 클래스들의 인스턴스들에 할당하는 단계를 더 포함하는 애니메이션 동작 적용 방법.
  24. 제22항에 있어서, 애니메이션 오브젝트 인스턴스들의 특성들을 고정(locking)하는 단계를 더 포함하는 애니메이션 동작 적용 방법.
  25. 제22항에 있어서, 애니메이션 컬렉션 오브젝트 인스턴스들의 특성들을 고정하는 단계를 더 포함하는 애니메이션 동작 적용 방법.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 제1항에 있어서, 상기 프로세스는 GetValue 메소드를 포함하는 그래픽 표시 애니메이션 시스템.
  39. 제13항에 있어서, 상기 프로세스는 GetValue 메소드를 포함하는 표시 요소 애니메이션화 방법.
  40. 제13항 내지 제25항 및 제39항 중 어느 한 항에 기재된 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록된, 컴퓨터로 읽을 수 있는 기록 매체.
KR1020047010340A 2003-05-09 2003-05-15 그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체 KR100938036B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US???? 1999-02-04
US10/434,718 US7173623B2 (en) 2003-05-09 2003-05-09 System supporting animation of graphical display elements through animation object instances
US10/434,718 2003-05-09

Publications (2)

Publication Number Publication Date
KR20060006990A KR20060006990A (ko) 2006-01-23
KR100938036B1 true KR100938036B1 (ko) 2010-01-21

Family

ID=33416767

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047010340A KR100938036B1 (ko) 2003-05-09 2003-05-15 그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체

Country Status (12)

Country Link
US (2) US7173623B2 (ko)
EP (1) EP1639555A4 (ko)
JP (1) JP4268586B2 (ko)
KR (1) KR100938036B1 (ko)
CN (1) CN100361162C (ko)
AU (1) AU2003248542B2 (ko)
BR (1) BR0306442A (ko)
CA (1) CA2461516C (ko)
MX (1) MXPA04006333A (ko)
RU (1) RU2327218C2 (ko)
WO (1) WO2004104938A1 (ko)
ZA (1) ZA200404107B (ko)

Families Citing this family (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9722766D0 (en) 1997-10-28 1997-12-24 British Telecomm Portable computers
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US7193609B2 (en) 2002-03-19 2007-03-20 America Online, Inc. Constraining display motion in display navigation
JP3755499B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置、gui表示装置、および方法、並びにコンピュータ・プログラム
US7278091B2 (en) * 2003-05-13 2007-10-02 Microsoft Corporation Method and system for selectively enforcing presentation themes
US7693867B2 (en) * 2003-05-14 2010-04-06 Pixar Model referencing method and apparatus
US20050033822A1 (en) * 2003-08-05 2005-02-10 Grayson George Dale Method and apparatus for information distribution and retrieval
US8751950B2 (en) * 2004-08-17 2014-06-10 Ice Edge Business Solutions Ltd. Capturing a user's intent in design software
US20050132385A1 (en) * 2003-10-06 2005-06-16 Mikael Bourges-Sevenier System and method for creating and executing rich applications on multimedia terminals
US7219340B2 (en) * 2003-10-23 2007-05-15 Microsoft Corporation Changeable class and pattern to provide selective mutability in computer programming environments
US20050122328A1 (en) * 2003-12-05 2005-06-09 Peiya Liu Method and apparatus for specifying animation styles
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7936352B2 (en) * 2004-07-21 2011-05-03 Dassault Systemes Solidworks Corporation Deformation of a computer-generated model
US7603624B2 (en) * 2004-10-21 2009-10-13 Microsoft Corporation System and method for styling content in a graphical user interface control
US7769840B1 (en) * 2004-11-19 2010-08-03 Sprint Communications Company L.P. Network status animation tool
US8081960B2 (en) * 2005-02-21 2011-12-20 Samsung Electronics Co., Ltd. Device and method for processing data resource changing events in a mobile terminal
US20060236219A1 (en) * 2005-04-19 2006-10-19 Microsoft Corporation Media timeline processing infrastructure
US7561159B2 (en) * 2005-05-31 2009-07-14 Magnifi Group Inc. Control of animation timeline
US7432928B2 (en) * 2005-06-14 2008-10-07 Microsoft Corporation User interface state reconfiguration through animation
US7477254B2 (en) * 2005-07-13 2009-01-13 Microsoft Corporation Smooth transitions between animations
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US7804503B2 (en) * 2006-05-15 2010-09-28 Microsoft Corporation Animating objects using metadata
US20080010492A1 (en) * 2006-06-16 2008-01-10 Eaton Power Quality Corporation Methods, Devices and Computer Program Products For Providing Device Status Information
CN101090342A (zh) * 2006-06-16 2007-12-19 伊顿动力品质公司 用于提供装置状态信息的方法、装置与计算机程序产品
US9019300B2 (en) * 2006-08-04 2015-04-28 Apple Inc. Framework for graphics animation and compositing operations
US8130226B2 (en) * 2006-08-04 2012-03-06 Apple Inc. Framework for graphics animation and compositing operations
US8166415B2 (en) * 2006-08-04 2012-04-24 Apple Inc. User interface for backup management
US7877690B2 (en) * 2006-09-20 2011-01-25 Adobe Systems Incorporated Media system with integrated clip views
US20080084416A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation User-pluggable rendering engine
US8234392B2 (en) * 2006-11-17 2012-07-31 Apple Inc. Methods and apparatuses for providing a hardware accelerated web engine
KR101288970B1 (ko) * 2006-11-28 2013-07-24 삼성전자주식회사 렌더링 장치 및 방법
KR100827241B1 (ko) * 2006-12-18 2008-05-07 삼성전자주식회사 동적 영상물을 생성하기 위한 템플릿을 편집하는 장치 및방법
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US7903115B2 (en) 2007-01-07 2011-03-08 Apple Inc. Animations
US20080168478A1 (en) * 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7872652B2 (en) * 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US8813100B1 (en) 2007-01-07 2014-08-19 Apple Inc. Memory management
US8656311B1 (en) 2007-01-07 2014-02-18 Apple Inc. Method and apparatus for compositing various types of content
US20080177776A1 (en) * 2007-01-22 2008-07-24 Stallings Richard W Animation object shell system and method
KR100877066B1 (ko) * 2007-01-22 2009-01-09 삼성전자주식회사 Layout 구조를 이용한 GUI 위짓 구성 장치 및이를 운영하는 방법
US8643653B2 (en) * 2007-06-08 2014-02-04 Apple Inc. Web-based animation
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8010900B2 (en) * 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US20120229473A1 (en) * 2007-07-17 2012-09-13 Airgini Group, Inc. Dynamic Animation in a Mobile Device
US7941758B2 (en) * 2007-09-04 2011-05-10 Apple Inc. Animation of graphical objects
US20090128581A1 (en) * 2007-11-20 2009-05-21 Microsoft Corporation Custom transition framework for application state transitions
WO2009085063A1 (en) * 2007-12-21 2009-07-09 Studio Gpu, Inc. Method and system for fast rendering of a three dimensional scene
US20090177538A1 (en) * 2008-01-08 2009-07-09 Microsoft Corporation Zoomable advertisements with targeted content
US8174502B2 (en) 2008-03-04 2012-05-08 Apple Inc. Touch event processing for web pages
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
EP2252951B1 (en) 2008-03-11 2021-05-05 Ice Edge Business Solutions, Ltd. Automatically creating and modifying furniture layouts in design software
US9589381B2 (en) * 2008-06-12 2017-03-07 Microsoft Technology Licensing, Llc Copying of animation effects from a source object to at least one target object
US20090322760A1 (en) * 2008-06-26 2009-12-31 Microsoft Corporation Dynamic animation scheduling
KR101531417B1 (ko) * 2008-07-16 2015-06-25 삼성전자주식회사 리치 미디어 컨텐츠 송수신 방법 및 장치
US8099677B2 (en) * 2008-07-22 2012-01-17 Qualcomm Incorporated Method and apparatus for animation profiling
US20100064222A1 (en) * 2008-09-08 2010-03-11 Apple Inc. Object-aware transitions
US8411046B2 (en) 2008-10-23 2013-04-02 Microsoft Corporation Column organization of content
US20100107100A1 (en) 2008-10-23 2010-04-29 Schneekloth Jason S Mobile Device Style Abstraction
JP2010165337A (ja) 2008-12-15 2010-07-29 Sony Corp 情報処理装置、情報処理方法およびプログラム
US8836706B2 (en) * 2008-12-18 2014-09-16 Microsoft Corporation Triggering animation actions and media object actions
US8566044B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9311112B2 (en) 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8238876B2 (en) 2009-03-30 2012-08-07 Microsoft Corporation Notifications
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
DE102009018165A1 (de) * 2009-04-18 2010-10-21 Schreiber & Friends Verfahren zur Darstellung eines animierten Objekts
US8836648B2 (en) 2009-05-27 2014-09-16 Microsoft Corporation Touch pull-in gesture
KR20100138700A (ko) * 2009-06-25 2010-12-31 삼성전자주식회사 가상 세계 처리 장치 및 방법
US8593463B2 (en) 2009-10-27 2013-11-26 Microsoft Corporation Controlling animation frame rate of applications
US9223589B2 (en) * 2010-02-26 2015-12-29 Microsoft Technology Licensing, Llc Smooth layout animation of visuals
CN101833447B (zh) * 2010-04-08 2012-12-26 广东欧珀移动通信有限公司 一种利用补间动画实现桌面Widget动画的方法
US8860734B2 (en) 2010-05-12 2014-10-14 Wms Gaming, Inc. Wagering game object animation
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US8957920B2 (en) 2010-06-25 2015-02-17 Microsoft Corporation Alternative semantics for zoom operations in a zoomable scene
CN102314700B (zh) * 2010-07-07 2016-06-22 腾讯科技(深圳)有限公司 一种控制客户端用户显示模式的方法及系统
CN101980154B (zh) * 2010-11-02 2014-01-08 深圳市融创天下科技股份有限公司 一种界面控件树的创建和绘制的方法、系统及移动终端
CN102136154B (zh) * 2010-11-18 2012-12-12 彭浩明 一种动漫制作方法及装置
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US20120159383A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Customization of an immersive environment
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US8982132B2 (en) * 2011-02-28 2015-03-17 Adobe Systems Incorporated Value templates in animation timelines
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US20120304132A1 (en) 2011-05-27 2012-11-29 Chaitanya Dev Sareen Switching back to a previously-interacted-with application
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9218683B2 (en) 2011-05-27 2015-12-22 Microsoft Technology Licensing, Llc Collection rearrangement animation
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9361715B2 (en) 2011-06-02 2016-06-07 Microsoft Technology Licensing, Llc Global composition system
US8687023B2 (en) 2011-08-02 2014-04-01 Microsoft Corporation Cross-slide gesture to select and rearrange
US8812980B2 (en) 2011-08-26 2014-08-19 Microsoft Corporation Objectizing and animating images
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US8884971B2 (en) * 2011-09-30 2014-11-11 Microsoft Corporation Animation engine decoupled from animation catalog
US9171098B2 (en) * 2011-09-30 2015-10-27 Microsoft Technology Licensing, Llc Decomposing markup language elements for animation
US20130097552A1 (en) * 2011-10-18 2013-04-18 Microsoft Corporation Constructing an animation timeline via direct manipulation
KR101304211B1 (ko) * 2011-10-21 2013-09-05 한국과학기술정보연구원 시변환 시뮬레이션 데이터의 가시화를 통한 애니메이션 가시화 서비스 시스템 및 방법
US9607420B2 (en) 2011-11-14 2017-03-28 Microsoft Technology Licensing, Llc Animations for scroll and zoom
CN102541545A (zh) * 2011-12-21 2012-07-04 厦门雅迅网络股份有限公司 嵌入式系统平台的桌面随机动画的实现方式
US9223472B2 (en) 2011-12-22 2015-12-29 Microsoft Technology Licensing, Llc Closing applications
US9292955B1 (en) * 2012-01-05 2016-03-22 Google Inc. Sequencing of animations in software applications
US9128605B2 (en) 2012-02-16 2015-09-08 Microsoft Technology Licensing, Llc Thumbnail-image selection of applications
US20130271473A1 (en) * 2012-04-12 2013-10-17 Motorola Mobility, Inc. Creation of Properties for Spans within a Timeline for an Animation
US8471857B1 (en) 2012-04-12 2013-06-25 Google Inc. Changing animation displayed to user
US9767720B2 (en) * 2012-06-25 2017-09-19 Microsoft Technology Licensing, Llc Object-centric mixed reality space
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9224239B2 (en) 2013-03-14 2015-12-29 Dreamworks Animation Llc Look-based selection for rendering a computer-generated animation
US9589382B2 (en) * 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9208597B2 (en) 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9450952B2 (en) 2013-05-29 2016-09-20 Microsoft Technology Licensing, Llc Live tiles without application-code execution
US9542906B2 (en) 2013-05-10 2017-01-10 Microsoft Technology Licensing, Llc Shared compositional resources
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
CN104461486B (zh) * 2013-09-17 2019-04-30 腾讯科技(深圳)有限公司 一种网页页面中动画效果实现的方法、装置及系统
US20150143260A1 (en) * 2013-11-18 2015-05-21 Facebook, Inc. State-Machine-Driven User-Interface Interactions
US9436577B2 (en) * 2013-11-22 2016-09-06 Nintendo Co., Ltd. System and method for generating a code execution timeline from an executing program
US9761035B1 (en) * 2014-03-03 2017-09-12 Mindstream Interface Dynamics, Inc. Dynamic user interfaces
WO2015149347A1 (en) 2014-04-04 2015-10-08 Microsoft Technology Licensing, Llc Expandable application representation
EP3129847A4 (en) 2014-04-10 2017-04-19 Microsoft Technology Licensing, LLC Slider cover for computing device
KR102107275B1 (ko) 2014-04-10 2020-05-06 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 컴퓨팅 디바이스에 대한 접이식 쉘 커버
US10430169B2 (en) 2014-05-30 2019-10-01 Apple Inc. Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit
US9740464B2 (en) 2014-05-30 2017-08-22 Apple Inc. Unified intermediate representation
US10346941B2 (en) 2014-05-30 2019-07-09 Apple Inc. System and method for unified application programming interface and model
US10254942B2 (en) 2014-07-31 2019-04-09 Microsoft Technology Licensing, Llc Adaptive sizing and positioning of application windows
US10592080B2 (en) 2014-07-31 2020-03-17 Microsoft Technology Licensing, Llc Assisted presentation of application windows
US10678412B2 (en) 2014-07-31 2020-06-09 Microsoft Technology Licensing, Llc Dynamic joint dividers for application windows
US9916069B2 (en) 2014-09-04 2018-03-13 Microsoft Technology Licensing, Llc User interface with dynamic transition times
US10642365B2 (en) 2014-09-09 2020-05-05 Microsoft Technology Licensing, Llc Parametric inertia and APIs
KR101626754B1 (ko) * 2014-10-07 2016-06-02 한국과학기술정보연구원 시변환 데이터 가시화 시스템 및 그 방법
CN106662891B (zh) 2014-10-30 2019-10-11 微软技术许可有限责任公司 多配置输入设备
EP3018600B1 (en) * 2014-11-10 2021-12-29 B. Braun Avitum AG Blood purification device user interface feedback method
US10395413B2 (en) * 2015-03-03 2019-08-27 Jeremy Flores Dynamic user interfaces
WO2017004541A1 (en) * 2015-07-02 2017-01-05 Cfph, Llc Visualization of changes through the use of graphical geometric shapes
US20170017616A1 (en) * 2015-07-17 2017-01-19 Apple Inc. Dynamic Cinemagraph Presentations
CN105187888A (zh) * 2015-07-30 2015-12-23 深圳创维-Rgb电子有限公司 一种智能电视界面版块元素的创建实现方法及系统
US10297064B2 (en) * 2015-09-21 2019-05-21 Dreamworks Animation L.L.C. Multi-representation dependency graphs
USD813270S1 (en) 2015-11-13 2018-03-20 Cfph, Llc Display screen with animated graphical user interface
US10013789B2 (en) 2015-11-20 2018-07-03 Google Llc Computerized motion architecture
CN106843709B (zh) * 2015-12-04 2020-04-14 阿里巴巴集团控股有限公司 根据实时信息显示展现对象的方法和装置
US10296088B2 (en) * 2016-01-26 2019-05-21 Futurewei Technologies, Inc. Haptic correlated graphic effects
US10222960B2 (en) * 2016-04-26 2019-03-05 Google Llc Animation of user interface elements
CN106887030B (zh) * 2016-06-17 2020-03-06 阿里巴巴集团控股有限公司 一种动画生成方法和装置
CN106709980B (zh) * 2017-01-09 2020-09-04 北京航空航天大学 一种基于形式化的复杂三维场景建模方法
USD825584S1 (en) 2017-03-29 2018-08-14 Becton, Dickinson And Company Display screen or portion thereof with transitional graphical user interface
CN109872212B (zh) * 2017-12-05 2023-02-10 阿里巴巴集团控股有限公司 一种用于互联网平台商品数据信息联动的方法和装置
CN110020370B (zh) * 2017-12-25 2023-03-14 阿里巴巴集团控股有限公司 在客户端应用中实现动画的方法、装置及动画脚本的框架
CN108287742B (zh) * 2018-01-10 2020-08-04 武汉斗鱼网络科技有限公司 一种实现浮层动画的方法、存储介质、电子设备和系统
CN110018889B (zh) * 2018-01-10 2021-06-15 武汉斗鱼网络科技有限公司 动画队列的排队方法、存储介质、设备及系统
CN109064531B (zh) * 2018-08-01 2023-10-20 武汉斗鱼网络科技有限公司 Android动画执行方法、装置、终端及可读介质
CN110007907B (zh) * 2019-01-04 2022-03-25 阿里巴巴集团控股有限公司 一种动画执行方法及装置
US11295504B1 (en) * 2019-08-01 2022-04-05 Meta Platforms, Inc. Systems and methods for dynamic digital animation
CN112667942A (zh) * 2019-10-16 2021-04-16 腾讯科技(深圳)有限公司 一种动画生成方法、装置及介质
CN115220621A (zh) * 2021-04-20 2022-10-21 华为技术有限公司 图形界面显示方法、电子设备、介质以及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5877778A (en) * 1994-11-10 1999-03-02 Matsushita Electric Industrial Co., Ltd. Method and system to generate a complicated computer animation by using a combination of basic motion units
US6320583B1 (en) * 1997-06-25 2001-11-20 Haptek Corporation Methods and apparatuses for controlling transformation of two and three-dimensional images
US6433784B1 (en) * 1998-02-26 2002-08-13 Learn2 Corporation System and method for automatic animation generation
US8320583B2 (en) * 2009-04-13 2012-11-27 Sony Corporation Noise reducing device and noise determining method

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US632964A (en) * 1898-04-29 1899-09-12 Harry M Dumas Electric-call system.
US5261041A (en) * 1990-12-28 1993-11-09 Apple Computer, Inc. Computer controlled animation system based on definitional animated objects and methods of manipulating same
US5630017A (en) * 1991-02-19 1997-05-13 Bright Star Technology, Inc. Advanced tools for speech synchronized animation
US5416899A (en) * 1992-01-13 1995-05-16 Massachusetts Institute Of Technology Memory based method and apparatus for computer graphics
JPH06149757A (ja) * 1992-11-10 1994-05-31 Hitachi Ltd 並列処理装置
US5537641A (en) * 1993-11-24 1996-07-16 University Of Central Florida 3D realtime fluid animation by Navier-Stokes equations
JP3214776B2 (ja) * 1994-04-13 2001-10-02 株式会社東芝 仮想環境表示装置および方法
US5636340A (en) 1994-11-03 1997-06-03 Microsoft Corporation System and method for special effects for text objects
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5764241A (en) * 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US5836340A (en) * 1996-01-19 1998-11-17 A. Y. Mcdonald Mfg. Co. Auxiliary gas connection for meter sets
IL126142A0 (en) * 1996-03-15 1999-05-09 Zapa Digital Art Ltd Programmable computer graphic objects
US6414684B1 (en) * 1996-04-25 2002-07-02 Matsushita Electric Industrial Co., Ltd. Method for communicating and generating computer graphics animation data, and recording media
US5867175A (en) * 1996-05-24 1999-02-02 Microsoft Corporation Method and apparatus for scriping animation
US6061067A (en) * 1996-08-02 2000-05-09 Autodesk, Inc. Applying modifiers to objects based on the types of the objects
US6121961A (en) * 1996-08-06 2000-09-19 Feldman; Bernard String addressing of passive matrix displays
US5946002A (en) * 1997-02-14 1999-08-31 Novell, Inc. Method and system for image animation
US6057833A (en) * 1997-04-07 2000-05-02 Shoreline Studios Method and apparatus for providing real time enhancements and animations over a video image
US5877777A (en) * 1997-04-07 1999-03-02 Colwell; Tyler G. Fluid dynamics animation system and method
US6121981A (en) 1997-05-19 2000-09-19 Microsoft Corporation Method and system for generating arbitrary-shaped animation in the user interface of a computer
US5983190A (en) * 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
US5920326A (en) * 1997-05-30 1999-07-06 Hewlett Packard Company Caching and coherency control of multiple geometry accelerators in a computer graphics system
US6222537B1 (en) * 1997-07-29 2001-04-24 International Business Machines Corporation User interface controls for a computer system
US6067096A (en) * 1998-03-04 2000-05-23 Nagle; John Method and system for generating realistic collisions in graphical simulations
US6256048B1 (en) * 1998-03-31 2001-07-03 Adobe Systems Incorporated Two-dimensional virtual camera
US6266053B1 (en) * 1998-04-03 2001-07-24 Synapix, Inc. Time inheritance scene graph for representation of media content
US6232988B1 (en) * 1998-04-21 2001-05-15 Thingworld.Com, Llc Systems and methods for converting a component in an animation to an interactive object
US6388668B1 (en) * 1998-07-20 2002-05-14 Microsoft Corporation Functional animation including sprite tree generator and interpreter
US6326984B1 (en) * 1998-11-03 2001-12-04 Ati International Srl Method and apparatus for storing and displaying video image data in a video graphics system
US6512522B1 (en) * 1999-04-15 2003-01-28 Avid Technology, Inc. Animation of three-dimensional characters along a path for motion video sequences
US6563503B1 (en) * 1999-05-07 2003-05-13 Nintendo Co., Ltd. Object modeling for computer simulation and animation
IL130337A0 (en) * 1999-06-07 2000-06-01 Tidex Systems Ltd A method for achieving roaming capabilities and for performing interactive CGI implanting and computer games using the method
US6522333B1 (en) * 1999-10-08 2003-02-18 Electronic Arts Inc. Remote communication through visual representations
US6546397B1 (en) * 1999-12-02 2003-04-08 Steven H. Rempell Browser based web site generation tool and run time engine
US6404438B1 (en) * 1999-12-21 2002-06-11 Electronic Arts, Inc. Behavioral learning for a visual representation in a communication environment
US6448971B1 (en) * 2000-01-26 2002-09-10 Creative Technology Ltd. Audio driven texture and color deformations of computer generated graphics
DE10007408A1 (de) * 2000-02-18 2001-09-06 Infineon Technologies Ag Analog/Digital-Wandlerschaltungsanordnung
US6600491B1 (en) * 2000-05-30 2003-07-29 Microsoft Corporation Video-based rendering with user-controlled movement
US6611268B1 (en) * 2000-05-30 2003-08-26 Microsoft Corporation System and process for generating 3D video textures using video-based rendering techniques
CN1144160C (zh) * 2001-02-15 2004-03-31 英业达股份有限公司 动画制作的方法和系统
US6768486B1 (en) * 2001-05-18 2004-07-27 Autodesk, Inc. Modifying subobjects of geometry objects based on per-subobject objects
US7064766B2 (en) * 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US6937950B2 (en) * 2002-12-26 2005-08-30 International Business Machines Corporation Animated graphical object notification system
US20040189699A1 (en) * 2003-03-24 2004-09-30 Oren Dobronsky System and method for customizing electronic messages

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5877778A (en) * 1994-11-10 1999-03-02 Matsushita Electric Industrial Co., Ltd. Method and system to generate a complicated computer animation by using a combination of basic motion units
US6320583B1 (en) * 1997-06-25 2001-11-20 Haptek Corporation Methods and apparatuses for controlling transformation of two and three-dimensional images
US6433784B1 (en) * 1998-02-26 2002-08-13 Learn2 Corporation System and method for automatic animation generation
US8320583B2 (en) * 2009-04-13 2012-11-27 Sony Corporation Noise reducing device and noise determining method

Also Published As

Publication number Publication date
US20040222992A1 (en) 2004-11-11
BR0306442A (pt) 2005-02-15
WO2004104938A8 (en) 2005-08-18
ZA200404107B (en) 2005-09-09
RU2327218C2 (ru) 2008-06-20
CN1689046A (zh) 2005-10-26
CA2461516C (en) 2012-08-21
US20040233201A1 (en) 2004-11-25
EP1639555A1 (en) 2006-03-29
WO2004104938A1 (en) 2004-12-02
MXPA04006333A (es) 2005-02-14
KR20060006990A (ko) 2006-01-23
CA2461516A1 (en) 2004-11-09
AU2003248542B2 (en) 2009-11-12
US7173623B2 (en) 2007-02-06
JP2006526181A (ja) 2006-11-16
US7262775B2 (en) 2007-08-28
AU2003248542A1 (en) 2004-12-13
RU2004119847A (ru) 2005-03-27
JP4268586B2 (ja) 2009-05-27
EP1639555A4 (en) 2016-01-27
CN100361162C (zh) 2008-01-09

Similar Documents

Publication Publication Date Title
KR100938036B1 (ko) 그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체
KR101143095B1 (ko) 컴퓨터 디스플레이 출력시의 애니메이션 및 매체 조정
MacIntyre et al. A distributed 3D graphics library
JP4937256B2 (ja) アニメーション間の滑らかな遷移
US6266053B1 (en) Time inheritance scene graph for representation of media content
EP3441943A1 (en) Framework for graphics animation and compositing operations
US20080303827A1 (en) Methods and Systems for Animating Displayed Representations of Data Items
US20080303826A1 (en) Methods and Systems for Animating Displayed Representations of Data Items
US10210645B2 (en) Entity agnostic animation tool
Rubinstein et al. RTSG: ray tracing for X3D via a flexible rendering framework
Konstan et al. Developing a GUIDE using object-oriented programming
Kim et al. Scene Graph for Dynamic Virtual Environment: Spangraph
Pittman et al. VUIMS: a visual user interface management system
Revie Designing a Data-Driven Renderer
Tarlton A declarative representation system for dynamic visualization
Smith et al. Computational audiovisual composition using lua
Mishchenko et al. Distributed visualization framework architecture
Graber et al. Developing computer animation packages (panel)
Peram MIG: a metaframework for developing User Interface Management Systems
Tang EMO: Elastic manipulation objects

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
LAPS Lapse due to unpaid annual fee