#SplineComponent and SplineMeshComponent support for things such as roads, rivers, train tracks, etc.
174 messages ยท Page 1 of 1 (latest)
Congrats @uncut urchin, you are now level 1!
Yes please!
Do we know where the data for these are? I am actually looking for this atm.
This road probably requires the generation of asphalt slabs according to the Bezier curve. You can do this with deformation modifiers or geometric nodes
May or may not be in progress ๐
Thank you ๐
I was thinking of exact same idea, and them was thinking how to bend these meshes based on the curve. Maybe linear deformer, but that is not very customizable?
Otherwise, maybe crating some function, that accepts mesh vertex points, curves, and spitting out bented one?
I'm just using the Curve modifier in blender, seems to be the easiest way to do it instead of having to do the mesh manipulation yourself ๐
In general, my road looks like this
Is this for the latest map only?
What
As far as I can see data for roads is different between fortnite versions. For example splines and roads exist in generated maps in the latest versions, but does not in 32.00.
Peepaw Chippy helped me to find some info.
You take the manually created curve and repeat the road paths. I don't know how to port the original curves
If I knew how to port the original curves, I could test it.
They should exist in 32.00 as well since fortnite makes all of their main roads (not counting city block style roads) using splines, we just need to find one of the umaps with the roads in them. Unless of course for 32.00 all of their roads were made directly on the landscape, but I don't think that's the case
I was looking for road references and I could not find it. I find other spline components though, like zip lines.
btw, with other versions, there are references to road meshes, and in 32.00 as far as i could see, there are not ๐ฎ
Can you make it automatically export the spline mesh like umap does instead of using a modifier?
Just depends on what I'm able to figure out. Maybe that could be a setting, whether you want the curve objects to stay in the scene or if you want it to apply the modifier and just leave the mesh ๐คท
I mean, I don't really know how umap does it, but if that works, then go ahead
Oh we talking about splines
Soon ig
I have been cooking
Havenโt I @fallen nacelle
Hey, any updates on this ? :}
Congrats @whole pasture, you are now level 6!
No
Today I will be looking for spline references in older Fortnite version. V32.00
Anyone has a bender of futurama render?
We already know how it works
We have the spline too
And the curve
I just donโt know how to deform the mesh so that it follows the curve
For 32.00? There are no references for roads in this version. As far as I know only in older and newer ones.
But I am particulary interested in 32.00
The purple thing is a road
But this is for the newerst FN?
As far as I can see, in 32.00, no SplineMeshComponents or or SplineMeshActors has object paths containing roads like in other versions. At least this is how I search.
Maybe you can manually morph vertices with your own custom function, instead on relying on Blender's implementation of this modifier. I am not that far yet.
wasnt relying on blender anyways
A6Z7VUFLP2917NVTLT6WZFOVC
For what? :}
For the latest one right?
Could it be that all spline road meshes are held in one generated map for 32.00?
I just finished and checked all v32.00 generated maps that has SplineParams Property. Everything is mostly with zip lines, but no actual road references.
Chat should I drop a hint
Yes pls
CalcSliceTransform
In my case I found some road data in v32.00 in 5GFEFI84BMARFETJ471I5NDIG.
What is EndOffset in SplineParams?
and thank you minshu
Structure that holds info about spline, passed to renderer to deform UStaticMesh.
Thank you.
Where is the actor translation held, when it comes to offsets to roads/rivers?
Mine are all at the origin:
Root component?
Are we missing edge cuts? Unreal does this when map is made?
I can see that the original mesh models are too simple to curve along correctly.
It almost looks like you're missing the "curve" part of each curve, are you taking the tangents into account or are you just drawing straight lines between the start and end points?
I know my curve is wrong, but regardless it is not possible to bend the mesh along it, if it does not have enough edges.
Unless the curves are short enough and we only modifying the ends of the mesh to match the sequential mesh edge?
@haughty roost did it correctly.
Congrats @whole pasture, you are now level 7!
The meshes should definitely have enough resolution to curve, since they're being used in UE to do the exact same thing. I still have some tweaking to do to get things like roll and offset working, but I've been able to curve the road meshes along the spline without major issues just fine
How do you have your curve modifier set up?
you have more polygons on your road ๐ฎ
Just:
Oh yeah, I forgot that modifier is pretty basic in terms of options ๐ But yeah that looks the same as mine
Wait I was thinking of the curve settings, what do you have all this set to?
This is my mesh... did you apply subdivision modifier?
Nope, this is just the regular LOD0 mesh for Road1_Straight
It almost looks like you might have a higher LOD version
Your curve has better settings, I will try those, thanks.
And regarding LOD, need to figure how to import a basic mesh then. I was just decompiling using FP to a folder.
Check the Folder section of the Export tab, make sure you're set to export LOD0. Same with however you're importing the mesh, if you're using UEFormat make sure you're importing the LOD0 model
Btw, since your road looks so good, are you close to adding it to the FP?
Ish, still have to figure out Roll, Offset, and then figure out where the deform axis is coming from since not every mesh is deformed on the X axis. Without Roll and Offset, the ends of the mesh end up looking like this for some curves ๐
They line up from the top, but not from the side
blender modifier?
ยฏ_(ใ)_/ยฏ
Yeah, that's what I'm currently using since I'm more familiar with blender compared to transforming meshes in C# ๐ Wanted to visualize how everything works together so I better understood what would need to be done during the mesh transform
I just noticed, is this the umap for the entire island's roads?
Looks ok'ish on my side. Need to tweak the spine a bit I think.
The only transform on my end is scale -1Y, everything else is 0.
There are also missing road segments, under " "UScriptClass'ControlPointMeshComponent'"
@fallen nacelle I see you also have these segments, did you figured out where the scale inversion is for some of them?
(you can see one of my road split has bad scale)
It is not under Outer for me, and I do not have AttachParent in 32.00 on these.
edit: I think that setting y for every segment to -1 works for some reason. I do not see where is this in the data.
Yeah that's a UE -> blender coordinate system thing, you have to multiply the Y coordinate/scale by -1 for everything otherwise it'll be mirrored in blender
Thank you!
Question. I guess ControlPointMeshComponent probably does not bend the mesh like SplineMeshComponent?
I see the biggest missalignments when SplineMesh is next to ControlPointMesh.
If I would guess, the Spline mesh has to make some corrections in order to match the mesh that is "static" / ControlPointMesh?
Are those intersections considered ControlPointMeshComponent objects? I haven't actually looked into those yet so I think right now I'm just ignoring them ๐
Where is a ControlPointMeshXomp even referenced
think its landscape shit
In 32.00 it is in the same place where the road is, and I think we must import them in order to have a complete road. I only use reference to the mesh it has, + rotation and location. It does not have spine params like the rest of the road.
edit: as far as I can see, FP does not import these intersections.
you can search what a class does here: https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Classes
Some of the junctions uses different material technique.
I do not see any diffuse texture for them, and it is also not in material instance. There are only two texture parameters, normal and this _rgb texture. I can see that channel G has lines, R has some tire marks, and B is something else, but not useful. I was trying to find this junction diffuse tecture manually, but no luck, maybe it is proceduraly made up in the road master shader?
... I think it is, there is a matching detail texture that appears as a normal straight road texture:
For the roads that use the mask textures like that, Red is the asphault mask, Green is the Lines mask, and Blue is the Line Type (with 0 being white/edge line color and 1 being yellow/center line color)
Did you implement this already (road materials)?
Not yet, no. I just looked it up the other day to help someone else who was asking about how the road materials worked ๐
btw I am looking at water now. There are two classes:
1 WaterSplineComponent
2 SplineMeshComponent
I am assuming that 1st is as on roads, but the mesh is generated, as it refers to a mesh that does not exist. There is StartScale and EndScale, whic hs 2d vector, and I assume it is river's segment width and height.
The 2nd is more complex I am not sure yet. It has groups of curves, rather than a single curve.
Do you have a umap name for one that has WaterSplineComponent objects in it? I don't think I've seen those yet so I'm not sure how they're set up/how they work
Yes, for 32.00
5BP02WP4SFKT3ML22B53ZBWZD
Both Spline and Water components are there.
Interesting, yeah those are set up kind of odd. It almost looks like they're multi-point spline sections instead of just being start/end point defined splines like the roads are. I'd have to try and find an example of those in the current version to get a better look at how they actually work
I think I have the rivers. One thing is root offset, which I could never find.
Interesting, what meshes is it using for the river? Is it just a regular plane, or is there a specific water mesh?
There is one refered ("ObjectPath": "/Water/Meshes/RiverMesh.1") but it actually does not exist, so I created a cube and modified based on parameters in spline
There is start and end scale, which was usefull, the rest is like on the road
So river SplineMeshComponent has this as an Outer object, but where is the transform!
What u have is a BlueprintGeneratedClass
In the properties u can clearly see there is a UWaterSplinrComp referenced
This?
edit - no, it is itself edit 2: my code is shit
is this latest?
No, 32.00 :}



๐
damn
Guess it's time to nuke my hacked in hermite to bezier to blender spline code ๐
Mf cooked fr


Nah I haven't messed with it yet. I've got the structure for reading USplineMeshComponents from umaps in my fp-mutable fork, but it goes off and uses my hacked in spline stuff instead of the new convert method
but the comp doesnt necessarily have to be a USplineMeshComp tho?
if not then it will get passed as null and nothing will happen
aah
or just do if (comp is USplineMeshComponent splineComp) before ig
A few oddities here and there, but for the most part it works beautifully! This was from 5GFEFI84BMARFETJ471I5NDIG.umap from v32.11, the black pieces have incorrect normals and I'm not sure what's causing the scaling/rotation issues yet
Cool! Do other Spline components, like ziplines and rivers, work as well? I'd love to see them work too
I assume so, but I'm not sure yet. I'd have to find a umap that contains those types of objects in order to test
Or wait, there's a umap with rivers earlier in the thread. I'd still have to find one with a zipline though
Yup!
Congrats @uncut urchin, you are now level 3!
Oof, no luck on the river splines, looks like they're set up using a different object class (WaterSplineComponent) so those will need additional handling to get working ๐
Oh damn ๐ข
I found a umap that contains a zipline on 32.00 it should be aswell on 32.11
9CMP4TZEYSM5GYXBKD4HWY585
Which umap uses this shit?
This one has river spline and water body definitions in it: 5BP02WP4SFKT3ML22B53ZBWZD
From 32.00
alr
do u knw one from the current ver
FortniteGame/Plugins/GameFeatures/BRMapCh6/Content/Maps/Hermes_Terrain/Generated/6FRIYW86AOZKFWJM4J3HEHLLH.umap
@fallen nacelleCan i fix this issue somehow? C:\Users\Kyle\FortnitePorting\FortnitePorting\Export\ExportContext.cs(45,55): error CS0234: The type or namespace name 'Lights' does not exist in the namespace 'CUE4Parse.UE4.Assets.Exports.Component' (are you missing an assembly reference?)
It happens when i try to build the fp mutable build
Pull the latest changes, I pushed fixes for those conflicts a day or two ago
Sorry was busy
i already did that and i still have the same issue
Is like the new stuff you added is not correctly referenced somehow
nvm
Did you need to pull down CUE4Parse?
Nah it only allowed me to pull FortnitePorting
Ah, I'm not familiar with vs git tools, but there should be an option to check out a different branch. Check out the "half-mutable" branch for CUE4Parse, just in case the head didn't get updated for some reason
Also, you might have to do a fetch first, just depends how vs works with that stuff
I merged that branch and deleted the reference to UAnimStreamable and it worked thanks!
