Thearmordines

🔞 Terato / Kink Artist

🔞 belly kink/terato account - I have extreme social anxiety, apologies if I come across as odd

link to my patreon - https://www.patreon.com/user?u=79639270

posts from @Thearmordines tagged #modding tutorial

also:

This is a continuation of and update to this post here - https://cohost.org/Thearmordines/post/1214293-elden-ring-model-exp

PART 1 - MODELS

This part will go over the process of importing a model into blender. I'm going into this again because there have been some new tools released since I made the first part which make the process of extracting models much easier and more foolproof (as a professional fool, this is always good news).

- Programs and Links-

-Blender : https://www.blender.org/download/

-UXM (For unpacking FromSoft game Data files) : https://github.com/Nordgaren/UXM-Selective-Unpack

-WitchyBND (For unpacking other FromSoft file formats.) : https://github.com/ividyon/WitchyBND/releases

-Aqua Model Tools (For extracting FromSoft models and textures) : https://github.com/Shadowth117/PSO2-Aqua-Library

-Unpacking Files, Extracting Models and Textures, and Importing Into Blender

So the first thing you'll want to do is use UXM to extract all of the game files from the packed data files inside the game's directory. Just open the program, point it to the executable for your game and click unpack!

After it's finished you'll have a bunch of new directories in your game folder. The one we're interested in is the chr folder, as this holds both the character models and textures for them.

Inside the two types of file we want are chrbnd.dcx and texbnd.dcx, which hold the model and textures for each character, respectively.

These files are all named after the character's internal ID, so you'll want to go here ( http://soulsmodding.wikidot.com/reference:main#toc7 ) and open up the character IDs sheet listed to find the ID of the character you want to extract. For this post we'll just be using Blaidd, whose ID is c2010.

Now you need to take the two files for your character (in this case : c2010.chrbnd.dcx and c2010.texbnd.dcx) and drag them onto your WitchyBND executable. This will open a window and automatically extract the files into new folders.

Inside these new folders there are once again two types of file we're interested in. For the chrbnd folder, inside will be a .flver file. This is the model. For the texbnd folder, there will be a .tpf file. This contains the textures for the model.

You can extract both of these with Aqua Model Tool. Just go into your Aqua Model Tool directory and open up SoulsModelTool.exe. There are a few optional things you can tick for extracting models, including an option to fix FromSoft Mesh Mirroring. If you're just planning to use the model in blender you should tick this, since otherwise the model will be inverted on the X axis.

After that just go into file and click the Convert FromSoft model, TPF, or Archive option, and select the .flver. Repeat this for the .tpf file as well. This will leave you with a .fbx file and all the textures in .dds format. I'll focus on textures in the next part of this post, so for now let's just worry about the model.

Thankfully with Aqua Model Tool there's no need to mess around with editing anything after creating the .fbx file like in my previous post! The tool exports the skeleton and all UV maps the model contains perfectly.

All you need to do now is open up Blender and import your .fbx file! The bones on the skeleton will likely be blocking your view of most of the model, but you can simply click on the skeleton and go into viewport display to fix this. Just change it from Octahedral to Stick for easier viewing.

The model after importing

viewport display options

And that's it for model importing! Much simpler than the process I was using before haha

PART 2 - TEXTURES

This part will go into detail about FromSoft's texture formats in Elden Ring and how to apply them within Blender. I'll also be going over my methods for getting them to match as closely as I can to the in-game texturing. This part will assume you have some basic knowledge of how Blender and materials work.

-Programs and Links-

-Notepad++ (For opening .xml files) : https://notepad-plus-plus.org/downloads/

-Paint.NET (For opening .DDS files) : https://www.getpaint.net/

-From's Texture Formats-

Alright, so now that you have the model you've imported it's time to set up materials! FromSoft uses some somewhat unusual formats for a few of their textures, but here's the important bits.

  • TEXTURE_A.dds - These are albedo or color maps.
  • TEXTURE_M.dds - These are metalness maps.
  • TEXTURE_N.dds - These are normal maps. These also contain both the shininess map in the blue channel and a mask map in the alpha channel.

-Setting Up The Material-

So let's assemble a basic material! We'll be using Blaidd as an example once again.

So the very first thing we'll want to do is open up each of the .dds files we want to use in Blender with Paint.NET and save them as something like .png or .tga, since Blender doesn't recognize .dds image files. After that we can start assembling the material itself.

Thankfully FromSoft tends to name their textures after which part of the character they apply to. Using Blaidd as an example, every texture with c2010_HD in the name applies to the head material.

FromSoft tend to use a lot of different materials for every different part of the character, for example Blaidd's head is separated into two different materials for his skin and for his eyes and the inside of his mouth.

Unless you're trying to be extremely accurate to the in-game materials with detail maps and all that (I'll go a little into those later on) all you should really need to worry about is having one material for every set of textures.

Now for setting up each material, the process will generally be this -

Using a Principled BSDF Shader (The material should be using this by default) take TEXTURE_A and plug it into the Base Color slot. Additionally, if the texture is partly transparent then plug the Alpha into the Alpha slot. Be sure to go into the material settings and set the blend mode to anything other than Opaque

Then if you have a TEXTURE_M metalness map plug it into the Metallic slot (I also set the color space to Non-Color for this texture, though I'm not sure if it's required for this one)

Then the complicated one, the dreaded TEXTURE_N normal/roughness/mask map.

For this one first set the color space to Non-Color, so it will render correctly.

Then you'll want to plug it into a Separate Color node.

Then plug the Red channel from that node directly into a Combine Color node in the Red slot.

Take the Green slot from the Separate Color node and plug it into an Invert Color node, then plug that into the Green slot of the Combine Color node. (This is because FromSoft normal maps have the green channel inverted compared to Blender.)

Then don't plug the Blue slot into the Combine Color node. Instead simply set it to 1 on the node itself. (This is because FromSoft normal maps use the Blue channel for Roughness.)

Then take the Combine Color node and plug it into a Normal Map node and plug that into the Normal slot on the Principled BSDF node.

After that, take the Blue slot from the Separate Color node and plug it into another Invert Color node, then plug that into the Roughness slot on the Principled BSDF node.

For most materials, you shouldn't have to worry about the alpha of the normal map, which is the mask channel. These are mostly just used for masking detail textures and such on certain models.

Now set the Specular slot to 0.5 on the Principled BSDF node, and if you don't have a metalness map then be sure to also set the Metallic slot to 0.

With that, the basic material setup is finished, and you should have something that looks like this -

material setup

Blaidd's face/eyes and mouth with materials applied

Now just repeat that process for each material until the model is fully textured!

Additional Notes

Now this is just the very simplest setup a material can have. Many models have some more complicated setups and will use textures that aren't included in the model's .tpf, including some of Blaidd's parts.

I'll use his hair as a quick example. His hair and fur materials actually use two different color textures, one for the hair shape and one for the hair color. The hair shape texture is actually located in the parts folder in the main directory, in a file called common_body-tpf.dcx. In this case, it's AAT500_Hair_02_a.dds and AAT500_Hair_02_n.dds. Many Elden Ring characters will also use textures from this file along with their specific ones.

The hair shape texture uses the third UV slot and is overlayed over the hair color texture, which uses the first UV slot. The material should look something like this -

Blaidd's hair material setup

Blaidd's hair/face fur with the material applied

Detail Textures

Additionally, Elden Ring materials make -heavy- use of detail textures, which are just additional color and normal maps overlayed onto the base textures to add more detail. These textures are all located in common_body-tpf.dcx.

These are a huge pain to try and figure out, since every material in-game uses different textures, setups, blending, and UV scaling. What you can do is go into the material folder in your game directory and unpack allmaterial.matbinbnd.dcx.

After that, navigate into the Chr folder and the matxml folder inside. Here you can find the materials used for every character. Take the .matbin file for the material you want to look at and unpack it with WitchyBND as well. This will give you a .xml file you can open with Notepad++.

At the end of these files will be a list of every texture used for the material, including detail textures. After that it's just sort of a guessing game with how exactly these textures are applied and overlayed. I mostly just compare with pictures taken in-game to try and get them close.

Unless you're a stickler for extreme accuracy, you shouldn't really need to mess with this too much, as it's a lot of work and can very quickly get complicated and messy with material set ups. I mostly just wanted to share what I know about them for those curious haha

END

With that, that's pretty much the basics of model extraction and applying textures! I hope this will prove useful to anyone wanting to extract and mess around with Elden Ring models!



This will be a little tutorial of sorts? For importing Elden Ring models into Blender, since a lot of documentation and such for ER modding is pretty scattered around the internet or locked behind a discord server. I'll go over the programs needed and the process I use for taking chr models and putting them into blender.

Hover over images for alt text!

-Programs and Links-

Here's a quick list of everything needed.

-Blender 3.3 (any version above 3 will probably work.) : https://www.blender.org/download/

-XNAlara addon for Blender (for importing .ascii files) : https://github.com/johnzero7/XNALaraMesh

-Paint.NET (For opening .DDS files) : https://www.getpaint.net/

-Notepad++ (For editing .ascii files) : https://notepad-plus-plus.org/downloads/

-UXM (For unpacking Main ER Data.bdt files.) : https://www.nexusmods.com/eldenring/mods/1651?tab=description

-Yabber (For unpacking other ER Files) : https://github.com/JKAnderson/Yabber/releases

-Elden Ring Chr ID List (This is a spreadsheet from the Souls Modding Wiki which lists which character corresponds to which ID) : https://docs.google.com/spreadsheets/d/1eZ9FWlu1MDLnR2J0z0ld6T9FFZssOCjM1tS-Vvx0Yr0/edit#gid=0

-Bloodborne Tools : https://forum.xentax.com/viewtopic.php?t=17332

-FLVER to ASCII Tool : https://forum.xentax.com/viewtopic.php?t=24883&sid=67c83b26e4fef44067805faac91fdcfd

(You'll need an account to download these last two.)

-Videos-

-Elden Ring Model Exporting Guide (This video's a good start for unpacking the Elden Ring files and a more basic model exporting guide. (I'll go over this in my tutorial as well.)) - https://www.youtube.com/watch?v=f9WtRrl5PSo

-Elden Ring Modding Playlist (By the same account, a lot of helpful information on doing different things) - https://www.youtube.com/watch?v=USA0VnTlNA4&list=PLk3PHlXPeN-hLhvzBwI6BkDzJ5R7wTVaP

-Exporting Models-

So begin by unpacking Elden Ring's files with UXM according to the program page's instructions. Once this is done there should be a bunch of new folders in the game's main folder. The one we're interested in is the chr folder. This is where all the enemy character models for the game are contained.

In this folder you'll see a bunch of .dcx files, but we're only interested in .chrbnd.dcx and .texbnd.dcx files, which contain the model and textures, respectively.

Using the spreadsheet, find the character files you wish to export and drag them onto yabber.exe, which will create an unpacked folder in the directory the .dcx files are located. For the texture files you'll additionally need to navigate the unpacked folder until you find a .tpf file, which you'll also need to unpack with Yabber.

Now you should have an unpacked folder containing the textures in .dds files and one containing the model files, of which we're only interested in the .flver file. This is the file which contains the actual mesh.

Now here is where this method diverges from the video listed earlier. The video's method is to simply drag the .flver file onto the bloodborne_model_v3.exe in the Bloodborne Tools folder you've made. This will create both an .ascii and a .smd file. Then you import the .smd into blender using an addon. This works for getting the model into blender, but there is a major issue with this method. The UVs for the model are not properly preserved, which means models with multiple UVs will only keep one. Additionally, meshes with cloth physics such as fur and others will usually have their UVs corrupted entirely.

Pictured : SMD method UVs. yikes

If you're interested in applying textures to the model, or editing it to place back into the game, this method doesn't generally work very well for many characters.

Instead we'll follow the method detailed on the FLVER to ASCII tool page. Basically once you've created an .ascii file with the Bloodborne Tools, take that file and place it in a separate folder. Then open FLVERtoASCII.exe and select your .flver file. This will create another .ascii file.

This is where it gets a little complicated. We're going to open both .ascii files in Notepad++ and copy the bones from the Bloodborne Tools .ascii to the FLVER to ASCII tool .ascii. We'll use Blaidd's files for reference.

The FLVtoASCII file starts with two numbers, 0 and 16.

The BT file starts with 356 and then lists all the bone data and ends with 16 once again.

Just select and copy everything in the BT file up to the 16 and paste over the 0 and 16 in the FLVtoASCII file. Now that you've done that just save the file and it should be ready for importing to Blender! The numbers will be different depending on the file but the method is exactly the same, copying everything from the first number to the second.

The format in the FLVtoASCII file should end up being : First number from BT file - Skeleton data - Second number from either file

The FLVERtoASCII file before copying. The beginning of the BT file. The FLVERtoASCII file beginning should also look like this after pasting.

Now you just need to import the .ascii file into Blender with the XNAlara addon and viola! (Be sure to uncheck Join Meshparts when importing) If everything was done correctly you should have a complete model with a skeleton and fixed UVs.

UVs are fixed and all listed!

(Also if you're intending to use the model for rendering in blender or such be aware that models are flipped when imported, like Blaidd's closed eye being on the wrong side etc.)

Now it's ready for the textures you've extracted to be applied! I won't go over applying textures or From's texture formats in this tutorial, but I'll probably talk about them in another one later. Just know that Blender can't open From's .DDS files, so you'll need to open them in Paint.net and save them in another format like .TGA.

And You're Done!

For now that's all you should need to extract some models from Elden Ring! I hope this proves useful to anyone interested, and thank you for reading! :)