Interactive content such as games and participatory stories have the potential to offer immersive experiences in which users can create or influence a dramatic plot through their actions in interactive virtual worlds. Although traditional linear narratives provide little user agency to influence events within a story, the overarching goal of interactive content is to draw the user into a virtual world in which their participation becomes an integral part of the evolution of the storyline, even affecting its outcome.
However, conventional approaches to producing interactive content have failed to overcome the challenges posed by the creation of content having a complex narrative structure while concurrently enabling significant user interaction. For example, conventionally produced interactive content such as computer games often use linear plots interspersed with isolated interactive segments, in which all users experience the same plot during every gaming session. Although techniques for producing so called “branching narratives” in which the narrative outcome depends on user decisions do exist, they typically provide relatively few opportunities for a user to influence the storyline. These limitations on user participation are imposed on conventionally produced interactive content because the authoring complexity of such content grows rapidly with the number of different story arcs and the number of interaction possibilities. As a result, conventionally produced interactive content tends to provide either strong narrative experiences with limited opportunities for user interaction. or compelling interactive experiences having simple narrative structures, but fails to provide content that is both narratively complex and highly interactive.
There are provided systems and methods for guided authoring of interactive content, substantially as shown in and/or described in connection with at least one of the figures, and as set forth more completely in the claims.
The following description contains specific information pertaining to implementations in the present disclosure. One skilled in the art will recognize that the present disclosure may he implemented in a manner different from that specifically discussed herein. The drawings in the present application and their accompanying detailed description are directed to merely exemplary implementations. Unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference numerals. Moreover, the drawings and illustrations in the present application are generally not to scale, and are not intended to correspond to actual relative dimensions.
As explained above, conventional approaches to producing interactive content have failed to overcome the challenges posed by the creation of content having a complex narrative structure while concurrently enabling significant user interaction. As noted above, conventionally produced interactive content such as computer games often use linear is plots interspersed with isolated interactive segments, in which all users experience the same plot during every gaming session. Although techniques for producing branching narratives in which the narrative outcome depends on user decisions do exist, they typically provide relatively few opportunities for a user to influence the storyline. As further explained above, these limitations on user participation are imposed on conventionally produced interactive content because the authoring complexity of such content grows rapidly with the number of different story arcs and the number of interaction possibilities. As a result, conventionally produced interactive content tends to provide either strong narrative experiences with limited opportunities for user interaction, or compelling interactive experiences having simple narrative structures, but fails to provide content that is both narratively complex and highly interactive.
The present application discloses a system and method providing guided authoring of interactive content. The solution disclosed in the present application provides an authoring platform that enables content creators or authors to produce free form interactive narratives with multiple story arcs in a modular and intuitive way. The present solution also includes techniques for implementing automation to facilitate the authoring process, rather than hinder it, which is often a result of utilizing automation in to conventional approaches to producing interactive content. The guided authoring solution disclosed by the present application enables the content creator or author to generate narrative content uninhibitedly, while relying on automation to identify and resolve inconsistencies in the content, and/or possible conflicts arising from anticipated user interaction with the content.
The present solution for providing guided authoring of interactive content includes receiving data corresponding to interactive content produced by a content creator or author, and detecting one or more inconsistencies in, and/or possible conflicts arising due to anticipated user interaction with, the interactive content. One or more solutions for resolving each of the inconsistencies and/or conflicts are identified and the inconsistencies and/or conflicts are resolved, either automatically or based on determination or selection of one or more solutions by the content creator or author. In addition, the degree of complexity of the interactive content produced by the content creator or author can be identified and reported to the content creator or author. The guided authoring of interactive content enabled by the systems and according to the methods disclosed in the present application can be utilized to produce a wide variety of interactive content. Examples of such content include games, narratives inviting participation by a user of the interactive content, and augmented reality (AR) interactive content for producing an AR interactive experience for a user of the interactive content, for example.
According to the implementation shown in
System processor 104 is configured to execute interactive content authoring engine 110 to receive data corresponding to interactive content 116 through authoring interface 112. System processor 104 is further configured to execute interactive content authoring engine 110 to use content conflict and inconsistency resolution module 114 to detect at least one of an inconsistency in the interactive content and a possible conflict arising from a user interaction with the interactive content. System processor 104 is also configured to execute interactive content authoring engine 110 to use content conflict and inconsistency resolution module 114 to identify at least one solution for resolving the inconsistency or inconsistencies and/or possible conflict(s). In addition, system processor 104 is configured to execute interactive content authoring engine 110 to use content conflict and inconsistency resolution module 114 to resolve the inconsistency or inconsistencies and/or possible conflict(s) in order to enable generation of substantially conflict and inconsistency free interactive content 116 by interactive content authoring engine 110.
In some implementations, system processor 104 is configured to execute interactive content authoring engine 110 to display the solution(s) for resolving the inconsistency or inconsistencies and/or possible conflict(s) to author 140 through authoring interface 112, and to receive an input from author 140 identifying an author determined solution or solutions for resolving the inconsistency or inconsistencies and/or possible conflict(s). In some implementations, system processor 104 is configured to execute interactive content authoring engine 110 to identify a degree of complexity of interactive content 116, and to report the degree of complexity to author 140.
It is noted that although
Referring to
Network communication link 222, and interactive content generation system 202 including system processor 204 and system memory 206 correspond in general to network communication link 122, and interactive content generation system 102 including system processor 104 and system memory 106, in
Client system 230 corresponds in general to client system 130, in
According to the exemplary implementation shown in
Client processor 234 may be the central processing unit (CPU) for client system 230, for example, in which role client processor 234 runs the operating system for client system 230 and executes interactive content authoring engine 210b. In the exemplary implementation of
Moving now to
Also shown in
According to the implementation shown in
Example implementations of the present disclosure will be further described below with reference to
With respect to BTs, the possible alternative narrative arcs of a story (story arcs) can be independently authored as sub-trees and then connected together using BT control nodes to author branching narratives. Additional developments in BT modeling facilitate the authoring of complex multi-actor interactions in a parameterizable fashion, enabling the reuse of modular plot elements, and ensures that the complexity of the narrative scales independently of the number of characters. These properties of BTs make them ideally suited for authoring complex, branching narratives. However, BTs are not suited to handle free-form interactions, nor are they suited to provide that actions and interactions between the user and characters of a story are persistent and influence progression of the story (hereinafter “state persistence”).
To meet these additional requirements of free-form interaction and state persistence, the present application introduces a new BT design formalism that will be referred to herein as Interactive Behavior Trees (IBTs) and enable the attributes of free-form interaction and state persistence absent from conventional BTs. IBTs can be divided into three independent sub-trees that are connected using a parallel control node. For example, an IBT may he expressed as:
IBT tIBT=<tui, tstate, tnarr={tiarc|tlarc . . . tmarc}, β>; Equation 1
where: (1) tnarr is the narrative definition with modular story arcs {ai}, each with their own independent sub-tree {tiarc}. (2) tui processes the user interactions. (3) tstate monitors the state of the story to determine if the current story arc needs to be changed. (4) The blackboard β stores the state of the story and its characters. (5) A fourth sub-tree tcr is added for inconsistency and conflict resolution, and will be further described below.
tnarr is responsible for handling the narrative progression and is further subdivided into sub-trees that represent separate story arcs. As a result, an assertion node is introduced, which is checked at every frame to determine whether the present arc is still active before proceeding with its execution. This extension to the story arc definition allows the story to instantaneously switch arcs at any moment in response to user interactions.
tui monitors the different interactions that are available to the user and can be easily changed depending on the application or device. Once an input is detected, it sets the corresponding state in the blackboard β, which is queried by tstate to determine the current state of the story, and the active story arc. Since tui is executed in parallel with the other sub-trees, it is possible to immediately respond and register the interactions of the user and utilize those interactions to influence the narrative outcome.
tstate contains separate sub-trees for each story arc, which check to determine if the precondition for the respective arc is satisfied. If so, β is updated to reflect the newly activated story arc, which is used to switch the active story in tnarr. It is noted that it may be possible for the preconditions of multiple story arcs to be satisfied at the same time, in which case the story arcs may be activated in order of priority (i.e., the order in which they appear in tnarr). It is also possible for multiple story arcs to be active substantially concurrently if they are operating on mutually exclusive characters and objects.
The overall design of the IBTs described above results in three sub-trees that execute independently and in parallel with one another. The blackboard β stores internal state variables (e.g., the current active story arc) to facilitate communication between the sub-trees, and maintains state persistence. tui updates β when any input signal is detected. Sub-tree tstate monitors β to check if the preconditions of a particular story arc are satisfied, and updates the present arc. Finally, each arc sub-tree in tnarr checks if it is the presently active arc before continuing. Also, the user input and the narrative execution can update the story and character state to influence the progression of the narrative at a later stage.
Independent of the specification language (BTs or any other authoring paradigm, such as story graphs), interactive narratives require the author to consider the ramifications of all possible user interactions at all points in the story, which is typically prohibitive for complex stories with many different interaction modalities. To address this challenge, the present solution provides a suite of automation tools that exploit domain knowledge so as to be able to automatically identify and resolve defects in the story that may invalidate one or more story arcs. Such defects may include invalid story specifications (i.e., inconsistencies in the story being authored in view of the different arcs available to the story), and potential user actions that may invalidate story arcs (i.e., possible conflicts due to anticipated user interaction with the story). Moreover, in some implementations, the automation tools may enable interactive content authoring engine 110/210a/210b/310 to synthesize complete stories with little or substantially no author input.
In order to use automated planning tools to facilitate the authoring process, additional domain knowledge may be required, and can be used by an intelligent system for inference. Such additional domain knowledge includes annotating semantics that characterize the attributes and relationships of objects and characters in the scene (state), the different ways in which the objects and characters can interact (affordances), and how the affordances manipulate their state. Due to the techniques disclosed in the present application, the cost of specifying domain knowledge is greatly mitigated by the ability of computational tools to consider all possible interactions between smart objects, to consider how user inputs may change the story state, and to use that information to detect and resolve invalid stories. A description of an exemplary representation of domain knowledge, which balances ease of specification and efficiency of automation, is provided below.
According to one exemplary implementation, a virtual world W in which a story unfolds includes smart objects with embedded information about how a character or participant in the story can use the object. For example, a smart object may be defined as w−<F,s> with a set of advertised affordances f ∈ F and a state s=<θ, R> that includes a set of attribute mappings θ, and a collection of pairwise relationships R with all other smart objects in W. An attribute θ(i, j) is a bit that denotes the value of the jth attribute for wi. Attributes are used to identify immutable properties of a smart object such as its role (e.g., a ball or a bear) which never changes, or dynamic properties (e.g., IsHappy) which may change during the story. A specific relationship Ra is a sparse matrix of |W|×|W|, where Ra(i, j) is a bit that denotes the current value of the ath relationship between wi and wj. For example, an IsFriendOf relationship indicates that wi is a friend of wj. Note that relationships may not be symmetric, Ra(i,j) ≠ Ra(j, i) ∀ (i, j) ∈ |W|×|W|. Each smart object's state is stored as a bit vector encoding both attributes and relationships. The overall state of the world W is defined as the compound state s={s1, s2 . . . s|W|} of all smart objects w ∈ W, which is encoded as a matrix of bit vectors, sw denotes the compound state of a set of smart objects w ⊆W.
Affordances: An affordance, f=<wo, wu, Φ, Ω> is an advertised capability of a smart object that takes the owner of that affordance wo and one or more smart object users wu, and manipulates their states. For example, a smart object such as a ball can advertise a Throw affordance, allowing another smart object to throw it. A precondition Φ:sw←{TRUE, FALSE} is an expression in conjunctive normal form on the compound state sw of w:{wo, wu} that checks if f can be executed based on their current states. A precondition is fulfilled by w if Φf(w)=TRUE. The postcondition Ω:s→s′ transforms the current state of all participants, s to S′ by executing the effects of the affordance. When an affordance fails, s′=s.
An affordance may be generally defined as:
An affordance instance h=<f, w> includes a set of smart objects w ⊂ W such that Φf(sw)=TRUE. To map affordance instances as leaf nodes of an IBT, execution of an affordance returns a status that takes three possible values. It returns Running if the affordance is still executing. If it succeeds, the postconditions Ωf are applied to the state of all smart object participants. If it fails, there is no change in state. This ensures that affordances are considered as atomic units.
A set of user interactions u ∈ U is identified that define the different ways in which a user can interact with smart objects in the world W. User interactions may be treated as special kinds of affordances where the user is one of the affordance participants. This allows any underlying planning framework to accommodate user interactions during the planning process.
Given the terminology defined above, a general problem description (P) may be further defined as P=<s0, Φg, A> including an initial state s0, a set of preconditions to satisfy the goal state Φg, and the set of affordance instances A={hi}, which may include instances of user interactions. The problem instance P can be more specifically defined in a variety of ways to resolve inconsistencies in the story, or potential conflicts due to anticipated interactions of a user with the story.
Causal links symbolize a connection between two affordance instances. They may be represented as l=>h1, φi2; h2>2. φi2 defines the ith condition in Φ2 such that φi2(ΩI(s))=TRUE.
We interpret P as a search problem in the space of possible partial plans. We define a partial plan π=<H, Φopen, L, O> where H is the set of affordance instances currently in π, Φopen is a set of pairs φopen=<h, φh> where h ∈ H and φh defines to one condition in the precondition expression Φh. L defines the set of all causal links between pairs of affordance instances in H, and O defines a set of transitive and asymmetric partial orderings of affordance instances {hi<hj} representing a “before” relation, where hi, hj ∈ H. This means that hi must occur before hj in the partial order plan. A partial plan πp is a plan that has not yet satisfied all open preconditions: |Φopen|>0, while a complete plan πc has no open preconditions: Φopen=∅.
The solution for guided authoring of interactive content disclosed in the present application utilizes a partial order planner (POP) to compute a plan πc=Plan(P) that generates an ordering of affordance instances from s0 which satisfies the preconditions Φg. While POP requires more computational power for processing a single node, it has been shown to outperform total-order planning (TOP) approaches when dealing with goals that contain sub-goals, allowing the planner to efficiently operate in the search space of partial plans. POP employs the Principle of Least Commitment where affordance execution is ordered only when strictly needed to ensure a consistent plan. This ensures efficiency when dealing with problems where there may exist multiple possible solutions that differ only in their ordering of affordance execution. In contrast, TOP strictly sequences actions when finding a solution. POP is also able to efficiently work toward identifying problem definitions where the goal state is partially specified in terms only of the desired preconditions to be satisfied.
Referring to
Process flow 501 may be performed by interactive content authoring engine 110/210a/210b/310, executed by respective processor 104/204/234/334 in the course of providing guided authoring of interactive content to an author corresponding to author 140. Referring back to
Flowchart 400 begins with receiving, by interactive content authoring engine 110/210a/210b/310 executed by respective processor 104/204/234/334, data corresponding to interactive content 116/216, through authoring interface 112/212a/212b (action 410). As noted above, interactive content 116/216 may take the form of a game, a story or other narrative inviting participation by a user, or AR interactive content for producing an AR interactive experience for the user, for example. Referring to the exemplary implementation shown in
Flowchart 400 continues with detecting at least one of an inconsistency in the interactive content and a possible conflict arising from a user interaction with the interactive content (action 420). As discussed above, due to the complexity of the interactive content enabled by the present guided authoring solution, the free-form authoring process advantageously providing the greatest creative autonomy to the author may well introduce inconsistencies in the interactive content. For example inconsistencies in objects or character relationships between the possible narrative arcs may cause attempts to switch between inconsistent arcs to result in invalidation of the storyline. Alternatively, or in addition, the otherwise advantageous free-form authoring process may introduce opportunities for a user interaction with the interactive content to interrupt or break the storyline, or otherwise invalidate the progress of the storyline toward a conclusion.
According to the implementations of the present solution for guided authoring of interactive content shown in
Flowchart 400 continues with identifying at least one solution for resolving each of the inconsistency or inconsistencies and/or possible conflict(s) detected in the interactive content (action 430). Identification of the solution(s) for resolving each of the inconsistency or inconsistencies and/or possible conflict(s) can be performed by interactive content authoring engine 110/210a/210b executed by respective processor 104/204/234, and may include use of respective content conflict and inconsistency resolution module 114/214a/214b.
In some implementations, interactive content authoring engine 110/210a/210b may be configured to use respective content conflict and inconsistency resolution module 114/214a/214b to determine a substantially optimal or otherwise desirable solution for resolving each of the detected inconsistency or inconsistencies and/or conflict(s). However, in some implementations, interactive content authoring engine 110/210a/210b may be configured to display, through respective authoring interface 112/212a/212b, the solution(s) identified using respective conflict and inconsistency resolution module 114/214a/214b. In those latter implementations, interactive content authoring engine 110/210a/210b may be further configured to receive, through respective authoring interface 112/212a/212b, an input or inputs identifying solution(s) for resolving the inconsistency or inconsistencies and/or conflict(s), as determined by an author corresponding to author 140.
In some implementations in which interactive content authoring engine 110/210a/210b is configured to receive an input or inputs identifying author determined solution(s) for resolving the inconsistency or inconsistencies and/or conflict(s), the solutions(s) may include solutions originating from the author. However, in other implementations, the author determined solution may he limited to being a solution selected by the author from among the solutions identified by interactive content authoring engine 1l0/210a/210b using respective conflict and inconsistency resolution module 114/214a/214b and displayed to the author.
Flowchart 400 continues with resolving the inconsistency or inconsistencies and/or the possible conflict(s) to enable generation of substantially conflict and inconsistency free interactive content 116/216 (action 440). As noted above, solutions for the detected inconsistency or inconsistencies and/or the possible conflict(s) can be identified and determined or selected either in conjunction with inputs from an author, or automatically by interactive content authoring engine 110/210a/210b.
In some implementations, flowchart 400 may conclude with action 440 described above. However, in other implementations, flowchart 400 may continue with identifying a degree of complexity of interactive content 116/216 (action 450). Identification of the degree of complexity of interactive content 116/216 may be performed by interactive content authoring engine 110/210a/210b executed by respective processor 104/204/234. The degree of complexity of interactive content 116/216 may be identified in terms of its cyclomatic complexity, for example, as identified by interactive content authoring engine 110/210a/210b.
Exemplary flowchart 400 can conclude with reporting the degree of complexity of interactive content 116/216 to the author of the interactive content (action 460). Referring to the implementation shown in
Thus, the systems and methods for providing guided authoring of interactive content disclosed in the present application include implementing automation tools designed to enable uninhibited free-form authorship of interactive content. For example, such automation tools may be utilized to identify inconsistencies and/or conflicts in interactive content created by an author, and to resolve those inconsistencies and/or conflicts, either automatically or with author participation. In addition, the degree of complexity of the interactive content produced by the author can be identified and reported to the author. As a result, an author can advantageously engage in creation of a wide variety of interactive content in a free-form and creative way.
From the above description it is manifest that various techniques can be used for implementing the concepts described in the present application without departing from the scope of those concepts. Moreover, while the concepts have been described with specific reference to certain implementations, a person of ordinary skill in the art would recognize that changes can be made in form and detail without departing from the scope of those concepts. As such, the described implementations are to be considered in all respects as illustrative and not restrictive. It should also be understood that the present application is not limited to the particular implementations described herein, but many rearrangements, modifications, and substitutions are possible without departing from the scope of the present disclosure.
Number | Name | Date | Kind |
---|---|---|---|
7155158 | Iuppa | Dec 2006 | B1 |
7333967 | Bringsjord | Feb 2008 | B1 |
8732766 | Fink | May 2014 | B2 |
8744855 | Rausch | Jun 2014 | B1 |
9224259 | Miller | Dec 2015 | B1 |
20070111169 | Marsella | May 2007 | A1 |
20130191728 | McKinney | Jul 2013 | A1 |
20140210710 | Shin | Jul 2014 | A1 |
Entry |
---|
Alexander Shoulson, Parameterizing Behavior Trees, Department of Computer and Information Science, University of Pennsylvania, 2011, pp. 1-12. |
Alexander Shoulson, “An Event-Centric Planning Approach for Dynamic Real-Time Narrative”, Nov. 6, 2013, pp. 1-10, http://dx.doi.org/10.1145/2522628.2522629. |
Mark O. Riedl, “From Linear Story Generation to Branching Story Graphs”, May 1, 2006, pp. 1-6. |
Ken Perlin, “Improv: A System for Scripting Interactive Actors in Virtual Worlds”, Media Research Laboratory, Department of Computer Science, New York University, Jun. 20, 1995, pp. 1-11. |
Mark O. Reidl, “Interactive Narrative: An Intelligent Systems Approach”, School of Interactive Computing, Georgia Institute of Technology Department of Computing Science, University of Alberta, May 1, 2013, pp. 1-13. |
David Thue, “Interactive Storytelling: A Player Modelling Approach”, Department of Computing Science, Department of Psychology University of Alberta, 2007, pp. 1-6. |
Michael Mateas, “A Behavior Language: Joint Action and Behavioral Idioms”, College of Computing and School of Literature, Communication and Culture Georgia Institute of Technology, 2004, pp. 1-28. |
Eric Menou, “Real-Time Character Animation Using Multi-layered Scripts and Spacetime Optimization”, 2001, pp. 135-144. |
Mei Si, Thespian: “An Architecture for Interactive Pedagogical Drama”, USC Information Sciences Institute, 4676 Admiralty Way, Marina del Rey, CA, 90292 USA, May 6, 2005, pp. 1-8 {mei,marsella,pynadath}@isi.edu. |
Number | Date | Country | |
---|---|---|---|
20160246613 A1 | Aug 2016 | US |