Using Blender and Switch Toolbox to edit Breath of the Wild Models and Textures For this Tutorial you will need: Blender - Download the latest version here Blender is a completely free to use 3D modeling software plus many extra features. Recently version 2.8 was launched which revamped the UI and added features that make it actually usable for most people. If you are in- terested in 3D modeling now is a very good time to start learning Blender. Blender is very powerful software and can do most anything you would want. The only situation I wouldn’t recommend learning Blender is if you are trying to get into the industry as a movie or video game modeler/ani- mator. You probably better off learning an industry standard like 3ds Max and/or Maya. Not necessarily because Blender is worse, it is just a different workflow. But for personal and hobby usage it s more than enough. In this tutorial I will explain as if you are a complete beginner. However I will not explain how to model. There are many good tutorials online if you just do a simple google search. One I recommend is Blender Guru’s donut tutorial. Switch Toolbox - Github Link Switch Toolbox is a written by KillzXGaming that among other things can import and export the files we need to mod Breath of the Wild. Think of it as the bridge between the game and your other software. Image Editing Software This is optional but if you want to edit texturs you need something. Any basic image editor will work. You just need to be able to save as a PNG. On windows you can use Paint if you want though there are many free good alternates like Gimp or Paint.Net. Blender can edit and save textures but as pure image editor it is very clunky. Breath of the Wild Source Files I am not going to tell you how to get them but you can legally dump them from your owned WiiU or Switch copy. Note I am just going to go through the basics to get you started. If you want more information or help I would start here. On top of what is already in the site there are links to Discords that you can ask for help in. The first thing you want to do... is always, always set up a clean, logical and separated work space. Set up separate folders for everything. Keep everything organized. Things can get very messy very quickly and a week from now you will not remember what you did today so if you value your sanity then Keep Things Organized! Getting the source files In this tutorial we are going to edit the Armor_001 which is the Hylian armor but you can use what you learn here to edit any armor or texture. Wherever you have the game dumped you want to navigate to the content/Model folder. In there are a lot of .sbfres files. These are container files Nintendo uses to house the 3D model. We are interested in the Armor_001.sbfres and Armor_001.Tex1.sbfres (if you are using switch files its just Tex). Copy these files to your working directory and put them in their own separate folder. Open Switch Toolbox. Go File > Open and select Armor_001.sbfres. You should see this: If you don’t see the 3D viewport there is a button that toggles it. Now on the left open the list tree and the Models folder so you get this: And then open the Armor_001_Upper and the folders inside it. Objects folder holds the meshes. A mesh holds the vertex data and general shape of the object. Meshes in BotW to work in the game engine need to be made up only of trian- gles. But that isn’t something you need to worry about. Materials holds the material objects. Materials are assigned to meshes and tell the game what textures a how to shade the mesh. You can copy, export, and import mate- rials from the same or a different sbfres file. At the time of writing this we can’t edit (we can edit some stuff ) or create shaders yet in BotW. For now you just want to use them to assign textures to objects. Skeleton holds the bones. Bones are objects that you use to deform the mesh in certain ways to animate the models (like move the legs/feet when you move to simulate running/ walking). Importing bones is beyond the scope of this tuto- rial but it is possible. We will export bones so we can rig our meshes in Blender. If you select a mesh in the list tree you will notice that the corresponding mesh is highlighted in the 3D view. But there are no textures! Well its easy enough to load them. Click this button and open the Armor_001.Tex1.Sbfres You should now see textures in the viewport. Alright, so now we are going to export our model so we can use it in Blender. You can export individual meshes (and bones or materials for that matter) but for the sake of simplicity we are going to export the upper body model. Right Click the upper model and click Export. Toolbox defaults to .dae ( Collada) which is what we want for Blender. Now the mesh, bone, and material (kinda) data is stored in the collada. The textures how ever are not. You don’t have to export the textures but we are going to. The textures are going to be loose .png so make sure you have a folder to export into. I am exporting into the same folder my .sbfres files are. You will get this pop-up. Just leave the default settings checked. You should now have a folder with a collada (.dae) file and some png images. Importing the source files into Blender Now you have everything you need to start editing files in Blender. First step is, obviously, open Blender. If you (you probably do) have the cube and some other scene objects delete them so they are not in the way. Now go to File -> Import -> Collada Before -- This is Important -- you import the file you need to click the gear icon in the top right and check mark these settings. If you don’t, the bones will not import correctly. Not the end of the world since we won’t be importing them back into Toolbox, but you want normal looking and working bones so its easier to rig/edit weights. Now Import the .dae (collada). Your model should look like this. Press Z and select Material Preview You should see textures on your model now. The belt texture is missing (it’s white because it has a default white material) because the texture for the belt is in a different Tex1 file because that belt model is on the base Link model. If you opened the corresponding Tex1 file in Toolbox it would have exported it correctly. Now I am not going to tell you how to model in Blender, there are plenty of tutorials you can find on the internet to do that. If you are a complete noob, this is the time to go watch some. The one I linked on the first page is a very good starting point. But I will tell how to get the model ready for export. Exporting a Mesh from Blender To export a mesh from Blender back into Toolbox you need to make sure a couple things are in order. First make sure the mesh has proper UVs. They can be crap but they have to have them. And you need to Rig the mesh to the skeleton and give it proper weights. Note: if you are just editing the imported meshes geometry itself you can possibly skip this because the mesh already has the weights. So for the sake of the quality of this tutorial I spent a very long time crafting an amazingly high quality mesh that took every ounce of my skill as a 3d modeler and artist. The Z is for Zelda; the main character of the video game. I made the UVs (if you don’t know how to do that go watch a tutorial) and just used Texture Paint to make a quick texture. So this is a mesh with no weights and is not rigged to anything. In BotW there is pretty much one base skeleton that everything is rigged to for Link. There are other bones and stuff for different armors but that is outside the scope of this tutorial. Now because I am making a similar jacket thing I am stealing the weights from the armor here. You can do that or you can import the naked body mesh from the Link.sbfres model something over the body and import the weights from that body so it deforms more like clothes. But it really depends on what you are making and this is were experience and knowledge come into play. Fig 1: The base Link mesh depicted with something he would totally wear. First thing we have to do is parent the mesh to the Armature. To do that -- The order is important -- select the armor mesh and then shift select one of the bones of the armature. The armature should have the normal orange outline -- Parent-- and the armor mesh should have a darker orange outline -- Child --. Now press control + P And in the Set Parent To menu select Armature Deform- with Envelop Weights So the armor mesh (called RoundCube because I forgot to rename it) is now parented to the armature we imported. But more importantly it now has all the Bones (vertex groups) from the armature. If you click Ob- ject Data Properties (green triangle) in the Properties Panel you should see them. However if you change the pose (select bones and press control + tab to enter pose mode) of the bones you will notice that it doesn’t deform quite right. That is because Blender gave each vertex group decent but not want we want weights. How do we fix this? Well the armor we imported has the exact weights we want so we just take those. The other option is to manually and painstakingly paint all the weights ourselves (again google it). So unless you want to do that select -- Again Order is Important -- the mesh you want the weights from (the hylian armor we imported) and then the mesh you want the weights to go to (my beautiful hand modeled armor) in that order. If you do it backwards you will change the Hylian armors weights, which is not good. Then select Weight Paint Notice how the armor that I want to weights to go to has a light orange outline. The mesh that is getting the weights will turn blue ( so make sure it’s the correct one). Now select Weights -> Transfer Weights. --Don’t Press Anything-- Blender is kind of weird; you don’t always get pop-ups, you instead get this little menus at the bottom of the screen. If you do anything else the menu is gone forever and we need to change something for this to work. But don’t worry if you do screw it up you can press control + Z. You need to change Source Layers Selection to By Name so it pulls the weights from the name of the vertex groups which is what we want. You can also change Vertex Map- ping to get different results but unless you know what you are doing don’t touch anything else. You don’t have to press OK or anything, it does it when you change the settings so you and the menu will sit there until you do the next thing. Which is... Limiting weights. Now most game engines, one of with is BotW, don’t like it when a vertex is assigned to too many bones. Usually more than 4. So you have to limit the Weight Count. The weight count is vertex with the most amount of weights. If you have 1,000,000 vertices with 2 bones and 1 vertex with 6 bones, the weight count for your mesh will be 6. In Toolbox the weight count is called Skin Count and if its above 4, sometimes 3 (haven’t figure that out yet but maybe someone in the modding discord knows) it will do nasty things to your mesh on import. It basically ignores everything over 4. Luckily all we need to do is in weight paint mode select Weights --> Limit Total A little menu will pop-up on the bottom again and it should default to 4. If it’s not, set it to 4 (or 3 if you tried 4 and you are having problems). It will tell you how many vertexes are limited (mercilessly killed). It will tell you how many vertexes are limited (mercilessly killed). If it says 0 you didn’t do anything. If it says 0 you didn’t do anything. The mesh should now deform very close to the armor mesh. The fingers don’t quite deform right because my mesh doesn’t really have fingers so the weight transfer didn’t line up well. You can try different vertex mapping when you transfer weights to maybe get a better result but you probably have to go in and manually paint stuff (again, google it). I am just gonna leave it because I don’t really care. Alright the mesh is export ready. Select the mesh go to File -> Export -> Collada. Now once again we have to change some settings so don’t get trigger happy. Now these are the settings that matter. If you don’t check mark Selection Only Blender will export everything in the file. Maybe you might want that but we don’t want that right now. In the Geom tab you need to select Apply Modi- fiers because we have the bone stuff set up as an Armature Modifier and we need that stuff to be applied so Toolbox will be able to read it. The Anim tab has stuff that can be un-checked but it doesn’t really matter so if you are lazy don’t bother and if you are paranoid you can uncheck it. Global Orientation might need to be checked. It might not need to be checked. But it definitely needs to be Big-Brained. --Big Brain Time -- 3d programs don’t all have the same up Axis. Some of them like Z, and some lIke Y. Blender uses Z as up. Toolbox uses Y as up. As of now when you import into the Blender from toolbox models are orientated but on the Z up axis but their data is using Y up. However if you imported the Armature, only it is rotated, and the mesh will follow because it is the child of the armature. You can check this by looking at the trans- forms panel in object mode. What you need to do is clear the transforms of the Armature by selecting it and then pressing CRTL + A and selecting All Transforms. Once you do that all the child meshes are gonna have the ro- tation on the X-axis set to 90, but you can simply select them and clear the transforms again. This sould make the oreintation correct on import, but if it doesn’t there are options in toolbox to rotate stuff by 90 degrees Importing Into Switch ToolBox We now have a mesh that hopefully will import into Toolbox without a fuss. Go back your Switch Toolbox window (if you closed it, even though I didn’t tell you to do that -- reopen the files I had you open earlier) and right click the object folder in the upper armor and select Import Object and impor the collada you just made. Keep the default settings here. You shouldn’t ever have to change anything other than maybe rotate bones if you are importing those (we are not). Uncheck Use Material and set the Game Preset to BreathOfTheWild. There are more options (see the rotate option I was talking about earlier) but if you followed my tutorial you shouldn’t have to change anything else. Now press save. --Note-- Generally I haven’t had issues with the BOTW preset when importing new meshes for armors and weapons but it isn’t guarenteed to work because the game can coded in a certain way where it might be looking for something and if it doesn’t get what it expects it crashes. If you are making mesh edits you can opt to replace the mesh instead and keep all the same settings hopefully avoid this potential error, but that isn’t always ideal either if your mesh is too different. So if you run into problems you are gonna have to troubleshoot each mesh object one by one. If this happens you are probably gonna need to ask for help. And just like that the mesh should be imported. One thing to check is the Skin Count (weight count) if its 0 something is wrong and will not see the mesh in game or it will be a T-pose. One thing to note - that mesh I imported has a lot of vertices, way more than the base game models. Now adding a realtively high poly mesh is fine. Especially on Cemu where the game is CPU limited not GPU limited. On Wii-U and Switch it isn’t that big of deal but if you go overboard it can cause performance issues. However if you increase the file size over whatever the original file size of the .sbfres you are gonna have to edit the RSTB. Now the model doesn’t have textures. We need to fix that. We need a material for the new armor. You can modify existing materials and assign them to the armor if you want, but for this we are gonna make a new separate material. And by make I mean duplicate one already in the mesh. Andy by duplicate I mean export then import. So export any material ( they might have different shader settings but it doesn’t matter right now). Then import it back in. And now I have a new copy of the material. Now we need to import the texture. Open the Tex file and then open the textures folder. You can either re- place a texture in here or import a new one. If you have a new texture to use import it by right clicking the textures folder. I am not going to screen shot it as you should be able to figure this out by now. Just leave everything as is here. There are situ- ations where you want a different format but for color textures you don’t need to change it. Generally the format is linked to the material, so whatever map you are replacing int that material just copy the format. Read http://www.reedbeta.com/blog/under- standing-bcn-texture-compression-formats/ if you want to learn about the different texture maps. So far I have only seen BC1’s for color usually, BC4 for some masks, and BC5 for normals. But that isn’t always the case and depends on the material. And it should be at the bottom (if its not idk how you did that). The texture is not assigned to a material though so now we gotta do that. Now select the material you imported. I renamed mine but you don’t have to. On the right you should see a textures panel. We are going to swap the main texture with our new one. As of writing this -- Important-- we can not add textures to materials. Only swap. So if you delete a texture the material is ruined. So don’t do that . Select the XXX_ Alb texture (under the samplers you will notice that the Alb has a _a0 flag). The alb is the color texture, the image you will see on the material. We aren’t going to replace the Nrm or the Spm but if you have those you can replace those too. Double click the Alb texture. In this window find your texture, select it and click save. Your panel should look the right image now. One last thing we have to do is assign our new material to our mesh. Its really easy, just select the mesh and change the material in the drop down. And wallah everything is all set. If you did everything right you should see your mesh with it’s texture in the viewport. All we have to do now is save it and import into the game. Now hit the save button and it will save our changes. Sometimes Toolbox won’t save the Tex file at the same time so make sure that it does (you get a pop up if it saved). If it doesn’t delete the armor sbfres out of Toolbox (don’t worry it just removes the file from Toolbox) so its the only file in there and then save. If you have a Tex1 file it will also make a Tex2 file which you will need for Wii U and Cemu. So save that too. Congratulations you now have a game ready sbfres file. Now if you are using Cemu use BCML to make a nano patch and test it game. Beautiful.