EricTheRoberts Posted May 18, 2023 Posted May 18, 2023 17 minutes ago, ZenithMob said: UABE not very good to use. Use UABEA instead to repack, but use AssetGui to extract .fbx files. Well, I dunno about the textures yet since I haven't tried changing it. Awesome, UABEA was the next thing I was going to try. Textures can be handled with ease in a more temporary sense with the Custom Textures mod since it makes for really easy and convenient live texture editing.
Guest Posted May 19, 2023 Posted May 19, 2023 (edited) If you are interested in a more traditional way of modding Unity games (using Unity engine), I'll write a rough explanation on how to mod, because it is kind of hard to explain in details without writing my own guide. Tools that you need: AssetStudio (latest version)- Export mesh in .fbx and textures. Also used for previewing mesh and textures. https://github.com/Perfare/AssetStudio UABEA (latest release version - nightly build) - Import/export dumps to repack the game files. https://github.com/nesrak1/UABEA Skinned Mesh Renderer.cs (latest script that works from GameBanana, because the one in pokemon discord is a broken script) - To generate new skinned mesh renderer based on the original fbx and custom fbx file, which basically produces a new mesh based on bones, so that you can use the mesh properly when repacked to .assets/.bundle/.unity3d, etc. Should work unless the game uses very old Unity engine (Unity 2017 and older I guess). https://pastebin.com/raw/srPr2cxd Unity engine (to build your mesh) - Find out the unity version from the .exe (Right click properties > Details)/.assets(Open with notepad++ > check first line) and then get the unity engine from unity hub. Threads to look at for tutorials: Fire Emblem Engage (Switch)'s thread (page 27, MerlinusTent's post) - The GameBanana's guide mentioned in there is very useful. Samurai Maiden - Potential Modding's thread (page 10) The gist of the modding strategy is like this: You'll need to read both tutorials. Treat the tutorial from Fire Emblem Engage's thread as the core guide, treat the tutorial from Samurai Maiden's thread as the sub-guide. Anything to do with building/generating/repacking, you prefer the tutorial from Fire Emblem Engage's thread. Any steps missing like how to open/extract files or import/export options during extraction of game files and also Blender options, you take from Samurai Maiden's thread. If you happens to know Unreal Engine modding, you may use the same FBX export options in Blender for the mesh. But you need to import/export the FBX with scale of 1 to Blender for Unity modding. Also, if you done Unreal Engine modding before, you may notice that the mesh might not be at world origin, unlike Unreal Engine modding. Ignore that. Leave the mesh at where the bones are when imported to Blender. Always remember to check the PathId from AssetGui, because you'll need it to locate your assets when repacking in UABEA. Usually not necessary, but in this game, you'll need to specify Unity version before you can extract anything. If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file. And this will show the original game file of the mesh/textures in highlighted one. You could also repack the textures using UABEA but I guess you can also use this "Custom Textures" tool (which I am not familiar with). Edited May 19, 2023 by ZenithMob
EricTheRoberts Posted May 19, 2023 Posted May 19, 2023 15 hours ago, ZenithMob said: If you are interested in a more traditional way of modding Unity games (using Unity engine), I'll write a rough explanation on how to mod, because it is kind of hard to explain in details without writing my own guide. Tools that you need: AssetStudio (latest version)- Export mesh in .fbx and textures. Also used for previewing mesh and textures. https://github.com/Perfare/AssetStudio UABEA (latest release version - nightly build) - Import/export dumps to repack the game files. https://github.com/nesrak1/UABEA Skinned Mesh Renderer.cs (latest script that works from GameBanana, because the one in pokemon discord is a broken script) - To generate new skinned mesh renderer based on the original fbx and custom fbx file, which basically produces a new mesh based on bones, so that you can use the mesh properly when repacked to .assets/.bundle/.unity3d, etc. Should work unless the game uses very old Unity engine (Unity 2017 and older I guess). https://pastebin.com/raw/srPr2cxd Unity engine (to build your mesh) - Find out the unity version from the .exe (Right click properties > Details)/.assets(Open with notepad++ > check first line) and then get the unity engine from unity hub. Threads to look at for tutorials: Fire Emblem Engage (Switch)'s thread (page 27, MerlinusTent's post) - The GameBanana's guide mentioned in there is very useful. Samurai Maiden - Potential Modding's thread (page 10) The gist of the modding strategy is like this: You'll need to read both tutorials. Treat the tutorial from Fire Emblem Engage's thread as the core guide, treat the tutorial from Samurai Maiden's thread as the sub-guide. Anything to do with building/generating/repacking, you prefer the tutorial from Fire Emblem Engage's thread. Any steps missing like how to open/extract files or import/export options during extraction of game files and also Blender options, you take from Samurai Maiden's thread. If you happens to know Unreal Engine modding, you may use the same FBX export options in Blender for the mesh. But you need to import/export the FBX with scale of 1 to Blender for Unity modding. Also, if you done Unreal Engine modding before, you may notice that the mesh might not be at world origin, unlike Unreal Engine modding. Ignore that. Leave the mesh at where the bones are when imported to Blender. Always remember to check the PathId from AssetGui, because you'll need it to locate your assets when repacking in UABEA. Usually not necessary, but in this game, you'll need to specify Unity version before you can extract anything. If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file. And this will show the original game file of the mesh/textures in highlighted one. You could also repack the textures using UABEA but I guess you can also use this "Custom Textures" tool (which I am not familiar with). Wow, that's a lot of information! Greatly appreciate you doing this, cause finding this on my own would have taken way longer with all the outdated tutorials I was getting.
EricTheRoberts Posted May 23, 2023 Posted May 23, 2023 On 5/19/2023 at 2:55 AM, ZenithMob said: Skinned Mesh Renderer.cs (latest script that works from GameBanana, because the one in pokemon discord is a broken script) - To generate new skinned mesh renderer based on the original fbx and custom fbx file, which basically produces a new mesh based on bones, so that you can use the mesh properly when repacked to .assets/.bundle/.unity3d, etc. Should work unless the game uses very old Unity engine (Unity 2017 and older I guess). https://pastebin.com/raw/srPr2cxd Unity engine (to build your mesh) - Find out the unity version from the .exe (Right click properties > Details)/.assets(Open with notepad++ > check first line) and then get the unity engine from unity hub. Okay, so I'm a bit stuck right now. I've followed the guide and tried so many different interpretations of what it might be, but the skinned mesh rendering script doesn't do what the guide says it does. It simply refuses to acknowledge my assets. Everyone else in the thread seem to have zero problems with the script though, so I'm really confused. Do I have to do something to the assets that the guide doesn't say anything about, cause it is completely incapable of recognizing the files when I follow the guide to the letter.
Guest Posted May 23, 2023 Posted May 23, 2023 (edited) 6 hours ago, EricTheRoberts said: Everyone else in the thread seem to have zero problems with the script though What thread are you referring to? Did you used the Skinned Mesh Renderer.cs from the exact url that I mentioned? Did the "Tool" menu appeared at the top menu after you added the script? Can you screenshot what you did inside the Unity engine? If I have to make a wild guess on what you did, I think you forgot to drag the original and custom models into the game scene. The Skinned Mesh Renderer.cs only recognize models that are placed in the game scene. For example, I looked at my original fbx model and its name is anna_travel but my custom model name is anna_travel 1 (when it is imported to Unity engine, it is named automatically like that). So I dragged the fbx models into the game scene (right-hand side of the screenshot), which made them appear in the scene hierarchy in the left side (you may delete everything except your models' objects in scene hierarchy ). This will allow Skinned Mesh Component Generation Tool in top menu to see the meshes. When you try to select Base Mesh (which is the original mesh), you will see exact name of 2 meshes. To understand which mesh is original or custom, look at the scene hierarchy. In the scene hierarchy in the left side, anna_travel is my original mesh and it is ordered at the top of my anna_travel 1 custom mesh. Therefore, when you select Base Mesh, you need to choose the original mesh, which is the top one in this case (sometimes the position of the meshes in the scene hierarchy may swap, so you need to pay attention to it). Edited May 24, 2023 by ZenithMob
EricTheRoberts Posted May 25, 2023 Posted May 25, 2023 On 5/23/2023 at 9:44 PM, ZenithMob said: What thread are you referring to? I'm referring to the Fire Emblem Engage thread. So, like I said I've followed every single part of the guide and end up not being able to use the mesh generation tool on the objects in the scene. Yes, I've copied the exact script. It pops up in the tool menu like it's supposed to and opens the window and everything. I placed both assets in the scene. I have marked both assets with the right settings. But the objects are not recognized by the mesh generation tool. Here's the screenshot you requested: Both objects are clearly present in the scene, and yet they aren't recognized. If you see any mistakes I would love to be corrected on my foolishness cause this is not exactly my area of expertise, despite having years of experience with Unity itself.
Guest Posted May 25, 2023 Posted May 25, 2023 (edited) Interesting, I myself also feel puzzled by how you managed to see nothing in the Skinned Mesh Component Generation UI. Does your project workspace looks something like this? Are you using Unity Engine version 2020.3.36? I attached the original fbx file exported using AssetGui from the game. Can you drag and drop the fbx into your Unity project, drag the imported fbx model into the game scene, and then directly use the SkinMeshRenderer tool and see if there is an option to choose for Anna's model? I only know if you exported the mesh as .obj, you would get that problem that you encountered. Did you export the mesh as .fbx? Because the Skinned Mesh Renderer.cs is all about bone + mesh processing. Therefore, if you exported in .obj, your bone data will not be there and the script will not recognize your mesh when it has no bone data. Maybe I'll try to write a full guide on how to mod here on the next post, so it would be easier to understand rather than going to other threads for scattered information. anna_travel.fbx Edited May 25, 2023 by ZenithMob
Guest Posted May 25, 2023 Posted May 25, 2023 (edited) How to Mod Disney Dreamlight Valley (Unity game) This tutorial is meant for experienced modders who understand how to do 3D modelling, because the tutorial assumes that you already know how to edit mesh, weights, UV map, textures and know what are armature/bones. Tools that you need: AssetStudio (latest version)- Export mesh in .fbx and textures. Also used for previewing mesh and textures. https://github.com/Perfare/AssetStudio UABEA (latest release version - nightly build) - Import/export dumps to repack the game files. https://github.com/nesrak1/UABEA Skinned Mesh Renderer.cs (latest script that works from GameBanana. If you have the script from Pokemon discord, please replace with this version instead). Should work unless the game uses very old Unity engine (Unity 2017 and older probably). Right-click the link > Save Link as > save the file as “Skinned Mesh Renderer.cs” . https://pastebin.com/raw/srPr2cxd Unity engine (to build your mesh) – You have 2 options to find the unity version. 1) From the .exe file, right click properties > Details, but this may be inaccurate sometimes. 2) Find any .assets file, open with notepad++ > check first line. Then get the unity engine from unity hub. In this case, the unity version is 2020.3.36f1, so you’ll have to download 2020.3.36 Unity engine. Step 1: Setting up the Unity project Spoiler Name your Unity project with whatever name you like. Select 3D Core and then create project. In the top left, you see your scene hierarchy, and you may get rid of the 2 objects if you want. Next, right-click anywhere inside the space under Assets at the bottom > Create > Folder, then create two folders called “EDITOR” and “EXPORT”. Double-click to navigate inside the EDITOR folder. Next, right-click inside the space in EDITOR folder > Import new Asset, browse to your Skinned Mesh Renderer.cs and click Import. Notice that you now have a new menu called “Tool” for skinned mesh component. Your Unity project is now setup. Step 2: Find and extract game assets Spoiler Run AssetStudioGUI.exe to open AssetStudioGUI. Click on Options > Specify Unity version > type “2020.3.36f1” (because this game requires the Unity version to be specified before you can extract the files). Click on Options > Export options. Now check that your export options are set this way. Now you have 2 options to see the assets, either you use File > Load file (if you know exactly where your asset is) or you use File > Load Package on …StreamingAssets\aa\win folder to see all assets. In this tutorial, we will focus on modding Anna (NPC character) and I happens to already know where the file is, so I will use File > Load file on …\StreamingAssets\aa\win\character-visual_assets_assets\ anna_b4a75a478a548be76d48d7159dfd84c2.bundle. Looking through the list of “Mesh” type, it is easy to spot that “anna_travel_lod0” is the mesh that I would like to mod. You can also click on anna_travel_lod0 to preview it. To extract the model, right click on “anna_travel_lod0” > Click on “Go to scene hierarchy”. In the next screenshot, you’ll set a bunch of object names. Now, we need to make a guess on which checkbox to tick before we extract the model, because we don’t want to extract too many files, which would be confusing. “anna_travel” looks quite logical to extract the Anna character model from, so we ticked the checkbox there. Well, main thing is that we want the “root” which is the armature and the mesh which is anna_travel_lod0 to be part of the whole object that we extract. Click on Model > Click on Export selected objects (split) to export to a folder. Your folder will contain a .fbx file and its related textures (if any). Go back to AssetStudioGUI > click on Asset List, so that we can write down PathID values. PathID values are very useful to locate your assets like mesh/texture inside the files quickly. Right click on your mesh (anna_travel_lod0) at where the PathID column is > click on Copy text. Create a new .txt file somewhere in your pc and paste the value. In above screenshot (where we extracted the model files earlier), we know that the texture files are Anna_diff.png, Anna_maps.png and Anna_nm.png. Scrolling down the list in AssetStudioGUI, we can also see the PathID of the 3 texture files. Copy down the PathIDs of the 3 texture files in a .txt file if you want. If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file. Based on the PathIDs you copied, your .txt file may look like this. You can close the AssetStudioGUI. Step 3: Editing the character model Spoiler I use Blender for 3D modelling, so this tutorial is based on Blender. In a new Blender project, use File > Import > FBX (.fbx) You can use the following import options when importing the fbx file. Looking at the bones, the body mesh is aligned quite nicely with the bones. Sometimes, the mesh may not be aligned with the bones and they may be far apart. Which means you need to align the mesh back to the bones by changing XYZ position and XYZ rotation (just do not apply transform after changing the coordinates and rotation angles). In this case, the bones are already aligned to the body mesh, so we don’t need to change XYZ location and rotation. Notice that the bones are very misaligned on the face mesh, but since we are not changing the face mesh, it does not matter and we can ignore this part. Now make your edits. I fast-forward the edit part because this tutorial is more for how to repack the mod. Click on “Collection” folder to allow the folder to become active collection. Click on File > Export > FBX (.fbx). You can use the following FBX export options. Ensure that your exported fbx name is the same as the original fbx name, which is anna_travel.fbx in this case. The options for FBX export are practically the same as what you can use for Unreal Engine modding. Step 4: Building the mesh assets using Unity Engine Spoiler In your Unity project, drag and drop both your original fbx and custom fbx files from your pc’s directories into your “Assets” workspace. In other guides, they mentioned that if you click on the fbx model in the Assets workspace, then Convert Units and Read/Write Enabled would both need to be toggled in reverse. But in this game, there is no need to do anything for this part as it works fine without toggling them. So, just leave it as default. Drag both original and custom fbx models from Assets workspace into the game scene. Notice that the left hand side’s scene hierarchy contains anna_travel 1 and anna_travel objects after you dragged the 2 fbx models into the game scene. Click on Tool > Mesh > Generate Mesh Component. At the Base Mesh, click on the circle icon to select a base mesh. You need to select the original fbx model as the base mesh. Looking at the scene hierarchy at the left, anna_travel is my original fbx model (position at the bottom) but anna_travel 1 is my custom fbx model (positioned at the top of the hierarchy). Therefore, when you choose Base Mesh, you click on the bottom “anna_travel_lod0” because the scene hierarchy tells us that the original fbx model is at the bottom position. Expand “Components”. In Element 0, choose the custom fbx model by clicking on the top “anna_travel_lod0”. Click on Generate. Notice that Assets > EXPORT folder now has a new mesh. Drag the new mesh into the game scene and you’lll get anna_travel_lod0 in the scene hierarchy. Delete the template fbx models in the scene hierarchy, leaving only anna_travel_lod0 (new mesh). Ctrl + S to save the project. Click on File > Build Settings. Click on Build and save your project files to a folder in your pc. Navigate into your Data folder, which is “My project for Disney_Data” in this case. The custom mesh is inside the sharedassets0.assets. You may close the Unity Engine project. Step 5: Repacking the game assets using UABEA Spoiler Understand that there are two types of Unity Asset Bundle Extractor, UABE and UABEA. Do not use UABE, use UABEA instead. Run UABEAvalonia.exe and open UABEA. Let’s call this UI as the main menu for simplicity. Click on File > Open > Navigate to your sharedassets0.assets where you build your custom mesh using Unity Engine earlier. You will see a “Assets Info” popup. Recall that our custom mesh is named “anna_travel_lod0” in the Unity Engine. Therefore, we click on anna_travel_lod0 > Export Dump. Ensure your select the file type as “UABEA json dump (.json)”. Save the custom mesh JSON dump somewhere in your pc. Close the “Assets Info” popup. Recall that you saved a .txt file with the PathID info earlier? Now you can start to refer to it. In the UABEA main menu, click on File > Open > Nagivate to your original game .bundle file (we already wrote down the bundle name, so it is easy to remember which file it is) and open it. Now you see a popup message which states that the bundle is compressed. Click on Memory for decompression. You now have some data loaded to UABEA. Click on Info to show the Assets Info popup. Click on View > Go to asset. Enter the Path ID of the original game mesh, which we wrote down in .txt file as 63314881225579444 earlier. We have navigated directly to the mesh. Click on Export Dump. Same as before, ensure you are saving as JSON dump. You may rename this JSON file with -original at the back, so that it is easier to remember that this is JSON dump of the original mesh. Using Notepad++, open the two JSON dump files that you exported. In the original dump json, Ctrl+F to search for “m_BoneNameHashes”. Copy the whole data from curly bracket { onwards till the } curly bracket. Go to your custom mesh json file, search for “m_BoneNameHashes”. Replace the whole data { } data from original mesh JSON to the custom mesh JSON. Repeat the same for m_RootBoneNameHash. Go back to your “Assets Info” popup from UABEA for the original mesh. Click on Import Dump. Ensure that you click on “UABEA json dump (.json). Navigate to your modified custom mesh json (you modified it to add the missing bone data in notepad++ just now). Import the json dump by clicking Open. Since I also modified the diffuse texture map file, I refer to the .txt file and checked that the PathID is 8795829544577487163. So I navigated to the diffuse texture by using the PathID. Click on Plugins > Edit texture. I have no idea how the options work, so you can trial and errors and see what the other options do. But these options work for me. Click on Load and find your modified texture file to load it. Then click on Save. In the Assets Info popup, click on Save as. It will tell you that the file (in memory) is saved. Click on OK. Close the Assets Info popup only. In UABEA main menu, notice that there is a * at the end which indicates that the file is modified but not saved. Click on File > Save as. Write the File name as the original bundle name, which I happened to have copied the bundle in my .txt file earlier, so I just copy paste it. Save the bundle file. You may now close UABEA. Backup your original game .bundle file and then replace with your modified .bundle file. Play the game to test. You can see how the final bundle file looks like in the attachment. For some reasons, the images ended up kind of blur, dunno why, lol. Anna.rar Edited May 26, 2023 by ZenithMob
EricTheRoberts Posted May 25, 2023 Posted May 25, 2023 I figured out my problem. I had somehow messed up the files which caused them to not be recognized... I have absolutely zero ideas as to how I messed them up, but I tried with new files and it worked without any issues. 28 minutes ago, ZenithMob said: How to Mod Disney Dreamlight Valley (Unity game) Thanks for the guide, that's gonna help a lot
BananaFish12 Posted May 27, 2023 Posted May 27, 2023 On 5/25/2023 at 9:13 AM, ZenithMob said: How to Mod Disney Dreamlight Valley (Unity game) This tutorial is meant for experienced modders who understand how to do 3D modelling, because the tutorial assumes that you already know how to edit mesh, weights, UV map, textures and know what are armature/bones. Tools that you need: AssetStudio (latest version)- Export mesh in .fbx and textures. Also used for previewing mesh and textures. https://github.com/Perfare/AssetStudio UABEA (latest release version - nightly build) - Import/export dumps to repack the game files. https://github.com/nesrak1/UABEA Skinned Mesh Renderer.cs (latest script that works from GameBanana. If you have the script from Pokemon discord, please replace with this version instead). Should work unless the game uses very old Unity engine (Unity 2017 and older probably). Right-click the link > Save Link as > save the file as “Skinned Mesh Renderer.cs” . https://pastebin.com/raw/srPr2cxd Unity engine (to build your mesh) – You have 2 options to find the unity version. 1) From the .exe file, right click properties > Details, but this may be inaccurate sometimes. 2) Find any .assets file, open with notepad++ > check first line. Then get the unity engine from unity hub. In this case, the unity version is 2020.3.36f1, so you’ll have to download 2020.3.36 Unity engine. Step 1: Setting up the Unity project Reveal hidden contents Name your Unity project with whatever name you like. Select 3D Core and then create project. In the top left, you see your scene hierarchy, and you may get rid of the 2 objects if you want. Next, right-click anywhere inside the space under Assets at the bottom > Create > Folder, then create two folders called “EDITOR” and “EXPORT”. Double-click to navigate inside the EDITOR folder. Next, right-click inside the space in EDITOR folder > Import new Asset, browse to your Skinned Mesh Renderer.cs and click Import. Notice that you now have a new menu called “Tool” for skinned mesh component. Your Unity project is now setup. Step 2: Find and extract game assets Reveal hidden contents Run AssetStudioGUI.exe to open AssetStudioGUI. Click on Options > Specify Unity version > type “2020.3.36f1” (because this game requires the Unity version to be specified before you can extract the files). Click on Options > Export options. Now check that your export options are set this way. Now you have 2 options to see the assets, either you use File > Load file (if you know exactly where your asset is) or you use File > Load Package on …StreamingAssets\aa\win folder to see all assets. In this tutorial, we will focus on modding Anna (NPC character) and I happens to already know where the file is, so I will use File > Load file on …\StreamingAssets\aa\win\character-visual_assets_assets\ anna_b4a75a478a548be76d48d7159dfd84c2.bundle. Looking through the list of “Mesh” type, it is easy to spot that “anna_travel_lod0” is the mesh that I would like to mod. You can also click on anna_travel_lod0 to preview it. To extract the model, right click on “anna_travel_lod0” > Click on “Go to scene hierarchy”. In the next screenshot, you’ll set a bunch of object names. Now, we need to make a guess on which checkbox to tick before we extract the model, because we don’t want to extract too many files, which would be confusing. “anna_travel” looks quite logical to extract the Anna character model from, so we ticked the checkbox there. Well, main thing is that we want the “root” which is the armature and the mesh which is anna_travel_lod0 to be part of the whole object that we extract. Click on Model > Click on Export selected objects (split) to export to a folder. Your folder will contain a .fbx file and its related textures (if any). Go back to AssetStudioGUI > click on Asset List, so that we can write down PathID values. PathID values are very useful to locate your assets like mesh/texture inside the files quickly. Right click on your mesh (anna_travel_lod0) at where the PathID column is > click on Copy text. Create a new .txt file somewhere in your pc and paste the value. In above screenshot (where we extracted the model files earlier), we know that the texture files are Anna_diff.png, Anna_maps.png and Anna_nm.png. Scrolling down the list in AssetStudioGUI, we can also see the PathID of the 3 texture files. Copy down the PathIDs of the 3 texture files in a .txt file if you want. If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file. Based on the PathIDs you copied, your .txt file may look like this. You can close the AssetStudioGUI. Step 3: Editing the character model Reveal hidden contents I use Blender for 3D modelling, so this tutorial is based on Blender. In a new Blender project, use File > Import > FBX (.fbx) You can use the following import options when importing the fbx file. Looking at the bones, the body mesh is aligned quite nicely with the bones. Sometimes, the mesh may not be aligned with the bones and they may be far apart. Which means you need to align the mesh back to the bones by changing XYZ position and XYZ rotation (just do not apply transform after changing the coordinates and rotation angles). In this case, the bones are already aligned to the body mesh, so we don’t need to change XYZ location and rotation. Notice that the bones are very misaligned on the face mesh, but since we are not changing the face mesh, it does not matter and we can ignore this part. Now make your edits. I fast-forward the edit part because this tutorial is more for how to repack the mod. Click on “Collection” folder to allow the folder to become active collection. Click on File > Export > FBX (.fbx). You can use the following FBX export options. Ensure that your exported fbx name is the same as the original fbx name, which is anna_travel.fbx in this case. The options for FBX export are practically the same as what you can use for Unreal Engine modding. Step 4: Building the mesh assets using Unity Engine Reveal hidden contents In your Unity project, drag and drop both your original fbx and custom fbx files from your pc’s directories into your “Assets” workspace. In other guides, they mentioned that if you click on the fbx model in the Assets workspace, then Convert Units and Read/Write Enabled would both need to be toggled in reverse. But in this game, there is no need to do anything for this part as it works fine without toggling them. So, just leave it as default. Drag both original and custom fbx models from Assets workspace into the game scene. Notice that the left hand side’s scene hierarchy contains anna_travel 1 and anna_travel objects after you dragged the 2 fbx models into the game scene. Click on Tool > Mesh > Generate Mesh Component. At the Base Mesh, click on the circle icon to select a base mesh. You need to select the original fbx model as the base mesh. Looking at the scene hierarchy at the left, anna_travel is my original fbx model (position at the bottom) but anna_travel 1 is my custom fbx model (positioned at the top of the hierarchy). Therefore, when you choose Base Mesh, you click on the bottom “anna_travel_lod0” because the scene hierarchy tells us that the original fbx model is at the bottom position. Expand “Components”. In Element 0, choose the custom fbx model by clicking on the top “anna_travel_lod0”. Click on Generate. Notice that Assets > EXPORT folder now has a new mesh. Drag the new mesh into the game scene and you’lll get anna_travel_lod0 in the scene hierarchy. Delete the template fbx models in the scene hierarchy, leaving only anna_travel_lod0 (new mesh). Ctrl + S to save the project. Click on File > Build Settings. Click on Build and save your project files to a folder in your pc. Navigate into your Data folder, which is “My project for Disney_Data” in this case. The custom mesh is inside the sharedassets0.assets. You may close the Unity Engine project. Step 5: Repacking the game assets using UABEA Reveal hidden contents Understand that there are two types of Unity Asset Bundle Extractor, UABE and UABEA. Do not use UABE, use UABEA instead. Run UABEAvalonia.exe and open UABEA. Let’s call this UI as the main menu for simplicity. Click on File > Open > Navigate to your sharedassets0.assets where you build your custom mesh using Unity Engine earlier. You will see a “Assets Info” popup. Recall that our custom mesh is named “anna_travel_lod0” in the Unity Engine. Therefore, we click on anna_travel_lod0 > Export Dump. Ensure your select the file type as “UABEA json dump (.json)”. Save the custom mesh JSON dump somewhere in your pc. Close the “Assets Info” popup. Recall that you saved a .txt file with the PathID info earlier? Now you can start to refer to it. In the UABEA main menu, click on File > Open > Nagivate to your original game .bundle file (we already wrote down the bundle name, so it is easy to remember which file it is) and open it. Now you see a popup message which states that the bundle is compressed. Click on Memory for decompression. You now have some data loaded to UABEA. Click on Info to show the Assets Info popup. Click on View > Go to asset. Enter the Path ID of the original game mesh, which we wrote down in .txt file as 63314881225579444 earlier. We have navigated directly to the mesh. Click on Export Dump. Same as before, ensure you are saving as JSON dump. You may rename this JSON file with -original at the back, so that it is easier to remember that this is JSON dump of the original mesh. Using Notepad++, open the two JSON dump files that you exported. In the original dump json, Ctrl+F to search for “m_BoneNameHashes”. Copy the whole data from curly bracket { onwards till the } curly bracket. Go to your custom mesh json file, search for “m_BoneNameHashes”. Replace the whole data { } data from original mesh JSON to the custom mesh JSON. Repeat the same for m_RootBoneNameHash. Go back to your “Assets Info” popup from UABEA for the original mesh. Click on Import Dump. Ensure that you click on “UABEA json dump (.json). Navigate to your modified custom mesh json (you modified it to add the missing bone data in notepad++ just now). Import the json dump by clicking Open. Since I also modified the diffuse texture map file, I refer to the .txt file and checked that the PathID is 8795829544577487163. So I navigated to the diffuse texture by using the PathID. Click on Plugins > Edit texture. I have no idea how the options work, so you can trial and errors and see what the other options do. But these options work for me. Click on Load and find your modified texture file to load it. Then click on Save. In the Assets Info popup, click on Save as. It will tell you that the file (in memory) is saved. Click on OK. Close the Assets Info popup only. In UABEA main menu, notice that there is a * at the end which indicates that the file is modified but not saved. Click on File > Save as. Write the File name as the original bundle name, which I happened to have copied the bundle in my .txt file earlier, so I just copy paste it. Save the bundle file. You may now close UABEA. Backup your original game .bundle file and then replace with your modified .bundle file. Play the game to test. You can see how the final bundle file looks like in the attachment. For some reasons, the images ended up kind of blur, dunno why, lol. Anna.rar 8.81 MB · 46 downloads Nice naked Anna, hopefully we get more characters soon.
ashamedCake Posted May 30, 2023 Posted May 30, 2023 Could I create a nude male mod for the player character with the same method?
Rafael_Knight_93 Posted June 3, 2023 Posted June 3, 2023 You guys think it's possible to mod sex animations into the game as well? Or will it be relegated to just nude mods???
Guest Posted June 3, 2023 Posted June 3, 2023 (edited) I don't see any guide that wrote how to repack animations for Unity, so I have no idea how it works. The guide I wrote above is just meant for creating and repacking mods( nude mod/costume mod) for the characters. Edited June 3, 2023 by ZenithMob
TheAlphaTester Posted June 8, 2023 Posted June 8, 2023 lol i just want some leggings for the skirt instead of pants or shorts. i do appreciate people looking into modding this game though.
Commander7878 Posted July 19, 2023 Posted July 19, 2023 On 6/2/2023 at 9:37 PM, ZenithMob said: I don't see any guide that wrote how to repack animations for Unity, so I have no idea how it works. The guide I wrote above is just meant for creating and repacking mods( nude mod/costume mod) for the characters. Is there any way to do this as a beginner, I am very inexperienced in modding but would like to use the nude character models like you shower with Anna. I would be willing to discuss paying you for a step by step tutorial
Guest Posted July 20, 2023 Posted July 20, 2023 (edited) 4 hours ago, Commander7878 said: Is there any way to do this as a beginner, I am very inexperienced in modding but would like to use the nude character models like you shower with Anna. I would be willing to discuss paying you for a step by step tutorial I assume you are referring to sex animation modding? As mentioned, I have no idea how to repack animations for Unity, so I won't be able to create a guide for modding sex animations. Feel free to use my mod as you like though. If you are planning to do sex animations, the basic idea is like this, you'll not just need nude female character, you also need nude male character (but I don't do nude male mod, so either someone else provide the nude male mod or you find one yourself somehow). Then you have to use multiple frames at different seconds for different sex poses like how a video works, then it is an animation. After that, the main problem is how to repack the animation files, but I have yet to see a guide that repack animation for Unity. That Unity modding guide that I wrote above was a compilation of the tips and other guides anyway. Edited July 20, 2023 by ZenithMob
Commander7878 Posted July 20, 2023 Posted July 20, 2023 3 hours ago, ZenithMob said: I assume you are referring to sex animation modding? As mentioned, I have no idea how to repack animations for Unity, so I won't be able to create a guide for modding sex animations. Feel free to use my mod as you like though. If you are planning to do sex animations, the basic idea is like this, you'll not just need nude female character, you also need nude male character (but I don't do nude male mod, so either someone else provide the nude male mod or you find one yourself somehow). Then you have to use multiple frames at different seconds for different sex poses like how a video works, then it is an animation. After that, the main problem is how to repack the animation files, but I have yet to see a guide that repack animation for Unity. That Unity modding guide that I wrote above was a compilation of the tips and other guides anyway. Oh no sorry for the confusion, I was just referring to nude skins. I don’t know if you just showed Anna as an example but nude models for more than just her. I don’t care too much about the animations since that seems much more difficult. I realize I had a typo of “shower with Anna” I meant to say “nude character models like you showed with Anna “ So sorry for the confusion again, I would just like nude models for the women in the game. I am very new to PCs in general so if I can get some help on how to go about that I would greatly appreciate it! thank you for the reply!
Guest Posted July 20, 2023 Posted July 20, 2023 Hmm, not sure if I understood you correctly. You just wanted to know how to use my mod? My mod is a .bundle file. Search your game folder for the file with the same exact name and then replace it to activate the mod. Well yeah, I did have one other female nude mod which is the main female character, but it looked crappy to me, so I didn't release that mod.
Commander7878 Posted July 20, 2023 Posted July 20, 2023 7 hours ago, ZenithMob said: Hmm, not sure if I understood you correctly. You just wanted to know how to use my mod? My mod is a .bundle file. Search your game folder for the file with the same exact name and then replace it to activate the mod. Well yeah, I did have one other female nude mod which is the main female character, but it looked crappy to me, so I didn't release that mod. Yeah basically, oh ok I see that seems easy enough, thank you! Damn I was going to ask you if there was one for the main female character. so is there just one for Anna? Or does your bundle make all the women nude?
Guest Posted July 20, 2023 Posted July 20, 2023 (edited) Try it yourself if you want. Forgot to take screenshot for it. For the main female char, you need to play until you unlock the Wardrobe option. After clicking on Wardrobe option, I think I used "Customize" option next for the free dress, which would become the nude mod if you chose the right dress. If you want barefoot, the game already has a free wardrobe option to choose barefoot for the footwear. Backup your files before replacing. Since I already uninstalled the game, what I wrote above is what I vaguely remembered on how to use it. Edit: I noticed that the nude mod broke, likely due to game version updates. So it is not worth it to use this main female character nude mod currently. Main female char.rar Edited July 24, 2023 by ZenithMob
TheAlphaTester Posted July 20, 2023 Posted July 20, 2023 (edited) still waiting for leggings or spats. Anything but the the shorts lol Edited July 20, 2023 by TheAlphaTester
kylaroh Posted July 24, 2023 Posted July 24, 2023 On 7/21/2023 at 12:36 AM, ZenithMob said: Try it yourself if you want. Forgot to take screenshot for it. For the main female char, you need to play until you unlock the Wardrobe option. After clicking on Wardrobe option, I think I used "Customize" option next for the free dress, which would become the nude mod if you chose the right dress. If you want barefoot, the game already has a free wardrobe option to choose barefoot for the footwear. Backup your files before replacing. Since I already uninstalled the game, what I wrote above is what I vaguely remembered on how to use it. Main female char.rar 103.61 MB · 36 downloads Any solution to this issue plz?? 1
Guest Posted July 24, 2023 Posted July 24, 2023 (edited) Hmm, at least when I was playing the game in my version back then, the nude mod has no missing arms. So what you seen above should likely mean that the game version has been updated and hence the mod broke. But I generally don't reinstall games that I played before, so I'm not planning to maintain the mod. Sorry about that ? Edited July 24, 2023 by ZenithMob
kylaroh Posted July 25, 2023 Posted July 25, 2023 15 hours ago, ZenithMob said: Hmm, at least when I was playing the game in my version back then, the nude mod has no missing arms. So what you seen above should likely mean that the game version has been updated and hence the mod broke. But I generally don't reinstall games that I played before, so I'm not planning to maintain the mod. Sorry about that ? That's fine, thanks.
Meekurukuru Posted July 30, 2023 Posted July 30, 2023 (edited) On 5/25/2023 at 11:13 AM, ZenithMob said: How to Mod Disney Dreamlight Valley (Unity game) This tutorial is meant for experienced modders who understand how to do 3D modelling, because the tutorial assumes that you already know how to edit mesh, weights, UV map, textures and know what are armature/bones. Tools that you need: AssetStudio (latest version)- Export mesh in .fbx and textures. Also used for previewing mesh and textures. https://github.com/Perfare/AssetStudio UABEA (latest release version - nightly build) - Import/export dumps to repack the game files. https://github.com/nesrak1/UABEA Skinned Mesh Renderer.cs (latest script that works from GameBanana. If you have the script from Pokemon discord, please replace with this version instead). Should work unless the game uses very old Unity engine (Unity 2017 and older probably). Right-click the link > Save Link as > save the file as “Skinned Mesh Renderer.cs” . https://pastebin.com/raw/srPr2cxd Unity engine (to build your mesh) – You have 2 options to find the unity version. 1) From the .exe file, right click properties > Details, but this may be inaccurate sometimes. 2) Find any .assets file, open with notepad++ > check first line. Then get the unity engine from unity hub. In this case, the unity version is 2020.3.36f1, so you’ll have to download 2020.3.36 Unity engine. Step 1: Setting up the Unity project Hide contents Name your Unity project with whatever name you like. Select 3D Core and then create project. In the top left, you see your scene hierarchy, and you may get rid of the 2 objects if you want. Next, right-click anywhere inside the space under Assets at the bottom > Create > Folder, then create two folders called “EDITOR” and “EXPORT”. Double-click to navigate inside the EDITOR folder. Next, right-click inside the space in EDITOR folder > Import new Asset, browse to your Skinned Mesh Renderer.cs and click Import. Notice that you now have a new menu called “Tool” for skinned mesh component. Your Unity project is now setup. Step 2: Find and extract game assets Hide contents Run AssetStudioGUI.exe to open AssetStudioGUI. Click on Options > Specify Unity version > type “2020.3.36f1” (because this game requires the Unity version to be specified before you can extract the files). Click on Options > Export options. Now check that your export options are set this way. Now you have 2 options to see the assets, either you use File > Load file (if you know exactly where your asset is) or you use File > Load Package on …StreamingAssets\aa\win folder to see all assets. In this tutorial, we will focus on modding Anna (NPC character) and I happens to already know where the file is, so I will use File > Load file on …\StreamingAssets\aa\win\character-visual_assets_assets\ anna_b4a75a478a548be76d48d7159dfd84c2.bundle. Looking through the list of “Mesh” type, it is easy to spot that “anna_travel_lod0” is the mesh that I would like to mod. You can also click on anna_travel_lod0 to preview it. To extract the model, right click on “anna_travel_lod0” > Click on “Go to scene hierarchy”. In the next screenshot, you’ll set a bunch of object names. Now, we need to make a guess on which checkbox to tick before we extract the model, because we don’t want to extract too many files, which would be confusing. “anna_travel” looks quite logical to extract the Anna character model from, so we ticked the checkbox there. Well, main thing is that we want the “root” which is the armature and the mesh which is anna_travel_lod0 to be part of the whole object that we extract. Click on Model > Click on Export selected objects (split) to export to a folder. Your folder will contain a .fbx file and its related textures (if any). Go back to AssetStudioGUI > click on Asset List, so that we can write down PathID values. PathID values are very useful to locate your assets like mesh/texture inside the files quickly. Right click on your mesh (anna_travel_lod0) at where the PathID column is > click on Copy text. Create a new .txt file somewhere in your pc and paste the value. In above screenshot (where we extracted the model files earlier), we know that the texture files are Anna_diff.png, Anna_maps.png and Anna_nm.png. Scrolling down the list in AssetStudioGUI, we can also see the PathID of the 3 texture files. Copy down the PathIDs of the 3 texture files in a .txt file if you want. If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file. Based on the PathIDs you copied, your .txt file may look like this. You can close the AssetStudioGUI. Step 3: Editing the character model Hide contents I use Blender for 3D modelling, so this tutorial is based on Blender. In a new Blender project, use File > Import > FBX (.fbx) You can use the following import options when importing the fbx file. Looking at the bones, the body mesh is aligned quite nicely with the bones. Sometimes, the mesh may not be aligned with the bones and they may be far apart. Which means you need to align the mesh back to the bones by changing XYZ position and XYZ rotation (just do not apply transform after changing the coordinates and rotation angles). In this case, the bones are already aligned to the body mesh, so we don’t need to change XYZ location and rotation. Notice that the bones are very misaligned on the face mesh, but since we are not changing the face mesh, it does not matter and we can ignore this part. Now make your edits. I fast-forward the edit part because this tutorial is more for how to repack the mod. Click on “Collection” folder to allow the folder to become active collection. Click on File > Export > FBX (.fbx). You can use the following FBX export options. Ensure that your exported fbx name is the same as the original fbx name, which is anna_travel.fbx in this case. The options for FBX export are practically the same as what you can use for Unreal Engine modding. Step 4: Building the mesh assets using Unity Engine Hide contents In your Unity project, drag and drop both your original fbx and custom fbx files from your pc’s directories into your “Assets” workspace. In other guides, they mentioned that if you click on the fbx model in the Assets workspace, then Convert Units and Read/Write Enabled would both need to be toggled in reverse. But in this game, there is no need to do anything for this part as it works fine without toggling them. So, just leave it as default. Drag both original and custom fbx models from Assets workspace into the game scene. Notice that the left hand side’s scene hierarchy contains anna_travel 1 and anna_travel objects after you dragged the 2 fbx models into the game scene. Click on Tool > Mesh > Generate Mesh Component. At the Base Mesh, click on the circle icon to select a base mesh. You need to select the original fbx model as the base mesh. Looking at the scene hierarchy at the left, anna_travel is my original fbx model (position at the bottom) but anna_travel 1 is my custom fbx model (positioned at the top of the hierarchy). Therefore, when you choose Base Mesh, you click on the bottom “anna_travel_lod0” because the scene hierarchy tells us that the original fbx model is at the bottom position. Expand “Components”. In Element 0, choose the custom fbx model by clicking on the top “anna_travel_lod0”. Click on Generate. Notice that Assets > EXPORT folder now has a new mesh. Drag the new mesh into the game scene and you’lll get anna_travel_lod0 in the scene hierarchy. Delete the template fbx models in the scene hierarchy, leaving only anna_travel_lod0 (new mesh). Ctrl + S to save the project. Click on File > Build Settings. Click on Build and save your project files to a folder in your pc. Navigate into your Data folder, which is “My project for Disney_Data” in this case. The custom mesh is inside the sharedassets0.assets. You may close the Unity Engine project. Step 5: Repacking the game assets using UABEA Hide contents Understand that there are two types of Unity Asset Bundle Extractor, UABE and UABEA. Do not use UABE, use UABEA instead. Run UABEAvalonia.exe and open UABEA. Let’s call this UI as the main menu for simplicity. Click on File > Open > Navigate to your sharedassets0.assets where you build your custom mesh using Unity Engine earlier. You will see a “Assets Info” popup. Recall that our custom mesh is named “anna_travel_lod0” in the Unity Engine. Therefore, we click on anna_travel_lod0 > Export Dump. Ensure your select the file type as “UABEA json dump (.json)”. Save the custom mesh JSON dump somewhere in your pc. Close the “Assets Info” popup. Recall that you saved a .txt file with the PathID info earlier? Now you can start to refer to it. In the UABEA main menu, click on File > Open > Nagivate to your original game .bundle file (we already wrote down the bundle name, so it is easy to remember which file it is) and open it. Now you see a popup message which states that the bundle is compressed. Click on Memory for decompression. You now have some data loaded to UABEA. Click on Info to show the Assets Info popup. Click on View > Go to asset. Enter the Path ID of the original game mesh, which we wrote down in .txt file as 63314881225579444 earlier. We have navigated directly to the mesh. Click on Export Dump. Same as before, ensure you are saving as JSON dump. You may rename this JSON file with -original at the back, so that it is easier to remember that this is JSON dump of the original mesh. Using Notepad++, open the two JSON dump files that you exported. In the original dump json, Ctrl+F to search for “m_BoneNameHashes”. Copy the whole data from curly bracket { onwards till the } curly bracket. Go to your custom mesh json file, search for “m_BoneNameHashes”. Replace the whole data { } data from original mesh JSON to the custom mesh JSON. Repeat the same for m_RootBoneNameHash. Go back to your “Assets Info” popup from UABEA for the original mesh. Click on Import Dump. Ensure that you click on “UABEA json dump (.json). Navigate to your modified custom mesh json (you modified it to add the missing bone data in notepad++ just now). Import the json dump by clicking Open. Since I also modified the diffuse texture map file, I refer to the .txt file and checked that the PathID is 8795829544577487163. So I navigated to the diffuse texture by using the PathID. Click on Plugins > Edit texture. I have no idea how the options work, so you can trial and errors and see what the other options do. But these options work for me. Click on Load and find your modified texture file to load it. Then click on Save. In the Assets Info popup, click on Save as. It will tell you that the file (in memory) is saved. Click on OK. Close the Assets Info popup only. In UABEA main menu, notice that there is a * at the end which indicates that the file is modified but not saved. Click on File > Save as. Write the File name as the original bundle name, which I happened to have copied the bundle in my .txt file earlier, so I just copy paste it. Save the bundle file. You may now close UABEA. Backup your original game .bundle file and then replace with your modified .bundle file. Play the game to test. You can see how the final bundle file looks like in the attachment. For some reasons, the images ended up kind of blur, dunno why, lol. Anna.rar 8.81 MB · 131 downloads Great guide, I used a variation of this for another game made in Unity and it works great. Thanks. I am also having the same problem that @EricTheRoberts had in Unity. the mesh doesn't have a mesh to be generated even if it appears in-game, I tried it fixing it by adding some custom bone/armature, but did you guys found a solution for this problem? (image example of the problem) I am using the same unity version as the game and I imported an .fbx from the original and edited model from Blender. Here is an example .bundle file of a model that I can't seem to get the mesh to be generated, it is for a hat accessory, it just appears empty in unity, any help would be greatly appreciated and great guide, thanks. attach_a0001_assets_all.bundle Edited July 30, 2023 by Meekurukuru edit: image
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now