1
$\begingroup$

SlowParent.gif (the upload from external links isn't working for me it says "File format unsupported")

The Method

I parented the circle to an empty and rotated the empty a complete 360, then I selected the circle, then I ticked the slow parent option in the relation extras tab and set the value to 7.

The Question

As you see in the gif image, while rotating the scale of the circle changes, which is surprising since I didn't animate the scale. How do I fix it ?

The BlendFile:

Edit:

I tried using Crantisz's solution but unfortunately a whole new problem shows up, the entire circle reverses it's animation at the end if I add a limit scale constraint. enter image description here

$\endgroup$
1
$\begingroup$

I don't know why the 'Slow Parent' is causing a change in scale - intuitively that just doesn't make sense. Perhaps it's worth logging it as a bug report.

However, you can achieve the same effect using Drivers, using a Scripted Expression to define the relationship between the two objects.

To set this up, right-click the Rotation field in the properties panel (N) and 'Add Driver'. This should make the field turn purple to indicate the presence of the driver.

Swap to a Graph Editor window and change the mode to 'Drivers'.

Select your driver and you should see a variable ('var'). Add a second variable and set each variable to the relevant property in each object. In my example I have each set to 'rotation_euler1' for each of Cube and Empty.

Set the scripted expression to '(var * 6 + var_001)/7 if frame>1 else var_001'. This expression uses a conditional ('if .... else') to set the property to the value of 'var_001' on frame 1 or to the weighted average of 'var' and 'var_001' for any subsequent frame.

driver

NOTE : You may need to set the 'Auto Run Python Scripts' in the User Preferences to enable 'Scripted Expressions' in Drivers if not already set.

settings

This produces the following result :

animated result

To get the child to follow the parent more or less closely you can adjust the values in the weighted average. For example, '(var + var_001)/2 is an 'unweighted average', '(var * 2 + var_001)/3' is more weighted towards 'var', (var * 3 + var_001)/4' is even more weighted towards 'var'. To generalise, set it to '(var * A + var_001 * B)/(A+B)' and adjust A and B as desired.

Blend file :

$\endgroup$
  • $\begingroup$ Hmm, seems like a painful solution for a simple problem, but well, as long as it works, thank you. Where exactly do I report the bug ? I have never done it before. $\endgroup$ – Retrax Dec 28 '17 at 14:50
  • $\begingroup$ Yeah - it’s a lot more complicated than just clicking a checkbox - but does provide more control since you can use the same technique for driving other properties. If you go to blender.org/support you should see a “Report a Bug” link. You’ll need to register a new account before you can raise it as an issue. $\endgroup$ – Rich Sedman Dec 28 '17 at 15:01
0
$\begingroup$

Adding limit scale constraint will fix the problem, but not slow parent itself.

enter image description here

Slow parent is outdated feature, if you want more control, try something near Animation Nodes.

$\endgroup$
  • $\begingroup$ Add the constraint to the circle or the empty ? $\endgroup$ – Retrax Dec 28 '17 at 7:43
  • $\begingroup$ circle of course. Object name on screenshot $\endgroup$ – Crantisz Dec 28 '17 at 7:45
  • $\begingroup$ Sorry it doesn't work, I update the question again. $\endgroup$ – Retrax Dec 28 '17 at 7:51
  • $\begingroup$ Oh sorry, so stupid of me, I forgot to set all the values to one. But nevertheless it produces weird artefacts. I'll update the question again $\endgroup$ – Retrax Dec 28 '17 at 7:59
  • $\begingroup$ Hm. Clear scale from empty. $\endgroup$ – Crantisz Dec 28 '17 at 8:12

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.