I’m using the “Import 3D option” in the Avatar tab:
I’m using this option because the Avatar Import Plugin said this:
When you use that method, does it give you any options to insert it using the scene position? Like something shown in the image below.
Just tried that and it made no difference. Also, these are the options I get:
I’m also confused as to why the textures aren’t being transferred over too, like the example you just provided.
Could you please go into more depth on how exactly you export the meshes? Are you exporting individual parts one at a time from that file? If not, how so?
I’m also confused as to why the textures aren’t being transferred over too
It depends on how you textured the meshes. I don’t have much experience with textures, but when I use them, I texture them with an image and then upload that image to studio and apply that image to the mesh in studio. It’s up to your personal preference.
I select the whole model, and export as FBX in one go. I select “Only selected objects”, and scale it down so it’s not huge in Roblox (I did test not scaling it and the problem persisted). I also select apply transform.
Here is a short video of the process I take to export and import the model (I cut out going through my files):
And yeah the textures aren’t that big of a deal since I can apply them myself manually in Roblox, just was curious if there was a way to get them to work on import to save time. But like I said, not a big deal, I’m more concerned about getting the meshes themselves working.
The way you exported the rig is fine, so I’m genuinely confused why the import looks so wrong. I found this reply to a post that might at least help with the rotation. You did say that all the origins are at 0, but It’s worth a try.
If this doesn’t work, could you send me the file itself so I can troubleshoot it? (if it’s fine with you)
Sadly that didn’t work, so here’s the file if you’d like to have a look at it.
In fact, here’s all of the files, because the same issue happens to every single one of these avatars I wish to port over. So if you find a fix, do please run me through it so I can do it myself in the future!
Thank you for spending your time to look at them for me
https://drive.google.com/drive/folders/1tAhxP_dOGlW3cFbbZmWYov-rYDRi7KoP?usp=sharing
I’ve been trying for a good hour now and I can’t seem to figure it out. The meshes’ rotation and position are fine if I export it as OBJ, but not when FBX. I’ve tried everything I could but nothing worked.
Damn that sucks. Well, thank you for the help anyway. I’ll probably just have to try find a workaround, or research more into FBX files in general and why it might do that.
Do you know any other way I can get the model in with the rig? Can I import a rig separately?
Sorry to bother you again, but I’d like to ask if you think this workaround could be viable:
- I import just the meshes, probably as an OBJ, into Roblox Studio and group them as a model
- I rig the model in Roblox
- I export that model and the rig back into Blender
- Animate what’s needed in Blender, before exporting those animations and loading them into the model in Roblox.
This was, I could still animate in Blender, keeping the same rig, expect I just make the rig in Roblox instead of using the Blender rig? Is this possible?
I think this is a viable option, just don’t import the OBJ as a single mesh. I think Roblox decimates the mesh to bring the triangles down. Other than that, I see this as a possible solution.
Got it, thanks. I’ll give this a go and if it’s a good option to get around this, I’ll post it and mark it as the solution.
Thanks for all your help!
Have you set parents using automatic weights in blender?
I know this topic is old but I’m still going to reply since it may help someone.
You should scale down the whole model in Blender and import it like that to Roblox Studio.
I guess you just have to apply transform in blender for the whole object that might work, happened to me before
This is super old, but replying as I am also working on an Unreal Engine 5 game and had exactly the same problem, and managed to fix it.
Essentially, just parenting the meshes to the bones with default groups isn’t good enough. Parenting the meshes to the bones with automatic weights (and then tidying up the weight painting so it moves robotically at the stiff joints rather than deforming) fixes it. So, in short, it needs proper weight painting to work.
Hey! I spent like a month and a half banging my head against a wall figuring this out a while back. I seriously imported different versions like 150 times, I went through every rig and export setting. Eventually what finally clued me into what was happening was comparing rigs with another that imported correctly, eventually I found out that one just so happened to use weight painting to rig itself, and from there I kind of figured it out. I wish I would’ve seen this post a bit sooner so I could’ve provided the solution without you having to wait such a long time.
ANYWAYS I HAVE SOME TIPS + A FASTER AND EASIER WAY TO DO IT (In my opinion)
I am not sure how proficient you are in blender, for the sake of time I’m going to assume you are fairly knowledgeable in the realm of rigs and such, considering you are an animator. I can go into depth though if you like. Just lmk
(If rigging a robot)
- I would parent with empty weight groups instead because it stops you from having to do the whole “cleanup” process on the weight painting.
- Then I would just parent meshes to bones by going to the vertex groups property of the mesh in edit mode, selecting it all, and assigning the vertices a weight of 1.
I much prefer this to automatic weight assigning because with this, you don’t have to go back and clean up the transitions in weight painting between different bones/meshes for robotic characters like Freddy.
If you are planning to import into Roblox, there are some easy optimizations that can be made.
- First Ctrl-J join all of Freddy. ALL OF HIS MESHES INTO ONE
- Then select it, go into edit mode, select all, and hit p: “separate by material”
So now, instead of having like 100 different meshes, when imported, the mesh count ends up being like 10. This also makes assigning textures in Roblox much easier as each different material in Freddy is its own mesh, hopefully it’s a bit self-explanatory why this makes texturing quicker.
I know this will somewhat degrade the quality of the mesh, and I guess you don’t HAVE to do this if you want each mesh to import at Roblox’s face limit, but I really couldn’t tell much of a difference in the end, in game. This helps performance a TON.
The advantage to using weight painting is that the actual meshes don’t matter as much as the VERTICES themselves are what are parented via weight.
Hope I could help out in some way!
since this is solved and everything now i feel like im allowed to do this
Hi, this is super helpful, thank you! Just a quick question; would you recommend doing the rigging and weights before doing the joining and material separation, or after?
Also, I’ve not messed around much with vertex groups other than just manually weight painting with my mouse/tablet pen. Can you elaborate more on how those work? Thank you
Honestly, I’d probably say it’s somewhere in between. You want to rig the model before combining everything together, that way you can properly select the meshes. BUT in order to make your job of rigging easier, I would go through and join Freddy’s different segments together. The parts that will connect to the bones. For example, you would join all the meshes in the right, upper thigh, including the endo into one part. This is because that is all that would be attached to the right, upper thigh bone in rigging.
So, once you’ve done that, you have your model that is essentially built up of action figure pieces.
NOW you can go onto the rigging.
IMPORTANT! ANY PART THAT NEEDS TO BE DEFORMED (IE: THE HAND CASINGS) SHOULD BE RIGGED WITH AUTOMATIC WEIGHTS, OR PAINTED BY HAND AS THEY DON’T MOVE ROBOTICALLY
So, you have your part that you want to rig like this (the same as if you parented with automatic weight groups, except with empty groups chosen instead), I just made a quick model, but you would do this for each of those joined Freddy segments.
Then go into edit mode, hit “a” to select all the vertices in your part.
Over on the right you can see where it says “vertex groups” and then it has “bone” inside it.
That “bone” is the bone that you can see inside the cube.
Your model will have MANY bones likely, and so you want to then navigate to the bone that corresponds with the part you have selected. For example, if you are rigging the left foot, then look for the left foot bone. Select it in the vertex groups menu and then click “assign”.
Essentially what you are doing is, selecting all vertices in the part, selecting which bone you want to rig it to in the vertex groups menu, and then assigning all of those vertices you have selected a weight of 1 (maximum weight.) Since you have the whole part selected, the entire thing has an even weight. Now you just do that for every Freddy segment you have. (Make sure to test the movement after the first couple times you do it to make sure it’s correct.)
Once you’re done rigging and everything works out, THAT is when you go through joining the entire model and separating by material. After you do that, the rig should still work, and you should be able to import it correctly into Roblox.
Ofc I’m always happy to help, and if you have any questions, or if I displayed something incorrectly, please let me know and I’ll do my best to correct it.