Introduction:This is a tutorial for newcomers to the Persona 5 modding scene, but it can also serve as a checklist or reminder for current modders. The area I'm covering is specifically for making sure the new model you bring into the game will work, it does not cover the process of rigging a model. What we want is to make sure the model is functional before starting heavy work like retexturing and rigging. You wouldn't want to put all that work into a model only to find out that its completely unusable and you have to scrap everything.
When bringing in models (usually from games outside Persona) to replace characters in Persona 5 (for example Michael Myers over Joker), it may not go so smoothly. There are chances you will experience errors in GFD Studio or have access violations/softlocks when loading the model in game. This walkthrough will make sure any model will work in game.
- 3DS Max (using 2018 in tutorial)
- TGE's Maxscript (using v0_15 in tutorial, link supplies this version)
- Image editing program of choice (I use Photoshop)
- GFD Studio (using 0.4.8 in tutorial)
- Mod Compendium
- Persona 5 (set up for RPCS3)
You're going to want to start off with importing the Persona model that you would like to replace/rig to, in this example it will be the Persona 1 costume for Joker.
*Now remember this next bit for later: I will rig a model to the Persona 1 costume, however, I will import it into Persona 5 to have it replace the Christmas costume. This will come back later when we get to the GFD Studio segment, I will denote this specific instance with asterisks.*
- Make a work folder to keep your models in (for GMD files and textures)
- Load up 3DS Max
- Drag and drop the
p5_gmd_gfs_gap_v0_15.msinto the 3DS Max workspace
- Import File > select the GMD you'd like to import (in this example, the GMD is
c0001_160_00.GMD) > Load Model
Do not worry, Joker is supposed to be laying down on the y axis. In Persona 5, the y axis is up, while in 3DS Max, the z axis is up.
I HIGHLY recommend saving your progress, in fact, do it a lot.
- At the bottom left, there is a drop down, select Layer Explorer. This will help with organization.
You can create new layers at the top of the menu (circled in red) and name them accordingly to their contents.
To easily move the meshes and bones(the rig), you can unhighlight the icon that looks like a pin (Display Bones, pointed at with a yellow arrow) to hide them, and highlight it again to make them reappear. The icon to hide meshes is pointed at with a red arrow (Display Geometry). Those icons also appear next to the name of the meshes and bones to help make them easier to identify. Hide one of these elements (the meshes or bones) and then select all (ctrl + a) on the layer and it will only select what is visible. Drag and drop it to the layer you named for it.
- Make sure to have your Default layer selected now (to know it's selected, make sure the 3 stacked squares next to the layer name are highlighted). You are now going to import your new model onto this layer. File > Import > Import...
From here, you can bring in your new model, this is assuming that your model is saved as a compatible format for 3DS Max, like .fbx, .dae, .obj, or another Max file.
For my Imported model, I made a new layer for his mesh, didn't make one for the bones since they will be removed soon.
- Your model is most likely going to come into Max not lined up with Joker at all. That is fine, but before we deal with that, we're going to want to make sure the new model's textures are in a format that GFD Studio can read (if not, you will get an error when trying to bring this model into GFD Studio).
Press "m" to open up the materials window. It's probably blank. No worries. Select all meshes of your new model on the main 3DS Max window and then go back to the materials window with all of them selected. Material > Get from Selected
You will now see textures tied to materials. Here is an example for how it looks for my textures and materials:
The red/blue split on the (standard) materials mean that it is displayed in the viewport. If it isn't displayed as such, then double click on it to highlight the material and then go to the checkered circle with a black/white border and click it.
Double click on the green area of the textures to open it up in a menu on the right. Check the file in the Bitmap Parameters tab and check if your bitmap (texture) file ends with a .dds or .png. The texture file MUST be one of those two file types or GFD Studio will give you an error when importing the model. Use your favorite image editing software to save these as a .dds or .png. I recommend .png because it is easier and GFD Studio will convert .pngs to .dds.
To replace the old texture, click on the Bitmap field and a pop up will show up asking you to navigate it to the new texture to use. Select it and the texture will be replaced. Rinse and repeat until all textures you plan to use are a file type GFD Studio can read.
By the way, have you been saving? Good.
- Now that textures are out of the way, lets align the model to Joker. Here's a quick crash course on your new best friend: the Transform Gizmo
This will be your main toolkit for use with the Transform Gizmo.
arrows in all directions (currently selected): move (hotkey: w). Click and hold on the corresponding arrow and drag in that direction to have it go that specific axis. If you click and hold that yellow box, it will go along the x and y axis. Click and hold the tiny white square to move it on every axis.
arrow going clockwise: rotation (hotkey: e). Axis explanation above applies here too. Follow the color of the axises.
white box with blue arrow pointing at blue line box: scaling (hotkey: r). This will scale the size. MAKE SURE THE ICON LOOKS LIKE THAT, it is marked as "Select and Uniform Scale." Things may start looking whacky if you change the type of scaling.
Play around with these three tools first to learn how they function before going into resizing your model to fit joker.
OTHER IMPORTANT TOOL:
right angle with magnet: Angle Snap Toggle. Click it to make it turn blue and activate it, this will snap your angles to certain degrees. Right click the image and set it to the following image
When you feel comfortable with these tools, you can bend either the model (if it has no rig when imported into max) or select the bones and ROTATE them to align the model to joker's position. You will want to mostly rotate and keep the move tool to a minimum (like using to lower shoulder bones or moving the feet bones around to align with Jokers)
BUT I CAN'T SELECT THE BONES!!! THE MODEL KEEPS GETTING IN THE WAY!!!
Solution: right click on the model > Object Properties > Uncheck Show Frozen in Gray (optional addition, check See-Through to see through the model and can see joker's model through it)
Go to the layer list and you will see a row label "Frozen" with an image of a snowflake in its column. Click this to freeze the model so you won't accidentally select it while adjusting the bones.
- ONLY MOVE ON HERE ONCE YOU ARE 100% SURE YOU ARE DONE WITH THE BONES
Unfreeze and right click on the model > (bottom right) Convert To: Convert to Editable Poly.
These simple uses of the axis tool might not be enough, we have to go deeper. On the right side of the program there's tabs. Select the second one (Modify), and select Editable Poly.
Toggle Edged Faces: F4 (the button, not F+4), make sure this is on when editing
Toggle Grid: g
Toggle Bounding Box: j (your model might have a strange while box around it, this will remove it)
The Selection category will help further refine your model fixes.
Vertex: (hotkey: 1) Select points on the model where polys meet
Edge: (hotkey: 2) Select the lines on the sides of polys
Border: (hotkey: 3) Select edge loops that have gaps (example being a neck hole)
Poly: (hotkey: 4) Select poly faces
Element: (hotkey: 5) Select a group of polys that connect into one piece
Deselect using a selection tool: hotkey: 6
When you have a selection tool selected, you can marquee (highlighting and selecting) aspects of the model and move/rotate/scale them. I recommend using the vertex tool.
- Now that you are done aligning your model, we need to do a very important check.
Persona 5 will softlock if any geometry (mesh) layer of the model is over 5,000 polys.
Show Statistics: press 7
Oh geez, that's a lot of polys. Use your poly selection tool and highlight everything (ctrl + a or drag a marquee) on the geometry layer.
Oh yeah, that's bad.
This will require that layer's meshes to be split up into several layers that are all under 5,000 polys each. Marquee and select portions of the model with the poly selection tool and make sure your selection is less than 5,000.
Drop down the Edit Geometry tab and click on Detach. A pop up will have you name your new layer. Make sure the checkmark options are all off and click ok. The highlighted portion is now a new layer you can see on the left panel with the other layers. Repeat this process with every Geometry Layer with over 5,000 polys.
Passive aggressive reminder to save.
- Okay, after many painful days, I have transformed this large buff dude to have the Shape of an anime boy.
VERY IMPORTANT: RESETTING XFORM
Now that the model is done, we need to make sure everything is aligned.
Highlight every layer of your model's meshes.
Go to the third tab (Hierarchy), highlight Affect Pivot Only, and click Align to World.
Unselect Affect Pivot Only when completed.
Go to the sixth tab (Utilities) > Reset XForm > Reset Selected
What this basically does is set all current transformations and other model manipulations to this setting, as if this was its natural setting.
If Reset XForm was not an option on the list, you can add it. Press the 3 white lines with a yellow gear (Configure Button Settings) and you will have a new window pop up.
Change the total button number to +1 of what your number originally was, then scroll down on the Utilities list with current buttons and you will see a blank button. Find "Reset XForm" in the Utilities list on the left and drag it over the empty button, click OK.
Now we're going to extremely basically rig him to Joker's bones to make sure the model will function in game. If the rigging works, he will move around according to Joker's pelvis bone.
Select one of the Geometry layers, make sure nothing on the model has a selection highlighted, and go do the dropdown menu in the Modify tab and search for "Skin."
In the Parameters dropdown go to Bones: Add. A pop up will happen and you will see the word "root." Select all (ctrl + a) to select all bones and click Select.
Bip01 Pelvisand highlight it.
Select Edit Envelopes and checkmark Verticies.
Click on the Viewport (the part of Max that has the window for the model) and select all (ctrl + a).
Scroll down a little and click the image with the wrench, the Weight Tool.
The image below will pop up. Because you have the
Bip01 Pelvisselected, you can press the 1 and it will be 100% weighed to the pelvis bone. You can close the window
Click on the Advanced Parameters dropdown and make sure the Bone Affect Limit is set to 4. Things will go horribly wrong if more than 4 bones are affected when rigging, keep this in mind when you are moving onto seriously rigging your model.
To remove bones that have no weights on it (the
b r K_eri01you see above) click on the Remove Zero Weights and it will be gone from the Weight Tool list.
VERY IMPORTANT: YOU WILL NEED TO CHANGE THE BONE AFFECT LIMIT TO 4 FOR EVERY SINGLE SKIN MODIFIER YOU APPLY.
Rinse and repeat these steps till all parts of your model is rigged to the pelvis.
After this is done, you can highlight all of Joker's Geometry layers and delete them. We will now be exporting the model to GFD Studio.
- Exporting from 3DS Max
File > Export > Export...
Choose to save as .fbx
Copy these following export settings exactly
It is possible you might get an error after clicking OK (possibly gimbal or skin related and it will show you a list of Joker's bones), ignore it and continue with your save.
- Bringing the model into GFD Studio
Time to open up GFD Studio.
*Now remember what I said about how this costume is rigged to the Persona 1 costume, but I will be replacing the Christmas costume? Even though the rigs look identical, the IDs on the rigs might not match. This will cause issues and break your model and rig in game. The reason why I rigged Michael to the P1 costume is because the Christmas costume is extremely different in appearance, so it was easier to match him up to the P1 costume (also to show you how to fix this issue).*
Drag and drop the Christmas costume (
c0001_165_00.GMD) into the program then right click the model name and click Replace. Select your exported fbx and your model will now replace the Christmas model.
Also congrats, you bypassed the ID rig issue.
If you imported the model as the P1 costume and then renamed it to the Christmas costume, then the issue is most likely to arise.
File > Save as > Save it with the Christmas model name exactly and make sure the file type dropdown is set to Model Pack (GMD)
IMPORTANT: now if your model used pieces of Joker, you may see an issue arise. GFD Studio will give you an error when attempting to save. In this example, it is an error related to Joker's hands.
This means that a texture is missing. What you need to do is add the missing texture.
Right click Textures > Add > New texture
Right click the new texture (New texture.dds) and replace. Locate the original missing texture, you can see its name in the error:
Once you rename it, highlight it and go to the bottom of the program where it says "Name" and replace the name with the name of the file. Click enter and then click on the GMD file name to refresh the whole model. Click on the textures tab to make sure the name was updated, if not, try again. Follow the save process stated above when the texture adding working.
- Mod Compendium
This is assuming your Mod Compendium is already set up with Persona 5.
If not, please follow Shrinefox's guide on set up: part 1, part 2
Make a new mod in the compendium and then place the model in this specific directory in the mod's folder
Click build and wait for it to be completed.
Once it is complete, load up the game on RPCS3.
- RPCS3 - checking the model in Persona 5
There are two places where the model needs to be checked if functional: Overworld (Palaces) and in battle.
In the example below, I'm using Majima instead of Michael for a very specific reason. This model is rigged to Joker's thief costume.
As expected, he is moving around following around with the bone he was assigned to (in this case I did not use the pelvis bone, but it is irrelevant that it is not the pelvis bone). Now lets see what happens when a battle starts...
And this is why you always check overworld and battle. I didn't follow all the steps listed above to make sure the model is completely functional so now Majima is a broken mess.
Since the Michael model followed all the steps, lets see what happens when we use him instead.
He works in the overworld, perfect. The reason why he's tilted is in relation to Joker's pelvis bone, he doesn't stand completely straight, so this is good. The hands are also Joker's so they are actually rigged properly. Lets make sure this works in battle.
Perfect, it is not giving the results that we saw with Majima.
Your model is now 100% compatible with Persona 5 and you are safe to start rigging without having to scrap anything.Here is the same model shown above with only a proper rig added to it.
This might seem like an extremely long process, but now that you walked through this once, you have an understanding of how the whole process works. You can do all of this in less than 10 minutes.