#SplineComponent and SplineMeshComponent support for things such as roads, rivers, train tracks, etc.

174 messages ยท Page 1 of 1 (latest)

uncut urchin
#

Btw, having both the spline curve and the SplineMeshActor be able to be exported is to avoid if a blueprint with a SplineComponent doesn't refer to a static mesh, it can be manually added.

atomic ventureBOT
#

Congrats @uncut urchin, you are now level 1!

whole pasture
#

Yes please!

#

Do we know where the data for these are? I am actually looking for this atm.

manic basin
#

This road probably requires the generation of asphalt slabs according to the Bezier curve. You can do this with deformation modifiers or geometric nodes

fallen nacelle
#

May or may not be in progress ๐Ÿ‘€

uncut urchin
#

Thank you ๐Ÿ™

whole pasture
#

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?

fallen nacelle
#

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 ๐Ÿ˜…

manic basin
#

In general, my road looks like this

whole pasture
manic basin
whole pasture
# manic basin 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.

manic basin
#

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.

fallen nacelle
whole pasture
#

btw, with other versions, there are references to road meshes, and in 32.00 as far as i could see, there are not ๐Ÿ˜ฎ

uncut urchin
fallen nacelle
uncut urchin
solar wren
#

Oh we talking about splines

#

Soon ig

#

I have been cooking

#

Havenโ€™t I @fallen nacelle

solar wren
whole pasture
#

Hey, any updates on this ? :}

atomic ventureBOT
#

Congrats @whole pasture, you are now level 6!

solar wren
whole pasture
#

Today I will be looking for spline references in older Fortnite version. V32.00

sinful igloo
#

Anyone has a bender of futurama render?

solar wren
#

We have the spline too

#

And the curve

#

I just donโ€™t know how to deform the mesh so that it follows the curve

whole pasture
#

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

solar wren
#

The purple thing is a road

whole pasture
#

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.

whole pasture
# solar wren

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.

solar wren
#

A6Z7VUFLP2917NVTLT6WZFOVC

whole pasture
solar wren
#

umap id

#

for all the splines

whole pasture
#

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.

haughty roost
fallen nacelle
solar wren
haughty roost
#

CalcSliceTransform

whole pasture
#

In my case I found some road data in v32.00 in 5GFEFI84BMARFETJ471I5NDIG.

What is EndOffset in SplineParams?

solar wren
whole pasture
haughty roost
#

Root component?

whole pasture
#

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.

fallen nacelle
#

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?

whole pasture
#

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.

atomic ventureBOT
#

Congrats @whole pasture, you are now level 7!

fallen nacelle
#

How do you have your curve modifier set up?

whole pasture
#

you have more polygons on your road ๐Ÿ˜ฎ

Just:

fallen nacelle
#

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?

whole pasture
#

This is my mesh... did you apply subdivision modifier?

fallen nacelle
#

Nope, this is just the regular LOD0 mesh for Road1_Straight

#

It almost looks like you might have a higher LOD version

whole pasture
#

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.

fallen nacelle
#

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

whole pasture
#

Btw, since your road looks so good, are you close to adding it to the FP?

fallen nacelle
#

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

haughty roost
#

blender modifier?

haughty roost
fallen nacelle
# haughty roost 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

fallen nacelle
whole pasture
#

Looks ok'ish on my side. Need to tweak the spine a bit I think.

whole pasture
#

The only transform on my end is scale -1Y, everything else is 0.

whole pasture
#

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.

fallen nacelle
#

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

whole pasture
#

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?

fallen nacelle
#

Are those intersections considered ControlPointMeshComponent objects? I haven't actually looked into those yet so I think right now I'm just ignoring them ๐Ÿ˜…

solar wren
solar wren
#

think its landscape shit

whole pasture
#

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.

whole pasture
#

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:

fallen nacelle
whole pasture
fallen nacelle
#

Not yet, no. I just looked it up the other day to help someone else who was asking about how the road materials worked ๐Ÿ˜…

whole pasture
#

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.

fallen nacelle
#

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

whole pasture
#

Yes, for 32.00
5BP02WP4SFKT3ML22B53ZBWZD

Both Spline and Water components are there.

fallen nacelle
#

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

whole pasture
#

I think I have the rivers. One thing is root offset, which I could never find.

fallen nacelle
#

Interesting, what meshes is it using for the river? Is it just a regular plane, or is there a specific water mesh?

whole pasture
#

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!

solar wren
#

In the properties u can clearly see there is a UWaterSplinrComp referenced

whole pasture
solar wren
whole pasture
haughty roost
solar wren
uncut urchin
fallen nacelle
#

๐Ÿ‘€

solar wren
#

damn

fallen nacelle
#

Guess it's time to nuke my hacked in hermite to bezier to blender spline code ๐Ÿ˜‚

solar wren
#

Mf cooked fr

haughty roost
uncut urchin
solar wren
#

@fallen nacelle did u implement this in fp?

#

cause I cld try

fallen nacelle
#

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

haughty roost
#

all you have do is

#

rest should work as is

solar wren
haughty roost
#

if not then it will get passed as null and nothing will happen

solar wren
#

aah

haughty roost
#

nullable

#

or whatever it's called

rotund bone
fallen nacelle
#

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

uncut urchin
#

Cool! Do other Spline components, like ziplines and rivers, work as well? I'd love to see them work too

fallen nacelle
#

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

atomic ventureBOT
#

Congrats @uncut urchin, you are now level 3!

fallen nacelle
#

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 ๐Ÿ˜”

uncut urchin
#

Oh damn ๐Ÿ˜ข

#

I found a umap that contains a zipline on 32.00 it should be aswell on 32.11

#

9CMP4TZEYSM5GYXBKD4HWY585

fallen nacelle
#

This one has river spline and water body definitions in it: 5BP02WP4SFKT3ML22B53ZBWZD

#

From 32.00

solar wren
#

alr

#

do u knw one from the current ver

#

FortniteGame/Plugins/GameFeatures/BRMapCh6/Content/Maps/Hermes_Terrain/Generated/6FRIYW86AOZKFWJM4J3HEHLLH.umap

uncut urchin
#

@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

fallen nacelle
#

Pull the latest changes, I pushed fixes for those conflicts a day or two ago

uncut urchin
#

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

uncut urchin
#

nvm

fallen nacelle
#

Did you need to pull down CUE4Parse?

uncut urchin
#

Nvm i cloned the wrong branch ๐Ÿ˜ญ

#

Yup still same issue

uncut urchin
fallen nacelle
#

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

uncut urchin
#

I merged that branch and deleted the reference to UAnimStreamable and it worked thanks!