7
$\begingroup$

Is there a way how to randomly delay an animation? i mean i don't want a set of different instances to animate at the same time from 0% to 100% final animation state. So i want to introduce a random delay of maybe 0-3 seconds or something.

I have several of these types of animation setups on the timeline of these growth states animating from 0.0 - to 1.0.

enter image description here

$\endgroup$
2

2 Answers 2

8
+50
$\begingroup$

To achieve a delay of variable values in the context of your timeline, you would actually only need to define an offset and the duration of your animation.

You can accomplish this by using these two values together and mapping them to a specific range of values for scaling:

  1. Define the offset and use it as Max value in the node Random Value. This defines a random start frame for the animation.
  2. Subtract this resulting value from the current frame. So you get your offset times.
  3. To make this value practical, use the Map Range node, again using your duration as the maximum value for the length of the animation and mapping the values to a range of $0 - 1$ for scaling.

enter image description here

Here is an overview of the Node group:

enter image description here

Here is the blend file:

$\endgroup$
4
  • $\begingroup$ does this only work for instanced objects? is there away to apply it for n unique user-created objects as well? $\endgroup$
    – Tejas
    Commented Nov 3, 2022 at 21:31
  • $\begingroup$ @Tejas I don't know your setup, but basically this should work. You could put the objects into a collection and include it with Collection Info. $\endgroup$
    – quellenform
    Commented Nov 3, 2022 at 21:49
  • $\begingroup$ i'm not familiar with the collection method you speak of, all my objects are in a collection and i have dragged in the collection info node, now what? $\endgroup$
    – Tejas
    Commented Nov 3, 2022 at 22:06
  • $\begingroup$ @Tejas blender.stackexchange.com/… $\endgroup$
    – quellenform
    Commented Nov 3, 2022 at 22:25
4
$\begingroup$

enter image description here

Would this be suitable? I'm not sure what the output of greater than is (but if its just 1, or 0, use a math node to multiply the random value by that output 1). Once frame time is greater than your random number the rest of your nodes will start animating.

$\endgroup$
5
  • $\begingroup$ thanks for your response. unfortunately this will only sort of work for one animation which is the one at starting at frame 0. it will not work for the following sets of animations that start further down the timeline. Also the "Growth" input parameter is on the timeline animating from 0 to 1. putting the condition will only stop it from flowing and once the condition is met it will not be 0 anymore but somewhere between 0 and 1 if not already 1. I need it still to be 0 and only start animating towards 1 when the condition is met. $\endgroup$
    – Harry McKenzie
    Commented Apr 16, 2022 at 14:54
  • 1
    $\begingroup$ @HarryMcKenzie You could use bpy to set keyframes using my complex logic. I could upload some of my bpy scrips to github that I use to set complex animations using keyframes from csv data, but unfortunately it will only give you some guidelines. $\endgroup$ Commented Apr 16, 2022 at 18:31
  • $\begingroup$ hey thank you. thats fine il just try to get an idea from it, can u kindly share a link? :) $\endgroup$
    – Harry McKenzie
    Commented Apr 16, 2022 at 22:57
  • $\begingroup$ @HarryMcKenzie github.com/HarrisonLeece/blender_bpy_script_examples Check out the 'use bpy to keyframe' folder. $\endgroup$ Commented Apr 16, 2022 at 23:15
  • $\begingroup$ @HarryMcKenzie ctrl-f 'keyframe_insert' $\endgroup$ Commented Apr 16, 2022 at 23:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .