The rules have been updated, read them now: Rules!

porting UE4 maps cross engines (well, eventually :D)

Post questions about game models here, or help out others!
Post Reply
philoosopher
ultra-n00b
Posts: 1
Joined: Wed Feb 17, 2021 12:58 pm

porting UE4 maps cross engines (well, eventually :D)

Post by philoosopher » Wed Feb 17, 2021 1:23 pm

If this topic is not in the right subsection, please feel free to move it!

This is just some sort of FYI, in case...
I have another thread, similar, on Gildor's forum, but maybe it can be useful here. Please feel free to delete, if needed!

Anyways, to summarize, I made some simple extensions to Gildor's code, and a simple dump to ASCII/text for unreal engine 4 maps, with focus on interiors, or maps they do not actually use landscapes. Currently it includes transform for static meshes, point lights, spotlights and sphere reflection capture. It can also handle some wildcards, so for example in the subfolder Wilderness from Little Nightmares 2, there are 69 umap files that are all parsed in one dump

After that, for now only for unreal engine 4, in my tests, I made a simple parser that runs on a custom engine build immediately after the editor world is being created.

The parser basically re-creates the unreal engine map when the editor starts up from the data parsed from that plain text dump

Some example of how the plaintext dump looks like ( from Little Nightmares 2 wilderness map/s)

Code: Select all

ClassName: StaticMeshComponent ObjectName: StaticMeshComponent0
    StaticMesh = StaticMesh4'/Game/Environment/Objects/Generic/Electronics/TVs/SM_ApartmentTV_Hanging.SM_ApartmentTV_Hanging'
    RelativeLocation = { X=-4775.22, Y=-46351.4, Z=402.874 }
    RelativeRotation = { Yaw=1122793764, Pitch=-1092099118, Roll=1082804549 }
    RelativeScale3D = { X=0.867548, Y=0.867548, Z=0.867548 }

Code: Select all

ClassName: PointLightComponent ObjectName: LightComponent0
    RelativeLocation = { X=-5025.63, Y=20675.1, Z=-256.328 }
    RelativeRotation = { Yaw=0, Pitch=0, Roll=0 }
    RelativeScale3D = { X=0, Y=0, Z=0 }
    Mobility = 0
    IntensityUnits = Unitless (0)
    LightColor = { R=165, G=207, B=255, A=255 }
    AttenuationRadius = 298.883
    CastShadows = false
    IndirectLightingIntensity = 0
    VolumetricScatteringIntensity = 0

Code: Select all

ClassName: SpotLightComponent ObjectName: LightComponent0
    RelativeLocation = { X=76.1125, Y=1.55773, Z=10.8023 }
    RelativeRotation = { Yaw=-1210650066, Pitch=1117756020, Roll=-1210816671 }
    RelativeScale3D = { X=0, Y=0, Z=0 }
    Mobility = 0
    Intensity = 80
    LightColor = { R=255, G=245, B=214, A=255 }
    AttenuationRadius = 546.888
    OuterConeAngle = 40.9905
    InnerConeAngle = 0
    SourceRadius = 0
    SourceLength = 0
    Temperature = 0
    bUseTemperature = false
    bAffectsWorld = false
    CastShadows = false
    IntensityUnits = Candelas (1)
    bUseInverseSquaredFalloff = false
    LightFalloffExponent = 0
    bCastVolumetricShadow = true
    IndirectLightingIntensity = 0
    VolumetricScatteringIntensity = 0.4
    ShadowBias = 0

Code: Select all

ClassName: SphereReflectionCaptureComponent ObjectName: NewReflectionComponent
    InfluenceRadius = 2376.15
    Brightness = 2
    RelativeLocation = { X=-4988.86, Y=38461.3, Z=-62.4054 }
And some results

Vampyr Scotland Castle interior (with Billie Lurk from Dishonored 2: Death of the Outsider)
https://www.youtube.com/watch?v=1Fukg8H_YH4

Little Nightmares 2 School (a Room)
https://www.youtube.com/watch?v=pOtWKyHrUR0

Paper Dolls 2 (with Empress Jessamine, from Dishonored 1)
https://www.youtube.com/watch?v=VoC2zkKOsxM

I'm really interested in cross engine part, so someone that knows Unity or some other 3-D engine maybe can talk to me about porting some maps from Unreal Engine 4 to those engines

Please note: what I've done is very simple parsing, so no landscape objects, no fancy materials (just the basic ones generated by Gildor's heuristics), basically just a glorified copying and pasting of transforms from source engine (UE4) to destination engine (UE4) :D

Klaus
n00b
Posts: 11
Joined: Mon Feb 29, 2016 10:59 pm
Has thanked: 4 times
Been thanked: 1 time

Re: porting UE4 maps cross engines (well, eventually :D)

Post by Klaus » Thu Feb 18, 2021 11:39 am

Looks very promising !
Do you think it could also apply to Unreal Engine 3 games ?

bstrn
ultra-n00b
Posts: 1
Joined: Thu Nov 26, 2020 9:00 pm

Re: porting UE4 maps cross engines (well, eventually :D)

Post by bstrn » Fri Feb 19, 2021 6:44 am

Any way you could have it export the entire map as .fbx/.blend/gltf? Txt file is useful for a few things, mainly matching lights, but porting cross-engine would be 5000x easier that way. Fbx/.blend especially because they store light data and can be imported into unity easily. If not, would the umodel author be interested in implementing your code?

Also, will you be releasing any of this for the rest of us to try?

Makoto
beginner
Posts: 26
Joined: Sat Jun 11, 2016 6:41 pm
Has thanked: 6 times
Been thanked: 4 times

Re: porting UE4 maps cross engines (well, eventually :D)

Post by Makoto » Tue Feb 23, 2021 4:59 pm

bstrn wrote:
Fri Feb 19, 2021 6:44 am
Any way you could have it export the entire map as .fbx/.blend/gltf? Txt file is useful for a few things, mainly matching lights, but porting cross-engine would be 5000x easier that way. Fbx/.blend especially because they store light data and can be imported into unity easily. If not, would the umodel author be interested in implementing your code?

Also, will you be releasing any of this for the rest of us to try?
Agreed, i'd be very interested in this too.

Post Reply