Multiple Objects Revolving Around A Rotating Actor

If you like, you can share a screenshot of how your CursorObjectDistances and ObjectRotations are gathered in the construction script, perhaps we can find a way to get it to work as you intended it at first. But that’s only a offer, no need to do so if can live with the workaround you’ve described :slight_smile:

Thanks a lot for your offer. Yes to be honest, your help would be very much appreciated… my workaround isn’t really that great.

I tried to download the project but it seems you havn’t made it public.

My bad, okay here, this should work now:

Okay, now I was able to take a look into it, but unfortunately the construction script is only executed when the rotation was changed (i.e. I moved the mouse) but not when I just hold down the mouse button. I used 4.15.2 built from source.

But about the rotation problem, it’s the way you have already written it: Because you feed the combination of current rotation and cursor rotation into the TransformArray, which is used as current rotation in the next execution, the cursor rotation is constantly added to the object rotation. And this is new for me: This doesn’t happen with the offset vectors because you create them in the construction script of the MeshEditor and don’t change them in the cursor construction script.

So my suggestion would be following: Instead of using “Add Instance World Space” use “Add Instance” at the end of Stream Edit Mode. For this you have to keep all transforms local which is a lot of easier in the end. Then you can copy the cursor’s rotation to the MeshEditor rotation and keep a local rotation for the mesh instances, which is automatically added to the world rotation of the MeshEditor.

Hey thanks for taking a look. It’s really helpful to get some insight from someone else! So about your suggestion:

Then you can copy the cursor’s rotation to the MeshEditor rotation and keep a local rotation for the mesh instances, which is automatically added to the world rotation of the MeshEditor.

If I understand you correctly you’re idea is to just rotate the MeshEditor actor and this would be literally the only possible way right? In this case I have no choice and must use a combination of both my workaround and your suggestion for my system to work properly.

Thanks again! Now I can relaxe and continue with this project as planned. I’ll give you a note once I’m done, but it might yet take a few months until we’re there.

Kind Regards,

Gull Jemon Studios

Just recently I found the perfect solution! Instead of rotating everything using the distance vectors from the objects to the cursor, we rather calculate the distance vectors to the center point for example and rotate this around the cursor instead. I’ll update my answer here with a complete walkthrough as soon as I’ve got time…