Модель определения ключевого кадра атрибута сопряженных объектов

Иллюстрации

Показать все

Изобретение относится к области компьютерной графики. Технический результат - повышение удобства пользователя. Заявлены системы, способы и пользовательские интерфейсы для определения ключевых кадров на уровне свойства и объединенного объекта, в которых пользователь может ввести режим, где любое изменение в свойстве записывается как действие определения ключевого кадра (например, создание или редактирование) в текущий момент времени, как показано на временной оси. Если ключевой кадр создается в этом режиме, ключевые кадры уровня окружающих объектов анализируются для того, чтобы убедиться, что функциональность, которую пользователи ожидают от ключевых кадров на уровне объекта, поддерживается. Если пользователь в явном виде создает анимацию атрибута, которая охватывает ключевой кадр уровня объекта, то этот диапазон для анимации поддерживается по мере того, как пользователь осуществляет редактирование. 6 н. и 25 з.п. ф-лы, 10 ил.

Реферат

Область техники

Настоящее изобретение относится к области компьютерной графики. Более конкретно, настоящее изобретение относится к инструментальным средствам создания анимации.

Предшествующий уровень техники

Промышленный стандарт для инструментальных средств создания анимации использует ключевой кадр, который определяется как момент времени и набор изменений свойств, которые возникают в этот момент времени. Свойства могут представлять собой любое свойство от цвета объекта до всего содержания сцены. Некоторые инструментальные средства, такие как Macromedia Flash, представляют уровень слоя и сохраняют полное состояние всех объектов в слое в данный момент времени. Другие инструментальные средства, такие как Adobe Live Motion, представляют ключевые кадры по атрибутам объекта, так что по каждому свойству объекта сохраняется указатель, который сообщает, анимируется или нет данное свойство. Оба подхода имеют ряд недостатков.

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

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

Многие из инструментальных средств двумерной (2d) анимации, доступных в настоящее время на рынке (Flash, After Effects и т.д.), содержат анимацию в качестве своего основного режима разработки авторских работ. То есть большую часть времени, в течение которого пользователь взаимодействует с инструментальными средствами, он работает над анимацией. Однако ввиду инструментального средства, главной задачей которого является проектирование пользовательского интерфейса, более желательно обеспечить возможность пользователю взаимодействовать со сценой, не принимая во внимание реализацию анимации. Например, пользователь может определить ключевой кадр для анимации отклонения на кнопке, которую он поместил на своей форме, и затем принимать решение о том, находится ли кнопка в корректном положении на форме. Для пользователя было бы желательным делать это без модифицирования всех ключевых кадров в анимации отклонения. В других инструментальных средствах двумерной графики пользователь должен постоянно отслеживать то, где текущий временной маркер находится на временной оси, используемой при проектировании или авторской разработке (и в некоторых инструментальных средствах, может или нет для редактируемого свойства быть определен ключевой кадр).

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

Сущность изобретения

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

Приведенные для примера варианты осуществления включают в себя способ определения ключевого кадра объекта, в котором идентифицируются, по меньшей мере, одно свойство и время для объекта. Как изложено ниже, например, со ссылками на фиг.1-3, ключевой кадр атрибута представляет собой ключевой кадр на уровне атрибута, а ключевой кадр компоновки является ключевым кадром на уровне объекта. Ключевой кадр компоновки можно представить себе как, по существу, занимающий место для «виртуального ключевого кадра атрибутов» по всем возможным атрибутам. Другие ключевые кадры атрибутов обусловливают выражение виртуального ключевого кадра атрибутов выражаться по указанным атрибутам, как изложено ниже.

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

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

Заполнение ключевого кадра смежного объекта может содержать: (1) если ключевой кадр смежного объекта существует в момент времени, более поздний, чем первый момент времени, и ключевой кадр атрибута существует в момент времени, более поздний, чем первый момент времени, то установку первого значения на значение ключевого кадра атрибута, который существует в момент времени, более поздний, чем первый момент времени, или (2) если ключевой кадр смежного объекта существует в момент времени, более поздний, чем первый момент времени, и ключевой кадр атрибута не существует в момент времени, более поздний, чем первый момент времени, то установку первого значения на значение первоначально принятого значения для атрибута; и создание нового ключевого кадра атрибута в ключевом кадре смежного объекта с использованием первого значения.

Дополнительно заполнение ключевого кадра смежного объекта может содержать: (1) если ключевой кадр объекта, который существует, является более ранним, чем первый момент времени, и ключевой кадр атрибута существует раньше во времени, чем первый момент времени, то установку первого значения на значение ключевого кадра атрибута, который существует в момент времени, более ранний, чем первый момент времени, или (2) если ключевой кадр объекта существует в момент времени, более ранний, чем первый момент времени, и ключевой кадр атрибута не существует в момент времени, более ранний, чем первый момент времени, то установку первого значения на значение первоначально принятого значения для атрибута; и создание нового ключевого кадра атрибута в ключевом кадре смежного объекта с использованием первого значения.

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

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

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

Фиг.1 - диаграмма элемента временной оси с головкой воспроизведения в соответствии с настоящим изобретением;

Фиг.2 - диаграмма элемента временной оси в соответствии с настоящим изобретением;

Фиг.3 - диаграмма другого элемента временной оси, иллюстрирующая определение ключевого кадра в соответствии с настоящим изобретением;

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

Фиг.5 - диаграмма объекта в сцене с пользовательским интерфейсом в соответствии с настоящим изобретением;

Фиг.6А-6F - диаграммы элементов временной оси, поясняющие способ создания элементов анимации в соответствии с настоящим изобретением;

Фиг.7 - блок-схема приведенного для примера способа создания элементов анимации в соответствии с настоящим изобретением;

Фиг.8А-8Н - диаграммы элементов временной оси, иллюстрирующие примеры сценариев ключевых кадров с автоматическим добавлением в соответствии с настоящим изобретением;

Фиг.9А и 9В - диаграммы элементов временной оси, иллюстрирующие сценарии ключевых кадров компоновок в соответствии с настоящим изобретением;

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

Детальное описание предпочтительных вариантов осуществления изобретения

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

Пример пользовательского интерфейса (ПИ) разработки ключевого кадра показан на фиг.1 и содержит ключевой кадр 10 компоновки и ключевой кадр 20 атрибута. Элемент 5 временной оси ПИ разработки ключевого кадра представляет ключевые кадры на уровне объекта (называемые ключевыми кадрами компоновки) и на уровне атрибута (называемые ключевыми кадрами атрибута) и использует обе модели определения ключевого кадра для того, чтобы сделать разработку анимации посредством ключевых кадров более эффективной. Предусматривается головка 7 воспроизведения, которая может перемещаться к конкретному моменту времени, чтобы устанавливать свойства, ключевые кадры и т.д.

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

Когда пользователь добавляет ключевые кадры к анимации, ключевые кадры уровня объекта используются для определения диапазона вновь анимированных атрибутов. Рассмотрим сценарий, в котором пользователь разработал анимацию, которая перемещает объект из положения (10, 10) в положение (100, 100) от момента 1 к моменту 2. Такой примерный элемент временной оси (который может быть обеспечен или отображен как часть ПИ) показан на фиг.2, где объект «овал 1» установлен для перемещения из первого положения А (предположим, что А соответствует базовому положению (10, 10)) во второе положение В (предположим, что В соответствует базовому положению (100, 100)). Так, в момент времени 1 ключевой кадр уровня объекта генерируется соответственно началу, а в момент времени 2 ключевой кадр уровня объекта генерируется соответственно концу.

Теперь предположим, что пользователю желательно масштабировать объект до 150% от его первоначального размера и снова уменьшить его до первоначального размера в ходе перемещения от момента времени 1 до момента времени 2. В соответствии с настоящим изобретением это может быть выполнено путем перемещения маркера текущего времени (т.е. головки 7 воспроизведения) к моменту 1.5, как показано на фиг.3, обеспечения, что элемент временной оси регистрирует изменения, и путем изменения значения свойства масштабирования до 150% в указанный момент времени. Иными словами, в момент 1.5 изменяется масштаб, и создается кадр (копия состояния объекта) уровня объекта. Процесс пополнения, как он описан со ссылкой на фиг.4, используется затем для определения ключевых кадров свойства (атрибута) в текущий момент времени (момент времени 1.5) на уровнях смежных объектов (по одному непосредственно перед и после, в данном случае в моменты времени 1 и 2). Могут использоваться обычные алгоритмы интерполяции.

Более конкретно, когда пользователь осуществляет это изменение, как показано на фиг.3, ключевой кадр компоновки, который существует перед этим вновь созданным ключевым кадром (здесь элемент 12 в момент времени 1), анализируется вместе с ключевым кадром компоновки, непосредственно следующим за вновь созданным ключевым кадром во времени (здесь элемент 16 в момент 2). Если любой или оба из этих ключевых кадров не имеют ключевых кадров атрибутов для масштабирования объекта, то соответствующие значения для масштабирования заполняются для этих ключевых кадров. В этом сценарии ключевые кадры 22, 26 атрибутов соответственно для значения 100% масштаба должны быть созданы под предыдущим ключевым кадром 12 компоновки и ниже и рядом со следующим ключевым кадром 16 компоновки, как показано на фиг.3.

Логика для приведенного выше примера процесса описана более детально со ссылками на блок-схему по фиг.4. Согласно показанному на фиг.4 осуществляется анализ и заполнение ключевых кадров уровня смежных объектов. Когда добавляется новый кадр, проводится перемещение назад и вперед. Если ключевой кадр атрибута не существует, и не существует ключевой кадр объекта (как раньше по времени, так и позже по времени), то создается новый ключевой кадр атрибута, который обусловливает создание ключевого кадра уровня объекта.

Более конкретно, на этапе 405 значение атрибута изменяется в режиме анимации. На этапе 410 определяется, существует ли ключевой кадр анимации в текущий момент. Если он существует, то значение ключевого кадра на этапе 490 изменяется, и процесс завершается. Если он не существует, то на этапе 495 создается новый ключевой кадр атрибута для текущего момента времени. Если ключевой кадр атрибута для этого атрибута существует раньше, чем данный момент времени, то значение в том ключевом кадре сохраняется на этапе 455 в этом ключевом кадре. Если никакой ключевой кадр атрибута для этого атрибута не существует раньше, чем в данный момент времени, то на этапе 450 исходное значение сохраняется в качестве упомянутого значения. В любом случае после этапа 450 или 495 прежний ключевой кадр объекта заполняется на этапе 460 ключевым кадром, содержащим значение, которое поддерживается или сохраняется с этапов 450 или 455. Затем обработка продолжается на этапе 495 с новым ключевым кадром атрибута, созданным для текущего момента времени. Следует отметить, что в случае, если текущее время равно 0, то нет необходимости в анализе для более раннего времени, поскольку время, равное 0, принимается в качестве наименьшего возможного значения времени.

Если из этапа 415 определено, что ключевой кадр объекта существует раньше, чем в текущий момент времени, то на этапе 430 определяется, имеется ли ключевой кадр атрибута для того атрибута, который существует позже, чем в текущий момент времени. Если имеется ключевой кадр атрибута для того атрибута, который существует позже, чем в текущий момент времени, то на этапе 440 значение того ключевого кадра сохраняется для того ключевого кадра. Если нет ключевого кадра атрибута для этого атрибута позже, чем в текущий момент времени, то на этапе 435 используемым значением является сохраненное значение последнего ключевого кадра атрибута или, если его нет, то базовое значение (которое может быть определено заранее). В любом случае после этапа 435 или этапа 440 более поздний ключевой кадр объекта на этапе 445 заполняется ключевым кадром, содержащим сохраненное значение с этапа 435 или 440. Затем обработка продолжается на этапе 420, как изложено выше.

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

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

В режиме определения ключевых кадров становится желательным указать пользователю, что он устанавливает ключевые кадры почти с каждой правкой, которую он осуществляет. Это предпочтительно выполняется путем обеспечения указателя в контексте с правкой, чтобы уведомить пользователя, что ключевой кадр для правки, которую он только что выполнил, был записан. Этот указатель также дает пользователю кнопку, которая может быть выбрана для отмены ключевого кадра, который только что был установлен, или выбрать другие опции для интерпретации изменения, выполненного только что. Этот пользовательский интерфейс на объекте обеспечивается в контексте изменения, поэтому, как показано на фиг.5, если пользователь перетаскивает объект 510 в сцену 500, изменяя его положение, то ПИ 520 появится в этой сцене. Например, если пользователь изменяет цвет объекта в ПИ выбора цвета, то пользовательский интерфейс на объекте всплывает поверх редактора цвета. ПИ на объекте указывает, когда изменения, сделанные в остальной части ПИ средства разработки, записываются системой анимации. Когда свойство изменяется в процессе определения ключевого кадра, желателен визуальный индикатор, который указывает, что ключевой кадр изменился. Элементы, которые могут быть изменены, включают в себя, например, х, у, высоту, ширину, цвет, поворот, наклон.

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

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

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

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

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

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

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

Если пользователь выбирает изменить выбор, то определяется, имеет ли текущий выбор ключевые кадры компоновки. Если это так, то выбор изменяется соответствующим образом. Если нет, то в текущий момент времени создается ключевой кадр компоновки.

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

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

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

Пример создания анимации описан ниже со ссылками на фиг.6А-6F и Фиг.7. Предположим, что пользователю желательно создать простую анимацию, в которой овал перемещается слева направо за полсекунды, затем овал удерживается в течение еще полсекунды и затем возвращается назад в свое исходное положение. Первоначально овал создается (этап 700) и помещается в положение на экране, и задается начальный момент времени (этап 705). Вводится режим анимации (этап 710) щелчком на кнопке анимации или осуществлением выбора аналогичным образом. Создается новый ключевой кадр компоновки для овала в текущий момент времени (этап 715). Например, начальный момент времени для анимации идентифицируется на временной оси в момент 0,5 на фиг.6А.

Головка 600 воспроизведения перемещается вперед от 0,5 секунды, как показано на фиг.6В, до 1 секунды (этап 720). Затем, как показано на фиг.6С, положение (например, положение Х, Y) овала изменяется, и ключевой кадр добавляется в момент 1 секунда (этап 725). Обработка продолжается на этапе 720. Головка 600 воспроизведения перемещается вперед еще на 0,5 секунды, от момента 1 секунда до момента 1,5 секунды, как показано на фиг.6D, и добавляется ключевой кадр (например, путем активации пользователем кнопки «добавить ключевой кадр», например, на ПИ), как показано на фиг.6Е, для определения, что овал должен сохранять свое местоположение между 1 секундой и 1,5 секунды.

Затем головка 600 воспроизведения перемещается вперед еще на 0,5 секунды, до момента 2, в положение, где овал возвращается в свою начальную точку, и соответственно добавляется ключевой кадр, как показано на фиг.6F. В этот момент пользователь создал желательную анимацию, и может выйти из режима анимации для изменения компоновки сцены без создания ключевых кадров, или остаться в режиме анимации для определения ключевых кадров для дополнительных анимаций.

Если пользователь находится в режиме анимации, пользователь может добавить и настроить ключевые кадры в текущий момент времени, по мере того как он настраивает атрибуты объектов с использованием меток-манипуляторов и панелей объекта. Для каждого атрибута, который пользователь изменяет в данный момент, добавляется ключевой кадр атрибута. Ключевые кадры компоновки по объекту также принимаются во внимание для сохранения их значений. Более того, желательно, когда пользователь изменяет свойство и имеется ключевой кадр атрибута для данного свойства в текущий момент, то затем ключевой кадр атрибута редактируется. В противном случае, когда пользователь изменяет свойство и не имеется ключевого кадра атрибута для данного свойства в текущий момент, имеются различные случаи, как описано ниже, примеры которых описаны со ссылками на фиг.8А-8Н.

Если головка 600 воспроизведения находится только на ключевом кадре компоновки на элементе, как показано на фиг.8А, то ключевой кадр атрибута добавляется для нового значения в текущий момент, как показано на фиг.8В.

Если головка 600 воспроизведения находится перед всеми ключевыми кадрами компоновки на элементе, как показано на фиг.8С, то в этом случае, если следующий ключевой кадр компоновки не имеет ключевого кадра атрибута для изменяемого свойства, то он заполняется старым значением свойства. Ключевой кадр атрибута также создается в текущий момент с новым значением, как показано на фиг.8D.

Если головка 600 воспроизведения находится после всех ключевых кадров компоновки на элементе, как показано на фиг.8Е, то в этом случае, если предыдущий ключевой кадр компоновки не имеет ключевого кадра атрибута для изменяемого свойства, то он заполняется старым значением свойства. Ключевой кадр атрибута также создается в текущий момент с новым значением, как показано на фиг.8F.

Если головка 600 воспроизведения размещается между двумя ключевыми кадрами компоновки на элементе, как показано на фиг.8G, то в этом случае проверяются как ключевой кадр компоновки перед текущим моментом времени, так и ключевой кадр компоновки после текущего момента времени. Если любой из них не имеет ключевого кадра атрибута для изменяемого свойства, то он заполняется старым значением свойства. Ключевой кадр атрибута также создается в текущий момент с новым значением, как показано на фиг.8Н. Следует отметить, что базовое значение не обязательно должно использоваться, если имеются ключевые кадры атрибутов, определенные в любой момент времени вне ключевых кадров компоновки (например, подобно тому, как описано выше относительно этапа 435 на фиг.4).

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

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

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

Примером предварительного условия для создания ключевого кадра компоновки является то, что