Abstract:
A method for specifying animation by a computer for a drawing illustration includes the steps of: loading a first image into an animation author for display on a display screen; entering an animation object into said animation author; entering into said animation author an animation path for said animation object from a starting position to an end position; and entering into said animation author a playback speed for playback of said animation.

Description:
[0001]     The present invention relates to the specification of animations and, more specifically, to a method and apparatus for specifying advanced animation styles.  
       BACKGROUND OF THE INVENTION  
       [0002]     Software tools, such as ToolBook™, are available for enabling easy creation of high-quality, standards based e-learning content without much specialized knowledge. Relatively fast authoring is thereby made possible, where the user typically simply points, clicks and drags objects onto a page. For further information on ToolBook™, see http://www.asymetrix.com/.  
       BRIEF SUMMARY OF THE INVENTION  
       [0003]     The present invention provides a method and apparatus for specifying advanced animations such as for engineering drawing illustrations using ToolBook™.  
         [0004]     It is herein recognized that support for animation in tools such as ToolBook™ is limited. Thus, ToolBook™ does not provide support for fluid/pipe type animation, animation with orientation, nor for synchronization among animation objects. Many other non-ToolBook™ based approaches such as JAVA need to specify animation using programs instead of specifications and are therefore herein recognized as not being well suited for animating complex engineering illustrations. JAVA is a programming language from Sun Microsystems designed primarily for writing software to leave on Internet Web sites and downloadable over the Internet to a computer. For further information on JAVA, see http://www.sun.com/.  
         [0005]     In accordance with an aspect of the present invention, an animation authoring tool is developed for a user for interactively drawing/specifying regular animation, animation with orientation, fluid/pipe animation, and animation with scheduling.  
         [0006]     In accordance with another aspect of the present invention, the user can specify an animation simply by creating/selecting an object and drawing its path (projectory) on the illustration. The specified animation can then be saved as a Toolbook™ book or an SGML file. SGML (Standardized Generalized Markup Language) is a text-based language for describing the content and structure of digital documents. For further information on an SGML file see, for example, SGML ISO 8879: 1986 Text and Office System-Standards Generalized Markup Language, Geneva, 1986.  
         [0007]     In accordance with another aspect of the present invention, an animation can be played by a stand-alone animation player or be included by another Toolbook™ book.  
         [0008]     In accordance with another aspect of the present invention, an animation specification is specified by drawing the paths of animation objects and setting their properties using an Animation Author which can be used to create and modify animations.  
         [0009]     In accordance with another aspect of the present invention, an animation can be saved as a Toolbook™ book or an SGML file.  
         [0010]     In accordance with another aspect of the present invention, an animation player in accordance with the principles of the invention provides VCR-type control of playing pre-saved animations.  
         [0011]     It is an object of the present invention, to provide an animation with orientation wherein an animation object changes its orientation in following its path during animation playback.  
         [0012]     In accordance with another aspect of the present invention, animation scheduling provides for animation objects to be synchronized during playback.  
         [0013]     In accordance with another aspect of the present invention, a fluid/pipe animation provides the animation effect of fluid flowing through a pipe.  
         [0014]     In accordance with another aspect of the invention, a method for specifying animation by a computer, comprises: loading a first image into an Animation Author for display on a display screen; entering an animation object into the animation author; entering into the animation author an animation path for the animation object from a starting position to an end position; and entering into the Animation Author a playback speed for playback of the animation.  
         [0015]     In accordance with another aspect of the invention, a method for specifying animation comprises repeating foregoing steps for each animation object of the animation.  
         [0016]     In accordance with another aspect of the invention, a method for specifying animation comprises the step of saving the animation as a Toolbook™ book.  
         [0017]     In accordance with another aspect of the invention, a method for specifying animation comprises the step of saving the animation as an SGML (Standardized Generalized Markup Language) file.  
         [0018]     In accordance with another aspect of the invention, a method for specifying animation comprises the steps of: calculating a new orientation for the animation object as a function of position of the animation object on the animation path; and orienting the animation object to the new orientation during the animation.  
         [0019]     In accordance with another aspect of the invention, the step of calculating a new orientation comprises: representing the animation path as a series of sampling points; at each given sampling point, calculating a deviation by comparing coordinates of the given sampling point with coordinates of the next sampling point of the series; comparing the deviation with a predetermined limit; and recalculating the orientation whenever the deviation exceeds the predetermined limit.  
         [0020]     In accordance with another aspect of the invention, a method for specifying animation, comprises the steps of: interactively entering an animation object into an animation authoring tool; entering an animation path for the object; and specifying animation of the object with orientation as a function of the animation path.  
         [0021]     In accordance with another aspect of the invention, a method for specifying animation, comprises the steps of: interactively entering an animation object comprising a pipe into an animation authoring tool; specifying a fill color for the pipe; and specifying the fill color to start filling the pipe at a beginning point thereof at the start of the animation and to fill the pipe to an ending point thereof at the end of the animation.  
         [0022]     In accordance with another aspect of the invention, a method for specifying animation, comprises the steps of: interactively entering a plurality of animation objects into an animation array in an animation authoring tool; storing properties associated with each of the animation objects in the animation array, including pre-conditions and post-conditions thereof; and scheduling the animation by an algorithm that checks each entry of an object of the plurality in the animation array and starts the object when its pre-condition is satisfied and signals the object in its post-condition.  
         [0023]     In accordance with another aspect of the invention, apparatus comprises a computer for providing animation of an animation object by the functions including: interactively entering an animation object into an animation authoring tool; entering an animation path for the object; specifying animation of the object with orientation as a function of the animation path; selectively entering a pipe animation object into an animation authoring tool; specifying a fill color for the pipe; specifying the fill color to start filling the pipe at a beginning point thereof at the start of the animation and to fill the pipe to an ending point thereof at the end of the animation; selectively entering a plurality of animation objects into an animation array in an animation authoring tool; storing properties associated with each of the animation objects in the animation array, including pre-conditions and post-conditions thereof; and scheduling the animation by an algorithm that checks each entry of an object of the plurality in the animation array and starts the object when its pre-condition is satisfied and signals the object in its post-condition.  
         [0024]     In accordance with another aspect of the invention, apparatus comprises a computer for providing animation of an animation object including: apparatus for interactively entering an animation object into an animation authoring tool; said apparatus entering an animation path for the object; specifying animation of the object with orientation as a function of the animation path; selectively entering a pipe animation object into an animation authoring tool; specifying a fill color for the pipe; apparatus for specifying the fill color to start filling the pipe at a beginning point thereof at the start of the animation and to fill the pipe to an ending point thereof at the end of the animation; selectively entering a plurality of animation objects into an animation array in an animation authoring tool; apparatus for storing properties associated with each of the animation objects in the animation array, including pre-conditions and post-conditions thereof; and scheduling the animation by an algorithm that checks each entry of an object of the plurality in the animation array and starts the object when its pre-condition is satisfied and signals the object in its post-condition.  
         [0025]     In accordance with another aspect of the invention, apparatus comprises a computer for specifying animation, comprising: apparatus for loading a first image into an animation author for display on a display screen; apparatus for entering an animation object into the animation author; apparatus for entering into the Animation Author an animation path for the animation object from a starting position to an end position; and apparatus for entering into the Animation Author a playback speed for playback of the animation. 
     
    
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS  
       [0026]     The foregoing aspects of the present invention, and other aspects to be introduced and explained below, will be more fully understood from the following detailed description of the preferred embodiments of the invention, in conjunction with the drawings, in which  
         [0027]      FIG. 1  shows an image of an object as seen in the animation editing tool in accordance with the principles of the invention;  
         [0028]      FIG. 2  shows an illustration of an animation player in accordance with the principles of the invention;  
         [0029]      FIG. 3  shows an example of an orientation process in accordance with the principles of the invention;  
         [0030]      FIG. 4  shows an example of a scheduling process in accordance with the principles of the invention;  
         [0031]      FIG. 5  shows an example of a pipe process in accordance with the principles of the invention; and  
         [0032]      FIG. 6  shows an illustration of a fluid pipe animation in accordance with the principles of the invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0033]     Animation in accordance with an embodiment of the present invention is specified using an animation editing tool shown by the exemplary embodiment in  FIG. 1 . The so-called Animation Author provides functionality for creating animation objects, drawing their paths, editing animation objects&#39; properties, and opening/creating animation files.  
         [0034]     Animation is drawn on top of a background image loaded into the Animation Author. An animation object is entered by the user, which may be by the user specifying and/or creating the animation object. For example, the animation object can be a user-drawn polygon. The user then draws the animation path of the object from its starting position to its end position. The speed of playback of the animation object can be adjusted. The process is repeated for each animation object of the animation being currently edited.  
         [0035]     In Toolbook™&#39;s animation framework, an object is always in its initial orientation during the playback. As a result, for example, a right arrow animation object still points to the right even during a time when the object is moving downwards. In accordance with the present invention, animation can be played with desired orientation. For example, an arrow object&#39;s arrow can always point to the direction in which it is moving.  
         [0036]     Animation can be played in normal mode or in scheduling mode. In normal mode, each object is played at its own pace, without a requirement of knowledge of other animation objects. While in scheduling mode, objects are synchronized based on the user&#39;s specification.  
         [0037]     In accordance with an embodiment of the present invention, a new type of animation. called fluid/type is supported. For this type of animation, the user basically draws two paths to compose a pipe. A fill-in color is then specified. The animation starts at the beginning of the pipe and moves toward the end of pipe by filling the pipe with the specified color. Once an animation is specified by drawing, it can be modified by editing an animation array which is an enhanced data structure provided by Toolbook™. Each animation object has an entry in this array and all its properties are stored associated with this entry. This animation array serves as the structure where all processing steps are performed. Once an animation is specified, it can be saved either in Toolbook™ format (a file with extension ‘anm’) or in SGML format. Either format can be loaded by the animation player shown in  FIG. 2 . The animation player provides typical VCR (Video Cassette Recorder)-type controls for playing animations. The principles of orientation, scheduling, and fluid/pipe are described next.  
         [0038]     As shown in  FIG. 3 , depending on the speed of playback of an animation object, its path can be represented as a number of sampling points. At each sampling point, the deviation thereof is calculated by comparing its coordinate with that of the next point. Thus the new orientation can be calculated and the animation object orientation be rotated accordingly. Note that the bounding box of an animation object has to be recalculated in this rotation. In  FIG. 3 , at sampling points t 1 , t 2 ,  13 , and t 4 , the animation object&#39;s orientation is changed because the deviation has exceeded a certain limit.  
         [0039]     By default, every animation object has a pre-condition and post-condition, which are null initially. Each object also has three statuses: READY, RUN, and DONE. They represent respectively, an object in its initial condition, animation being played, and animation being finished.  
         [0040]      FIG. 4  shows an example of a scheduling process, in which the following scenario is described. Object ‘a’ starts playing first. Upon its finish, objects ‘b’ and ‘c’ start to play. When both of ‘b’ and ‘c’ are finished playing, object ‘d’ starts to play. Object ‘e’ starts to play after ‘d’ is finished. Then, objects ‘a’ and ‘b’ start to play again when ‘e’ is finished. Once the animation is specified, the object arrays are as shown. For object ‘a’, there are two “pre-conditions” and “post-conditions”. The first set defines that the object “a” is started once the animation starts, since its pre-condition is ‘null”; and its post-condition “b, c” specifies that objects ‘b’ and ‘c’ are started immediately when ‘a’ has stopped. The second entry for ‘a’ states that its pre-condition is ‘e’ so that ‘a’ will be played again when ‘e’ has finished and post-condition ‘null’ means that no animation object is started when ‘a’ is stopped this time.  
         [0041]     The algorithm for scheduling basically checks each entry of an object array and starts an object when its pre-condition is satisfied and signals to the object in its post-condition. Thus each animation object is fired/played accordingly.  
         [0042]     To achieve the fluid/pipe animation, the user has to specify two paths first, as shown in  FIG. 5 . Also the fill-in color is specified. Based on the speed of animation playback, the algorithm first calculates the same number of synchronization points (s 1 , s 1 ′, etc.) along each path. Then, during animation playback, the process fills in one area at a time, from one end towards the other end. There are five synchronization points in each path in the example in  FIG. 5 . Thus four areas, area  1  to area  4 , are filled-in sequentially. A fluid/pipe animation being played is shown in  FIG. 6 . Note that this animation is included in another Toolbook™ book.  
         [0043]     As will be understood, the invention is intended for implementation by a computer, preferably a programmable digital computer.  
         [0044]     While the invention has been described by way of exemplary embodiments, it will be understood by one of skill in the art to which it pertains that various changes, substitutions, and modifications may be made without departing from the spirit of the invention which is defined by the claims following.