Animated messaging
A method and apparatus that allows an animated interactive talking character to appear on a user's screen when conducting an Instant Messaging (IM) session. The character which is displayed on the user's screen is determined by a profile for the sender of the message. This allows a user to pre-select which character will be displayed on the screen of recipients of the instant message.
The present application claims priority based on Australian Provisional Application 20022950502, filed on Jul. 31, 2002, by e-Clips Intelligent Agent Technologies Pty. Ltd, entitled “Animated Messaging”. This application and its disclosure are fully incorporated in the present disclosure by reference thereto.
FIELD OF THE INVENTIONThe present invention relates to the field of instant messaging. More specifically, the present invention relates to a solution that allows for animated instant messaging.
BACKGROUND OF THE INVENTIONInstant Messaging (IM) has been growing in popularity in recent years. Commonly utilized IM formats, such as Yahoo™ Messenger, created by Yahoo™ of Sunnyvale, Calif, and Net Messenger, created by Microsoft™ of Redmoneed, Wash., allow a computer user to transmit typed information or other data (such as images and videos) to other users of the IM service almost instantaneously. Additionally, many cellular phones now have text messaging services, most utilizing the Short Message Service (SMS) and Multimedia Message Service (MMS), to allow customers to send and receive text messages.
In both formats, it is common to utilize fixed simple diagrams that can be displayed within the space of one or two characters in order to quickly convey common pieces of information. Most commonly, these simple diagrams represent emotional states of the user, such as happy being indicated by a smiley-face. As such, these symbols are sometimes known as “smileys”. In other circles, they are also known as “emoticons”. They need not be limited to emotional states, as the simple, diagram can represent any type of message, such as a “happy birthday” symbol or the like. The rigidity and lack of choice of these fixed simple diagrams, however, is a limitation.
What is needed is a solution that allows more creativity and variety in the IM environment
BRIEF DESCRIPTIONThe present invention provides a solution that allows an animated interactive talking character to appear on a user's screen when conducting an Instant Messaging (IM session. The character which is displayed on the user's screen may be determined by a profile for the sender of the message. This allows a user to pre-select which character will be displayed on the screen of recipients of the instant messages.
BRIEF DESCRIPTION OF THE DRAWINGSThe accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate one or more embodiments of the present invention and, together with the detailed description, serve to explain the principles and implementations of the invention.
In the drawings:
Embodiments of the present invention are described herein in the context of a system of computers, servers, and software. Those of ordinary skill in the art will realize that the following detailed description of the present invention is illustrative only and is not intended to be in any way limiting. Other embodiments of the present invention will readily suggest themselves to such skilled persons having the benefit of this disclosure. Reference will now be made in detail to implementations of the present invention as illustrated in the accompanying drawings. The same reference indicators will be used throughout the drawings and the following detailed description to refer to the same or like parts.
In the interest of clarity, not all of the routine features of the implementations described herein are shown and described. It will, of course, be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions must be made in order to achieve the developer's specific goals, such as compliance with application- and business-related constraints, and that these specific goals will vary from one implementation to another and from one developer to another. Moreover, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking of engineering for those of ordinary skill in the art having the benefit of this disclosure.
In accordance with the present invention, the components, process steps, and/or data structures may be implemented using various types of operating systems, computing platforms, computer programs, and/or general purpose machines. In addition, those of ordinary skill in the art will recognize that devices of a less general purpose nature, such as hardwired devices, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or the like, may also be used without departing from the scope and spirit of the inventive concepts disclosed herein.
The present invention provides a solution that allows an animated interactive talking character to appear on a user's screen when conducting an Instant Messaging (IM) session. The character which is displayed on the user's screen may be determined by a profile for the sender of the message. This allows a user to pre-select which character will be displayed on the screen of recipients of the instant messages.
An embodiment of the present invention is described for use with the Microsoft Messenger. As such, it is described as a plug in. One of ordinary skill in the art will recognize that the invention may be modified for use with other messaging systems.
In an embodiment of the present invention, a system is provided that allows users to select from many different animated personalities that will represent them during an IM session. Furthermore, an embodiment of the present invention allows users to import images into the animated personality, therefore permitting them to utilize characters that may, for example, have the user's face on it, or perhaps the face of the user's favourite celebrity. When the animated character is displayed on the recipient's screen, it may appear outside of the typical IM window, allowing user's to move the animated character to a convenient portion of the desktop.
In an embodiment of the present invention, text-to-speech software may be utilized to allow the animated character to read instant messages aloud. The animated characters may be programmed such that their lips may move along with the text being read. Furthermore, the typical “smileys” or “emoticons” may be interpreted by the character and the animation may change based on the corresponding emoticon. For example, if the sender of the IM message indicates an “angry” emoticon, the animated character may be displayed as pounding his fist against a table.
The user may select a character to act as their personality using an interface. In an embodiment of the present invention, the interface may be a web interface, such as a web page, where the user logs in with an account name and password, such as with their IM account name and password, and selects from a number of different features. Once the user has selected a character, the selection may be transmitted to the server containing the relevant information. A user's preferences may be stored in a database that may be referenced by the IM account name and a user defined password. The database may be used to hold all relevant user information and the associated character data.
The user may download the add-in using this interface as well. The add-in may connect to the IM messaging system. It may then wait for automation events that signify that an incoming message has arrived. At this point, the add-in may contact the database to look up which personality or character the message sender has chosen. The connection to the database of stored information may be indirect, as it may be retrieved through the server where a dynamically generated query to the database may be created using the incoming request. If no record is found, a default personality may be used. The personality may then be loaded onto the user's display.
In an embodiment of the present invention, when a user changes their character, the new details may be broadcast to all members of their contact lists so that remote copies of the add-in can updated the displayed character for the user. However, in the current Microsoft functionality, there is no way for this broadcast to take place, thus in some embodiments the add-in must perform the aforementioned request for every incoming message if it wants to ensure that the character displayed is the current one. In another embodiment, the request may be performed only sporadically, loading the character data from a local cache until such time as it deems an update is necessary (perhaps once a day, for example).
The character may be used to graphically output, using animated and/or static images, a visual representation of the personality defined by the sender. Additionally, pre-recorded audio clips may be utilized along with text-to-speech synthesis in order to provide an audio version or representation of the message. The audio portion may not be limited to merely an audio transcript of the written information. It may, for example, include sound effects. Perhaps a user wishes to have a symbol indicated anger cause a sound effect of a dog growling to be played by the recipient's computer system.
The add-in may parse incoming messages for a predefined list of emoticons and may match them with a predefined list of character animations or audio clips. The add-in may then request the specified animation file from the server and play it for the user.
By maintaining the character personality based on the user's log-in name, the present invention allows the character to be a consistent identify across multiple messaging platforms, so a user may log-in on their computer at work, for example, and their character will be present in their messages just as it is from their home computer.
In an embodiment of the present invention, an auto responder function may be included to allow users to enable an automated response, such as “On vacation until May 30th” to any received messages. The add-in may automatically type and submit the user-defined message back to the sender of the incoming message. Each auto-responder message may be sent pre-appended with a specially formatted string that may be used to prevent auto-responders from responding to each other.
In an embodiment of the present invention, interactive advertising may be provided through the add-in. This advertising may be maintained in a database. it may list all advertisement details. A simple interface may be provided for administrators where they can specify the details of the advertisement. The add-in may request an advertisement from the database periodically, such as every 30 minutes.
In an embodiment of the present invention, a “robot” may be provided to allow interactive communications between a user and the server. This could be used, for example, to allow web searching through IM, access to database information (such as corporate sales records in the case where IM is used at the corporate level) or interactive help.
The web searching function may be implemented by, for example, having the first six characters of an IM message read “google”. A keyword to search may be provided after the word “google” to indicate what to search. The Robot may then take this word and forward it to the Google™ search engine, created by Google, Inc. of Mountain View, Calif. and request five results. Google may then respond with details to then be deciphered by the robot. This may then be sent back to the initiating user. The sending of the results of the search need not be immediate. It may, for example, search for 24 hours and then follow up with the results. The robot may also be used for other. artificial intelligence applications. It may even be proactive, that is, initiate communication with a user before the user initiates communication.
In an embodiment of the present invention, the add-in may display a plurality of animated characters simultaneously if multiple IM sessions are being conducted. The animated characters may be placed anywhere on the display, to avoid overlap. This may also be extended to allow a “chat session” with many different animated characters representing the various senders in the chat session.
In an embodiment of the present invention, support may be provided for cellular phone or other “non-traditional” IM environments. SMS and MMS messaging may be provided as an option to subscribers. They may then provide their cellular phone information and set their auto-responder to “forward” mode to indicate that they wish their cell phone to receive their IM messages.
The add-in may then detect when a message is received and check to see if the user has set the auto-responder to forward mode. If so, then the add-in may send the message details to the server. The server may then retrieve the mobile phone number. The server may then format the message into SMS or MMS. If MMS is utilized, the server may send a thumbnail image representing the user of the incoming message and convert the message from plain text into an audio file. The message may then be forwarded to the communications gateway, which would in turn send the message into the public telephone network to be received by the user's mobile telephone.
The technology of the present invention may be modified to support other messaging services such as Yahoo, ICQ, Trillian, etc. However, there are interface issues that apply to each of these services. Generally, in order to interface with these services an Application Programming Interface (API) needs to be utilized, which exposes the features of the service to outside programmers. Thus, in that vain, some services do not provide all the needed features in their API or even simply do not provide an API at all. This problem may be overcome using several techniques. In one technique, the “handles” of all conversation windows may be stored. The add-in may then scan the contents of the conversation window every 100 ms or the like, and compare its contents with the contents of the previous scan. If the contents were different, it would indicate a new message has arrived and the difference would be parsed to extract the name of the sender and the contents of the message. These characters may then be presented to the character to visualize for the user.
In addition to a set of predefined characters from which to select, in an embodiment of the present invention the user may personalize an IM character. This allows the user to add, for example, an image of his face on the character. The personalization of the animated characters may operate in the following manner. A user interface may be provided within the application. Upon entering the “Personalization” menu area, the user may be redirected to a section of the host web site. Within this area are instructions advising a user of the processes and a means for a user to link a single image file (e.g., photograph) and upload this file to the user. The user may be provided with tools to crop the image, defining an area over the image that reduces the display area to capture only the external facial and head area. Once the upload of the user's image is complete, the user may submit the uploaded image for processing.
Once the image is submitted for processing, the images processing engine may use the area defined by the user and crop the image to that size. From this point, depending on the image processing engine deployed, the extraneous information within the image may be modified, leaving a transparent image area surrounding the facial features and head of the subject image. The image may be subsequently processed (rendered) to give the appearance of it having been “extruded”, creating the appearance of a three-dimensional image. Once the rendered image is created, the engine may use predetermined parameters to manipulate the extruded image into preconfigured positions and interpolate the movement from the base position to the new position. As a result, the image processing engine may output a series of sequential, specifically sized images that depict the rendered, extruded facial images moving from the base point to the predetermined point.
Using the previously outputted images, a further stage of processing may be performed wherein the images are introduced to a three-dimensional geometry engine. The base image that contains the rendered facial features may be aligned and mapped to three-dimensional geometry representing a character. This alignment of the image occurs to that the processed image exists to cover the face of the character in three-dimensional geometry. The other character attributes may be predefined in terms of body shape, surface such as clothing and colours and textures. The geometry engine may then be used to render out a total sequence of animated motion, and output to a series of still, sequential images. These images may conform to the standard required by the next level of image processing. These images may be named and numbered following a strict nomenclature and in accordance with a suitable colour table that enables the next processing step to occur.
The sequential rendered images from the previous step may then be compiled into a single, digital file. During this process, the images are compiled in such a way as to bring together individual static images into a series of animated sequences. The animated sequences may then be compiled into a proprietary format.
The resultant compilation may deliver several files that describe its contents and deliver connectivity to the user application. The completed files may be deposited on the server. The server may be notified of the newly created character and include the image within the character library, assigning the image to the identity of the initial image provider. The user may then be notified by email of their completed character.
Additionally, in certain circumstances it may be desirable to define animations to an “idle” state. It has been discovered that if characters appear on screen without moving for long periods of time, it becomes disconcerting to users. At the same time, small character movements at frequent/random intervals help to enhance the realism of a given characters. As a result, when creating a character, a specific animation may be assigned to an idle “state”. There may be, for example, 3 levels of idle, levels 1, 2, and 3. The first level may idle a randomly selected movement and play it on the screen. This may occur when the character has not bee used for a short period of time. If no interaction with the character continues, the agent application may begin to play animations with an assigned state of idle level 2 animations. Similarly, when the time interval of interaction with the user increases, idle 3 assigned animations may be displayed to the user, and so on.
In an embodiment of the present invention, the add-in may automatically download an idle animation and display it on the screen when a user has not interacted with the animated character for a predetermined period of time. It may similarly download a next level of idle if there continues to be no interaction.
Commonly, instant messages include acronyms for typically-used phrases, such as LTR for later, and A/S/L for Age/Sex/Location. A table may be utilized to store these acronyms and their corresponding definitions. When the add-in detects such an acronym, it may substitute the definition when delivering it to the user (via the screen or the text-to-speech synthesis).
In addition to the text-to-speech functionality described above, the present invention may also include the opposite, speech-to-text synthesis. Through such features, the add-in may receive voice commands from a user through a microphone and convert the speech to text in the instant message. Certain phrases may then be used for special commands, such as sending the instant message.
Now because of the notification process mentioned above whereby program notifies the user program that a request has been processed we were able to build a ‘sliding window’ or a dynamic array which is simply a code version of a queue. So what would happen is the user program would receive an incoming message and it would be added into this queue, rather than immediately requesting an animated character. If this request is the first or only item in the queue it would be automatically ‘popped’ off and requests an animated character. Once request had been performed it would notify the user program and the user program would (if the queue is not empty) pop off another request and repeat the cycle over again. By doing this we overcame both of the problems whereby not only can we control the order in which incoming messages are displayed to the user, but also prevent the animated characters from talking over one and another.
The process therefore as shown in
-
- 1. The invention awaits an incoming message for the instant messaging program.
- 2. Once it has been determined that an incoming message was received the invention would perform the following: -
- a. Check to see if the auto-responder is turned on
- i. If it is then a predefined message would be returned to the sender of the incoming message
- b. Extract the name of the sender
- c. Determine the unique identifier of this sender by checking in the contacts list
- d. Convert any acronyms into ‘English’
- e. Check for any emoticons and store them in a list for later.
- a. Check to see if the auto-responder is turned on
- 3. Request the details regarding the senders animated character from the server
- 4. Add the message text into the queue (as mentioned above) along with any emoticons that were extracted
- 5. Once these items in the queue get processed the invention will retrieve the emoticons for the defined animated character from the server
- 6. Load the users animated character onto the screen
- 7. Read out the message while the above step 5 is taking place
- 8. Play the emoticons
The second biggest problem to be overcome was how to determine an incoming message had arrived. The solution we decided upon was to have the invention locate the messaging windows and scan their contents at a regular interval (say 100 ms). It would then compare the contents of the messaging window with the contents of the window previously. It was determined that if the contents were different then a new message had arrived and that the different between the two would represent this message. It was then into a process of extracting the name of the sender from this message and adding its details to the queue for processing.
While embodiments and applications of this invention have been shown and described, it would be apparent to those skilled in the art having the benefit of this disclosure that many more modifications than mentioned above are possible without departing from the inventive concepts herein. The invention, therefore, is not to be restricted except in the spirit of the appended claims.
Claims
1. A method for instant messaging on a computer system, including receiving an instant message (IM) containing content from a sender; displaying an animated character associated with said sender; and delivering said content to a user through said animated character.
2-8. (canceled)
9. The method of claim 1 further including:
- periodically retrieving advertisement details from a server;
- downloading an animated character specified to represent said advertisement;
- displaying said animated character specified to represent said advertisement; and
- delivering content specified for said advertisement.
10. The method of claim 1, further including:
- sending an alert to a server;
- receiving a response containing content from said server generated by an artificial intelligence (AI) application;
- displaying an animated character associated with said AI application; and
- delivering said content to a user through said animated character associated with said AI application.
11. The method of claim 10, wherein said sending an alert includes:
- sending a message indicating that a web search is to be performed; and
- sending keywords to search in said web search.
12. The method of claim 11, wherein said delivering said content comprises delivering results of said web search.
13. The method of claim 1, further including:
- allowing the user to select from one or more predefined animated characters to be displayed on a recipient's computer system when said user sends an IM message to said recipient.
14. The method of claim 1, further including:
- allowing the user to upload an image to be used in creating an animated character to be displayed on a recipient's computer system when said user sends an IM message to said recipient.
15. A method for instant messaging on a digital communication system such as a computer system or digital telephone system or combination thereof, including:
- receiving one or more instant messages (IM) containing content from one or more senders;
- forming a queue by creating a dynamic array and inserting incoming message into said queue;
- controlling the timing of operations of actions in the queue and when required displaying an animated character associated with said sender; and
- delivering said content to a user through said animated character.
16-18. (canceled)
19. A method for managing an Instant Messaging (IM) system, including:
- receiving a request from a user for an animated character, said request including an identification of a sender of an IM message to said user;
- querying a database with said identification;
- receiving information regarding said animated character from said database; and
- forwarding said information regarding said animated character to said user.
20-30. (canceled)
31. An apparatus for instant messaging on a computer system, including:
- an IM receiver;
- an animated character displayer coupled to said IM receiver; and
- an animated character content deliverer coupled to said animated character displayer.
32-38. (canceled)
39. The apparatus of claim 31, further including:
- an advertisement details periodic retriever; and
- an animated character downloader coupled to said advertisement details periodic retriever and to said animated character content deliverer,.
40. The apparatus of claim 31, further including:
- a server alert sender;
- an artificial intelligence response receiver coupled to said animated character displayer and to said animated character content deliverer.
41. The apparatus of claim 40, wherein said server alert sender includes:
- a web search message sender; and
- a keyword sender coupled to said web search message sender.
42. (canceled)
43. An apparatus for managing an instant Messaging (IM) system, including:
- an animated character request receiver;
- a database query generator coupled to said animated character request receiver;
- an animated character database information receiver; and
- an animated character database information forwarder coupled to said animated character database information receiver.
44-49. (canceled)
50. An apparatus for instant messaging on a computer system, including:
- means for receiving an instant message (IM) containing content from a sender;
- means for displaying an animated character associated with said sender; and
- means for delivering said content to a user through said animated character.
51-61. (canceled)
62. The apparatus of claim 50, further including:
- means for allowing the user to select from one or more predefined animated characters to be displayed on a recipient's computer system when said user sends an IM message to said recipient.
63. The apparatus of claim 50, further including:
- means for allowing the user to upload an image to be used in creating an animated character to be displayed on a recipient's computer system when said user sends an IM message to said recipient.
64. An apparatus for managing an Instant Messaging (IM) system, including:
- means for receiving a request from a user for an animated character, said request including an identification of a sender of an IM message to said user;
- means for querying a database with said identification;
- means for receiving information regarding said animated character from said database; and
- means for forwarding said information regarding said animated character to said user.
65-78. (canceled)
79. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for instant messaging on a computer system, the method including:
- receiving an instant message (IM) containing content from a sender;
- displaying an animated character associated with said sender; and
- delivering said content to a user through said animated character.
80. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for managing an Instant Messaging (IM) system, the method including:
- receiving a request from a user for an animated character, said request including an identification of a sender of an IM message to said user;
- querying a database with said identification;
- receiving information regarding said animated character from said database; and
- forwarding said information regarding said animated character to said user.
Type: Application
Filed: Mar 31, 2003
Publication Date: Apr 26, 2007
Inventor: Nicholas Russell (Wheelers Hill, VICI)
Application Number: 10/522,809
International Classification: G06F 15/16 (20060101);