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
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.
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.
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:
- 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.
- 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.
- 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.
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.