Jump to content

Fallout 4 Commonwealth to Unreal Engine 5, automatically ported


Deleted85459073User

Recommended Posts

edit: made a Discord server https://discord.gg/mrnv9mZrQ4

 

Not a mod, but any technical artist that loves Fallout and Unreal available for some brainstorming, hit me up

 

For a while now I poked around to find some ways to automatically port Fallout 4 Commonwealth map into Unreal Engine 5, primarily to test World Partitions feature from UE5

And it got to a point where it is technically functional, including visually, here is an example

https://www.youtube.com/watch?v=Uoph3T9iW6U

 

The parser technically ported, or is able to port, the entirety of Commonwealth map, I'm thinking Cambridge Police Department as the next example

 

Anyways the technical expertise I can brainstorm about (In the unreal editor using C++, not at runtime)

 

Specific to NIF. In my tests I focused on Commonwealth, which is an exterior map, and I needed to port about 12,000 static meshes. About 99.5% were successful, but the rest had some problems. I used 3DS Max Nif https://www.nexusmods.com/skyrim/mods/84041 for exporting to FBX. The meshes that failed to convert, failed in both 3DS Max Nif and Blender Nif. In Noesis, it did not fail but it rendered only one layer, see this

NIFIssue.jpg

 

Perhaps someone has some ideas of how to improve any of these plug-ins, to be able to export the missing meshes properly

 

Some other stuff to brainstorm about, as I'm not a technical artist, Unreal Engine related

 

-how to improve materials. e.g. figure out which material belongs to which material slot, currently my C++ code creates the basic materials correctly, because the majority of textures end with _d/_n/_s, but I can see many materials being assigned to the wrong slot in the static mesh, And then I have to manually shuffle them around, and there are about 30,000 materials :-)

 

-how to deform landscape. e.g. Some static meshes are in the correct transforms, but they don't look as anchored in the landscape compared to the original Fallout, so I'm guessing Creation Engine by Bethesda does some local deforms to snap the static meshes and the landscape together, or something like that

 

-anything else to improve this automated port, I'm drawing a blank at the moment, I may add more later...

 

Well, let me know. I asked similar stuff on some other forums but if you have some ideas, I'm all ears

 

Thanks!

Edited by Guest
Link to comment
Share on other sites

Porting the scripting language is on the to-do list, but for now the focus was general visuals, such as static and skeletal meshes with their respective materials and textures

 

Here is a new example, Red Rocket and some skeletal mesh outfits.

 

F4-Red-Rocket.jpg

 

F4-Outfits.jpg

 

Video

https://www.youtube.com/watch?v=BfHrBS3sCok

 

After the visuals are done to an acceptable degree, then papyrus should be next.

 

Two hurdles at this point of porting the visuals automatically are

- materials slots being incorrectly assigned on random meshes.

- landscape height (Z) is sometimes off. The X and the Y of landscape are correctly scaled (I think/hope), but the Z is sometimes off from minimal to none to several feet. For example, Sanctuary is virtually perfect, Red Rocket is a bit off, but Drumlin Diner is up in the air several feet

Edited by Guest
Link to comment
Share on other sites

That's unreal! :blush:

Outside my wheelhouse here, but what you are doing is just stellar!

IDK, try contacting the plugin author here on nexus. may take a while to get a reply.

 

Meanwhile, be advised:

Landscape heights are "off" in-game as well. (If you've used AAF, or high heel mods, or not even), concrete in particular is "imaginary" height.

Often chars are ankle deep in pavement. Especially when changing poses, It's truly anomalous, as if not "really" solid surfaces but adjected for in-game.

Suspected they were hyper-projected surface normals or something weird like that (always my suspicion), maybe you can "fix" these issues by forcing values somehow if you can find the pattern.

 

Love to see how it comes out!

Link to comment
Share on other sites

  • 2 weeks later...
edit: made a discord server https://discord.gg/mrnv9mZrQ4
finished importing the Fallout 4 Commonwealth map in Unreal Engine 5, ~700,000 objects. The parser primarily focused on actors with a visual mesh (.nif), markers and most NPCs. Didn't add volumes, e.g. radiation volumes/areas. Nor triggers.
On a different topic, couldn't find a reliable and predictable Z so I basically wing it using primarily COC and X markers, and check their current Z against the most immediate landscape. And then use the resulting Delta Z against all other meshes in the same cell. With okayish results
and finally my computer is on fire. At one point exceeded using 100 GB of memory while automatically getting data from Fallout 4 and creating its equivalent in Unreal Engine 5. Plus I get 5 (five!) FPS in the editor with all 700,000 objects loaded. If performs better at runtime though because I made a very small grid cell size for World Partitions :D my current computer is A-, but it still crumbles under 700,000 objects...
better still, it would be nice to have a tech artist snapping some fingers for some heightfield magic at some point...
Can't complain though, at the end of the day automation saves the day, says me not being a poet...
Now I have to update the materials. And then try and play Fallout 4 in Unreal Engine 5...

 

UE5-F4-Status.jpg

 

in UE 5 editor

UE5-F4-Status-1.jpg

Edited by Guest
Link to comment
Share on other sites

  • 2 weeks later...

All right, did some more stuff, primarily:

1. Basic materials! ~6700 of them, with diffuse, normal, specular
2. created some merged foliage actors from individual meshes in each cell, it improved the overall frame rate

Code:
MeshUtilities.MergeComponentsToStaticMesh(ComponentsToMerge, World, MeshMergingSettings, nullptr, nullptr, PackageName, AssetsToSync, ZeroVector, ScreenAreaSize, true);

The above line from the Unreal source code really saved the day when automatically creating merged foliage meshes

This is how it currently looks

the original Vault 111 Exit
FO4-Original.jpg

the automatically recreated Vault 111 Exit
FO4UE5.jpg

I need a tech artist to improve some stuff, so hit me up if interested. Also, we may need to brainstorm about porting Papyrus scripts to Unreal, so some philosophical discussions about an interpreter may be useful, unlikely we need a compiler :-)

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...