МОДЕЛЬ ОПРЕДЕЛЕНИЯ КЛЮЧЕВОГО КАДРА АТРИБУТА СОПРЯЖЕННЫХ ОБЪЕКТОВ
METHOD FOR DETERMINING KEY FRAME OF ATTRIBUTE OF INTERFACED OBJECTS

Область техники
Настоящее изобретение относится к области компьютерной графики. Более конкретно, настоящее изобретение относится к инструментальным средствам создания анимации.
Предшествующий уровень техники
Промышленный стандарт для инструментальных средств создания анимации использует ключевой кадр, который определяется как момент времени и набор изменений свойств, которые возникают в этот момент времени. Свойства могут представлять собой любое свойство от цвета объекта до всего содержания сцены. Некоторые инструментальные средства, такие как 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В. Новый ключевой кадр компоновки желательным образом заполняется текущими значениями всех анимаций в текущий момент времени. Отметим, что пользователь не должен изменять значение для создания этого ключевого кадра компоновки.
Примером предварительного условия для создания ключевого кадра компоновки является то, что пользователь устанавливает время, в которое ему желательно установить ключевой кадр. Например, пользователь может выбрать «Временная ось-> Добавить ключевой кадр» на ПИ или нажать кнопку добавления ключевого кадра на элементе временной оси.
Пользователь может в явном виде добавить ключевые кадры атрибутов. Это может быть желательным, если пользователю желателен ключевой кадр с тем же значением, что и текущий ключевой кадр. В таком случае, с использованием примерного ПИ, пользователь прокрутит текущее время до желательного момента времени для ключевого кадра, переместит мышь над областью временной оси в положение желательного момента времени и нажмет кнопку установки ключевого кадра. Альтернативно, например, пользователю может быть предоставлена опция для выбора «добавить ключевой кадр» во всплывающем меню. Новый ключевой кадр атрибута добавляется, таким образом, к атрибуту в текущий момент времени.
Таким образом, предусматривается, что примерный ПИ может поддерживать пользовательские предпочтения для времен ключевого кадра атрибута в процессе редактирования в отношении значений ключевых кадров атрибутов. Кроме того, примерные пользовательские интерфейсы обеспечивают возможность создания ключевых кадров как уровня объекта, так и уровня атрибута, заполнения значений ключевых кадров атрибутов на основе окружающих ключевых кадров объектов и не требуют создания в явном виде ключевых кадров для конкретного объекта или атрибута.
Также предусматривается, что настоящее изобретение может использоваться с двумерными преобразованиями, а также с трехмерными преобразованиями, но не должно ограничиваться только этими типами преобразований.
Примерная вычислительная среда
Фиг.10 иллюстрирует пример подходящей вычислительной среды 800, в которой может быть реализовано изобретение. Среда 800 вычислительной системы является лишь примером подходящей вычислительной среды и не предназначается для ограничения объема использования или функциональных возможностей изобретения. Вычислительная среда 100 также не должна интерпретироваться как имеющая какую-либо зависимость или требование по отношению к любому компоненту или комбинации показанных компонентов.
Изобретение может быть реализовано в различных других средах или конфигурациях универсальных или специализированных компьютерных систем. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут подходить для использования с изобретением, включают, не ограничиваясь указанным, персональные компьютеры, серверные компьютеры, миниатюрные или портативные устройства, мультипроцессорные системы, микропроцессорные системы, приставки, программируемые приборы бытовой электроники, сетевые ПК, миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают любые из вышеописанных систем или устройств и т.п.
Изобретение может быть описано в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые на одном компьютере. В общем случае программные модули включают в себя стандартные программы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют некоторые абстрактные типы данных. Изобретение также может быть реализовано в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые связаны коммуникационной сетью или другой средой передачи данных. В распределенной вычислительной среде программные модули и другие данные могут размещаться как в локальных, так и удаленных компьютерных носителях данных, включая запоминающие устройства.
На фиг.10 представлена приведенная для примера система для реализации изобретения, включающая в себя универсальное вычислительное устройство в форме компьютера 810. Компоненты компьютера 810 могут включать в себя, не ограничиваясь указанным, блок 820 обработки, системную память 830 и системную шину 821, которая связывает различные системные компоненты, включая системную память, с блоком 820 обработки. Системная шина 821 может быть любой из различных типов шинных структур, включая шину памяти или контроллер памяти, шину периферийных устройств, локальную шину, использующую любую из разнообразных шинных архитектур. В качестве примера, но не ограничения, такие архитектуры включают в себя шину ISA (Архитектура, соответствующая промышленному стандарту), шину MCA (Микроканальная архитектура), усовершенствованную шину ISA (EISA), локальную шину VESA (Ассоциации по стандартам в области видеоэлектроники), шину соединения периферийных компонентов (PCI), также известную как шина Mezzanine.
Компьютер 810 в типовом случае включает в себя множество считываемых компьютером сред (носителей). Считываемые компьютером носители могут представлять собой любые известные носители, к которым компьютер 810 может осуществлять доступ, и включают в себя энергозависимые и энергонезависимые носители, съемные и несъемные носители. К примеру, но не в качестве ограничения, считываемые компьютером носители могут содержать компьютерные носители записи и коммуникационную среду. Компьютерные носители записи включают в себя энергозависимые и энергонезависимые носители, съемные и несъемные носители, реализованные любым методом или по любой технологии для хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или иные данные. Компьютерные носители записи содержат, не ограничиваясь указанным, оперативную память (RAM, ОЗУ), постоянную память (ROM, ПЗУ), электронно-стираемую программируемую постоянную память (EEPROM, ЭСППЗУ), память с групповой перезаписью (флэш-память) или другие технологии памяти, CD-ROM, универсальные цифровые диски (DVD) или иные устройства памяти на оптических дисках, магнитных кассетах, магнитных лентах, устройства памяти на магнитных дисках или иные магнитные устройства памяти, или любые иные носители, которые могут быть использованы для хранения желательной информации и к которым может быть обеспечен доступ компьютера 810. Коммуникационная среда (среда передачи) в типовом случае воплощает считываемые компьютером команды, структуры данных, программные модули или иные данные в модулированном сигнале данных, таком как несущее колебание или иной транспортный механизм (механизм передачи), и включает в себя любую среду доставки информации. Термин «модулированный сигнал данных» означает сигнал, у которого одна или более характеристик установлены или изменяются таким образом, чтобы кодировать информацию в сигнале. В качестве примера, но не ограничения, коммуникационная среда включает в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводную среду передачи, такую как акустическая, радиочастотная, инфракрасная и другая беспроводная среда передачи. Комбинации любых вышеуказанных сред также должны быть включены в объем носителей (сред), считываемых компьютером.
Системная память 830 включает в себя компьютерный носитель записи в форме энергозависимой и/или энергонезависимой памяти, такой как постоянная память (ПЗУ, ROM) 831 и оперативная память (ОЗУ, RAM) 832. Базовая система ввода/вывода (BIOS) 833, содержащая базовые подпрограммы, которые способствуют переносу информации между элементами в компьютере 810, например, при запуске, в типовом случае сохранена в ПЗУ 831. ОЗУ 832 в типовом случае содержит данные и/или программные модули, которые непосредственно доступны и/или обрабатываются блоком 820 обработки. В качестве примера, но не ограничения, на фиг.10 показаны операционная система 834, прикладные программы 835, другие программные модули 836 и программные данные 837.
Компьютер 810 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители записи. Например, на фиг.10 показан дисковод 841 жестких дисков для считывания с несъемного, энергонезависимого магнитного носителя и записи на него, дисковод 851 магнитных дисков для считывания со съемного энергонезависимого магнитного диска 852 и записи на него, и дисковод 855 оптических дисков для считывания со съемного энергонезависимого оптического диска 856 или записи на оптический диск, такой как, например, ПЗУ на компакт-диске (CD-ROM) или иные оптические носители записи. Другие съемные и несъемные, энергозависимые и энергонезависимые компьютерные носители записи, которые могут быть использованы в приведенной для примера операционной среде, включают в себя, не ограничиваясь указанным, кассеты на магнитных лентах, карты флэш-памяти, DVD, цифровые видео магнитные ленты, твердотельные ОЗУ, твердотельные ПЗУ и т.п.Дисковод 841 жестких дисков в типовом случае соединен с системной шиной 821 посредством интерфейса несъемной памяти, такого как интерфейс 840, и дисковод 851 магнитных дисков и дисковод 855 оптических дисков соединены с системной шиной 821 в типовом случае посредством интерфейса схемной памяти, такого как интерфейс 850.
Дисководы и связанные с ними считываемые компьютером носители обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг.10, например, показано, что дисковод 841 жесткого диска хранит операционную систему 844, прикладные программы (приложения) 845, другие программные модули 846 и программные данные 847. Заметим, что эти компоненты могут быть теми же самыми или отличающимися от операционной системы 834, прикладных программ 835, других программных модулей 836 и программных данных 837. Операционная система 844, прикладные программы 845, другие программные модули 846 и программные данные 847 обозначены отличающимися ссылочными позициями для иллюстрации того, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютер 810 посредством устройств ввода, например клавиатуры 862 и координатно-указательного устройства 861, такого как мышь, трекбол или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя джойстик, игровую панель, спутниковую параболическую антенну, сканер и т.п. Эти и другие устройства ввода часто соединяются с блоком 820 обработки через интерфейс 860 пользовательского ввода, связанный с системной шиной, но могут быть соединены и посредством других интерфейсов и структур шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB) и т.д. Монитор 891 или иное устройство отображения также соединено с системной шиной 121 через интерфейс, например, такой как видеоинтерфейс 890. Монитор 891 или иное устройство отображения также соединено с системной шиной 821 через интерфейс, например, такой как видеоинтерфейс 890. Помимо монитора 891 компьютеры также могут включать в себя другие периферийные устройства вывода, например громкоговорители 897 и принтер 896, которые могут быть соединены через интерфейс 895 устройств вывода.
Компьютер 810 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 880. Удаленный компьютер 880 может представлять собой ПК, портативное устройство, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой обычный сетевой узел и в типовом случае включает в себя многие или все из элементов, описанных выше применительно к компьютеру 810, хотя на фиг.10 показано только устройство 881 памяти. Логические соединения, показанные на фиг.10, включают в себя локальную сеть (LAN) 871 и глобальную сеть (сеть широкого охвата - WAN) 873, но могут включать в себя и другие сети. Такие сетевые среды являются общеизвестными в офисах, компьютерных сетях предприятий, интранетах и в Интернет.
При использовании в сетевой среде локальной сети (LAN) компьютер 810 соединяется с локальной сетью 871 через сетевой интерфейс или адаптер 870. При использовании в сетевой среде глобальной сети (WAN) компьютер 810 в типовом случае включает в себя модем 872 или иное средство для установления связи в глобальной сети 873, такой как Интернет. Модем 872, который может быть внутренним или внешним, соединен с системной шиной 821 через интерфейс 860 пользовательского ввода или иной подходящий механизм. В сетевой среде программные модули, изображенные по отношению к компьютеру 810, или их части могут быть сохранены в удаленном устройстве памяти. В качестве примера, но не ограничения, фиг.10 иллюстрирует удаленные прикладные программы 885 как хранящиеся в устройстве 881 памяти. Следует иметь в виду, что показанные сетевые соединения приведены для примера, и что могут быть использованы и другие средства установления канала связи между компьютерами.
Как указано выше, хотя приведенные для примера варианты осуществления изобретения описаны в связи с различными вычислительными устройствами, базовые принципы могут быть применены к любому вычислительному устройству или системе.
Различные методы, описанные выше, могут быть реализованы в связи с аппаратными средствами или программным обеспечением, или, если необходимо, посредством комбинации того и другого. Таким образом, способы и устройства, соответствующие настоящему изобретению или определенным его аспектам или частям, могут принимать форму программного кода (т.е. команд), воплощенных в физической среде, такой как дискета, ПЗУ на компакт-диске, накопитель на жестких дисках или любой другой машиночитаемый носитель для хранения информации, при этом, когда программный код загружается и исполняется в машине, такой как компьютер, машина становится устройством для реализации изобретения. В случае исполнения программного кода на программируемых компьютерах, вычислительное устройство в общем случае включает процессор, носитель для хранения данных, считываемый процессором (включая энергозависимую и энергонезависимую память и/или элементы хранения информации), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Программы могут быть реализованы на языке ассемблера или машинном языке. В любом случае язык может быть языком компиляции или интерпретации и может объединяться с реализациями на аппаратных средствах.
Способы и устройство согласно настоящему изобретению могут быть также реализованы посредством коммуникаций, воплощенных в форме программного кода, который передается по некоторой среде передачи, такой как электрическая проводка или кабельная линия, посредством оптико-волоконной линии или любой другой формы передачи, причем, когда программный код принимается и загружается в машину и исполняется машиной, например, посредством EEPROM, логической матрицы, программируемого логического устройства (PLD), клиентского компьютера и т.п., машина становится устройством для осуществления изобретения. При реализации на универсальном процессоре программный код объединяется с процессором для обеспечения уникального устройства, которое функционирует для реализации функциональности настоящего изобретения. Дополнительно, любые методы хранения, используемые в связи с настоящим изобретением, могут быть комбинацией аппаратных средств и программного обеспечения.
Хотя настоящее изобретение описано в связи с предпочтительными вариантами осуществления, представленными на чертежах, понятно, что могут использоваться другие подобные варианты осуществления, или в описанные варианты осуществления могут вноситься модификации и дополнения для выполнения тех же функций настоящего изобретения без отклонения от его сущности. Поэтому изобретение не должно ограничиваться никаким одним вариантом осуществления, а должно трактоваться по своей широте и объему в соответствии с формулой изобретения.