Introducing Avatar Importer to Studio

R15 has always felt like a prototype for vertex deformation given how it uses the same body type stuff as Mario did in SM64, so I really hope it evolves into a vertex deformation based system.

2 Likes

A cool feature that was really needed. This will really improve the workflow of using custom rigs and animations from external programs.

3 Likes

wow iā€™ve always wanted to be able to import custom characters to roblox but it seemed way to difficult to do but this will streamline the process a whole ton

2 Likes

Very cool stuff! This makes my whole mocap process much easier.

2 Likes

Theyā€™d probably need to make a new rigging system to go along side it.

3 Likes

Oh I donā€™t doubt that, I was just saying R15 felt like a prototype of that to me and I was kinda bummed when it ended up being what it was.

2 Likes

I actually canā€™t wait to see what the community does with thisā€¦ GREAT feature!!!

2 Likes

OMG! Thank you so so much! I actually needed this! This made it 100% easier.

1 Like

Nice!

Creating custom characters seems more convenient now!

Itā€™s amazing how quickly Roblox is moving.

2 Likes

Could we get a bit more information on the ā€œCustomā€ character import options and the limitations if any? Like what should we include. There was guidelines for current humanoid hierarchiesā€¦ but for a custom model is anything necessary? Say a HumanoidRootPart? What if your custom avatar isnā€™t a Humanoid? Do I still need to include it? It feels like ā€œCustomā€ which IMO is the biggest feature in this update has been released as an after thought without the proper information.

I ask, because Iā€™d like to create NPCs using this new Avatar Importer which at this point includes a shark.

3 Likes

I donā€™t think iā€™ll need this in the near future, but when i do, it sure will be handy.

1 Like

Thanks for the feedback, @T0ny. We will continue to update our documentation and add a more in-depth guide for using the ā€œCustomā€ option.

We currently only support non-deforming ā€œstandard meshesā€ in your rig hierarchy.
Your rig should start at the top with a joint named ā€œRootā€ (which represents the joint to the HumanoidRootPart)

Each joint under ā€œRootā€ represents a new joint connected to the HumanoidRootPart.
For each joint in your rig, you should create a matching geometry. You can add a ā€œ_Geoā€ suffix and it will be stripped from the MeshPart name after importing.

Hereā€™s a visual example of what a simple custom rig might look like in Maya:
image

You do not need to provide a HumanoidRootPart, but it will be created when your rig is imported.
A Humanoid object is also added to the rig on import but youā€™re able to remove it afterwards if you wish to have a non-Humanoid rig.

4 Likes

Thanks for the clarification. In Blender Iā€™m using empties to represent the Hierarchy.

image

You said, if I didnā€™t want a HumanoidRootPartā€¦ I could just remove it afterwardsā€¦ I have been doing that, but in this case ā€œFinā€ gets a Motor6D linked to the HumanoidRootPart which when deleted breaks the model. I usually delete Finā€™s Motor6D after I delete the HumanoidRootPart, though Iā€™m unsure if thatā€™s the proper process.

I have another post on the animation editorā€¦ which indicates that the animation editor fails to pickup any more than 3 Motor6Ds on my model.

Edit:

So I got it workingā€¦ I believe, The HumanoidRootPart is required in custom models as well?

4 Likes

This is great and all, but could we perhaps get an example .blend file and a maya file to see what the perfect hierarchy and naming is for a custom model? Iā€™ve been trying to rig my custom model for hours in blender, but whenever I import it, it always messes up the Motor6Ds. I feel like without a good example this system isnā€™t very user friendly at all, and many could benefit from this if a practical example was provided.

5 Likes

If youā€™re confused by the documentation, hereā€™s a tremendously terrible rig I threw together in blender while trying to figure out how everything needs to be organized.

Iā€™m using Empties to organize the hierarchy and Meshes to contain the geometry. Extra attachments presumably would also be Empties suffixed with _Att. Meshes should have no initial transformations / rotations / scaling - move things after youā€™ve parented them.

All of the blender objects you need to care about are included in this image:

image
HumanoidRootPart is placed at the location of the Root Empty:

boi.blend (484.1 KB)

10 Likes

Hmmmm, this looks like a fun feature to mess with.

2 Likes

After experimenting a bit, there seems to be a limit to how many triangles a model can have, which is 100k. But in my game, I use models that can easily go up to 360k tris, 200k for the ones lightened as much as we could.

Is there any way this limit could be raised to something like 500k, and just have an option or a warning for models over 100k? This tool would be a life saver but itā€™s just unusable in my situation.

Edit: read the number wrong, the limit is 10k triangles. Isnā€™t that a bit low considering the kinda models games more focused on details and visuals tend to use? It sounds barely powerful enough to handle Rthro models.

5 Likes

This is very unnecessary. I canā€™t even fathom a model for a game platform like Roblox that requires that many triangles. Hell, I canā€™t fathom a model that requires that many for AAA software. Iā€™m not talking about renders either (where these numbers make sense), I mean specifically for a game.

For reference, I just made a mesh thatā€™s 500k triangles and it takes up 27.5 Mb of data for a single asset. Low-end devices crash (or at least become unplayable) at around 600-700 Mb of data use. You canā€™t use 4.58% of your gameā€™s total memory use on a single asset and maintain a good performance for your user in a game of hundreds of assets.


You donā€™t need to subdivide your objects to that insanely high amount, or use it to simulate some kind of normal map (just throwing guesses as to why youā€™d even think this was necessary), just use a texture at that point.

3 Likes

The guy wants to hit roblox limits, i like that. I have hit 2M triangles in a single game before crashing.

1 Like

The Triangles performance stat accounts for instanced objects as well, so this is unrelated as instancing optimizes games incredibly well.

Weā€™re specifically discussing polygon counts on single, unique objects that - while instanced - still requires the player to have to download each mesh uniquely.

2 Likes