Rotating around objects in blender with geonodes

Hello everyone, in this article I will show and explain how to rotate around objects in blender using geometry nodes. Once in a blender chat I saw a message asking a person to help him with the crystal animation.

The result will be something like this:

First, let’s create the geometry nodes.

We will do the movement of objects in a circle, so we delete the Geometry input and create a Curve circle , we will twist it.

Next, we need to place objects along this curve, this is done by the Instance on points node, immediately after adding we put a tick on Pick Instance , I will place the collection, so I add Collection Info , put Relative and check both boxes, Separate Children and Reset Children , more you can read about it here https://docs.blender.org/manual/ru/dev/modeling/geometry_nodes/input/scene/collection_info.html Next, I connect it to the Instance input in the already added Instance on Points node, then I put the Scale Instances node (it will be clear later why I don’t scale in instance on points), then I put the Group Input node, it is needed to display the parameters in a convenient form , as if the nodes are just a modifier, output as a parameter I want the collection and size of the elements.

In order for the scale to be not a vector but one value, you need to change the value of vector to float.

I also want to have fewer objects, for this I change the resolution of the curve.

All elements go sequentially, you need to add a random value node and switch the value to Integer and connect to Instance on Points to the Instance Index input, then try changing the parameters.

Next, let’s remove a few objects, this can be done using the random value node, after adding the node, you need to change the value to Boolean and connect it to Instance on Points to the Selection input, then try changing the parameters.

Next, we will make a random size for objects, as you probably already guessed, this is done by the Random value node, change the minimum and maximum values ​​​​and connect Instance on Points to the Scale input.

I also want a random rotation of the object, I do the same, add a Random value , change the minimum and maximum values ​​​​and connect to Instance on Points to the Rotation input.

Also, the minimum and maximum values ​​can be displayed in the parameters, just as I did before.

Now we need to rotate the objects, this is done with the Transform node, you can already rotate the objects if you change the Rotation, but we need to do it automatically

Next, you need to add such a bunch of nodes (switch the value of the Vector_speed parameter to Float), now I will explain how it works

Scene Time takes seconds and multiplies them (Vector math -> multiply node) with the vector , because of which the rotation increases every second in order to somehow control it (yes, you can put any number in vector_rotate not 1, but any other number, but I I don’t want to), we make another Vector math node and multiply the resulting vector by some number, as a result we get rotating objects, the task has already been completed, but I also want to add that the objects do not move quite linearly.

I will do this using the Noise Texture node, add it and change 3d to 4d, add Seconds from the Scene Time node to the input, and also Make a parameter from Scale and reduce it a little, otherwise the objects will just shake

Then we simply connect to Color ramp , with it you can additionally adjust the movement of objects, then multiply the resulting ones (Vector math) by the position of the object, if this is not done, then the objects will simply move out

Next, we create Set position and connect Vector Math to offset

At the end, I want to make the radius of the curve circle a parameter

Done, now we have rotating objects, with a non-linear motion path, which can be adjusted. If you don’t understand something, then you can download the blend file with nodes from the link https://drive.google.com/file/d/1TETcZH5IkpmG8u7b4jeRAlMcPgc0sEg-/view?usp=sharing

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *