Jump to content

disney dreamlight valley


Recommended Posts

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.

Link to comment

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.

image.png.7ea4a347de05391a6181150478bcc873.png

 

If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file.

image.png.4e6868b9c98b874a99a22e61506839dc.png

 

And this will show the original game file of the mesh/textures in highlighted one.

 

image.png.358593299b80c2e961844218155d8479.png

 

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 by ZenithMob
Link to comment
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.

image.png.7ea4a347de05391a6181150478bcc873.png

 

If you need to know what file to repack to, go to AssetGui > right click on the mesh/texture > Show original file.

image.png.4e6868b9c98b874a99a22e61506839dc.png

 

And this will show the original game file of the mesh/textures in highlighted one.

 

image.png.358593299b80c2e961844218155d8479.png

 

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.

Link to comment
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.

Link to comment
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.

 

image.png.a05970ab6ead70eb7c7ce903a06fb48b.png

 

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.

image.png.47dd66c39cfd179228591dd963584fc3.png

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 by ZenithMob
Link to comment
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:

1123364707_UnityMeshGeneration.png.c030bfec397f34e07e4ddd128097a3ae.png

 

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.

Link to comment

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?

image.png.8bfc7e82a37d89559572dbbb41c97963.png

 

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 by ZenithMob
Link to comment

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

 

 

image.png.149fe7bc55a166371f2cec61f76dacf9.png

 

Name your Unity project with whatever name you like. Select 3D Core and then create project.

image.png.b8427437d6b1c0869b6bd9d4da0dc03c.png

In the top left, you see your scene hierarchy, and you may get rid of the 2 objects if you want.

image.png.5343a64e629e924ff82ce96d7051b38a.png

Next, right-click anywhere inside the space under Assets at the bottom > Create > Folder, then create two folders called “EDITOR” and “EXPORT”.

image.png.9d880205f75e78052e2f58d7732c723d.png

 

Double-click to navigate inside the EDITOR folder.

image.png.833cc94dd5914394ad62157c9678f24b.png

Next, right-click inside the space in EDITOR folder > Import new Asset, browse to your Skinned Mesh Renderer.cs and click Import.

image.png.594cc226b96a988c590240a510c427dc.png

Notice that you now have a new menu called “Tool” for skinned mesh component.

image.png.df7b25c898d4d63f221154ba85de1973.png

Your Unity project is now setup.

Step 2: Find and extract game assets
 

Spoiler

Run AssetStudioGUI.exe to open AssetStudioGUI.

image.png.d6daf0906acbcf0b879f32c7c643da27.png

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).

image.png.907e3a15b750689da0a73c9fd3fc1540.png

Click on Options > Export options.

image.png.8cba69e40106b5884f8fbac93da69fff.png

Now check that your export options are set this way.

image.png.adbf87fda0b5f43677fb5c098ec76730.png

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.

image.png.3effcf097a0708968145cbc9bdb73275.png

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.

image.png.d28a7d15b37ae85f063be42a6108877d.png

To extract the model, right click on “anna_travel_lod0” > Click on “Go to scene hierarchy”.

image.png.46b8cf4939c59fa871c6ba588478b78a.png

In the next screenshot, you’ll set a bunch of object names.

image.png.5d2c3399e3458f560266b85203a05642.png

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.

image.png.bdf1b017c93060f2a5dab6052a4b9c33.png

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.

image.png.6482ef1f9618f09a4b99ea6bff86c8f5.png

Click on Model > Click on Export selected objects (split) to export to a folder.

image.png.3a56635772bd96e7ef1e971a0acdb237.png

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.

image.png.5403628bfe85630c26fe34514a47bdd1.png

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.

image.png.58f6170862741b5b039cc62dbc440663.png

Based on the PathIDs you copied, your .txt file may look like this.

image.png.e3379ee039af263443715cb2dab3a3c6.png

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)

image.png.169ba5393680d04f78ea9772dc64467c.png

You can use the following import options when importing the fbx file.

image.png.79efd246c9c9400f645a08ef920a27c3.png

image.png.9b4500367639c16cab94680cdbc3320f.png

image.png.84d887db36cafd949752275ee5aad23f.png

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).

image.png.50e4d8b1f6f7e44a9d462cd0e1d6771e.png

In this case, the bones are already aligned to the body mesh, so we don’t need to change XYZ location and rotation.

image.png.0c09d0d9966174c3599ca77391a6d0f6.png

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.

image.png.0b8561b259faf64477f2d221e6d403e5.png

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.

image.png.cf0dffca1e0be3fe29335ab1fa7f36df.png

image.png.1b29f0e2b54f65911683441aa3a88273.png

Click on File > Export > FBX (.fbx).

You can use the following FBX export options.

image.png.6286b71fc1210ccf7535daf2355cdb36.png

Ensure that your exported fbx name is the same as the original fbx name, which is anna_travel.fbx in this case.

image.png.a4e3056466bf7004b4a6c4534b521af8.png

image.png.f0937c868f823aa877b0bf3e68020afe.png

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.

image.png.15abaeeb34c8b28a82ba544345c3f0dd.png

 

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.

 

image.png.f3af1f7520311ac320ada24bcff3db52.png

 

Drag both original and custom fbx models from Assets workspace into the game scene.

image.png.83aa8a26f977874da410b2cebb574ab7.png

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.

image.png.fcd113edc2b5ec656c52253106324d8e.png

Click on Tool > Mesh > Generate Mesh Component.

image.png.3eb135eb2dc343c41757bd9983ca2f83.png

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”.

image.png.655d98134d63c065da70df0e9810b8c3.png

In Element 0, choose the custom fbx model by clicking on the top “anna_travel_lod0”.

image.png.8979a07ea380060e537bedbbc97c8d93.png

Click on Generate.

image.png.2b6057dce010d51bb9d68ac3578d52c9.png

Notice that Assets > EXPORT folder now has a new mesh.

image.png.b430b0c28d7bc3ffacc9d97f0a29940f.png

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.

image.png.125996a62154475747afd2b9421b901e.png

image.png.cc36f5b335c7d8ad6d717bd336ec708c.png

Click on File > Build Settings.

image.png.2b0c9849dfa9728613d8dcb6c5cd6c5e.png

Click on Build and save your project files to a folder in your pc.

image.png.62365044e5439569109df88cb4e4100a.png

Navigate into your Data folder, which is “My project for Disney_Data” in this case.

image.png.064497fb37ffa1c49deb8841575e71e0.png

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.

image.png.f0fe9a53a22ebefa46c5a887c0213773.png

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.

image.png.b744dbba2304f6dc2eddd819151885ef.png

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.

image.png.94ebe18ec2afe74a9bc603790679422c.png

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.

image.png.ccd38e400c431c28629f02ba28355394.png

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.

image.png.568993f78afb1c551fa8e2755afe0d91.png

Now you see a popup message which states that the bundle is compressed. Click on Memory for decompression.

image.png.f571c6d980541abf0505a1e58ae8a448.png

You now have some data loaded to UABEA. Click on Info to show the Assets Info popup.

image.png.5f0f5e91a53e59541912e8e5129712c4.png

Click on View > Go to asset.

image.png.2c20cc930a7955e35e08e5013ea9b4af.png

Enter the Path ID of the original game mesh, which we wrote down in .txt file as 63314881225579444 earlier.

image.png.a37fd6f64254a4c9fa65bebacc2d9bf0.png

We have navigated directly to the mesh. Click on Export Dump.

Same as before, ensure you are saving as JSON dump.

image.png.7350ed14cc5d42f25fdfd80cf9536cab.png

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.

image.png.fda587f19a311f2005d9d1654a463f0f.png

In the original dump json, Ctrl+F to search for “m_BoneNameHashes”.

image.png.27663fd42eb055ecc686249648db616c.png

image.png.1de51286edb70e9c498769a3e952a187.png

Copy the whole data from curly bracket { onwards till the } curly bracket.

Go to your custom mesh json file, search for “m_BoneNameHashes”.

image.png.6cc60af96332ca1acfa4a3a0124669a5.png

Replace the whole data { } data from original mesh JSON to the custom mesh JSON.

image.png.eb10c379601c71d8184f681aeb37dfe0.png

Repeat the same for m_RootBoneNameHash.

image.png.3a701ef67d18b9a5f29d516abeef2488.png

Go back to your “Assets Info” popup from UABEA for the original mesh.

image.png.5d9de87b55b6486d45cd68233e880a86.png

Click on Import Dump.

image.png.6eb851674d2cb9e6ec68ca00f12a7157.png

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).

image.png.420bd5569db3c83872e779f78f8fb675.png

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.

image.png.103079e88124dd403bd9a9ef488a3d1e.png

So I navigated to the diffuse texture by using the PathID.

Click on Plugins > Edit texture.

image.png.91be6b0b867549de96e2e1ac4688c64d.png

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.

image.png.b0db0258b03f65e6cd1bf04a2e3c0dbc.png

Click on Load and find your modified texture file to load it.

Then click on Save.

image.png.7d0a060d2caca895cb728596f917cf56.png

In the Assets Info popup, click on Save as.

image.png.02e287bc17f5899cf1ea033d5a429b98.png

It will tell you that the file (in memory) is saved. Click on OK.

Close the Assets Info popup only.

image.png.3c964b4da12e3791ef76973b29221a2e.png

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.

image.png.ac96973ff40d7dfbdde0f49de03e8ce2.png

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.

image.png.4aae612d0f126891d41bb8dcc47b518c.png

Save the bundle file.

You may now close UABEA.

 

image.png.8cf3127cb40ef0d90e32eb4504593dfd.png

 

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 by ZenithMob
Link to comment

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

Link to comment
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

 

 

image.png.149fe7bc55a166371f2cec61f76dacf9.png

 

Name your Unity project with whatever name you like. Select 3D Core and then create project.

image.png.b8427437d6b1c0869b6bd9d4da0dc03c.png

In the top left, you see your scene hierarchy, and you may get rid of the 2 objects if you want.

image.png.5343a64e629e924ff82ce96d7051b38a.png

Next, right-click anywhere inside the space under Assets at the bottom > Create > Folder, then create two folders called “EDITOR” and “EXPORT”.

image.png.9d880205f75e78052e2f58d7732c723d.png

 

Double-click to navigate inside the EDITOR folder.

image.png.833cc94dd5914394ad62157c9678f24b.png

Next, right-click inside the space in EDITOR folder > Import new Asset, browse to your Skinned Mesh Renderer.cs and click Import.

image.png.594cc226b96a988c590240a510c427dc.png

Notice that you now have a new menu called “Tool” for skinned mesh component.

image.png.df7b25c898d4d63f221154ba85de1973.png

Your Unity project is now setup.

Step 2: Find and extract game assets
 

  Reveal hidden contents

Run AssetStudioGUI.exe to open AssetStudioGUI.

image.png.d6daf0906acbcf0b879f32c7c643da27.png

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).

image.png.907e3a15b750689da0a73c9fd3fc1540.png

Click on Options > Export options.

image.png.8cba69e40106b5884f8fbac93da69fff.png

Now check that your export options are set this way.

image.png.adbf87fda0b5f43677fb5c098ec76730.png

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.

image.png.3effcf097a0708968145cbc9bdb73275.png

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.

image.png.d28a7d15b37ae85f063be42a6108877d.png

To extract the model, right click on “anna_travel_lod0” > Click on “Go to scene hierarchy”.

image.png.46b8cf4939c59fa871c6ba588478b78a.png

In the next screenshot, you’ll set a bunch of object names.

image.png.5d2c3399e3458f560266b85203a05642.png

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.

image.png.bdf1b017c93060f2a5dab6052a4b9c33.png

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.

image.png.6482ef1f9618f09a4b99ea6bff86c8f5.png

Click on Model > Click on Export selected objects (split) to export to a folder.

image.png.3a56635772bd96e7ef1e971a0acdb237.png

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.

image.png.5403628bfe85630c26fe34514a47bdd1.png

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.

image.png.58f6170862741b5b039cc62dbc440663.png

Based on the PathIDs you copied, your .txt file may look like this.

image.png.e3379ee039af263443715cb2dab3a3c6.png

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)

image.png.169ba5393680d04f78ea9772dc64467c.png

You can use the following import options when importing the fbx file.

image.png.79efd246c9c9400f645a08ef920a27c3.png

image.png.9b4500367639c16cab94680cdbc3320f.png

image.png.84d887db36cafd949752275ee5aad23f.png

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).

image.png.50e4d8b1f6f7e44a9d462cd0e1d6771e.png

In this case, the bones are already aligned to the body mesh, so we don’t need to change XYZ location and rotation.

image.png.0c09d0d9966174c3599ca77391a6d0f6.png

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.

image.png.0b8561b259faf64477f2d221e6d403e5.png

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.

image.png.cf0dffca1e0be3fe29335ab1fa7f36df.png

image.png.1b29f0e2b54f65911683441aa3a88273.png

Click on File > Export > FBX (.fbx).

You can use the following FBX export options.

image.png.6286b71fc1210ccf7535daf2355cdb36.png

Ensure that your exported fbx name is the same as the original fbx name, which is anna_travel.fbx in this case.

image.png.a4e3056466bf7004b4a6c4534b521af8.png

image.png.f0937c868f823aa877b0bf3e68020afe.png

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.

image.png.15abaeeb34c8b28a82ba544345c3f0dd.png

 

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.

 

image.png.f3af1f7520311ac320ada24bcff3db52.png

 

Drag both original and custom fbx models from Assets workspace into the game scene.

image.png.83aa8a26f977874da410b2cebb574ab7.png

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.

image.png.fcd113edc2b5ec656c52253106324d8e.png

Click on Tool > Mesh > Generate Mesh Component.

image.png.3eb135eb2dc343c41757bd9983ca2f83.png

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”.

image.png.655d98134d63c065da70df0e9810b8c3.png

In Element 0, choose the custom fbx model by clicking on the top “anna_travel_lod0”.

image.png.8979a07ea380060e537bedbbc97c8d93.png

Click on Generate.

image.png.2b6057dce010d51bb9d68ac3578d52c9.png

Notice that Assets > EXPORT folder now has a new mesh.

image.png.b430b0c28d7bc3ffacc9d97f0a29940f.png

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.

image.png.125996a62154475747afd2b9421b901e.png

image.png.cc36f5b335c7d8ad6d717bd336ec708c.png

Click on File > Build Settings.

image.png.2b0c9849dfa9728613d8dcb6c5cd6c5e.png

Click on Build and save your project files to a folder in your pc.

image.png.62365044e5439569109df88cb4e4100a.png

Navigate into your Data folder, which is “My project for Disney_Data” in this case.

image.png.064497fb37ffa1c49deb8841575e71e0.png

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.

image.png.f0fe9a53a22ebefa46c5a887c0213773.png

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.

image.png.b744dbba2304f6dc2eddd819151885ef.png

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.

image.png.94ebe18ec2afe74a9bc603790679422c.png

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.

image.png.ccd38e400c431c28629f02ba28355394.png

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.

image.png.568993f78afb1c551fa8e2755afe0d91.png

Now you see a popup message which states that the bundle is compressed. Click on Memory for decompression.

image.png.f571c6d980541abf0505a1e58ae8a448.png

You now have some data loaded to UABEA. Click on Info to show the Assets Info popup.

image.png.5f0f5e91a53e59541912e8e5129712c4.png

Click on View > Go to asset.

image.png.2c20cc930a7955e35e08e5013ea9b4af.png

Enter the Path ID of the original game mesh, which we wrote down in .txt file as 63314881225579444 earlier.

image.png.a37fd6f64254a4c9fa65bebacc2d9bf0.png

We have navigated directly to the mesh. Click on Export Dump.

Same as before, ensure you are saving as JSON dump.

image.png.7350ed14cc5d42f25fdfd80cf9536cab.png

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.

image.png.fda587f19a311f2005d9d1654a463f0f.png

In the original dump json, Ctrl+F to search for “m_BoneNameHashes”.

image.png.27663fd42eb055ecc686249648db616c.png

image.png.1de51286edb70e9c498769a3e952a187.png

Copy the whole data from curly bracket { onwards till the } curly bracket.

Go to your custom mesh json file, search for “m_BoneNameHashes”.

image.png.6cc60af96332ca1acfa4a3a0124669a5.png

Replace the whole data { } data from original mesh JSON to the custom mesh JSON.

image.png.eb10c379601c71d8184f681aeb37dfe0.png

Repeat the same for m_RootBoneNameHash.

image.png.3a701ef67d18b9a5f29d516abeef2488.png

Go back to your “Assets Info” popup from UABEA for the original mesh.

image.png.5d9de87b55b6486d45cd68233e880a86.png

Click on Import Dump.

image.png.6eb851674d2cb9e6ec68ca00f12a7157.png

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).

image.png.420bd5569db3c83872e779f78f8fb675.png

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.

image.png.103079e88124dd403bd9a9ef488a3d1e.png

So I navigated to the diffuse texture by using the PathID.

Click on Plugins > Edit texture.

image.png.91be6b0b867549de96e2e1ac4688c64d.png

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.

image.png.b0db0258b03f65e6cd1bf04a2e3c0dbc.png

Click on Load and find your modified texture file to load it.

Then click on Save.

image.png.7d0a060d2caca895cb728596f917cf56.png

In the Assets Info popup, click on Save as.

image.png.02e287bc17f5899cf1ea033d5a429b98.png

It will tell you that the file (in memory) is saved. Click on OK.

Close the Assets Info popup only.

image.png.3c964b4da12e3791ef76973b29221a2e.png

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.

image.png.ac96973ff40d7dfbdde0f49de03e8ce2.png

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.

image.png.4aae612d0f126891d41bb8dcc47b518c.png

Save the bundle file.

You may now close UABEA.

 

image.png.8cf3127cb40ef0d90e32eb4504593dfd.png

 

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.

Link to comment

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 by ZenithMob
Link to comment
  • 1 month later...
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 

Link to comment
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 by ZenithMob
Link to comment
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! 

Link to comment

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.

Link to comment
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? 

Link to comment

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 by ZenithMob
Link to comment

 

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??image.png.9b9afa2485b3e1fd05ea07adb8e8092a.png

Link to comment

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 by ZenithMob
Link to comment
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.

Link to comment
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

 

 

image.png.149fe7bc55a166371f2cec61f76dacf9.png

 

Name your Unity project with whatever name you like. Select 3D Core and then create project.

image.png.b8427437d6b1c0869b6bd9d4da0dc03c.png

In the top left, you see your scene hierarchy, and you may get rid of the 2 objects if you want.

image.png.5343a64e629e924ff82ce96d7051b38a.png

Next, right-click anywhere inside the space under Assets at the bottom > Create > Folder, then create two folders called “EDITOR” and “EXPORT”.

image.png.9d880205f75e78052e2f58d7732c723d.png

 

Double-click to navigate inside the EDITOR folder.

image.png.833cc94dd5914394ad62157c9678f24b.png

Next, right-click inside the space in EDITOR folder > Import new Asset, browse to your Skinned Mesh Renderer.cs and click Import.

image.png.594cc226b96a988c590240a510c427dc.png

Notice that you now have a new menu called “Tool” for skinned mesh component.

image.png.df7b25c898d4d63f221154ba85de1973.png

Your Unity project is now setup.

Step 2: Find and extract game assets
 

  Hide contents

Run AssetStudioGUI.exe to open AssetStudioGUI.

image.png.d6daf0906acbcf0b879f32c7c643da27.png

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).

image.png.907e3a15b750689da0a73c9fd3fc1540.png

Click on Options > Export options.

image.png.8cba69e40106b5884f8fbac93da69fff.png

Now check that your export options are set this way.

image.png.adbf87fda0b5f43677fb5c098ec76730.png

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.

image.png.3effcf097a0708968145cbc9bdb73275.png

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.

image.png.d28a7d15b37ae85f063be42a6108877d.png

To extract the model, right click on “anna_travel_lod0” > Click on “Go to scene hierarchy”.

image.png.46b8cf4939c59fa871c6ba588478b78a.png

In the next screenshot, you’ll set a bunch of object names.

image.png.5d2c3399e3458f560266b85203a05642.png

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.

image.png.bdf1b017c93060f2a5dab6052a4b9c33.png

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.

image.png.6482ef1f9618f09a4b99ea6bff86c8f5.png

Click on Model > Click on Export selected objects (split) to export to a folder.

image.png.3a56635772bd96e7ef1e971a0acdb237.png

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.

image.png.5403628bfe85630c26fe34514a47bdd1.png

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.

image.png.58f6170862741b5b039cc62dbc440663.png

Based on the PathIDs you copied, your .txt file may look like this.

image.png.e3379ee039af263443715cb2dab3a3c6.png

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)

image.png.169ba5393680d04f78ea9772dc64467c.png

You can use the following import options when importing the fbx file.

image.png.79efd246c9c9400f645a08ef920a27c3.png

image.png.9b4500367639c16cab94680cdbc3320f.png

image.png.84d887db36cafd949752275ee5aad23f.png

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).

image.png.50e4d8b1f6f7e44a9d462cd0e1d6771e.png

In this case, the bones are already aligned to the body mesh, so we don’t need to change XYZ location and rotation.

image.png.0c09d0d9966174c3599ca77391a6d0f6.png

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.

image.png.0b8561b259faf64477f2d221e6d403e5.png

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.

image.png.cf0dffca1e0be3fe29335ab1fa7f36df.png

image.png.1b29f0e2b54f65911683441aa3a88273.png

Click on File > Export > FBX (.fbx).

You can use the following FBX export options.

image.png.6286b71fc1210ccf7535daf2355cdb36.png

Ensure that your exported fbx name is the same as the original fbx name, which is anna_travel.fbx in this case.

image.png.a4e3056466bf7004b4a6c4534b521af8.png

image.png.f0937c868f823aa877b0bf3e68020afe.png

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.

image.png.15abaeeb34c8b28a82ba544345c3f0dd.png

 

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.

 

image.png.f3af1f7520311ac320ada24bcff3db52.png

 

Drag both original and custom fbx models from Assets workspace into the game scene.

image.png.83aa8a26f977874da410b2cebb574ab7.png

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.

image.png.fcd113edc2b5ec656c52253106324d8e.png

Click on Tool > Mesh > Generate Mesh Component.

image.png.3eb135eb2dc343c41757bd9983ca2f83.png

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”.

image.png.655d98134d63c065da70df0e9810b8c3.png

In Element 0, choose the custom fbx model by clicking on the top “anna_travel_lod0”.

image.png.8979a07ea380060e537bedbbc97c8d93.png

Click on Generate.

image.png.2b6057dce010d51bb9d68ac3578d52c9.png

Notice that Assets > EXPORT folder now has a new mesh.

image.png.b430b0c28d7bc3ffacc9d97f0a29940f.png

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.

image.png.125996a62154475747afd2b9421b901e.png

image.png.cc36f5b335c7d8ad6d717bd336ec708c.png

Click on File > Build Settings.

image.png.2b0c9849dfa9728613d8dcb6c5cd6c5e.png

Click on Build and save your project files to a folder in your pc.

image.png.62365044e5439569109df88cb4e4100a.png

Navigate into your Data folder, which is “My project for Disney_Data” in this case.

image.png.064497fb37ffa1c49deb8841575e71e0.png

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.

image.png.f0fe9a53a22ebefa46c5a887c0213773.png

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.

image.png.b744dbba2304f6dc2eddd819151885ef.png

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.

image.png.94ebe18ec2afe74a9bc603790679422c.png

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.

image.png.ccd38e400c431c28629f02ba28355394.png

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.

image.png.568993f78afb1c551fa8e2755afe0d91.png

Now you see a popup message which states that the bundle is compressed. Click on Memory for decompression.

image.png.f571c6d980541abf0505a1e58ae8a448.png

You now have some data loaded to UABEA. Click on Info to show the Assets Info popup.

image.png.5f0f5e91a53e59541912e8e5129712c4.png

Click on View > Go to asset.

image.png.2c20cc930a7955e35e08e5013ea9b4af.png

Enter the Path ID of the original game mesh, which we wrote down in .txt file as 63314881225579444 earlier.

image.png.a37fd6f64254a4c9fa65bebacc2d9bf0.png

We have navigated directly to the mesh. Click on Export Dump.

Same as before, ensure you are saving as JSON dump.

image.png.7350ed14cc5d42f25fdfd80cf9536cab.png

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.

image.png.fda587f19a311f2005d9d1654a463f0f.png

In the original dump json, Ctrl+F to search for “m_BoneNameHashes”.

image.png.27663fd42eb055ecc686249648db616c.png

image.png.1de51286edb70e9c498769a3e952a187.png

Copy the whole data from curly bracket { onwards till the } curly bracket.

Go to your custom mesh json file, search for “m_BoneNameHashes”.

image.png.6cc60af96332ca1acfa4a3a0124669a5.png

Replace the whole data { } data from original mesh JSON to the custom mesh JSON.

image.png.eb10c379601c71d8184f681aeb37dfe0.png

Repeat the same for m_RootBoneNameHash.

image.png.3a701ef67d18b9a5f29d516abeef2488.png

Go back to your “Assets Info” popup from UABEA for the original mesh.

image.png.5d9de87b55b6486d45cd68233e880a86.png

Click on Import Dump.

image.png.6eb851674d2cb9e6ec68ca00f12a7157.png

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).

image.png.420bd5569db3c83872e779f78f8fb675.png

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.

image.png.103079e88124dd403bd9a9ef488a3d1e.png

So I navigated to the diffuse texture by using the PathID.

Click on Plugins > Edit texture.

image.png.91be6b0b867549de96e2e1ac4688c64d.png

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.

image.png.b0db0258b03f65e6cd1bf04a2e3c0dbc.png

Click on Load and find your modified texture file to load it.

Then click on Save.

image.png.7d0a060d2caca895cb728596f917cf56.png

In the Assets Info popup, click on Save as.

image.png.02e287bc17f5899cf1ea033d5a429b98.png

It will tell you that the file (in memory) is saved. Click on OK.

Close the Assets Info popup only.

image.png.3c964b4da12e3791ef76973b29221a2e.png

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.

image.png.ac96973ff40d7dfbdde0f49de03e8ce2.png

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.

image.png.4aae612d0f126891d41bb8dcc47b518c.png

Save the bundle file.

You may now close UABEA.

 

image.png.8cf3127cb40ef0d90e32eb4504593dfd.png

 

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)

image.png.969aeba5cc0305114f5aec181ae57992.png

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 by Meekurukuru
edit: image
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use