Please note that this page is under development IntroductionStoryMachine allows you to create dynamic arrangements of nodes and links in the virtual world Second Life(TM).These layouts may be designed to represent the relationship (the links) between concepts (the nodes). Producing such a layout allows a student to reflect on a topic. A teacher may also produce a layout as a topic summary. Layouts may be left incomplete for students to finish or contain errors that they need to correct. Students may work independently or as a small team, in the latter case optionally assigning a Level of the completed layout to each team member (permissions issues).
The layout is generated from a text notecard that is added to the Controller prim. This page desribes the instructions you can use and at the end is a simple example.
The dynamic aspect of the story can be used to enhance a presentation by having the story chat text, play sounds, etc, thereby explaining and amplifying the node and link layout. Nodes can be recoloured, relevelled and (within limits) relinked after rezzing and configured to offer notecards and load external web pages. Students can thereby use StoryMachine as the start of a journey or, indeed, generate a script that creates a journey for others.
Background, availability and some limitations Text shown in blue describes more advanced features that can be disregarded on first encounter. Updates
![]() StoryMachine in action: nodes can contain notecards and links. This particular display comprises (central) cNodes and (midway) mNodes. Tip: if you want a 2D perspective, move your avatar camera so that it looks down on the disk. Tip: node hovertext may not be captured using Snapshot so do a screen grab instead, e.g. Alt-PrtScr in Windows. Touchable objectsControllerThis is the central orange hemisphere. Touching it activates the main dialog. The Description field is also used to control features such as sound and chat volume.![]() Controller dialog.
If you select the orange central Controller, a dialog is shown. Button labels ending in +> are stories. Other buttons are as follows: Reset (and taking a StoryMachine copy)Clears the nodes.
Tip: you cannot take a copy of StoryMachine while a script is running. Select Reset and wait until the nodes and particle streams have disappeared. You should then be able to use rightclick|More...|Take Copy. There is usually a copy available here (slurl). Note that all the contents, e.g. stories, are copied at the same time so there is the potential for permissions problems.
Sound on/offPlays/does not play sounds during rezzing.
bNodeRezRezzes bNodes (see next section) in response to chat on channel 222. Note that this instructions times out after 30 seconds when you will need to select the option again. Use takes some practice and cut/paste may be a good option. Nodes created in this way are not saved in the notecard, i.e. are lost after a Reset or clearAll command, but they can be raised, lowered, tagged and participate in tag links in much the same way as normal nodes. The following rezzes a bNode labelled zeta at 90 degrees and at level 3.
Example: /222 "bNode","zeta","90","3" ![]() Using the Description field in the Controller Edit menu for Controller (General tab). The Description field can be used to control a number of features, including rezzing sounds (sound_on) and line numbers (num_on). The latter is useful in the event of lag meaning that lines of chatted text arrive in the wrong order. Disk: Larger part of the StoryMachine. Touching it activates the disk rezzing menu that controls the single object that can be stored in StoryMachine for subsequent rezzing. Nodes: see Node types for a description of node types and positions. The b-, c- and mNodes are effectively the same. aNodes differ only in (i) their shape, (iii) their inability to move in response to Find commands. Nodes can be used to store a single URL (added to the description field by a special command after the node is rezzed) and a single notecard presented via the dialog shown when the node is touched (the notecard should be given the name of the node and deposited in the Controller's inventory). Nodes with URLs or notecards can be identified using the showExtras command which displays an animated texture on the prim. Node typesaNode: wedge located on the perimeter at Level 0 (ground level)bNode: sphere located on the perimeter at Level >0 cNode: sphere located centrally at Level >0 mNode: sphere located midway between the perimeter and the centre Node namesNode names should be brief but informative. If you want to link to or from a node, the name must not contain spaces. Either use CamelCase where capital letters denote the start of new words or replace spaces with underscores. Replace commas in node names with double semi-colons.Commands and scriptsCommands are in comma-separated value (CSV) format and stored on a notecard, one command per line, in the Controller's inventory. The names of such notecards should be short, e.g. 10 characters maximum, and end with +>. The script controls the StoryMachine, typically rezzing prims and forming particle stream interactions. with parameters enclosed in quotes and separated by commas. The implementation of CSV is non-standard, however, and commas in text (as opposed to separators) must be replaced with double semi-colons, i.e. ;;.Commands are delivered via chat which can cause lag and interfere with attachments and other devices. Accordingly, it may be necessary to switch off other chat-based objects. The commands are normally whispered so that only avatars within 10 metres can see chat emitted by the Controller on channel 0 (chat on other channels is not displayed). When a script is activated, a circle of green particles indicates the extent of the chat. This makes it easier to locate StoryMachines adjacent to one another without their interfering. It is normally good practice to issue clearAll and disk commands at the start of a script. Any line that starts with # is ignored. Chat has a limit of 255 characters. Bear in mind that for any command, characters may also be used for other parameters in addition to the chatted message, i.e. the actual message will need to be less than 255 characters. Note that script commands and object names are case-sensitive. When using Chat, it is worth remembering that copyable text remains in the chat history. You can also log text chat. However, copying or logging chat from other avatars without their permission is contrary to the LL(TM) Terms of Service. Node-relateddiskSpecifies the perimeter measurement. Only tested with 360, i.e. specify positions on nodes in degrees.Example: "disk", "length", "360" clearAllClears all nodes.Example: clearAll aNode (Create aNode)command: "aNode","nodeName", "position"nodeName: see entry under Node names position: by default, a number from 1-360 that denotes the location of the aNode in a clockwise direction. Change using the disk command. Example: "aNode","alpha","90" bNode (Create bNode)command: "bNode","nodeName", "position", "Level"nodeName: see entry under Node names position: see aNode. level: integer (1-5) Example: "bNode","alpha","90","2" cNode (Create cNode)command: "cNode","nodeName", "Level"nodeName: see entry under Node names level: see bNode. Example: "cNode","alpha","2" mNode (Create mNode)command: "aNode","nodeName", "position", "Level"nodeName: see entry under Node names position: see aNode. level: see bNode. Example: "mNode","alpha","90","2" color (set the color for a node)command: "color","nodeName","colorValue"Available colors are: "red", "green", "blue", "yellow", "cyan", "magenta", "black", "white" Example: "color","alpha","blue" NB: Occasionally nodes will not pick up the right color, presumably because of messaging lag. This is annoying and not reproducible but nodes can be colored manually via the node menu if it is vital, e.g. for a snapshot. Update: a version is now available for which nodes may be set to transparent once rezzed simply by specifying "trans" as the color. This means that you can superimpose one node on another and fake the emission of two particle streams from one node (there are, of course, two nodes but one is invisible; details). showExtrasShows an animated texture if the node contains either a URL (added using the url script command) or a notecard (added to the Controller and bearing the same name as the node).Example: "showExtras" LinkslinkPrims can be conceptually linked using particle streams via the link command, creates a particle stream from the alpha node to the beta node that changes color from red to blue.Example: "link","alpha","beta","red_blue" unlinkCommand to turn particle streams offExample: "unLink","alpha","beta". unlinkAllUnlinks all nodes, i.e. turns particles off.Example: "unlinkAll" Multimedia and control
imagecommand: "image","imageName","displayDurationSeconds"imageName: unique name of an image in the inventory of the imageFrame displayboard. This means that you can have multiple imageFrames and display different images on each. However, there is no synchronisation at present between playing of media and the StoryMachine script. Example: "image","alpha","20" url command: "url","nodeName","urlAddress"Adds the specified urlAddress to node nodeName such that it is available from the node dialog after showExtras has been executed. Selecting this option displays the web page in the internal SL client or the external web browser according to the setting in preferences. Example: "url","alpha","http://bbc.co.uk/" web (presently broken?)command: "web","nodeName","urlAddress"Displays specified web page on imageFrame. Example: "web","http://bbc.co.uk" soundPlays the specified 10-second SL sound clip.Example: "play","clip1" pauseSleeps for the specified number of secondsExample: "pause","3" findTell first specified prim to locate second specified prim and move towards it. Use with discretion.Example: "find","alpha","beta" restoreReturn prim to original position after it moved to find specified prim.Example: "restore","alpha" rezObject/derezObject [tbd]
The Node dialogThis dialog comes into play once the model has finished rezzing.![]() At the moment this will change a node to a cNode, i.e. move a bNode or mNode to the centre at the same level. Tag>>This allows you to assign one of three tags to a node. The tags, tagA, tagB and tagC, have no text value but allow a further mode of typing nodes in addition to color and position. More tagging options:
Color>>Changes the node color.Delete>>Deletes the node, all tagged/untagged nodes or entire level. Note that there is no warning and no undo.Level>>Allows the user to move the node up or down a level. Can be useful for sorting, voting, etc.May also have a button labelled Note if a notecard with the same name as the node has been added to the Controller's inventory and a button labelled Web if a url command has been issued previously. Example scriptsBasicThis will chat some text and create and link two nodes called Great_Sims (a cNode) and Museums (an mNode). Note the use of underscores in place of spaces in object names and the replacement of commas with double semi-colons in text to be chatted.##Try modifying this note file and adding it to the Controller "clearAll" "disk", "length", "360" "whisper","Sim Survey" "whisper","The aim is to practise SL movement;; navigation;; image capture and inventory skills by visiting other sims and observing the way in which its purpose and content is communicated." "cNode", "Great_Sims", "3" "color","Great_Sims","red" #MUSEUMS "mNode","Museums","60","2" "color","Museums","magenta" "link","Museums","Great_Sims","magenta_white" "showExtras" "whisper","THE END" |




