________________________________________
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
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...
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...
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.