Tutorial on making DLC ​​for Dissidia Duodecim 012 : Final Fantasy

 





 

Things you need before starting:

  • A new 3D model to be used
  • Noesis
  • Milkshape 3D (version 1.8.5 or higher is recommended)
  • GMOTool 
  • PNG2GIM
  • Notepad++
  • Character Base GMO
  • Basic knowledge of 3D rigging

Tips for preparing the model!

  1. Before you start, make sure the new model has a body posture that is appropriate or close to the original model so that the animation compatibility can be maximized. Try to keep your model under 1 MB, including textures, as the final result usually approaches the maximum limit of 2.4MB, especially if you plan to use characters with EX body swap mode. If you're looking for 3D models from a provider's website, they usually fall into the low-poly category.

    If you exceed this limit, the DLC cannot be used anymore.

  2. For characters with weapons that can change/switch for attack animations or EX mode, and you want their weapons to be animated correctly, each weapon MUST be created as a separate mesh group from the main body, and make sure each weapon has its own texture material from the beginning.

  3. Considering that the arm bones of some T-pose original GMOs are straight downward (let's call it I-pose), it is advisable for the new model to have separate arm mesh from the body mesh for easier rigging in Milkshape. This is not too much of an issue if your model doesn't have too many vertex arms.

Example of A-pose, used by characters that newly appeared at Dissidia 012

Example of I-pose, used by characters that have been present since the first Dissidia.
  1. Separating specific meshes before starting is also necessary if your new model has a complex appearance such as long hair, full armor, or many accessories, especially weapons that create overlapping faces/vertices, making it difficult to select for assignment to the appropriate bone. Therefore, if you are still a beginner in 3D rigging, it's advisable not to immediately try complex models.

  2. Check the original GMO mesh with Noesis to ensure the appearance and number of meshes by clicking on "Data viewer" in the mesh section to confirm which meshes your model needs.

Example: Squall has 3 main meshes. His body as the body mesh, Revolver as the wep0 mesh (main weapon), and Lionheart as the wep1 mesh (second weapon). The number of weapons can be quite extensive if the character has many weapons like Laguna.


An example of the mesh structure of the Squall model which consists of 2 body meshes and 2 weapon meshes.


Ignoring this step may result in your character not undergoing weapon transformations during the game, meaning the weapons might remain in a permanent state. However, if weapon transformations are needed for attack animations other than EX mode, as seen with characters like Bartz, having permanent weapons can be quite disruptive.

Getting Started:

Use Noesis to export the basic character in .gmo format to .smd format.

Export model Exdeath


As an example, since I will be using Exdeath as the base here, I export its .gmo file from the T-pose folder.

Import the base model and your model into Milkshape. I will attempt to create the Uranus - Celestial Bastion skin from Mobile Legends for Exdeath.

Since Uranus doesn't have a sword like Exdeath, I add one myself to make it fitting since Exdeath has animations that involve the use of a sword.

The basic model data (Exdeath) is usually displayed horizontally, while the new model (Uranus) is USUALLY displayed vertically.

I'm not sure why Milkshape sometimes exports several meshes as one mesh if those meshes use the same material. Therefore, the only way to ensure that the weapon meshes are treated as separate meshes is to assign each weapon a new material, even if they use the same .png texture file. Name them, for example, "Body", "sword1", and "sword2" for each material, and duplicate the .png file, then name and input it according to each respective material.

After that, go to Tools > Scale All 10000%.


You can see the bones (blue) still gathering before Scale All
 

Then delete the base model so that only your model remains

The view after Scale All. The bone structure is visible. Exdeath's data (in red) will be deleted, leaving only Uranus (in white).

Now, if you have experience with scaling adjustments, try adjusting the model to the bones by rotating and shifting vertices on its body parts, and so on. Then, you can proceed to rig the model.

You may encounter bones that are not needed for your model, such as Exdeath's leg bones because Uranus does not have legs. You don't need to force rigging on those bones if it's not necessary.


The appearance of Uranus after being adjusted to Exdeath's "bones".


Important:

Never edit, rename, or move bones as it will damage them. It's better to start the import process from the beginning than trying to fix it if you accidentally do something to the bones.

Rigging

For rigging, you only need to select vertices from the bone you want to rig.

For example, select all vertices from the head and then assign them to the "head" bone.

This is why I suggest separating the arm and body mesh of the model. You can hide the body mesh or other meshes first so that you can easily select and rig the arms if the base character uses an I-pose.

Once the rigging is done, you need to scale it back to the original size with Scale All 1%.



 

Testing Options (my suggestion leans towards method 2 as it is simpler and faster)

Method 1:

You can test the rigged model by importing its animation, preferably using the .psa format if you are using Milkshape.

It takes a long time to load.

Click the anim button in the bottom right corner to view the animation.

Method 2:

Export the model in .smd format with "With vertex weight" checked and open it in Noesis. The texture may appear inverted, but ignore that for now.



Your model appears to vanish, but it's actually just minimized.

Open the GMO folder > Animated, drag the GMO Exdeath into Noesis, then select "No" in the dialog. If successful, your model will move like the original model, and make sure to check that all sides are correct.

Select Tools > Data Viewer, then check the Animation section to view the animation more specifically.

Shrink the Animated folder window because you will have to "drop" the GMO Animated Exdeath onto your model view in Noesis.


Uranus is doing Exdeath's win pose.


Press F5 if you want to see how the "bones" move.

If there are still errors, go back to Milkshape and Scale All back to 10000% or use Undo to correct it.

If everything is correct, export that .smd again into .fbx format while checking flip UVs.

Note: add -fbxoldexport to the advanced options if you can't convert .fbx to .mds due to "unknown error". I found that different computers produce different results when exporting .fbx.

Editing MDS

The last part of this tutorial is editing .mds. Move your .fbx and copy the Exdeath .gmo from the Animated folder to the GMOTool folder.

First, you need to convert .fbx to .mds using fbxconv. Edit the fbxconv.bat file using notepad++, then replace the .fbx name there with your .fbx name. Close the editor and double-click fbxconv.bat.

Then, convert .gmo to .mds using gmoconv in the same way.

 

Entering the base animation model name in gmoconv.bat (Exdeath.gmo)

Enter your .fbx name (UranusC.fbx)
 

Open both .mds in Notepad++

How to replace the same text all at once in Notepad++:

In your custom character's .mds, replace all instances of "rootnode" with "root" and "png" with "gim".

If your model uses the same texture material for multiple meshes:

If your model initially went through the step of duplicating .png, now is the time to remove the presence of duplicate textures as they are no longer needed.

For the main body texture material, for example, named "Squall.gim", you also need to replace all text names of other gim files (such as "sword1.gim" and "sword2.gim") with "Squall.gim" because you only need one texture to be inserted. If you forget this step, your character may not be broken, but it might be too large, exceeding the size limit, and cannot be used as game DLC.

Move to your base .mds character and find the text "model-0".

Below it, look for bones with this code (different for each character, in Squall, this bone has the code p_eht100).

 


 

Then delete blendoffset, blendbones, and drawpart, leaving only ParentBone and Translate

Do the same with the "wepx" bones (e.g. wep0, wep1, etc.) and the bones in model _000A

Look for the trans_include bone inside model-0 and copy everything over it

 


 

Then override/replace the trans_include bone inside model-0 of your custom character's .mds

 



Here, the bones of Exdeath have entered Uranus



Additional note for characters with transformable weapons:

After assigning different materials to your model in Milkshape, you will see mesh1, mesh2, etc. under "trans_include"; these are your model's meshes (usually mesh0 is the main body, but it can be different in some cases, so check with Noesis to confirm).

For example, Squall uses the revolver (wep0) as the normal mode and the lionheart (wep1) as the Ex mode.

If you want your model's first sword to replace the revolver, open your .fbx in Noesis and check what the name of the sword mesh is.

If necessary, note the function of each mesh, especially if you are working on a character with many weapons like Firion, Laguna, or Bartz.

Bartz's Wep4 is the Buster Sword

If the name is "mesh2", move bone mesh2 or your first sword and overlay it on top of bone wep0 above trans_include. Place another sword on wep1 as EX mode sword.

Now go to your custom .mds material section and delete this section from each material.


Forgetting to do this can cause your DLC to appear dark in the game. This effect may not be visible even if you check it with Noesis, so make sure to check before exporting the GMO.

Note if your character uses the same texture for multiple meshes:

You will find several texture material assets with the same source file (you named it "Squall.gim" earlier), delete the entire section of texture material that is the same as "Squall.gim" as an asset, and leave only one.

Now, don't forget to convert your .png textures to .gim using png2gim and open the .bat 16bit.

You can only have 1 png in the folder, so if your model has more than 1 texture, you have to do them one by one.

 

 

 

Rename the new .gim to match your png file.

Note: Sometimes it's named Ready.gim or 12345.gim, but it's up to you.

After moving the .gim into your GMOTool folder, use gmotool - to gmo.bat.

The editing and usage process is the same as fbxconv.bat earlier, and input your .fbx name.

-s is the parameter to resize your model. (-s 0.8 means the model size will be reduced by 80% and so on).

Note: It is recommended to replace 0.8 with 1 so that your model size does not change. Those who resize the model usually do it to match the original character figure they use, but the consequence is that some attack animation effects may be inaccurate because the attack animation effect data is not included in the model but in the game file.



 

Make sure there are no failed notifications or any failures.

Now you can try checking the .gmo in Noesis to see if the animation is working properly

 


 

Please note that the size of your GMO should not exceed 2.4 MB. At this point, the only way to reduce size if it becomes oversized is to resize its textures. Resizing down is usually done to 50%, while enlarging is 200%.

Since the standard size is usually 256x256 pixels, if you want to downsize, use 128x128, 64x64, and so on. For enlarging, you can use 256x256 and 512x512 if possible. So far, 512x512 is the largest size that can be used because if you use 1024x1024, oversizing is guaranteed.

Additional steps for characters with full-body swap features:

Usually, this feature is used only for transformations into EX mode (except Cecil, who can transform via HP Attack).

The DLC still works fine even if you don't take this step, but it might not look as cool, right? 😆

Unlike characters with weapon change features that only need to manipulate weapons, you have to go through all the steps above as if creating a new DLC, but with the same base character.

The first thing to note is the size of the previously successful GMO.

Make sure it doesn't exceed 2MB because the new data may take up to 500kb (depending on the new model and texture).

New things you need:

  • Your previous .mds model.
  • A new model that has also been customized.

The first step, create a new DLC with the same base character. Then forget about it! 😆 Just kidding 👍

We don't need the resulting GMO, only its .mds.

Assume in the image below that I have repeated all the steps and successfully created an .mds from the default version of Uranus, which I will use as the normal mode (Uranus.mds), and Uranus version Celestial Bastion (UranusC.mds) as the EX mode.

In the .mds to be used as EX, find "model-0".

 

Add -0000 to "model-0-0000", then block from that line to the last line and copy it.

Switch to normal .mds mode, go to the last line and paste it there.
 



Edit the .mds in "gmoTool to gmo" with the name .mds normal mode, use it again, and open the resulting .gmo in Noesis.
If successful, the F2 button function to view the second model will appear and the size will not exceed 2.4MB


Normal mode Uranus display (1/2)
 
EX mode Uranus display (2/2)



Final Result
 





Comments

Popular posts from this blog

Tutorial membuat DLC untuk Dissidia Duodecim 012 : Final Fantasy (Bahasa Indonesia)