INTERACTIVE CREATION OF A MOVIE

A system for creating an animated and/or non-animated movie includes a database and a movie editor. The database stores at least one script and at least one modifiable, animated and/or non-animated clip. The movie editor receives and stores user input with which to build an modifiable movie following one of the at least one script and formed of selected ones of the clips using the user input, enables the user to update any of the user input, plays the modifiable movie with the updated user input, and creates a playlist from the at least one script, the clips and at least one the user input. The system also includes a genre changer generating a new playlist for the modifiable movie by selecting clips from the database belonging to a new genre using the existing user input and to providing the modifiable movie in the new genre to the movie editor.

DETAILED DESCRIPTION OF THE PRESENT INVENTION

Applicants have realized that a way of creating and personalizing a presentation is to create a personal story through animated or non-animated video. Applicants have further realized that it is possible to create such a movie by asking a user a variety of questions and concatenating together a variety of clips according to the answers received. These clips may be pre-prepared or user created and may be animated or non-animated clips as well as sound, images, text etc. It will be appreciated that such resources may be static, such as standard video clips and audio files, or may be dynamic and therefore modifiable by external properties (i.e. parametrizable with user input), such as text fields that may be changed, sound that may be added or components that may be edited.

It will also be appreciated that user input may take different forms, such as answers to questions, selection of colors; text input etc. Some questions may refer to the action in the story, while other questions may define properties of the movie and/or of the characters therein. Presenting questions may enable selections from a user.

A script may be considered a set of rules of how to manage such resources and user input to produce a movie. It will be appreciated that a single script can produce a countless number of different movies according to the different resources and user input used.

Reference is now made toFIG. 1Awhich illustrates a view of a simple generic script10, used to determine the action/story line of a simple movie. It will be appreciated that this is an example only; the present invention incorporates much more complicated story lines and scripts.

Generic script10may begin by playing clip1. When clip1has finished playing, user5may be asked a question Q1. Accordingly, the next clip to be played may depend on whatever answer is selected for question1. For example, if answer 2 (A2) is selected, the next clip played may be clip Q1A2.clip. It will be appreciated that any clip that is selected after Q1 has been asked will start to play at the same time as illustrated inFIG. 1Bwhich shows a simplified system view of how generic script10may be interpreted. Clip1may play for a time t. It will be appreciated that clips Q1A1, Q1A2 and Q1A3 (whichever is selected) may all automatically follow on from clip1at time t regardless of their length to ensure continuity regardless of the selected clip.

It will be further appreciated that each question may generate multiple possible answers and therefore multiple possible scenarios. For clarification of explanation, a simple generic script10(such as that described herein above) may be compared to a tree, of which a storyline15A may be considered a branch, as illustrated inFIG. 1Cto which reference is now made. It will be appreciated that a storyline15may evolve as more and more questions are asked and more and more clips are added to a resultant set of clips. For example, for script/tree10, one possible storyline branch15A may consist of playing the intro clip (intro.clip) followed by Q1A1.clip and then Q2AA1.clip. It will be further appreciated that a storyline15B may also be generated from the same generic script10by playing the Q1A3.clip followed by Q2CA1.clip. It will also be appreciated that tree/script10may be also considered a large network of all possible permutations of scenarios for storylines such as15A and15B and that storylines15A and15B may be considered subsets of the possible permutations. It will also be further appreciated that within generic script10, a question may lead to another question or a clip may follow on from another clip etc. It may also be appreciated that groups of pertinent questions and resultant clips may also be clustered together.

It will be appreciated that the examples provided inFIGS. 1A,1B and1C show a basic functionality of the concept of generic script10only. It will also be appreciated that storyline15may not only be a “linear” selection of questions and clips such as represented by the tree inFIG. 1Cbut may also be considered a large collection of answers and clips that may be generated according to user input, not necessarily following on from each other in a linear order. For example, one particular answer to a question may automatically generate a set of clips related to that answer.

It will be further appreciated that generic script10may be encoded in a proprietary XML-based language. The resulting program script20may contain the different permutations of clips as described herein above and may also provide additional functionality. For example, program script20may also include instructions for properties for dynamic resources within clips (described herein below) as well as definitions for user input items which are required to create the movie such as, for example, text for street signs within the movie. Program script20may also describe how to tailor the above mentioned resources into the finished movie. Program script20may be also pre-determined according to a particular theme such as a wedding theme and may contain scenarios for different genres (described in further detail herein below) within the same theme.

User input sources are any components which may provide resources and thus the properties required to tailor a movie in question, such as selection of a pertinent clip (as described hereinabove), defining properties of the characters within the movie (skin tone, clothing style, etc.), providing textual input etc. It will be appreciated that user input sources may be provided via a questionnaire with either free text or multiple choice answers and/or may be in the form of a different user interface such as a date picker for selecting a date etc. Other user input sources may also include a web interface for uploading photos, cropping them and styling them or an editor interface for editing text, fonts, color etc. It will be appreciated that all user input may be given a textual representation and may be assigned into variables to be used by program script20. It will also be appreciated that some user input items may be mandatory for creating the movie. For example, a user5may be required to select a genre for a movie, answer where they were born, name their three favorite cities in the world and upload a photo of themselves.

Resources are any type of pre-prepared media that may be embedded in a video. These may include animation clips, video clips, sound clips, images, text, web links etc. There are two types of resources, static and dynamic. Static resources may be used “as is” (in part or as a whole), such as standard video clips and audio files. Dynamic resources are resources that may be modified by a set of external properties. An example of such a dynamic resource is a text field. A text field may be changed with text, color, font etc. Other dynamic resources may include visual elements, such as skin tone, to which effects may be applied (color, rotation etc.) and sound. It will be appreciated that video/animation clips may also contain external components, whose properties are not necessarily known in advance. An example of this is a FLASH clip which may allow for a later embedding of an external image, text or video in one of its internal components.

It will be appreciated that within program script20(as described hereinabove), different user input may generate different resources. For example, the same resources may be used for different components and/or the same components may use different resources. For example an answer to the question “what year were you born in?” may generate a set of clips pertinent to the birth year. Alternatively, the same clip may appear twice within program script20, once with the property of a blue background and once with a green background.

Within the movie industry, a genre refers to types of film based on similarities in the narrative elements from which films are constructed. Films are usually categorized according to their setting, theme topic, mood, or format. It will be appreciated that a genre differs from a theme in that one theme may contain more than one genre. For example, for a wedding themed program script20, a final movie may be created in a TV show genre, telling the story of how a couple met in the format of a chat show host telling the story. An alternative genre may be film noir, telling the story how a couple met through a black and white crime style movie. It will be appreciated that each genre script20may use identical clips and user input but display them differently from each other, or may use different clips with the same user input. It will be appreciated that in each case, once user5has provided his input, the input may be used to create any genre of movie within the same theme, without user5having to provide any additional input to do so.

Reference is now made toFIGS. 2A and 2Bwhich represent the functionality of an exemplary program script20for a wedding theme in accordance with a preferred embodiment of the present invention. Some of the questions requiring input from a user5may include questions such as, was it love at first sight? What are the bride's hobbies? What are the groom's hobbies? Etc. Each question may have multiple answers. It will be appreciated that any two storylines15A,15B created from the same program script20may tell different stories according to user input and according to genre if available. It will further be appreciated that certain inputs may be mandatory and that without them, program script20may not be able to continue.

Program script20may begin by playing an introductory video clip (200), play sound (210) starting from 5 seconds into the introductory clip and then ask the question whether it was love at first sight (220)? From this point, the storyline15being created may take two paths. If it was love at first sight between the bride and groom (storyline15A) then a love video (230) may be played. Love video (230) may also be played with its color set to “favoriteColor” and with “bestfriendImage” used as its image. If a negative answer was provided to the question then storyline15B is created and the love video (230) is skipped over. Program script20, then plays sound clip hobbies_sound (240). It will be appreciated that in parallel to playing clip hobbies_sound (240), program script20may also require both the image counter (imageCounter)260and hobbies counter (hobbiesCounter)270to be set to 1. While sound clip hobbies_sound (240) continues to play, program script20may check whether there is a picture stored of the groom (280). If a positive answer is given, then program script20may go through all the available images of the groom and display each (290) for 15 seconds within placeholder pl-groom. This may be done in a cyclic procedure (loop) using image counter (260). As long as the image counter is smaller than the total number of groom images (280), the next groom image (290) is displayed for a further 15 seconds. The image counter is then incremented by 1 (300). It will be appreciated that in parallel to processes280,290and300, program script20may play the groom's hobby clips. If user5has entered multiple hobbies for the groom, the first clip relating to the first hobby is played (320). The hobbies counter then may be incremented by 1 (330). It will be appreciated that program script20will loop and play clips relating to all the groom's hobbies until the value of hobbies counter is greater than that of the groom's hobbies and there are no more hobbies to display. It will further be appreciated that processes280,290and300may loop in conjunction with processes310,320,330providing an image of the groom until there are no more groom clips and no hobbies to display. When there are no more groom images and no more hobby clips to display (340), the afterHobbies_loveFirstSight_video (350) is played. Program script20ends by playing the final_video clip (360).

It will also be appreciated that the final output of program script20and resulting movie, may contain layered resources positioned over the timeline in arbitrary or pre-determined order and not necessarily in sequence. Reference is now made toFIG. 3which illustrates such a timeline for a program script20similar to that described inFIGS. 2A and 2B. It will be appreciated, that each line represents a different resource taking part in the movie. First the intro_video (400) may be scheduled to start playing, followed by the intro_sound (410). While both the video and sound clips are still playing, the hobbies_sound clip (450) may also begin to play. This clip continues to play when both the intro_video (400) and intro_sound (410) clips stop and the groom hobby clips (in this example there are three)420,430,440start to play one after the other. It will be appreciated that while the hobby clips (420,430,440) are played, the groom image clips (460,470) are shown. Once the groom hobby clips (420,430,440) have ended, the hobbies_sound clip (450) also ends and the last groom image (470) continues to be shown. Then the afterHobbies_video clip (480) is shown followed directly by the final_video clip (490).

It will further be appreciated that program script20may also create more than one storyline15at any one time. For example, for the wedding example discussed hereinabove, a storyline15concerning the groom growing up may be created concurrently with a storyline15concerning the bride growing up. Some of the questions asked may concern the groom and some the bride with the answers stored and used accordingly. Both storylines15may then be presented to user5either one after the other or simultaneously according to program script20. Simultaneous presentation of storylines15may be performed using a split display, as discussed in more detail herein below.

Reference is now made toFIG. 4, which illustrates a system100for generating and creating an animated video70, such as described inFIGS. 1A,1B,1C,2and3prompted and controlled by user interaction and created in accordance with an embodiment of the current invention. System100may comprise a database30which may store pre prepared clips35and user data36, a movie editor50and a multilayer renderer60. It will be appreciated that system user5may access system100via internet28. It will further be appreciated that an animated video is discussed as an example and that a non-animated video may be created in the same manner.

It will be appreciated that movie editor50may have multiple functionality and may provide the GUI (graphical user interface) between user5and system100, functioning as a user input source. A user5sitting at a computer25may interact with movie editor50. It will be appreciated that any suitable computing device with an internet connection may be used instead of computer25such as a smartphone, tablet etc. User5may select a pre-defined program script20from an initial menu of options, such as the wedding themed script described herein above. It will be further appreciated that there may be an option to pick a genre of film within the chosen theme. It will also be appreciated (as discussed herein above) that program script20may use a proprietary XML-based language and may include variables, loops, conditional expressions and sub-routine blocks as illustrated inFIG. 2. Program script20may not only define how to tailor the resultant movie, but may also define rules as to how to receive input from user5. For example, program script20may define that all user input is acquired at the beginning and that user5is shown only the personalized resultant movie, or that the questions requiring input are spread throughout the timeline of program script20, generating parts of the finished movie gradually, or a combination of the two. It will be appreciated that if the questions requiring input are spread throughout the timeline, user5may view each resultant clip as it is created.

It will also be appreciated that movie editor50not only gathers user data36from user input sources but may also assign variables to them (as described herein above). Movie editor50may also read and interpret program script20, and may handle dynamic resources by resolving and applying required properties for each resource. For example, movie editor50may apply user-defined colors to relevant components, load external images and embed them in dynamic video clips. Movie editor50may also load the relevant resources and place them over a timeline (as described herein above). Movie editor50may also apply these variables to generate a list of resources to be used in animated video70.

It will be further appreciated that movie editor50may not only act as a GUI and interpret program script20, but may also be considered a player and may play to user5a resultant clip or a series of clips during its interpretation of program script20. It will also be appreciated that in order to ensure continuity of clips35, movie editor50may play clips35according to the timeline as defined inFIG. 3. It will be further appreciated that movie editor30may play to user5more than one series of clips simultaneously on a divided screen. For example the clips pertinent to the bride's childhood storyline15may be played on one side of the screen while the groom's is played on the other.

It will also be appreciated that at any time, if user5is dissatisfied with a resultant clip or the direction his storyline15is taking according to his input (for whatever method or type of input that was used), he may back track, re-enter his input and view the changed storyline15. It will be further appreciated that in this way user5may change, at any time, the entire storyline15that is being created. For example, if user5decides that the bride and groom did not meet at a coffee shop as was originally entered, but instead met at college, the whole storyline15may take a different direction. It will also be appreciated, that since the creation of storyline15is not “linear’ (as is described here in above), user5may not automatically see any changes or updates to storyline. It will be appreciated that even a small change to the user data36, such as the text used in a pertinent field used, may change several clips at different points during storyline15. It will be further appreciated that if there is an option to pick a genre within a theme, program script20may play a pre-defined default genre until a different genre is chosen using a genre changer. It will also be appreciated that there may be an option to change the genre of the film within the chosen theme at any time, i.e. at the start, middle and end of program script20.

It will be appreciated that by such a system selection of clips according to user input and by tailoring dynamic resources (as described herein above), there may be multiple ways to personalize animated video70. It will be further appreciated that each pre prepared clip35may be created from FLASH clips (SWF) containing animation plus internal dynamic objects such as placeholders which, when given the appropriate properties can embed user text and adjust its size automatically to a specified area. Therefore (as an example) street signs, restaurant names and other labels may be personalized using text. For example, if the bride and groom both enjoy eating out at a particular restaurant, the pertinent pre prepared clip35played of the restaurant may show an animation or even a photograph of the pertinent restaurant complete with the real name displayed.

It will also be appreciated that the above mentioned SWF properties may also include embedding user images in a given placeholder. Reference is now made toFIG. 5which illustrates a cartoon character with a human head80superimposed on it. It will be appreciated, in accordance with an embodiment of the present invention, that the characters of program script20may also be personalized as caricatures or as cartoon characters. For example, for the above mentioned wedding theme, both the animated bride and groom appearing in the clips may have their heads superimposed with photos of the heads of the real bride and groom for whom animated video70is being created. It will be appreciated that since movie editor50provides the GUI for user5, it may also allow for user5to upload photographs of the real bride and groom. It will also be appreciated that in this manner animals and other inanimate objects such as a doll may also be personalized. Any suitable cropping tool may be used to prepare the photographs for the placeholders.

It will be further appreciated that the above mentioned SWF properties may also adjust the coloring and other properties of an internal component. For example, an animation of a moving character may comprise different objects representing different parts of its body. For example, as illustrated inFIG. 5, the represented cartoon character has nondescript “white arms”90. Movie editor50may allow user5to choose the skin tone for the character in question from a list of pre-defined tones or may allow user5to define the color from a palette. Once chosen, the pertinent skin color may be stored in database30as a value for the skin tone property for the particular object representing the skin of the groom cartoon. In this way, other colors and/or shading in the animation may also be user selected.

It will be further appreciated that the above mentioned SWF properties may also include applying a filter or layer to a whole clip, part of a clip, or an internal component in a clip. Certain video clips may be created by superimposing many different layers of scenes and that the different layers may also be selected by user5or as a result of user5input. For example user5may be asked which hobbies a bride has and one answer may be driving. User5may also be asked what color the bride's car is, where she likes to drive, if there is a bumper sticker on the car etc. Reference is now made toFIG. 6which illustrates an instance of scene creation through layering. It will be appreciated that each layer may be pre-prepared and stored in database30and may be retrieved from database30by movie editor50according to user data36. For the above mentioned example, layer 1 may be the active animation showing a red (user5given property) car in motion on a road. Layer 2 may provide the backdrop of where the car is driving such as a forest. Layer 3 may be text on the bumper sticker such as “Antique, but ahead of you”. It will be appreciated, that once superimposed on each other, layers 1, 2 and 3 may produce the scene ofFIG. 5with a red car driving against a forest backdrop while on the backend of the car there is a bumper sticker reading “Antique, but ahead of you”. Other files such as audio may be also added to the scene as additional layers.

It will be appreciated that as such movie editor50not only obtains input from user5and play clips35but may also interpret any object properties required in order to play clip35as defined by user5according to the pertinent program script20. Movie editor50may handle dynamic resources by retrieving from database30and applying the necessary variable for each resource. For example, movie editor50may know the correct properties to present for objects such as car color and skin tone for a character as well as know how to present layers for a particular scene if required. Movie editor50may also interpret how to present clips on the time line of program script20and to allocate priority to overlapping clips if required.

Once movie editor50has finished interpreting program script20, indicating that storyline15has been completed; movie editor50may assemble together a resultant clip set for storyline15together with relevant variables into a playlist55which may be stored in database30. Movie editor50may then request approval of the resultant movie from user5via an appropriate interface. Once user5has approved the resultant movie, user5may then told to instruct multilayer renderer60, via the pertinent interface to generate animated video70according to playlist55. It will be appreciated that multilayer renderer60may be considered a “weakened version” of movie editor50, whose only purpose is to convert the movie from FLASH format into a standard video format such as AVI or WMV. It will be appreciated that other video formats may also be used in order to create a 3D movie or holographic presentation etc. Renderer60may know which pre prepared clips35and user data36(i.e. playlist55) to retrieve from database30but has no editing features and merely plays the finalized animated video70using a FLASH to video converter. It will also be appreciated, that the resulting animated video70cannot be modified in real time playback.

It will be further appreciated that in this way, a personalized animated or non-animated movie may be created where a user5may indirectly have control over the story line15and the ability to personalize different scenarios with text, music and caricatures etc. It will also be appreciated that although user5may control the direction his storyline15takes, user5is not required to perform any editing or provide extensive media input in order to create his animated personalized movie. Storyline15is ultimately created by system100using a subset of pre-prepared clips35selected and tailored using user data36, according to program script20. It will also be appreciated that countless different themes and genres may be used and that resulting movies may be created for both social and professional events.

In an alternative embodiment to the present invention, after the rendering, animated video70may be re-rendered within another genre, since no further user data36is required. Thus more versions of the movie may be created in additional genres.

Embodiments of the present invention may include apparatus for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk, including floppy disks, optical disks, magnetic-optical disks, read-only memories (ROMs), compact disc read-only memories (CD-ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, Flash memory, or any other type of media suitable for storing electronic instructions and capable of being coupled to a computer system bus.