Every Roblox user is represented by a customizable character called an avatar. Avatars are character models with many specialized features that allow users to interact with the world and customize themselves with a wide range of clothing and accessories from the Marketplace.
Custom avatars are first created in 3D modeling programs, such as Blender or Maya, before importing into Studio. To create a custom Roblox avatar character for your own experience, it’s important to start with the following:
Components of an Avatar
All avatar character models are made up of several fundamental components that provide users the functionality and flexibility to interact with their world. Many of these components are never made visible to the user, but these components enable the many powerful avatar features that enhance social and environmental interactions. When creating avatar characters, all of these components are typically created first in your modeling software and then converted to their appropriate Roblox Studio instance on import.
Each avatar character is made up of the following rendered and non-rendered components:
Roblox avatar characters are made up of 15 body parts, pieces of geometry that define the shape and contours of your avatar character. In Studio, these geometries are represented as MeshPart objects and are nested under a single Model.
Textures are image files that define the surface appearance of your character. You can create textures using a texture painting program or a 3D modeling software. In Studio, you must import textures as image files and access them through the SurfaceAppearance instance, or set as a MeshPart.TextureID property.
An armature allows each character to articulate its limbs and move naturally through the environment. Often referred to as bones or joints, this rigging character information includes skinning data which allows connected limbs, like the knees or elbows to bend organically. In Studio, each bone of the character armature is represented by Bone objects that connect the character MeshPart objects together.
Face Animation Data
Facial animation data allow each character to use global facial expressions. Each character includes facial bones and skinning, animation timeline data, and mapped pose data that allows it. In Studio, these facial animation elements are represented by a FaceControls instance.
This outer cage sets the invisible surface on which layerable accessories, such as clothing, will stretch and fit over the body. These cage meshes allow clothes to fit over models of different shapes and sizes without having to remodel the clothing item. In Studio, outer cage mesh objects are represented by a WrapTarget instance.
If you are caging your own non-template character model, it’s important to use one of Roblox’s body cage project files to ensure you are using a Roblox standard cage mesh. Removing or adding vertices from this standard mesh can cause issues with clothing fit and import.
Attachment points define where rigid 3D accessories and equipables attach to the character’s body. These are not rendered to the end-user but are represented as sphere geometries in 3D modeling softwares and, when imported into Studio, these geometries are created as Attachment instances using the standardized names.
When wearing layered clothing, the clothing isn’t attached directly to the attachment, but clothing does reference the associated attachment point during ragdoll and dismemberment animations.
When designing an avatar model, you must export all of the avatar components in a single .fbx for import into Studio. Since 3D creation isn’t a linear process and always requires reiteration and testing, the process of creating an avatar character model can differ between individuals and various creation workflows.
In general, the creation process follow these typical workflows:
There are a variety of resources available for creators of all backgrounds to get started with character creation.
If you are interested in specific avatar creation topics, use the following table to find guides and resources that best match your needs: