Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 19/12/2013 at 12:06, xxxxxxxx wrote:
I'm working on a nondestructive keyframe to slider plugin and I need a little help. I have gotten to the point where I can get the value of the curve on a specific frame. However I can not figure out how to get the value between the frames.
For example, posY on frame 43 is 16 and on frame 44 it is 16.921. If I use frame 43.5, Curve.GetValue(key,fps) rounds the key to a whole and I get 16.921
Is there a way to get the value of a curve between frames?
Thanks in advance.
On 19/12/2013 at 14:09, xxxxxxxx wrote:
Hi Shawn,
you are talking about keys but CCurve.GetValue() does not expect CKey as its first parameter. Passing a BaseTime object, just as the documentation states, works fine for me. > > > > import c4d > > > > > def DescID(*args) : > > return c4d.DescID(*map(c4d.DescLevel, args)) > > > > > def main() : > > descid = DescID(c4d.ID_BASEOBJECT_REL_POSITION, c4d.VECTOR_Y) > > track = op.FindCTrack(descid) > > curve = track.GetCurve() > > fps = doc.GetFps() > > > > > for i in xrange(100) : > > x = i / 99.0 > > print curve.GetValue(c4d.BaseTime(x), fps) > > > > > main()
This script prints out the Y position of the selected object from second 0 to 1 in 100 steps.
Best, -Niklas
On 06/01/2014 at 13:00, xxxxxxxx wrote:
Thanks NiklasR! In my code I realized I was giving an integer rather than a float. Works great!