Using RotatingMovement at specific levels in blueprint component hierarchy

I’m trying to create a Class Blueprint that has several components in it, and only one specific component should rotate. As far as I can tell, RotatingMovement applies to every component in a Blueprint, and I don’t see a way to place it in the component hierarchy so that it would only rotate child components underneath it. It would be incredibly helpful if I could do that.

Is there a way that I’m missing? I’m using 4.6.1

Hi,

Rotating component rotates UpdatedComponent (property of MovementComponent). Movement component registers by default RootComponent like UpdatedComponent. You cannot change updated component property in details window, but you can set up it in Construction Script:

Best regards, Gleb

Thanks for the tip, Gleb. It doesn’t seem to work for me, however. The example I built was a ceiling fan, with some text attached to it. You can see my ConstructionScript - I can specify either the fan or the text in the SetUpdatedComponent, and they always rotate together. I’ve tried changing which one is the root, also, and that has no effect. Any other ideas?

In your example, Text Render component is a child of Fan component. That is why text rotates with fan. All nodes in component hierarchy affects (position changing, rotation) on all child nodes. You should to separate these components.

In addition, you can use scene component to create some empty node to organize your component structure.

Best regards, Gleb

Hi Gleb,

Sorry, but that doesn’t work for me. As I noted above, I did try wiring both the Mesh and the Text component into the Set Updated component, and there was no change in behavior. Were you actually seeing different results?

I also just tried a few thing from scratch, and I’m still getting the same results:

  • Mesh1 as the root, with Mesh2 as child. Wiring either one of them into the SetUpdatedComponent has no effect - they all rotate no matter what.
  • Mesh1 as root, Mesh and Mesh3 as children. Still, they all rotate no matter which one is specified.
  • Scene as root, Mesh 1 and Mesh 2 as children. Specifying either Mesh1 or Mesh2 causes them all to rotate.

Hi JigglyToes,

I am sorry for a long delay. I take a precise look at your screenshots and it looks like you are using 4.7(.2). (Not 4.6.1). I checked it in new version. Just paste “Set Updated Component” node to event graph (Post Begin Play).

Hope it helps!

You have to set the TargetComponent-> RotatingMovement → SET UPDATED COMPONENT.You cant do this in the construct you have to do it as he stated after begin play. This way you can set any scene component to rotate but it will cause children of that component to follow the movement of the parent.