1. IntroductionThis tutorial will cover replacing and adding new models into 3DW.
2. RequirementsThis tutorial requires Switch Toolbox and Spotlight. You should preferably also create a duplicate of your 3DW dump, and set Spotlight to use it.
3. Importing display modelHave your model prepared in a common 3D format, such as .obj or .dae, as well as your textures mapped. Exporting an existing model from another game with Switch Toolbox will do this automatically. You should also have the model you plan to use for collision in here as an .obj as well.
In Switch Toolbox, open the duplicated ObjectData folder (File > Open (Folder)). In this example, we'll be replacing EnterCatMarioStepA, the first platform of the first level, with the first platform in 3D Land. You can always check the name of objects in Spotlight. After opening the folder, search for EnterCatMario and select EnterCatMarioStepA, then close the search box. Quadruple click on it and it should expand into multiple files.
The main ones you'll want to worry about for model replacement are the kcl (the one that shares the name with the object) and bfres. The kcl is for collision, while the bfres is the display model. To replace the bfres, double click it to open it. Double click again to expand it. Open the models folder and right click on the model, then select "Replace".
Select your .dae or .obj that you want displayed. In the import settings window that will popup, leave them as-is and hit Ok. On the next one, change the game preset to "SuperMario3DWorld" and select "Use Material". Click on the red box underneath it, download this file, and select it. Make sure "Create Placeholder Textures" is disabled, and hit Save.
You should now see a loading screen for a few seconds as the model is imported, and then it will appear in the viewport. If it doesn't, you may be zoomed too far in or out. Right click the model again, and select "Calculate Tangents/Bitangents". Do the same for "Normals > Recalculate". You will notice that the textures aren't applied, so we'll now add some. Right click on the Textures folder in the bfres. If there are textures inside, select clear. To import them, right click and hit Import. Select all the textures used for your model, as well as these 2, and click Ok on the next dialog. You should now see your textures appear on the model! You're not done yet, though. Double click on InitModel.byml (within the szs) and check if there's anything inside it. If there's not, you're good to go, but if there is, right click on TextureArc and delete it.
Deleting it tells the game to use the textures inside its own file, rather than another one. Be sure to click the save button after, which will be at the bottom of the box if you double clicked the byml. Stop here and move to Finalizing if you don't want custom collision.
4. Importing collision modelFor the collision model, you'll want to double click on the kcl, and it should display in the viewport. Right click it and select Replace, then select your collision .obj. A box will show up that lets you assign materials to the kcl, making different sounds when you walk on them. This is for things such as grass and water, but we won't worry about that in this tutorial. Join the discord server linked at the end for more info about it. Select "Material by meshes", and make sure Game Select is set to 3D World and Platform is Wii U. Pressing Apply in the top left will generate the kcl.
That's all there is to the kcl!