Editing a Spline as part of a Blueprint Construction Script .. (UE5.4)

My question is about this behavior, normally if you have a spline in your Blueprint and have it do some stuff in the Construction Script, like add SplineMesh along this Spline, you can drop the Blueprint into the level, edit the Spline and it updates as you go, it updates the meshes or whatever you are using it for. With UE5.4, this does not update. You can edit the Spline but then you have to drag the actual Blueprint object for it to update the Construction Script stuff. My question is, is this intended behavior?, if so, do I have to do something else to have it update correctly?. Or is it possibly a bug?.

Hi, I noticed that too - I donā€™t know if itā€™s a bug or not, but it is a lot faster to edit the splines and Iā€™d be happy to call it a ā€˜featureā€™ - I ended up just adding a function callable from the editor called ā€œRedrawā€ which calls the construction script. I did have a flag called ā€œno drawā€ in my BP to speed up the editing, but itā€™s not needed now.

If you did want it to draw while editing, you could get your BP to tick in editor, then redraw at a certain frequency - that will actually reduce the number of builds as well - the dragging construction gets called a lot more than you need.

Thanks for the reply. Iā€™ll certainly look into that and see how it works. Iā€™d think if it was a feature or a change in behavior, there might be an actual ā€œreplacementā€ setting or something since you would want this a lot of times. Itā€™s not the best thing to have to always manually update the stuff. Anyway, thanks for your reply on this.

1 Like

I hope this is a bug and will be resolved by Epic, because at best doing anything extra is a workaround and not a solution and having real time feedback is really required. If the real time feedback becomes slow, itā€™s easy to control it by sectioning things off.

I just need to know if this is in fact a bug or not because I have some Marketplace content that uses this and are now slightly broken and unfixable and I canā€™t officially give 5.4 support because of it.

in my project I have a large number of splines of a given type, covered by a PCG volume. Something is wrong here, it may cause an issue in 5.3; after creating a copy in 5.4, I located the problem, corrected it and SOME of these splines immediately showed the debug data, even the ones completely outside the PCG volume. Others did not, though they are of the same type.


All shorter splines in this image were NOT included within the original location of the PCGVolume.
Now I moved the PCGvolume to this location, the now selected (yellow) spline is completely within the volume but debug info will NOT show in the window. After I exit UE, and restart it,it still doesnā€™t show debug info. Selecting this spline, it has the right type. and replace the type by itself, it cuts the spline to the minimal size - but shows the debug info:

but I have to redraw the spline and now it is reecognized by the PCG graph as a spline and the intended actions are applied.

I consider this a bug, but if this is meant to be a feature, please make it an optional behaviour.

Hi,
The issue has been reported here: Unreal Engine Issues and Bug Tracker (UE-212309)
You can upvote it to make it move up the cue.

5 Likes

me too, This results in the rebuild mesh to the geometry script also not being called

This is a big issue as it breaks behaviour of some of my spline-based blueprints and I donā€™t see easy fix.

I hope Epic will revert Spline Component to old one, which didnā€™t change much from UE4 to UE5.3.

One more thing I noticed is that when editing Spline Component it automatically selects Spline Component in Details panel so I have no easy access to blueprint options. This is unneeded and unconvinient.

In its current state, it is completely unusable to me.

I build the entire game with spline-based actors, but now I cant change the scale anymore because the stuff isnt being updated.

The changes only happen if the actor is moved after ā€œpullingā€ on the splines.

Orange: New Actor with changed splines, mesh remains at default size
Blue: the same actor after being moved around after spline edit (color was changed by me) ā† this is your workaround, for now

It seems that splines dont cause an ā€œupdateā€ anymore, effectively making them really annoying to deal with now, and on top of that we now need to constantly double-click them too.

And thus, I learned what ā€œpain and sufferingā€ meant - have to finish this with this bug in place :sob: (I use splines for almost everything, I love themā€¦ ouch - if I only had noticed earlier before making progress in 5.4)

this broke my custom tools. thanks for pointing it out as I didnt know whats happening.
is there anything we can do to fix this?

edit:
I ve made a function which executes construction script and set ā€œCall in Editorā€ == true, so I just have to press a button.

1 Like

I reported the issue initially and added a fix in the engineā€™s SplineVisualizer Componentā€™s HandleInputDelta

Just after TransformSelectedKeys and called PostEditMove() on the actor there.

			// Transform the spline keys using an EPropertyChangeType::Interactive change. Later on, at the end of mouse tracking, a non-interactive change will be notified via void TrackingStopped :
			// FIX_BEGIN

			// replace
			// return TransformSelectedKeys(EPropertyChangeType::Interactive, DeltaTranslate, DeltaRotate, DeltaScale);

			// with
			bool Result = TransformSelectedKeys(EPropertyChangeType::Interactive, DeltaTranslate, DeltaRotate, DeltaScale);

			if (AActor* OwnerActor = SplineComp->GetOwner())
			{
				OwnerActor->PostEditMove(true);
			}

			return Result;
			// FIX_END

Doesnā€™t fix the issue for all other components as it seems a refactor happened and the class that emits these events in the editor got swapped out under the hood.

But it does fix it specifically for splines.

but this does sadly require an engine change. :frowning_face:

The issue is being looked into but for the moment you should be able to enter ā€˜Editor.ComponentVisualizer.AutoSelectComponent falseā€™ into your console to at least get on-release functionality working again.

6 Likes

With this console command it is a little bit better. But now blueprint updates only when mouse button is released. No updates when dragging spline point.
I liked it when I saw instant blueprint update during dragging.

I still cannot update my spline-based products on Marketplace to support 5.4.
Itā€™s not a good idea to add note to product description like ā€œfor my blueprint to work in 5.4 enter this console command EACH TIME you open projectā€

So Iā€™m voting for full revert of spline functionality to like it was in previous UE versions.

1 Like

I found out that making Spline a Default Scene Component solves the problem. This should help for some blueprints.

5 Likes

Do you mean making it the root component of an actor?

Yes. Root Component.

2 Likes

Works for me! Thanks for sharing. Also, I voted on the issue. I hope this gets fixed in a patchā€¦

this works but now the spline doesnā€™t move with the mesh anymore

I find the console command hit-and-miss. Sometimes it updates on mouse release, sometimes not.

Can you explain in a little more detail where this change goes? I canā€™t seem to find SplineVisualizer Component class?