Software Prerequisites: - 3D Software of your choice - SB3UGS - Empty zipmod package provided - Notepad++ Assumptions: - This version of the guide will only explain how to make a static studio item without FK posing or special shaders or colour masks - There will only be minimal troubleshooting explanation - Some basic understanding with SB3UGS operations - Some basic familliarity with 3D terminology and software Guide: 1. Get a model to port A. Open it in your 3D Software and check for the following, and correct if needed: - Does it appear correct? - Do the textures appear? - Is this model built with a different renderer? i.e. Vray, Arnold, etc. - Unity can only handle meshes with a maximum of around 64k polys, you will need to either reduce the poly count of your object or split it into several meshes. Multiple meshes in your exported FBX will be recognized when you load it to SB3UGS. SB3UGS will notify you if you have this issue. B. Export your model to FBX format - Koikatsu's scaling is very small for whatever reason (about 1% of normal). Either scale your model down to 1% or have your FBX export plugin scale to around 0.01 - There is no need to bundle materials with it, the FBX file will know the location of them - Orientation using Y-Up axis - Ensure smoothing groups are exported 2. Setting up our zipmod A. Set up the zipmod folder structure i. Study the provided sample's folder structure, you should see abdata/studio/info/Reverie_Sample ii. Rename the following folder: abdata/studio/info/Reverie_Sample should be renamed to YourUsername_Modname iii. in abdata/studio rename the ExampleItem.unity3d file to whatever you want your object to be, you can have multiple unity3d files in a single mod package, so this does not need to match the name of your mod B. Set up Manifest.xml i. Open manifest.xml in a notepad viewer ii. Examine the current setup and rename the contents of the guid, name, author, and description tags. Do not edit anything between < and > iii. Don't use special characters except for the '.' where you see them alraedy, I can confirm that the ampersand (&) character will mess up sideloader loading the mod for example. iv. Version numbering will be used by sideloader to determine which version of your mod to load if it sees multiple versions. Suggested convention is MajorVersion.MinorVersion.BugFixVersion - Major Version: Use this when you're updating the mod with new things - Minor Version: Use this if you needed to adjust the contents or added something to an existing item - BugFix Version; Use this if you needed to fix an issue with a mod you already distributed, i.e. maybe fixing a part of an object not displaying properly. C. Set up the list files inside the abdata/studio/info/Reverie_Sample folder (or whatever you renamed it to) i. Rename ItemGroup_Reverie_Sample.csv to ItemGroup_YourUsername_Modname.csv ii. Open the ItemGroup csv file and change the first number representing the ID to some high random number, and the name to your username. This csv and ID number and name should be consistent between every studio item mod you make going forward. iii. Rename ItemCategory_00_999999.csv to ItemCategory_00_.csv iv. Open the ItemCategory csv file and change the ID, you will notice that the current format uses the 999999 ID number with an additional digit after this, which specifies the ID for the category. This can be shared between different mods you make and you want to appear under the same category. The number is not limited to 9 digits, just continue onto 99999910 for example when you get there. v. Rename ItemList_00_999999_9999991.csv to ItemList_00__.csv Leave the contents as they are for now, we will fill it out after setting up the unity3d file 3. Setting up the unity3d file A. Setting up SB3UGS i. Drag in your exported FBX and the provided empty unity3d file ii. In the tab that shows the name of the provided unity3d file, click on the Animator tab and double click on the entry, the center pane tab will open iii. If you are reusing a previous unity3d file, remove all of the items under Img, and all of the Material Type objects from the Materials Shader EXCEPT for one of them, we will need it in a few steps. Don't remove any Shaders. B. Importing from the FBX to your Animator i. Look at the animator tab in the middle, and click on the root node "SampleObject", in the Frame tab to the right of the tree, rename the Transform Name to whatever name you want your animator to be. You will need to save your unity3d file and reopen the tab to see the name update everywhere. ii. Switch to your imported FBX tab and look at the root tree nodes, you should see 3 or 4 items: Imported Frame (may or may not appear), Mesh, Material, Texture (may or may not appear if your object has no textures) iii. Drag in the ImportedMesh root item on top of the Root item in the Animator tab, it will bring up a dialog box which you will want to set the following options: - Method: Replace and also check the "Create Mesh Transform" box - Normals and Bones you can leave as they are for this tutorial - Nearest can be left as is - Check the "Convert to MeshRenderer" checkbox iv. This will then create a new Meshrender item under a transform found underneath the Animator root node. You can expand the child transform object and click on the Meshrenderer item. This will show the object in the Renderer tab on the right side pane (you may need to click on it if its showing the Image tab on the right pane) v. This object will not have its materials applied yet and for whatever reason you can only initially assign an existing material. Select your Meshrenderer item if you haven't already and then look at the Mesh tab that will be selected to the right. Under the Submeshes pane, you will see a table showing vert count, face count and material pathID. Select the Material Path ID dropdown and pick the material that we left in the unity3d file before. This enables us to add the right ones to the Animator afterwards. vi. Go back to your FBX tab and drag in the ImportedTextures root item to the Textures root node in the Animator tree. It needs to be done in this order so that SB3 will automatically assign the textures to the materials and the materials to the Mesh respectively. vii. Again from the FBX tab drag in the ImportedMaterials root item to the Materials root node in the Animator Tree viii. Repeat step iii with the mesh items. You may need to remove the existing child transforms if you have them created. The Materials and textures tree nodes may go empty when you remove the child transforms but will reappear once you re-import the meshes. ix. You can select your item MeshRenderer and it should appear properly textured in the Renderer tab now. If you have multiple meshes you can go to the Mesh tab in the Animator tab next to the Object Tree ta b you have been working in and select them all to see them at the same time. x. In this case the example has only a single shader type, the koikatsu studio_main_item shader, which for this tutorial is all we will use. You can expand the Materials tree and select a material then look at the Material tab that appears to the right and check the Shader Used dropdown to spot check that the shader is being used. - You will notice the properties in the tables below reference the texture slots that were used as well as the colour settings. If you have any experience using MaterialEditor in studio, some of those will look familliar to you and where you will go back and forth if you need to adjust the object in studio if it doesn't look quite right. C. File settings i. In the MonoB & Other Tab, rename the AssetBundle entry to studio/ (rename can be done either with the F2 key or in Assets menu dropdown -> Rename ii. In the File dropdown menu -> CABInet(s) change the string there to be unique, I have been using Reverie.Modname_. This must be unique amongst all mods including yours and other people's mods. 4. Finalize the zipmod setup A. Revist ItemList csv file and for a single entry you will need to note the following - The first number refers to the unique ID for the item within this mod, you can leave it at 1 for this example - The second and third numbers refer to the ItemGroup and ItemCategory IDs respectively, change these to your IDs that you chose earlier - The fourth spot will be blank - The fifth spot represents the name of your item as it appears in the studio item list - The sixth spot is the location of the unity3d file containing the animator/item we set up previously, note this is case sensitive! - The seventh spot is the name of your animator within the unity3d file - The rest of the blank and TRUE/FALSE entries leave them as they are for now, they are for setting up the item to use the studio UI to change colours/patterns, which we will revisit in a later tutorial B. Check your list files - Is your item category and item list IDs unique to this mod? (you can reuse ID 1 between mods but within the same mod they need to be different). The ID does not determine display order in the studio item list, the order they appear in the ItemList does - Does your ItemList file point to the correct unity3d file and animator inside? Keep in mind they are case sensitive C. Zip up your folders i. Remove backup unity3d files if you set SB3UGS to create them when you save during the process ii. You want to zip the files at the level of the Manifest.xml so that they are at the root of the zip file (i.e you should see Manifest.xml immediately when opening the zip file. iii. Koikatsu will read the file as zip or zipmod extension, you only really need to rename it for distribution. D. Move the zipmod to the Mods folder in your koikatsu installation If everything worked properly, it will appear in your studio's Item menu and load once selected! If not... Troubleshooting: - Enable the BepInEx game console using the F1 plugin settings menu, if there is something very wrong errors will show up here, though list file issues will not appear. - Item not showing up in the studio menu? Or the object doesn't appear after selecting it in the menu? - Check that your zipmod list files are set up correctly and pointing to the correct file and animators. Case sensitivity matters as do the file and folder names and numbers. - Don't use special characters for names or descriptions, especially in the manifest.xml but also in your csv files - All objects should be on layer A, check the Frame tab in SB3UGS (If the object is not appearing after selecting it) - Object seems too big or small? - Adjust your model scale or FBX export scale and repeat importing the meshes again (materials and textures don't need redoing) - SB3UGS can adjust the scaling in the frame tab but I can't get it to work consistently - Object pivot isn't centered to the object in studio? Or the object appears rotated incorrectly? - You will need to center the object to 0,0,0 XYZ cordinates in your 3d software - Transformations, rotations, scalings need to be frozen and reset. In 3ds max this will require you to reset XForms, other software will have different methods of doing it - Object seems dark or materials not appearing correctly? - You may need to play around with the modmap lights rather than the standard studio map lights - Note that you may need to use Material Editor to test material settings and then apply them on the material in SB3UGS. Generally Koikatsu applies its own internal shading so things will not look exactly the same as in your 3D software or in the SB3UGS renderer tab. - SB3UGS crashing when you import objects? - Turn off the renderer tab, it sometimes crashes if you are importing a lot of things or high poly objects - Some names seem incorrect in SB3 after renaming them? - Sometimes the tabs don't update the names, but as long as you save the unity3d file and close and reopen the tab, they will update Changelog: v1.0 - Initial version, no images