POV-Ray : Newsgroups : povray.binaries.animations : Robot/Keyframe Test (Divx Link to 1.3MB) : Re: Robot/Keyframe Test (Divx Link to 1.3MB) Server Time
5 Jul 2024 09:59:46 EDT (-0400)
  Re: Robot/Keyframe Test (Divx Link to 1.3MB)  
From: Tim Nikias
Date: 28 Apr 2006 14:59:16
Message: <44526604@news.povray.org>
> Actually about keyframing, I was interested enough to try to post a
response
> but the web interface doesn't always let me log on....  So about that, I
> can't remember what all I was going to say before, but for the project I'm
> working on, I'm planning on dumping everything into a big array of floats
> (not vectors) for each keyframe, not all of which need be defined.
SNIP some

That's roughly the same approach I take. Since many values in my rig rely on
vectors instead of single floats, I decided to have the system support
parameters up to 4 dimensions. I haven't properly cleaned the code yet, not
to mention that I wanted to see how I can modify a few things so that later
updates with new interpolation types might find their way into the system
very easily... But anyways, my system is array/macro based. Arrays store the
data, macros take care of placing and sorting it properly.

For example, here's how I set the system for the robot:
Kf_Group_Start("ClipA",7) //Filename, Id-Amount

Kf_Create_Id("Position",3)
Kf_Create_Id("Orientation",3)
Kf_Create_Id("Look_At",3)
Kf_Create_Id("Neck",3)
Kf_Create_Id("LArm_Orient",3)
Kf_Create_Id("LArm_Position",3)
Kf_Create_Id("LShoulder_Rotation",3)

Kf_Keyframe("Position",0,<15,0,4>)
Kf_Keyframe("Position",2.5,<4,0,4>)
Kf_Keyframe("Position",3.6,<4,0,4>)
Kf_Keyframe("Position",7,<0,0,0>)
Kf_Keyframe("Position",7,<-1,0,0>)

[... keyframes for the other Ids ...]
Kf_Group_End()

#declare Triball_Position = Kf_ValueOf("ClipA","Position");

Of course there are some other variables which tell the system what time it
is, in order to calculate the proper values, but that's basically it. It's
clean and simple to use, and if I accidently mix up a keyframe's time,
they'll still get sorted properly. Additionally, I don't have to rely on
actual frames, so once I decide that motion blur is needed, I just render
with 10 times the frames and get the same animation.
Using undefined array-values makes the export difficult (you can declare an
array like this #declare Some=array[4] {1,2,4,6} only if all values are
defined...), just something I'd say to your proposed idea.

> Nice modeling on your robot :)

Thanks, it took quite some time as well, not the modelling itself, but
rather the designing, tweaking and refining until it looked proper...

>...can't wait to see your Chasm short.

Ah well, but you'll have to. See, I haven't even started on the sets yet...
I'm very ambitious about this, so rather than finish with some sloppy, I'd
rather take my time... :-)

Regards,
Tim
-- 
aka "Tim Nikias"
Homepage: <http://www.nolights.de>


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.