Electronic presentation application programs allow users to create high-impact dynamic slide presentations that include text, graphics, media objects, and other types of objects. Some presentation applications even provide functionality for animating the objects on a slide. Animating objects in a slide presentation can be a powerful way to attract and focus the attention of an audience. For instance, it may be possible to animate text, graphics, diagrams, charts, and media objects to focus an audience on important points in a presentation, to control the flow of information in the presentation, and to add visual flair to the presentation.
Previous presentation application programs typically provide all users with one complicated user interface (“UI”) for defining animations. While such a complicated UI is appropriate for advanced users that choreograph multiple animations and animation timelines, this type of UI is typically overly complex for the bulk of users that simply wish to define a single animation per object. As a result, previous UIs for defining object animations can be frustrating for many users.
It is with respect to these considerations and others that the disclosure made herein is presented.
Technologies are described herein for defining simple and complex animations. In particular, through the utilization of the concepts and technologies presented herein, a mechanism is provided through which a user can easily and quickly define a simple animation that includes a single animation per object. The same mechanism also provides more advanced functionality through which a user may also define a complex custom animation that includes multiple animations per object and sequence the multiple animations in a complex timeline. Transitioning between the functionality for defining a simple animation and the functionality for defining a complex animation can be done in an intuitive manner.
In one embodiment, a unified user interface is provided that includes functionality for defining both simple and complex animations for an object. In one implementation, the unified user interface includes a user interface for defining a single animation for an object. This user interface is suitable for use by users that want to easily define a simple animation on an object. The unified user interface also includes a user interface for defining a more complex animation. This user interface provides functionality for defining two or more animations on an object, for specifying the order of the animations, and for performing other advanced functions. This user interface is suitable for users wanting nearly complete control over the number of animations applied to an object and the manner in which the animations are performed.
According to embodiments, the user interface for defining a single animation for an object includes a style gallery through which a user may graphically select a single animation class to be applied to an object. The style gallery includes graphical representations of the available animations that can be selected using an appropriate user input device in order to apply a selected animation to an object. Selection of one of the graphical representations will cause a default variant of the selected animation class to be applied to a selected object. The user interface for defining a single animation may also include an effects options gallery for specifying one or more variants of a selected animation class.
According to other embodiments, the user interface for defining two or more animations for a single object includes a style gallery for selecting two or more animation classes to be applied to the object. The style gallery includes graphical representations of the available animations that can be selected using an appropriate user input device in order to apply a selected animation to an object. Selection of one of the graphical representations will cause the selected animation class to be added to a selected object in addition to other animations previously specified for the object. The user interface for defining two or more animations for a single object may also include one or more user interface controls for specifying the timing and order of the two or more animations, and an on-object user interface (“OOUI”) displayed adjacent to each object for providing a visual indication of the two or more animations and for providing an indication when one of the animations includes two or more build steps.
Through the user interfaces described above, user input is received defining one or more animations on an object. Once a user has defined the one or more animations utilizing the unified user interface provided herein, data defining the animations is transformed in order to generate the animations on a display screen of a computing system.
It should be appreciated that the above-described subject matter may also be implemented as a computer-controlled apparatus, a computer process, a computing system, as an article of manufacture such as a computer-readable medium, or in another manner. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended that this Summary be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all of the disadvantages noted in any part of this disclosure.
The following detailed description is directed to concepts and technologies for defining simple and complex animations. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of program modules.
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks, implement particular abstract data types, and transform data. Moreover, those skilled in the art will appreciate that the subject matter described herein may be practiced with or tied to other specific machines, computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements through the several figures, technologies for triggering animation actions and media object actions will be described.
Turning now to
As shown in
Once an object has been placed onto the canvas 104, one or more animation actions, which may be referred to herein as “animations”, may be defined with respect to the object. Virtually any number of animation actions may be applied to an object. Animation actions include, but are not limited to, operations that cause an object to spin, fade in, fade out, move across the canvas 104, split, descend, ascend, expand, or change color. Other types of animation actions may also be utilized.
According to one implementation, the user interface 100 includes a number of tabs 102A-102H which, when selected, will cause a corresponding user interface to be displayed for performing certain actions. For instance, selection of the tab 102E with an appropriate user interface device will cause a user interface to be provided for defining transitions between slides. Selection of the tab 102D using an appropriate user input device will cause the user interface 100 shown in
In one embodiment, the unified user interface 100 includes a user interface through which a user can easily and quickly define a simple animation that includes a single animation per object. The unified user interface 100 also provides more advanced functionality through which a user may also define a complex custom animation that includes multiple animations per object and sequence the multiple animations in a complex timeline. Transitioning between the functionality for defining a simple animation and the functionality for defining a complex animation can be done in an intuitive manner as discussed below.
According to an embodiment, the user interface for defining simple animations includes a style gallery 108 and an effects options gallery 110. The style gallery 108 and the effects options gallery 110 will be described below with respect to
In one implementation, the user interface for defining more complex animations includes the animation timing UI 114 and the custom animation UI 112. Details regarding the operation of the animation timing UI 114 and the custom animation UI 112 will be provided below with respect to
Referring now to
According to one embodiment, the graphical representations 202A-202E are icons that provide a visual hint as to functionality provided by the corresponding animation class. Alternatively, the graphical representations 202A-202E may comprise text that identifies the corresponding animation class. In another embodiment, both graphics and text may be utilized for the graphical representations 202A-202E.
In the example style gallery 108 shown in
In response to receiving the selection of one of the graphical representations 202A-202E from the style gallery 108, a default animation for the animation class corresponding to the selected graphical representation 202A-202E will be applied to the selected object on the canvas 104. In particular, the default animation will replace any and all animations that were previously defined for the selected object. If multiple objects have been selected, the default animation will replace any animations that were previously applied to the selected objects. In this manner, a single animation can be applied to a selected object with a single selection of a graphical representation 202A-202E within the style gallery 108.
Turning now to
In one embodiment, the effects options gallery 110 includes a user interface button 302 which, when selected, causes the menu 304 to be displayed. The menu 304 includes selectable representations 306A-306D for each of the variants available for the animation class that has been applied to a selected object on the canvas 104. In the example shown in
According to embodiments, a user interface button 310 is also provided within the menu 304. When the user interface button 310 is selected, a user interface may be provided for specifying additional options for the variant. For instance, with respect to the “fly-in” animation class, a dialog box is presented in one embodiment for specifying the direction of the “fly-in”, options relating to smoothing of the animation, sound, and timing. A user interface for specifying other types of options may also be provided for specifying options with respect to other animation classes.
It should be appreciated that while the user interface shown in
Referring now to
It should be appreciated that the logical operations described herein are implemented (1) as a sequence of computer implemented acts or program modules running on a computing system and/or (2) as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance and other requirements of the computing system. Accordingly, the logical operations described herein are referred to variously as states operations, structural devices, acts, or modules. These operations, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. It should also be appreciated that more or fewer operations may be performed than shown in the figures and described herein. These operations may also be performed in a different order than those described herein.
The routine 400 begins at operation 402, where an object, such as the object 116A, is placed onto the canvas 104. The routine 400 then continues to operation 404, where the object is selected using an appropriate user input device, such as a mouse, keyboard, or touch screen. As discussed above, the style gallery 108 is activated in response to the selection of an object on the canvas 104.
From operation 404, the routine 400 proceeds to operation 406 where a selection of one of the representations 202A-202E is made from within the style gallery 108. As discussed above, the graphical representations 202A-202E correspond to animation classes available for application to an object. Selection of one of the representations 202A-202E will cause the default variant for the corresponding animation class to be applied to the selected object. This occurs at operation 408. Once the animation class has been specified for the selected object, the routine 400 proceeds to operation 410 where the effects options gallery 110 may be utilized to specify a variant of the animation class specified for use with the selected object. Other options may also be specified in the manner described above. From operation 410, the routine 400 proceeds to operation 412, where it ends.
Once an animation has been specified for an object, the object may be animated in the defined manner. In order to animate the object, data that defines the manner in which the specified animations are to be performed may be transformed to generate a display of the defined animation on a computer display screen. Other types of transformations may also be performed in order to cause the defined animation to be displayed on the computer display screen.
It should be appreciated that the style gallery 108 and the effects options gallery 110 may be utilized in the manner described above to quickly and easily define a simple animation with respect to an object. In order to specify more complex animations, additional aspects of the unified user interface 100 may be utilized. In particular, the custom animation UI 112 and the animation timing UI 114 may be utilized.
As shown in
The field 502B allows a user to specify the duration of an animation. Duration refers to the total time an animation takes to complete. For motion-based animations, this field also affects the speed of the animation. The field 502C allows a user to specify a period of delay prior to the start of an animation. It should be appreciated, therefore, that a user may closely control the timing of an animation by specifying appropriate values in the fields 502A-502C.
As shown in
Turning now to
The user interface button 602A may be selected in order to add an animation to a selected object. In particular, selection of the user interface button 602A will cause the style gallery 108 to be displayed. As discussed above with respect to
When displayed in response to the selection of the user interface button 602A, the style gallery 108 can be utilized to add an animation to the animations previously defined for an object rather than replacing those animations. For instance, in response to receiving the selection of one of the graphical representations 202A-202E from the style gallery 108, a default variant of the animation class corresponding to the selected graphical representation 202A-202E will be added as an additional animation for the selected object. If multiple objects have been selected, the default animation will be added to each of the selected objects. It should be appreciated that the style gallery 108 may be utilized in this manner multiple times in order to add multiple animations to an object.
According to one embodiment, when an animation is added to an object, the newly-added animation is immediate selected for purposes of the effects options gallery 110, the animation timing UI, and the custom animation UI 112, described below. In this manner, options may be specified with respect to the newly added animation without having to perform an additional step of selected the animation.
As described briefly above with respect to
According to one implementation, the animation pane 702 includes an event list 706 that shows a time-ordered list of the animation actions that have been assigned to objects on the canvas 104. Each of the items in the event list 706 represents an individual animation and graphically conveys information regarding the type of animation action, the manner in which it will play back, and its start, end, and duration. In order to signify the start, end, and duration of each of the items, each of the items in the event list 706 may include an event timeline bar that is correlated with a universal timeline.
An appropriate user interface may be provided that allows a user to specify the desired logical relationship for each item in the event list 706. For instance, one of the items in the event list 706 may be selected using an appropriate user input device. Once an item has been selected, the user interface buttons may be utilized to move the animation corresponding to the selected item earlier or later in time, respectively, with respect to other animations. As discussed above with respect to
Turning now to
In the example shown in
In one embodiment, a visual indication is provided on an identifier 804 when the corresponding build step includes more than one animation. For instance, in the example shown in
A visual indication may also be provided on an identifier 804 when the height of the OOUI exceeds the height of the corresponding object. For instance, the identifier 804E on the object 116C includes a visual indication for indicating to a user that additional build steps are associated with the object 116C that are not represented by the OOUI. Selection of an identifier that has been collapsed in this manner will cause the animation pane 702 to be displayed.
According to embodiments, the identifiers 804 may be selected to thereby select the corresponding animation or build step. Once an animation has been selected in this manner, the user interface controls described above may be utilized to re-order the selected animation with respect to other animations. When a re-order action is performed in this manner, the identifiers 804 corresponding to the re-ordered animations may blink or be otherwise displayed in a manner to provide a visual cue that the re-ordering operation has taken place.
Referring now to
If, at operation 902, it is determined that the user interface button 602A has not been selected, the routine 900 proceeds to operation 908. At operation 908, a determination is made as to whether a collapsed OOUI, such as the identifiers 804B and 804E, has been selected. If so, the routine 900 proceeds to operation 912, where the animation pane 702 is displayed and utilized in the manner described above. If, at operation 908, it is determined that a collapsed OOUI has not been selected, the routine 900 proceeds to operation 910, where a determination is made as to whether the user interface button 602C has been selected for displaying the animation pane 702. If so, the routine 900 proceeds to operation 912, where the animation pane 702 is displayed. Otherwise, the routine 900 proceeds to operation 914, where it ends.
The computer architecture shown in
The mass storage device 1010 is connected to the CPU 1002 through a mass storage controller (not shown) connected to the bus 1004. The mass storage device 1010 and its associated computer-readable media provide non-volatile storage for the computer 1000. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available computer storage media that can be accessed by the computer 1000.
By way of example, and not limitation, computer-readable media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. For example, computer-readable media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer 1000.
According to various embodiments, the computer 1000 may operate in a networked environment using logical connections to remote computers through a network such as the network 1020. The computer 1000 may connect to the network 1020 through a network interface unit 1006 connected to the bus 1004. It should be appreciated that the network interface unit 1006 may also be utilized to connect to other types of networks and remote computer systems. The computer 1000 may also include an input/output controller 1012 for receiving and processing input from a number of other devices, including a keyboard, mouse, electronic stylus, or other type of input device 1022. Similarly, an input/output controller may provide output to a display screen, a printer, or other type of output device 1024.
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 1010 and RAM 1014 of the computer 1000, including an operating system 1018 suitable for controlling the operation of a networked desktop, laptop, or server computer. The mass storage device 1010 and RAM 1014 may also store one or more program modules. In particular, the mass storage device 1010 and the RAM 1014 may store a presentation application 1028 and data 1026 defining the animations made available through the user interfaces presented above, each of which was described in detail above with respect to
Based on the foregoing, it should be appreciated that technologies for defining both simple and complex animations are provided herein. Although the subject matter presented herein has been described in language specific to computer structural features, methodological acts that include transformations, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.