Method and system for synchronizing scripted animations
First Claim
1. A method for synchronizing interaction between or among two or more animations on a display, wherein the animations comprise at least a first and a second animation, the second animation comprises at least one sequence of images, and the sequence of images is playable as an action for the second animation, the method comprising:
- playing the first animation on the display;
playing the second animation on the display, which is separate from the first animation and is displayed concurrently with the first animation;
receiving a request from an application to synchronize an action of the first animation with the sequence of images playable as the action of the second animation, including receiving an identifier associated with the sequence of images playable as the action of the second animation;
blocking playback of the action of the first animation until it is determined playback of the sequence of images playable as the action of the second animation is completed; and
responsive to determining playback of the action of the second animation is completed, unblocking playback of the action of the first animation.
2 Assignments
0 Petitions
Accused Products
Abstract
An animation system provides synchronization services to synchronize actions of two more interactive user interface characters that are displayed simultaneously. The animation services allow applications to make animation requests to control the actions of characters on the display. These actions include playing one of the character'"'"'s animation sequences and generating speech output with lip-synched animation of the character'"'"'s mouth. Accessible via script commands or an Application Programming Interface, the synchronization services allow an application to control interaction between two or more characters on the display. Applications can synchronize actions by invoking straightforward commands such as Wait, Interrupt, or Stop. In response to these commands, the animation server synchronizes scheduled actions by halting playback of a character until a specified action of another character completes or halting a specified action of one character after scheduled actions for another character are completed.
-
Citations
38 Claims
-
1. A method for synchronizing interaction between or among two or more animations on a display, wherein the animations comprise at least a first and a second animation, the second animation comprises at least one sequence of images, and the sequence of images is playable as an action for the second animation, the method comprising:
-
playing the first animation on the display;
playing the second animation on the display, which is separate from the first animation and is displayed concurrently with the first animation;
receiving a request from an application to synchronize an action of the first animation with the sequence of images playable as the action of the second animation, including receiving an identifier associated with the sequence of images playable as the action of the second animation;
blocking playback of the action of the first animation until it is determined playback of the sequence of images playable as the action of the second animation is completed; and
responsive to determining playback of the action of the second animation is completed, unblocking playback of the action of the first animation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
converting the request from a script command to a function call on an animation server; and
in the animation server, processing the function call, including scheduling animation for playback.
-
-
5. The method of claim 4 wherein the animation server is capable of processing converted script commands from more than one script concurrently.
-
6. The method of claim 2 wherein the application specifies the identifier using a request object that represents an animation request from the application directed to the second animation.
-
7. The method of claim 1 wherein the first and second animations are interactive and respond to user input.
-
8. The method of claim 1 wherein the first and second animations comprise non-rectangular images that are superimposed on the display over a user interface of an executing application that is not controlling the first or second animations.
-
9. The method of claim 1 further including;
-
scheduling animation requests from the application for playback, where an animation request corresponds to an action of a specified animation and an action includes playing a sequence of images;
synchronizing animation requests by halting playback of a scheduled animation request.
-
-
10. The method of claim 9 wherein the action further includes audio output.
-
11. The method of claim 9 wherein the action further includes speech output generated from text.
-
12. The method of claim 9 wherein the action further includes lip-synched speech output, where speech output is synchronized with a sequence of images.
-
13. The method of claim 1 further comprising:
-
responsive to receiving the request from the application to synchronize an action of the first animation with the sequence of images associated with the identifier and playable as the action of the second animation, halting processing of actions for the first animation while permitting processing of actions for the second animation to continue; and
responsive to determining playback of the action of the second animation is completed, resuming processing of the first animation;
wherein blocking playback is as a result of halting processing of actions for the first animation.
-
-
14. The method of claim 1 wherein the action of the second animation is an animation sequence.
-
15. The method of claim 1 wherein the action of the second animation is specified in the request by an identifier identifying the action of the second animation.
-
16. The method of claim 15 wherein the identifier is a text name identifying the action of the second animation.
-
17. A computer-readable medium having instructions for performing a method for synchronizing interaction between or among two or more animations on a display, wherein the animations comprise at least a first and a second animation, the second animation comprises at least one sequence of images or sounds, and the sequence of images or sounds is playable as an action for the second animation, the method comprising:
-
playing the first animation on the display;
playing the second animation on the display, which is separate from the first animation and is displayed concurrently with the first animation;
receiving a request from an application to synchronize an action of the first animation with the sequence of images or sounds playable as the action of the second animation, including receiving the identifier for the sequence of images or sounds playable as the action of the second animation;
responsive to receiving the request from the application, blocking playback of the action of the first animation until it is determined playback of the sequence of images or sounds playable as the action of the second animation is completed; and
responsive to determining playback of the action of the second animation is completed, unblocking playback of the action of the first animation.
-
-
18. A method for supporting interaction between two or more animated user interface characters, the method comprising:
-
receiving requests from an application program to animate the user interface characters, where the requests correspond to schedulable actions including playback of a graphical animation sequence associated with a character;
scheduling the actions for playback;
in response to a request from the application program to synchronize playback of the first character and the second character, synchronizing playback of the scheduled actions by either halting playback of a scheduled action for one of the characters until it is determined a specified action for another character has completed or by terminating a scheduled action, wherein the specified action is specified via a reference to an animation sequence playable as the action. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
halting playback of scheduled actions in a first queue until it is determined an action specified in the synchronization request is played from a second queue.
-
-
21. The method of claim 19 including:
terminating a scheduled action in a first queue in response to the synchronization request.
-
22. The method of claim 19 including:
-
scheduling an interrupt in a first queue in response to the synchronization request;
processing requests from the first queue;
when the interrupt is processed, halting a specified action in another queue.
-
-
23. The method of claim 22 wherein the step of halting the specified action comprises deleting the specified action from the other queue.
-
24. The method of claim 18 wherein the application is a script and the synchronization and animation requests comprise script commands.
-
25. The method of claim 18 further including:
-
monitoring for an event specified by the application;
notifying the application when the specified event is detected;
receiving a synchronization request from the application that is initiated by the event;
in response to the synchronization request triggered by the event, halting playback of one of the characters.
-
-
26. An animation system on a computer readable medium, the animation system comprising:
-
animation services including an animation function for scheduling playback of an action in response to an animation request from an application that specifies the action; and
synchronization services including a first synchronization function for halting playback of a first animation until it is determined a specified action of another animation is played, wherein an action is specified to the synchronization function via a reference associated with a sequence of images playable as the action. - View Dependent Claims (27, 28, 29)
-
-
30. An animation server on a computer readable medium, The animation server comprising:
-
animation request functions for scheduling playback of an action out of a set of actions in response to an animation request from an application that specifies the action, where the set of actions includes playback of distinct, arbitrary-shaped user interface characters and lip-synched speech output of the user interface characters;
input command functions for enabling the application to specify user input that the user interface characters will be responsive to, including speech input; and
synchronization request functions including a first synchronization function for halting playback of a first user interface character until it is determined a specified action of another user interface character is played, the synchronization functions employing a queueing method for managing playback and synchronization of actions scheduled for the user interface characters such that the user interface characters can be played concurrently on a display screen.
-
-
31. An animation server for controlling a plurality of animated characters, the animation server comprising:
-
a plurality of queues, one queue for each of the animated characters, into which actions for a respective animated character are scheduled from play to animate the respective animated character, the plurality of queues comprising at least a first queue for a first animated character and a second queue for a second animated character, wherein the queues have heads;
a playing mechanism for playing actions scheduled for play in the plurality of queues; and
a surrogate wait request schedulable into the first queue to block the playing mechanism from playing actions for the first animated character when the surrogate wait request reaches the head of the first queue, wherein the surrogate wait request is associated with ark action scheduled in the second queue, wherein the surrogate wait request is neutralized upon completion of the associated action. - View Dependent Claims (32, 33, 34, 35)
the playing mechanism plays the actions as the actions reach the heads of the queues; - and
the surrogate wait request blocks the playing mechanism by halting processing of the first queue;
whereby actions scheduled after the surrogate wait request are prevented from being played until the associated action is completed.
-
-
36. A computer-implemented method of synchronizing, via a script, a first character animation processed by a first character thread with a second character animation processed by a second character thread, the method comprising:
-
specifying an animation sequence to be performed in the first animation via execution of a first script command in the script, wherein the first script command in the script stores a reference to the animation sequence for subsequent use in the script;
specifying a wait command comprising the reference to the animation sequence via execution of a second command in the script, wherein the wait command blocks execution of the second character thread processing the second character animation to suspend further action in the second character animation until it is determined the animation sequence referred to by the reference has completed;
determining the animation sequence referred to by the reference has completed; and
responsive to determining the animation sequence referred to by the reference has completed, unblocking the second character thread processing the second animation to resume further action in the second character animation.
-
-
37. Animation server for controlling a plurality of animated characters, the animation saver comprising:
-
a playing mechanism for playing actions scheduled for play;
wherein the playing mechanism supports synchronization mechanisms comprising at least wait and interrupt synchronization directives;
wherein the wait directive blocks play of an animated character until a specified action for another character has completed; and
the interrupt directive is specifiable in animation commands for a first animated character to schedule ending or preventing play of an action for another animated character upon completion of earlier-scheduled actions for tie first animated character. - View Dependent Claims (38)
wherein the stop directive is specifiable in animation commands for an animated character to immediately end or prevent play of an action for another animated character.
-
Specification