Skyrim Special Edition
0 of 0

File information

Last updated

Original upload

Created by

imnotfamous

Uploaded by

imnotfamous

Virus scan

Safe to use

Tags for this mod

About this mod

The Not Famous Guide To Port Real Scanned Objects Into Skyrim (SE)

Permissions and credits
Donations
June 15, 2023 - version 1.3
Written with the assistance of our friend, Chat-GPT

Changes:
v1.3: update requirements and remarks, add Some alternatives.
v1.2: update requirements and remarks.
v1.1: better to use a 0.7 weight for detailed part than 0.5, this will be more flexible with the vertex factor then.

Summary 
  • Introduction
  • Requirements
  • Optional but Recommended
  • I - Create Optimized Versions with Blender
  • I.A - Import the Source Object
  • I.B - Export the High-Poly OBJ
  • I.C - Group High-Detailed Areas (e.g., Faces)
  • I.D - Optimize to Obtain a Low-Poly Object
  • I.E - Optimize more to create a collision object
  • II - Create the low-poly and collision NIFs
  • III - Correct the nif object glossiness and rotations
  • IV - Merge the low poly nif into a Bethesda nif
  • V - Merge the collision nif into the new low object nif using ChunkMerge
  • VI - Adding Textures
  • VI.A - Generating the Normal Map and Additional Maps (AO, SPEC...)
  • VI.B - Using GIMP to Merge Maps into Diffuse and Normal Maps
  • VII - Using Texconv to Generate DDS Texture Files
  • VIII - Using NIF and DDS Files
  • Some remarks
  • Some alternatives
  • Some links


_________________________________________________________________________________


Introduction
So, you want to port that amazing scan you found on the net or created yourself into Skyrim. It's possible, but I'll warn you—it may not be as simple, at least initially. However, with some perseverance, you can achieve great results. In this tutorial, I'll guide you through the process I use, which may not be the only method available, but it certainly works.
You'll need to follow these steps:
  • Optimize your 500k scan to reduce the number of vertices to less than 40k. This optimization is crucial to ensure smooth gameplay for all players, especially those with low to mid-range computers. It's essential to consider their experience too!
  • Create a .nif file that contains the mesh. This file will be used by the Skyrim engine to render your object.
  • Create .dds texture files, including the diffuse texture and normal map. These textures play a vital role in how your object appears in the Skyrim engine. I'll provide guidance on creating these textures later in the tutorial.
  • Optionally, create an .esp file that contains additional information, such as the object's position, scale, or patches. This step is useful if you want to create a mod that goes beyond simply importing the object.
  • Finally, package everything together into a zip mod and enjoy your creation!

Are you ready? Excellent! Let's dive in. Just a friendly reminder: if you don't get perfect results on your first try, don't despair! It's entirely normal. Some aspects of this process may require a few attempts before achieving the desired outcome. Remember to stay patient and persevere.

Requirements
To follow this tutorial, you will need the following tools:
  • Blender (version 3.5 or later): Blender will be our primary 3D software for optimization. It is a powerful and free tool. You can download it from the official Blender website: https://www.blender.org
  • PyNifly: PyNifly is a Blender add-on that allows you to export objects into NIF files. To install PyNifly, go to Edit > Preferences > Add-ons in Blender and install the latest io_scene_nifly.zip file. You can find the add-on here: https://github.com/BadDogSkyrim/PyNifly/releases
  • ShaderMap 4 (SM4): ShaderMap will be used to create normal maps from the 3D model. While a license is recommended, you can try the software and judge for yourself. It is a powerful tool for creating all sorts of maps. You can find ShaderMap 4 here: https://shadermap.com
  • NifSkope: NifSkope is a tool for editing NIF files. You can download the latest version of NifSkope from the official GitHub repository: https://github.com/niftools/nifskope/releases
  • Texconv: Texconv is a command-line utility used to convert textures into DDS format, which is a DirectX format. While other alternatives exist (but Gimp doesn't export in BC7 for now), Texconv works well for our purposes. You can download Texconv from the following link: https://github.com/Microsoft/DirectXTex/wiki/Texconv (click on the "Downloads@latest" button)
  • NifUtilsSuite: This suite contains the famous Chunk Merge panel, which allows you to add mesh collision to the NIF file. You can download NifUtilsSuite from the following link: https://www.afkmods.com/index.php?/files/file/2398-nifutilssuite (Please note that you will need to sign in to download it, but it's free)
  • SSE NIF Optimizer: SSE NIF Optimizer is used to format the NIF file into LE (Legendary Edition) for Chunk Merge, and then format it back into SE (Special Edition) afterward. You can download SSE NIF Optimizer from the following Nexus Mods page: https://www.nexusmods.com/skyrimspecialedition/mods/4089


Optional but Recommended

Once you have gathered all the requirements, let's begin by using Blender to optimize the mesh. In this tutorial, we will use the excellent Mars and Minerva statue scan by Neo-3D on Sketchfab: https://skfb.ly/6SDwM
Please download the corresponding OBJ file for the statue. Extract the zip included in its "source" directory as well.

_________________________________________________________________________________


I - Create Optimized Versions with Blender
I.A - Import the Source Object
  • Open Blender and delete the default cube by selecting it and pressing the "Delete" key.
  • Go to File, then select Import > Wavefront (.obj). Make sure to use the new Wavefront importer, not the legacy one.
  • Choose the high-polygon OBJ file of the statue and click "Import" with the default options.
  • If the imported statue is not correctly positioned, use the rotate and translate tools to adjust its rotation and position. To rotate with straight angles, hold the Control key while rotating.
  • To translate along the Z-axis, press "G" followed by "Z".

Tips
  • Use Shift + Mouse Scroll Wheel to move the view, the mouse scroll wheel alone to rotate the view, and the scroll wheel while holding Ctrl to zoom in/out.
  • The numeric keypad allows you to switch to different orthogonal views, and Ctrl + Numeric Keypad to switch to their opposite views.
  • By clicking on the little sphere next to "Viewport Shading" in the top right corner, you should see the texture applied to the statue (if the texture is in the same directory as the source file).



I.B - Export the High-Poly OBJ
Although it may seem strange to export the high-polygon version since we haven't made any changes to it, we need it as a reference for the position and rotation of subsequent exports. Additionally, Blender may not import normals correctly, as mentioned on this website: https://niftools.sourceforge.net/wiki/NifSkope/Mesh_import_export. However, you can try removing double vertices as explained here: https://all3dp.com/2/blender-remove-doubles-how-to-remove-double-vertices/.
  • Switch to Edit Mode by pressing the "Tab" key (press "Tab" again to return to Object Mode).
  • In Edit Mode, press "A" to select all vertices (they should turn orange).
  • Remove any double vertices by merging them using "Merge by Distance." To do this, make sure the vertices are selected, then press "M" and select "By Distance."
  • Deselect all vertices by pressing "Alt + A".
  • Press "Tab" to return to Object Mode.
  • Now, export the high-polygon object in the new Wavefront OBJ format. Ensure that the statue is selected, then go to File, select Export > Wavefront (.obj).
  • Save it in a new "models" folder as "statue-high.obj," for example. Make sure to keep the UV Coordinates option selected, and choose "Limit to Selected Only" unless you have removed the camera and light from the scene.
  • This is a good time to save your Blender project. Go to File > Save and give it a name like "blender.blend" or something similar.


I.C - Group High-Detailed Areas (e.g., Faces)
Before proceeding with optimization, it's recommended to select specific areas that you want to retain more detail for, such as faces. If you don't have any specific areas you want to prioritize, you can skip this step.
  • In Edit Mode (press "Tab"), use the selection tool (press "B") to select the vertex zones you want to keep more detailed. Hold "Shift" to deselect vertices if needed. Adjust your view by moving and rotating it to facilitate vertex selection.
  • Create a vertex group by going to the Object Data Properties panel and clicking on the plus icon next to "Vertex Groups." Assign the selected vertices to the group. Also, change the weight of the group to 0.7 or any desired value to ensure visible differences during optimization.
  • Deselect all vertices by pressing "Alt + A" and switch back to Object Mode (press "Tab").
  • Save your Blender project.



I.D - Optimize to Obtain a Low-Poly Object
  • In the Modifier panel, add a Decimate modifier to the object. The current face count is displayed (e.g., 624,070 faces). It's recommended to optimize objects for low to mid-range computers when importing into Skyrim. The maximum face count should be around 40,000 for large, standalone objects, 20,000 for detailed recurring objects (e.g., trees), and 10,000 or less for other objects. But it depends of the size and the details of the object. In this case, we will target 40,000 faces.
  • Adjust the ratio in the Decimate modifier to 0.07, resulting in 43,683 faces, which should be sufficient. Avoid setting the ratio too high since the details will be added to the normal map later.
  • Since we have a special head group, select it and click on the double arrow button to swap the detail order with the body. Reduce the group factor to 0.4 to balance the level of detail between the head and body while maintaining the same face count.
  • You may enable the Triangulate option, although it doesn't significantly affect the level of detail.
  • Switch to Object Mode and select the low-poly statue. In the mouse menu, choose "Shade Smooth" to smooth the result without adding any additional vertices, ensuring there are no visible edges in the final model.
  • Save your Blender project.
  • Export the low-poly statue by selecting it and going to File > Export > Wavefront (.obj). Save the file as "statue-low.obj" or any preferred name. Make sure to select "Apply Modifiers" and "UV Coordinates" in the export options.




I.E - Optimize more to create a collision object
To create a collision object with fewer faces, we need to further optimize the model. In Blender, select the low-poly object and add a Decimate modifier. Set the ratio to a very low value, such as 0.001, to significantly reduce the face count. Aim for around 500 faces for the collision object to ensure optimal performance in the Skyrim game engine. Export this optimized model as "statue-collision.obj".


_________________________________________________________________________________


II - Create the low-poly and collision NIFs
To export the low-poly and collision objects as NIF files, we'll use the Nifly addon (PyNifly) for Blender. Open a new instance of Blender and import the low-poly object with all modifiers applied. Make sure to choose the new Wavefront (.obj) import option.
With the low-poly object selected, go to File > Export > Nif file with Nifly (.nif). Ensure that you have the Nifly addon properly installed (refer to the requirements section). In the export settings, select Skyrim SE as the target game and set the Scale correction to 0.1 to ensure proper scaling in the final NIF. No bones are required for this export.
Repeat the same process for the collision object, targeting Skyrim SE and using the same scale correction value of 0.1.
At this point, you can close Blender, as we won't need it for the remaining steps of this tutorial.


_________________________________________________________________________________


III - Correct the nif object glossiness and rotations
  • Open the low poly object nif file with Nifskope. You will see the object displayed as a white shape.
  • First, we need to adjust the glossiness of the object. In the Block List, locate and select the BSLightingShaderProperty entry associated with the object.
  • In the shader properties, look for the Glossiness parameter and set it to 20. This will give the object the appropriate level of glossiness.
  • Save the changes to the nif file.
  • Now, let's correct the rotation of the object. Right-click on the object in the Nifskope window and select Transform > Edit. This will allow us to modify the object's transformation parameters.
  • Look for the P parameter (rotation) and set it to 90 degrees (or the required value for your specific object). This will adjust the rotation of the object to the correct orientation.
  • Accept the changes and go to Transform again, but this time select Apply. This will apply the transformation to the object.
  • Save the changes to the nif file.
  • Repeat the same glossiness and rotation corrections for the collision nif file. It's important that both the collision object and the low poly object have the same position, rotation, and scale.






Make sure to double-check the glossiness value and rotation parameters for your specific object to ensure accurate adjustments.

_________________________________________________________________________________


IV - Merge the low poly nif into a Bethesda nif 
To merge the low poly nif into a Bethesda nif, follow these steps:
  • Open the low poly nif with NifSkope and navigate to the Block List. You will see that it starts with a NiNode, which is not suitable for a Bethesda nif file. However, if you expand this NiNode, you will find a BSTriShape node, which is the mesh we want to merge.
  • Open another proper Bethesda nif file, such as "statuetalos01.nif," in a separate instance of NifSkope, we will call it the proper nif file. This file should have the correct nodes and structure that won't cause crashes in the game. You can obtain a proper nif file by extracting it from Skyrim's BSA files using the BAE tool or by importing a mod from Nexus that contains nif files. Common nif files can be found in the "Data/meshes/clutter" directory and its subdirectories.
  • Place the low poly nif and the proper nif file side by side in separate instances of NifSkope.
  • In the proper nif file, right-click on the BSTriShape node representing the detailed mesh (e.g., talos BSTriShape) and select "Block > Remove Branch" to remove it. This step ensures that we don't use the detailed meshes of the proper nif file for our statue.
  • Similarly, right-click on the bhkCollisionObject node in the proper nif file and select "Block > Remove Branch" to remove it. We won't be using the collision meshes from the proper nif file for our statue.
  • Now, go back to the low poly nif file and right-click on the BSTriShape node (our mesh) and select "Block > Copy Branch" to copy it.
  • Switch to the proper nif file and right-click on the BSFadeNode (the root node) and select "Paste Branch" to paste our copied BSTriShape branch into the proper nif file.
  • Update the BSFadeNode value in the proper nif file to match the number of our BSTriShape. This ensures that the connections between nodes are correct.
  • Finally, save the merged nif file as a new file. Use the "Save As" option to create a new statue nif file, but make sure not to overwrite the original proper nif file. You can save it in the same location as the old statue nif file.




By following these steps, you should have a merged statue nif file that includes the BSFadeNode, BSXFlags, and BSTriShape, which is compatible with the game.
Remember that you don't need to repeat this process for the collision nif file, as we will merge it into the low poly nif file later.

_________________________________________________________________________________


V - Merge the collision nif into the new low object nif using ChunkMerge
To merge the collision nif into the low object nif using ChunkMerge, follow these steps:
  • Ensure you have the NifUtilsSuite installed, which includes the ChunkMerge tool.
  • Create an "optimize" folder in your project directory and place the low poly statue nif and the collision nif in this folder.
  • Open the SSE NIF Optimizer tool and select the "optimize" folder as the target directory. Select LE as target version, keep other options, then click "Optimize" to optimize both nif files. Don't close SSE NIF Optimizer for now.
  • Open the NifUtilsSuite and go to the ChunkMerge panel. In the "Target File" field, select the optimized low poly statue nif file from the "optimize" folder. In the "Collision File" field, select the optimized collision nif file from the same folder.
  • Choose or create a suitable collision template. You can use an existing collision template from your project or create a new one following this tutorial: https://www.youtube.com/watch?v=GV79uixplaQ.
  • Click on the "Add Collision" button in the ChunkMerge panel. This will merge the collision data from the collision nif into the low poly statue nif, creating the bhkCollisionObject.
  • Go back to the SSE NIF Optimizer, select SE this time, to revert nif into SE format, click "Optimize", done.
  • Verify the merged nif file by opening it in NifSkope. You should see the bhkCollisionObject block in the Block List, and you can inspect the collision mesh by clicking on the "Show Collision" button in the toolbar.
  • Save the merged nif as your final low object nif in a suitable location within your modding setup.





Now your low object nif has the merged collision mesh integrated. You can proceed with the next steps in the tutorial, such as adding textures and finalizing the object for use in the game engine.

_________________________________________________________________________________


VI - Adding Textures
First, it's important to understand that there are several types of textures, but most Skyrim objects use two main textures: the diffuse texture (which contains the color information) and the normal map (which ends with "_n").
A normal map is a texture that contains data about bump details, allowing for the creation of intricate details on objects without increasing polygon counts, thus maintaining good performance.
There is also the option of using parallax maps, which provide even more detailed bump effects, but that will not be used here.
To use textures in Skyrim, they must be formatted as DDS (DirectX compressed format) and placed in the Data/textures folder (typically Data/textures/clutter and its subdirectories).

VI.A - Generating the Normal Map and Additional Maps (AO, SPEC...)
Let's start by creating a normal map for our statue. This will also generate an ambient occlusion (AO) map that adds fake shadows to enhance the visual appeal.
For this process, we'll use ShaderMap 4. While you can also use AMD GPU Meshmapper, ShaderMap 4 provides excellent results with numerous options. Please note that a ShaderMap 4 license is required for creating normal maps from 3D objects, as watermarks will appear on the textures without it (ShaderMap 4 licenses are reasonably priced and a worthwhile investment for modding enthusiasts).
Before proceeding, it's recommended to review the official ShaderMap 4 tutorial, especially the "Baking Normal Maps using Cage Projection" section: bake maps from 3d models. Additionally, this Youtube tutorial can be helpful. Now, let's go through the complete process:
  • Open ShaderMap 4 and select "Mode: Standard" and choose "3D Model" since we'll be using the high-poly model to generate the normal map. Select the high-poly statue object from the model directory.
  • As shown in the video tutorial, click on "Load Cage Model" and select the low-poly statue object.
  • Select the Push Tool, ensure that "Ignore Backfacing (IB)" is turned off, then select the cage and slightly enlarge it to cover all the details of the high-poly object (around 0.2 or 0.3).
  • There are two types of normal maps: Tangent Normal (TS) and World Normal (WS). For this tutorial, we'll only use the Tangent Normal (TS) as it relates to the object itself. Select the "Normal TS" option and click on the small green square button to start rendering the map. In the render view, the normal map will be displayed on a cylinder, which we will refine later by replacing the cylinder with our low-poly statue.
  • At the bottom right of the view, click on "+" and select the low-poly statue. It should now replace the cylinder in the render view. Move the first material from the right panel to the rendered low-poly statue. This allows us to see the effect of the normal map on the low-poly statue and make adjustments if needed.
  • You may want to save the ShaderMap project at this point (using the save button in the top menu).
  • Adjust the normal map settings: increase the map resolution to 4096 (or any other power-of-two value like 1024, 2048, or 8192) to ensure sufficient detail for a large statue. Additionally, set the multisample to x16. Regenerate the normal map using the small green square button. If the result is too shiny, we'll add an ambient occlusion (AO) map and a specular (SPEC) map to reduce the shine.
  • Select the "Ambient Occlusion" node in the left panel and change the type from "Base Model" to "Cage Projection" to ensure the AO map fits the low-poly statue properly. Increase the resolution to 4096 and adjust the Ray Count and Ray Length settings (e.g., 32 and 10) for better results. Click the green square button to render the AO map, which can be seen in the render view. This AO map will be used later with GIMP to enhance the main texture. But before that, we need to add a specular map.
  • Adding a specular map is a bit more complex since there is no built-in specular node in the left panel.
    9.1 Click on the up triangle near the grid button to increase the grid size for additional space.
    9.2 In an empty node, click on "+" and select "SRC: COLOR MAP" since a spec map requires a color map as input (not the Color ID node). Choose the texture image of the statue from the source directory.
    9.3 Next, click on another empty node and select a "MAP: Specular (Diff)" node. It will automatically be linked with the color map.
    9.4 To see the specular effect in the render view, select the map setup (the small M icon on the right panel) and choose the specular node as the Specular Map and the color map node as the Diffuse Map. Adjust the brightness of the specular node to achieve the desired effect. For example, reduce the brightness to -95 or less for an old stone statue. Experimenting with the contrast (e.g., -20 or -30) can also improve long-distance mipmaps, but results may vary depending on the object.
  • With the diffuse, normal, AO, and specular effects applied, we now have a complete render view of our future low-poly statue. For now, we won't need any additional maps for our Skyrim object. If you are satisfied with the result, it's time to save the maps.To save, click on the small "Save All" disk button on the left panel. You should now have AO and NORM files in the high-poly object directory. To save the SPEC map, right-click on the node and select "Save to File." Choose a filename ending with "_SPEC" (e.g., "mystatue_SPEC.tga") and preferably save it in the same folder as the other maps. Click on the save button to complete the process.
  • We now have all the maps we need. Next, we'll merge the AO, SPEC, NORM, and diffuse maps using GIMP to create two final files: a diffuse texture and a normal map.







VI.B - Using GIMP to Merge Maps into Diffuse and Normal Maps
This part is relatively straightforward, so let's get started:
  • First, open the diffuse texture file in GIMP. If the resolution is 8192, it's recommended to reduce it to 4096 (the same resolution as the other maps). To do this, go to the Image menu, select Scale Image, and set the resolution to 4096 using the LoHalo interpolation option.
  • Add the AO map as a new layer by going to the File menu, selecting Open as Layers, and choosing the previously saved AO map. In the layer mode, choose "Multiply" with 100% opacity.
  • Export the diffuse texture as a PNG file, e.g., "mystatue.png," using a compression level of 0 to retain maximum detail for the final DDS conversion. This completes the diffuse texture creation. Now, let's move on to the normal map.
  • Open the normal map as a separate file in GIMP.
  • Open the specular map as a layer on top of the normal map. Note that the specular map may still have an 8192 resolution, so it's important to scale it down to match the image resolution using the LoHalo interpolation (right-click on the layer, go to Scale Layer).
  • To apply the specular map, follow the instructions in this tutorial: https://wiki.beyondskyrim.org/wiki/Arcane_University:Gimp_for_Skyrim.
  • With the specular layer selected, go to the Channels tab and choose "Channel to Selection."
  • Return to the Layers tab, select the normal map layer, right-click, and choose "Add Layer Mask." Keep the "Selection" option selected.
  • Click on the normal map layer again, go to "Layer" in the top menu, and select "Apply Layer Mask."
  • Delete the specular layer since it's no longer needed (right-click on the layer and choose "Delete Layer").
  • Export the resulting normal map as a PNG file, using a filename that includes "_n," such as "mystatue_n.png." In the export options, select "Keep color values for transparent pixels" to preserve the normal map's color information. Use a compression level of 0.

That's it! We now have our diffuse and normal maps. The next step is to convert them to the DDS format using Texconv, so they can be used with Skyrim.




_________________________________________________________________________________


VII - Using Texconv to Generate DDS Texture Files
Texconv is a command-line tool that simplifies the conversion process. Although there is a GUI version available, using the command line is recommended for simplicity and safety. Follow these steps:
  • Create "input" and "output" directories in the Texconv directory, and place the previously created diffuse and normal PNG files in the "input" directory.
  • Open a command-line terminal (e.g., Command Prompt on Windows).
  • Navigate to the Texconv directory using the "cd" command. You can use the "dir" command to view the current directory and "cd" to change directory. You can change drive by typing just the drive letter with colon (e.g., "E:").
  • Enter the following command:
    texconv -m 10 -f BC7_UNORM -o output -ft dds -nologo "./input/*"
    This command generates the DDS files with 10 mipmap levels, using the BC7 compression format suitable for Skyrim Special Edition (SSE).
    The converted files will be saved in the "output" directory. You can also put this command in a .bat (batch) file to run it with a mouse click.
  • That's it! We now have our NIF file and DDS files ready to be used with Skyrim.

Make sure to refer to official documentation and tutorials for the specific tools used (ShaderMap 4, GIMP, and Texconv) for a more detailed and accurate understanding of the processes involved.

_________________________________________________________________________________


VIII - Using NIF and DDS Files
  • To test the final result, copy the two DDS files into the corresponding folder in Skyrim's Data/textures/ directory, such as Data/textures/clutter/statues in our case.
  • Open the NIF file with NifSkope and expand the Block List to locate the BSShaderTextureSet. This is where we will set the textures.
  • Select the BSShaderTextureSet and go to the Block Details. You will see a list of textures, which is currently empty. In the first record, select the diffuse DDS texture (using the cog icon) and, in the second record, select the normal DDS map. Make sure to use backslashes in the file paths. Save the NIF file.
  • Now the NIF file should appear textured, with normal mapping applied, just as it will appear in the game. Zoom in and out to check the mipmaps as well. If you are not satisfied with the result, you can go back to previous steps to make adjustments, otherwise, you're ready to create a mod using the Creation Kit, SSE Edit or directly as an object replacer.



_________________________________________________________________________________


Some remarks
  • If you encounter ugly visible seams or edges, it means you may have missed applying the Shade Smooth option to the low-poly object (refer to part I.D). You should redo the Shade Smooth operation on the low-poly object and perform the ShaderMap process with the updated Cage object. Also, recreate the NIF file for the low-poly object. Ensure that you consistently use the Shade Smooth low-poly object throughout the process (you can easily identify it by its smooth appearance).
  • Beware with overlapping UV in the UV map of your 3D object (you can check the UV map with Blender), as it will be not good with a Shade Smooth, you will have to move those overlapping UV away in the UV map.
  • You can adjust the brightness, contrast, and colors of your diffuse texture using GIMP and ShaderMap. Feel free to add filters or make adjustments using the nodes in ShaderMap. Additionally, keep in mind that the normal map is highly sensitive, so be cautious when making changes and aim for a good compromise between quality and performance.
  • Don't hesitate to experiment with different parameters and combinations to find the best results. You might be surprised by the stunning outcomes.
  • Finally, please note that this guide is not an ultimate or perfect solution, and there is always room for improvement. It serves as a working method, but if you have any suggestions or ideas to enhance it, please don't hesitate to share.


Some alternatives
Some optimizer alternatives to Blender:
  • Unreal Engine: tested, free to use, has good and powerful mesh simplifier, just select the UE Standard type in the Simplify MeshOps of the Modeling mode. For export, it's better to use its fbx format.
  • MeshLab: tested, free to use, has tons of tools, including mesh optimisers, but crash a lot on my computer. 
  • RapidCompact: tested, cloud and limited free, seems ok.
  • Adobe Substance: not tested, free trial. 
  • Probably all professional 3D modeling softwares like Maya, 3D Studio Max, ZBrush...

Some normal baking alternative to ShaderMap:
  • AMD GPU Meshmapper: tested, free to use but not maintained, good results but take a while to understand its UI. 
  • xNormal: tested, free to use, still maintained, good results (though the UI looks old school). Seems to be very used for personal projects.
  • Blender: tested, free to use, not easy to have good results with normal backing (use the Cycles engine)
  • Marmoset Toolbag: not tested, free trial, seems to be a well known professional tool.

Some object to nif converters alternatives to PyNifly:
  • Outfit Studio: tested, free and easy to use, very famous here, works fine though it got a vertex max limit when importing from obj, around 38k, currently.


Some links


Happy modding!