I'm trying to record a video using QUEST's built-in video recording
(saving to the Camtasia codec for later editing), and I have a
sequence of saved views I'd like to fly between while recording.  I
can fly very nicely between views using BCL statements, but I'm not
sure of the best way to execute those statements while running the
model.
Currently I have a SCL logic that just executes a scene change, then
delays for a while, then flies to the next, but it's not working out
very well.
I was just wondering if anyone had any information that could help me
get a nice video recorded.
Thanks,
Jon
I have used this routine for a number of years.  It is similar to your
approach.  It works well for me.  Read the comments for implementation
and hints on making it work more smoothly...
I use the BCL command from the file pulldown to test how the
transitions from one view to another will look.  You can also draw a
conveyor and adjust via points to have very fine control over your
views.  Simply draw the conveyor, put a part onto the conveyor, and
mount the camera to the part.  This takes a long time to get right but
the views are exactly what you want.  The first method (shown below)
is the one I use 99% of the time.
One last video note, adjust your color defintions for a better looking
video...   Preferences->Color->Define.   Look for fully saturated
colors (at 100%) and reduce these numbers to 70% or 80%.  The reds and
blues bleed particularly bad.  Save the environment file somewhere and
you can reload it whenever you are shooting a video.
Joe
------------------
VAR
        view_coreography_required       : integer
-- INSERT INTO INIT LOGIC
---------------------------------------------------------------------------
procedure coreographer_init()
VAR
        response_options        : array[2] of string
BEGIN
        response_options[ 0 ] = "NO"
        response_options[ 1 ] = "YES"
        item_pop_up(" DO YOU WANT VIEW COREOGRAPHY ? ",
response_options, view_coreography_required )
END
-- MAKE A MACHINE AND GIVE IT THIS AS A PROCESS LOGIC
procedure xview_manipulation()
VAR
        ret_val        : integer
BEGIN
    if( view_coreography_required == 0 ) then
                suspend_logic
                exit
     endif
    while(TRUE) do
        ret_val = BCL(" SET WORLD BACKFACE TO ON")
        ret_val = BCL(" SET VIEW TO 'top' " )
        -- if you are recording 15 fps on avi output, this will give
you a video that runs 15x real time when played back
        -- for real time at 15 fps, use 1/15 for your time interval (.
0666)
        -- you can adjust this interval during the recording (at any
point in the script) to jump over periods of your model that are not
as interesting to watch :)
        ret_val = BCL(" SET SIMULATION TIME INTERVAL TO 1.0")
        delay 10
        ret_val = BCL(" LOCATE CAMERA BY -200,0,0 in 29" )
        delay 30
        -- The "IN" portion of this statement is critical to smooth
operation.  Without it, your video will snap from one view to another
        -- I am pretty sure that this is 29 updates not 29 seconds but
a quick test will tell you that
        ret_val = BCL(" SET VIEW TO 'top1' IN 29" )
        -- the BCL command is not time taking so you have to insert a
delay to allow the pan to complete
        delay 29
       -- delay here would pause at that specific view for a period of
time
       delay 20
        ret_val = BCL(" SET VIEW TO 'top2' in 29" )
        delay 29
        ret_val = BCL(" SET VIEW TO 'top3' in 29" )
        delay 29
        --repeat for as many views as required.  you need to name the
views top1, top2, top3, etc for this to work
      endwhile
end
Thanks for the great advice, as always.  That seems to work pretty
well, so I'll use that. Also great tip with the colors, makes
everything look much better.
Thanks again,
Jon