lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Lua list <lua@bazar2.conectiva.com.br> writes:

>A video producer will just want to apply various effects and 
>export the whole kaboodle to a final video file, no plugin 
>barriers.

That's exactly what I was suggesting. You would have a set of images, text
objects, etc, which you would be able to move around the viewport under
script control while applying effects (a moving object could have motion
blur, say). This could be exported to a video file for use as a motion
graphic at the start of a movie. However, there is no reason why the
graphic objects could not be moved around interactively (ie, the script
responds to keystrokes and other inputs). A video file can't really
respond very much and so you would need a player application or browser
plug-in for the interactivity. An example of the sort of thing I mean is
Blender: it can render a sequence of animated 3D, but it also has a
built-in game engine; you can store the animations in any convenient video
format, but the interactive games need to use the Blender player.

>Video effects are widely varied and have to be fresh to 
>audiences -- a creative artist wouldn't want to be shackled by a 
>drop-down menu of effects... the point is that your effects will 
>be limited by what you implement in the player. PowerPoint 
>enthusiasts will like that, but for real work...

I suspect you aren't familiar with the kind of software we are talking
about here. A tool like Apple's Motion is a bit like Photoshop but with
effects that can be varied over time. The effects are not "limited" any
more than Photoshop is limited by the set of filters and effects in the
implementation. I suppose that in the Lua player you would have a Lua
function attached to each graphic object. This would be called on each
frame of the sequence:-

  function frameAction(state)
    <-stuff->
  end

If you wanted to fade an object over the course of the sequence, you would
do something like:-

  function frameAction(state)
    state.opacity = state.opacity - 1
  end

Called every frame, this would eventually make the graphic completely
transparent. If you also wanted to move the object, you would have:-

  function frameAction(state)
    state.opacity = state.opacity - 1
    state.move(5, 8)
  end

...and the other effects are basically just similar commands whose
parameters can be varied on each frame of the script. Effects can be
combined in a straightforward way by the order in which they occur in the
script.
Far from being limited, I would say that this actually lowers the entry
level since you are effectively writing your own effects plug-ins but
using Lua rather than a complex C/C++ API.

&.


#####################################################################################
This e-mail message has been scanned for Viruses and Content and cleared 
by MailMarshal.
The Blackpool Sixth Form College.
#####################################################################################