To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.cadOpen lugnet.cad in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 CAD / 13299
13298  |  13300
Subject: 
Re: My humble opinion about LDraw animation
Newsgroups: 
lugnet.cad, lugnet.cad.ray, lugnet.animation
Date: 
Tue, 30 Aug 2005 13:51:35 GMT
Viewed: 
16319 times
  
On 30/08/05, James Reynolds <james@magnusviri.com> wrote:
Usability was a key issue - coders are coders, and designers/animator
rarely want to dive in to the low-level guts of a system. Those
wanting to animate here - should not have to either. If they want to
do advanced animations - then yes they do want to understand paths and
a little about splines, but they also be able to place a part at point
A in a gui, then go to the next keyframe and place it at point B - and
the software be able to handle something simple enough to interpolate
between those two keyframes. That should not require any scripting on
a users part, or a description language - it should be just point and
click.

How are keyframes internally structured and saved to disk?  Are they
arrays, hashes, and how is the interpolation between keyframes
usually handled?  I haven't had time to research it myself, and I'm
not sure I would even be able to find the answer anyway.  I'm very
interested in learning because POV-Ray doesn't support keyframes and
if I could just write a simple script to parse an array/hash that
would probably make what I do easier on me.

James


First I should apologise if I sounded harsh - I have spent the last
few months of my day-job dealing with a nightmare UI built by other
coders with absolutely no end-user consultation. So I recognised
similar patterns and had already gotten the hump.

I am not trying to belittle peoples ideas, but prevent mistakes I have
seen made being made again, especially with something like this. I
want to make it clear that I would be extremely keen to see a Lego
animation format, and to contribute to and use it.

Right - now to James' question:

To animate, you should probably use paths. Consider the format as
objects, which are stored as XML. For the intial scene, the LDraw
parts (LDR files, or an MPD file and specific part) would be
referenced and given object IDs in the top level of the file. The
parts object would also include enough information to optionally
override the default origin or orientation - which may make animating
some components easier. The paths would be a collection of line
segment objects which may be lines, arcs, splines/b-splines, and for
the sake of interpolation, should be represented internally in
parametric terms. Each part can then be assigned to follow a path.

The UI would create a simpler path when an object was dragged between
keyframes, but the user would be able to specify complicated ones by
building the paths then assigning objects to follow them.

A simpler graph would be used to represent each axis of rotation -
which could be viewed as a graph, or the object simply rotated in the
UI at certain keyframes. Rotations can get complicated - most 3D
people are aware of gimbal lock, and internally they maybe better
represented using quarternions as opposed to simpler euler matrices.
These graphs could quite happily use objects similar to paths, but
constrained to two dimensions. The graphs might also be used to
represent other varying data in the system - an example I can think of
might be lighting conditions if you want light intensities to change.

Keyframes would then be created as objects to which nodes along the
paths or graphs may be assigned. The nodes themselves are a collection
of objects inside the path container objects. The actual keyframe
objects would store the timecodes, and once read into an API, probably
have backrefs to the nodes that are assigned to it.

All of this complication should be hidden from the user, with an
interface with which they simply draw the segments, and constrain
them. The graphs would be accessible as graphs, as well as specific UI
widgets for their use (like a volume slider drawn beside a light, or a
cone for a cameras FOV. The camera would just be considered a part
along the others - so it can be manipulated in the same way. This
would mean that an editor app could visualise the camera tracking a
path from a fixed view during editing.

I am sure I could think of more given time - but this would be a start.

OrionRobots
--
http://orionrobots.co.uk - Build Robots



Message has 1 Reply:
  Re: My humble opinion about LDraw animation
 
(...) Ok, you lost me. Are you talking about paths as lines and curves or paths as in parent.child.grandchild? Because you mention XML and objects, I'm confused (could mean XPath or OO...). (...) Yes! I talk about overriding default origin here: (...) (19 years ago, 5-Sep-05, to lugnet.cad, lugnet.cad.ray, lugnet.animation)

Message is in Reply To:
  Re: My humble opinion about LDraw animation
 
(...) How are keyframes internally structured and saved to disk? Are they arrays, hashes, and how is the interpolation between keyframes usually handled? I haven't had time to research it myself, and I'm not sure I would even be able to find the (...) (19 years ago, 30-Aug-05, to lugnet.cad, lugnet.cad.ray, lugnet.animation)

61 Messages in This Thread:




















Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR