________________________________________

VRHOTWIRES v2.0

________________________________________





version 2.0













VRHOTWIRES

v2.0 Jan 2005



This is an app that allows you to add Quicktime wired actions to your qtvr movies...
 It also allows you to add sprite tracks and wire them..
 


Vrhotwires = vr hotspot wiring
________________________________________



questions? contact bcmeikle@shaw.ca
If this is a demo the movies it writes are time disabled.After 3 months they will
self-disable.


for a fully enabled version ($199 u.s.)
you can pay using kagi (credit cards, etc.) at  http://order.kagi.com/?XSK
or send money/certified checks to
Bill Meikle
Box 269 Brackendale B.C.
Canada VON 1H0

________________________________________



This App was ported to Windows using CPLAT by Ken Stahlman. The port was done by Ken Stahlman also.








________________________________________

 CONTENTS: ________________________________________

Basic Knowledge
Getting Started
the File menu
the Tools menu
the Views menu
Movie Window
Script Window
    Realtime Data Window
Movie Info Window








Basic Knowledge





QTVR panoramas and object movies have been around for about a decade now, and increasingly, authors seek to adapt them to new design situations. They want them to interact in new ways.

Apple has added a layer of commands called 'wired actions' to quicktime, to help you get that interaction, and vrhotwires helps you add these wired actions to your movies.

Wired actions are generalized commands that you can execute from vr pano or object
movie qtvr tracks, as well as from flash, sprite, qd3d and text tracks. VRHotwires 2.0 allows you to add wiring to just qtvr tracks  and sprite tracks...

A standard qtvr panorama can pan, tilt and zoom, but with vrhotwires it can do much more!

We can add sounds, animations, characters, scripts... the panoramic medium can be merged with the music, film, and video game, mediums to create something new and exciting...movies that are worlds, worlds that are symphonies.. who knows!

In traditional theatre, we break the world into set,props,actors,and script....

The panoramic medium so far has shown a set. A stage for actors to turn into time...

With vrh 2.0 we can make theatre that the audience walks around inside.

Vrhotwires attempts to deal with some of the authoring for you using it's 'tools' but in general , we expect that you'll take control and make many of the authoring decisions on your own.

vrh 3.0 will focus on the artificial intelligence required to allow you to use several tools
on the same movie. As of now, you will probably have to open the scripting window
to blend severl tools the way you want.

I've certainly made pano animations that used the directional sound tool too...

and sound labels that have a prescreen picture.

but I've also had bizzarre things happen when scripts tried to blend.

Sometimes a tool will just get you started on the script you really want to write. Each movie is unique, and often needs a unique solution in the scripting...






File Menu














Vrhotwires is a standard document based application. Each time you choose new, you create a new movie window. Drag a movie into the movie window to get started...

Or you can choose Open. That will do a 'new' automatically too. 

Open Recent is a new feature for 2.0 It keeps track of your latest movies, so you can easily find the things you've been working on. 

Close is one way to close the movie window. When the movie window closes all of it's various editor windows that happen to be open will close too...

Save is supposed to delete the movie you started with and create a new copy of the temp movie you have open with the name of the movie you started with.

Save as saves a copy of the movie with the name you give it. 


Revert to Saved is a great feature for vrh new since 1.0... it allows you to go back to the last 
version you saved out of your movie. As you go along if you save the movie at good points you 
can always go back...


Quit gets you out of the application.


You can only have one tool window open at a time to help edit your movie,
but as many views as you like...






Tools
 




Learning wired sprite programming  can be pretty complicated, and you might be in a hurry.

The "tools" menu in VRHotwires  offer you  little 'recipes' to make certain archtypical qtvr movies very easily.

Check the TOOLS individual docs on the main vrh doc page...
which takes you through demos of each of these tool types

Also you'll find  notes on how they were made with the tools...scripting info etc.
 


 
Sound
BASIC SOUND  -   Adding a sound track to your panos ...
SOUND LABELS- play a sound track when the user clicks or mouseovers a hotpsot...
DIRECTIONAL SOUND- sound tracks that play from specific locations in your pano

Prescreen
LOGOS    Adding a Logo on the 'windshield'  of your pano.
TEXT LABELS- large  text tracks that appear when you roll over a hotspot are useful...
IMAGE LABELS-    show an image over the vr  when the user rolls over a hotspot...
 

'Backbuffer'

PANO ANIMATIONS - Add an animation to the pano...
 OBJECT IN PANO    -Add a sprite that tries to stick to the pano, and has a single row object movie's video track mapped onto it and made mouse interactive...

MultiNode
 
  TRANSTIONS -    Adding linear tracks that play from your vr also adding qt realtime effects and swing zooms as transitions between nodes.



Demo Mode

DEMO MODE -make your pano drop into an auto panning 'tour' mode when no one is at the computer....

 



Check out the seperate TOOLS WEBPAGES






 

Getting started.
 

Vrhotwires is a magic vr window that you can just drag things into and they're added to the movie. Sounds, characters, logics, interactivity ....all of them can enrich your pano and make it more interesting, entertaining, or educational for the user...
 
 

To use the app:

-Double click on it.
          (have a qtvr 2.0 node ready to wire up. This means that old mpw nodes that have no qtvr track, need to be updated...)

-Drag a qtvr movie into the movie window.

-Now either

     
       -use a "tool" from the tools menu. These all generate a certain kind of script.

        -Use the scripting window to type in commands for wiring....you can just choose them from the popups and the text will type itself in (the 'script syntax' window will open too and show you a list of commands...
the one you choose in the script popups will be highlighted in the script syntax window with an example and a syntax description)

    -drag a track you want to add into the movie window too...


 
Most users will want to try the easy to use tools first of all... Check the TOOLS DOCS




SO LET'S GET WIRING...

In vrhotwires your movie is always open in front of you. Tracks and wiring are added on the fly. This should make for a spontaneous and enjoyable user
experience, as you layer sound on and listen to it while moving around adding other actions...animations, transitions...
The long term goal is an app that allows you to move around in your movie, decorating it like some kind of magical interior decorator of the digital domain... With god like power you can place characters in settings and give them rules to live by... lines to speak. See how things turn out in the environment you create....
 
You can add existing tracks to your new movie by dragging them onto the qtvr movie window. You  will be presented with an appropriate import dialog for each track type. Having a tool open will change how certain medias import...

You can use the movie info window to see what tracks are in the movie etc...These are the movie and track properties. Some of them can be set from here also.

Soon you'll be looking for info on all the triggers, actions and conditions in qt wiring, but first let's just go through the view windows 1 by 1 and get a feel for them...


  You can have as many view windows open at once as you like, while you're only allowed a single tool window at a time...






Views




VIEWS
There are 6 view windows. These allow you to see certain aspects of your movies data and in some cases edit it. You can have as many views open for a certain movie as you want, (while you can only have 1 tool open at a time)

 



MOVIE WINDOW

The movie window is opened automatically when you do a 'new' in the file menu. This is where your main movie plays. Everything starts from you opening a movie in this movie window.

You can have more than one movie window open at a time, and movies can send actions to each other.

Each movie window has 1 set of all the other tool and view windows tied to it. So if you have 5 movies open, each can have it's own scripting window for example...

If you have a linear movie open in vrhotwires you should be able to select regions of it and cut and paste them. In this way you could cut and pasted chunks of a linear movie between two movie windows...


 




 


REALTIME DATA WINDOW

The realtime data window provides some important realtime feedback, you might want to keep it open while authoring...
It shows each trigger and action in a script form, while it occurs in the movie window...So when you click that hotspot the actions that it triggers are shown in realtime.

Also it shows you the current node ID, pan, tilt, zoom, movietime, and hotspot...
The spriteID field can be useful if you have a lot of sprites and you want to be able to just click on one to see what it is...










SCRIPT WINDOW


You can see all the movie's actions in script form by choosing the 'script' view.
Once you have this window open a 'script syntax' window will also open to give you some reference for your scripting...






As you write your script you can press 'script to movie' and the movie will automatically have your script added to it. If you're not sure what all code compiled, you can press "movie to script" to see what the movie has in it.

There are three popups to help you put in the vrhotwires scripting words. When you choose one of these popup items, that text will be added to the script. This takes a lot of typing (and typing errors) out of the scripting. However you still need to add the parameter data to the script.

For example, the one on the left will give you your triggers. These all need a single number added after them. On MouseDown Hotspot 9 is what the script needs, so you have to be aware and add params where necessary. When it comes to actions the params can be quite complex and you'll want to refer to the script syntax document to get a handle on each call... There are also two large docs on scripting: a scripting reference doc that goes through each call in detail including what apple and others say about it, and a scripting tutorial... The easy to use tools can only take you so far, and indeed just using combinations of tools on a single movie will probably require some integration of the two generated scripts using the scripting window... so it's worth learning if you're serious about getting your movies exactly the way you want them...



Movie info window
 
This window gives you info about the movie and it's tracks. You can do similar things with the movie info window in vrhotwires as you can do with qtplayer's movie info window. Tracks may have their durations altered, or their properties (layer, visibility, graphics mode,size, location) Press Apply to lock in data from editable text fields.



 


Movie info: Panel Top:

The movie's name and number of frames and tracks are given at the top in non-editable text fields...

You can change the controller here. Very useful for going from vr to linear?
Be careful trying to change from the qtvr controller to the 'none' as this is impossible and may do bad things...

The movies duration is shown in a non-editable text field. QTVR movies have duration, although only adding a linear track like sound or video will allow it to play in the traditional fashion.

The movie's plugin name is a crucial thing to add to your movie if you're going to do any inter-movie with vrhotwires. This is the name that use to target a movie in your script like Movie="plugname"

If you check the full screen atom and do a save as, reopen your movi e in qtplayer to see the fullscreen effect. Very useful sometimes.


Movie info: Info Tab:



If you select a track from the list on the left, information about it will be shown in the tab panels to the right.

The info tab has a 'track name' field that you can use to type in a new track name. You have to press 'apply' for the new name to be in effect. Now you can refer to it from your scripts with Track="dogsound"

The index is non editable, it is where your selected track sits on the list. You can target a track by index using TrackIndex=5


The track type popup just shows what media type this track is.

The enabled button will turn the selected track on or off.

The layer spinner will work fine to change your tracks layer in realtime. You don't need to 'apply'.

The graphics mode is also updated in realtime when you touch the popup or choose a color...






Movie info: Time Tab:


The time tab draws a little diagram of the durations of the various tracks in you movie. The one that is selected in the list on the left will be shown in red.




You can type in a number and press apply and the selected track will get the new duration.

pressing 'same as movie, will make the selected track the same length as the movie... Press apply to make it so.

An offset, is an amount of time at the beginning of a track before the track starts. Tracks can be offset here by arbitrary amounts... press apply after entering an offset value...









Movie info: Track Sizing Tab:

Track sizing and placement can be achieved in vrhotwires using the track sizing tab.












If you type in the number you want into the 4 fields, you'll get there in one way.

If you press 'size track' the sizer track will be temporarily added to your movie. When you drag this blue region around the track will be moved to it's dimensions. Press 'done' when you're through...










Movie info: QTVR hotspot Tab:


The list on the left gives you all the hotspots in the node and their id numbers.
The radio buttons show the type of each hotspot as it is selected... As of v1.0 you cannot change a hotspot's type from here, but expect that soon.


























Movie info: Sprite Tab:


If your movie has a sprite track and it is selected then this tab shows a list of all the sprites in that track. It also shows a lot of info on that sprite and allows you to edit it in certain ways...




In this window we set a sprite's properties or default values.

The same thing could be achieved by a script like

On FrameLoaded
SpriteSetMatrix ...
SpriteSetGraphicsMode ...
SpriteSetLayer ...
etc.

end

Now from the top left:

of course you can't edit the sprite's index. That's just it's position in the list.
In a Script you can target a sprite by index by saying SpriteIndex=1

You also can't edit the sprite's id which is a number assigned to the sprite on creation.
In a Script you can target a sprite by ID by saying SpriteID=1



Why do we need two numbers? (sprite index and id) well, let's say in vrhotwires 1.2 we get the ability to cut sprites out of the list. If you cut one from the start of the list, then every other sprite's index is going to change. This is really annoying if you have a big script that targets by index. The id's won't change though. Also in 1.2 you should be able to type in an arbitrary id number here.

Visibilty... is the ability to turn a sprite off. Note that it is still clickable when it is invisible, and any actions assigned to it in a script will fire.


Layer... The default layers set by vrhotwires are the indexes, which is rather arbitrary. Perhaps a future version should just set all the sprite's layers to zero on creation... Remember 'smaller numbers are further forward'.


'Position' ... is the button you press if you want to go into "Dragable Sprites" mode. This is useful for positioning a bunch of sprites after you've dragged them into a movie window. Don't forget to press the button again to turn off positioning mode or weird things will occur. (this should have a graphic on/off state I know...) Also it may be safest to do your positioning as an early step in the sprite track creation process. Complex wiring can sometimes be lost when the properties are rewritten into the sprite track.


You can also position your selected sprite by typing co-ordinates into the editable text fields and pressing 'apply'.

The same goes for scale. This is a value like 1.5 1.5 if you want the sprite to be bigger by 1.5 times...


Image Index- As well as an index of sprites, a sprite track contains an index of images. There may be 20 sprites and only 1 image, or there may be 5 sprites and 5 images.
You can set the image you want the selected sprite to have from here. A preview of each sprites image is shown below.

The graphics mode of a sprite can finally be set correctly! Just choose the mode you want from the popup, and if it takes a color, set the color you want. (for example to make a color in your image disappear, you can set it to transparent...and set the color with the color picker that comes up when you click the color swatch)

Finally, the 'New Sprite' button creates a new sprite. Whatever image is up in the preview when you press this button is the image that your new sprite will have.
(as of v1.0 there may be an issue with the list updating after a new sprite is created. Press a different tab like 'time' and then come back to the sprite tab, and the new list will be there)










Movie info: Actions Tab:






This is the track idle for scripts that say either

On Idle Sprite x

or just

On Idle

You can also change this in qt player, it is the amount of 'speed' a track gets...

The background color is for Sprite tracks only. Click on the color swatch to set it.

Has actions is a track property of sprite tracks and vr tracks.

In v1.0 all sprite tracks are zlib compressed.



 




________________________________________


 

Have Fun!
 
 
 

Disclaimer: Any problems you have with your machine, software or life as a result of using this app are not the responsibility of Bill Meikle or Deep Forest Software...


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.