Found a bug w/ the SplineComponent. If you call the BP Node ‘Set World Location At Spline Point’, it moves the location internally but this is not reflected in the editor. The actual spline points and lines are still in the same location they were previously. Hope this helps
Just to clarify, if ‘Set World Location at Spline Point’ is used in a blueprint’s construction script, the changes are not reflected in the editor. Is that right?
Okay, just checked. I’m calling this for sure in a Custom Event that is set to be ‘Callable In Editor’ after enabling the Experimental Blutility Feature. Maybe that might have something to do with it. I just checked and it’s not called anywhere else so it’s just the custom event. I wrote a custom event to help space out some spline points (to even track UVs) and was testing out a couple ideas when I ran into this one.
Let me know what you think and great to hear from ya TJ!
I wanted to let you know that this happens in the constructor as well.
I just checked and one thing I tried to do (since transforms for spline points can’t be manually typed in), is to have a bool I can toggle in my BP that will give me a way around that. Sorry for the confusion.
TJ is going to be out of the office for a few weeks so I’ll be taking over on this one. I’m going to run through everything listed here and will post back if I repro or need more information.
I haven’t been able to reproduce this on my end thus far, can you walk me through what steps you take in a clean project to reproduce this on your end?
I haven’t tried this outside of the game project I am working on but basically what I have, is a Spline Track Tool I created and I want to be able to do a Transform Type-In.
Unfortunately, you cannot type in a transform field for various Spline Points. For accuracy, I created a Boolean that I can toggle on and off that will take a position and tangent from an array and use that to set the tangent and World Location for the Spline point being edited.
Normally, it takes the location and tangent and just overrides the field so I can see the value but I added the bool to not override it and allow me to type in a position.
When my Construction Script runs again after committing new text to one of those ‘Location’ fields (w/ each one being associated to each Spline Point), it attempts to take that Vector for the location and attempt to call the BP node to set the World Location however this unfortunately isn’t taking place.
Since the data does update in my array, it does make the actual SplineMeshComponent move to where I typed the location in but the spline point never moves after calling the Set World Location for Spline Point.
If you try that and it seems to work, I’ll see if I can move any of the references that BP uses into a new project and re-evaluate it.
I checked with our developers and it looks like this isn’t going to be directly viable at present. Spline points are not considered properties, so they won’t be editable through the details pane to have their values manually set. You can set the construction script to set points in the vector BP array with it marked as editable and Show 3D widget, however you wouldn’t be able to expose other properties of the points, such as tangents, roll, etc. This is something they may look into for the future, however.
I have an idea for a solution that could work. How about a Transform Type-In Panel (free floating) that maybe like one of the F Keys could bring up?
It would work for anything that has a World Position and that way, you could avoid the need on it being a priority and simple just re-set the transform in the actor so that it would show in the Details Panel instead.
This could also be handy since I always need to scroll to it on the panel and could be much easier if I could hit a key and a small compact Slate Window could pop up and work with any Actor you have selected in the editor just simply Alt-Tabbing through each field for quick entry. That would also work will the Spline Points as well since this Slate Window could make a call to update it’s world position
Main Issue:
Were the developers able to figure out though the main issue of this thread in why calling the BP Node, ‘Set World Location at Spline Point’ is not updating the location of the Spline Points?
Thanks ! Looking forward to finding out more about the issue and it’s going to make a big difference in my track tool for some of my Blutility Events (For instance, re-centering all the points on the track w/ the origin of the level so it makes the most of the 20km space) as well as the direct transform type-in. I’ve moved off of that tool temporarily and onto a couple other things for the time being.
Keep me posted and hope you are having a great week!
I can also confirm that setting spline point world locations via construction script is not working. Even if there is no plan to allow this to be edited in the details panel, the fact that the node exists and does not function is problematic. I was attempting to implement a Kalman FB filter in the BP construction script, and even though I can see all the calculations working correctly, the spline points are not updating their world location.
I too have noticed that the Set World Location at Spline Point function in blueprints does not work correctly as well. Are there any plans to remove or fix this?
Can you be a bit more specific? What are you trying to do with the node? There were some changes that have occurred in future releases for splines via blueprints so I’d like to check and see if the error you are experiencing has already been adressed.
I was trying to set all of the spline points in a spline adjacent to all of the other spline points in another spline using the node to make them appear to be paired.
However, I can’t get the node to even work when I have a editable bool connected to a branch that sets the point of spline to 0,0,0.