@database Stingray.guide
@author "Carmen Rizzolo"
@master "Stingray.guide"

@node Main "STINGRAY: An object by Carmen Rizzolo"

                    Carmen Rizzolo proudly presents!

                          - S T I N G R A Y -

                   A cool new object for Imagine 2.0
                     And it's under 150k in size!

    This object, it's design and the contents of this archive are ©1993
Carmen Rizzolo.
    This object is SHAREWARE.  Rendered images of the Stingray object may
not be videotaped, broadcasted, printed or distributed in any way.
    The Stingray object may not be converted to any other platform or
format.
    The Stingray object may ONLY be distributed in it's original archived
form, with all documentation and other included files INTACT.

See: @{"Caution" link Caution}

    The shareware fee is $15 to register.  Enclose your full name and
address with the fee [should you decide to pay] and I will mail you
written permission to use rendered images of the Stingray object any way
you like.
    Of course, I don't expect everyone to register as a user of this
object.  The people that may want to register are those who want to use
this object as part of a graphics demo, commercial, intro to a TV show, or
any other commercial use you can think of.  If you're going to be getting
paid for what ever project you use this object in, I think that $15 is a
bargain.  If you're a hobbyist, collector or whatever, I don't really
expect you to register.  Render the object and enjoy.  Just don't spread
it's imagery around.

See: @{"Address" link Address}

-- MAIN MENU -------------------------------------------------------------

	@{"Oops!" link Oops}
	@{"Archive Contents" link Archive}
	@{"Introduction" link Introduction}
	@{"Caution" link Caution}
	@{"Address" link Address}
	@{"Weird Design" link Weird}
	@{"Morph Tutorial" link StingrayMorph}
	@{"Essence2 Users" link Essence2Users}
	@{"The Imagine Organizer v1.3 BETA" link OrgMain}
	@{"Legal Stuff" link Legal}

--------------------------------------------------------------------------
@endnode

@node Oops "Oops!"

    This is the second release of this Stingray object.. Only a few hours
after the original release.. I accidentally left one or two of the
EssenceII textures buried somewhere in the ship, and they had different
names, so even people WITH EssenceII wouldn't have been able to use it.
Oops!  Well, it's fixed now.  Sorry about that.. If you have the original
release, it's an easy fix.
    Load the Stingray.1.obj into the Detail Editor.  Use FIND BY NAME
and type in PART.3  Part.3 will have the texture.  Hit F1 then F7, then
click on the pressed-in texture box.  Then click on the DROP button.  OK,
then OK again.  Now repeat this process with an object called PART.4
    Save the "fixed" object as Stingray.1.obj.  Now go and do the same
stuff to Stingray.2.obj.  Sorry about the trouble, folks.

@endnode

@node Archive "Contents of this archive"

The following files should be included in this archive:

Stingray  (DIR)
	EssenceII (DIR)
		Body-EssenceII.att - attribute settings file
		Body-EssenceII.att - attribute settings file
	Others.guide - AmigaGuide format Text file
	Stingray.1.fake - Imagine object
	Stingray.1.obj - Imagine object
	Stingray.2.fake - Imagine object
	Stingray.2.obj - Imagine object
	Stingray.guide - This document
	Stingray.IFF24 - 24-bit sample image

@endnode

@node Introduction "Introduction"

    Thanks for downloading this object!  I did my very best to keep it's
size reasonably small, but with a good amount of detail.  As you read in
other sections of this file, you'll see ways you can [fairly] easily
modify the Stingray object's colour, behaviour, whatever.

See: @{"Weird Design" link Weird}

    I used a very small amount of Imagine's SLICE feature, as well as
other methods to create points conservatively.  The idea here was to
keep it as small as possible but without saccrificing those precious
details!

    All colours selected on the object are more or less video-friendly.
It's lights are at a 230, 230, 230 value, and the pure-black decals are
actually at a value of 10, 10, 10 so if you're genlocking something behind
the ship, it won't show up anywhere inside it.

    Stingray DOES NOT use any bitmap brushmapping.  YAY!!!  This keeps
the memory usage down, and makes things easier for the end user to set
things up.

    Stingray DOES, however, use algorithmic textures.  Stingray assumes
you are running Imagine 2.0 and your textures are installed in the
standard way.  Your textures should be in a drawer called "Textures"
and that drawer should be inside the same drawer that contains your
Imagine program.

    The Stingray object was made with Essence Volume II in mind.  Without
Essence II, it will look a little flat.  Well, there's nothing I can do
about that unless you want to go and make your own mappings.  You're on
your own if that is your choice (Hint: When mapping to "BODY" restrict to
subgroup "SHELL2").  If you have Essence Volume II, Go read the Essence II
section for a step-by-step tutorial on setting up this object to use the
HullPlate texture in just the right way for this object.

See: @{"Essence2 Users" link Essence2Users}

    Stingray.1.obj and Stingray.2.obj both have ".fake" counterparts.  See
the section on .fake objects for more information.  You'll be glad you did!
    Note: Since it's very likely the only custom morphing you'll be
creating will be color manipulation-stype morphing, you can duplicate one
of the .fake objects that most closely matches your altered object
(Stingray.1.obj = not shooting, Stingray.2.obj = shooting) and give it the
suitable name.  For example, if you create an object called
"Stingray.powerdown.obj" you can make a copy of "Stingray.1.fake" and call
it "Stingray.powerdown.fake".

See: @{".fake objects" link Chap2}

@endnode

@node Caution "A word of caution"

    It saddens me to have to say the following...

    In the past, I have made freely distributable and even public domain
objects for all to enjoy.  Sometimes, all I would ask is that the object
is distributed in its original archive with all the enclosed
documentation.  There are two basic reason I ask this.

    1. After hours, days or even weeks of work on an object for all of
you out there to enjoy, I'd appreciate just a little bit of credit for my
efforts by letting the next person who downloads the object know who
created it.

    2. And more importantly, I frequently add little tricks or "features"
in my models.  Without documentation, the end user will have no way of
taking advantage of these features.


    On two occasions in the past, each with a different object, I have
gotten wind of people taking the object out of the archive, compressing it
in another archive that contains ONLY the object, and uploading it.  No
name, no docs, no nothing.  People, I'm not asking that much.  Please
be kind to others by letting them get all the benefits that you did.
Either upload this object only in its original archive, or don't bother
uploading anything.
    I almost wasn't going to release this object.  I was just going to
render a few pictures or an animation, slap my name on them and that's
that.  Then I heard about some person [of who's name I still don't know]
who purchased a rather large amount of memory just to be able to render
one of my larger objects.  Needless to say, I was touched.  And if you're
reading this, please give me a call, I'd like to hear from you (See
@{"Address" link Address})!

    If I should see or get wind of this object uploaded somewhere not in
its original archive, I WILL NEVER AGAIN RELEASE AN OBJECT TO THE GENERAL
PUBLIC.  People!  This isn't much to ask!  Please be kind to your fellow
Amiga user by following this simple guideline.  Enough said.

@endnode

@node Address "My address"

    Mail shareware registration to:

STINGRAY OBJECT
c/o Carmen Rizzolo
4280 Clairemont Mesa Blvd. #5
San Diego, CA.    92117

    My telephone number is (619) 573-0285 if you wish to get ahold of me
that way.  You can also send me netmail at the following address:

CarmenR@cup.portal.com

    In your registration letter, be sure to include your address so I can
mail you written permission to use rendered images this object any way you
choose.

    Also, if you could be so kind, answer the following questions in your
letter, although it is not required.  It would just help me out by keeping
your system's abilities in mind when I work on future objects.  So in a
way, it'll help you too!  If you wish, you can print out the Below
information and fill in the blanks.

------------- CUT HERE ---------------------------------------------------

NAME: (First) _______________________ (Last) _____________________________

STREET ADDRESS: __________________________________________________________

CITY, STATE, ZIP: ________________________________________________________

PHONE NUMBER: (Optional) (    )    -

WHAT MODEL AMIGA DO YOU HAVE (Check One)?

 [ ] Amiga 1000
 [ ] Amiga 500
 [ ] Amiga 600
 [ ] Amiga 2000/2500
 [ ] Amiga 3000
 [ ] Amiga 1200
 [ ] Amiga 4000

 [ ] Other _______________________________________________________________

HOW MUCH MEMORY DO YOU HAVE?______________________________________________

WHAT PROCESSOR DOES YOUR AMIGA USE?

 [ ] 68000/60010
 [ ] 68020
 [ ] 68030
 [ ] 68040

 [ ] Other _______________________________________________________________

NAME AND VERSION OF YOUR 3-D ANIMATION SOFTWARE: _________________________

DO YOU PLAN ON PURCHASING / UPGRADING TO IMAGINE 3.0? ____________________

------------- CUT HERE ---------------------------------------------------

    Thanks for taking the extra time to fill out the extra information!

@endnode

@node Weird "What's with the weird design?"

    Hey!  What's with the weird design?!?

    Well, if you haven't already, load the file "Stingray.1.obj" into
Imagine2.0's detail editor.  Right away, you should notice its
structure is out of the norm.  The group's parent axis ("STINGRAY"),
branches out to a number of axes, located above the Stingray object.

    This unique structure makes it as easy as possible for you, the end
user, to modify certain aspects of the Stingray object.  More on this
later.

    Also, as you may notice upon rendering, the stingray's weapon
array is attached to a kickback shock absorbing structure.  When its
more powerful weapons fire, the forward section is pushed back quickly,
then slowly returns back it its original position.  There are two
versions of the Stingray object.  One is "Stingray.1.obj" for when the
craft is not firing, and the other is "Stingray.2.obj" which has its
weapon's struction fully pushed back.  You can morph from the first
object to the second object and then back again for when it fires its
weapons using Imagine's @{"Action Editor" link Action}.

See @{"Morphing Tutorial" link StingrayMorph}

    Now back to the strange grouping structure..

    Load the "Stingray.1.obj" into the detail editor.  Blow up the RIGHT
VIEW by clicking on the vertical "RIGHT" bar.  Here, you can see the main
axis branching out into two rows of axes, located above the craft.  Each
axis is the parent axis to objects that make up the ship.  Click on one of
the upper axes.  Once it turns blue [or purple], hit the F7 function key.
The ATTRIBUTES REQUESTOR will pop up, and at the very top of the requestor
you will see one of the following names:

DARKPATCHES
LIGHTS
SHIP
BLACK
-or-
DARKPATCHES2
LIGHTS2
SHIP2
BLACK2

    The names that end with a "2" are part of the weapons array that is
a moving part, and seperating everything into two distinct sections
makes animating/morphing easier to deal with.

    Let's suppose we want to power-down the ship.  In other words, we want
to have its lights morph to black [well near-black anyway] in an animation
as if it's lost all power.
    Find the LIGHTS axis above the ship.  Fortunately, lights are easy to
change because it's just the two objects [LIGHTS and LIGHTS2].  We'll deal
with the harder ones later.
    Click on the LIGHTS axis and hit F7 to confirm it is indeed the LIGHTS
axis.  While you're in its ATTRIBUTES REQUESTOR, click on the COLOR
button and slide the RED, GREEN and BLUE sliders down to 10, 10 & 10.  I
don't like to go all the way down to 0 for genlocking reasons (See
@{"Introduction" link Introduction}).  Of course, you can turn all the
lights Red by giving a value of 230, 0, 0 just as easily, but let's stick
with the script here...
    After you've gotten the color value set to 10, 10, 10, click on the OK
button.  Now find the LIGHTS2 axis, and do the same thing to it.  All the
"2" axes are located at the front of the ship.  Above the weapons array,
and they're placed slightly lower than the normal axes from the RIGHT
VIEW's vantage.
    Once you're done with the lights' modifications, enter PICK GROUPS
mode if you're not already there, click on the master axis "STINGRAY"
and save the object under a new name.. Maybe something like
"Stingray.powerdown.obj" or whatever you like.  Then you can morph from
the normal object (Stingray.1.obj) to your new "powerless" object.

See: @{"Morph Tutorial" link StingrayMorph}

    Adding a texture is the next hardest thing.  But thanks to the ship's
unique structure, it's still quite easy.  Let's do that now.
    To add a texture that effects the entire ship, enter the "STINGRAY"
axis' ATTRIBUTES REQUESTOR and add the desired texture.  Be sure to enable
the APPLY TO CHILDREN button.  All done.
    To add a texture that effects only a certain aspect of the ship, like
only the decals, Find the "DARKPATCHES" axis and enter its ATTRIBUTES
REQUESTOR.  Add the texture, and be sure to enable the APPLY TO CHILDREN
button.  All done.  Hey!  This weird grouping structure actually is pretty
cool huh [warm smile]?  Actually, you're not all done.  Save the
ATTRIBUTES REQUESTOR's information to RAM: by clicking the SAVE button.
After you're done saving the attribute's info, hit the OK button to get
out of the ATTRIBUTES REQUESTOR.  Now find the "DARKPATCHES2" axis, enter
its ATTRIBUTES REQUESTOR and LOAD the attributes info you just saved to
your ram disk.  Leave the ATTRIBUTES REQUESTOR, enter PICK GROUPS mode,
grab the whole she-bang and save it under a new name, then morph.  Simple
eh?  Well, kinda.

See: @{"Morph Tutorial" link StingrayMorph}

    Notice for Essence users!!  It's a snap to change the colour of the
Stingray object by using the SOLID texture and applying it to the SHIP
and SHIP2 axes.. Be sure to click that APPLY TO CHILDRED button!!  Then
you can do the same to the DARKPATCHES and DARKPATCHES2 axes.  The values
I have set for them now are 30 notches lower than the SHIP's objects'
colors on each RED GREEN and BLUE value.  Those of you who don't have
Essence, and wish to change the overall color of your Stingray object,
read on...

    If you're not a purple-lover, the colour of the Stingray object *CAN*
be altered.  It's not the easiest thing to do, but thanks to this odd
grouping, it's much easier than a generic grouping method.  Read on...
    Blow up the RIGHT VIEW.  We can do everything from here.  Let's start
with the bulk of the Stingray ship...  Be sure you're in PICK GROUPS mode.
Oddly enough, you'll want to now locate the axes called "SHIP" and "SHIP2"
Click on one, then shift-click on the other.
    With both groups picked, enter TRANSFORMATIONS.  Click on the
TRANSLATE button, and give the Z value a nice, even 100.  Then hit
PERFORM.  The two groups will move up, and out of the way..  Use your
cursor keys to move up to meet the freshly moved object.  Enter PICK
OBJECTS mode.  Use a drag-box as a pick-method.  Hold down a shift key and
Drag a box around all of the objects you just moved.  They're clean out of
the way of the rest of the Stingray ship, so it's easy to do.  You don't
have to include the two parent axes SHIP and SHIP2, although it's harmless
to do so.  You can let go of your shift-button now.  Hit the F7 function
key.  You are now going to go through each and every little part's
ATTRIBUTES REQUESTOR.  Change the COLOR, SPECULARITY, and any other value
you wish.  I reccomend you make them all the same.  It will speed things
up if you save your preferred value to your ram disk, and then load it
for each part.  HOWEVER!!!!!  If you are going to do that, TAKE NOTICE
to the object's PHONG button.  Is it on?  Is it off?  Loading the new
attribute file will override the PHONG value in favor of the new one.
Take a mental note of its position before loading the attributes file,
and restore its value [on or off], if the attribute load changed it.
    Whew!  That operation took a while, didn't it!!  Now, re-enter
PICK GROUPS mode, pick both SHIP and SHIP2 axes, and use TRANSFORMATIONS
to TRANSLATE its position back down to where it came from (A Z
translation of -100).

    Now this entire process can be repeated for DARKPATCHES and
DARKPATCHES2 axes if you want to change their color as well.

    Special note!  There is one little roundish object at the top-center
of the Stingray's hull (Called "SPHERE.1") that has some of the
DARKPATCHES colour built into it, even though it's actually grouped to the
SHIP axis.  If you're going to change the colors of SHIP and/or the
DARKPATCHES children objects, you may want to restore the decals on this
object.  You can find it in the TOP VIEW, or by using FIND BY REQUESTOR
or FIND BY NAME.  With the "SPHERE.1" object picked, enter PICK FACES
mode and use PICK SUBGROUP to pick the subgroup "DECALS".  Now you can
hit F7 to change its color to the color you assigned to the
DARKPATCHES' children's objects.  This is really a minor detail, and you
might not have noticed it either way.. But at least you know about it now.

There are TWO exceptions to the unique grouping structure..  That is,
there are two objects that are not grouped to one of the axes located
above the Stingray object.  Blow up the TOP VIEW, and you'll be able to
grab them with ease.  It's the two rear-most objects.  They make up the
glow inside the Stingray's thrusters.  I left them out because they really
didn't belong in SHIP, DARKPATCHES, BLACK or LIGHTS, and it would be silly
to just add another axis just for those two rascals.



@endnode

@node StingrayMorph "Morphing the Stingray objects"

On the subject of Morphing....

    To "morph" something in Imagine, is to create a transition from
one object to another.  The catch is, both objects must have identical
structures.  Morphing is limited to changing the position on points on an
object, or changing the color an object, or something simple like that.
    To morph, you'll need [at least] two objects.  Hey!  You've got two
right here in front of you!  "Stingray.1.obj" and "Stingray.2.obj" are
ripe for the morphing.  Stingray.2.obj is exactly like Stingray.1.obj
except all points in the weapon array structure have been moved back
10 units.  Not the axes, just the points.  When animated, it will appear
there is a "kick" to it when firing.  What we want to do is morph from
Stingray.1.obj to Stingray.2.obj over a period of 3 or 4 frames, then
back to Stingray.1.obj over a period of 10 frames.
    This tutorial assumes you've already loaded up the first object
"Stingray.1.obj" either in the Stage Editor or in the Action Editor.

See: @{"Action Editor" link Action}

    If you haven't already, go to the ACTION EDITOR (Of course, you'll
need to have started a project first).  Find your STINGRAY object.  Click
on the ACTOR BAR [in INFO mode] and make sure the actor exists from frames
1 to 1.  Leave the requestor.
    Give yourself about 20 frames if you don't have any yet.  It's the
number at the upper-left hand of the screen.  Enter ADD mode.  In the
ACTOR position of the STINGRAY object, click once at frame 2.  Click a
second time at frame 5.  You'll now get a reqestor to load an object.
Call up Stingray.2.obj.  Give a TRANSITION FRAME COUNT of 3.  That's 3
frames where the change takes place, and on the 4th frame [frame #5, since
we're starting this morph at frame #2] it's completely the second object.
    Now, in ADD mode, click once on frame 6, then again on frame 15.  Load
up the first object, Stingray.1.obj, and give a TRANSITION FRAME COUNT of
9.  The morph is complete.  The weapon array shoots in quickly, then
slowly releases.  Now you get to add a laser effect at your own leisure.
    But wait!  The morph is done, but the object dissappears after frame
15!  That's OK..  I had you end it on frame 15 for referance reasons.  Now
just use INFO mode and click on the bar you just added, and tell it to
exist from frames 6 to 20, or whatever the end of your animation is.

@endnode

@node Essence2Users "Hello all you lucky people, you!"

    Only two parts of the Stingray need the Essence Volume II "HullPlate"
texture.  An object called "BODY" and another called "WINGS"

    Conveniently, there is a drawer called EssenceII, which contains
attribute files for the BODY and WINGS.

1. Simply load the Stingray.1.obj, use FIND BY NAME and type in BODY.
   Once the roundish part turns orange, hit F1 then F7.  Click LOAD, and
   load the file "Body-EssenceII.att" then hit OK.

2. Repeat Step 1 except using WINGS.  Use "WINGS" (no quotes) in FIND
   BY REQUESTOR, F1, F7, LOAD "Wings-EssenceII.att", OK.  And you're done.

3. Now pick the whole Stingray.  Make sure the whole thing turns blue or
   purple.  Save it under the same name. "Stingray.1.obj"

4. Now you get to repeat steps 1, 2, and 3 again, except using
   "Stingray.2.obj" instead of "Stingray.1.obj"


    That's it!  You're all set to go, as long as your Essence Volume II
textures are properly installed, you're good to go.  Your Essence textures
should of course, be inside a drawer called "Essence" which is in a drawer
that contains your Imagine.

@endnode

@node Legal "Legal stuff"

Essence, and Essence Volume II are trademarks of Apex Software
Amiga is a trademark of Commodore Business Machines
The Video Toaster, and Lightwave 3D are trademarks of NewTek
Imagine is a trademark of Impulse Inc.

I sure hope I got everybody!!


@endnode

@node OrgMain "The Imagine Organizer, by Carmen Rizzolo"
 
                      THE IMAGINE ORGANIZER
 
                               -or-
 
             A friendly, honest alternative to panic.
 
                        By Carmen Rizzolo
 
NOTICE: This is a BETA [incomplete] version of the Imagine Organizer 1.3
It features cross-referancing.  To access this new feature, double-click
on a word that you may not understand.  If its definition is complete,
you will be taken to a node that describes it.  Also, avoid trying to
double-click on works that have punctuation of some sort next to it.
Example: "Action." may not work, but "Action" will.  This beta version
is not to be distributed outside of the Stingray object's archive.  It is
only here as an aid to users of the Stinray object. 


	@{"History" link History}
	@{"Introduction" link OrgIntroduction}
	@{"How to use" link HowTo}
	@{"Disclaimer" link Disclaimer}
	@{"Future Articles" link Future}
 
	@{"1 " link Chap1} Spline Based Rotations
	@{"2 " link Chap2} Decrease Animation Creation Time
	@{"3 " link Chap3} Get the Most Speed Out of Animation Playback
	@{"4 " link Chap4} Making Custom Drawers in Your Projects
	@{"5 " link Chap5} What to Name Your Actors
	@{"6 " link Chap6} Looping the Waves Texture
	@{"7 " link Chap7} Graphically Editing the World Size
	@{"8 " link Chap8} Graphically Positioning the World Size
	@{"9 " link Chap9} Using Conform to Path
	@{"10" link Chap10} Hiding 2-Dish flaws in 3D Objects
	@{"11" link Chap11} Signing Your Animations
	@{"12" link Chap12} Crack Your Objects Up!
	@{"13" link Chap13} More on Speeding up Trace Renderings

@endnode

@node Future "Future Articles"

-- Articles yet to come ---------------------------------------------

    The following are some subjects I hope to tackle in the [near?]
future.  Either I can't do them now because they rely on a future
version of Imagine, or I just haven't had the time to get to them
yet.

	Creating landscapes from a bitmap.
	Leaves Rustling in the Wind
	Nifty Neon
	Flowers/Branches/Whatever Swaying in the Breeze (Imagine 3.0)
	Structures Riddled With Windows Made [fairly] Easy
	Fun with Zooming
	Springy Motion (Imagine 3.0) 
	Motion Blurring
	Looping Essence textures (Maybe!)

@endnode
 
@node History "History"

-- HISTORY ----------------------------------------------------------
 
Release: 1.0                                    -    October 21, 1992
  Articles 1 through 8
Release 1.1                                     -    October 27, 1992
  Articles 9 through 11
  Fixed several boo-boos in Article #6
Release 1.2                                     -      March 18, 1993
  Articles 12 through 13
Release 1.3 changed format to the               -      March 22, 1993
 "AmigaGuide" format.  Lots 'o cross-
 referencing.

@endnode
 
@node OrgIntroduction "Introduction"

-- INTRODUCTION -----------------------------------------------------
 
    Ok, so what's the purpose of this article?  Well, it's a series
of articles I have made over time.  One I plan to add to, instead of
releasing seperate articles everywhere and hope you get them all. Now
they're all together.. Fun, eh?
    In here you'll find all the tips, tricks and tutorials that I
have written to further help you get along with Imagine.  There
will be things in here to speed up your creation process, smooth out
rough motion, and do things that maybe you never thought you could
do with Imagine.  Although the tone of my dialogue is geared towards
the Imagine novice, I hope that everyone will find a few things
in here that they didn't know before.  I'll release updates to this
as I add to it.  The articles are in no particular order, so look
through the Contents for what interests you.  Have fun, and don't get
lost!
 
    I can be reached at the following places:
 
E-Mail at Amiganet: (619) 477-2368
Net-Mail at CarmenR@cup.portal.com on Portal, or carmenr@netcom.com
on NetCom.
@endnode


@node Chap1 "Spline Based Rotations"

-- Spline Based Rotations -------------------------------------------
 
    A post by Anthony Ramirez on the FidoNet Amiga_Video section
sparked an idea in my head.. After testing it out with wild success,
I had to fill the rest of you guys in..  For the longest time, I was
envious of Lighwave 3D and its smooooth trasitions from one rotation
key to the next.  I would always get a 'kink' with Imagine when I
tried the same stunt.  Sure, you can align an object with a path that
it moves down, but what if I want the rotation to be independant of
it's position path?  Well, this new thing works well, but it's kinda
encumbered..  If you can deal with the extra steps, you'll get some
great rotational movement.. Very smooth too! Here's what to do (I'll
try to keep this short)!
 
    In the stage editor, add an open path.. This path is COMPLETELY
independant of any other operation.. If your object is following a
path, add a second path.  This works even if your object isn't
following a path.  Now add an AXIS  If your object in question is
called "SHIP", you can call the path "SHIP.TRACK.PATH" and call the
new AXIS "SHIP.TRACK" Fair enough?
 
    In the Action Editor, Delete the ALIGNMENT BAR of your SHIP
object. Replace it with another bar (That takes up a decent amount of
frames) and have it TRACK TO OBJECT.. The object it tracks to is the
"SHIP.TRACK"  Now Delete the  POSITION BAR of the "SHIP.TRACK" object
and have it follow the "SHIP.TRACK.PATH" in the same frame #'s you
used for your ship's alignment bar.  Now Delete the POSITION BAR of
the "SHIP.TRACK.PATH" and replace it with the SAME INFORMATION as the
SHIP's POSITION BAR.. In other words, if your SHIP is traveling along
a path, have your "SHIP.TRACK.PATH" follow the same path.  If it's
all tween motion, duplicate the info for the "SHIP.TRACK.PATH".  Now
delete the ALIGNMENT BAR of the "SHIP.TRACK.PATH" and replace it with
the same ALIGNMENT info as your "SHIP" object (in the same # of
frames, again).  If you are still with me, your "SHIP.TRACK.PATH" is
now moving in unison with your "SHIP" object, and the "SHIP.TRACK"
object is moving down the "SHIP.TRACK.PATH".  Now all you have to do
is edit your "SHIP.TRACK.PATH"..
    This is the tricky part.  Remember that the "SHIP.TRACK.PATH"
will always be centered with your "SHIP" object.  If you want your
"SHIP" object to aim forwards, then veer to the left, then aim
straight up, you'll do the following:  Have the path start right in
front of the SHIP, then Move in an orbit of the SHIP to the ship's
left side, then orbit-like motion going towards the top of the SHIP.
Your SHIP will always be pointing (in the positive-Y direction of
it's axis) towards your "SHIP.TRACK" object.  If your path aims
directly towards or away from  the SHIP object, the alignment won't
change.. If you have the path moving away, then bending to one way or
another, you can see how to easily invoke smooth transitions in your
SHIP's alignment.
@endnode 

@node Chap2 "Decrease Animation Creation Time"

-- Decrease Animation Creation Time ---------------------------------
 
    I'm very proud of this particular tutorial.. This tutorial can
speed up your animation creation by a factor of 10 or MORE!
Depending on the complexity of your animation.  How?  Read on,
pioneer!
 
    Some of you may already know this, but as for me, it just dawned
on me recently.  My scenes are getting very complex, with objects
ranging in size from 50k to 400k or more per object.  As great as
these mondo objects may look, they sure take hell-long to load up when
moving about in the STAGE EDITOR.  Even if an object like this
shuttle or the CRUISER object is completely in FASTDRAW mode, it's so
complex that it still seemingly takes forever to draw in the tri-view
windows and in the perspective view.  Here's the clincher.  In your
ACTION EDITOR, the size of an object is noted by only the size of the
group's PARENT OBJECT'S AXIS in the size bar.  All of the detail of
an object is defined by it's relation to that parent axis, and is
disregarded by the ACTION EDITOR.  The only info in that SIZE BAR is
the size of the one axis.. I'm sorry I'm repeating myself, but it's
an important point!  But what does this all mean??  It means that if
ANOTHER object with similar size and shape had an IDENTICAL axis, it
could be interchangeably used in the ACTION and STAGE editor as a
less-detailed twin to your complex object.  You can use this simple
twin while you choreograph your animation, then easily switch it to
the 'Real McCoy' when you're ready to render.  On my Amiga 3000, I've
been able to crank out animation preview frames at about 1 frame per
second using the perspective window anim preview thingy.  Here's what
to do!
 
    I'll use the SHUTTLE object in this example to illustrate.  In
the detail editor, load up the NCC-80E.obj object file.  Enter PICK
OBJECTS mode.  Click on the parent object of the entire group.  If
you need to use the FIND BY REQUESTOR method the object is called
"NCC-80E.OBJ".  Since you're in PICK OBJECTS mode, and not PICK
GROUPS mode, only the one object will be highlighted.  COPY and PASTE
it.  Go back to PICK GROUPS mode.  ADD a *** Primitive; a PLANE with only
1x1 section.  Hit F1 to pick the new plane.  Use MODE; EXTRUDE.  Just
use the default values and click on PERFORM.  Now use the 'm' and 's'
keys to surround the bulk of the shuttle.  Hit the spacebar when
you're happy with it.  Use the Amiga-N key to cycle through the
existing groups until you hit the copy of the Shuttle's parent
object.  Hit F1 to pick it.  Then hit Amiga-N till the extruded plane
is selected. Use SHIFT-F1 to multi-select both the Parent axis and
the extruded plane.  Save the simple new object as "NCC-80E.fake" in
the same drawer that your NCC-80E is saved.  Enter the STAGE editor
and use the ".fake" objects to choreograph your animation.  Once it's
perfect, and you're ready to render, save and enter the ACTION
EDITOR.  Starting from the top, enter all ACTOR BARS and change any
file extensions that end with ".fake" to ".obj".. Save then render!
Simple, eh?  Once you can move about the STAGE EDITOR like water
rather than sludge, it's easier to get more creative and daring in
your animations.  Simple, eh?
 
    In most cases, you'll want a .fake version of your object to be a
LITTLE more complicated than a single box.  There are no rules here,
just remember, the simpler the object, the faster your animation
creation!
 
    In many instances, object react with one another.  Let's say
you've got an object of an Amiga 3000 CPU, and a floppy disk.  You
want the floppy disk to leap off of a desk, dance around a bit, then
jump into the disk drive of the A3000.  But hey!  If all you've got
to work off of is a bunch of big, bulky, bounding boxes, I can't see
where the floppy drive hole is for the disk to jump in to!
Fortunately, I have forseen this sort of problem.  And there are two
main ways to fix it.  One solution will work best in one situation,
while the other will, well, you understand.
    Let's build on the floppy drive delimma.  In the DETAIL EDITOR,
Load up your A3000 object.  Go ahead and make a big 'ol box for the
majority of the object.  Here you can do two things.  You can add a
plane (an un-extruded box?), move and size it so that it perfectly
conforms to the drive bay entrance.  Or you can tear into the
original A3000 object.  Enter PICK POINTS mode, and delete everything
except for what makes up the outline of the drive hole.  Group your
drive hole with the big, simple box and delete the other offending
object.  Either way will give you an excellent referance for your
perky little floppy object.  Here are some other situations where
these techniques will come in handy:
 
Showing a hole in a wall plate for a light-switch or power outlet.
Simple planes will do here.
 
Leaving a car's original windows un-deleted so that camera has no
trouble peering in to look at it's driver (or lack thereof).
 
Text!  Need to see which way your letters are facing in a logo?
Hack into those originals and leave only enough to let you know
what it says.  Remember, nobody else has to look at these .fake
objects!
 
NOTICE: Imagine 3.0 will have some sort of automated fix for the
long loading/displaying problem of your objects.  But remember,
an automatic bounding box won't leave in crucial details you'll need
for precision animation!
@endnode

@node Chap3 "Get the Most Speed Out of Animation Playback"
 
-- Get the Most Speed Out of Animation Playback ---------------------
 
    This tutorial will work with Deluxe Paint versions 3.0 and up.
Obviously, getting an accelorator will boost your animation playback.
The Amiga 3000's 32-bit path to it's 16-bit CHIP RAM helps a little,
but not always enough.  This small feature will tell you how to get
your Amiga to animate at it's fastest possible rate, given your
current hardware configuration.  There is an exception to the rule,
and I'll cover that first.
 
    If the animation in question, has a generally static background,
a small, generic animation player will out-animate DPaint (Deluxe
Paint).  View v3.2 comes to mind.  With a static background and
limited motion of our animation's star character, View can zip throgh
it up to 60 frames per second sometimes.  Unfortunately, if the
amount of motion from frame-to-frame increases during the course of
the animation, your speed will decrease in the dynamic parts.  The
great thing about the DPaint method described below is it has a very
steady frame rate.  The bad thing is it eats up your memory like
candy!
 
    Boot up DPaint.  Go to the bottom of your ANIM pulldown menu and
change METHOD from compressed to EXPANDED.  Load your animation.
Enjoy.
 
    Ok, what's happening?  Dpaint is loading each individual frame
into memory as INDIVIDUAL FRAMES.  Normally, only the CHANGES from
FRAME-TO-FRAME is stored in memory.  Now Dpaint does not have to
de-compress anything from frame to frame.  The only slowdown you'll
get now is if you get dangerously close to using ALL of your RAM, or
of you're in a naturally SLOW resolution/colour mode.  Stay away from
High or Medium resolution with 16 colours.  Folks with DCTV will get
great use out of this, because they can render to Medium or High
resolution, 8 colours and get speeds up to 24 frames per second on
a 25MHz A3000.  Just for fun, after loading your animation, select
ABOUT in the far-left pulldown.  This will tell you how much memory
your animation is actually using.  Prepare for a shocker.  I have
18 MEGS of RAM, and I can have about 8 seconds worth of MediumRes/8
colour animation in EXPANDED mode.
@endnode 
 
@node Chap4 "Making Custom Drawers in Your Projects"

-- Making Custom Drawers in Your Projects ---------------------------
 
    When you open up a fresh project in Imagine, several things
should happen:
 
1. A rush of natural chemicals, this makes your mind ready to explode
into creativity at a moment's notice.
 
2. A drawer is created.  It's given the name of your project, with
an extention ".imp" on it.
 
3. Another drawer is created!  Inside your "Project.imp" drawer, an
"objects" drawer is made.  What?  Just one drawer to throw everything
in?!?  We'll see about that.
 
    For any of your medium to larger projects, one drawer to throw
things into simply won't do.  Here are some suggestions of what you
can add inside of your "Project.imp" drawer:
 
    If you're a mammal, you may want to add a drawer called "brushes"
so you have a place to put all of your project-specific brushes.  I
have a "brushes" directory in my Imagine drawer where I keep all of
my frequently used brushes, like cloudy global image maps.  But if
you need to add a "To Protect and Serve" to your police car, it's
good to have a drawer to keep it in, insted of cluttering up your
Project.imp drawer with miscellaneous files and brushes.
 
    I've recently started doing this.  I'll add other drawers for
categorised components of my animations.  Once I had a logo to
animate (Gee, when does THAT ever happen?!).  Each letter of the
logo was seperated into an individual object.  20 letters in all!
I made a drawer called "logo" and placed all the pieces to my logo
jigsaw in it.  Now picture this:  Each letter of that logo is gonna
be rotating along a seperate spline (See Tutorial #1) path.  I made
another drawer called "logo.paths" and filled it with paths.  Then
there was a background lined with different abstract shapes.  I made
another drawer for them.  It doesn't matter what I called it really,
there are no rules here.  Imagine trying to load an object into the
STAGE/ACTION EDITOR, looking into an "objects" drawer, and having
to weed through over 50 objects in a file requestor?  Forget that!
@endnode
 
@node Chap5 "What to Name Your Actors"
 
-- What to Name Your Actors -----------------------------------------
 
    Try something that sticks in the audience's minds.  Something
that makes a statement!  Oh, wait, we're talking about Imagine.
 
    In the ACTION EDITOR, each component to your animation is given a
name.  That names is show in the far-left column of the screen
display.  This is not really the filename of that object/path/what-
ever.  It's a name Imagine uses to keep track of things.  Remember
that an object can morph from one actor to another, and introducing
a second object to the ACTOR BAR does not change the initial NAME
given to your object/path/whatever...
 
    The first time you are introduced to an object's name (not to
be confused with the filename you save it to disk as) is in
the DETAIL EDITOR.  Pick an object, any object.  Add one if you need
to.  Hit F7 to enter that object's ATTRIBUTES requestor.  Hey!  It's
got a name field up there!  Most of the time, objects are given names
by default.  You'll see names like SPHERE, PART.37, AXIS, etc...
This is no fun if you're watching over 10 or more actors in the
ACTION EDITOR.  You can also change an actor's name by clicking on
it in the STAGE EDITOR and using RENAME in your pulldowns.  The most
common method is to name them in the ACTION EDITOR.  Enter RENAME
mode, click in the box that contain's an actor's name and change it.
 
    Keep your names specific, but short.  Things like CAR, SHIP,
SIGN, EARTH, etc. are great.  If you take an object called CAR in the
DETAIL EDITOR, COPY and PASTE it, you'll wind up with the CAR object,
and a copy called CAR.1.  A copy of CAR.1 will yield CAR.2, etc...
    I have adopted this form of renaming duplicates because it's
short, and to the point.  The key here is to keep those names short.
You'll see why SHORTLY [grin].  Sometimes, if I know I'm gonna be
making duplicates, or loading the same object into the STAGE EDITOR,
I'll RENAME my first object with a .1 and then go to .2, .3, ... from
there.  But that's just me.
 
    So why keep these names short?  Here's why:  When you get
complicated, grand scale animations going with tricky maneuvers,
you'll get combinations like the following.  I find them great for
keeping monster projects organized, and it's easy to SORT my script
in the ACTION editor and they'll fall into their proper place nicely.
 
1. Our main object, a car can be called CAR
2. If our CAR is going to drive along a path, we call it's position-
   altering path CAR.PATH
3. (See Tutorial #1) If we want the car to waver and skid as it turns
   or halts motion, we'll have it align to an AXIS, which follows a
   different path.  We can call these components CAR.TRACK and
   CAR.TRACK.PATH
 
    I think you can see how this can clean up a mess in a big way.
As well as using SORT in the action editor to group all of the
Car's components together, since they all start with CAR.  Here's
some other suggestions:
 
CAMERA.TRACK, GLOBALS.PATH, LIGHT.2.PATH, CARMEN.TRACK.2
@endnode
 
@node Chap6 "Looping the Waves Texture"

-- Looping the Waves Texture ----------------------------------------
 
    I recently was graciously granted some free time, so I decided to
further explore new features in Imagine 2.0.  Imagine 2.0 comes with
a decent waves or 'constantly rippling water' texture.  Allow me to
say right here and now: IT'S ABOUT DAMN TIME!!  There.. I had to get
that out in the air.  The waves texture is said in the manual to be
best on grounds and flat surfaces for best results.  I say you should
try it out on a spere.  Very trippy!  The waves texture uses three
entry fields in it's requestor.  Wavelength, Amplitude, and Distance
Travelled.
 
    Refer to the file "Wave.PIC" (Included in this archive) to see
what Wavelength and Amplitude is.  The Distance Traveled is not so
easy to comprehend.  It is only to be used when you want to actually
'ripple' the texture in motion (read: animation).  This works by
morphing.. You first create an object with the waves texture. Add the
desired amounts for Wavelength and Amplitude and give the Distance
Travelled a 0.  Save that object.  Now alter the Distance Travelled
and save the same object with a different name (usually, I'd do
something like 'Pool.1' and 'Pool.2').  Then in the Action Editor,
you would display the first object on frame 1, and from frame 2
through the end of your loop cycle you would morph to the second
object (if Morphing is new to you, refer to the manual).  According
to the Imagine 2.0 bible, the Distance Traveled in the second object
should be exactly 1/2 the wave's wavelength.  This is most certianly
WRONG (Buzzing sound effect)!  I have whipped up a mathematical
formula for you that SHOULD work every time. Allow me to example.
 
    Let's say our Wavelength is 50, our Amplitude is 8 (As far as I
know, the Amplitude has no bearing on calculating Distance
Travelled), and the loop cycle will last 20 frames (This is the exact
parameters of my Pool 2 anim).  If you divide your wavelength by the
number of frames, you will get the Distance Travelled PER FRAME. If
you guessed 2.5, get yourself a rewarding snack.  The morphing takes
*19* frames.  Now if you multiply the Distance Travelled per frame
 ^^
    <Sorry, this number was 18 in release 1.0, 19 is correct>
 
by the amount of morphing frames, you will (so far it works for me)
get the appropiate Distance Travelled for the requestor of your
DESTINATION object in the loop cycle.  2.5 * 19 is 45.  The reason I
went to such length to try and figure out a formula was so that you
could easily make your own applications of the waves texture and get
it right every time without the hassle (sp?) of trial and error.  My
amplitude in this situation was an 8, but I don't think this has much
bearing (And we could all use a little more bearing from time to
time!).  But "Carmen," you ask, "what if I want to make an animation
longer than 20 frames?! (or whatever amount of frames you choose for
1 loop cycle)"  Simple.  In the Action Editor, use Pool.1 (or
whatever) on frame 1.  Use Pool.2 for frames 2 through 20, with a
Transition Frames value of 18.  On frame 21, use Pool.1.  Then use
Pool.2 from frames 22 through 40 with a Transition value of 18.
Catching on?
 
    To Recap, here's the formula:
 
 (Wvlngth / # frames in loop cycle) * (# of frames in loop cycle - 1)
is equal to the Distance Travelled.
    The # of frames in loop cycle - 1 is also the amount of
trasnition frames when morphing from object.1 to object.2.  My
example is like this:
 
   50 / 20 = 2.5   2.5 * 19 [ or ] 2.5 * (20 - 1) = 45
 
 "/" means 'divided by' by the way.
 
  In the Animation, I used three (3) sources of waves.  One coming from
the right, one from the upper left and another from the lower left.  For
some wacky reason, the waves eminate from and along the negative X axis
of the texture's axis.  In other words, if you have the X axis of the
texture (NOT the object! Entirely different ball of wax) pointing to the
right, your waves will move to the left.  If you haven't yet started
altering the axis of your textures, now's a good time to start learning
(When Editing the axis of a texture or brush, always use the "l" key to
do your editing in local mode).  This is kinda goofy, because Imagine
generally uses the Y axis for most of it's motion references.
 
             ** Important info for Release 1.1 **
 
  Woops!  I screwed up.  I got some 18's and 19's mixed up.  Re-read
the article above as it is correct now, then read the addition below.
I hope this didn't mess anyone's mind up TOO much.  Here's what's
right:
 
  In the 20 frame loop cycle situation, You *DO* use 19 (20 - 1) to
mulitply to your Distance-Travelled Per Frame.  But when this goes
into the ACTION EDITOR, you CAN'T enter 19.  Even though the 20th
frame is technically part of the morphing, Imagine considers the last
frame in a morph to be seperate from the transition.  Which, from
anoher point of view, it is.  SO, use 18 instead.  Here's how it's
done right:  Take your loop cycle # of frames (20, in our example),
get the Distance Travelled Per Frame as described above, then
multiply it by 19 (or 20 - 1).  Edit the Attributes of the texture
with the new value and save that object as your destination object in
the loop cycle.  THEN, when it's time to add it in the ACTION EDITOR,
use the START object for frame 1, and the DESTINATION object for
frames 2 through 20 with a Transition value of *18* (or 20 - 2).
 
  Once again, sorry for the confusion!
@endnode

@node Chap7 "Graphically Editing the World Size"

-- Graphically Editing the World Size -------------------------------
 
  I've recently figured out how to graphically alter the size of your
GLOBAL world size in the Stage/Action editor.  The Globals SIZE is a
rectangular box that defines the area the camera will read from in
RayTrace mode.  This is why some of you have seen your objects
'sliced' or chopped off.  This happens when they reside outside the
globals world size parameters.  "Well," you might say, "If I could
see the world, I wouldn't have that problem!"  Along the same lines,
if you made the size of your (globals) world just small enough so
that it encompasses all of my objects and nothing else, Trace times
could be cut dramatically.  Using this technique, I cut my trace time
in this particular project by over a factor of 2!  Here's what to do!
After you've created your entire animation 'script' and are ready to
render, do the following:

    Go to frame 1 in the Stage editor. Add an axis.  Rename your new
axis to "GLOBAL.AXIS".  You will see the axis appear at location
0,0,0 by default.  This is the center reference point for the world
size.  Never move the axis while performing this trick!
    The Axis should be a 'picked' colour (usually yellowish).  Hit F1
to select it.. Now it will be Blueish (if you screwed with the colours
too much in the preferences editor, you're on your own!) in colour.
Hit the "s" key, and then the "l" key.. You are now scaling the axis
in local mode. You'll know you're doing it right if the dotted lines
that the X,Y and Z is connected to stretch along with the bounding
box.  While scaling, use the X,Y, and Z keys to bring the bounding
box in as tightly as possible.  The object is to surround ALL of the
objects in the scene (not including lights or camera(s?)) without too
much breathing room.  The tighter the fit, the shorter the tracing
time.  Remember, this box doesn't have to be (and usually isn't)
perfectly square.  In my pool anim, the only objects used where the
water, pool, ground and beach-ball.  My axis was was large in the top
view, but only tall enough in the front view to surround the
Beachball and pool.  Exciting, isn't it?  NOW!  Hit the space bar
when you've got it just right.  Enter TRANSFORMATIONS in the pulldown
menu.  Hit the size button and write down the three numbers on your
arm. Save and enter the Action Editor.. On frame 1 of the GLOBALS
track, add a size bar.  Copy the information from your arm onto the
requestor.  Now this size information will stay this way for every
frame unless you add another size bar for a different frame.  If you
have objects moving about, be sure that the globals size is adjusted
on any frame that an object moves outside the parameters of our
magical axis.  Just resize the axis on that frame, write down the
three numbers and copy the info onto a size bar of the globals of the
same frame!  Have fun!
@endnode 
 
@node Chap8 "Graphically Positioning the World Size"

-- Graphically Positioning the World Size ---------------------------
 
    Read and practice tutorial #7 until you understand how it
functions.  Now, as well as jotting down the GLOBAL.AXIS' SIZE,
you can also take down it's position.  Then go ADD a POSITION BAR
in your ACTION EDITOR.  Copy the GLOBAL.AXIS' position information to
the GLOBAL's POSITION BAR.  This means that you CAN move the
GLOBAL.AXIS in the STAGE/ACTION EDITORs.  If you do move it, you must
copy the GLOBAL.AXIS' new position info and relay it to the GLOBAL's
POSITION BAR for the appropriate frame.  Remember, when moving
anything in the stage editor, select POSITION BAR in the pullown menu
to automatically add a new position bar with the new information.  Of
coure, this will add a bar for the GLOBAL.AXIS object, not GLOBALS,
where it ultimately counts.
    This ability brings up all sorts of ridiculously uncalled for
possibilities.  Ever think of having your GLOBALS flying along a
path?  If you have, shame on you.  This is truely Imagine abuse.
    So what's this technique good for?  A few things.. The best idea
that comes to mind this this:
    If you're rendering in full Ray Trace mode, and an object is
residing half inside the GLOBAL world size, and half outside
Imagine's world, the object will appear to have been chopped in half,
with the out-of-bounds half missing.  If you move your world in the
course of an animation, you can have the world completely out of a
scene, and slowly move in, ecompassing the object(s).  This will
make a 'revealing' effect to your scene.  A 3-D video wipe if you
will.
@endnode 
 
@node Chap9 "Using Conform to Path"

-- Using Conform to Path --------------------------------------------
 
    Here's a tutorial on how to bend and twist your 3-D logos with
Imagine 2.0 by using the CONFORM TO PATH feature.  If you're using
Imagine 1.1 or earlier, you're on your own.  If you can't afford to
upgrade, you've got more pressing problems than conforming text to
a path. :)
 
    NOTE: Be sure your letters are READABLE in the front view.  Odd
are that this is the case, but be sure your font object is facing you
in the FRONT VIEW, and the TOP VIEW and RIGHT VIEW are actually the
top and right views (excuse the run-on sentence).  In fact, this
whole tutorial can probably done in the FRONT VIEW alone.. So you may
want to blow it up to full screen size.
 
    The first thing you've gotta to is to take yer font object, and
using SHIFT-M and SHIFT-R, move ONLY IT'S AXIS to the far left of
your letters. And then point your Y axis to the right. (All this
from a FRONT VIEW vantage)  This is not required, but I've found that
moving the axis to the left will ensure your text does not get
distorted as it's pathed (porportionally speaking).  Now, with the
font object picked, enter TRANSFORMATIONS (from the pulldown).  Click
on the size button and write down the three #s.  Then click on the
position button and write down the three numbers.  You'll be using
these 6 numbers heavily.  Add an open path. Click on the path's axis
and enter TRANSFORMATIONS.  Give the path's axis the same position
and size as your font object.  Now, with your path picked, enter EDIT
PATH mode.  Your path (in the front view) should now be going from
left to right.  Click on the right-most poing on the path and then
hit 'm' to move it.  Before you move it, hit SHIFT-X, so that you're
only moving it along the world's X-axis.  Now simply drag it to the
right a ways, about to the end of your font.. No need for precision
yet.. You're just getting it out of the way.  Now click on the left-
most point and enter TRANSFORMATIONS. You guessed it, give it those
same POSITION and SIZE numbers.  Since you took the care to line up
all those axis (plural), you are in a strategically sound place for
creating animations of your text bending and contorting in all sorts
of funky ways.  More on the animation possibilities later...
 
    Now it's time to make your circle.  Zoom out a bit if you need to
(Left Amiga-o).  Pick your path (it's blue when it's picked,
yellowish when it's selected; big difference) by clicking on it or
other clever means.  Enter EDIT PATH mode and find that right-most
point again.. Yes, the same one you got out of the way earlier.
Click on it again. Hit 'm' to MOVE then SHIFT-X, and then slide it
over the the far-right edge of your font object.  NOTE: You might
need to re-enter PICK GROUPS mode and redraw the screen so you can
see it.  Imagine ignores everything else when you are editing an
object on a point by point basis.
 
    After you've fixed the path, go back into PICK GROUPS mode (or
PICK OBJECTS, no big diff here).  In your pulldowns, ADD a SPHERE.
This is just for your referance to line up your path to.  Enter
TRANSFORMATIONS with the sphere selected.  Click on it's POSITION
button and give the X value the same number you wrote down earlier.
The Z and Y don't matter. Back in PICK GROUPS mode.  Click on the
Sphere and hit 'm' and SHIFT-Z. Now move the sphere (up or down) so
that it's below your text.  What you are going to do here is scale
the sphere so that it represents the size and length desired for your
path.  In your head, Imagine the length of the path (and your text,
they're both the same) bend into a circle.. How big would that circle
be?  Make it that big.. You don't need the precision of a surgeon
here.. A little distortion won't be noticle anyways.  For a decent
sized sphere, you'd better have a decent amount of text modeled up.
Either that or lots of spacing..  Now that you've scaled it (using
the 's' key), use 'm' then SHIFT-Z to move it up so that the tip of
the spere touches your path.  You can now use the sphere as a
referance to make a good circle. Click on your path and enter EDIT
PATH mode.  Be sure your sphere is in full view so that you won't
have to move or zoom your view for this operation. This way your
sphere referance will never disappear.  Click on the Right- Point of
the path and move it down, down, down a bit below the sphere.  Now
click on Point up at the top of your circle.  Select FRACTURE.  Click
on the new point and move it to the bottom-most of the sphere.  Now
rotate it on it's Y axis ('r' then 'y') so that the path conforms to
the right side of the sphere, and the line going through your control
point is more or less going left to right.. Then you can go into
TRANSFORMATIONS; ALGNMENT and fix the Y alignment so that it's 90, or
-90, or 180, whatever.. It should be close to one of those right now.
If you feel you need another point inbetween the first and second
point to further define the curve, read on.. Click on the first point
and Select FRACTURE.  Move the new point to the far-right center of
the sphere.  The angle should already be straight up and down, but
use TRANSFORMATIONS; ALIGNMENT if you need to.  Now go ahead and keep
doing what you're doing until your path is beautifully covering your
sphere outline.  You might want to leave a gap between the start and
end points so that your text doesn't bunch up upon conforming.  Enter
PICK GROUPS mode once again.  Click on your path and save it.  Pick
your Text.  Enter MOLD in your pulldowns.  Pick CONFORM TO PATH.  As
long as there is only one path currently in your editor, the defaut
values are just fine..  Just click on OK and cross your fingers.  You
should now be looking at your text, bent along a circle.  Save it,
but don't save over your original straight text object!
 
    Now, if you Delete your curved text from the editor (NOT from
your disk!) and re-load your straight text, we can have some fun!
Pick your path once again.  Enter EDIT PATH mode.  Click on a control
point.. Any point.  Hit 'r' then 'l' then 'y'..  You are now going to
rotate a control point's Y axis in local mode.. Since the point's Y
axis resides along the path, you are actually TWISTING the path.
Don't go crazy tho.. Nothing more than a 30 degree twist (Just
eyeball it for now).  Resave the path under a different name, then
re-conform your straight text to the new path. Pretty trippy, eh?  If
you work at it, you can move, rotate and twist your path to create
some wild logo anims.  Do these transitions in increments and save
each step object as a different name.  There's only one thing you've
got to bear in mind:  When Imagine morphs points from one object
'pose' to another, it does so in a straight line!  So simulating
bening and twisting can be tedious, as you'll need almost 10 seperate
object 'poses' to simulate a decent curling anim.  Twisting seems to
be the most difficult one to master for animations.
 
    Another note about animations... Before saving all these
incremental objects, check for something.. Is the area where my text
spawns from at any angle whatsoever?  If so, that means it's
conformed to the path.. Yep, your AXIS conforms right along with the
rest of the object..  Click on the axis if your feshly distorted
object, and enter TRANSFORMATIONS. Now click on TRANSFORM AXIS ONLY.
Now copy those same nutty POSITION and ALIGNMENT values from
earlier.. Now your axis will remain static as your object moves
around.. Otherwise you might get unpredictable motion in the Stage
Editor.  Geez!  Have I typed enough?!  Let me know if this tutorial
helped you out at all by posting E-Mail to me in the FidoNet's Amiga_
Video Echo.  Have fun!!
@endnode 
 
@node Chap10 "Hiding 2-Dish flaws in 3D objects"

-- Hiding 2-Dish flaws in 3D objects --------------------------------
 
    If you've got reason to hide certian parts of you object, this
tutorial is for you!  This Tutorial is a spin-off of the breakthrough
tutorial that came with the "CRUISER.LHA" object that I did just a
few weeks ago.
 
    Here's the problem.. You've made this cartoonish looking SUN.
You know the kind; it's got spikes coming out all over it's
silhouette.  But if the sun or the camera is moving around, the sun
won't look good if it's rotated to the point where the spikes are
going down the middle of the sun like a backbone!  This is not good.
Here's what to do..
 
    Load up your SUN object, or whatever it is.  Click on it.  Using
SHIFT-R (to rotate it's axis only), rotate it's axis so that the Y
axis is pointing in the direction that you want your object to face.
If, in your FRONT VIEW, your object looks the way it should look, go
to the TOP VIEW and make sure the Y axis is pointing out of it, like
it was struck by an arrow labled 'Y'.  I hope that's not confusing..
In the TOP VIEW, the Y axis will aim towards the bottom of the
screen.  Save your object.
 
    Go into your Stage editor.. Load up the object.  Save and enter
the Action editor.  Find the object's ALIGNMENT BAR.  Delete it.. Add
another ALIGNMENT BAR to replace it.  Tell it to TRACK TO OBJECT.
And Give the object's name CAMERA.. Simple eh?  It's aiming at the
CAMERA, just as you would aim the camera at something.. One catch..
Imagine doesn't like you to track object A to object B, while object
B is tracked to A.  If you need the Camera to track to your Camera-
tracking object, add an axis, and have it mimic the poisiton of your
Camera-tracking object; and have the camera track to the new axis..
Simple, eh?
@endnode
 
@node Chap11 "Signing Your Animations"

-- Signing Your Animations ------------------------------------------
 
    If you want to put your name on your projects, here's a quick and
easy way to do it.  This technique will not work effectively if you
alter your camera's focal length during the animation (read: Changed
your camera's size bar).  It allows you to put things like "©1992
Carmen Rizzolo" in the lower-right hand corner of your animations.
But if you put my name in your animations, I get royalties! :)  The
following steps will be the last thing you do in your animation.
Just before you do your final rendering; do as follows.
 
    Boot up DPaint.  Make your screen resolution Hi-Res, 2 Colours.
Make your background colour (Colour 0) anything but black.  Make your
foreground colour (Colour 1) Black or a shade of grey.  The ligher
the grey, the more transparent your text will be.  Type out what you
wish and grab it as a brush.  As you grab your text with the box,
give about 3-8 pixels space away from the edges of the text on all
sides. Don't come in too close because it might get chopped off when
Imagine performs it's 'auto image-mapping' feature.  Save your brush.
Kill Dpaint.
 
    Boot up Imagine.  Enter the detail editor.  Add a PRIMATIVE;
PLANE. 1x1 section is all you'll need.  Scale your plane so that it's
closely the shape of your brush.  You might need to come back here
and fix the size after a few test renderings if the perspective is
thrown off by your plane being too wide or something.  But don't
worry about that too much right now.  Enter the plane's attributes.
Make the COLOUR whatever you want the colour to be when rendered.
Make the REFLECTIVITY 0,0,0 unless you feel artsy.  Give the FILTER
guns all the way up.  SHININESS and everything else, 0.  Make the
object a BRIGHT object by clickin on the BRIGHT button.  Now Click on
the BRUSH 1 button and load up your IFF bush. Make it a FILTER MAP
and tell it to USE GENLOCK.  This mean that Imagine will disreguard
the background colour of your IFF brush.  Hit OK and back out of your
attributes requestor.  Here comes the tricky part.
 
    Add an axis.  In the TOP VIEW, move your axis below, and to the
left of your PLANE object.. By the way, Your plane object should look
like a straight line from the TOP VIEW.  Your axis' Y axis should be
pointing north if you haven't changed it (Still, TOP VIEW).  Click on
the Axis, and then SHIFT-CLICK on the PLANE.  Now select GROUP.
Click on your axis again and enter ATTRIBUTES, and give your group a
name if you wish. Exit Attributes and SAVE your GROUP.
 
    Enter the ACTION EDITOR.  Go to the bottom of the pile, and
select the ADD BUTTON to enter the ADD mode.  Double-click on the
POSITION BAR of the bottom-most entry; which is was blank.  After
you've double- clicked on the POSITION BAR, frame 1 of the blank
slot, load up your Signature object.  Click on RENAME, then click on
your new object. If your Signature object it named SIG, call it
AA.SIG.  Now select SORT in the pulldowns.  Your signature object
should be up at the top of the list now, just below GLOBALS.. This
make it easy to do the next step.     Go through your script and make
the POSITION and ALIGNMENT BARS mimic the POSITION and ALIGNMENT BARS
of your CAMERA.  Now your Signature object will follow the camera,
and appear to not be part of your animation, but a superimposed
graphic.  Save and enter your STAGE EDITOR.     In the STAGE EDITOR,
Pick the Signature object.  Since it's in the same place as the
CAMERA, you might need to use FIND BY REQUESTOR to access it.  Once
it's blue (or purple), SCALE it down, down, down. Make it very tiny
so that it's very close to the CAMERA, and nothing will come between
your signature object and the CAMERA.  You might need to now SAVE,
and go back to the DETAIL EDITOR to MOVE and SCALE the SIGNATURE's
PLANE object (NOT the whole GROUP! -just the PLANE child object!) so
that the size and position of the text is in the lower- right hand
corner of the screen, and nice'n small.  You might have to go back
and forth from the STAGE and DETAIL EDITORS to get it just right.
Remember, if you just pick the whole group and SCALE and MOVE, you
won't see any changes back in the STAGE EDITOR.  You must Select the
PLANE when you perform your chages.. Important point here. When
you've got everything just right, it's time to render.
 
    This series of steps is actually much less complicated than is
seems. Once you do it a few times it'll be like second nature.  And
it's much easier than editing each and every rendered image; putting
your name in.  Of course, it's also cheaper then using a Choma or
Luminance Key system to super-impose text onto video.  Have fun!!
@endnode 

@node Chap12 "Crack Your Objects Up!"

-- Crack Your objects Up! -------------------------------------------
 
    Oh no!  You're headed for a generic image!  Got a few reflective
spheres lying around, doing NOTHING?  Let's make it a little more
interesting.  The following tutorial will not only make you familiar
with the ins and outs of the SLICE feature, but will give you an
interesting situation to use it in.
 
    Enter the DETAIL EDITOR.  ADD a PRIMITIVE; SPHERE.  Not the
faceless sphere that's represented as a mere circle, but the one
that is selectable in the Primitives requestor.  The more generous
you are with the CIRCLE SECTIONS and VERTICAL SECTIONS, the better
your final images will look.  The default values are acceptable for
most cases- barely.  The default SIZE values are fine as is.
 
    ADD a PRIMITIVE; PLANE.  Give it also a decent amount of
sections.  Say, 15x15 section values.  The PLANE object you just
added will  appear at location 0,0,0.  In the same place your SPHERE
appeared.  DON'T EVER MOVE THESE OBJECTS!
 
    All you've got to do to pick them is to use the Amiga-n or
Amiga-b keystrokes to cycle through the objects with the orange
'Selector.'  Then when one you want is orange (Or purple), hit F1 and
it's 'picked.'
 
    PICK the PLANE.  Hit s to SCALE it.  Just make it so that it's a
little bigger than the SPHERE.  10% larger should do just fine
(Eyeball it).  In the Mode pulldown, turn MAGNETISM ON, then enter
MAGNETISM's SETUP.
 
    Set the RADIUS OF INFLUENCE to 30, and MINIMUM RADIUS around 8.
Turn on RANDOM RADIUS.  Now hit USE to have some fun.  Once again,
Under MODE pulldown, use DRAG POINTS mode.
 
    In the FRONT VIEW, you should see the broad side of your PLANE,
and a thin view of your PLANE in the TOP VIEW.  Hold down your SHIFT
KEY.  Click (And Release) on a point of your PLANE in the FRONT VIEW
so that it turns reddish. Click and HOLD in the TOP or RIGHT VIEW and
then let go of the SHIFT key while still depressing your left mouse
button.  The Grid Mesh should Jump towards your pointer.  If it
doesn't, just move the pointer a tad.  What you are doing is pulling
out the mesh, giving the plane pits or bumps.  Try to only move the
main point only along the Y axis (Only to make a deeper pit or a
higher lump. not leaning in any direction).  Your finger is probably
aching by now, and I know you want to let go, but before you do,
remember that your are editing the 'cracked' part of your sphere.
Don't make the im/depressions TOO severe unless you want a weird look
(And there are no rules against that).  Repeat this process several
times until you've got a nice, imperfect FRACTURE PLANE.  Then go
back into PICK GROUPS (or OBJECTS) mode.
 
    Save both objects as individual files.
 
    With the SHIFT KEY held down for multi-selection, click in the
center of attention so that both the PLANE and the SPHERE are
Picked.  You may have to use the Drag Box pick method, or Amiga-N
and SHIFT-F1 like I explained earlier.  With both objects picked,
use the SLICE function in the OBJECT pulldown.
 
    If you're having trouble slicing, here's what you can do:
 
    Slicing is memory intensive.  Sometimes, you'll just be lacking
in memory for this function.  With just a plane and a sphere, this
is just a simple procedure so most will not have this problem.  If
you are running out of memory in this tutorial, I suggest starting
over and using a less detailed sphere and plane.
    There's also another weird set of problems that can surface.
"ERROR: Edge to close to an Edge" -or words to that effect.  Ok,
so it's slicing method isn't flawless..  Actually, it's far from
flawless.  Once in a great while, it'll fumble when there's a point
too close to another, or two edges from seperate objects that are
nearly parallel.  You can pick one of the two parts, and scale it
up slightly, or move it over just a bit in one or more directions.
    Sometimes, nothing will seems to work.  It just will not slice.
There are two fixes for that that I have found to work "most of the
time."  Pick one of the objects that are to be sliced.  Using
Shift-M, move it's axis so that the one axis does not share a common
position in either the X, Y or Z global coordinates.  I'm not too
sure how much this fix actually helps.  But it doesn't hurt anything,
since each object gets a new axis position upon slicing anyhow.
    Lastly, Slicing does not like to get too complicated.  This one
will not rear it's ugly head in this tutorial, but I found it out
once when I was trying to slice about 20 objects together, and
nearly all of the pieces were intersecting with one another.  I
had to break up the slice into several smaller slice projects.
Basically, the rule I learned here is K.I.S.S. or, Keep It Simple,
Stupid.
 
    After a bit, the FRACTURED PLANE should have sliced through
your SPHERE.  All the pieces of the slice will be given a new
AXIS, roughly centered on it's bulk.  The new AXIS will all be
GROUPED into a PARENT AXIS at location 0,0,0.  Click on the PARENT
AXIS, and use UNGROUP in the OBJECT pulldown menu.  Using a steady
hand, or Amiga-N Select the AXIS that used to be the PARENT AXIS
of the sliced group.  This AXIS should have no points or faces with
it.  Just an axis.  Once you have it selected (Orange in colour),
hit F1 and DELETE it (In the Functions pulldown menu).  Then use
Amiga-N to select the trimmings of your factured plane.  In the
front view, it should look like a plane with a hole cut in it.
With it Orange, hit F1 and then DELETE it.
 
    You now are cleaned up from the slice.  Click on the AXIS of the
wrinkled center-piece.  Formerly the wrinkled plane.  In the OBJECT
pulldown menu, COPY it.  Now click on one of the halves of your former
SPHERE.  Shift-Click on the wrinkled center.  GROUP.  Use PASTE in
the OBJECT pulldown.  Click on the OTHER half of the sphere and hit
Shift-F1 to multi-select the SPHERE and the clone of the wrinkled
center.  GROUP.  It's important the SPHERE part was  clicked on
first, then the wrinkled center, because the Sphere should be the
parent of the group.  Congradulations.  You're done.  Save the two
groups as seperate files.  Then you can load then up in the STAGE
EDITOR, and they'll appear to be a single sphere until you make them
fly apart, or whatever.  When setting attributes, the sphere halves
should both have PHONG shading and identical attribute settings.  The
two center pieces can be either phong or not, it's up to you.  And
the attributes should be identical.  In the ATTRIBUTES REQUESTOR, you
can SAVE your settings for one, and LOAD those settings in for the
other one.
 
    But wait!!  There's more that can be done!!  Let's say we want
an IFF image mapped to the sphere, or a texture assigned to the
sphere.  And when the sphere breaks apart, the mapping should not
go haywire.  Here's what you can do:
 
    With both of your cracked pieces saved, delete them from the
DETIAL EDITOR and memory (But not from disk, of course).  LOAD up
the original, un-sliced sphere (You did save it when I told you,
didn't you?).  Click on it, and enter the ATTRIBUTES REQUESTOR via
the F7 Function Key or a pulldown menu.  Give it attributes, and
map or wrap an image to it.  After mapping to taste, and before
leaving the image/texture mapping requestor, click on the TRANSFORM
AXES button.  On a scratch piece of paper, write down the X, Y and Z
values for POSITION, ALIGNMENT and SIZE.  SAVE the attributes to
Disk.  Call it "Sphere.att" or whatever you like.  Then leave the
attributes requestor.  Save your SPHERE object. With the SPHERE still
picked, use the object pulldown menu and enter TRANSFORMATIONS.
Click on the POSITION button.  X, Y and Z should be 0,0,0.  No
problem remembering that one.  Now click on the SIZE button.  Using
a scratch piece of paper, copy down the X, Y and Z values.  In this
SPHERE tutorial, chances are they're all the same number.  50, if you
kept it at the default size.  Exit the requestor and DELETE the
SPHERE.
    Load one of your SPHERE halves.  The SPHERE half itsself should
be the parent axis.  Click on it.  Enter TRANSFORMATIONS.  Activate
the "Transform Axes Only" button.  Click on POSITION, and change the
X, Y and Z values to 0,0,0.  Click on the SIZE button and change it's
X, Y and Z values to what you wrote down on your scratch paper
(read: Brain?).  Hit PERFORM to exit the requestor.  The AXIS of the
SPHERE half is now IDENTICAL to the ORIGINAL SPHERE.  Enter the
ATTRIBUTES REQUESTOR (F7).  LOAD the attributes file you saved
earlier.  Find the depressed button from your image/texture mapping
and cheer it up, I mean click on it.  If you click on EDIT AXES,
you'll see that Imagine 2.0's 'automatic axis scaling' works against
you in this perticular scenario.  Hit the TRANSFORM AXES button and
go though the POSITIION, SIZE and ALIGNMENT buttons, restoring their
values to what you wrote on your scratch paper earlier.  PERFORM,
then OK, then OK again to back out of the ATTRIBUTES REQUESTORS.
SAVE the updated half of your sphere.  DELETE it, then do this
paragraph's instructions to the second half of your sphere.
 
    What you've just done is made the AXES of the SPHERE HALVES
take up the same place in space.  And when they're together,
your image will appear seamless.  When they break apart, the
image will follow each half of your sphere just as you would expect
it to do in real life.  In some instances, you'll want to use your
original, un-sliced sphere in your animation until it breaks apart.
Then you replace the sphere with the two sections at the frame where
they float away or whatever.  If you also move the AXIS of each of
the center pieces to position 0,0,0, you can perform RADIAL
texture(s) to both of them to make it look like different layers of
the earth's crust or something similar.  Fun, isn't it?  Remember
that the parent axis of the sphere halves are the same position,
alignment and size as the original sphere, so when you replace
them at any time in the action editor, be sure to duplicate the
original sphere's POSITION, ALIGNMENT and SIZE bars, and give the
info to the newcomers.  Good luck!
@endnode

@node Chap13 "More on Speeding up Trace Renderings"

-- More on Speeding up Trace Renderings -----------------------------

    One small note.  An appendage to #7 and #8...
The smaller your object's faces are compared to your global world
size, the longer your renders will take.  For instance, if you set up
your globals to engulf a large bedroom, and in the corner of this
room is a desk, and on this desk is a complex object of a lamp or
telephone (or both).  This will dramatically slow down the render.
On the other hand, if the telephone or lamp was as large as, say,
the bed, your render won't take nearly as long.
@endnode
 
@node HowTo "How to use The Imagine Organizer"

    As of version 1.3 of The Imaginer Organizer, Cross-referencing
is available to you.  If you see a word like EDITOR or ESSENCE,
simply double click on it, and if it's part of The Imagine
Organizer's limited vocabulary, it'll jump to a section telling you
all about that word and how it related to Imagine.  One exception,
however, the word MUST be seperated by spaces.  In the above
example, ESSENCE will not work, because it's got a comma next to it.
But ESSENCE will work in this sentence and the previous one.  Once
I learn more about the amiga.guide's abilities, I can fix this
limitation.  If you double-click on a word that The Imagine Organizer
does not understand, your screen with flash, and you'll recieve a
mild electric shock (If are not holding the index finger of your left
hand in your Amiga's floppy drive, do so now).

    When you're done using the cross-referencing, hit the RETRACE
button at the top of the window, and you'll get back to where you
left off.

@endnode

@node Disclaimer "Disclaimer"
-- Disclaimer -------------------------------------------------------

    I claim no responsibility to the claims made in this document.
Use it at your own risk.

    Products mentioned in this document are a trademark of it's
respective company.

    This document can NOT be broadcasted, printed in a magazine
or other paper media without the express written permission of Carmen
Rizzolo.

@endnode

@node Imagine "Imagine"
-- Imagine ----------------------------------------------------------

    Imagine is the 3-D rendering system that this whole thing
revolves around.  If you don't know what this is by now, you have no
reason to be reading this!

    Call Impulse at (612) 425-0557.  They make Imagine.

@endnode

@node FidoNet "FidoNet"
-- FidoNet ----------------------------------------------------------

    FidoNet is a network of sorts.  Although not as grand as fast as
the InterNet and UseNet, the Amiga_Video echo there is a favorite
hang-out of mine.  Ask your local BBS SysOp if he carries FidoNet,
and to have him point you out to it.

    If you don't own a modem, chances are you have no idea what I'm
talking about here.  So pay no attention.  And buy a modem.

@endnode

@node Essence "Essence"
-- Essence ----------------------------------------------------------

    Essence is a set of "extra" textures available for Imagine.
The following is a review I made of it back when I first purchased it...


    Yup!  Here's another loopy review by Carmen!
 
 
         ESSENCE: A Library of Aglorithmic Textures for Imagine
 
    Drooling over Lightwave 3D renderings?  Want something a little
more intricate out of Imagine's surface textures?  Look into Apex
software's hot selling ESSSENCE for Imagine and Turbo Silver.
 
    What is Essence?  It's a library of new textures.  What is a
texture?  A texture can be a powerful influence on the overall
appearance of your objects.  A texture can alter the colour,
reflectivity, transparency and altitude of your object's surfaces.
Textures only use from 8 to 20k of memory, so there's an obvious
advantage over using IFF mapping.
    Of the textures that are included with Imagine, you can do things
like:  Add a checkerboard effect to a ground for the overused
'kitchen floor' look.  Make a surface become more and more
transparent like the beam of a spotlight, growing less intense as it
climbs into the atmosphere.
    Essence adds 60 (!) new textures to the existing 14 textures.
not all of the new textures are unique from the rest.  Many are
variations on a theme.  For instance, FRACTALCOLOR, FRACTALREFLECT
and FRACTALFILTER all do the same type operation, but only effect
an object's color, reflectivity or filter values respectively.
 
    Here are the requirements for Essence:  You must have either a
68020, 68030 or 68040 type accelorator.  Essence will not work on an
unaccelorated machine because it's textures use floating point math.
Essence will work with Turbo Silver and Imagine.  If you're
unfamiliar with using textures in Imagine (or TS), you'll be
completely lost with Essence.  It'll be worth your while to start
familiarizing yourself with textures right now.
    IMPORTANT NOTE:  The more dramatic textures in Essence are
SLOOOOW to render.  I'm talking the kind of slow that screams out for
a 68040.  The best examples of this are the textures based on fractal
mathematics.  Fractal operations on the Amiga have never been very
speedy, and Essence reminds you of it.
 
 
    Although Imagine's textures parameters ar very powerful, Essence
takes this power a step further.
 
    Every texture has the following features:
 
Fade: You can make your texture completely effective, or not at all.
    Imagine dissolving a texture into an object over time.  Or having
    one texture dissolving out as another dissolves in!
 
    Any time you make a boo-boo when entering parameter values, such
as giving a 5.xx when you're only allowed to use a solid 5, Essence
will paint your object with a loud checkerboard pattern to let you
know you goofed.  Different coloured tiles represent different errors.
 
 
    Every fractal Essence texture begins with the following parameters:
 
Initial Scale: Size (Imagine units) of the minutest of details.
# of scales: # of scales added to form noise.  Basically, the more
    scales, the higher quality.  Numbers higher than 6 really tack on
    the rendering time.  But wait!  This parameter does more!  If you
    add a 4.3215, the .3215 will act as a random number seed, while
    you still get 4 scales.  And yet another feature!  Making your
    parameter a negative number activates rotation enhancement, which
    can improve the look of fractals on flat surfaces and bump
    mappings in general.  Hats off to Steve Worely (The author) for
    putting three parameters into one field, leaving more parameters
    open for other goodies.
Scale Ratio: Rate at which scales decrease.
Amplitude Ratio: how smooth or sharp the amplitude of the scales get.
Time Ratio: How fast the scales change when animated.  Usefull for
    animating swirling clouds or smoke.
Time: Time when the texture is evaluated.  This feature is also used
    for animation purposes.
 
 
Here's a rundown of the new textures with some breif notes or
descriptions of each:
 
Bump: Fantastic flexibility, can range from lumpy glass looking to
    roughly-cut concrete.  Simply amazing, but slow.
DiamondDeck: a nice studded non-slip bump-pattern.
Flatten, Sphereshade: Two related textures.  Make your objects
    appear to be completely flat like a painting, or puff-up to
    swelling porportions.  Weird!
Hexmesh, Gridmesh, Stripes: Add raised hexagons with beveling.
Treebark: You figure it out.
Bricks, Checks: You now have cylidrical or spherical based versions
    of these classics.
BBCourt: basketball court!
Counter: Add a LED readout to your VCR objects!
HueRotate: Rotate your colours along the colourwheel.  Changes solid
    colours over time.
Mandelbrot: Stick a mandelbrot on your object and zoom, zoom, zoom in!
Polkadots: Did you see a doctor?  No!  Just spots!
VeinedMarble:  Hell-slick marbly texture.  based on fractals.  Slow.
Blob, Bozo, Fractal, Turb(ulent):  All fractal based textures.  Each
    comes with Colour, Reflect and Filter versions of each.  Create
    things like dirt, oil, clouds, military camoflauge, etc..
    Powerhouse textures.  Slow textures.
Cubist: Q*Bert anyone?
Floortile: Nice twist to the bland checkerboards.  Adds coloured
    'streaks' in the lanoleum (sp?)
Hex: Hexagons.  Three colours possible.
Triangle: See title
Swirl: Get dizzy!  Also good for screws.
SwirlFract: Have fractals tear that swirl apart.
Bandsim, Ringism, Shellism: Add bands or rings.. Like on Saturn.
BandFract: Fractal distortion to your bands.  SLICK!
Linearism, Cylindism, Radialism: More of the classics.  Improved
    transitions for radial.
LinearFract, RadialFract, RadialTurn, CylindFract, CylindTurb:  More
    sexy fractal interference.
Solid: Paste a solid color.
SwapCRF:  Exchange color values with reflectivity values.
    Interesting.
SwapRGB: Rotate the R,G and B values.
VaryabRGB, VaryabSRGB, VaryRelBright: Vary partent surface colour
    with fractals.
 
    I know this is an exausting review, but I think the only real way
to clue you in on the power is to let you know what each texture can
do.  Essence will set you back about $80.  But it'll vastly improve
the look of your objects.  Great for impressing those clients.  If
you've got the means, and the accelorator to match, I highly
reccomend Essence.
 
                                         Carmen Rizzolo

@endnode

@node Lightwave "Lightwave 3D"
-- Lightwave 3D -----------------------------------------------------

    Lightwave 3D is another 3D rendering system considered by some to
be Imagine's biggest compeditor in it's market.  Lightwave comes with
the purchase of the VideoToaster from NewTek.  You can call NewTek
for more information at (800) 765-3406.

@endnode

@node Objects "Objects"
-- Objects ----------------------------------------------------------

    An objects is just the generic term by us 3D people refer to the
cluster of points and faces that our 3D systems use to create an
image.
    To be a little more technical, and a little more Imagine-
specific, each object is anchored to 3D space by an axis.  An object
can be linked to other other objects.  The little network created by
all these linked objects is called a group.  The parent of the group
can be either an object or a lone axis.  You can tell objects are
grouped together by yellow lines running through their axis.

@endnode

@node Object "Objects"
-- Objects ----------------------------------------------------------

    An objects is just the generic term by us 3D people refer to the
cluster of points and faces that our 3D systems use to create an
image.
    To be a little more technical, and a little more Imagine-
specific, each object is anchored to 3D space by an axis.  An object
can be linked to other other objects.  The little network created by
all these linked objects is called a group.  The parent of the group
can be either an object or a lone axis.  You can tell objects are
grouped together by yellow lines running through their axis.

@endnode

@node Paths "Spline Paths"
-- Spline Paths -----------------------------------------------------

    Imagine uses "Splines" or "Paths" two basic ways.

    An object's position can move along a spline path.

    An object can be "conformed" to a spline path.  Think
of it as running a wire though soft clay, then bending the wire.

@endnode

@node Path "Spline Paths"
-- Spline Paths -----------------------------------------------------

    Imagine uses "Splines" or "Paths" two basic ways.

    An object's position can move along a spline path.

    An object can be "conformed" to a spline path.  Think
of it as running a wire though soft clay, then bending the wire.

@endnode

@node Spline "Spline Paths"
-- Spline Paths -----------------------------------------------------

    Imagine uses "Splines" or "Paths" two basic ways.

    An object's position can move along a spline path.

    An object can be "conformed" to a spline path.  Think
of it as running a wire though soft clay, then bending the wire.

@endnode

@node Stage "The Stage Editor"
-- The Stage Editor -------------------------------------------------

    The Stage editor, generally, is where you "Set the stage."
load the objects, point the camera, add some lights, tell who to do
what at a certain time [frame number], etc....

    At first glace, it looks a great deal like the detail editor.
With only one exception, no object editing is done here.  The one
exception is the ability to "snapshot" an object.  That is, going
to a frame number where an object in question is in the midst of a
"transition."  It can be morphing from one object to another,
exploding, whatever.  Click on it's axis and use SNAPSHOT from the
pulldown menu.  Then you'll get a requestor to save your object.

@endnode

@node Axis "Axis"
-- Axis -------------------------------------------------------------

    The axis is the "anchor" of each and every element in Imagine.
The way Imagine "knows" where to remember an object's position, is
by merely remembering it's axis in the position bar.  The location
of each object's points, are rememberd by their relation to it's
axis.  The same rule goes for what angle the object hangs at, and
it's size.  It all boils down to our friend the axis (kind of a
subtle pun there if you can figure it out).

@endnode

@node Axes "Axis"
-- Axis -------------------------------------------------------------

    The axis is the "anchor" of each and every element in Imagine.
The way Imagine "knows" where to remember an object's position, is
by merely remembering it's axis in the position bar.  The location
of each object's points, are rememberd by their relation to it's
axis.  The same rule goes for what angle the object hangs at, and
it's size.  It all boils down to our friend the axis (kind of a
subtle pun there if you can figure it out).

@endnode

@node Action "Action Editor"
-- The Action Editor ------------------------------------------------

    The Action Editor, the "twin" of the Stage Editor, is the heart
of Imagine's animation abilities.  It is a script, but it requires
less typing that you would think, so don't be scared of it.  It's
vital you understand what it can do for you.

    In the upper left-hand corner is the number of frames.  The number
of frames always starts out at "1" and you can simply click in the
text field there and change it. Just remember that full motion video
moves at 30 frames per second, and most Amiga animations move at about
15 to 25 frames per second - depending on the complexity, # of
colours and resolution of the animation.

    Each element has a BAR that travels down the time-line.  If there
is no bar on a certian frame, the value defined for that frame is
referanced from the last defined bar (to the left, or past).  In the
case of the ACTOR bar, if there is no bar on a certian frame, the
element does not exist on that frame.  Each element in the script has
6 characteristics that tell Imagine all it needs to know for Imagine
to do it's thing.  The following is the 6 ways an element can be
defined...
    ACTOR: Tells Imagine WHAT the element is.  If it's an object,
the actor information contains the pathname and filename of the
object used.  If it's a light source, the informations defines
what colour and intensity the light is.  The CAMERA is the only
exception.  The CAMERA never has an actor bar.
    POSITION: Tells Imagine WHERE the object is, based on it's axis.
This information can be typed in as X, Y and Z values, or an object
can be told to move along a spline path.
    ALIGNMENT: Tells Imagine what direction your element is facing.
You can type in it's X, Y and Z values in the form of degrees (0
through 359).  You can tell it to constantly "point" to another
object, or just an axis.  You can also tell it, when the element is
moving along a path, to aim in the direction that the path is leading
it.  Whenever an element is told to aim or "track" to or along anther
element, it's always the "Y" prong of the element's axis that does
the pointing.
    SIZE: Tells Imagine what size the element is.  Pretty simple, eh?
If, during the course of an animation, you increase only the Z value
in the size bar, the element will grow only along it's axis' Z
direction.  Special note for the CAMERA:  The X value in the CAMERA's
SIZE BAR define's the focal length of the camera.  It works like a
ratio.  If you increase all the size elements of the camera at once,
it will have no effect.  But the larger or smaller you make the
CAMERA's X value in ralation to the Y and Z values, the more the
CAMERA's vision will distort.  Larger X values will exaggerate
perspective and make the camera feel smaller.  Smaller X values will
flatten perspective effects and make the camera feel larger.  If you
want to make an animation of a camera moving through the eye of a
needle, boost the X value of the CAMERA's SIZE BAR.
    HINGE: gives the effect of an element moving in a bent, 'orbital'
motion of another element, instead of a straight line.  This is the
best I can do until I've done a tutorial in this.  I rarely use the
HINGE BAR myself.
    F/X: Any Special effect in Imagine's "Effects" drawer can be
applied to most any element.  Each effect has it's own interface.
And example of an effect is "Explode" wich blows the faces in an
object apart.  Each triangular face can be told to spin and
change size over time.  There can be two F/X going on at any time for
each element.
    Only ACTOR, POSITION, SIZE, and ALIGNMENT bars are required for
80% of the stuff you'll be doing in Imagine.
    Each element has a "name" along the left side of the screen.
This is NOT the filename of an object, it can be anything you want.
These names are how elements are called upon when two or more
elements react with one another.  For instance, if you want an object
to follow a path, and the path you want it to follow is named
"PATH.1", you will type in "PATH.1" in the POSITION BAR's requestor.

-- Quickie Tutorial to Help You With the Action Editor --------------

    Let's say we want an object to appear at frame 1, then start
moving from frame 5 and end moving at frame 25.
    If you haven't already, start a new project.  It's easiest to use
the STAGE EDITOR for the initial loading and placing of objects.
Enter the STAGE EDITOR to load and place an object.  Any object.
Save changes and move to the ACTION EDITOR.  You'll see the changes
you made in the STAGE EDITOR  On frame one, there is an ACTOR,
POSTION, ALIGNMENT and SIZE bar for the object you just added.
    Change the number of frames to 25.  With the INFO button already
pressed, click on the ACTOR BAR of your object.  You'll see it's
Starting at frame 1, and ending at frame 1.  Change the ending value
to 25.  The hit OK.  You'll see the ACTOR BAR stretch out to the
last frame of the animation.  The object will now be visible the
entire animation -provided it falls inside the CAMERA's point of
view.  Then Click on the ADD button at the bottom of the screen.
Carefully line your pointer so that frame 5 is highlighted at the top
of the screen, and "Posn." is highlighted at the right.  Click once.
Now slide the mouse to the right, until frame 25 is highlighted.
Click again.  You'll get a requestor where you can type in some
different numbers to change the element's position information.
    There.  You've done it.  Although it's easier to use the STAGE
EDITOR, go to frame 25, move an object and use POSITION BAR in the
pulldowns to automagically add a POSITION BAR, this tutorial
helps show you what's really going on [WHEW!  What a sentence!].

@endnode

@node Editor "Editors"
-- Editors ----------------------------------------------------------

    Imagine is a modular system.  It is divided up into 7 editors.
Currently, The Imagine Organizer only deals with the following
editors:

DETAIL STAGE ACTION and PROJECT

@endnode

@node Delete "Delete"
-- Delete -----------------------------------------------------------

    Whenever you are told to delete something in my tutorials, I
never mean for you to delete a physical file from your hard drive.
    To delete an element from an editor, simply click on it's axis
and choose DELETE from a pulldown menu.  The subject will vanish from
view, and from the Amiga's memory.  Once you do this, the element is
forever gone, unless you have saved it to disk.  Using delete from
the pulldown will not effect saved files.

@endnode

@node Aligment "Alignment"
-- Alignment --------------------------------------------------------

    The alignment values of an element are stored in three numbers:
X, Y and Z.  These numbers are rotational degrees.  Adding "90" to
the Z alignment value of an object will make an object spin one-
quarter of a full turn along it's Z axis.

@endnode

@node Bar "Bars"
-- Bars -------------------------------------------------------------

    In the ACTION EDITOR, bars are used to represent an action taking
place along a time line.  A bar does not have to stretch along a
multitude of frame numbers.  A bar can begin at frame one, and end
at frame one.  A fingle frame bar like this is used to give an actor
it's initial setting.  Then another bar, say, from frame 2 to frame
25, will change that aspect of the element from it's original setting
on frame one, to the new one on frame 25.  For this kind of change
to happen slowly during the duration of the 23 'in between' frames,
a "Transition" value of 23 would be added to the bar.  A bar in the
Actor's line would contain information of who or what the actor is.
Other bars can assign special effects to an actor.

@endnode

@node Track "Track"
-- Track ------------------------------------------------------------

    When an object is told to "track" to another object, the first
object's axis will rotate so it's "Y" prong will point towards the
other object's axis.  One very popular use of tracking is to add an
AXIS to your scene, rename it "CAM.TRACK" and move it in the middle
of the all the fun.  Then add an ALIGNMENT BAR to your CAMERA in the
ACTION EDITOR, and tell it to TRACK to "CAM.TRACK".  As long as
your "CAM.TRACK" axis follows the action, your camera will never
miss out on the fun.

@endnode

@node Position "Position"
-- Position ---------------------------------------------------------

    Very simply, Position values are the "Where" in describing an 
actor (An actor can be an object, lightsource or any other element).
It's POSITION is more specificaly X, Y and Z coordinate values of the
distance of the actor's AXIS from HOME, or, the global location of
0, 0, 0.  In the DETAIL EDITOR, when you first add an object, the
POSITION of it's axis is at 0, 0, 0.  If you click on it, hit the
'm' key to MOVE it to the right in the FRONT VIEW window, you are
ADDING to it's X POSITION value.  If you slide the object to the
left, you are subtracting it's X POSITION value.  Notice the Z and
X markings in the lower left-hand corner of the FRONT VIEW window.
The two lines connectng them intersect at a right angle.  This could
be thought of as representing the GLOBAL, or world axis.  Whenever
something is moved to the right, or, in the direction of the "X"
prong of the GLOBAL AXIS, it's X POSITION value is ADDED to.
Whenever something is moved in the OPPOSITE direction the "X" prong
is facing, it's X POSITION value is taken away from.  POSITION
values can also be typed in directy.  Click on an object and
select "TRANSFORMATIONS" from the pulldown menu.  Then click on the
POSITION button.

@endnode

@node Frame "Frames"
-- Frames -----------------------------------------------------------

    Images, pictures, whatever are frames.  The number of frames you
want would be defined in the ACTION EDITOR.

@endnode

@node Tween "Tween"
-- Tween ------------------------------------------------------------

    "Tween" is just a computer artist's term for a certian thing
that computers are good at.  Probably standing for BETWEEN, tween is
when the user defines a beginning and end "key" points, and the
computer fills in all the informations IN BETWEEN the two keys.  Most
of the work done in the ACTION EDITOR relies heavily on key frame
setups and tweening (Both key frames and tweening mean the same
thing).

@endnode

@node Size "Size"
-- Size -------------------------------------------------------------

    Very simply, Size values are the "How big" in describing an 
actor (An actor can be an object, lightsource or any other element).
To the best of my knowledge, SIZE does not effect a lightsource in
any way.  Size information is only the length of the X, Y and Z
prong's of an object or group's Axis prongs (I call those dotted
lines you see sprouting from an axis "prongs."  It's not an
official term in any way.).  The actual data of an object gets it's
position (read: Distance from axis) based on how big that axis is.
So when you click on an object (or whatever), hit "s" to scale and
then slide the mouse to watch it scale, you're really only changing
the size of the object's axis.  The rest of the object just follows
suit in porportion to the axis.  If you scale only the "Z" prong
on an object's axis, and the "Z" prong is facing straight up, the
object will only become taller, not fatter as well.  For a more
detailed description of SIZE information, see my description of
the ACTION EDITOR.

@endnode

@node Detail "The Detail Editor"
-- The Detail Editor ------------------------------------------------

    The Detail editor is the modelling workhorse of Imagine.  There
is no way I could describe everything about it here.  Besides, most
of these tutorials deal with ANIMATION of objects, not really
focusing on making them.  It's more of an art form all to itsself.
Perhaps one day I can expound on this area, but it's a big area
indeed.  So don't hold your breath.  The best I can say for now is
just to grab some scratch paper and jump right in.  The more you
try, the more you'll learn.

@endnode

@node Parent "Parent"
-- Parent -----------------------------------------------------------

    The "Parent" typically refers to the TOP of a system of grouping
objects.  Groups are objects that are connected together by yellow
lines.  The parent of the group can be spotted by two ways:

    When in the detail editor in PICK GROUPS mode, Clicking on the
parent objects will cause all other parts of the group to turn
blue or purple.

    Notice the flow of all the yellow lines.  It's not always easy to
see, but ALL the "Child" parts of a group will have yellow lines that
ultimately wind up coming from the parent.

@endnode