Often the easiest way to get into ped editing is to start simple: Let's edit an existing model from GTA for a freemode ped, so we can learn the basics.
One thing you should know is that there are generally two different types of peds for GTA: "streamed" and "non-streamed". For a basic explanation, just know that peds use YDD (drawable dictionary) files for their models instead of YDR. For streamed peds, all of their 'parts' (ie shirt, shoes, head, etc) are separate YDDs. For non-streamed peds, all of those parts are put together into 1 single YDD. Streamed peds are generally easier for beginners to start with editing, because you can edit and export 1 piece at a time so if you mess up, you know it's just that 1 part that isn't working.
MP Freemode both male and female are both "streamed peds". This means that all of their parts are separate. If you wanted to see a 'base body' in blender to work with, you'll need to import several different YDDs: a HEAD, an UPPER, a LOWR, and a FEET.
One other note before we start: All peds, whether streamed or non-streamed, have a SEPARATE FILE called a YFT for their skeleton. For whatever ped you are editing with Sollumz, you will need their YFT file so that Sollumz knows what their bones are.
Let's start getting ready to get into Blender! The first step is to export the male and female Freemode ped skeletons (YFTs) to use when importing and exporting components that are rigged to the ped. These are located at x64v.rpf\models\cdimages\streamedpeds_mp.rpf and can be saved separately to be used with any freemode ped clothing or accessories you edit in the future.
If you haven't already created a folder somewhere on your computer to work on this project, do that now. Then, right-click the mp_m_freemode_01.yft and press Export XML...
. Make sure you're keeping track of where you exported the XML to. It will need to be in the same folder as the YDD when we import into Sollumz.
Now we'll export the model we actually want to edit, as well as a texture for it. If you didn't already know of it, tobii.space is a good visual reference for most of the freemode components. It has most DLC clothing, although it is missing some of the newer updates. Today we already know what clothing piece we're using, so let's head back over to Codewalker RPF and grab the file.
Open up CW RPF and type mp_m_freemode
into the searchbar
If you click "Name" at the top to sort by name, you'll then see a list of all of the MP Male folders. You'll notice there are multiple folders for every DLC. This is the original DLC folder, and then patchday folders that hotfixed any issues R* had with various pieces of clothing.
The 🟥 outline is all of the base MP male DLC folders
The 🟧 outline highlights all of the DLC names. Notice the original DLC and all of the patchday hotfixes.
The 🟩 outlines the original base game DLC folder.
Right now we aren't going to worry about any hotfixed files, so just click into the original DLC folder. If you are ever editing GTA assets, though, you should always look through the patchday folders for whatever component you're trying to edit so that you can work off of the most up-to-date version.
Now that we're inside the base folder, you'll see a long list of all the base game components and their YTD textures. Make sure you're sorted by 'Name' so that everything is alphabetical, and then scroll down until you see the JBIBs.
For the purposes of our tutorial, let's export jbib_007_u
.
Right-click on jbib_007_u.ydd
Select export XML...
Export location: Make sure you export to the same folder you exported the YFT earlier.
Now let's quickly visit the folder you've just exported the file to. In the folder, you should have a couple of things. Firstly the mp_m_freemode_01.yft.xml
, then .ydd.xml
of our jbib & there should also be a folder named jbib_007_u
.
Whenever you are exporting a model that has embedded textures, Codewalker RPF will create a folder named after the model you exported to XML with all of the embedded textures placed inside of it.
Go ahead and click into the folder and take a peek at the embedded textures! You should see two: a normal texture and a specular texture. To quickly explain these: A normal helps emphasize clothing details like wrinkles & a specular helps display the glossiness or matte of your clothing.
Most freemode clothing components have an embedded specular texture and normal texture. When you go to make your own models later on, you'll need to learn how to create these yourself. For now, they have already been made for us. So get familiar with them while you can!
You might have already noticed, but there's one texture we don't have yet: A diffuse texture. The diffuse texture for clothing YDDs stays un-embedded from the model and in a separate file called a YTD (texture dictionary), and you can have up to 26 of them (A to Z) for any single YDD. We don't need the texture for our editing today, but it's nice to have a visual reference, so let's grab one now.
In Codewalker RPF right below where you found the YDD we exported, should be the YTD files. Scroll down until you see jbib_diff_007_a_uni.ytd
and export it to XML. It will create a sub-folder named jbib_diff_007_a_uni with the texture inside of it.
Do a final check before opening blender. Your folder should look like this:
Your .yft.xml
is in the same folder on the same level as the .ydd.xml
. That's the import part!
If you would like, you can copy/paste the diffuse texture from the jbib_diff_007_a_uni to the "embedded textures" folder jbib_007_u . This will allow Sollumz/Blender to automatically find the texture when you go to import. Otherwise, you can link it manually later on.
With Blender open:
click File
Import â–º Codewalker XML
Navigate to the folder you exported the XMLs
Click jbib_007_u.ydd.xml and from the side-menu options make sure you select 'Import External Skeleton'
You should now be looking at something like this:
Let's make sure we imported correctly. In scene collection:
Expand jbib_007_u and then jbib_007_u.001 and click on SKEL_ROOT
In the properties window, click on the Object Data Properties tab
Expand Vertex Groups (if its not already) and make sure they are all named.
If you see named bones like SKEL_L_Hand etc then you're good to go! If you see something like UNK.001 you did not follow the correct steps for exporting the YFT portion of this tutorial. Go back up, re-read, and try again.
With everything imported properly, let's get ready to actually edit! First things first, we probably want to change our viewport to actually see what we're working with.
Personally, I like to change the 'color' to Texture and 'lighting' to MatCap, but you can play around in this menu and see what works for you.
Once we have that set, your shirt might look like this:
If you left the diffuse texture in it's own jbib_diff_007_a_uni sub-folder, you'll see our jacket is pink. That's fine! We can just link up our diffuse texture now.
Top-left, go to File â–º External Data â–º Find Missing Files
Navigate to your project folder and select the jbib_diff_007_a_uni sub-folder where you will see the jbib_diff_007_a_uni.dds. Then press 'find missing files'.
It's good to know this method, as you will use it in other parts of Sollumz modding as well for things like props and MLOs. You might see a yellow warning popup at the bottom of your blender that says it cannot find 'givemechecker.dds' . This is fine to ignore.
Head back to the 3D viewport (instead of shader editor) and we can see our jacket now has the diffuse texture:
Great! Just one more thing to do before we actually edit. When importing into blender our vertices have unmerged and we've lost our sharp edges. We want all of that back so that we can have the most accurate view of what we're working with and what it will look like in-game.
To fix things, let's do the following:
Select SKEL_ROOT in scene collection
In 3D Viewport, Tab into Edit Mode
Select everything (Default: A key)
Merge â–º By Distance (Default: M key)
In the bottom left for the 'Merge by Distance' window, expand it and tick on Sharp Edges
Clothing has 3 LODs (level of detail): high, medium, and low. We also need to do the same thing for our medium and low LODs.
The easiest way to switch between LODs quickly is to press SHIFT + V (make sure you are no longer in edit mode) to bring up the Sollumz Object Visibility wheel.
The three options on the right-side of the wheel are the ones you'll be using for clothing YDDs. Switch to Medium, repeat the same steps above. Then switch to Low, and do it once more.
We're ready to edit! Switch back to High LOD with SHIFT + V and tab into edit mode. You can make any changes you want here. I'll delete the sleeves for the purpose of this tutorial.
Now that I've removed the sleeves, I have 2 things to resolve:
I need to fill in the holes where the sleeves used to be
I need to create new sharp edges to tidy up the model
The reason we want to fill in the holes is because GTA uses back-face culling. What this means is that the faces on the model do not have both a viewable "front" and "back". Instead, the front-facing side is visible and the back is invisible. We can see this in action in blender by going back up to the viewport shading options and turning it on.
You can see the "back side" of the model is invisible now. We need to fill in those holes. There are two ways to fix this.
First, go back into edit mode and select all of the vertices around the edge.
Then you have two options. You can either press F to fill in the hole, or you can extrude the hole and then merge the vertices from the extrusion. For this tutorial, I'll be doing the second method.
Select the vertices around the edge
Extrude (default E key)
With your mouse, move the new points slightly inward
Scale the vertices together (default S key) then merge them (M Key) â–º at center
You might notice that our new geometry looks a little weird. Almost as if its shiny in places.
What's happening here is we have bad normals. To be clear, there is a difference between the embedded "normal texture" (sometimes also called a bump map) and geometry normals. If you'd like to learn more about normals, there are plenty of youtube videos that can help.
For now I'm just going to reset them to clear up this issue! With my geometry selected go to Mesh â–º Normals â–º Reset Vectors
Once that's done, everything should be looking much betterr.
Since this is the edge of the shirt, I'd also like to set some sharp edges along the same loop we just filled in. Sharp edges add a more "crisp" line in geometry that is clearly visible in-game. When you use them properly, they can add a little extra emphasis to your model quality. There's no rule of when or when not to use sharp edges, it's up to you to follow the lines of clothing and determine where they would make sense.
For now I'll go to edge select & select the loop I filled in, then right-click and press "mark sharp"
Now do the same thing with the other side.
With that done comes the boring part: Repeating the same process with the medium and low LODs! With custom models, you would have all of this already finished before you create your LODs but when editing existing clothing, you need to either edit everything the same or create new LODs after you've edited.
For this tutorial, you should delete the sleeves on the med/low LODs so that they look visually similar, but it's up to you whether you want to fill in the sleeve holes like we did here for High LOD. Chances are that from a distance people won't be able to see that small detail anyway.
With all of the LODs edited, we're now ready to export!
In the outliner window, right-click jbib_007_u and select hierarchy
Then go top-left to File â–º Export â–º Codewalker XML
It's best to create an 'export' folder so that you are not overwriting the original. That way if you mess up, you don't have to go grab the ydd xml all over again.
navigate into Export folder
Export
The window will close and at the bottom of your blender you should see a message like "exported in 0.12 seconds".
Now in our export folder, we should have our new .ydd.xml and a copy of the embedded textures folder with our normal/specular textures inside.
You can now head back over to Codewalker RPF and import the XML to turn it back into a YDD & preview it!
Our model is finished! Now you can replace the existing one or create an addon with the same textures and test in-game. In-game you might see it clips with the underarms as you move around. That's due to something called "weight painting". More about that to come in future tutorials!