-
Notifications
You must be signed in to change notification settings - Fork 2
Models and Textures
Extracting models from Scarlet Nexus is a bit different from most unreal games, because of the devs tweaks to the engine they are a unique blend of 4.25 models and 4.25+ models. While the change in the models was just a simple bool it causes programs like umodel to throw errors.
So for extracting models we use this custom build of umodel. This comes with 2 build of umodel, one called V5 and one called Legacy, Legacy is the one you'll mainly want to use. V5 doesn't render or extract the "OUTLINE" material which is fine for people that just want to steal the models for something like vr chat or mmd, but when it comes to modding that mesh is VERY important. Without this mesh your model will have no outlines unless you make a new outline mesh.
- umodel will ask for an encryption key you'll need to provide the key found on the same thread as the custom umodel build.
- If you have any mods in your
~modsfolder, remove them or it'll cause umodel to not read your models. - When Exporting you'll want to export both PSK and glTF 2.0, I'll explain this later
While FModel will work for Scarlet Nexus you'll need to setup some custom properties and a mapping file for it to read the files. Additionally FModel only supports PSK export which only has half the data we want, as such I do not recommend using FModel for extracting models from Scarlet Nexus.
This guide will focus on using blender, at the time of writing this version 3.5.1, if you use Maya or 3ds Max you're on your own. For Importing models into blender you'll want to use this PSK/PSA plugin by Befzz.
For importing there's a few settings and tweaks and we'll want to do to some prep on the model.
- when importing the PSK turn off the "Scale Down" option
- Once the PSK is imported Rename the Armature and Skeleton, SM_X.ao and SM_X.ad so they're both called "Armature"
- After Importing the glTF model scale it up to 100
From here you have 2 different ways of merging this into one
Apply the transform to both the glTF skeleton and Mesh, you can select it call and Press Ctrl + A, or do the skeleton first and then the model. Once that's done delete the glTF Skeleton and reparent the glTF mesh and retarget the armature modifier to the PSK Skeleton. Finally delete the PSK Mesh. if you've done everything the glTF mesh should be the same size as the old PSK one and it's being controlled by the PSK skeleton.
On the PSK mesh under the object properties of the mesh go to "Normals" and enable "Auto Smooth", then under "Geometry Data" choose "Add Custom Split Normals Data". Swap over to Edit Mode and delete all the verts from the mesh. Now select your glTF mesh and and then the empty PSK mesh by control clicking in the outliner and press Ctrl + J while hovering over the 3d viewport. you can now delete the glTF Skeleton. If this worked posing the PSK skeleton should move the glTF mesh
Why did we do this? An astute modding might have picked up on the specific note of adding custom normals to the old merge before merging, This is because the normal data of the original mesh is extremely important to these models which PSK lacks leading to the very flat blocky looking import. However on the other hand the skeletal data from the PSK works better for unreal. because of these we merge the 2 imports to get the correct skeletal data with the correct vertex data.
Now the model is prepped and ready to go you're free to edit this mesh however you see fit, however there's still a few quirks to deal with. the main annoying part of Scarlet Nexus models is their outline mesh. This is a duplicate of the whole model which a different material as well as different vertex colors. I recommend separating this from the rest of the model first, either by selecting the whole mesh in Edit Mode, Pressing "P" and selecting "By Material" or by going over to the Material tab, making sure nothing is selected in Edit Mode, choosing the Select option with the outline material highlighted and the doing "P" > "By Selection" in the 3d Viewport.
Once that's been separated I've made a blender plugin for dealing with it Here, This will handle splitting the mesh by visibility and also generating new outline meshes, so please read the README from over there for more info.
Another thing you'll need to work with is vertex colours, each channel controls different data, like the Blue will control what's visible with the hood on or off, this is used for thing like hair. I recommend using either VertexColorMaster by andyp123 or LEOAlphaPaint by HummyR. Both plugins have their advantages and disadvantages but both will work, you can even install them both and use them for different things.
Once everything is done it's time to export the model, for this we'll use the tried and true janky fbx exporter that comes with blender. there's a few export options you'll want to change before we export tho.
- Personally I like to use the "Limit to Selected Objects" so i only export what's selected as I commonly have extra data in the blend file I want for editing but not for exporting.
- Set Transform > Scale to 0.01
- Set Armature > Add Leaf Bones to False
And that should be all you need to export the model ready for unreal.
Coming Soon!
Coming Soon!