WWDC2001 Session 401
Transcript
Kind: captions
Language: en
hello
my name is Eric LOM PA I'm a member the
quick time team the interactivity group
talked to you about what we've got going
on interactivity first off we'll go into
what we're doing enact interactivity
little later on we'll talk more about
the really new stuff when we talk about
interactivity in terms of quick time
we're talking about the ability to
provide a much more active viewing
experience than what you'd get in a TV
or a linear video or a stream or
something interactive movies tend to
hold the users attention in ways that
some other things don't interactivity is
great teaching tool get people get their
hands on the samples and examples and
whatnot
QuickTime interactive movies have a
great advantage of playing the same
whichever platform you want you've got a
self-contained thing you're not relying
on the JavaScript interpretation and
this with that browser on this or that
platform or anything it's it's a single
movie the interactivity provides a great
way to customize the user experience and
including branding and whatnot and in
many cases as we you'll see as we go on
in this talk we're talking about quick
times great strengths for integrating
the various kinds of media many other
companies do some of the kinds of media
that we do but nobody lets you throw it
all together and to really rich well
combined at almost like little
applications finally wired actions are
big key to what goes on in QuickTime
interactivity the wired actions are the
way that we let you hook up and
manipulate the various properties of any
kind of QuickTime media we talk about
media integration we have basically a
few very interactive track types that
you rely on for most interactive movies
the sprite track is for bitmap images
that are used as sprites and they can be
animated reyes ways and they also can
have wired actions put on them to turn
them into buttons or whatever QuickTime
VR is interactive in that you can I mean
it's all about what the user does with
it panning it around and zooming it also
with the hotspots you can add more
wiring and Macromedia flash provides a
really great way to bring interactive
movie elements into your your movie
although QuickTime has got plenty of
other tracks a few of which I have
listed here all of these things can be
thrown together and we have all sorts of
ways to manipulate the various
properties in the appropriate
appropriate ways getting to Wired
actions a bit you can sort of think of
it as QuickTime scripting access
although it is not a scripting method
and the application that creates the
wired actions can use whatever kind of
scripting interface it chooses to and
then compile to the wired actions for
the user it's seen as the way to script
a movie and make it do things like I
said we provide access to many of the
properties of QuickTime media track
properties and for media that makes
sense like sprites the individual
sprites or whatever and things like VR
you can set the pan angles and all we
have actions to manipulate Flash media
and it's a comprehensive growing list
there so we have a lot of stuff it's
been in here for a while and we keep
adding to it in fact here's a partial
list of what we've got the blue ones are
the new ones and there's a few more and
still some more if you'd like to be able
to read that you can go off to the
developer documentation and find a
readable version now what's new Kubik VR
shipped with a QuickTime 5 we also have
added media skins the Macromedia flash
for support whereas we had three before
new wired actions to go with a lot of
these
and also do stuff that we weren't doing
it all before server communication via
cutie lists we're going to Cuba caviar
and that there's more on the other stuff
but the big deal about cubic vr we've
had QuickTime VR for a while but the
panoramas didn't let you look at the at
the ceiling or the floor and if you did
a very high field of view they were
pretty inefficient important thing to
realize bicubic VR is that they work
just like cylinders your application
doesn't need to know anything about the
fact that it's playing cubic pano
instead of cylindrical pano they don't
replace cylinders though there are many
places where a cylindrical movie is the
appropriate choice underneath 115
degrees vertical field of view
essentially it's more efficient to have
make a cylinder if you go over that
you're more efficient with a cube and
the cube can have a limit to the tilt so
that even though you might have a big
black hole on the top the user doesn't
have to see that it can behave like a
cylinder they're backwards compatible if
you open a cubic VR movie on a pre
QuickTime 5 version of QuickTime you'll
get what looks like a cylinder and it
will just ignore the top and bottom
faces the older version of QuickTime
will think that it's will just see the
the first four faces and see those are
the tiles of the cylinder the authoring
question with with cubic VR from Apple
there's an application a free
application called make cubic now which
allows you to convert cubic or spherical
content that you've got as an image out
of whichever sort of authoring
application and turn that into cubic vr
movies the third there's been some
third-party work and we have sample code
called the VR make panel library for
exporting cubic VR movies from your
application so let's go over here and
show some cubic VR we've got
rather fresh topic here the Apple store
shot and Kubik VR a case where
everything is visible and and you know
this is maybe a case where the ceiling
is not incredibly important but the
freedom of tilt is really nice the fact
that you're not bumping your head as you
go up does make a difference just
another quick example of a cubic vr
movie
these two are provided by Janie
Fitzgerald of access images and you know
you Jets got beautiful high-speed
performance it's really slick and you're
completely into place there's no no
blocking out there that's it for that
demo go back to slides
so a third-party authoring we've got
real viz has got a stitcher which they
previously had on Windows they've done
an excellent port of it to the Mac it's
working very well in Mac OS 10 and 9
it's in beta right now and should be
shipping quite soon VR Works has had a
tool out for doing all sorts of VR
authoring for a while now their new
version supports cubic movies that if
they've been authored elsewhere to add
various put them in a multi node hot
movies add hot spots do things like that
and the Squamish Media Group's tools for
doing interesting wired things with
quick time of the art movies work just
as well with cubes and they've some of
the minimun upgraded to take advantage
of cubic things like tilt parameters and
by I said real biz is working well on OS
10 as shown in a screenshot there and
then we'll go on to Kenter Kowski who's
going to talk about our support for
adding it to your apps
thank you Eric how many of you guys out
there really love getting code from the
developer CDs trying to get it into your
applications and getting running and
linking I didn't think so it's it tends
to be a lot of work first thing that
happens is that you go into code warrior
and it needs to convert the project to
get it into a newer project then you're
missing some headers and then there's
there you have to go around finding them
well I hope to change that experience
for you today sometimes I like to
pretend like I'm a mathematician and one
of the things that mathematicians tend
to do is they all do proofs proofs of
one theorem they'll say theorem 201 is
true by virtue of theorem 200 well what
I want to do for you guys today is to
give you theorem 200 so that you can go
on to 201 and and continue on with your
value added what I'll be talking about
today is some sample code that makes
cylindrical and cubic quick time viewer
panoramas very easily and something that
you could easily add to your application
even today it takes a source is either
gee world's picture files or movie files
the other thing I'm gonna be talking
about today is an application that's
been built using this sample code this
will make Kubek QuickTime VR movies
either from cue faces or from equal
rectangular spherical picked images now
the sample code as I mentioned makes
either cylindrical or cubic QuickTime VR
movies it's library quality by that I
mean that it has a rich interface with
enough parameters in there for you so
that you don't have to actually go in
and modify that code it's it's it's got
one header that you have to interface to
you just drop your drop the other file
into your into your application link and
run it's designed to be usable as is now
here's what the
sample code generally looks like there's
a there's a lot of different kinds of
interfaces but they all take the same
general form you take a VR movie picked
orgy world convert it into a QuickTime
via our cylinder or cubic panorama and
if you happen to be making a cylindrical
panorama you have the choice of either
making the classical-style rotated
panorama or the more modern style non
rotated panorama the there is a slight
difference in the performance of the of
the non non rotated panorama in our
current rendering engine so but you can
make it either way there's also some
code in there for creating 1.0 panoramas
but we don't encourage people to make
those panoramas anymore
now in this interface there's there's
basically five parameters the first one
is where most of the complexity is
buried and that's where you set the
parameters the the the pan tilt field
field of view for the initial view the
minimum maximum all sorts of things like
that the rest of the things are the
sources you're going to have the the
source picture or tiles or something the
hot spots the fast start styles if you
want to include them or not if you don't
have them you set those to no and then
the final thing is where do you want to
save the movie so this is this is
particularly simple a simple interface
very easy to use and the main cubic
utility application was built on top of
that this uses that their code and
beyond what that has to offer its added
a few additional features it has the
ability to convert from an equal
rectangular or spherical picked for some
of those some some of you out here may
not necessarily know what that is it's
sort of like a Mercator projection of
the earth where Greenland is huge and
the North Pole is extended to a whole
line on the top instead of a point there
are some stitchers that produce that as
a native output
helmut dervishes Panorama tools being
won and real visit stitcher being
another I think real fish will also
produce a cubic vr movie directly to but
regardless if you have that equal
rectangular pick you can convert that
easily the other thing that's been added
to this application beyond that which
the sample code does it will compute an
optimum minimum and default field of
view now for the what what do we mean by
an optimum field of view I consider some
optimum to be when there's no pixel
zooming so if you have one to one pixel
zooming that's sort of like one optimum
it's one place where you can you can
where you can get the maximum resolution
and the maximum field of view to the the
next thing that it's added in that
application is that the preview is
generated to be independent of the
resolution of the original panorama so
if you have a extremely high resolution
panorama such as that made by the panel
scan camera you don't necessarily want
to have a panorama that only has one
quarter of the resolution for your
preview you want to have something much
smaller so here you get to actually
choose what the resolution is totally
independent of the resolution of the
original panorama now VR make piano has
some functions that that we don't make
available to make cubic first of all it
won't make cylindrical panoramas this is
an application that's just made for
making cubic so we aren't including that
the other thing is that it doesn't allow
you to make URL hot spots only undefined
hot spots that you would then later have
to define in your HTML code but if you
want to make your own application out of
the VR make panel sample code you can do
that and you can have URL access to that
so now I'd like to go to the to demo
machine number two and demonstrate the
make Kubik software
this has been recently carbonized so it
can run on OS 10 and as well as OS 9 and
8 now there's really just two menu
selections here one of them is the
convert menu and that's the one where
you'd be doing most of your work there's
two sections to it there is the source
file specification on top and then
there's the movie setting specification
on the bottom so first let's choose a
panorama I'm going to choose a panorama
right here which was this is a equal
rectangular spherical pict which is made
by Denis Glickman of in France and I
will open that up have that selected
you'll see it appears right there we can
change the compression settings I
usually like to set this to I usually
like to set it to 40% but 39 is close
enough we can choose to get grayscale
for the preview or blur the preview now
notice over here this section here for
generating the preview says pixels per
degree some people with panoramas
they'll say oh I have a 10,000 pixels
pixels per inch pantera well pixels per
inch doesn't make any sense for a
panorama what really matters is the
pixels per degree and as it turns out
pixels per degree happens to be put
directly proportional to the focal
length of the lens that you use so here
we specify that that can be either an
integral number like 1 or a fractional
number like 0.7 or or whatever I tend to
like something between 1/2 and 1 so
we'll generate this let's not blur it
and make a grayscale version I don't
have a hotspot file for this so we won't
select that down on the bottom we can
select our default pan and tilt so this
would be a default pan angle here's a
default tilt angle
and for the field of view over here this
has been automatically computed based on
the window size and the resolution of
the panorama that can be overridden by
clicking off this optimal fov for the
window size so if we change the window
size to be say square 480 you should see
the field of view change and what's that
what that's trying to do is to set the
field of view so that you're zooming is
going to be exactly one to one on the
pixels for the D for the default field
of view and for the minimum field view
that will be two to one so another
feature that's over here is tiling now
with a lot of you are familiar with
cylindrical panoramas where you can
specify the tiling to be 24 by 1 or 24
48 by 4 or something we can do a similar
sort of thing with cubic panoramas only
this tiling specifies the number of
tiles to be used on each face here we
can click the auto tile and in this case
it it likes it as a 1x1 tiling so we'll
just go with that but we could change it
to 2 2 1 or 2 by 1 or whatever anyway
without further ado let me make this
panorama it it chooses automatically
chooses a file name for me I can
override that if I like and here it's
it's converting that equal rectangular
to each of the faces at the moment
pretty soon it will flash by the preview
track and then the the regular track and
hopefully in this window we now have a
panorama this is tilted 50 degrees up
zoomed in this is at the optimum
resolution so if we zoom in anymore
we're gonna see the pixels blow up but
it's limited to be two to one now inside
make cubic is a set of preferences you
can say that you can set your
preferences for what you what you like
your compression parameters to be you
can
set what the optimal field of view would
be so if you don't like two to one for a
minimum you can change that so it's
automatically set that way and there's a
number of other parameters you can set
as well so let me try let me show you a
different kind of panorama one that's
made from faces so here I have a number
of faces six phases of a panorama that
was captured by Jamie Fitzgerald and
notice how that appears over here the
programers has parsed this to determine
what's similar between the file names so
it doesn't take up a lot of space over
here I do happen to have a hotspot a set
of faces over here too so we will select
those as well you can see the faces are
selected and maybe I'll make this to be
640 by 480 instead and leave that like
that so now when this creates it it'll
automatically suggest a file name for me
though it's reading the reading all the
picture files in creating everything
there is the freshly made panorama very
easy to use very powerful and and and
it's free so I'd like to go back to the
slides now oops
with a message it's easy to make your
application right QuickTime VR files
either cylindrical or cubic panoramas
you can download VR make panel dot C
code this afternoon link it in with your
application tonight and ship it tomorrow
so I'd like to return the presentation
to Eric
okay Media skins exciting new QuickTime
5 feature the essential idea behind a
media skin is it lets you have an
arbitrarily shaped movie the big deal
here is over skinning the media and not
the player we hear a lot of talk about
skins on various applications but by
skinning the media and not the player it
means that your content is customized so
that every time it plays regardless of
how the user has their QuickTime Player
set up it's going to look the same way
your message your branding whatever
travels with the media and if you make a
change and next week you want it to be a
little bit different you just change the
movie file and it's different again you
don't have to get anybody to download a
skin for the player it provides a great
branding opportunity whatever goes with
your media is always there and beyond
the arbitrary shape of the movie you've
got the full interactive tool set of
QuickTime that we're talking about here
to make really intricate and interesting
movies and also we'll be seeing some
examples so we're gonna go onto demo 4
okay let's see a basic skin movie here
we've got a skin again this got as
branding all over it
it's a sprite movie with a video track
they've built custom controls in it and
every time this movie plays and whatever
version QuickTime Player this is how
it's going to look it's locked and a
pre-designed presentation get a little
fancier than that or in some ways we've
got a skinned movie here where there's a
separate navigation bar to allow you to
select what movie you want we've got
various wired actions going on and then
upon clicking on something we open a
related skinned player that obviously
goes with it
to give you a little more ability to to
give your ear look to your content we'll
look at this movie a little more a
little later on so that's that's it for
the demos on skins just now let's go
back to slides the basic way that a
media skin works is there you have three
parts there's the source movie which is
anything that QuickTime plays any kind
of QuickTime media which is a large list
of things you've got a window mask a one
bit mass which defines the shape of the
movie and a separate one bit mass which
determines the area that the user will
be able to click on it to drag QuickTime
5 pro and the pro player there's an XML
importer designed to let you do this
very simply you create the three files
you write a little bit of XML which
defines the which source points at the
different source files you drag and drop
the source the XML file on QuickTime
Player
that creates the skinned movie and if
you save that as self-contained you
won't need to have the XML or the source
files around later there's good
information about how to do that a whole
tutorial on our site so I'm not going to
go into it right now
but I do want to mention that we've got
sample code up as well to allow you to
create media skin movies in your
application without the XML importer or
whatever and also to playback skin
movies with the skins intact in your
player application of any sort the new
wired actions we've got all sorts of
stuff going on
text tracks have gained a lot of
interactivity in QuickTime 5 we can take
user input we can have them be
manipulated via scripts we can enter
text we can trap the key the key entry
much better than ever before and you can
so you can do a combination of key in
keyboard entry from the user as well as
script based stuff and we've got a lot
of actions for setting setting there the
styles and the fonts and the colors and
hypertech's text colors and whatnot so
text tracks are very interactive now in
in QuickTime 5 we have some new
application messages which primarily are
seeing use in QuickTime Player but these
are not specifically targeted just
towards QuickTime Player basically this
is the wired action is a simple thing
which says send the app message with a
number to say which have message it is
the ones that make a big difference to
the content authoring community
especially when so we've got skins out
are the enter and exit full-screen which
people wanted a lot and the close window
that's the one that has a lot to do with
skins and by the time you get rid of the
os's window controls you've got to start
adding some in your own interface that
you're building as a content creator so
we've got that but
as an application developer you could
easily take advantage of this you could
pass different numbers than what we've
got and have your application catch them
and do whatever you need to do so this
is a another way to communicate from the
movie to the application we've added
things for doing a better job of making
movies that work well on the web
we've got Network Status and allowing
you to check on the weather the
network's up or whether I forget exactly
the number of steps but we have you can
find out before you make somebody's
modem dial you can find out whether or
not it's it's there online or not and
ask them if they want to go online or
things like that and the movie load
State is very useful we can get all of
the different steps of of loading an
HTTP movie we can get information about
that so you can know when the movie is
ready to play all the way or when it's
it's completely downloaded or whatever
with VR we've added a number of new
things which are pretty cool the we
basically now have enough actions in
there to reproduce the whole controller
so when you create your skin movie or
whatever you don't need to worry about
the fact that you don't have to be our
controller around anymore you can create
buttons for all of it or even if it's
not skin you want to just do your own
artwork we've got that in there they
also have the ability to enable and
disable hot spots which is need you can
have it any particular hot spot be
turned on or off we've got a bunch of
new math functions sort of things that
some people had created creative
workarounds for before but now they're
built in a quick time and just a whole
lot of other things like setting bass
and treble and it goes on as you saw
when I showed the slide earlier on with
zillions of actions we added something
like a hundred new actions
Macromedia Flash support has been
upgraded in this release too for
combining Macromedia Flash and video is
a pretty interesting thing to do
and quick times are the best way to do
it you can buy you can layer it up in
sophisticated ways and produce things
that you couldn't do anywhere else we've
got the full full mp3 audio support text
input is another approach to having text
input besides their text tracks who got
loading movie and loading variable a
QuickTime movie can have multiple flash
tracks so you can get involved in
intricate things there that again are
different from what you might be doing
just in Macromedia flash and we have a
number of new wired actions that are
specifically in there for working with
flash tracks for instance we can get and
set the text in a flash text field and
another really interesting one is
ability to trigger a flash button would
be a wired action and enabling you to
have very complicated
flash action scripts which you trigger
from your wired content from elsewhere
in QuickTime also you can do pretty
interesting things with macro media's
flash tool itself they with flash for
added export for QuickTime movies and
that still works quite well in flash 5
and there is no need for an upgrade
there to handle the new QuickTime 5
support so now we'll look at some flash
movies on demo 2
okay so these are Swift files here the
actual exported movies from from flash
these are the kinds of things
QuickTime on OS 10 we're giving them the
QuickTime icon but these are the sort of
things that would play directly in the
flash player and drag and drop one of
them onto QuickTime Player the importer
creates a new movie right away with a
flash track and this one's got a lot of
flash for sort of features like text
input and what else it's got some
ActionScript stuff that's doing
calculations and all based on the input
there so that's right out of the box
we're taking the the flash flash for
content and making it work completely an
example of that is duplicating movie
clips so movie clips are Flash's way of
having that sort of a hierarchy and with
unsaved time basis these things are just
work exactly the way they do in flash
and flash for added support for making
it really easy to drag elements around
so that's working great to server
communication well we've added the
QuickTime lists QT lists - to QuickTime
5 QuickTime lists are basically
hierarchical data structures you've got
various elements and attributes which
can have children and all its it
resembles XML somewhat but it is not XML
there it's an internal thing they you
can have multiple route levels and
whatnot which you cannot do an XML
there's one QT list per movie or track
so you can have multiple QT lists in a
movie we are using XML as an exchange
format to send these to and from servers
in order to make them work as XML we do
add a route element called QT list
because a QT list structure in a
QuickTime movie can have more than one
route element it's important to note
that QT lists are very useful for things
that are not related to server
communication and and I'll show you some
stuff about that in a little bit you
also we have a lot of wired actions in
there and manipulate these to where the
list can be internal to a movie when you
load it you can go on to manipulate it
via wired actions you can load them you
can send them back to the server you can
walk through the hierarchy and find out
things about them and do various stuff
so let's have some QT list demo must be
demo 4 again so to look at a basic QT
list movie that's not doing too much in
the way of or any external communication
we've got this simple little
kaleidoscope movie now this is just
doing fun little sprite things in order
to have something to build a list and
keep track of you'll see over here on
the right hand side I'm building a list
each thing that gets dragged winds up
adding an element to the list and as I
change them the appropriate elements in
the list get modified if i reset what's
on the screen i can read the list and
load it the movie does not store
everything in the list it just stores
the first ones that get dragged the rest
is generated from from the list instead
you can delete them and have it delete
the the item from the list so that's
this is a sort of an example of where
you might want to do some sort of
record-keeping within a quick time
the it's a much simpler way than having
a big long list of variable somewhere
basically taking care of it for you oh
and this is also the text track over
here on the right is or taking the the
content of the quick time list and using
some copied XML functions to create XML
from the list and put it into this text
here so that this is what it looks like
in an XML format and I've got we can
scroll the text field now that's another
new quick identified text action the
sprite this is a sprite track over here
sending events over to tell the so the
text track to scroll let's go back to
the list player again I showed this very
briefly when talking about skins but
this guy uses a quick time list too
which is probably not readable is it no
sort of so there's something called
movie list it's written in XML each
movie in the entry has has a name and
has got a description a bit of text I
call it a paragraph it didn't wind up
that way pointer to a thumbnail and a
pointer to the URL the the the source
files that are getting referenced are
all down here when I open the nav unit
movie it reads in the list and then goes
and finds out what the thumbnails were
and sticks them in and has then when
someone has read the list it's got all
that data that was in the XML file now
in a cutey list format in the movie and
we can it can use that to find out what
text to put in for the the brief
descriptions for the movies it uses that
to know what URL to call for when we
open up the movie and then change
also if we saw if we go here and then
change this have another list
similarly put together which has the
right name that's what will get fetched
locally using this is using a get list
and we have a different set of movies
something a little more up-to-date than
what we had before and again I'm just
switching around these switches which
ones they give you so this enables you
to
this enables you to put effort into a
put effort into a fancy interface movie
or set of movies which might not be the
sort of thing which is worth doing every
week on a website or something but by
you can easily change the content that
this thing is using without having
anything to do with the QuickTime movie
you upload new content you edit the
QuickTime list and the movie suddenly
behaves differently this movie is
loading a child movie into the window
there to show
whichever content there's that close
action I was talking about the other
thing you can do is with that list you
can create another interface that reads
the same list and uses it in a different
way this is a flash track which has
dumped the names of the movies or the
descriptions into flash text fields the
rollover on the right is the paragraph
rather than the brief description and
the movies rather than using the little
thumbnails we've used the actual rolling
movies in there and it's all being
masked nicely with the flash alpha
channels and we can click on those and
we get another different player which is
related to this one so this is a way to
repurpose in a way it's repurposing
content or it's just providing people
with different options for what look
they want or or anything like that it's
showing some versatility in the QT list
here or the approach to making a movie
which relies on lists to figure out how
it drives I've just come across
something that I didn't talk about
before all right we're talking about new
messages and the the we've got the thing
for going fullscreen and exiting that's
that's in here we've also got the the
closed message
and let me show you another flash movie
this we've got a flash track and we've
got some sprite stuff down here that's
made to look like it goes together we've
got editable text in here I reading that
URL and using it to load a load of movie
into a movie travel movie track here and
in fact that can be local or not we can
use a relative URL and load one of these
other movies the we've used another new
action here or or operand rather to
determine what the length of the movie
is to figure out how to make the scrub
button the scrub bar here fit the
duration of the movie let's get into
another pretty interesting demo back to
cutie lists sorry about that
go over to Michael shafts small hands
site where we have a movie that's up
right now
and in fact with Airport access going on
in here one could probably just get
right into it right now and do some more
chat this is a chat movie let's see
we're doing the demo now
it when I enter something it is sending
it off to a server that's that's at a
totally hips place totally hit the
publisher of live stage this is built in
live stage and it will in fact be this
source to this will be on an upcoming
live stage tutorial we can scrub with
the removable text track here the over
here you see the syntax that's being
used to to send messages back and forth
you see the actual QT list you can
change the slider here for how quickly
it goes and talks to the server to find
out what new messages there are one
could imagine going a lot further with
this you could easily build a chat kind
of movie that where your stream your
video stream is on one side and then
that's there so that's this I mean this
is this is the first in a server
communication demo we have here and this
one gets into some pretty interesting
options so let's go back to slides for a
little while
integration of media as I said earlier
is a really really big deal with that's
that was that must been somebody out
there okay like I said before QuickTime
does a lot of interesting individual
things and we even have competition on
some of those things but nobody lets you
put it all together to put to make these
really complicated or not so complicated
demos but nobody lets you add it
together the same way these complex
movies have such a power to hold the
users attention you can build quizzes
you can build games you can do all sorts
of things you can wind up with
self-contained interactive experiences
that play anywhere you can play them in
the player you can play them in your in
a browser you can play them in your own
application
and you can be pretty sure that they're
gonna look the same all over the place
in different applicant places the
platform and browser issues that are
much less of a deal than other ways of
doing this sort of thing so now we'll go
back into demos and look at some highly
integrated movies so be on demo 4 okay
we've got another demo involving Janie
Fitzgerald's work this is also
collaborators on this where Robert West
and Michael Schaff it's Roberts
interface Janie's VR and Michael's
wiring
we've got rollover buttons here a nice
skin and we've even got some sort of
help text on your hotspots at times
this is another movie which will be put
together as a tutorial for the new
version of live stage it will be
available on their CD eventually and for
the live stage 3 as well as probably on
their site the we've got a sprite based
compass up here which is reading pan
angles from the the movie and updating
we've got the sprite layers got these
buttons which are are in some cases
communicating to the VR and telling it
to move around we can go full screen at
the the mask that overlays the panorama
has done with a nice alpha channel so
it's really smooth and rounded and again
it it's just it's customized the user
experience to this content completely
it's a very appropriate way to be using
the stuff how it is directional audio
paying attention to the pan angle for
how the audio is doing
a very nice well integrated highly
interactive experience we do a lot of
things people do a lot of really
fascinating things in in in the browser
this is a greenpeace org site it done by
ec media up into vancouver it's popping
different quicktime movies into
different places to all work together we
can we've got a quicktime vr movie here
that's unwrapped and a flat it it winds
up with a panel zoomable map and we can
look at the map here and find out where
the different hotspots are that sends
message to the quicktime movie up here
the top half of the movie is of the
browser window is one movie the bottom
half for the control bar and all is
another movie the movie up here is the
panorama is also there's also a picture
track there which is making these other
other things show up on the side the
images let's find another one we click
on it we get yet another movie in
another movie this is all one QuickTime
movie you know HTML here it's there's a
slideshow we can leave in an autoplay or
we can choose which slide we want to
look at we can speed up slow it down the
text is drawn with a text track we've
got to close here that actually is doing
it via JavaScript so that we can tell
the browser to close the window and
we've got things like the zoom in and
out and they've got the ever-popular
compass down there in this case the
panning movie is communicating with a
different movie for the place where the
where that's going on so you're seeing
in term of e communication between a lot
of different movies here
which is which is pretty cool I believe
that we can jump to we can jump to new
nodes either via via the map or the
hotspots in there there's a ton of
things in here it's Greenpeace org slash
Great Bear if anyone wants to check it
out it's it's packed with content oh and
the the audio in the background is a
streaming tract so it's a good half hour
long birdsong thing you don't get one
teeny little loop it's it's all
unchanging it's it's unrep eating
another DC media demo this is a sort of
a distance learning
we've got gentlemen here from Electronic
Arts talking about the ways that they
get there they use academic research to
figure out what to put into their games
ideas and he's talking about a topic in
a very general sort of way
he'll occasionally talk about topics
which are interesting without going to
greater detail but we can go and click
on those bicubic surface is a to get
more information about the topic if you
do that it's got illustrations and text
and all and the background movie has
paused we say back the Becker movie
picks up right away this is done with
with QuickTime movie tracks these are in
movies which are embedded inside of
other movies which which makes for a lot
of flexibility in saying the point that
this movie is playing it doesn't change
the point this two tracks in the same
movie the no and another one from EC
media these guys are very creative doing
a lot this is interface built just about
entirely out of flash the they've got a
lot of rollover stuff here they've got
draggable embedded
Eclipse and the sort of stuff that you
can do with a lot of flash scripting and
they've got a movie that's built inside
it this movie I believe this thing is
built mostly in flash with very little
work from elsewhere and this is
obviously linear video but you can go
and set it to play slow motion which is
extremely difficult to do in flash which
is a frame based format rather than a
time-based one there's no way of saying
play at whatever speed but in QuickTime
while you've got to do this they play it
set the rate 2.5 or whatever and
meanwhile they're little they're slick
rollover behaviors work fine and are
uncoupled to the time base because it's
that is taking advantage of some of the
really useful flash aspects and let's
look back to talk even more about a good
old list player just as to talk about it
in terms of integration of media this
movie here has got a sprite layer in the
background which contains the the
artwork and this basic button here it's
got a text track down here in this
opening which we use information from
the roll overs to put the information
into and each one of these is a child a
small child movie which has loaded from
the direction from the Qt list when we
click on these we send we first open up
the second movie with a get URL action
and then send a message and do a little
interview movie communication send a
message to the movie once it's open
after paying attention to make sure it
opened up all the way and tell it what
movie it needs to load we also have used
a new QuickTime 5 action which lets you
check on which movie is whether a movie
is active or not to dim or highlight the
background movies
we've got though again a wired sprite
layer in the background to set up the
the buttons and whatnot and a movie
track that's in the foreground here
we've also got a another hidden movie
track which is being used as a sprite
override any QuickTime sprite can use
any track that's available in a movie to
override its image in this case it would
be hard to have the perspective of the
shadow and and all this stuff be a
draggable sprite so what we've done is
we've got a little linear movie of the
thumb moving which is loaded in a child
movie and hidden and then used to
override that sprite and the beauty of
that is that it becomes time independent
of everything else the length of this
track does not have to sync at all with
the length of this track which it's not
going to because we can change that so
often so yeah one of the great things
about the movie track is to have
enslaved time bases which don't happen
elsewhere how are we doing here
the that's that's unfortunately sort of
winding it up thank you very much do me
just I guess there's a couple of slides
left right the feedback forum will be
tomorrow afternoon at 3:30 we'll be
there to hear everything you've got to
say please do attend we want that input
and in the fall don't forget QuickTime
Live anyone who's really interested in
QuickTime needs to be there
it's got separate tracks for those
interested in API level development
content development and the marketing
sort of issues and it's a really fun
event
so thanks a lot
[Applause]