Thursday, October 29, 2015

The Story Sequencer Puts NPC Storytelling in Hands of Everyday Users

One of the most amazing scenes from Immersive Edge--an interactive story I have been working on--is this mirror scene. The couple dances in Avia Bonne's beautiful setting surrounded by mirrors. As they dance their appearance changes and the shift through each avatar identity that have taken on over the course of the story.

While this happens there is a dialogue going on, timed to match each shift in appearance.We needed a scene that would play through from beginning to end and reset to wait for the next visitor. This scene led to a collaboration of the scripters. Fred Beckhusen's NPC controller allowed ordinary users to type a list of simple actions on a notecard and NPCs would do them. Aine Caoimhe's PMAC let's non-techy users control and adjust animations and sit NPCs on them to run automatically.  Neo Cortex combined the power of Fred's NPC Controller and another script Fred used to make his controllers work in a sequence.  The result was a story sequencer specifically structured so writers can use NPCs to deliver a story.

With help from Aine Caoimhe, Neo added some code that allows the sequencer to deliver simultaneous appearance changes to a group of NPCs. We had five couples behind mirrors plus the center couple. Watch that change and you see the one in the mirror and the center happen at once. One PMAC script animates all 12 NPCs. So think about that. This is a tool with many applications. Machinima and dance shows come immediately to mind. Musical performances. Theater performances. Tour guides for your regions. With these tools, one not-so-skilled user can create master performances.

Using the the Story Sequencer is dead simple:

All of the tools that power the Immersive Edge scenes will be there free to copy so you can see how we have things set up and then build your own stories from those models. Most likely you will have to remake your NPC appearance cards because those don't transfer well across grids.

1) Looking at the controller content above you see a simple demo that will rez two characters, then sit them on a rock with a PMAC script and a couple of dances inside.

2) The controller prim contains the sequencer script, the appearances for the two characters, and the story card where you will craft your scene.

Assign Your NPCs a Number

Look at the first line, the first number 1 is the number you assign to that NPC when you spawn it. You can have up to 20 NPCs controlled by one controller. We're just using two here so I assigned Namaka the number one and if you scan down that first column every command that starts with a 1 is something Namaka will do.

Set the timing between events

The second number dictates the amount of time, in seconds, to wait before executing the next row of information in the card. This allows you to control the flow of a scene. If you are delivering a lengthy block of dialogue all at once, you want to give a few seconds for that to be read and absorbed by visitors before the next character speaks. If you deliver a three word comment, the timing before the next event can be quite short. you can set this timing as short as tenths of a second.

Make sure your punctuation is correct

Every programmer reading this blog just shuddered, but I'm an everyday author and this is how we think when we tell a story. We punctuate our scripts.
a) Each number needs a comma after
b) You need to put in a quote before you give the command.
c) Each command is preceded by an @ sign and there is no space between it and the command.
d) If a command requires specific information insert an equal sign and place info behind it. If it requires more that one information parameter, the parameters get separated by that vertical line called a pipe.
e) Every line closes with a quote.
It's a lot like the rules for punctuating dialog.

Choose a command

There are 12 possible commands I am going to talk about today for this simple demo:
@spawn=Firstname Lastname| <x,y,z>|AppearanceCardName   Rezzes an NPC at set coordinates
@say= The words you want the characters to deliver in local chatNPC dialogue

@delete deletes NPC
@touch=name_of_object_to_touch Lets an NPC activate a scripted object.
@walk=<x,y,z>  Insert the numerical coordinates for the x,y, and z positions of the destination.
@appearance=name_of_new_appearance card
@rotate=degrees_to_rotate Turns NPC to face a new direction.

That's it, four easy steps for each line you add to the story sequencer. So that first line, assigns Namaka Sun the number one and puts her at location 63, 202, 79. The next line puts Dylan in position. Fourth and fifth tell them to sit on the Dance object which is filled with an initial embrace, kiss, and a couple of dances for them to play through. All that in is the Dance object and preset so saves me programming them to do all that. This could just as easily have been poseballs I sat them on. The cool thing is that the next two lines of dialogue can happen while they are sitting on the Dance. So they talk while they dance.

Having the ability to sit characters on an object which plays through a series of animations (this could work just as well for sitting at a dinner table, eating and drinking while they chat) enables storytellers to give their audience action and dialogue at the same time.

This is easy to do. It's understandable without a degree in computer science. It's free. All of these elements make Opensimulator an excellent platform for authors and artists to learn how to use virtual reality to inspire, promote, and create their work.

Our Immersive Edge story launches Nov 7-8 at  We will have presentations at 9 and noon Pacific time both days. Each program will start with a short presentation and be followed by a guided tour of the story.

To learn more about Immersive Edge and how you can be there for the opening of the story and live demos of the tools go here:

If you've never been inworld and want to learn how to do that so you can join us, go here and follow the tutorial:  Get that done ahead of launch day.

We currently have the portals to the story turned off but I will activate them on launch day so everyone can visit for presentations or view the story scenes at their leisure.