0
$\begingroup$

Is there a method to have the graph editor only use whole values between key frames? I've tried linear interpolation as to remove any ease in/out. For example: I have key frames at frame 1 and 100 that control a modifiers value (also 1-100). When animated at animation frame 50 one would think it should read 50 in the modifier value, but its 49.637 and frame 51 is value 50.963. I'd like the values to only be whole numbers to remove random effects. So perhaps something that generates stepping in between frames?

$\endgroup$
  • $\begingroup$ I don't think this is possible at the moment - you can add an f-curve modifier to 'step' based on a number of frames but not to step the actual curve value. I think the only way to achieve this would be to animate another property (eg, the location of an empty) and then use a driver to take that value and apply a script command to 'round' it to the specific step size. Also note that your assumption about frame 50 is actually not correct - frame 50 is 49 frames from 1 and 50 frames from 100 - so is not actually in the centre. For 50 to be the centre you need to animate between frame 0 and 100 $\endgroup$ – Rich Sedman Mar 17 at 9:52
  • $\begingroup$ Sorry, I might not have made it as clear as I was hoping. It's the modifier value and frame number that I'd like to match as whole numbers. Frame 1 = value 1.00, frame 2 = value 2.00, etc. So frame 50 should be value 50.00, but using 2 key frames with it set to linear interpolation doesn't give whole values, ie: frame 50 = 49.637. The only work around at the moment I'm finding is keying each frame manually, which is not something I think is the proper/time efficient method. $\endgroup$ – SGZLS Mar 17 at 10:07
  • $\begingroup$ It sounds like the best solution for your situation is to use a Generator modifier on the f-curve. This allows you to specifically set a relationship between x (the frame) and y (the value). $\endgroup$ – Rich Sedman Mar 17 at 22:09
0
$\begingroup$

In order to have the f-curve follow precice values (eg, to follow exactly to the frame number) you can use f-curve modifiers to generate the values mathematically.

To achieve this, you first need to add a keyframe to your property to create the f-curve and then view the properties in the Graph Editor (N).

In the Modifiers section, click Add Modifier and select Generator.

add modifier generator

The Generator allows you to define an equation to assign a value for the f-curve (y) for each frame (x) as a polynomial equation. For a 'straight line' relationship you need a '1st order' polynomial - so set Poly Order to '1'.

For the value to always equal the frame number you need to define it as y = 0 + 1x (ie, `y=x') - so set the first parameter to '0.0' and the second to '1.0'.

By ensuring the parameters are integers the result will be an integer for any integer frame number.

You can use this same technique to generate values for more complicated scenarios - for example, to set only for a particular range of frames (enable 'Restrict Frame Range') or to jump multiple values per frame (eg, y = 0 + 5x would increment the value by '5' for each frame) or to use a higher-level polynomial for non-linear relationships.

$\endgroup$
  • $\begingroup$ This works!!! :D Thank you! $\endgroup$ – SGZLS Mar 19 at 21:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.