0
$\begingroup$

I am quite new to blender geonodes so it is possible my problem has very simple solution.

I have created a node group that takes following arguments:

  • transition start (frames)
  • transition duration (frames)
  • transition randomness (frames)
  • ID and seed for random generator
  • initial rotation (degrees)
  • rotation (degrees)

On the basis of those parameters I can calculate when the transition starts and when it ends. As initially it was meant to work with mesh changing ID and seed values assures random value can be different for each mesh. Initial rotation is introduced in order to be able to link those node in a chain so each consecutive transformation starts where the previous hase ended. What I would like to do is to adopt my solution to differentiating the transformation time for setup where I have grid transformed into instances on points of the greed. My current setup, that obviously is missing something, rotates all instances at he same time.

The overall setup looks like that enter image description here

First group node "Instance size" is quite simple and in fact not important for the issue. Its job is to calculate the size of instance taking into account the size and granularity of grid and the size of space between instances.

Everything what is important for my issue takes place in "Mesh Rotate at Time Range" node group. For the visual clarity it has more than one level of nesting but in general is also pretty simple.

enter image description here

Initially I calculate the transition times which are then used to define ther rotation steps. In general it calculates start frame, current frame and end frame.

enter image description here

The current frame variable has random element added so it is shifted an number of frames forward or backwards but the lenght of transition times stays intact.

Next three node groups calculate the following:

  1. Initial rotation which in fact is only passing the input argument forward. It is in node group because I may in the future to make some modification to that.
  2. Roatation is calculated only when the current frame is greater or equal start frame and smaller of equal end frame. When this condition is not satisfied Rotatin is set to 0.
  3. Finally Rotation Final. It calculates the final state of rotation and is bigger then 0 only when the transition timeframe is ended. This way the output rotation is sum of either Rotation Initial and Rotation or Rotation Initial nad Rotation Final

Such setup allows me to animate rotation itself, keep the final rotation position but also create chain of rotations at different points of time. Below are the screenshots of all three node groups.

enter image description here

enter image description here

enter image description here

My problem is how to modify that setup to enable independent rotations of instances where the changing variables would be start frame and end frame of transition.

As I said at the beginning I am quite new to geonodes so not everything is obvious to me. I know that other parameters like rotation itself, size, position could be modified by Position or Index nodes but I do not know how to incorporate them into my setup.

$\endgroup$
1
  • $\begingroup$ Connect a random number node somewhere in the path that leads to the instance rotation $\endgroup$ Commented Oct 21 at 20:04

1 Answer 1

0
$\begingroup$

I guess I have solved the issue. Below I will show only that part that is responsible for rotations as the full setup involves also changes to material of given instances and some initial setup of the grid that is not based on grid node but purely on math nodes.

In a nutshell I started with joining the meshes with option "As Instance" set to true. Then to each instance/mesh a random value ranging from -1 to 1 is associated. Here is top level setup

enter image description here

The Mesh (Instance) Grid is as I have written above the math formula to create the grid. For reference you can see below the setup however it is not critical to the main issue.

enter image description here

Having meshes / instances assign to proper positions we enter the main node "Instance Rotation In Time". It is multilevel node. Below is the top level setup.

enter image description here

First of all, on the basis of input values the key frames are calculated. The way input sockets are structured have its purpose. In order to ensure that there is no mistake in frames that needs to be sequential I decided to utilize the summarize approach where the entire scene is sum of all input parameters hence there is no risk of mistakenly define the transition start after the transition finish. The setup to calculate keyframes is shown below.

enter image description here

When the basic transition keyframes are calculated we neter next node when the transition times are calculated for each instance.

enter image description here

And then we enter main node which rotates the meshes / instances within time frame specific for each node and finaly the end rotation value is send to output so it can become the initial rotation for next rotation node. The setup is below but due to its size it is split into two screenshots.

enter image description here enter image description here

And that's it. I hope this will help other newbies.

Currently I am also working on changing the material for each node where the change is also triggered by current frame. So finally I can make entire animation - which will be a kind of slideshow - without defining a single keyframe in Dope Sheet.

$\endgroup$

You must log in to answer this question.

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