3dmigoto Blender Guide (TMI)

An annotated transcript for learning the 3dmigoto Blender Plugin, replacing an existing game model with a completely new model. Created and maintained by SinsOfSeven#3164 ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Guides

AnimeGame model Importing with 3dmigoto - tutorial - This is the primary Guide Video. This whole guide is just an annotated transcript of this video, as it has the most relevant information.

Secondary Guide - Covers more about 3dmigoto using a different AnimeGame, writting basic shaders (doesn't work as well in AnimeGame).

Tertiary Guide - I haven't watched it all. No comment. Yet another AnimeGame.

Plugin Walktrough - Plugin Author. Covers the key points in the process of importing and exporting.

More Written Guides from Silent!!

Introduction

Hang onto your seats cowboys, this is where the transcript starts. Block comments and text wrapped in [] are my annotations. There are also links to things when the guide mentions them!

Heya, welcome to the model import tutorial for AnimeGame, using 3dmigoto!

To begin this tutorial, make sure you have 3dmigoto running!

The tech is recent, so the process can still be rough for new users.

As always, I strongly recommend learning the layout of blender before starting a model import.

Blender 2.8-2.92 is currently required for this!

You'll also need the 3dmigoto Blender Plugin for AnimeGame

You can start in blender 3.0 with just your desired model, you can do most of the clean up there, then export it as an .FBX (or copy paste the raw data into 2.92) when you're ready to start merging the models. You won't even need the Original Model till the Posing Step.

Importing

Firstly, import both your genshin model and the model you will import. The genshin model is imported using "3dmigoto frame analysis dump".

Skeleton rename/remove

Can skip this imo. Skip section

Sync Video

As you can see, my skeleton has a lot of bones. We're going to need to simplify it.

Enter edit mode and goto the scripting tab.

For editing the skeleton and removing bones, we'll be using this script.

What we want to do here is simplify the skeleton so that it's similar to a human skeleton. We want to remove all the physics bones, and make sure each part of the body only has one bone, like the upper arm.

I strongly recommend using mmd tools translation for mmd skeletons. The mmd translates bones that you will need to keep, unlike CATS, that translates every bone.

For example, I want to keep the translated upper body and lower body bones here, but not the dummy bones.

Select bones you wish to remove and run the script.

Here, we can see several clavical R bones. We only want the shoulder_R bone, so we need to delete all of those.

This same logic is applied for all the arm bones. You want to keep the bones beginning with shoulder, arm, and wrist, and obviously the finger bones.

For the main body, you just need to keep the lower body, upper body, upper body 2, neck and head bones.

I will speed this up to when I do the legs as legs may sometimes need an extra step.

Now for leg bones, watch what I do here. This is a little hard to explain, but I'm reparenting some bones, then deleting them. If you don't have these bones, Skip this.

Back to deleting bones.

Removing Unused Vertex Groups

Sync Video

Once complete, go back to layout, and back to object mode.

In object mode, select the mesh, enter edit mode, press A to select all, P, select "By Material".

What we now want to do is hide any mesh we don't need, in this case anything not associated with the body.

Then, select all the mesches that remain, and join them together.

What we want to do is remove any unused vertex groups from the mesh now. I was unable to find this option in 2.92, so I went and opened 3.0 blender. [Export as .fbx and import into 3.0+]

This isn't necessary, but it makes the next part a lot easier.

In blender 3.0, select your mesh and click the dropdown arrow next to the vertex groups. Select "Remove unused Vertex Groups".

Once complete, simplily export [as .fbx] and [delete old model,] then reimport into 2.92.

All done for getting the number of vertex groups down!

Posing

Sync Video

What we need to do now is get your meshes lining up. To di this, first, get your two meshes lined up by scaling and rotating the skeleton of the model your importing. When done, apply trasformations to the skeleton.

As you can see, the arms on the models aren't angled the same. To change this, we'll be changing it's position. Enter pose mode.

Now select and rotate the bones of the model you're importing till the mesches line up. Scale if you have too.

If your model has shape keys, remove them.

Duplicate the modifier your mesh has, and apply either one of them.

Once that's done, re-enter pose mode and apply pose [Pose -> Apply -> Apply as Rest Pose].

Rigging Tutorial Series w/ Rigify - Exhaustive information about re-rigging, weight painting vertex groups, and what not. Using this, it should be possible to rebuild armatures for posing models without them, to prepare them for use in AnimeGame. I haven't personally used it.

Weight Transfer (Vertex Groups)

This is the most important step for most models. Take time to absorb the information. This is how AnimeGame will use your model. The skeletons, bones, physics etc mean nothing from this point on.

Alternate Method for Weight Transfer

Sync Video

For simpicity, open up another blend, and import the genshin impact mech there.

Afterwards, put it on the side of your screen. You don't need to make the window very big, we're just using it for vertex group locations.

Enter weight paint mode in both blends.

Now what we want to do is find the group in a similar area on your mesh compared to the AnimeGame one. Then rename it to the same number as the AnimeGame mech.

Continue this renaming by location until every one of your vertex groups is done.

[That step can take awhile. Have fun champ!]

Once you're done, sort your vertex groups by name. This will put them in order.

You may have noticed, but I have gaps, like 1-8 or 9-18.

What I'm going to do is plug these gaps, with many empty groups. This is necessary, or your order will be messed up.

Create as many empty gropus as you need, and simply rename them to plug the gaps, like I need 2-7, 10-17, etc.

Fixed!

Continue plugging the gaps like this till there are no more.

UV Mapping

Sync Video

Once done, enter texture mode. You need to establish what textures are being used where. Using seperate by material could be very useful here.

Luckily, I only had one texture to worry about. YOU COULD HAVE MORE!!!

Even more info on Texturing and UV mapping

Unparent your mesh from the skeleton at this point, we won't be needing it.

Now open paint.net. Setting up paint.net

In paint.net, import the texture(s) of your imported model and the textures of the AnimeGame one.

Resize canvas if it asks.

Increas your canvas size so that it fits all the images you imported.

Afterwards, move images into any empty areas.

When done, simply save [as .png].

Now in blender, use the new texture for the material.

As you can see, the texture on the model is all messy now. We need to edit the UVs.

After entering UV editing, firstly, scale the UVs down to their normal size. If your original dimenstions were 1024x1024 and your new ones were 2048x2048, then you need to scale down by 0.5

This came off a bit strange in text. They mean that if you're using the parts of the original texture, and it's now 2x1 or 1x2 tiles, (1024x2048), you will have to halve the scale in the corrosponding direction to get the original proportions of the UV map.

Afterwards, move the UVs into thier correct position.

Looks good!

Property Transfet Script.

Sync Video

[Open the scripting layout.]

Now we need to use this Property transfer script.

1
2
3
4
#This is different from the video, but it's the same, just a bit easier.
import bpy
new_object = "" #Your Model's Name
original_object = "" #Original Model's Name

For the first field fill with your importing's name.
For the second, fill with the AnimeGame's model's name. Then run the script.

Open up your vertex properties, the same area as the weight transfer section, and below the vertex groups locate UV maps, and vertex colors. You can also delete your shape keys now if you didn't earlier. Idk if that matters, but it's in the guide.

UV maps and Vertex Colors

Now we need to rename UV and vertex colors. For UVs, rename the maps to TEXCOORD.xy, for the vertex color, rename it to COLOR.

Joining the necks

Sync Video

We now need the neck area and anything above that in the AnimeGame model, as we'll be using it to avoid seams of gaps.

Select Original Model, enter edit mode, select all the vertices you need, P, seperate selection.

Before joining, we need to make both necks as close as possible at the ends.

Firstly, I'm goint to delet the section I don't need [on the new model].

Then, I'm goint to move the edges of the necks closer, using proportional editing.

(If you don't know what proportional editing is or how it works, I recommend reading about it first.)

Remember to edit the UVs for the AnimeGame character mesh too! [This will preserve the original neck and eyes].

Select all the vertices at the edges of the neck area, then merge by distance to join them!

Looks good!

Clean Up

Sync Video

This part seemed a bit hacky, editing the meshes should probably be done BEFORE weight transfer. But I don't really know what I'm saying, could be very important.

Select all the meshes, copy them, open a new blend, paste them there.

Since I don't need the extra mesh, I'll be leaving all but one polygon to avoid errors, and then I'll shrink the remaining polygon to be unnoticable.

Rename the [objects for] body to <OG_Char>Body, hair to <OG_Char>Head, and any addition mesh as <OG_Char>Extra.

[Example : FredHead]

We now need to select the body, and apply transforms. If you don't do this, the body will bug out.

You will then need to rotate the body 90° so that it's facing it's back.

Basically, you need the Rotate X to be 90° when you goto to export, but it also needs to look the same as it has the entire process. This step can actually be done much earlier, as soon as the other transforms are finished in posing. It doesn't seem like the head needs this step, but weapons do, and other models might also need this.

Exporting

Sync Video

Export as "Export genshin mod folder". Export to the folder with the original AnimeGame character meshes (the .txt files) and name it as <OG_Char>.vb

This will make a mod folder named <OG_Char>Mod. I then install the mod files here, 3dmigoto\Mods.

[Example: Fred.vb, FredMod, 3dmigoto\Mod\FredMod]

Exporting Troubleshooting

Exporting Textures

Sync Video

Then in paint.net, invert your image, save your image as a DDS in the [installed] mod folder. [For Diffuse textures, when saving as DDS, select BC7 (sRGB, DX 11+) Make sure to [x] Generate Mip Maps]

For the lightmap, take the one of your AnimeGame character, the place it where your AnimeGame character's original texture was on the diffuse. Then on all other areas, you can use paint bucket and the shade of green I use to fill it in.

[For Lightmap textures, when saving as DDS, select BC7 (Linear, DX 11+) Make sure to [x] Generate Mip Maps]

Exporting Troubleshooting

In Game Adjustments

Sync Video

It works! Mostly... Let me rerig the skirt to the legs.

This isn't necessary, and I have a smash tutorial that goes more in depth, but more of less I seperate my skirt and then rig the top to the body and sides to each leg. Then I normalize limit weights, and re-export.

More about the smash tutorial from the author. "You do what I do but with full weights, There it was partially weighted to other bones too." In other words, try to copy what's happening in the first video, with the extra insight from the 2nd.

Another Weight Painting Tutorial for 3dmigoto.

Now to test again!

Looks good!

That's the tutorial, I hope it was understandable. Thanks for watching.

Paint.Net Setup

Jump back to UV Mapping

WIP PDN Guide

Guide for a simple color swapping mod.

Get paint.net (Download is on the homepage, not in downloads.)

Plugins

* Required

*DDS File Type

*Invert Alpha

Additional Plugins

These might help if you don't have dedicated a prefered image work software.

Assorted from Xhin23 GitHub

BoltBait's Plugin Pack

PyroChild's Plugin Pack

Paint.Net Texture Guide

I'll add a guide here later specific for working with textures, like how to export a UV map from blender and how it can be used in paint.net to make nice textures even from scratch, but rn it's time to push this guide out.

Bless Them

Silent - For the Plugin and Scripts, and tons of Troubleshooting help.

Modder4869 - nice, Troubleshooting help

Lost - Good tips

Cybertron - Lots of info, like Silent. Alpha -> Emmisive, that's why we need to invert before and after editing.

Other Guide Authors - Linked at the top, y'all know how youtube works right?

Shout out to all my lawmowers.

Troubleshooting

My own troubleshooting and learning from the helpful people.

Solution, renaming my model object to StaffOfHomaHead, exporting as StaffOfHoma.vb

Solution, rerunning the Custom Props transfer Script with the new correct names.

Solution, Set UV Maps and Vertex Color in the Vertex properties like so, TEXCOORD.xy and TEXCOORD1.xy are the UV maps that should have been created earlier. Just rename any that are there. COLOR may or may not alreay exist. It should be okay to just hit the + button and rename the new one.

Back to Exporting

Texture UV

Me:

I'm pretty sure the texture won't work. I deleted the material cause I thought thats why I got the color error.

Silent:

as long as you have a UV map called TEXCOORD.xy, textures should work

Me:

Well I have a UV map. So I should rename it?

Silent:

Yes

Transfroms Orientation

Step in Guide

Solution from user Lost

Lost:

Just for future reference on rotating, press the face of an axis (x, y, or z), Press r and type the number in which you should rotate the object. Repeat Steps 1 to 3 and adjust until oriented right, then apply all transforms.

Stray Transforms

Me:

I got the orientation transforms right, but now my weapon is a slightly diff shape, like an oblong transform on this spear now. The handle isn't even round.

Silent:

interesting. I don't think it should change the actual scale of anything, especially if there are no vertex groups. At most, it would scale the entire object evenly.

Me:

Nvm I found what happened, I had a stray transform to the object scale that wasn't applied.

What Matters when Exporting

Me:

The exporter only cares about the stuff that has the correct properties right? So if I have some stuff in my blend file like an image reference it won't care right?

Silent:

pretty much - the exporter only looks for a specific set of things and ignores everything else

Troubleshooting list WIP

Anime Game 3Dmigoto modeling checklist.

Github Troubleshooting page

It doesn't work!

Ensure you're running Blender 2.8-2.92

Transformations

Set all OBJECT Transforms to 0, then set the X rotation to 90°. All further Transformations should be done directly to the vertices.

Property Transfer Script

Vertex Groups

  • Match the Original Model
    • This is how the game moves the models, skeletons and IK bones are meaningless, and can be removed/unparented after posing.
    • Tiedious process, worth it in the end.
    • Not needed for simple static weapons
    • plug any gaps with empty groups.

UV Maps

  • Make sure the UV map is named TEXCOORD.xy

Vertex Color

  • COLOR

TEXTURES!

  • Alpha controls emmisive light, transparent = 100% emmisive. So invert Alpha to view and edit the Diffuse textures. Invert back before exporting.
  • Lightmaps, idk tbh. I'll get back to this.

Back to Exporting

Edit
Pub: 26 Jul 2022 15:17 UTC
Edit: 01 Aug 2022 02:48 UTC
Views: 5378