Temp Pivot doesn't work after using the constraint tool

Setting a constraint on something in my scene will turn off any ability to set a temp pivot on any actor after that point.

Steps to Reproduce
Bring in two shapes into an empty level. Spread them out. Select one and in Animation mode add a parent constraint and pick the other shape to constrain to. Now nothing in the scene will allow me to set a temp pivot using Alt + MMB click. Even new items I add to the list can’t have their temp pivots moved. Once you delete the items in the scene and bring in a new shape, then it works as normal again.

Hi, Heather,

I am trying to reproduce this behavior here on UE 5.4, but so far without success. I have attached a short video of an attempt to closely follow the steps you provided. Can you please take a look and see if there is something I am missing?

Best regards,

Vitor

Ah! Looks like it works fine with possessable actors. I just tested it with spawnables and that is where it breaks. So basically drag the three shapes into a level sequence and have them as spawnable and recreate the same constrain steps you did in the video.

Hi Heather,

I was able to investigate the cause of this issue, which is a conflict between the Parent Constraint and Sequencer’s Transform Track trying to affect the constrained actor. The following situation emerges:

(1) Once a “parent” constraint is active, every editor tick executes the following call chain:

FConstraintTickFunction::ExecuteTick() FConstraintTickFunction::EvaluateFunctions() UTickableTransformConstraint::SetChildGlobalTransform() UTransformableComponentHandle::SetGlobalTransform() FConstraintsManagerController::Get(World).OnSceneComponentConstrained().Broadcast()

(2) Once an F3DTransformTrackEditor is active, it does:

UMovieScene3DTransformSection::ConstraintChannelAdded().AddRaw(this, &F3DTransformTrackEditor::HandleOnConstraintAdded);Inside that delegate:

FConstraintsManagerController::Get(World).OnSceneComponentConstrained().AddLambda(...)And inside that lambda:

GUnrealEd->UpdatePivotLocationForSelection() // This resets the pivotThis ends up resetting the pivot every frame, even for unrelated actors, even while not manipulating the transform widget in any way, and even if the transform track has no keyframes. And it also seems to happen with possessables, as long as the same actor is simultaneously affected by a Parent Constraint and by a Transform Track from Sequencer.

The good news is that, in my tests, the bad behavior went away as soon as I deleted the Transform Track that was targeting the constrained actor. I assume that track is not required, since attempting to use it would certainly conflict with the evaluation of the constraint.

In any case, I have filed an internal bug report for this issue. You should be able to track progress on it here once the engine devs mark it as public: UE-304960.

Please let me know if you need anything further.

Best regards,

Vitor

Yep, that was it, I was able to repro the issue now. Interesting, it seems like something is resetting the pivot every frame. I’m going to investigate this to see if I can find the culprit.