Плавные переходы между анимациями

Иллюстрации

Показать все

Изобретение относится к способам перехода между анимациями визуальных элементов пользовательского интерфейса. Техническим результатом является увеличение качества и целостности визуализации анимации. Способ включает: запуск первой анимации элемента пользовательского интерфейса, причем первая анимация включает в себя регулировку значения свойства первого элемента, при этом свойство является свойством размера, которое воздействует на размер элемента во время регулировки значения; установку режима передачи, который определяет, какие действия предпринять, когда вторая анимация запущена, а первая анимация все еще регулирует значение свойства размера элемента; обнаружение сигнала запуска второй анимации во время выполнения первой анимации, причем первая и вторая анимации регулируют значение свойства размера элемента, причем сигнал запуска представляет собой событие, генерируемое в ответ на взаимодействие пользователя с элементом; повторно вычисляют значение свойства элемента пользовательского интерфейса во время выполнения первой анимации; сохраняют повторно вычисленное значение свойства всякий раз, когда значение повторно вычисляется; и инициируют выполнение второй анимации с помощью заданного режима передачи. 5 н. и 14 з.п. ф-лы, 10 ил., 1 табл.

Реферат

Уровень техники

В некоторых интерактивных системах могут быть реализованы визуальные элементы, которые реагируют созданием анимаций в ответ на действия пользователя. Например, кнопка, отображаемая на пользовательском интерфейсе (UI), может быть реализована таким образом, что она будет увеличиваться или уменьшаться в размерах либо поворачиваться и т.д., когда пользователь наводит на нее курсор. В некоторых ситуациях оказывается, что необходимо иметь множество анимаций, выполняемых на одном визуальном элементе. В некоторых системах возможно появление «дергания» отображения визуального элемента, когда выполняемая текущая анимация визуального элемента переходит в другую анимацию, что может оказаться неприемлемым в некоторых сценариях. Информация, представленная в этом разделе, не предназначена для идентификации проблем, которые должны быть разрешены с помощью заявленного предмета изобретения.

Раскрытие изобретения

В этом разделе в упрощенной форме предлагаются концепции, которые детально раскрываются ниже в разделе, содержащем подробное описание изобретение. Материал этого раздела не предназначен для идентификации ключевых признаков и существенных признаков заявленного предмета изобретения и не предполагается, что он поможет определить объем заявленного предмета изобретения.

Технический результат, на достижение которого направлено настоящее изобретение, состоит в увеличении качества и целостности визуализации анимации и, в частности, переходов между анимациями.

Согласно аспектам описанных здесь различных вариантов изобретения предложены варианты осуществления, обеспечивающие плавные переходы между развитыми медиа (например, между анимациями визуальных элементов пользовательского интерфейса UI). Согласно одному аспекту, когда анимация начинается для свойства визуального элемента, для которого уже выполняется другая анимация, эта «вторая» анимация может быть сконфигурирована таким образом, чтобы запоминалось текущее значение свойства, являющееся результатом выполнения «первой» анимации (то есть моментальный снимок), сбрасывалась первая анимация, а затем выполнялась вторая анимация с использованием моментального снимка в качестве «отправного» значения данного свойства. Этот режим передачи называют режимом «моментальный снимок и замещение». Поскольку вторая анимация «запускается» точно в тот момент, в который закончилась первая анимация, переход между первой и второй анимациями получается плавным.

Согласно другому аспекту создается объект памяти анимации для того свойства, для которого была запущена анимация. Объект памяти анимации предназначен для сохранения одного или нескольких базовых значений свойства, запланированного для анимации, и, вдобавок, любых моментальных снимков этого свойства, если другая анимация запускается в то время, когда все еще продолжается первоначальная анимация.

Согласно еще одному аспекту изобретения для некоторого свойства может быть использовано множество уровней анимации, причем переходы между уровнями осуществляются в режиме передачи типа «компоновка». В некоторых вариантах осуществления переход между анимациями на одном уровне может осуществляться в режиме, «компоновки» или режиме типа «моментальный снимок и замещение». В других вариантах осуществления переход между анимациями между уровнями может осуществляться в режиме «компоновки» или режиме типа «моментальный снимок и замещение».

Варианты изобретения могут быть реализованы в виде компьютерного процесса, компьютерной системы (включая мобильные карманные вычислительные устройства) или в виде производственного изделия, такого как компьютерный программный продукт. Компьютерный программный продукт может представлять собой компьютерный носитель, считываемый компьютерной системой, где закодирована компьютерная программа, состоящая из команд для выполнения компьютерного процесса. Компьютерный программный продукт может также представлять собой сигнал, распространяемый на несущей, который считывается вычислительной системой и в котором закодирована компьютерная программа, состоящая из команд для выполнения компьютерного процесса.

Краткое описание чертежей

Неограничивающие и неисчерпывающие варианты изобретения описаны со ссылками на нижеследующие чертежи, где одинаковые ссылочные позиции относятся к одинаковым частям на различных видах, если не определено иное.

Фиг.1 - блок-схема, представляющая примерную компьютерную систему, в которую могут быть включены различные варианты изобретения;

фиг.2 - блок-схема, представляющая архитектуру уровня медийной интеграции согласно варианту изобретения;

фиг.3 - представление компоненты для интерпретации кода на языке разметки, для взаимодействия с уровнем визуального API согласно варианту изобретения;

фиг.4 и 5 - блок-схемы, представляющие в целом двухуровневую архитектуру, имеющую компоненты временных соотношений для преобразования данных о свойствах тактовых сигналов в интервалы для использования при определении данных о ходе процесса согласно варианту изобретения;

фиг.6 - блок-схема, представляющая в целом систему для создания плавных переходов между развитыми медиа согласно варианту изобретения;

фиг.7 - блок-схема, представляющая в общем виде последовательность шагов при выполнении операции передачи согласно варианту изобретения;

фиг.8 - представление перехода между двумя анимациями с использованием операции передачи согласно варианту изобретения;

фиг.9 - представление взаимосвязей между анимациями на разных уровнях согласно варианту изобретения;

фиг.10 - представление компоновки из двух анимаций согласно варианту изобретения.

Осуществление изобретения

Различные варианты изобретения более подробно описаны ниже со ссылками на сопроводительные чертежи, которые составляют часть описания и демонстрируют конкретные варианты практического осуществления изобретения, приведенные в качестве примера. Однако варианты изобретения можно реализовать во многих различных видах, причем их не следует рассматривать как ограничение по отношению к изложенным здесь вариантам; скорее указанные варианты предложены для того, чтобы заявочное описание изобретения стало исчерпывающим и завершенным и дало возможность специалистам в данной области техники уяснить объем изобретения. Варианты изобретения можно практически реализовать в виде способов, систем или устройств. Соответственно, варианты изобретения могут быть реализованы в аппаратном виде, целиком в программном виде или в виде, в котором скомбинированы программные и аппаратные аспекты. Таким образом, нижеследующее подробное описание не следует рассматривать как ограничение.

Логические операции в различных вариантах изобретения реализуются: (1) в виде последовательности реализуемых компьютером шагов, выполняющихся в вычислительной системе, и/или (2) в виде взаимосвязанных машинных модулей в вычислительной системе. Та или иная реализация выбирается в зависимости от требований к рабочим характеристикам вычислительной системы, реализующей данный вариант. Соответственно, логические операции, реализующие описанные здесь варианты, называют либо операциями, либо шагами, либо модулями.

Примерная операционная среда

На фиг.1 показан пример подходящей вычислительной среды 100, в которой могут быть реализованы плавные переходы между анимациями. Среда 100 вычислительной системы является лишь одним примером подходящей вычислительной среды, и ее не следует рассматривать как какое-либо ограничение в смысле объема использования или функциональных возможностей изобретения. Вычислительную среду 100 не следует интерпретировать в том смысле, что она каким-либо образом зависит или предъявляет требования к какому-либо одному компоненту или их комбинации, показанной в примерной вычислительной среде 100.

Изобретение может работать с множеством других сред или конфигураций вычислительных систем общего или специального назначения. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут с успехом быть использованы с данным изобретением, включают в себя, но не только: персональные компьютеры, компьютеры-серверы, карманные устройства или лэптопы, планшетные устройства, микропроцессорные системы, системы на основе микропроцессора, компьютерные приставки, электронную аппаратуру, программируемую пользователем, сетевые персональные компьютеры, миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любую из вышеуказанных систем или устройств, и т.п.

Изобретение может быть описано в общем контексте выполняемых компьютером команд, таких как программные модули, выполняемые компьютером. В общем случае программные модули включают в себя стандартные программы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные типы абстрактных данных. Изобретение также можно практически реализовать в распределенных вычислительных средах, где задачи выполняются удаленными обрабатывающими устройствами, связанными через сеть связи. В распределенной вычислительной среде программные модули могут находиться как на местном, так и на удаленном компьютерном носителе, включая устройства памяти.

Как показано на фиг.1, примерная система для осуществления изобретения включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не только: блок 120 обработки, системную память 130 и системную шину 121, которая связывает различные системные компоненты, включая системную память, с блоком 120 обработки. Системная шина 121 может представлять собой любую из шинных структур нескольких типов, в том числе шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из множества различных шинных архитектур. Такие архитектуры могут, например, включать в себя, но не только: архитектуру промышленного стандарта (ISA), микроканальную архитектуру (MCA), расширенную архитектуру ISA (EISA), локальную шину Ассоциации по стандартам видеооборудования (VESA), шину ускоренного графического порта (AGP) и шину межсоединений периферийных компонентов (PCI) (известную так же, как шина Mezzanine).

Компьютер 110 обычно включает в себя множество различных считываемых компьютером сред (носителей). Считываемые компьютером носители могут представлять собой любые имеющиеся носители, которые могут быть доступны компьютеру 110 и могут включать в себя как энергозависимые, так и энергонезависимые носители, а также как съемные, так и несъемные носители. В качестве примера, но не как ограничение, считываемые компьютером среды могут содержать компьютерные запоминающие среды и среды связи. Компьютерные запоминающие среды включают в себя энергозависимые и энергонезависимые, съемные и несъемные среды, реализованные любым способом или по любой технологии для сохранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные запоминающие среды включают в себя, но не только: ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память, либо память, выполненную по другой технологии, ПЗУ на компакт-диске (CD ROM), цифровые универсальные диски (DVD) либо другое запоминающее устройство на оптическом диске, магнитные кассеты, магнитную ленту, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, либо любую другую среду, которую можно использовать для сохранения требуемой информации и которая может быть доступна компьютеру 110. Среды связи обычно несут считываемые компьютером команды, структуры данных, программные модули либо другие данные в модулированном сигнале данных, таком как сигнал несущей или другой механизм транспортировки, и включают в себя любые среды для доставки информации. Термин «модулированный сигнал данных» означает сигнал, имеющий одну или несколько характеристик, установленных или измененных таким образом, чтобы закодировать информацию в этом сигнале. Например, но не как ограничение, среда связи включает в себя проводную среду, такую как проводная сеть или непосредственное проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная (RF), инфракрасная и другие беспроводные среды. В состав считываемых компьютером сред также следует включить комбинации из любых вышеперечисленных сред.

Системная память 130 включат в себя компьютерную запоминающую среду в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство 131 (только для считывания) (ROM) и оперативное запоминающее устройство 132 (с произвольной выборкой) (RAM). В памяти ROM 131 обычно находится базовая система 133 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают пересылать информацию между элементами в компьютере 110, например, во время запуска. Память RAM 132 обычно содержит данные и/или программные модули, которые непосредственно доступны и/или обрабатываются в настоящий момент в блоке 120 обработки. На фиг.1 в качестве примера, но не как ограничение, показаны операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные запоминающие среды. Только в качестве примера на фиг.1 показаны: накопитель 141 на жестком диске, который осуществляет считывание или запись на несъемный, энергонезависимый магнитный носитель; накопитель 151 на магнитном диске, который осуществляет считывание или запись на съемный энергонезависимый магнитный диск 152; и дисковод 155 на оптическом диске, который осуществляет считывание или запись на съемный энергонезависимый оптический диск 156, такой как CD ROM либо другую оптическую среду. Другие съемные/несъемные энергозависимые/ энергонезависимые компьютерные запоминающие среды, которые можно использовать в приведенной в качестве примера операционной среде, включают в себя, но не только: кассеты с магнитной лентой, карты флэш-памяти, цифровые универсальные диски, цифровую видеоленту, твердотельное RAM, твердотельное ROM и т.п. Накопитель 141 на жестком диске обычно подсоединен к системной шине 121 через интерфейс несъемной памяти, такой как интерфейс 140, а накопитель 151 на магнитном диске и накопитель 155 на оптическом диске обычно подсоединены к системной шине 121 через интерфейс съемной памяти, такой как интерфейс 150.

Накопители и связанные с ними компьютерные запоминающие среды, обсужденные выше и показанные на фиг.1, обеспечивают сохранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг.1 в качестве примера показано, что в накопителе 141 на жестком диске хранятся операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут совпадать либо отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 имеют здесь другие цифровые обозначения, чтобы показать, что они, как минимум, являются разными копиями. Пользователь может ввести в компьютер 110 команды и информацию через устройства ввода, такие как планшет (электронный дигитайзер) 164, микрофон 163, клавиатура 162 и указательное устройство 161, известное как «мышь», шаровой манипулятор или сенсорный планшет. Другие устройства ввода (не показаны) могут включать в себя джойстик, игровую приставку, спутниковую антенну, сканер или т.п. Эти и другие устройства ввода часто подсоединены к блоку 120 обработки через входной интерфейс 160 пользователя, который соединен с системной шиной, но могут быть подсоединены с помощью других интерфейсных и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). К системной шине 121 через интерфейс, такой как видеоинтерфейс 190, также подсоединен монитор 191 либо устройство отображения другого типа. Монитор 191 также может составлять единое целое с панелью 193 с сенсорным экраном или т.п., с которой можно вводить оцифрованные входные данные, такие как рукописный текст, в компьютерную систему 110 через интерфейс, например, интерфейс 192 с сенсорным экраном. Заметим, что монитор и/или панель с сенсорным экраном могут быть физически связаны с корпусом, в котором размещено вычислительной устройство 110, например, в персональном компьютере планшетного типа, где панель 193 с сенсорным экраном по существу исполняет роль планшета 164. Вдобавок, компьютеры, такие как вычислительное устройство 110, могут также включать в себя другие периферийные устройства вывода, такие как динамики 195 и принтер 196, которые могут быть подсоединены через периферийный интерфейс 194 вывода или т.п.

Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, равноправное устройство либо другой известный сетевой узел, причем такой компьютер обычно включает в себя многие или все элементы, описанные выше в связи с компьютером 110, хотя на фиг.1 показано только запоминающее устройство 181. Логические соединения, изображенные на фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но также могут включать другие сети. Такие сетевые среды типичны для офисов, корпоративных компьютерных сетей, интрасетей и Интернет.

При использовании в сетевой среде LAN компьютер 110 подсоединен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде WAN компьютер 110 обычно включает в себя модем 172 либо другое средство для установления связи через сеть WAN 173, такую как Интернет. Модем 172, который может быть встроенным или внешним, может быть подсоединен к системной шине 121 через входной интерфейс 160 пользователя либо другой подходящий механизм. В сетевой среде программные модули, показанные применительно к компьютеру 110 или их части, могут храниться в удаленном запоминающем устройстве. На фиг.1 в качестве примера, но не как ограничение, показано, что удаленные прикладные программы 185 находятся в запоминающем устройстве 181. Очевидно, что показанные сетевые соединения являются лишь примерами и что можно использовать другие средства для установления линии связи между компьютерами.

Примерная архитектура

Один аспект изобретения в общем случае имеет своей целью обеспечение плавных смешанных анимаций и/или медиа в компьютерных системах. Исходя из этой цели предложена архитектура 200 медийной интеграции, представленная в целом на фиг.2. Прикладная программа 202, управляющий элемент или аналогичный программный код высокого уровня (например, пользовательский интерфейс компоненты операционной системы) обращается к архитектуре 200 уровня медийной интеграции через набор 204 интерфейсов прикладного программирования (API) или т.п. для доступа (записи или считывания) к графической информации. Заметим, что, хотя множество описанных здесь примеров будет относиться к прикладной программе, взаимодействующей с интерфейсами API, понятно, что для взаимодействия с описанными здесь компонентами низкого уровня также могут быть использованы другой программный код и компоненты высокого уровня (например, пользовательский интерфейс операционной системы). Раз так, то любую ссылку на указанный программный код высокого уровня, независимо от того, относится ли это к прикладной программе, пользовательскому интерфейсу и т.п., следует рассматривать как эквивалентную.

В одном варианте осуществления архитектура 200 медийной интеграции включает в себя механизм 206 компоновки и анимации высокого уровня, компоненты 208 временных соотношений и анимации и механизм 210 компоновки и анимации низкого уровня Используемые здесь термины «высокого уровня» и «низкого уровня» аналогичны терминам, используемым в других вычислительных сценариях, где в общем случае, чем ниже программная компонента относительно компоненты более высокого уровня, тем ближе эта компонента к аппаратным средствам. Таким образом, например, графическая информация, посылаемая от механизма компоновки и анимации высокого уровня, может приниматься в механизме компоновки и анимации низкого уровня, где эта информация используется для пересылки графических данных в графическую подсистему, включающую в себя аппаратные средства.

В общем случае механизм 206 компоновки и анимации высокого уровня (также называемый здесь компоновщиком и аниматором высокого уровня или механизмом или компонентой высокого уровня) выстраивает дерево элементов отображения для представления графической сцены, обеспечиваемой прикладной программой 202, в то время компоненты синхронизации и анимации обеспечивают декларативную (или иную) анимацию и управление синхронизацией. Механизм 210 компоновки и анимации низкого уровня (также называемый здесь компоновщиком и аниматором низкого уровня или механизмом или компонентой низкого уровня) компонует объекты визуализации для сцен множества приложений и, используя компоненты визуализации, реализует действительную визуализацию графики на экране. Заметим, что возможно еще выполнить длительную или специализированную визуализацию на более высоких уровнях и передать ссылки в битовую карту или т.п. для более низких уровней.

Механизм 206 компоновки и анимации высокого уровня выстраивает древовидную структуру элементов и обходит эту структуру, создавая команды визуализации и элементарные анимационные интервалы для их передачи в механизм 210 компоновки и анимации низкого уровня. Команды визуализации, созданные компоновщиком высокого уровня, могут содержать информацию о временных соотношениях и анимации. Механизм 210 компоновки и анимации низкого уровня получает команды визуализации и анимационные интервалы и управляет анимацией, визуализацией и компоновкой сцены, которая затем поступает в графическую подсистему 212 (например, графические программные и аппаратные средства). В альтернативном варианте или вдобавок к локально отображаемому выходу механизм 206 компоновки и анимации высокого уровня (или аналогичный ему механизм) может обеспечить команды визуализации и анимации в подходящем формате для кода 220 печати низкого уровня с целью пересылки фиксированных данных изображения на принтер 202 или т.п. и/или может обеспечить команды визуализации и элементарные анимационные интервалы в подходящем формате для транспортного сервера 226 терминала низкого уровня для передачи на удаленные машины 228. Заметим, что через сеть можно передать более богатую информацию, например, возможно окажется необходимым, чтобы удаленная машина обрабатывала эффекты одновременного нажатия клавиш мыши, без того чтобы обрабатывать сетевой трафик.

Таким образом, в этом варианте осуществления архитектура 200 медийной интеграции разделяет графическую обработку на множество уровней, причем каждый из этих уровней выполняет некоторую интеллектуальную графическую обработку, что в совокупности позволяет интерфейсам 202 прикладного программирования и т.п. выводить графику с плавной анимацией, компоновать эту графику с графикой других приложений и работать с видеокадрами. Анимация и/или компоновка также может быть синхронизирована с аудиовыходом. Например, путем синхронизации аудио с частотой кадров в компоненте низкого уровня временные соотношения аудио могут быть существенно уточнены в соответствии с временными соотношениями видео и графики и не зависеть от того, возможна ли поддержка частоты обновления при выполнении сложной предварительной обработки, запланированной для текущей задачи.

На фиг.3 представлен один вариант осуществления, при котором код 302 разметки, например, код на основе языка XAML, может интерпретироваться синтаксическим анализатором/транслятором 304. В общем случае синтаксический анализатор/транслятор 304 добавляет элементы в систему 314 свойств/дерева элементов; причем эти элементы являются визуальными объектами, которые создают собственное размещение. Кроме того, заметим, что некоторая часть или весь код разметки может быть скомпилирован, а не интерпретирован по требованию, что повышает эффективность.

В общем случае элемент представляет собой объект в уровне элементов, который участвует в функционировании системы свойств, запуска и системы размещения/представления. Синтаксический анализатор 304 находит теги и решает, помогут ли эти теги определить элемент или ресурсный объект. Например, в конкретном случае VisualBrush одни и те же теги могут быть интерпретированы как элементы, а также как ресурсные объекты в зависимости от контекста, в котором эти теги появляются, например, в зависимости от того, появились ли они в комплексном синтаксисе свойств или нет, как описано в патентной заявке США №10/401717.

Вдобавок к текущему линейному расположению в разметке экземпляр ресурса может находиться в каком-либо другом месте (например, в разметке или в файле, который может быть локальным или находиться в удаленной сети и, соответственно, загружаться), и иметь ссылочное имя (например, текстовое имя, ссылочный или иной подходящий идентификатор). Таким путем разработчик сцены может повторно использовать элемент в дереве элементов по всей сцене, включая элементы, описываемые комплексным синтаксисом свойств. Как будет описано ниже, ресурс может включать в себя раскадровку, что позволяет использовать раскадровки повторно.

Синтаксический анализатор 304 обрабатывает разметку в комплексном синтаксисе свойств путем обращения к преобразователю 308 типов, если это необходимо, а также путем сопоставления заданных параметров со свойствами объекта, что устраняет сложности для разработчика сцены. Таким образом, синтаксический анализатор 304 не только устанавливает объекты, но также устанавливает свойства в этих объектах. Поскольку между уровнем элементов и уровнем API совместно используется одна и та же модель визуализации, множество объектов по существу оказываются одинаковыми. Это делает синтаксический анализ/трансляцию высоко эффективной, а также позволяет использовать различные типы языков программирования (например, языки, подобные С#) легко преобразовывать разметку в собственный синтаксис и наоборот. Заметим, что, как показано на фиг.3, другой указанный язык 310 программирования (который может содержать скомпилированную разметку) может добавить элементы к дереву 314 элементов либо может непосредственно взаимодействовать с уровнем 316 визуального API.

На фиг.3 также показано, что одна и та же разметка 302 может быть использована для программирования на уровне элементов и на уровне ресурсов. В общем случае уровень элементов дает разработчику сцены исчерпывающие возможности программирования, возможность использовать систему свойств, которая обеспечивает наследование (например, функции типа таблицы стилей) и запуск (посредством чего, например, элемент в ответ на событие или действие, введенное пользователем, может присоединить код для изменения своего вида, положения и т.д.). Однако различные варианты изобретения также обеспечивают механизм на уровне ресурсов, с помощью которого разработчики сцен могут по существу укоротить дерево элементов и выполнить программирование непосредственно на уровне визуального API. Для многих типов статических форм, изображений и т.п., где в признаках на уровне элементов нет необходимости, это обеспечивает более эффективный и легкий способ вывода соответствующего объекта.

В целях управления выводом анимации и медиа также поддерживается дерево временных соотношений, содержащее тактовые сигналы, как описывается ниже со ссылками на фиг.4 и 5. В общем случае механизм 206 компоновщика и аниматора высокого уровня выполняет комплексную обработку (иногда называемую компиляцией), которая значительно упрощает обработку и значительно уменьшает объем данных, которые необходимы более низким уровням для визуализации правильного вывода. Однако заметим, что объем и тип обработки, выполняемый на более высоком уровне, может зависеть в значительной степени от нагрузки, конфигурации и возможностей более низких уровней. Например, если имеются высокопроизводительные графические аппаратные средства, то на более высоком уровне возможно выполнение обработки в меньшем объеме и наоборот. Высокие уровни и низкие уровни адаптивны к указанным факторам.

В общем случае анимация осуществляется как механизмом 206 компоновки и анимации высокого уровня, так и механизмом 210 компоновки анимации низкого уровня. В одном варианте осуществления механизм 206 высокого уровня обходит сцену и обновляет параметры анимации с интервалами для последующей интерполяции, а затем пакетирует эти упрощенные структуры данных в команды, которые передаются в механизм 210 низкого уровня. Это может быть выполнено в синхронном и/или асинхронном режиме. Интервальные данные могут рассматриваться в качестве данных, включающих в себя временные конечные точки (данные о моментах начала и окончания интервалов), а также как параметризованные значения для команды визуализации. Заметим, что механизм 204 высокого уровня может выполнять некоторую часть или всю запрошенную интерполяцию; например, если интерполяция или другая функция перемещения слишком сложна для обработки механизмом 210 низкого уровня, или на более низком уровне нельзя поддерживать установленные для этого уровня требования обработки, то механизм более высокого уровня может выполнить некоторые или все вычисления и предоставить более низкому уровню упрощенные данные, мозаичные структуры, команды и т.п., чтобы получить желаемый результат.

В типовом случае, когда на более низком уровне интерполяции выполняются для каждого кадра анимации, механизм 210 низкого уровня интерполирует параметрические интервалы, чтобы получить мгновенные значения, и декодирует команды, получая команды визуализации, выполняемые графическим устройством. Графическое устройство компонует окончательную сцену, добавляя видеокадры, которые могут присутствовать в сцене. Также могут быть добавлены другие данные, такие как контент, защищенный системой цифрового управления авторскими правами.

Механизм 206 высокого уровня, таким образом, обходит структуры данных сцены, вычисляет интервал, описывающий каждый анимационный параметр для некоторого периода времени, и передает эти интервалы и упрощенные параметризованные команды вычерчивания в механизм 210 низкого уровня. Параметрические данные включают в себя начальный момент времени, конечный момент времени, интерполятор и интерполяционные данные. Например, вместо стирания и повторного вычерчивания изображения, с тем чтобы оно казалось движущимся, механизм 206 компоновки и анимации высокого уровня может указать механизму 210 компоновки и анимации низкого уровня, каким образом изображение должно изменяться во времени, например, начальные координаты, конечные координаты, длительность во времени (интервал), в течение которого изображение должно перемещаться между указанными координатами, и функцию движения, например, линейную (заметим, что для анимации не требуется движение, так как стационарный объект может быть анимирован, например, путем изменения его цветности). Механизм 210 компоновки и анимации низкого уровня выполнит интерполяцию, чтобы определить новые положения между кадрами, преобразовать их в команды вычерчивания, которые сможет понять графическое устройство, и передать эти команды в графическое устройство. Каждый прогон механизма 206 высокого уровня предпочтительно обеспечивает такой объем данных для механизма 210 низкого уровня, который будет достаточен для выполнения плавной анимации по нескольким кадрам.

Механизм 210 низкого уровня (например, с высокой тактовой частотой) реализует задачу отдельно от механизма 206 высокого уровня. Механизм 210 низкого уровня получает от механизма 206 высокого уровня упрощенные параметризованные команды вычерчивания и параметрические интервалы, описывающие сцену. Механизм низкого уровня поддерживает и выполняет обход этих структур данных, пока механизм 206 высокого уровня не обеспечит новые структуры данных. Механизм низкого уровня может обслуживать множество механизмов 206 высокого уровня, поддерживая для каждого из них отдельные структуры данных. Взаимосвязь типа «один - множество» между механизмом 210 низкого уровня и механизмом 206 высокого уровня позволяет системе одновременно выполнять плавную анимацию множества сцен.

Механизм 210 низкого уровня по существу интерполирует мгновенные параметры анимации на основе интервалов, обеспеченных механизмом высокого уровня, обновляет команды вычерчивания и визуализирует сцену для каждого кадра. Задача, реализуемая механизмом 210 низкого уровня, выполняется с высоким приоритетом в системе, чтобы обеспечить готовность кадров для представления, например, с частотой обновления экрана графических аппаратных средств. Таким образом, интерполяции, выполняемые механизмом 210 низкого уровня, как правило, ограничиваются простыми, быстро реализуемыми функциями, такими как линейная интерполяция, кусочно-линейная интерполяция, интерполяция на основе пространственных сплайнов и другие виды интерполяции, обеспечивающие аналогичное быстродействие.

Что касается анимации и медиа, то, как в общем виде представлено на фиг.4 и 5, программа, например прикладная программа 202, задает для компоненты 206 высокого уровня значения анимационного свойства вместе с информацией о временных соотношениях, определяемых тактовыми сигналами или характеристиками тактовых сигналов. Как описано ниже, фактически любая независимая анимация или медиа (например, линейные медиа, такие как видео и аудио), а также раскадровка, которая координирует заданные анимации, будет иметь тактовый сигнал, поддерживаемый для этой анимации в компоненте высокого уровня. В общем случае автор задает данные временной шкалы, которые представляют в виде тактовых сигналов, подходящих для поддержки их синхронизации. В некоторых вариантах раскадровка представляет собой временную шкалу, скомпонованную в виде группы или дерева временных шкал. Раскадровка может обеспечить задающую информацию, так что ее дерево временных шкал может задать множество свойств на множестве элементов. Вдобавок, в некоторых вариантах изобретения анимации представляют собой типы временных шкал.

Свойства тактовых сигналов содержат свойства временных соотношений, которые определяют соотношение начальной синхронизации между заданным тактовым сигналом и остальной частью временной структуры. Как показано на фиг.5, компонента 206 высокого уровня может вызвать функции 520Н анимации высокого уровня (например, записанные в управляемом коде, являющемся кодом, который обеспечивает информацию в виде метаданных, позволяющих использовать общеязыковое время прогона, в течение которого выполняется код, реализующий управление), чтобы определить текущее значение некоторого свойства анимации. Во время выполнения вычислений с большой частотой кадров компонента 210 низкого уровня вызывает аналогичные (или те же самые) функции 520L анимации с ходом процесса, вычисленным механизмом 414, чтобы определить текущее значение свойства анимации. Заметим, что в альтернативных вариантах осуществления изобретения функции анимации могут быть встроены, например, в компоненту низкого уровня.

В общем случае анимации и линейные медиа связаны с набором тактовых сигналов, которые связаны друг с другом примитивами и правилами синхронизации. Эти тактовые сигналы могут быть иерархически скомпонованы, например, прикладная программа имеет родительский тактовый сигнал, а анимированные объекты прикладной программы являются дочерними, которые, в свою очередь, могут иметь другие дочерние объект