update rules

This commit is contained in:
Joe 2026-02-02 14:05:11 -06:00
parent 4c390fdd37
commit d5522b2fef
8549 changed files with 11783 additions and 1888 deletions

View file

@ -0,0 +1,277 @@
---
title: Accessory Fitting Tool
description: The Accessory Fitting Tool lets you adjust and test custom accessory models on different body types, animations, or custom assets.
labels: Article,Engine,Cloud API
---
The **Accessory Fitting Tool** (AFT) is a built-in Studio tool that allows you to test your custom models on multiple combinations of character bodies, animations, and accessories before generating the final `Class.Accessory` object. When testing your accessories, you can make minor fit and positional changes to ensure that you get the best result possible.
The AFT automatically handles the conversion of the custom `Class.Model` or `Class.MeshPart` based on the user menu selections, allowing you to create **layerable clothing accessories** or **rigid accessories**. After generating your accessory, the AFT creates the correct `Class.Accessory` object hierarchy with any updated fit edits, sets the appropriate `AccessoryType` property, and generates any required body attachment points.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Layered-Example.png" />
<figcaption>Test and edit the cages of your layered clothing assets.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Rigid-Example.png" />
<figcaption>Test and edit the orientation and placement of your rigid assets.</figcaption>
</figure>
</GridContainer>
<Alert severity = 'warning'>
If you are intending to sell your accessory on the Marketplace, make sure your accessory model design adheres to the [Marketplace Requirements](../../marketplace/marketplace-policy.md).
</Alert>
## Set up accessories
The first stage of the fitting workflow allows you to configure the type of accessory to correctly populate the correct fitting tools and generate the appropriate accessory object. When selecting the type of accessory, the following options are available:
- **Clothing**: Layerable accessories that use an inner and outer cage to stretch and wrap around a body and other clothing items.
- **Accessory**: Rigid accessories that attach to a specific attachment point of a character and remain static in that position and orientation.
Before using the tool, ensure that you have the `Class.MeshPart` or `Class.Model` you intend to create into an accessory selectable in your project. As a reference, you can test the AFT using a reference [clothing](../../assets/accessories/reference-files/Additional-FBX-assets.zip) or [rigid accessory](../../assets/accessories/reference-files/Bow-rigid.rbxm) custom model.
To setup your accessories:
1. Ensure that your custom asset is selectable in your project. See [3D Importer](../../art/modeling/3d-importer.md) for instructions on importing a custom model into your experience.
2. In the toolbar's **Avatar** tab, click **Accessory** to open the AFT.
3. Select the **Part** field and click on the `Class.MeshPart` or `Class.Model` in the viewport that you intend to preview. The text field populates with the name of the object selected.
<img src="../../assets/accessories/accessory-fitting-tool/MeshPart-Selected.png" />
4. Click **Next**. The Asset Type menu screen displays.
5. Select the correct Asset Type for your accessory. An additional dropdown displays for a specific `AssetType` selection.
<img src="../../assets/accessories/accessory-fitting-tool/Accessory-Setup-Menu.png" />
6. Use the dropdown to select the specific type of accessory to preview. This sets the correct `AssetType` and attachment points when creating the accessory.
<img src="../../assets/accessories/accessory-fitting-tool/Asset-Type-Dropdown.png" />
7. Select the expected scaling of an accessory. This only affects rigid accessories if the specific body part has a different `AvatarPartScaleType` `Class.StringValue` object. This does not affect clothing accessories.
1. **Classic**: Sets the scaling of the accessory to classic R15 proportions.
2. **Proportions Slender**: Sets the `AvatarPartScaleType` value to `ProportionsSlender`.
3. **Proportions Normal**: Sets the `AvatarPartScaleType` value to `ProportionsNormal`.
8. Click **Next** to continue. A preview panel and workspace tools display.
<img src="../../assets/accessories/accessory-fitting-tool/Preview-Display.png" />
## Test accessories
After you provide the initial accessory details, the tool displays a preview panel. With the preview panel, you can test how your accessory looks on different combinations of character bodies, clothing items, animations, or even custom assets in your experience.
<Alert severity = 'info'>
At any point of the testing process, you can [initiate a playtest](../../studio/testing-modes.md#playtesting) to launch an instance of your experience where your avatar is replaced with the currently selected character body and accessories from the AFT.
</Alert>
If you notice any fitting issues with your accessory, you can use the [edit](#edit-accessory-fit) tools to make minor adjustments to your accessory.
### With different bodies
You can select different bodies to test the fit and wear of your accessories. The AFT supplies several default character models you can use to ensure your accessories fit as expected.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Body-Example-1.png" />
<figcaption>Bazooka Bones character preview</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Body-Example-2.png" />
<figcaption>Goblin character preview</figcaption>
</figure>
</GridContainer>
To test your accessory with a different body:
1. In the tool's catalog, navigate to **Avatars** > **Default**.
2. Click one of the character model tiles. The preview loads with the selected character model.
1. If two character tiles are selected, click a selected tile to deselect it.
2. In the character preview, **click** and **drag** to rotate and **right-click** to pan to inspect your character.
### With different clothing
You can select different clothing accessories to test the fit and layering of your caged accessories. The AFT supplies several default character models you can use to ensure your accessories fit as expected.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Clothing-Example-1.png" />
<figcaption>Goblin character preview with reference clothing</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Clothing-Example-2.png" />
<figcaption>Magma Fiend character preview with reference clothing</figcaption>
</figure>
</GridContainer>
To test your accessory with a different accessory:
1. In the tool's catalog, navigate to **Clothing** > **Default**.
2. Click one or more of the available catalog items. The character preview loads with the selected clothing accessory.
1. In the catalog, click an active tile to deselect the asset.
2. In the character preview, **drag** and **drop** the accessory boxes to change the layer order.
3. In the character preview, **click** and **drag** to rotate and **right-click** to pan to inspect your character.
### With animations
You can select different animations to test the movement of your accessory asset. The AFT supplies several default animation assets you can use to ensure your accessories fit as expected when a model is performing various movements.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Animation-Example-1.png" />
<figcaption>Walking animation reference</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Animation-Example-2.png" />
<figcaption>Shy emote reference</figcaption>
</figure>
</GridContainer>
To test your accessory with different animations:
1. In the tool's catalog, navigate to **Animations** > **Default**.
2. Click one of the animation asset tiles.
1. In the catalog, press the play and pause icon to control the playback.
2. In the character preview, **click** and **drag** to rotate and **right-click** to pan to inspect your character.
### With custom assets
You can add custom character models, clothing accessories, and animations that are part of your workspace to the AFT preview catalog. Use this functionality to verify that your accessory works with any other custom models or accessories they may interact with in your experience.
To add custom assets:
1. Click the ⊕ icon next to the catalog search. A prompt appears, allowing you to choose a supported object.
<img src="../../assets/accessories/accessory-fitting-tool/Custom-Asset-Icon.png" />
2. Select any `Class.Accessory`, `Class.Model`, `Class.MeshPart`, `Class.Animation` or `Class.Folder` within the 3D viewport or **Explorer**. The asset displays in the corresponding **Custom** category.
1. If no selection is made, click the tool panel again to exit the prompt.
<img src="../../assets/accessories/accessory-fitting-tool/Custom-Asset.png" />
## Edit accessory fit
The AFT populates different fitting tools depending on the type of accessory being created.
### Layered clothing
When editing clothing items, the following tools populate in the viewport:
<table>
<thead>
<tr>
<th>Icon</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<th><img src="../../assets/accessories/accessory-fitting-tool/Cage-Editing-Icon.png"/></th>
<th>Toggles the [Cage Editing](#cage-editing) interface in the viewport for making minor inner or outer cage changes to your clothing. </th>
</tr>
<tr>
<td><img src="../../assets/accessories/accessory-fitting-tool/Autoskin-Icon.png"/></td>
<td>Toggles [auto-skinning](../../art/accessories/automatic-skinning-transfer.md#enabling-automatic-skinning-transfer) between `EnabledPreserved` and `EnabledOverride`. Depending on the asset and skinning quality, auto-skinning may provide better results.<br /><br />EnabledPreserved uses the asset's original skinning data applied in a modeling software. <br />`EnabledOverride` transfers skinning data from the avatar character instead of using the asset's original skinning data.<br /></td>
</tr>
<tr>
<td><img src="../../assets/accessories/accessory-fitting-tool/Expand-Button.png"/></td>
<td>Displays a button to **Bring Mannequin in View** which centers mannequin in front of the camera.</td>
</tr>
<tr>
<td><img src="../../assets/accessories/accessory-fitting-tool/Center-Mannequin.png" /></td>
<td>Centers the camera on the mannequin.</td>
</tr>
</tbody>
</table>
#### Cage editing
When the Cage Editing interface is enabled, additional tools display in the viewport. The viewport also displays the vertices of the selected cage over the mannequin, allowing you to make positional edits to the cage and change how a clothing item can fit on a body.
<img src="../../assets/accessories/accessory-fitting-tool/Cage-Editing-Example.png" />
<Alert severity = 'warning'>
You can use these Cage Editing tools for minor to moderate cage edits. If your asset requires major fit or sculpting changes, edit the cage meshes directly in a third-party modeling software, such as Blender or Maya, and import the updated model into Studio.
</Alert>
Use the following cage editing tools to help visualize and edit any cage vertices:
<table>
<thead>
<tr>
<th>Icon</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<th><img src="../../assets/accessories/accessory-fitting-tool/Cage-Editing-Icon.png"/></th>
<th>Toggles the selection for the inner and outer cage vertices. When selected, the vertices of that specific cage are available to edit. </th>
</tr>
<tr>
<td><img src="../../assets/accessories/accessory-fitting-tool/Autoskin-Icon.png"/></td>
<td>**Falloff Distance** sets the radius of influence when editing vertices of the cage mesh. When editing a cage vertex, nearby vertices follow the changes for efficient cage editing. <br /> <br />A higher Falloff Distance applies influence to vertices further away from the origin.</td>
</tr>
<tr>
<td><img src="../../assets/accessories/accessory-fitting-tool/Expand-Button.png"/></td>
<td>Displays additional buttons: <ul><li>Bring Mannequin in View - centers camera on the mannequin. </li><li>Reset Inner/Outer Cage - resets any changes made to the selected cage.</li></ul></td>
</tr>
<tr>
<td><img src="../../assets/accessories/accessory-fitting-tool/Center-Mannequin.png" /></td>
<td>Use the slider to set the opacity of the mesh or the cage vertices. Setting the opacity allows you to better see and access certain vertices and angles of your clothing item.</td>
</tr>
</tbody>
</table>
To make changes to the vertices of the currently selected cage:
1. In the Studio toolbar, disable **Move** snapping. This enables you to make detailed changes to a vertex's position.
2. Select a vertex and use the **Move** tool to reposition. Changes to the cage apply immediately and display in the preview panel.
1. Use the opacity sliders to better visualize the changes to your cage.
2. Set the **Falloff Distance** depending on the number of vertices being adjusted at once.
<img src="../../assets/accessories/accessory-fitting-tool/Edit-Vertex-Example.png" />
### Rigid accessories
When fitting rigid accessories, a bounding box appears around the mannequin indicating the possible placement of that specific type of accessory. You can **position**, **rotate**, and **scale** objects within this bounding box to ensure your accessory fits on different character models.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Bounding-Box-Example-1.png" />
<figcaption>Adjust your rigid accessory fit within the bounding box.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Bounding-Box-Example-2.png" />
<figcaption>If the accessory is outside the appropriate space, the bounding box turns red.</figcaption>
</figure>
</GridContainer>
### Create accessory
You can create the accessory at any time. The tool applies any fit changes and generates the appropriate Accessory instance in the workspace depending on the type of accessory selected and any configurations applied.
When you are ready to generate your accessory, select **Generate MeshPart Accessory**.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/LC-Hierarchy.png" />
<figcaption>Hierarchy generated for layered clothing.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/accessory-fitting-tool/Rigid-Hierarchy.png" />
<figcaption>Hierarchy generated for rigid accessories.</figcaption>
</figure>
</GridContainer>
With an accessory successfully created, you can now try the following:
- Equip the accessory on an avatar-ready character by drag and dropping the accessory on an existing model, or using [HumanoidDescription](../../characters/appearance.md#manually-modify-appearance).
- Save the accessory as an [avatar asset](../../projects/assets/index.md#for-avatars) for use in an experience later.
- If you meet certain account requirements, you can [upload your asset](../../marketplace/publish-to-marketplace.md) for moderation and start selling it on the Marketplace.

View file

@ -0,0 +1,183 @@
---
title: Automatic Skinning Transfer
description: Automatic Skinning Transfer can create deformation data for character accessories without manual skinning.
---
**Automatic Skinning Transfer** allows layered clothing and facial accessories to deform accurately along with the character model it's attached to without having to skin the accessory itself. Instead of the complex task of manually [rigging and skinning](../../art/modeling/rigging.md) models in 3D modeling software, you can use this feature to transfer or generate skinning data to the accessory. When using Automatic Skinning Transfer, the Roblox Engine creates and applies skinning at runtime.
**No skinning of accessory geometry is required to use Automatic Skinning Transfer**. In fact, auto-skinned accessories work well with most characters they're attached to, even if those characters have a different number of joints, bones, or use a different kind of skinning, and the accessories move accurately with characters as they animate.
<img src="../../assets/avatar/dynamic-heads/creating-face-accessories/Automatic-Skinning-Transfer-Intro.jpg" width="70%" />
Skinning is still an important concept for character creation, and if you're creating custom characters, you may want to apply skinning data to the model to create a character with more natural looking poses and animations. For information on how to skin a mesh, see [Skin a humanoid model](../../art/modeling/skin-a-humanoid-model.md).
<Alert severity="info">
Because the skinning transfer process uses a character's outer cage to help calculate skinning data to apply onto the accessory, it's important that all [layered clothing requirements](../../art/accessories/project-files.md) are still met when creating accessories.
</Alert>
## Enable Automatic Skinning Transfer
To enable the Automatic skinning transfer process, you must enable the `Class.WrapLayer.AutoSkin|AutoSkin` property within the `Class.WrapLayer` instance of the layered `Class.Accessory` you want to automatically skin, then set it to one of the following values:
- `Disabled`: Disables the Automatic Skinning Transfer process. This is the default value.
- `EnabledOverride`: Enables the Automatic Skinning Transfer process, and allows it to override any existing skinning information found on the accessory at runtime.
- `EnabledPreserve`: Enables the Automatic Skinning Transfer process, but doesn't allow it to override any existing skinning information found on the accessory at runtime. If there isn't any skinning to maintain, the Automatic Skinning Transfer process automatically creates new skinning data.
When there isn't any skinning data on the accessory, or if you choose to override any existing skinning data associated with the accessory, the Roblox Engine calculates skinning data from the character's geometry and cages, then the new skinning data and rig associated with the accessory drives the accessory's deformations and motions in sync with the source geometry itself.
## Best practices
While Automatic Skinning Transfer often works better than manual skinning, there are some best practices to reduce unexpected behavior with the accessory skinning. Like all modeling processes, constantly test your layered clothing and facial accessories on different avatar types to achieve the results you want.
### Special skinning transfer joints
Automatic skinning transfer may not work well for certain detailed accessory types, like eyelashes or eyebrows. To get a more controlled skinning transfer result, you have the option to skin accessory geometry to one of two specially named joints: `RBX_Leader` and `RBX_Follower`.
<Alert severity = 'info'>
It's best to create these joints/bones directly beneath the Root joint in your hierarchy for simplicity and clarity. These joints/bones won't be detected as a part of your character model's R15 rig on import.
</Alert>
Any vertices skinned to `RBX_Leader` will undergo the same transfer process that exists today. However, any vertices skinned to `RBX_Follower` will actually transfer based on their nearest leader vertex. This allows for better results in situations like an eyelash where the tip of an eyelash strand would normally transfer to somewhere on the brow area, rather than follow the base of the eyelash strand when moving.
For eyelashes, good candidates for RBX_Leader are the ones that are intended to sit right on the eyelid of the character. The remaining vertices can be skinned to RBX_Follower.
<GridContainer numColumns="2">
<figure>
<img alt="Screenshot of vertices assigned as leader." src="../../assets/avatar/dynamic-heads/creating-face-accessories/Vertices-Group-Leader.png" />
<figcaption>Vertices of an eyelash assigned to a RBX_Leader bone vertex group.</figcaption>
</figure>
<figure>
<img alt="Screenshot of vertices assigned as follower." src="../../assets/avatar/dynamic-heads/creating-face-accessories/Vertices-Group-Follower.png" />
<figcaption>Vertices of an eyelash assigned to a RBX_Follower bone vertex group.</figcaption>
</figure>
</GridContainer>
For eyebrows, good candidates for RBX_Leader are vertices along the edges that span the browline.
<GridContainer numColumns="2">
<figure>
<img alt="Screenshot of vertices assigned as leader." src="../../assets/avatar/dynamic-heads/creating-face-accessories/Eyebrows-Follower-Vertices.png" />
<figcaption>Vertices of an eyebrow assigned to a RBX_Leader bone vertex group.</figcaption>
</figure>
<figure>
<img alt="Screenshot of vertices assigned as follower." src="../../assets/avatar/dynamic-heads/creating-face-accessories/Eyebrows-Leader-Vertices.png" />
<figcaption>Vertices of an eyebrow assigned to a RBX_Follower bone vertex group.</figcaption>
</figure>
</GridContainer>
In Blender, user the **Object Data Properties** > **Vertex Groups** to manage and view your vertex group assignments.
<img alt="Screenshot of properties panel with vertex group assignments" src="../../assets/avatar/dynamic-heads/creating-face-accessories/Vertices-Group-Assign.png" />
<Alert severity = 'info'>
In Blender, vertex groups automatically created after you make a bone object. This allows you to quickly set vertices to a specific bone vertex group.
</Alert>
<GridContainer numColumns="2">
<figure>
<video src="../../assets/avatar/dynamic-heads/creating-face-accessories/Vertices-Transfer-Off.mov" controls width="100%"></video>
<figcaption>Eyelashes without transfer joints. Notice how the upper eyelashes near the bridge of the nose doesn't follow the eyelids as expected.</figcaption>
</figure>
<figure>
<video src="../../assets/avatar/dynamic-heads/creating-face-accessories/Vertices-Transfer-On.mov" controls width="100%"></video>
<figcaption>Eyelashes with transfer joints. All eyelashes follow the leading vertices closest to the eyes.</figcaption>
</figure>
</GridContainer>
No additional work is needed in Studio to support this method. If your accessory is set to `Class.WrapLayer.AutoSkin.EnabledOverride` and these joints exist with vertices assigned to them, then this skinning transfer variation will be in effect.
If you wish to upload an accessory using these joints as a UGC item, there are a few rules to be aware of:
- Vertices cannot be partially weighted to these joints. If you want to use them you must skin the vertex to the joint with a weight of `1.0`.
- If these joints are present in the mesh, then the accessory must be set to `WrapLayerAutoSkin.EnabledOverride`.
- Body part meshes containing these joints will be rejected by validation.
### Modify character cages
<Alert severity = 'error'>
You can't upload assets with a partial cage to the Marketplace. You may use partial cages for assets intended for in-experience use, but the Marketplace validation process will reject assets with partial cages.
</Alert>
You can modify character cages for the accessories to deform accurately to the expected character surfaces using the Automatic Skinning Transfer. For example, auto-skinning may cause layered clothing to deform based on an incorrect body part because the transfer process is based on the closest distance between the accessory and its inner cage. In the following instance, a beard accessory was modeled using a blocky-type full-body cage. This causes the beard to deform incorrectly because parts of the beard are closer to the character cage's upper chest instead of the chin:
<img src="../../assets/avatar/dynamic-heads/creating-face-accessories/Full-Body-Cage.png" width="60%" />
<video controls width="60%" src="../../assets/avatar/dynamic-heads/creating-face-accessories/videos/AutoSkin-With-Full-Cage.mp4">
</video>
To prevent a layered accessory from using skinning data from an undesired area of the character's geometry, you can model your asset on a different character mannequin cage. For example, a blocky-type character will struggle with a beard skinning to the torso, but a character with an actual neck, like a humanoid, won't have this problem.
Alternatively, you can remove parts of the outer cage that the layered accessory shouldn't be skinned to. **This is not a valid workflow for assets intended for the Marketplace**, but you can use this for in-experience assets or assets for other use. For example, the following image shows how the outer cage was modified so that it only includes the head geometry. With this improvement to the outer cage, when you automatically transfer skinning data, the beard and partial cage now correctly transfer skinning only from the head geometry.
<img src="../../assets/avatar/dynamic-heads/creating-face-accessories/Head-Cage-Only.png" width="60%" />
<video controls width="60%" src="../../assets/avatar/dynamic-heads/creating-face-accessories/videos/AutoSkin-With-Specific-Cage.mp4">
</video>
It's important to note that you could also solve the previous example's deformation issue by using a different cage altogether. For example, if you use a more humanoid cage with more space between the chest and the chin, the beard is closest to the head instead of being near the chest or neck area, so the Automatic Skinning Transfer wouldn't transfer skinning data from those regions.
<img src="../../assets/avatar/dynamic-heads/creating-face-accessories/Beard-Humanoid-Cage.jpg" width="60%" />
By modifying different regions of the character's cage, you can ensure that your layered clothing and facial accessories deform in relation to the correct region of the body or head, such as modifying the character model's arms so dresses don't incorrectly attach to them while a character is running, or modifying pants that incorrectly map to feet. The following video demonstrates how a jacket's collar incorrectly moves with the head, as the layered clothing is deforming in the collar region, which is closest to the head portion of the cage. To resolve this, you can remove the head portion of the cage so that the jacket won't incorrectly deform in relation to the head at all. Instead, it will deform in relation to the shoulder region, which is much more appropriate for this article of clothing.
<video controls width="60%" src="../../assets/avatar/dynamic-heads/creating-face-accessories/videos/Jacket-Collar-Issue.mp4">
</video>
<img src="../../assets/avatar/dynamic-heads/creating-face-accessories/Jacket-Cage-Comparison.jpg" width="60%" />
<Alert severity="info">
During the asset creation process, it's important to verify what skinning solution works best for your design by testing your individual assets on multiple models and animations. You can always skin your assets manually and choose to use the Automatic Skinning Transfer later.
</Alert>
### Different accessory categories
Automatic skinning transfer may not work well for certain accessory categories, such as hat, and glasses-type accessories. For example, hat or glasses accessories might introduce deformation in areas that should typically be rigid. In general, those accessories should remain rigid, and you shouldn't associate any skinning data with them.
For a summary of suggested `Class.WrapLayer.AutoSkin` parameters for different accessory categories, see the following table:
<table>
<thead>
<tr>
<th>Accessory Category</th>
<th>Suggested Parameter</th>
</tr>
</thead>
<tbody>
<tr>
<td>Beard</td>
<td>`EnabledOverride`</td>
</tr>
<tr>
<td>Eyebrow</td>
<td>`EnabledOverride`</td>
</tr>
<tr>
<td>Eyelash</td>
<td>`EnabledOverride`</td>
</tr>
<tr>
<td>Hair</td>
<td>`Disabled`</td>
</tr>
<tr>
<td>Hat</td>
<td>`Disabled`</td>
</tr>
<tr>
<td>Glasses</td>
<td>`Disabled`</td>
</tr>
<tr>
<td>Shirt</td>
<td>`EnabledOverride` or `EnabledPreserve`</td>
</tr>
<tr>
<td>Pants</td>
<td>`EnabledOverride` or `EnabledPreserve`</td>
</tr>
<tr>
<td>Shoes</td>
<td>`EnabledOverride` or `EnabledPreserve`</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1,62 @@
---
title: Body scale and proportions
description: Avatars come in 3 different standard sizes, Classic, Rthro, Rthro Slender.
---
Roblox supports three common avatar sizes, known as **Classic**, **Rthro**, and **Rthro Slender**. This standard sizing helps keep avatar characters consistent, allowing developers to create experiences and environments that can fit commonly sized character models.
When modeling rigid accessories, like a helmet that contours around a character's head, it's important to use a mannequin to help ensure your proportions fit. The asset provided in this tutorial example was originally modeled using **Rthro** proportions. Layered clothing, such as clothing, don't require body scale specification, since layered assets automatically stretch and deform over any body scale.
If you are modeling your asset, visit the [references resources](../../avatar/resources.md#references) to download any of the following mesh mannequin:
<GridContainer numColumns="3">
<figure>
<img src="../../assets/art/resources/Body-Scale-Classic.png" />
<figcaption>
Classic blocky body scale. <br /><br /> Roughly 4.75 studs tall.
</figcaption>
</figure>
<figure>
<img src="../../assets/art/resources/Body-Scale-Rthro-Normal.png" />
<figcaption>
Normal body scale. <br /><br /> Roughly 5.75-6.5 studs tall, with wider shoulders and narrower hips.
</figcaption>
</figure>
<figure>
<img src="../../assets/art/resources/Body-Scale-Rthro-Slender.png" />
<figcaption>
Slender body scale. <br /><br /> Roughly 5.25-6.25 studs tall, with narrower shoulders and wider hips.
</figcaption>
</figure>
</GridContainer>
See the [accessory apecifications](../../art/accessories/specifications.md#body-scale) and the [body specifications](../../art/characters/specifications.md#body-scale) for specific range values and other geometry requirements.
## AvatarPartScaleType
Roblox represents body scale in the engine by an `AvatarPartScaleType` `Class.StringValue` object within each avatar character part and associated accessory. In most cases, asset creators do not need to directly access or modify this value object since tools, such as the [Accessory Fitting Tool](../accessories/accessory-fitting-tool.md), automatically generate the appropriate value object on accessory creation.
In cases where you may need to identify the current body scale of a body part or accessory, the following table defines the `AvatarPartScaleType` value for each type of body size. When importing your model, use the 3D Importer's [Rig Scale](../modeling/3d-importer.md#rig-general) to automatically apply a scale to your icustom asset.
<table>
<thead>
<tr>
<th>Body Scale</th>
<th>AvatarPartScaleType value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Classic</td>
<td>`Classic`</td>
</tr>
<tr>
<td>Normal</td>
<td>`ProportionsNormal`</td>
</tr>
<tr>
<td>Slender</td>
<td>`ProportionsSlender`</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1,276 @@
---
title: Caging best practices
description: In-depth description and images of various caging best practices for layered clothing.
---
<iframe width="800" height="450" src="https://www.youtube-nocookie.com/embed/QwZaA9Gc-WQ" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br /><br />
Caging is a complex process required to define the inner and outer surface of a layered clothing item. Properly caged assets allow your clothing items to stretch and layer in combination with each other. Cages that are improperly configured can lead to cosmetic issues with the look and feel of your clothing item.
<GridContainer numColumns="3">
<figure>
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-D.png" width="100%" alt=""/>
<figcaption>A properly configured cage typically includes a tight layering of the inner cage, clothing mesh, and the outer cage.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-B.png" width="100%" alt=""/>
<figcaption>The t-shirt stretches and fits naturally over a base body.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-C.png" width="100%" alt=""/>
<figcaption>Other layered objects, such as a jacket, should stretch and fit naturally over a target body and any other caged assets.</figcaption>
</figure>
</GridContainer>
In extreme cases, improper cages may interfere with gameplay or social elements on Roblox. If your asset includes improper cages, Roblox may prevent you from uploading them to the Marketplace and may remove existing assets with improper cages from the catalog.
<Alert severity = 'warning'>
Roblox is enforcing a stricter set of validation rules to improve the overall quality of layered clothing accessories in the Marketplace.
</Alert>
The following [best practices](#best-practices) and [common issues](#common-issues) is useful for 3D clothing creators of all levels and can elevate the quality of your clothing creations and save time with troubleshooting.
## Best practices
Always start any caging work with one of Roblox's [provided caging templates](../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip). These templates include an inner cage and outer cage with properly set UVs.
<Alert severity = 'error'>
You should not edit the cage UVs since this will introduce visual artifacts.
</Alert>
When caging your clothing items, use these important universal guidelines:
- Any clothing mesh positioned between the inner cage and outer cage will be deformed by the layering system. This is the typical configuration for nearly all layered clothing assets.
<GridContainer numColumns="3">
<figure>
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-D.png" width="80%" alt=""/>
<figcaption>The t-shirt mesh fits snugly between the inner and outer cage.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-B.png" width="80%" alt=""/>
<figcaption>The correctly configured t-shirt naturally stretches over a target body.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-C.png" width="80%" alt=""/>
<figcaption>Other layered assets should stretch and fit naturally over a target body and any equipped caged assets.</figcaption>
</figure>
</GridContainer>
- You must follow the [naming conventions](../../art/accessories/clothing-specifications.md#cage-meshes) for the clothing geometry and the cage.
- Many caging issues start from incorrect outer cage setup. See [working with outer cages](#working-with-outer-cages) for specific details.
- Do not modify areas of your cage that are unrelated to the clothing item you are caging. For example, do not modify the inner or outer cages of the lower leg areas when caging a t-shirt.
- Review any specific best practices for [form-fitting clothes](#caging-form-fitting-clothing), [bulky clothes](#caging-bulky-clothing-items), and [clothing with protrusions](#caging-protrusions).
- If troubleshooting any issues, review [common issues](#common-issues) to help identify problematic clothing items or specific validation errors.
### Working with outer cages
As long as the clothing mesh properly fits **over the inner cage** and **under the outer cage**, you can edit the outer cage in various ways depending on the final visual effect you intend to achieve.
When working with the outer cage, use the following guidelines when possible:
- Move vertices outwards in the normal's direction.
<img src="../../assets/accessories/caging-best-practices/8-Symmetry.png" width="60%" alt=""/>
- Keep the outer cage as close to the clothing as possible.
- Work symmetrically as much as possible to save time.
- Do not alter the UVs in any way.
- Do not stack your vertices.
<figure>
<img src="../../assets/accessories/caging-best-practices/9-Stacking-Vertices.png" width="100%" alt=""/>
<figcaption>Two vertices stacked directly over each other. This will introduce visual artifacts when layering other layered accessories on top.</figcaption>
</figure>
- Keep the vertex, edge, and face count exactly the same as when you started.
- Keep your cage's edge spacing as evenly as possible.
<GridContainer numColumns = '2'>
<figure>
<img src="../../assets/accessories/caging-best-practices/10-Even-Spacing-A.png" width="100%" alt=""/>
<figcaption><Alert severity = 'success'>Outer cage with even spacing whenever possible on the faces. </Alert></figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/10-Even-Spacing-B.png" width="100%" alt=""/>
<figcaption><Alert severity = 'error'>Outer cage with uneven spacing throughout the torso area. Uneven cages can create visual artifacts and uneven deformations.</Alert> </figcaption>
</figure>
</GridContainer>
- Keep your cage's break lines between body parts lined up to the joint's position as possible. For example, try to align the elbow to where the LowerArm joint is located.
<figure>
<img src="../../assets/accessories/caging-best-practices/11-Positioning-Along-Joints.png" width="50%" alt=""/>
<figcaption>Proportional changes can help improve animation and posing quality.</figcaption>
</figure>
### Caging form-fitting clothing
Form-fitting clothing, like t-shirts, yoga pants, shorts, sweaters and slim jackets, are the most common type of layered clothing.
In this case, the outer cage needs to completely envelop the clothing accessory with minimal gaps between inner cage, clothing, and outer cage.
- Move outer cage vertices outwards to completely cover the clothing item, while maintaining the silhouette of the clothing as much as possible.
- Do not move outer cage vertices that don't contribute to covering the clothing item. For example, don't move outer cage vertices in the lower leg when the clothing item is a t-shirt.
- The entire clothing item should be located in-between the outer and inner cages.
### Caging bulky clothing items
Bulky clothing items, like puffy jackets, sweat pants, and hoodies, require additional displacement of the outer cage vertices will be much larger to envelop the bulky asset. The outer cage should still completely wrap the external surface of a bulky item.
- Pay special attention to the direction neighboring outer cage vertices are moved.
- Move along vertex normal directions as much as possible.
- Move vertices nearby each other more or less along the same directions (smooth relative displacements).
- Avoid moving vertices that are not covered by the clothing item, such as moving vertices in the arm region if you are making pants.
### Caging protrusions
Some clothing items may have assets that may protrude or extend past the rest of the clothing. Examples include clothing with puffy hoods, shoulder pads, and spikes.
<GridContainer numColumns="3">
<figure>
<img src="../../assets/accessories/caging-best-practices/12-Protusions-A.png" width="100%" alt=""/>
<figcaption>Like all clothing, clothing with protrusions should fit over inner cages.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/12-Protusions-B.png" width="100%" alt=""/>
<figcaption><Alert severity ='success'>Setting the outer cage below the puffy hood allows the hood to be visible even when equipping other layered assets.</Alert></figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/12-Protusions-C.png" width="100%" alt=""/>
<figcaption><Alert severity = 'error'>Setting the outer cage above the puffy hood causes additional layered assets to stretch and cover the protrusion which is often undesired.</Alert></figcaption>
</figure>
</GridContainer>
To ensure that the protruded region stays visible independent of the number of layers:
- Leave the protruded region outside the outer cage. Alternatively, edit the outer cage to pass under the regions that are meant to be visible and undeformed.
- Avoid moving vertices that are not covered by the clothing item
## Common issues
Improper caging can cause various rendering and deformation issues. The following common examples can help diagnose and troubleshoot any caging issues you may encounter.
### Uneven caging
Unexpected outer cage shapes causes issues when other layered assets are equipped. While the clothing may fit correctly on a target body, any additional layers will fail to stretch and deform appropriately.
<GridContainer numColumns='2'>
<figure>
<img src="../../assets/accessories/caging-best-practices/1-Uneven-Cage-A.png" width="80%" alt=""/>
<figcaption>The outer cage of the black shirt is set up with uneven vertices producing an undulated caging surface.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/1-Uneven-Cage-B.png" width="80%" alt=""/>
<figcaption>Any layered clothing accessory fit on top will have visual artifacts even if the clothing asset itself looks fine.</figcaption>
</figure>
</GridContainer>
### Identical inner and outer cage
If the inner cage and outer cage are exactly the same, the layered clothing system cannot properly determine the accessory and may not deform or deform unexpectedly.
<GridContainer numColumns='2'>
<figure>
<img src="../../assets/accessories/caging-best-practices/2-Inner-Outer-Identical-A.png" width="80%" alt=""/>
<figcaption>An example of an identical inner and outer cages.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/2-Inner-Outer-Identical-B.png" width="80%" alt=""/>
<figcaption>The tshirt deforms in an unexpected manner and fails to render in its original shape or placement.</figcaption>
</figure>
</GridContainer>
### Clothing inside inner cage
Any part of the clothing mesh positioned **inside** the **inner cage** will introduce visual artifacts when the clothing is layered on top of other clothing. You should always avoid this type of configuration.
<GridContainer numColumns = '2'>
<figure>
<img src="../../assets/accessories/caging-best-practices/3-Clothing-Under-Inner-A.png" width="80%" alt=""/>
<figcaption>The clothing mesh intersects and is positioned within the inner cage at the shoulders and abdomen areas.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/3-Clothing-Under-Inner-B.png" width="80%" alt=""/>
<figcaption>When equipped, the t-shirt does not fit properly, exposing the problematic areas in the shoulders and abdomen.</figcaption>
</figure>
</GridContainer>
### Clothing partially outside outer cage
Any part of the clothing mesh positioned **outside** the **outer cage** will not be deformed by the layered system. This configuration can sometimes be intentional for effect, such as when [caging clothing assets that include protrusions](#caging-protrusions).
<GridContainer numColumns = '2'>
<figure>
<img src="../../assets/accessories/caging-best-practices/4-Outer-Not-Fully-Covering-A.png" width="80%" alt=""/>
<figcaption>The outer cage of the tshirt is positioned within the clothing mesh near the abdomen.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/4-Outer-Not-Fully-Covering-B.png" width="80%" alt=""/>
<figcaption>When equipped, layered assets fail to fit properly at the affected areas.</figcaption>
</figure>
</GridContainer>
### Oversized outer cage
Ensure that the gap between the layered accessory and the outer cage is not too large. This can cause severe deformation issues when combined with other layered assets.
<img src="../../assets/accessories/caging-best-practices/6-Oversized-Cage.png" width="50%" alt=""/>
### Collapsed cage vertices
When cage vertices are collapsed into one vertex or a small region, any additional layer placed on top of your clothing item will have weird artifacts near the collapsed region.
<figure>
<img src="../../assets/accessories/caging-best-practices/9-Stacking-Vertices.png" width="100%" alt=""/>
<figcaption>Most 3D applications can indicate if vertices are directly overlapping</figcaption>
</figure>
<Alert severity = 'warning'>
This setup will be rejected during validation.
</Alert>
### Cages with missing limbs
<img src="../../assets/accessories/caging-best-practices/13-Cage-Missing-Parts.png" width="60%" alt=""/>
The cage is meant to match the shape of the template body used to model your clothing item. Cages without heads or missing limbs won't work properly with the layered clothing system.
<Alert severity = 'warning'>
This setup will be rejected during validation.
</Alert>
### Outer cage inside the inner cage
Setting the outer cage inside the inner cage creates a clothing item that can't properly layer with other assets.
<img src="../../assets/accessories/caging-best-practices/14-Outer-Inside-Inner.png" width="60%" alt=""/>
<Alert severity = 'warning'>
This setup will be rejected during validation.
</Alert>
### Mesh outside of outer cage
Layered assets placed outside their outer cages do not deform. If the item is completely outside then it will behave similar to a rigid accessory.
<GridContainer numColumns = '2'>
<figure>
<img src="../../assets/accessories/caging-best-practices/15-Orbitting-Accessory-B.png" width="80%" alt=""/>
<figcaption>Assets outside of the cage meshes are not supported.</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/caging-best-practices/15-Orbitting-Accessory-A.png" width="80%" alt=""/>
<figcaption>Even with a correct hierarchy, assets outside the cages will not deform.</figcaption>
</figure>
</GridContainer>
<Alert severity = 'warning'>
This setup will be rejected during validation.
</Alert>

View file

@ -0,0 +1,91 @@
---
title: Layered clothing export settings
description: Use the appropriate export settings in Maya and Blender to generate Studio-ready .fbx files.
---
Export your mesh or model as a `.fbx` or `.gltf` to take advantage of all of Studio's 3D import features. When rigging or skinning a layerable model, these file types contains all the mesh and texture data, including the rig and influence data, you need to later [import](../../art/modeling/3d-importer.md) into Studio.
<Alert severity = 'warning'>
<AlertTitle>If creating other types of 3D models:</AlertTitle>
<ul>
<li>For generic meshes, see [general mesh specifications](../modeling/specifications.md) and [general export settings](../modeling/export-requirements.md).</li> <br />
<li>For rigid accessories, see [accessory specifications](../accessories/specifications.md) and [accessory export settings](../accessories/export-settings.md).</li> <br />
<li>For avatar characters, see [avatar specifications](../characters/specifications.md) and [avatar export settings](../characters/export-settings.md).</li>
</ul>
</Alert>
## Before exporting
Before exporting, ensure that you are only exporting the Roblox supported objects related to your model. If you have any modifiers to your mesh or project objects, make sure to apply or delete them before export.
You can export layered clothing models with the following object structure:
<img src="../../assets/modeling/skinned-meshes/Clothing-Data-Model.png" width="60%" alt="Blender clothing data model example" />
- Armature parent
- Bones / joints
- Primary mesh object
- Cage parent object
- Inner cage mesh object
- Outer cage mesh object
You can also export shoes together. Even though left and right shoes are separate accessories, you can either export the left and right shoe individually, or export both shoes at the same time using the following structure:
<img src="../../assets/modeling/skinned-meshes/Shoe-Data-Model.png" width="60%" alt="Shoe clothing data model example"/>
- Armature parent
- Bones / joints
- Left shoe mesh object
- Right shoe mesh object
- Cage parent object
- Left shoe inner cage
- Left shoe outer cage
- Right shoe inner cage
- Right shoe outer cage
<Alert severity = 'warning'>
Each shoe must include their own inner and outer cage.
</Alert>
## Blender
Blender allows you to export in `.fbx` or `.gltf` as well as other formats. If you are using `.fbx` export, familiarize yourself with [Blender's FBX scaling](../blender.md#adjust-scale-fbx) to ensure that you successfully import the model into Studio at the correct scale.
### Export settings
To export the `.fbx` file in Blender:
1. In the topbar, click **File**. A pop-up menu displays.
2. Select **Export**, then **FBX (.fbx)**. The **Blender File View** window displays.
3. On the right-hand side, change the **Path Mode** property to **Copy**, then toggle the **Embed Textures** button.
<img src="../../assets/modeling/skinned-meshes/Blender-Export-Settings-1.png" width="320" />
4. If your project doesn't already have `.01` scene unit scaling, set the **Transform** > **Apply Scalings** to `FBX Unit Scale`. For more details, see [Blender FBX scaling](../blender.md#adjust-scale-fbx).
<img src="../../assets/modeling/skinned-meshes/Blender-Export-Settings-5.png" width="320" />
5. Under the **Armature** section, disable **Add Leaf Bones**.
<img src="../../assets/modeling/skinned-meshes/Blender-Export-Settings-3.png" width="320" />
6. Click the **Export FBX** button.
7. After exporting, use Studio's [3D Importer](../../art/modeling/3d-importer.md) to import your model and the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) to convert the model into an accessory.
## Maya export settings
To export a mesh in Maya as a `.fbx` file:
1. In the topbar, click **File**. A pop-up menu displays.
2. Select **Export All**. The **Export All** window displays.
3. Near the bottom of the window, click the **Files of type** dropdown, then select **FBX export**.
4. On the right-hand side of the window, navigate to the **Options...** section.
5. In the **Geometry** section, enable **Smooth Mesh** and **Referenced Asset Content**.
6. If you need to import textures as a `.png`, in the **Embed Media** section, enable **Embed Media**.
7. In the **Advanced Options** section,
- Navigate to **Units**, then enable **Automatic**.
- Navigate to **Axis Conversion**, then set the **Up Axis** property to **Y**.
8. Click the **Export All** button.
<img src="../../assets/accessories/lc-requirements-maya-settings-with-animation.png" />
9. After exporting, use Studio's [3D Importer](../../art/modeling/3d-importer.md) to import your model and the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) to convert the model into an accessory.

View file

@ -0,0 +1,214 @@
---
title: Clothing specifications
description: Layered clothing specifications lists the specific technical requirements for the visible mesh, cages, and proper rigging and skinning data.
---
When creating clothing for Roblox, it's important to meet specific technical requirements to ensure compatibility and optimize for performance and quality. Many of these requirements must be applied when designing and modeling your asset in a third-party modeling application.
Although [rigid accessories](../../art/accessories/specifications.md) and layerable accessories share many technical requirements, layerable clothing accessories must include additional components to ensure the accessories deform and stretch appropriately on different body scales.
If you are intending to publish and sell these assets on the Marketplace, there are additional [Marketplace policy](../../marketplace/marketplace-policy.md) standards that you must follow for any accessory or clothing item.
When ready to export, see [export requirements](../../art/accessories/clothing-export-settings.md) for mesh export settings for Blender and Maya.
<Alert severity = 'warning'>
<AlertTitle>If creating other types of 3D models:</AlertTitle>
<ul>
<li>For generic meshes, see [general mesh specifications](../modeling/specifications.md) and [general export settings](../modeling/export-requirements.md).</li> <br />
<li>For rigid accessories, see [accessory specifications](../accessories/specifications.md) and [accessory export settings](../accessories/export-settings.md).</li> <br />
<li>For avatar characters, see [avatar specifications](../characters/specifications.md) and [avatar export settings](../characters/export-settings.md).</li>
</ul>
</Alert>
## Geometry and Budgets
- **Single Mesh** - Accessories must be a single mesh.
- **Budgets** - Accessories can't exceed **4k** triangles.
- **Watertight** - All geometry must be watertight without exposed holes or backfaces.
- Use **quads** whenever possible. Avoid faces with 5 or more sides.
- **Mesh Size** - Depending on the type of accessory asset, meshes must follow a standard size (in studs, centered on attachment point) depending on the [body scale](#size-requirements) it is designed for.
### Size Requirements
Depending on the type of layerable asset, the size requirements can't exceed the following maximum width, height, and depth (in studs).
<table>
<thead>
<tr>
<th>Asset Type</th>
<th>Width (X)</th>
<th>Height (Y)</th>
<th>Depth (Z)</th>
</tr>
</thead>
<tbody>
<tr>
<td>T-Shirt, Shirt, Sweater, Jacket, Pants, Shorts, Dress &amp; Skirt</td>
<td>8</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>Hair</td>
<td>3</td>
<td>5* <br /> (Not centered: 2 up, 3 down)</td>
<td>3.5* <br /> (Not centered: 1.5 front, 2 behind)</td>
</tr>
<tr>
<td>Eyebrow and Eyelashes</td>
<td>1.5</td>
<td>0.5</td>
<td>0.5</td>
</tr>
</tbody>
</table>
### Attachment Points
`Class.Attachment` objects indicate where an accessory model attaches to a point on a character body. Whether you are creating rigid or [layered](./layered-clothing.md) accessories, Studio's [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) (AFT) automatically adds and configures the appropriate `Class.Attachment` with the following specifications:
- **One attachment** - Each accessory, including layered clothing, require at least one attachment point to its associated body part.
- **Naming Convention** - The `Class.Attachment` name must follow a specific naming convention depending on the `Class.Accessory.AccessoryType`. The AFT generates an appropriate `Class.Attachment` name automatically.
If setting attachment names manually in Studio, use the following `Class.Attachment` name for each accessory type:
<table>
<thead>
<tr>
<th>Accessory Type</th>
<th>Attachment Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hat</td>
<td>`HatAttachment`</td>
</tr>
<tr>
<td>Hair</td>
<td>`HairAttachment`</td>
</tr>
<tr>
<td>Back</td>
<td>`BodyBackAttachment`</td>
</tr>
<tr>
<td>Waist</td>
<td>`WaistFrontAttachment`, `WaistCenterAttachment`, `WaistBackAttachment`</td>
</tr>
<tr>
<td>Shoulder</td>
<td>`RightShoulderAttachment`, `RightCollarAttachment`, `NeckAttachment`, `LeftCollarAttachment`, `LeftShoulderAttachment`</td>
</tr>
<tr>
<td>Face, Eyelash, Eyebrow</td>
<td>`FaceFrontAttachment`, `FaceCenterAttachment`</td>
</tr>
<tr>
<td>Neck</td>
<td>`NeckAttachment`</td>
</tr>
<tr>
<td>Front</td>
<td>`BodyFrontAttachment`</td>
</tr>
<tr>
<td>Layered tops (Shirt, TShirt, Sweater, Jacket)</td>
<td>`BodyFrontAttachment`</td>
</tr>
<tr>
<td>Layered bottoms (Pants, Shorts, DressSkirt)</td>
<td>`WaistCenterAttachment`</td>
</tr>
</tbody>
</table>
<Alert severity = 'info'>
The 3D Importer automatically recognizes mesh objects as attachment points if the objects include the affix `\_Att`. This only applies when importing meshes with caging data, such as clothing or bodies.
</Alert>
- **Shoulders and Collars** - Even though they are in similar locations, Shoulder and Collar attachment points interact with character rigs differently for rigid accessories.
- Items using `RightShoulderAttachment` or `LeftShoulderAttachment` move with the character's arm.
- Items using `RightCollarAttachment` or `LeftCollarAttachment` do not move with the character's arm.
### Face Accessories
Face accessories, such as hair, eyebrows, and eyelashes are unique accessories that you can bundle with an avatar body upload. At this time, eyebrows and eyelashes can not be uploaded as standalone accessories and must be bundled with avatar bodies. For more information on bundling your face accessories with avatar models, see [Publishing bodies with eyelashes and eyebrows](../accessories/publish-eyebrows-eyelashes.md).
- **Naming Convention when bundled** - When including these assets with an avatar body upload, the accessory objects must use the following name conventions:
- `EyebrowAccessory`
- `EyelashAccessory`
- `HairAccessory`
## Textures
Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md). Keep in mind that smaller assets, such as accessories, can use smaller texture map sizes, such as **256&times;256px**, to optimize performance with virtually no loss in detail.
## Layerable Properties
Clothing and accessories that deform and fit around any characters and existing clothing items require additional configuration in a 3D modeling software such as [Blender](https://www.blender.org) or [Maya](https://www.autodesk.com/products/maya/overview).
To achieve the layering effect, your clothing must meet the following requirements:
- Asset must be [weighted and bound](#rigging-and-skinning) to an R15 skeleton (Maya) or armature (Blender).
- Asset must contain an [inner mesh cage](#inner-cage) and an [outer mesh cage](#outer-cage).
- Asset must continue to follow any applicable [custom mesh requirements](../../art/characters/specifications.md), such as best practices on watertightness, textures, and polycount budgets.
See [Creating Layered Models](../../art/accessories/creating/index.md) for a basic guide on applying these requirements on a reference asset in Blender. Once the `.fbx` file is [exported](../../art/accessories/export-settings.md), see [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) for instructions on creating an accessory from your model.
### Rigging and Skinning
Rigging and skinning a layered accessory allows the accessory to move naturally with a character body. You can perform this manually through a modeling tool, or [use automatic skinning transfer](../../art/accessories/automatic-skinning-transfer.md) to generate an accessory's skinning data at run time.
If using modeling software to skin your accessories, keep in mind that **Joint Influences** (Maya) or **Bone Assignments** (Blender) per vertex should be limited to **4**.
For more information on basic skinning in third-party modeling software, such as Blender's [Automatic Weights](https://docs.blender.org/manual/en/latest/animation/armatures/skinning/parenting.html#with-automatic-weights), see [Skinning a Simple Mesh](../../art/modeling/skin-a-simple-mesh.md) for instructions on rigging, applying weights, and skinning a basic mesh.
### Cage Meshes
**Cage meshes**, or **cages**, are invisible meshes that define the inner and outer surfaces of your asset and are fundamental to the layerable properties of clothing items. The inner cage determines the inside surface of a clothing item while the outer cage determines the outside surface of a clothing item.
<Alert severity = 'error'>
Assets with invalid cage configurations may fail validation and are subject to moderation. See [Caging best practices](./caging-best-practices.md) for examples and instructions.
</Alert>
For a basic overview on caging, see the [Basic Clothing Tutorial](../accessories/creating/caging-setup.md) and the relevant section of the tutorial video at [8:32](https://www.youtube.com/watch?v=C-DwGRBHvmE&t=512s):
<iframe width="800" height="450" src="https://www.youtube-nocookie.com/embed/C-DwGRBHvmE" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
#### Inner Cage
The inner cage is the inner surface of your model and defines how the layered asset fits over another layered model. As a best practice, the shape of the inner and outer cage should match each other before editing the outer cage to completely cover your asset.
The inner cage mesh object must have the same name as the accessory model appended with **\_InnerCage**.
<img src="../../assets/accessories/lc-requirements-innercage.png" width="60%" />
<img src="../../assets/accessories/lc-requirements-innercage-outliner.png" width="60%" />
#### Outer Cage
The outer cage defines the external surface that another item's inner cage would layer on top of. Avatar character models must have an outer cage included with its model in order to be compatible with layered clothing. All avatar models available on the [Marketplace](https://www.roblox.com/catalog) include a properly configured outer cage and are compatible with layered assets.
The outer cage of a layered clothing asset is a mesh that precisely covers the clothing item. The outer cage included in the template files is identical to the inner cage by default and must be the only cage adjusted to fit over an accessory.
The outer cage mesh object must have the same name as the accessory model appended with **\_OuterCage**.
<img src="../../assets/accessories/lc-requirements-outercage.png" width="60%" />
<img src="../../assets/accessories/lc-requirements-outercage-outliner.png" width="60%" />
<Alert severity="warning">
The vertexes and UVs of the inner and outer cage meshes should not be deleted or removed, as they are used to match coordinates between other cages.
</Alert>
## Marketplace Requirements
Your items must meet the following requirements before you upload them to the Marketplace to sell:
- Ensure that your items adhere to the [Marketplace Program Guidelines](../../marketplace/marketplace-policy.md).
- Whenever applicable, ensure that your items adhere to Roblox's [custom mesh specifications](../../art/modeling/specifications.md) and [rigid accessory specifications](../../art/accessories/specifications.md).
- Object `Class.MeshPart.Material|Material` is set to `Plastic`.
- Object `Class.MeshPart.Transparency|Transparency` is set to 0.
- Object `Class.MeshPart.VertexColor|VertexColor` is the default `1, 1, 1`.
- Your `Class.Accessory` instance does not contain extraneous objects, like `Class.Script` or additional `Class.Part` instances.

View file

@ -0,0 +1,42 @@
---
title: Use the Accessory Fitting Tool
description: Use the Accessory Fitting Tool to convert your model to an rigid accessory.
next: /art/accessories/creating-rigid/publishing
prev: /art/accessories/creating-rigid/importing
---
After importing your asset into Studio, you can begin **fitting** your imported object to a mannequin and **converting** the `Class.Model` object into a `Class.Accessory`. When fitting and converting your accessory it's important to use the [Accessory Fitting Tool](../../../art/accessories/accessory-fitting-tool.md) (AFT) to correctly preview the placement and apply the correct configurations to your accessory.
<video controls src="../../../assets/art/accessories/creating-rigid/Converting.mp4" width="100%"></video>
To fit and generate your accessory:
1. In the toolbar's **Avatar** tab, click **Accessory** to open the AFT.
2. In the new AFT panel, select the **Part** field and, in the workspace, select the accessory `Class.MeshPart` object in the workspace and press **Next**.
3. Set **type** of asset to **Back**. Press **Next** when complete.
4. Using both the AFT preview window and the workspace, adjust the position, scale, and rotation of the accessory.
1. Use the AFT preview window and your mannequin as an accurate preview of how your asset fits on the character. The clothing mannequin in the workspace does not accurately portray how rigid accessories attach.
2. In the workspace, use the **Move**, **Scale**, and **Rotate** tools to adjust the positioning of your rigid accessory.
3. If you accidentally select something else, click back into the AFT panel to reselect the accessory and resume your adjustments using the transformation tools.
5. After previewing and fitting your asset, select the **dropdown** next to **Generate** button to select **Generate Legacy Accessory**. The accessory object populates in your viewport and in the **Explorer**.
- For rigid accessories that you intend to sell on the Marketplace you must use the [generate legacy accessory](../accessory-fitting-tool.md#generate-legacy-accessory) option when creating your Marketplace accessories.
<img src="../../../assets/accessories/accessory-fitting-tool/Generate-Legacy-Accessory.png" width ="60%" alt="A dropdown appears above the GenerateMeshPartAccessory when expanded, displaying a Generate Legacy Accessory option."/>
6. Test your accessory by equipping it to a character and using the **Avatar Setup** tool.
<video controls src="../../../assets/art/accessories/creating-rigid/Testing.mp4" width="100%"></video>
<Alert severity = 'success'>
After successful fitting and converting, your 3D model should populate in your project as a `Class.Accessory`. With this `Class.Accessory` you can perform any of the following:
- [Upload the accessory](../../../art/accessories/creating-rigid/publishing.md) to the Marketplace.
- Use the accessory in your current experience by equipping it to character models with [HumanoidDescription](../../../characters/appearance.md#manually-modify-appearance), or by dragging and dropping the accessory under the appropriate character `Class.Model` object.
- Save the accessory to your [Toolbox](../../../projects/assets/toolbox.md) to share or use within any of your experiences.
</Alert>

View file

@ -0,0 +1,32 @@
---
title: Export from Blender
description: Use Blender's .fbx exporter with the correct settings to create a Studio-ready asset.
prev: /art/accessories/creating-rigid/texturing
next: /art/accessories/creating-rigid/importing
---
<video controls src="../../../assets/art/accessories/creating-rigid/Exporting.mp4" width="100%"></video>
After modeling and texturing your asset, you can begin the process of **exporting** your Blender project as a `.fbx` or `.gltf`. For up-to-date settings, see [Export settings](../../modeling/export-requirements.md).
<Alert severity ='warning'>
If you are creating your own accessory object, it's important to clean up your project, which can involve deleting or removing any extra objects, such as lights, cameras, or mannequins, to ensure you only export the accessory mesh, and applying any modifiers to your mesh object.
</Alert>
To export your model as a `.fbx`:
1. In the topbar, click **File**.
2. Select **Export**, then **FBX (.fbx)**.
3. On the right-hand side of the file view window, change the **Path Mode** property to **Copy**, then toggle the **Embed Textures** button.
<img src="../../../assets/modeling/skinned-meshes/Blender-Export-Settings-1.png" width="320" />
4. Set the **Transform** > **Scale** to `.01`. This is required to maintain scale size for `.fbx` exports.
<img src="../../../assets/modeling/skinned-meshes/Blender-Export-Settings-2.png" width="320" />
5. Click the **Export FBX** button.
<Alert severity = 'success'>
You've completed the exporting section of this tutorial. If desired, download a [reference sample](../../../assets/art/accessories/creating-rigid/Rigid_Mask_Export.fbx) of this exported file for comparison. You can use this reference in the next importing step.
</Alert>

View file

@ -0,0 +1,39 @@
---
title: Use Studio's 3D Importer
description: Use Studio's 3D importer to import a third-party 3D model into Studio.
next: /art/accessories/creating-rigid/converting
prev: /art/accessories/creating-rigid/exporting
---
<video controls src="../../../assets/art/accessories/creating-rigid/Importing.mp4" width="100%"></video>
Studio's 3D Importer provides a quick and easy way to import third-party 3D `.fbx` or `.gltf` assets into your projects. The importer provides object previews and error-checking to ensure that your asset meets Studio's general 3D requirements.
<br />
To import your asset ([downloadable reference](../../../assets/art/accessories/creating-rigid/Chest-Texturing-Complete.fbx)):
1. From Studio's **File** menu, select **3D Importer**.
2. In the file browser, select the `.fbx` file saved locally. The 3D Importer loads a preview of the object.
1. If textures don't load for your asset, continue to the next step and add textures manually later.
3. Select **Import**.
1. The asset populates in your workspace as a `Class.Model` that contains a `Class.MeshPart` with the appropriate textures applied as a `Class.MeshPart.TextureID`.
2. If textures were not imported correctly, follow the instructions below to add the file manually.
<BaseAccordion>
<AccordionSummary>Add textures manually</AccordionSummary>
<AccordionDetails>
If textures didn't load correctly, add them manually. You may need to save and publish your experience in order to access the [Asset Manager](../../../projects/assets/manager.md).
1. In the **Asset Manager**, click the **Import** button.
2. Upload your image file.
3. After moderation clears for your image, select the `Class.MeshPart` parented within your imported `Class.Model`.
4. In the **TextureID** property, select the value field and add the asset ID of the texture image.
</AccordionDetails>
</BaseAccordion>
<Alert severity = 'success'>
After successful import, your model object should populate in your project as a `Class.Model` with the appropriate textures applied. See [3D Importer](../../../art/modeling/3d-importer.md) for additional information on import settings and troubleshooting.
</Alert>

View file

@ -0,0 +1,37 @@
---
title: Rigid accessory creation
description: This tutorial covers the basic steps required to publish a custom asset on the Marketplace.
next: /art/accessories/creating-rigid/modeling-setup
---
<iframe width="800" height="450" src="https://www.youtube-nocookie.com/embed/Eed29gV0hLA" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br /><br />
Rigid accessories are 3D objects that users can equip to their avatar characters in an experience or through Roblox's [Marketplace](https://www.roblox.com/catalog) and [Avatar Editor](https://www.roblox.com/my/avatar).
Unlike clothing or bodies, rigid accessories do not require additional configuration in a third-party application beyond modeling and texturing, rigid accessories are typically the most basic type of 3D avatar item to create.
This tutorial covers the basics of each step in the workflow to create your own simple 3D model in Blender and import it into Studio. From there, you can upload the accessory to the Marketplace to sell, save the asset to your toolbox, or use the asset in your experiences.
<Alert severity = 'warning'>
Creating, building, and sharing on Roblox is free. However, the last step of listing your item to sell requires a Premium Roblox account, an upload fee, and a publishing advance. For more information, see the [Marketplace policy](../../../marketplace/marketplace-policy.md#creator-requirements).
</Alert>
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating-rigid/Chest-Blender.png" />
<figcaption>
3D mesh object created in Blender
</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating-rigid/Chest-Studio.png" />
<figcaption>
Mesh object equipped as an `Class.Accessory` in Studio
</figcaption>
</figure>
</GridContainer>
<Alert severity = 'info'>
While this content covers the Blender workflow with a provided reference example, you can apply the same concepts to other third-party modeling applications and custom assets.
</Alert>

View file

@ -0,0 +1,139 @@
---
title: Box modeling
description: Create your basic rigid accessory model in Blender.
next: /art/accessories/creating-rigid/texturing
prev: /art/accessories/creating-rigid/
---
<img src="../../../assets/art/accessories/creating-rigid/Modeling-Complete.png" alt="A screenshot of blender showing the final 3d shape of a treasure chest in the viewport"/>
**Modeling** is the process of creating and shaping the 3D geometry of an object. **Box modeling** is a fundamental technique in 3D modeling combining basic shapes and steps to create a more complex object.
The following instructions are based off of the [Box Modeling 101 staff article](https://devforum.roblox.com/t/modeling-101-in-blender-box-modeling/2963814). The original article includes additional information, as well as Blender setup instructions, best practices, and advanced modeling examples that are not included in this accessory tutorial.
<Alert severity = 'warning'>
Whether you are using an existing shape or creating your own 3D object, it's important to consider [technical requirements](../../../art/accessories/specifications.md), such as keeping your geometry within a polycount budget, and [policy requirements](../../../marketplace/marketplace-policy.md), such as ensuring your design does not infringe on other creator's IP both within and outside of the Roblox ecosystem.
</Alert>
## General shape
<video controls src="../../../assets/art/accessories/creating-rigid/General-Shape.mp4" width="100%"></video>
In a new Blender file, delete everything except the starter cube, then create the basic shape of the treasure chest.
1. In a new project, select the non-cube objects and press <kbd>X</kbd> to delete.
2. Select the cube and press <kbd>S</kbd> for scale.
1. Press <kbd>Y</kbd> to lock scaling to the y-axis.
2. Drag with the mouse to create a rectangle.
3. Switch to Edit mode (<kbd>Tab</kbd>).
4. Near the Edit mode dropdown, select the Face selection.
5. Select the top face of the box and press <kbd>E</kbd> to extrude.
6. Drag your mouse to extrude the lid. Extend the lid to about half the height of the main body.
## Rounded lid
<video controls src="../../../assets/art/accessories/creating-rigid/Rounded-Lid.mp4" width="100%"></video>
Create the rounded lid shape using segmentation:
1. Near the Edit mode dropdown, select the Line selection.
2. Holding <kbd>Shift</kbd>, click the top front and back lines of your chest.
3. With both lines selected, press <kbd>Ctrl</kbd><kbd>B</kbd>/<kbd>⌘</kbd><kbd>B</kbd> to bevel.
4. In the context menu at the bottom right, set the number of segments to `6` and enable **Clamp Overlap**.
### Merge vertices
Sometimes tools like the **Bevel** tool may move vertices very close to each other without merging them. Use the Merge Vertices function to ensure that your object shares vertices wherever possible.
1. Near the Edit mode dropdown, select the Vertices selection.
2. Press <kbd>A</kbd> to select all vertices.
3. Right-click and select **Merge Vertices by Distance**.
4. In the pop-up modal, set the distance to `.01`.
## Side insets
<video controls src="../../../assets/art/accessories/creating-rigid/Side-Insets.mp4" width="100%"></video>
Create the left and right insets of your chest:
1. Near the Edit mode dropdown, select the Face selection.
2. Hold <kbd>Shift</kbd> and click both sides of your shape. This selects both the left and right faces.
3. Press <kbd>I</kbd> for inset. Drag the mouse to adjust the amount of inset for the new face.
1. Set the inset about the size of your bevel segmentations.
4. With your new insets selected, right-click and select **Extrude Along Normals**.
5. Use the mouse to drag and adjust the distance of extrusion into the chest.
## Front insets
Create the front and back insets of your chest by creating new lines and then extruding your faces between those lines.
### Vertical loop cuts
<video controls src="../../../assets/art/accessories/creating-rigid/Vertical-Loop-Cuts.mp4" width="100%"></video>
To create your vertical loop cuts:
1. Near the Edit mode dropdown, select the Line selection.
2. Press <kbd>A</kbd> to select the entire chest.
3. Use <kbd>Ctrl</kbd><kbd>R</kbd>/<kbd>⌘</kbd><kbd>R</kbd> to create a loop cut.
4. Using your mouse, hover over the object until the highlighted cut is vertical. Click to confirm.
5. In the context menu, set the number of cuts to `2`.
6. With the new lines selected, press <kbd>S</kbd> to scale and <kbd>Y</kbd> to scale within the y-axis.
7. Use the mouse to drag the lines until they nearly reach the edges of your chest. Click to confirm.
### Horizontal loop cuts
<video controls src="../../../assets/art/accessories/creating-rigid/Horizontal-Loop-Cuts.mp4" width="100%"></video>
To create your horizontal loop cuts:
1. Select the chest, and press <kbd>Ctrl</kbd><kbd>R</kbd>/<kbd>⌘</kbd><kbd>R</kbd> to loop cut.
2. Using the mouse, click to confirm a horizontal cut.
3. Using the context menu, set the number of cuts to `2`.
4. To straighten each line across your object, select the one of your new lines:
1. Press <kbd>S</kbd> for scale.
2. Press <kbd>Z</kbd> to scale within the z-axis.
3. Press <kbd>0</kbd> to set the scale value to `0` across the z-axis.
5. Repeat step 4 with the other line.
6. Position the top line near the top below the segmentations.
7. Position the bottom line near the bottom.
1. Enable **Magnet Snapping** so the bottom line merges with the existing vertices and lines from the side insets.
### Extrusions
Create the extrusions for the front, top, and back of the chest.
1. Near the Edit mode dropdown, select the Face selection.
2. Hold <kbd>Alt</kbd>/<kbd>⌥</kbd> and click on your front faces to select the front, top, and back faces.
3. With the faces selected, hold <kbd>Shift</kbd> and click on the metal borders to deselect them. The front and back faces, and the top segmentations, should remain selected.
4. Right click and select **Extrude Faces Along Normals**. Drag the mouse to extrude the faces about the same width as the metal borders.
## Complete border
<video controls src="../../../assets/art/accessories/creating-rigid/Complete-Border.mp4" width="100%"></video>
The chest is almost ready, but is still missing the continuous metal border across the top edge. Remove the existing faces and add new geometry to the treasure chest.
### Delete faces
Delete the faces of the top side metal borders:
1. Near the Edit mode dropdown, select the Face selection.
2. Starting on any side, shift click the three faces of the top metal border.
3. Press <kbd>X</kbd> to delete.
4. Repeat steps 2-3 on the other side.
### Add faces
Add new faces to the sides that complete the geometry of the treasure chest box.
1. Near the Edit mode dropdown, select the Line selection.
2. Starting with any side, Hold <kbd>Shift</kbd> and click the two top corner edges of the missing face.
3. Right click and select **New Face from Edges** to create a top face.
4. Repeat steps 2-3 with the bottom corner edges to create a bottom face.
5. On the other side of the chest, repeat steps 2-4 to complete the metal border.
<Alert severity='success'>
You've completed the modeling section of this tutorial. If desired, download a [reference version](../../../assets/art/accessories/creating-rigid/Chest-Modeling-Complete.blend) of this stage of the project for comparison.
This tutorial represents an extremely basic overview of the 3D modeling process. Tools like Blender offer many features, workflows, and techniques to create unique and complex models. Check out Blender's official and community tutorials for additional instructional content.
</Alert>

View file

@ -0,0 +1,46 @@
---
title: Upload and publish
description: Before selling your accessory, upload the accessory for validation and moderation.
prev: /art/accessories/creating-rigid/converting
---
After generating your `Class.Accessory` item, you can now begin the process of **publishing** the asset to the Marketplace. This step is optional and only applicable for creators who intend to sell their asset.
<Alert severity = 'warning'>
Users must meet [creator requirements](../../../marketplace/marketplace-policy.md#creator-requirements) to be eligible to sell assets on the Marketplace. Creators must also provide an upload fee and a payment advance during the upload and publishing process.
</Alert>
Adding your asset to the Marketplace involves 2 steps:
1. **Uploading** - Uploading the asset to Roblox servers for moderation.
2. **Publishing** - Listing the item on sale on the Marketplace.
<video controls src="../../../assets/art/accessories/creating-rigid/Publishing.mp4" width="100%"></video>
## Upload
To upload your accessory:
1. In the **Explorer**, right-click your accessory object and select **Save to Roblox…** from the contextual menu.
2. In the **Asset Configuration** window, set the **Content Type** to **Avatar Item**.
3. Complete the following fields (you can adjust these later):
1. **Title**: The name of your accessory.
2. **Description**: A short description of your asset.
3. **Asset Category**: The type of accessory. This should match the Accessory Type selected during the [fitting and conversion](../../../art/accessories/creating-rigid/converting.md) process.
4. **Creator**: Use the dropdown to select if you'd like to publish this asset as an individual or as part of an associated group.
4. After you select the **Asset Category**, Studio begins validating the asset to ensure that it matches Roblox's accessory technical requirements.
5. If the validation is successful, you can submit the asset to the upload and moderation queue for a fee. See [Fees and commissions](../../../marketplace/marketplace-fees-and-commissions.md) for current fee information.
## Publish
After uploading your accessory, the asset is added to the moderation queue and may take up to 24 hours to clear.
You can check your accessory's moderation status in the [Creator Hub](https://create.roblox.com/dashboard/creations).
After moderation completes, your item's publishing details become available to edit and enable for sale. See the following for an overview on the various sale options available:
<iframe width="800" height="450" src="https://www.youtube-nocookie.com/embed/swQW2VS9ZMA" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br />
After listing an asset to the Marketplace, you can return to this page to edit your item's sale details, or take the item offsale.

View file

@ -0,0 +1,81 @@
---
title: Texture painting
description: Covers the process of associating PBR textures to rigid accessories in Blender.
prev: /art/accessories/creating-rigid/modeling-setup
next: /art/accessories/creating-rigid/exporting
---
<img src="../../../assets/art/accessories/creating-rigid/Texturing-Complete.png" alt="A screenshot of blender showing the final 3d shape and color of a treasure chest in the viewport"/>
**Texturing** is the process of applying a surface appearance to a 3D object. **Texture painting** is a technique that allows you to digitally brush your surface colors onto your 3D object, or onto the 2D image that represents the surface of your object.
This tutorial covers basic texture painting in Blender. Common workflows in the industry utilize additional third-party tools to create textures, especially high-definition PBR textures that mimic realistic lighting and texture properties.
<Alert severity = 'warning'>
While PBR textures are not required for accessories and is not covered in this tutorial, adding PBR textures can add extra visual flair and realism to elevate your creations. This typically requires additional software. <br /> <br /> For more information, see [PBR textures](../../modeling/surface-appearance.md).
</Alert>
## UV projecting
<video controls src="../../../assets/art/accessories/creating-rigid/UV-Projecting.mp4" width="100%"></video>
Use Blender's automatic UV Project feature to "unwrap" your 3D object onto a 2D plane. This allows you to associate a 2D image to the 3D surface of your object.
1. In Edit mode, press <kbd>A</kbd> to select your object.
2. In the top UV menu, select **Smart UV Project**.
3. Set Island Margin to `.02`.
## Add new material
<video controls src="../../../assets/art/accessories/creating-rigid/Adding-New-Material.mp4" width="100%"></video>
Add a new material for Blender to associate this new texture, and assign it to a new blank 2D image.
1. In the bottom right panel, select the red **Materials** tab.
2. Select the **+ New** button. Additional material options display below.
3. In **Base Color**, select the dot. A dropdown appears.
1. Select **Image Texture**.
4. Under Base Color, select the **+ New** button.
1. Name the texture image file. Using an affix like "\_TXT" can help organize your files later.
2. Select the color and pick a color. This tutorial recommends using a metallic color for your metal borders to save time.
## Texture painting
Texture painting allows you to paint directly on the 3D object or the 2D mapping of the surface.
Since Blender automatically mapped the 2D atlas of the texture, it's not easy to tell what parts of the 2D image maps to the 3D object. First mark the sections of the 3D object you want to paint solid before completing your texture by painting the 2D map.
<Alert severity = 'info'>
There are many ways to texture within Blender. To keep this process simple, the tutorial used Blender's [Smart UV Project](https://docs.blender.org/manual/en/2.79/editors/uv_image/uv/editing/unwrapping/mapping_types.html), but there are many ways to manually create your 2D texture islands and organize your mesh and texture.
</Alert>
### Mark 3D object
<video controls src="../../../assets/art/accessories/creating-rigid/Marking-3d-Object.mp4" width="100%"></video>
Switch to Texture Paint mode and use the paintbrush to track the "wood" parts of the treasure chest.
1. In Edit mode, select your object.
2. Switch to **Texture Paint** mode. A side-by-side panel displays with your 2D atlas on the left and the 3D object on the right.
3. Expand the Tool submenu in the top-right of either window.
4. Select your brush settings and mark the wooden areas of your chest.
1. Use <kbd>Ctrl</kbd><kbd>Z</kbd>/<kbd>⌘</kbd><kbd>Z</kbd> to undo any accidental brushes on the metal border.
2. Hold <kbd>F</kbd> and drag the mouse to adjust brush size.
### Paint 2D map
<video controls src="../../../assets/art/accessories/creating-rigid/Painting-2d-Map.mp4" width="100%"></video>
With all of the wooden areas of your chest marked, you can now quickly texture your 2D atlas. First adjust your brush settings to have a hard edge and then begin painting the 2D image.
1. On the left window, access to **Tool** menu in the top right of the window.
1. Set the **Falloff** shape to the flattest icon to ensure the edges are sharp.
2. Set the color or any other brush settings here.
2. In the left window, begin coloring in each island of your texture. You can quickly preview the changes on your 3D object on the right side.
1. Use <kbd>Ctrl</kbd><kbd>Z</kbd>/<kbd>⌘</kbd><kbd>Z</kbd> to undo any accidental brushes on the metal border.
2. Hold <kbd>F</kbd> and drag the mouse to adjust brush size.
3. After completion, navigate to **Image** > **Save** to save your image file.
<Alert severity = 'success'>
You've completed the texturing section of this tutorial. If desired, download a [reference version](../../../assets/art/accessories/creating-rigid/Chest-Texturing-Complete.blend) of this stage of the project for comparison.
</Alert>

View file

@ -0,0 +1,65 @@
---
title: Armature setup
description: Transfer and parent an armature template to your custom clothing Blender project.
next: /art/accessories/creating/test-poses
prev: /art/accessories/creating/texture-painting
---
**Rigging** is the process that enables the clothing object to move and deform with a Roblox character's R15 rig. In this tutorial, you'll parent the clothing item to Roblox's provided R15 armature and verify the Automatic Skinning Transfer data. After rigging, be sure to test out some basic poses to ensure that your clothes move and stretch correctly with any character body.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Texturing-Complete.png" />
<figcaption>Clothing mesh with no rigging data</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Rigging-Pose-Tests.png" />
<figcaption>Clothing mesh with rigging data performing pose tests</figcaption>
</figure>
</GridContainer>
The rigging process requires the following:
1. Download and append an R15 armature to your project.
2. Parent the rig with Blender's automatic weights.
3. Test poses.
## Transfer armature
Roblox provides an R15 base armature that you can import into your own project. While it is possible to create your own R15 armature rig, importing a premade rig saves you time and reduces the potential for error.
To import the R15 character armature into your file:
1. Download Roblox's [Rig_and_Attachments_Template.blend](../../../assets/modeling/meshes/reference-files/Rig_and_Attachments_Templates.zip). Do not open this project.
2. In your current clothing project, return to **Object Mode**.
3. Navigate to **File** > **Append**, and select the saved **Rig_And_Attachment.blend** file. An additional folder structure appears.
<img src="../../../assets/art/accessories/creating/Rigging-Append-Browser.png" />
4. Select **Armature** > **Armature** and press **Append**. An armature object is added to your workspace.
<img src="../../../assets/art/accessories/creating/Rigging-Armature-Appended.png" />
5. The armature may need reorientation with the following steps:
1. With the armature selected, open the **Item tool** sidebar.
2. Adjust the rotation so the armature is correctly aligned with your mesh.
3. After alignment, navigate to **Object** > **Apply** > **All Transforms** to freeze your new rotation values.
<img src="../../../assets/art/accessories/creating/Rigging-Freeze-Transforms.png" />
<video controls src="../../../assets/art/accessories/creating/Rigging_01.mp4" width="100%"></video>
## Parent armature
With the armature rig in place, you can use Blender's **Parent with Automatic Weights** functionality to quickly set your clothing mesh as a child of the armature. This feature also applies vertex weighting, or **skinning**, automatically to your mesh, which can save you significant time over skinning your clothing manually.
To parent the clothing to the rig:
1. Select the clothing mesh object.
2. Hold shift and click the **Armature** object. Ensure that the armature object is the last object selected.
3. Right-click and select **Parent** > **With Automatic Weights**.
<img src="../../../assets/art/accessories/creating/Rigging-Auto-Weights.png" />
<video controls src="../../../assets/art/accessories/creating/Rigging_02.mp4" width="100%"></video>

View file

@ -0,0 +1,40 @@
---
title: Caging setup
description: Isolate your outer cage meshes and hide extra objects before modifying your clothing cage.
next: /art/accessories/creating/modify-cage
prev: /art/accessories/creating/test-poses
---
**Caging** is the process of setting the clothing's interior and exterior surfaces, referred to as the inner and outer cages respectively. This enables your clothing to layer over existing clothing and bodies, and additional clothes to layer on top.
Since the shirt in this tutorial was created using the cage templates as a mannequin, there is no need to adjust the inner cage where your clothing asset already fits over. **Only the outer cage needs to be adjusted** to fit over the new clothing item.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Texturing-Complete.png" />
<figcaption>Clothing and cage meshes before caging</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Caging-Complete.png" />
<figcaption>Outer cage mesh after caging process</figcaption>
</figure>
</GridContainer>
The caging process uses the following steps:
1. Set up your project by isolating the outer cage and the clothing mesh in your project.
2. Modify the outer cage to wrap over the clothing mesh using sculpting tools.
To set up your project:
1. Switch to **Object mode**.
2. In the Outliner:
1. Hide the Armature.
2. Unhide your LongSleeve_OuterCage object.
3. In the Outliner, navigate to **Armature** > **Long Sleeve** and toggle the **Disable Selection** icon. This prevents accidental edits to the clothing mesh.
<img src="../../../assets/art/accessories/creating/Caging-Outliner-Setup.png" />
4. Select the OuterCage object, and navigate to Object Properties and enable **Wireframe**. This helps easily visualize and access the mesh.
<img src="../../../assets/art/accessories/creating/Caging-Outer-Cage-Properties.png" />
<video controls src="../../../assets/art/accessories/creating/Caging_01.mp4" width="100%"></video>

View file

@ -0,0 +1,35 @@
---
title: Convert
description: Use the Accessory Fitting Tool to convert a Model object to an Accessory.
prev: /art/accessories/creating/importing
---
With the `Class.Model` in your project, the last step in the process of clothing creation requires you to convert this object to a standard `Class.Accessory` that avatars can equip. Using the [Accessory Fitting Tool](../../../art/accessories/accessory-fitting-tool.md) (AFT), convert the model object to a `Class.Accessory` that you can then use in your experience or publish to the Marketplace.
To generate the accessory object:
1. In the toolbar's **Avatar** tab, click **Accessory** to open the AFT.
2. Select the `Class.Model` of the clothing item in the viewport. The tool's text field populates with the name of the object selected. Alternatively, you can select the object within the **Explorer** window.
3. Test out various sample characters, clothing, and animations. See [Test accessories](../../../art/accessories/accessory-fitting-tool.md#test-accessories) for additional information.
- If required, make minor cage adjustments using the editing features. Larger cage changes may require returning to your third-party modeling software and re-exporting the asset.
4. When ready to generate your accessory, click **Generate MeshPart Accessory**. The accessory object with your model populates in your workspace.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Exporting-Clothing-in-Studio-Highlight.png" />
<figcaption>Clothing accessory in viewport</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Exporting-Accessory-Explorer.png" />
<figcaption>Clothing accessory in Explorer</figcaption>
</figure>
</GridContainer>
<Alert severity = 'success'>
Congratulations, you've completed your clothing tutorial. With this accessory, you can:
- Equip the accessory on an avatar-ready character by drag and dropping the accessory on an existing model, or using [HumanoidDescription](../../../characters/appearance.md#manually-modify-appearance).
- Save the accessory as an [avatar asset](../../../projects/assets/index.md#for-avatars) for use in an experience later.
- If you meet certain account requirements, you can [upload your asset](../../../marketplace/publish-to-marketplace.md) for moderation and start selling it on the Marketplace.
</Alert>

View file

@ -0,0 +1,34 @@
---
title: Export
description: Use Blender's FBX export with specific settings when exporting a clothing asset.
prev: /art/accessories/creating/modify-cage
next: /art/accessories/creating/importing
---
It's important to follow the Blender export settings to ensure a Studio-compatible `.fbx` file. Before exporting your file, ensure that you've removed extra objects, such as lights, cameras, or mannequins, and applied or removed any active modifiers.
To export your file from Blender:
1. In the topbar, click **File**. A pop-up menu displays.
2. Select **Export**, then **FBX (.fbx)**. The **Blender File View** window displays.
3. On the right-hand side, change the **Path Mode** property to **Copy**, then toggle the **Embed Textures** button.
<img src="../../../assets/modeling/skinned-meshes/Blender-Export-Settings-1.png" width="320" />
4. If your project doesn't have .01 scene unit scaling, set the **Transform** > **Scale** to `.01`.
<img src="../../../assets/modeling/skinned-meshes/Blender-Export-Settings-2.png" width="320" />
5. Under the **Armature** section, disable **Add Leaf Bones**.
<img src="../../../assets/modeling/skinned-meshes/Blender-Export-Settings-3.png" width="320" />
6. Disable **Bake Animation**.
<img src="../../../assets/modeling/skinned-meshes/Blender-Export-Settings-4.png" width="320" /> <br />
7. Click the **Export FBX** button.
<Alert severity ='success'>
You've completed the exporting section of this tutorial. If desired, download a [reference sample](../../../assets/art/accessories/creating/Long_Sleeve_Export.fbx) of this exported file for comparison. You can use this reference in the next importing step.
</Alert>

View file

@ -0,0 +1,16 @@
---
title: Import
description: Use the 3D Importer to import your custom accessory into Studio.
prev: /art/accessories/creating/exporting
next: /art/accessories/creating/converting
---
After creating the clothing item in your third-party modeling tool, import the `.fbx` using Studio's 3D Importer tool to add the object to your project as a `Class.Model`.
Use the 3D Importer to import your `.fbx` into Studio:
1. From Studio's **File** menu, select **Import 3D**.
1. Select your exported `.fbx` and verify any possible warnings or errors.
1. Warnings or errors related to the clothing mesh may require returning to Blender to resolve.
1. Select **Import** to add the model to your workspace.
<img src="../../../assets/art/accessories/creating/Exporting-Clothing-In-Studio.png" />

View file

@ -0,0 +1,38 @@
---
title: Basic clothing creation
description: This tutorial covers the basic steps required in Blender to Studio-ready clothing assets from scratch.
next: /art/accessories/creating/modeling-setup
---
<iframe width="800" height="450" src="https://www.youtube-nocookie.com/embed/C-DwGRBHvmE" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br /><br />
You can create your own custom avatar clothing using Blender and Roblox's downloadable project templates. These project templates include [components required for layered clothing](../../../art/accessories/layered-clothing.md#components-of-a-layered-clothing-accessory), and can double as a mannequin to quickly begin shaping and sculpting your clothing assets. By the end of this tutorial, you will have a clothing asset that contains all the required components for a layered clothing accessory on the Marketplace.
<Alert severity ='info'>
While this content and the provided examples cover the Blender workflow and tools, you can apply the same concepts to other third-party modeling applications.
</Alert>
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-Mannequin-Start.png" />
<figcaption>Provided Blender mannequin template</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Example-Product.png" />
<figcaption>Final Studio-ready clothing asset</figcaption>
</figure>
</GridContainer>
This tutorial is intended for creators with moderate Blender experience and uses the following processes to create a clothing item:
1. Modeling basic clothing using an existing mannequin shape.
2. Texturing your mesh to change its surface appearance and color.
3. Caging your clothing mesh using Roblox's template cages.
4. Rigging your clothing mesh using Roblox's armature templates.
5. Exporting your asset from Blender.
6. Importing and converting the model to an accessory in Studio.
<Alert severity ='info'>
This tutorial covers a **basic workflow** for 3D clothing creation. There are many external resources for different techniques, processes, and refinements you can incorporate for creating clothing, such as using Blender's various sewing and cloth simulation tools and PBR textures.
</Alert>

View file

@ -0,0 +1,71 @@
---
title: Modeling setup
description: Setup your Blender environment with the correct files and templates to model efficiently.
next: /art/accessories/creating/trimming
prev: /art/accessories/creating/
---
Modeling, sometimes known as **sculpting**, is the process of shaping 3D geometry. In this tutorial, use one of Roblox's template files to create the initial shape of the clothing and add unique and clothing-specific modifications to its geometry. You can further apply the techniques and processes in this tutorial to create any other type of clothing, such as pants, skirts, shoes, and more.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-Mannequin-Start.png" />
<figcaption>Base Mannequin using Roblox provided cage meshes</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-Complete-2.png" />
<figcaption>Sculpted clothing mesh for a long sleeve shirt</figcaption>
</figure>
</GridContainer>
This modeling tutorial covers the following processes:
1. Setting up your project and creating your base mesh.
2. Clearing the duplicated mesh of extra attributes.
3. Trimming the shape to match the desired clothing type.
4. Adding and smoothing the vertices of your clothing shape.
5. Scaling and positioning the clothes onto the mannequin.
6. Sculpting fabric and other details onto the mesh object.
7. Closing the holes in your mesh, making it watertight.
## Set up mesh
To get your project started, download and open Roblox's [Clothing_Cage.blend](../../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip) project and begin setting up your basic project objects.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-Cages-Selected.png" />
<figcaption>3D viewport - duplicated cage mesh object</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-Cage-Copied.png" width = "80%"/>
<figcaption>Outliner - duplicated object named "LongSleeve"</figcaption>
</figure>
</GridContainer>
To set up your project and your initial mesh object:
1. Download the [Clothing_Cage.blend](../../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip) project. This project includes the inner and outer cage mesh that you will use as temporary mannequins.
2. Open this file, click **Save As**, and save the project with a new name. This will be your main Blender project for the clothing accessory.
3. In the Outliner, copy and paste **InnerCage** object to duplicate it.
4. With the duplicated object highlighted, right-click in the viewport and select **Parent** > **Parent and Keep Transformation**.
5. In the Outliner, right-click and delete the extra **Cage.001 data object**.
6. Rename the duplicated object as "LongSleeve".
7. Rename the original cages as "LongSleeve_OuterCage" and "LongSleeve_InnerCage", respectively.
8. **Hide** the original \_OuterCage and \_InnerCage objects. You use these later in the Caging step.
<video controls src="../../../assets/art/accessories/creating/Modeling_00.mp4" width="100%"></video>
## Clear extra attributes
The cage mesh objects in the template include some helper vertex color properties that need to be removed from your clothing mesh. If left in, the vertex colors may clash with the texture of the object after importing in Studio.
To remove extra attribute data:
1. With the LongSleeve object selected, navigate to the **Properties** panel > **Object Data Properties** > **Color Attributes**.
<img src="../../../assets/art/accessories/creating/Modeling-Clear-Vertex-Colors.png" />
2. With **colorSet1** selected, remove it by pressing the **–** button.
<video controls src="../../../assets/art/accessories/creating/Modeling_01.mp4" width="100%"></video>

View file

@ -0,0 +1,33 @@
---
title: Modify outer cage
description: Modify the outer cage to fit tightly over your clothing item.
next: /art/accessories/creating/exporting
prev: /art/accessories/creating/caging-setup
---
With your project environment set, you can now adjust your outer cage using sculpting and editing tools. Set your outer cage as close as possible to your clothing mesh to ensure the best deformation and layering effects.
<Alert severity = 'error'>
**Do not delete any vertices or faces of the provided cages.** Destructive modification of the cages can cause import issues and prevent the clothing from importing and displaying as expected.
</Alert>
To modify your outer cage:
1. With the OuterCage mesh selected, switch to **Sculpt Mode**.
2. Enable **X Axis Symmetry**.
3. Switch to **Inflate tool**.
4. Press <kbd>F</kbd> to adjust the radius of the brush.
5. Starting with one side, expand the outer cage to fit precisely over the mesh
6. After expanding the cage mesh over a majority of the mesh, disable **X Axis Symmetry** and address individual spots. Keep the following in mind:
1. Your outer cage should always cover your clothing mesh.
2. Your outer cage should be as close to the clothing mesh as possible to ensure accurate layering.
3. For small angular areas, like the armpit, you may need to switch back to **Edit Mode** and grab the individual vertices to avoid crowding your cage mesh vertices.
<video controls src="../../../assets/art/accessories/creating/Caging_02.mp4" width="100%"></video>
7. Perform additional passes in **Edit Mode** with wireframe enabled to ensure your outer cage vertices fit as closely as possible. A tight fit ensures that your clothing item layers as accurately as possible.
<video controls src="../../../assets/art/accessories/creating/Caging_03.mp4" width="100%"></video>
<Alert severity = 'success'>
You've completed the caging section of this tutorial.
If desired, download a [reference sample](../../../assets/art/reference-files/checkpoint/4_LongSleeve-Caging-Complete.blend) of this project for comparison before exporting your project and bringing it into Studio.
</Alert>

View file

@ -0,0 +1,37 @@
---
title: Sculpt detail
description: Use Blender's sculpting and simulation tools to add detail to your clothing shape.
next: /art/accessories/creating/watertight
prev: /art/accessories/creating/trimming
---
After scaling and positioning your clothing mesh, begin applying sculpting detail to add cloth and fabric detail to your mesh. While there are many ways to sculpt an object in Blender, this tutorial primarily uses the **Elastic Deform**, **Inflate**, and **Clothing** tools to make your mesh look more like realistic clothing.
<center>
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-Complete-2.png" width="60%" />
<figcaption>Clothing mesh after sculpting details</figcaption>
</figure>
</center>
To add clothing details:
1. With the shirt highlighted, switch to **Sculpt Mode**.
2. Disable **X-Ray mode**, if required.
3. Enable **X Mirror** to perform symmetrical edits.
4. Select the **Elastic Deform** tool at `.5` strength to stretch parts of vertices to completely cover the mannequin.
1. Use <kbd>F</kbd> to change the radius of the brush.
2. You can hide the mannequin to access hard-to-reach areas.
<video controls src="../../../assets/art/accessories/creating/Modeling_05.mp4" width="100%"></video>
5. Select the **Cloth** tool.
6. Disable **X Mirror**. The cloth tool can produce unexpected results with symmetry enabled.
7. Using the Cloth tool, click and drag on your mesh to add a cloth-like surface to your mesh. Adjust the settings to change the strength of the deformations.
<video controls src="../../../assets/art/accessories/creating/Modeling_06.mp4" width="100%"></video>
8. Using the **Elastic Deform**, **Inflate**, and **Cloth** tools, make the final adjustments to your mesh so that it sits on top of the mannequin with the final desired shape.
<video controls src="../../../assets/art/accessories/creating/Modeling_07.mp4" width="100%"></video>

View file

@ -0,0 +1,41 @@
---
title: Test poses
description: Test your poses after rigging a clothing item to ensure the clothes bend and deform correctly.
next: /art/accessories/creating/caging-setup
prev: /art/accessories/creating/armature-setup
---
With the clothing mesh parented to an armature, you can now perform quick tests to verify that your clothing deforms correctly.
<Alert severity ='warning'>
If you see issues with the deformation of your clothing, you may need to correct the issue with weight-painting, a technique for manually applying skinning data to your meshes.
This tutorial doesn't cover the process of weight-painting. For additional resources on manually weight painting and instructions on updating skinning data on meshes, see the following resources:
- [Skin a simple mesh](../../modeling/skin-a-simple-mesh.md)
- [Skin a humanoid mesh](../../modeling/skin-a-humanoid-model.md)
</Alert>
To test your clothing's movement:
1. With your armature selected, navigate to the **Properties** panel > **Armature properties**.
2. In **Viewport Display** > **Show**, enable **In Front**. The **In Front** property enables you to easily see and access the bones for posing.
<img src="../../../assets/art/accessories/creating/Rigging-Bones-In-Front.png" />
3. In the viewport, select your armature and navigate to **Pose** mode.
4. Click on various bones and press <kbd>R</kbd> to rotate and set a pose. After pressing <kbd>R</kbd>:
1. Click to save the rotation.
2. Right-click to cancel an unsaved rotation.
3. If you have saved a rotation, reset your pose in the viewport with right-click and select **Clear User Transforms**.
5. Try various natural poses of your character to ensure that your clothing stretches and fits correctly.
<video controls src="../../../assets/art/accessories/creating/Rigging_03.mp4" width="100%"></video>
<Alert severity = 'success'>
You've completed the rigging section of this tutorial. If desired, download a [reference sample](../../../assets/art/reference-files/checkpoint/3_LongSleeve-Rigging-Complete.blend) of this project for comparison.
</Alert>

View file

@ -0,0 +1,25 @@
---
title: Create texture map
description: Generate a 2D texture map image that you can save your texture painting to.
prev: /art/accessories/creating/unwrapping
next: /art/accessories/creating/texture-painting
---
Creating seams and unwrapping tells Blender how to project the 3D surface of the clothing item in 2D. Before you can apply any texture appearance changes, you need to create a texture map, which is the specific 2D image you apply and save your textures to.
To create a new texture map:
1. With the clothing mesh selected, navigate to the **Properties** panel > **Material Preview** tab.
<img src="../../../assets/art/accessories/creating/Texturing-Add-Image.png" width="40%" />
2. Select the **+ New** button.
3. Next to Base Color, select the **yellow dot** and click **Image Texture**.
<img src="../../../assets/art/accessories/creating/Texturing-Add-Base.png" width="80%" />
4. Click the **+ New** button.
1. Name the texture image the same as your clothing mesh with a `_TXT` affix.
2. Set the color to black, or any base color of your preference.
3. Keep the rest of the default settings.
4. Press **OK** when completed.
<video controls src="../../../assets/art/accessories/creating/Texturing_03.mp4" width="100%"></video>

View file

@ -0,0 +1,22 @@
---
title: Texture painting
description: Use Blender's Texture Painting tools to apply a surface appearance to your clothing item.
prev: /art/accessories/creating/texture-map
next: /art/accessories/creating/armature-setup
---
With a new image ready to apply textures to, use Blender's Texture Paint mode to quickly brush texture colors onto your mesh:
1. Navigate to **Texture Paint mode**.
2. On the viewport, select the clothing object.
3. Open up the sidebar tools to access brush settings.
4. Select a color, brush size, and falloff to apply. You might need to adjust settings, depending on the modifications you intend to apply.
5. Draw on either the UV 2D map, or the 3D mesh.
6. Save the `.png` of your texture map by selecting **Image** > **Save**.
<video controls src="../../../assets/art/accessories/creating/Texturing_04.mp4" width="100%"></video>
<Alert severity = 'success'>
You've completed the texturing section of this tutorial. If desired, download a [reference sample](../../../assets/art/reference-files/checkpoint/2_LongSleeve-Texturing-Complete.blend) of this project and texture image for comparison.
There are a lot of ways to texture and apply a unique appearance to your meshes. For additional suggestions, try utilizing alpha transparencies, unique seams, [PBR textures](../../modeling/surface-appearance.md), or Blender's other texturing tools and techniques.
</Alert>

View file

@ -0,0 +1,72 @@
---
title: Trim clothing shape
description: Create the general shape of your clothing item by removing unnecessary sections of your duplicated mesh.
next: /art/accessories/creating/sculpting
prev: /art/accessories/creating/modeling-setup
---
With a clean mesh object to work with, cut the basic shape of the type of clothing item you intend to create and prepare the mesh for additional sculpting detail. In this tutorial, you create a long-sleeve shirt shape by removing the leg, arm, and head sections, smoothing out the mesh to create a flat canvas, and repositioning the mesh onto your temporary mannequin.
<center><figure>
<img src="../../../assets/art/accessories/creating/Modeling-Wireframe-View.png" width="60%" />
<figcaption>Long-sleeve trimming of the full-body mesh.</figcaption>
</figure></center>
## Trim clothing shape
Create the general shape of your clothing type by trimming sections of your duplicated mannequin mesh.
To trim your clothing shape:
1. Select the **LongSleeve** object.
2. Switch to **Edit Mode**.
3. Enable **X-Ray mode** in the top right corner of the viewport.
4. Click and drag over parts of the mesh that you do not want to include in your shirt.
5. Press <kbd>X</kbd> and select **Vertices** to delete these sections of your mesh.
6. **Repeat step 4** until you reach your desired clothing shape.
<video controls src="../../../assets/art/accessories/creating/Modeling_02.mp4" width="100%"></video>
## Add and smooth vertices
With the basic shape created, subdivide the surface of your clothing mesh to add vertices and smooth out the mesh. This process removes the grid-like surface and allows you to apply more complex sculpting detail later.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-No-Modifier.png" />
<figcaption>Before applying Subdivision modifier and Shade Smooth</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Modeling-SubDiv-Modifier.png" />
<figcaption>After applying Subdivision modifier and Shade Smooth</figcaption>
</figure>
</GridContainer>
To add and smooth your vertices:
1. Switch back to **Object Mode**.
2. With the clothing mesh selected, navigate to the **Modifier Properties** panel.
3. Select **Add Modifier** > **Subdivision Surface Modifier** and click **Apply** with the default settings.
4. In the viewport, right-click the object and select **Shade Smooth** to eliminate the creases on your clothing article.
<video controls src="../../../assets/art/accessories/creating/Modeling_03.mp4" width="100%"></video>
## Scale and position
With your base clothing shape created, the next steps are to scale out the mesh and reposition it on top of the mannequin.
<center><figure>
<img src="../../../assets/art/accessories/creating/Modeling-Positioning-and-Scaling.png" width="60%" />
<figcaption>Clothing mesh should fit over mannequin after applying a reposition and scale</figcaption>
</figure></center>
To set up and scale your clothing to your mannequin:
1. Return to **Object Mode**.
2. **Unhide** one of your original cage meshes.
3. In the filter dropdown, enable **Selectable** toggles, and set your body mesh to unselectable. Disabling the **Selectable** toggle prevents accidental edits to your mannequin.
4. Select your shirt mesh and lightly **scale** and **position** your asset to rest over the mannequin.
5. Press <kbd>S</kbd> and use your mouse to scale. In most cases, the scaling should be a small change.
6. Press <kbd>G</kbd> and click to grab your shirt, make sure the shirt rests loosely over the mannequin. The shirt does not need to fit perfectly at this point.
<video controls src="../../../assets/art/accessories/creating/Modeling_04.mp4" width="100%"></video>

View file

@ -0,0 +1,61 @@
---
title: Create seams and unwrap
description: Use Blender's seams and unwrapping functionality to project your 3D surface on a 2D texture plane.
prev: /art/accessories/creating/watertight
next: /art/accessories/creating/texture-map
---
**Texturing** is the process of customizing the color, tone, and shading of your model's surface. Custom meshes and models use a 2D image, known as a texture map, to project various surface appearance elements onto your 3D object. In this tutorial, apply a complete color to your shirt and add a smaller design using Blender's Texture Paint mode.
<Alert severity ='warning'>
This tutorial does not cover [PBR textures](../../modeling/surface-appearance.md), which are advanced textures that can replicate real-world texture properties, like reflectivity and surface roughness, and are recommended to give your clothing items an extra dimension of creativity and visual pop. PBR textures often require a third-party application such as Substance Painter.
</Alert>
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Texturing-Start.png" />
<figcaption>Clothing mesh after sculpting</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Texturing-Complete-3.png" />
<figcaption>Clothing mesh after texturing</figcaption>
</figure>
</GridContainer>
The texturing process requires the following steps:
1. Create seams in your mesh to define how Blender unwraps your 3D object.
2. Unwrap the UV of your model, creating a distinct front and back 2D surface to apply textures on based on your seams.
3. Create a new texture image to save as your 2D map.
4. Paint a custom texture using Blender's Texture Paint tools.
## Create seams
To begin texturing, you must first generate a **UV map**, or 2D projection, of the surface of your mesh. To set up this UV map, you tell Blender which edges of your mesh to use as seams when creating the projection.
To create seams that naturally separate the front and back of the shirt:
1. With your clothing object selected, switch to **Edit mode**.
2. In the top-left, navigate to the Select modes and select **Edge select**.
3. Hold <kbd>Alt</kbd> and click on the center vertical edges of your shirt. The detected edge highlights.
4. Whenever a complete edge is selected, **right-click** and select **Make Seam**. The edge highlights to indicate the seam in your model.
5. **Repeat steps 3-4** to create a continuous seam across your mesh.
<video controls src="../../../assets/art/accessories/creating/Texturing_01.mp4" width="100%"></video>
## UV unwrap
After applying the seams, Blender now knows how to "unwrap" the mesh surface onto a 2D plane as a front and back surface.
<center><figure>
<img src="../../../assets/art/accessories/creating/Texturing-UV-Maps.png" width="60%" />
<figcaption>UV-mapping of your 3D clothing mesh.</figcaption>
</figure></center>
To UV Unwrap your object by your selected seams:
1. While in Edit mode, press <kbd>A</kbd> to highlight all vertices.
2. At the top of the viewport, select **UV** > **Unwrap**.
3. Switch to **Texture Paint** mode, your UVs display on the left window when your object is selected.
<video controls src="../../../assets/art/accessories/creating/Texturing_02.mp4" width="100%"></video>

View file

@ -0,0 +1,41 @@
---
title: Make mesh watertight
description: Seal off your geometry to ensure that there are no angles where the interior backfaces of your object are exposed.
next: /art/accessories/creating/unwrapping
prev: /art/accessories/creating/sculpting
---
With the shirt shape finalized, make your mesh **watertight** by "sealing" the holes at the neck, waist, and wrist. A watertight shape ensures that only the top visible surface of the mesh is exposed at any angle. If an asset is not watertight, it may expose backfaces, or single sided faces, that could affect the rendering of your asset and performance when equipped.
<GridContainer numColumns="2">
<figure>
<img src="../../../assets/art/accessories/creating/Watertight-Top.png" />
<figcaption>Watertight top view</figcaption>
</figure>
<figure>
<img src="../../../assets/art/accessories/creating/Watertight-Bottom.png" />
<figcaption>Watertight bottom view</figcaption>
</figure>
</GridContainer>
To make your mesh watertight:
1. Select your mesh and switch to **Edit Mode**.
2. Starting with any hole in the mesh, hold <kbd>Alt</kbd> and click the **last edge** on the mesh. The entire edge highlights.
3. Press <kbd>E</kbd> to extrude the mesh and click after a small length is added.
4. With the new edge still selected, right-click and select **Merge Vertices** > **At Center**.
5. Press <kbd>G</kbd> to grab the new vertex and reposition it within your clothing mesh.
6. **Repeat steps 2-5** until all the interior-exposing holes of your mesh are closed.
<video controls src="../../../assets/art/accessories/creating/Modeling_08.mp4" width="100%"></video>
<Alert severity = 'success'>
You've completed the modeling section of this tutorial. If desired, download a [reference project](../../../assets/art/reference-files/checkpoint/1_LongSleeve-Modeling-Complete.blend) of this stage and compare it against your work.
There are a lot of techniques to create clothing. Try experimenting with the following techniques, tools, and processes to create additional unique assets:
- Making asymmetrical clothing.
- Blender's [cloth simulation](https://docs.blender.org/manual/en/latest/physics/cloth/examples.html#using-simulation-to-shape-sculpt-a-mesh) and other sculpting tools.
- Various community sewing and fabric techniques for creating clothing on Blender.
</Alert>

View file

@ -0,0 +1,57 @@
---
title: Rigid accessory export settings
description: Use the appropriate export settings in Maya and Blender to generate Studio-ready .fbx files.
---
Export your rigid accessory model as a `.fbx` or `.gltf` file to take advantage of all of Studio's 3D import features. These file types contains mesh and texture data you need to later [import](../../art/modeling/3d-importer.md) into Studio.
<Alert severity = 'warning'>
<AlertTitle>If creating other types of 3D models:</AlertTitle>
<ul>
<li>For generic meshes, see [general mesh specifications](../modeling/specifications.md) and [general export settings](../modeling/export-requirements.md).</li> <br />
<li>For layered accessories, see [layered accessory specifications](../accessories/clothing-specifications.md) and [layered export settings](../accessories/clothing-export-settings.md).</li> <br />
<li>For avatar characters, see [avatar specifications](../../art/characters/specifications.md) and [avatar export settings](../characters/export-settings.md).</li>
</ul>
</Alert>
<Alert severity = 'warning'>
If you have any modifiers to your mesh or project objects, make sure to apply
or delete them before export.
</Alert>
## Blender
Blender allows you to export in `.fbx` or `.gltf` as well as other formats. If you are using `.fbx` export, familiarize yourself with [Blender's FBX scaling](../blender.md#adjust-scale-fbx) to ensure that you successfully import the model into Studio at the correct scale.
### Export settings
To export the `.fbx` file in Blender:
1. In the topbar, click **File**. A pop-up menu displays.
2. Select **Export**, then **FBX (.fbx)**. The **Blender File View** window displays.
3. On the right-hand side, change the **Path Mode** property to **Copy**, then toggle the **Embed Textures** button.
<img src="../../assets/modeling/skinned-meshes/Blender-Export-Settings-1.png" width="320" />
4. Set **Transform** > **Apply Scalings** to **Unit Scale**. For more information, see [scaling and scene units](../blender.md#adjust-scale-fbx).
<img src="../../assets/modeling/skinned-meshes/Blender-Export-Settings-5.png" width="320" />
5. Click the **Export FBX** button.
6. After exporting, use Studio's [3D Importer](../../art/modeling/3d-importer.md) to import your model and the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) to convert the model into an accessory.
## Maya export settings
To export a mesh in Maya as a `.fbx` file:
1. In the topbar, click **File**. A pop-up menu displays.
2. Select **Export All**. The **Export All** window displays.
3. Near the bottom of the window, click the **Files of type** dropdown, then select **FBX export**.
4. On the right-hand side of the window, navigate to the **Options...** section.
5. In the **Geometry** section, enable **Smooth Mesh** and **Referenced Asset Content**.
6. In the **Animation** section, disable **Animation**.
7. If you need to import textures as a `.png`, in the **Embed Media** section, enable **Embed Media**.
8. In the **Advanced Options** section,
- Navigate to **Units**, then enable **Automatic**.
- Navigate to **Axis Conversion**, then set the **Up Axis** property to **Y**.
9. Click the **Export All** button.
<img src="../../assets/accessories/lc-requirements-maya-settings.png" />
10. After exporting, use Studio's [3D Importer](../../art/modeling/3d-importer.md) to import your model and the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) to convert the model into an accessory.

View file

@ -0,0 +1,205 @@
---
title: Accessories from an existing model
description: This tutorial covers the basic steps required to publish a custom asset on the Marketplace.
---
In many cases, you may want to convert a premade model from your modeling
software into an accessory on Roblox. If you are looking to create your
accessory from scratch, see [Create accessories](./creating-rigid/index.md).
Using a provided 3D reference file, this tutorial covers each step in the workflow to properly configure and export a 3D model with PBR textures from Blender and generate your own **rigid accessory** in Studio. After you create the accessory, you can upload it to the Marketplace, save it to your toolbox, and use it in your own experiences.
<Alert severity = 'info'>
This tutorial only covers rigid accessories, and does not cover the process of converting more advanced clothing or character body models.
</Alert>
<GridContainer numColumns="2">
<figure>
<img src="../../assets/art/accessories/creating-rigid/Blender-Mask-Preview.png" />
<figcaption>
Mask asset as an untextured mesh object in Blender
</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/creating-rigid/Studio-Mask-Preview.png" />
<figcaption>
Mask asset equipped as an `Class.Accessory` in Studio
</figcaption>
</figure>
</GridContainer>
Using a provided reference 3D asset, this tutorial covers the following rigid accessory workflow:
1. Modeling overview and requirements in Blender.
2. Texturing setup using PBR textures in Blender.
3. Exporting your asset as a `.fbx` from Blender.
4. Importing the asset into Studio.
5. Fitting and converting the imported model to an `Class.Accessory` object.
6. Publishing and validating the accessory for Marketplace upload.
<Alert severity = 'info'>
While this content covers the Blender workflow with a provided reference example, you can apply the same concepts to other third-party modeling applications and custom assets.
</Alert>
## Setup model
Whether you are using an existing shape or creating your own 3D object, it's important to consider [technical requirements](../../art/accessories/specifications.md), such as keeping your geometry within a polycount budget, and [policy requirements](../../marketplace/marketplace-policy.md), such as ensuring your design does not infringe on other creator's IP both within and outside of the Roblox ecosystem.
Correctly setting up your asset in Blender helps reduce importing and rendering issues later in Studio. When importing Roblox-related `.fbx` files, such as the provided [mask asset](../../assets/art/accessories/creating-rigid/Rigid_Mask_Model-Only.fbx), you might discover that your asset imports at a 1/100 scale due to the `.fbx` conversion. In your Blender project, you can quickly reset the scale to make the asset easier to work with in the Blender environment.
<Alert severity = 'info'>
If you are creating your own rigid accessory from scratch, it's important to understand Roblox's [standard avatar sizes](../../art/accessories/body-scale.md), especially for rigid accessories that contour around a body part, such as a hat or bangle.
</Alert>
Using the [Sci Fi Mask](../../assets/art/accessories/creating-rigid/Rigid_Mask_Model-Only.fbx) reference as an example, use the following instructions to import and set up your rigid accessory model in Blender:
1. Open a new Blender project.
2. Press <kbd>A</kbd> to highlight all and <kbd>X</kbd> to delete the default starting cube and cameras.
3. Navigate to **File** > **Import** > **FBX** and select the downloaded reference model.
4. If the object imports at a small scale, **select** the object and navigate to the **Properties** panel > **Object Properties** > **Transform** and adjust the **X**, **Y**, **Z** to `1.000`.
<img src="../../assets/art/accessories/creating-rigid/Blender-Scale-1.png" />
<video controls src="../../assets/art/accessories/creating-rigid/Scaling-FBX-Import.mp4" width="100%"></video>
5. If you are sculpting your asset from scratch, orient the object in your workspace. If you are importing, you may not need to make any adjustment.
1. Make sure your asset is facing **-Y forward**.
2. Ideally your accessory should be moved to `0`,`0`,`0` in the world to ensure it imports at the center of the camera in Studio.
<Alert severity='success'>
You've completed the modeling section of this tutorial. If desired, download a [reference version](../../assets/art/accessories/creating-rigid/Rigid_Mask_Texturing-Completed.blend) of this stage of the project for comparison.
There are many tools and workflows to create your own unique asset. For additional suggestions, try creating different asset types, such as shoulder pads or belts, or importing a reference model into Blender as a mannequin to sculpt and shape your cosmetics from scratch.
</Alert>
## Apply texture
**Texturing** is the process of applying a surface appearance to a 3D object. Blender provides various tools and features to create and connect your own texture maps to your asset, allowing you to preview your model's final appearance and link the texture images to your exported file.
The mask example asset uses [physically-based rendering (PBR) textures](../../art/modeling/surface-appearance.md), which are advanced textures that create realistic surfaces under different lighting environments. PBR textures use multiple image files, or **maps**, to represent the various surface properties of your 3D object.
<GridContainer numColumns="4">
<figure>
<img src="../../assets/art/accessories/creating-rigid/TXT_Rigid_Mask_ALB.png" />
<figcaption>
Color (Albedo) Map
</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/creating-rigid/TXT_Rigid_Mask_NOR.png" />
<figcaption>
Normal Map
</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/creating-rigid/TXT_Rigid_Mask_RGH.png" />
<figcaption>
Roughness Map
</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/creating-rigid/TXT_Rigid_Mask_MET.png" />
<figcaption>
Metalness Map
</figcaption>
</figure>
</GridContainer>
This tutorial doesn't cover the PBR texture creation process, which typically involves using third-party software such as ZBrush or Substance 3D Painter. Instead, this section goes over the process of bringing premade PBR image files into Blender and properly associating them to your asset on export.
<Alert severity = 'warning'>
While PBR textures are not required for accessories, adding PBR textures can add extra visual flair and realism to elevate your creations. For an example on using Blender to create a basic, non-PBR texture, see [Texture basic clothing](../../art/accessories/creating/unwrapping.md).
</Alert>
To configure and link your PBR textures to your model:
1. Download [Rigid_Mask_Textures.zip](../../assets/art/accessories/creating-rigid/Rigid_Mask_Textures.zip) and unzip the textures images locally in the same directory as your Blender project.
2. In Blender, navigate to the **Shading** tab. Ensure that your object is selected.
1. If you don't see the **PrincipledBSDF node**, select the **+New** button to create a new material.
<img src="../../assets/art/accessories/creating-rigid/Blender-New-Material.png" />
<img src="../../assets/art/accessories/creating-rigid/Blender-Empty-Node.png" />
3. From your file browser, drag and drop your texture `.png` files into the node section. A new image node appears with each file.
4. In the newly created node, click and drag the following image nodes to their appropriate connection on the Principled BSDF main node:
1. **\_ALB texture**: Connect the **Color** node to **Principled BSDF** > **Base Color**.
<img src="../../assets/art/accessories/creating-rigid/Albedo-Node.png" />
2. **\_MTL texture**: Connect the **Color** node to **Principled BSDF** > **Metallic**.
<img src="../../assets/art/accessories/creating-rigid/Metal-Node.png"/>
3. **\_RGH texture**: Connect the **Color** node to **Principled BSDF** > **Roughness**.
<img src="../../assets/art/accessories/creating-rigid/Rough-Node.png"/>
4. **\_NOR texture**:
1. Click **Add** > **Vector** > **Normal Map** to generate a NormalMap node. This node is required to convert Normal PBR image maps.
2. Connect the \_NOR node's **Color** to the NormalMap node's **Color** connection.
3. Connect the NormalMap's **Normal** to the **Principled BSDF** > **Normal**.
<img src="../../assets/art/accessories/creating-rigid/Normal-Node.png" />
5. Test your textures by changing the viewport viewing mode to **Viewport Shading > Material Preview Mode**.
<video controls src="../../assets/art/accessories/creating-rigid/Adding-PBR.mp4" width="100%"></video>
<Alert severity = 'success'>
You've completed the texturing section of this tutorial. If desired, download a [reference sample](../../assets/art/accessories/creating-rigid/Rigid_Mask_Texturing-Completed.blend) of this stage of the project for comparison.
If you are creating your own PBR textures, check out [Material references](../../art/modeling/material-reference.md) for various PBR material examples you can apply to your next accessory.
</Alert>
## Clean up
After modeling and texturing your asset, you can begin the process of **exporting** your Blender project as a `.fbx`. The start of this process includes cleaning up your project, which can involve deleting or removing any extra objects, such as lights, cameras, or mannequin meshes, to ensure you only export the accessory mesh, and applying any modifiers to your mesh object.
An often forgotten cleanup step involves **applying your transformations**, also known as **freezing your transforms**, by setting your orientation, rotation, and scale deltas to zero. Failure to apply any transformations can result in unexpected behavior and orientation when importing the mesh in Studio.
To freeze your transforms:
1. In Object mode, select your mesh object.
2. Navigate to **Object** > **Apply** > **All Transforms**.
<img src="../../assets/art/accessories/creating-rigid/Blender-Apply-Transforms.png" />
## Export from modeling tool
After modeling and texturing your asset, you can begin the process of **exporting** your Blender project as a `.fbx`. The start of this process includes cleaning up your project, which can involve deleting or removing any extra objects, such as lights, cameras, or mannequins, to ensure you only export the accessory mesh, and applying any modifiers to your mesh object.
For the latest export settings for Blender, see [rigid accessory export settings](./export-settings.md).
<Alert severity = 'success'>
You've completed the exporting section of this tutorial. If desired, download a [reference sample](../../assets/art/accessories/creating-rigid/Rigid_Mask_Export.fbx) of this exported file for comparison. You can use this reference in the next importing step.
</Alert>
## Import to Studio
Studio's 3D Importer provides a quick and easy way to import third-party 3D assets into your projects. The importer provides object previews and error-checking to ensure that your asset meets Studio's general 3D requirements.
To import your asset, check out the latest information on [importing rigid accessories](./importing.md).
## Convert
After importing your asset into Studio, you can begin **fitting** your imported object to a mannequin and **converting** the `Class.Model` object into a `Class.Accessory`. When fitting and converting your accessory it's important to use the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) (AFT) to correctly preview the placement and apply the correct configurations to your accessory.
To convert your asset into a `Class.Accessory`, check out the latest information on [converting rigid accessories](./importing.md#convert-rigid-accessories).
## Upload and publish
After generating your `Class.Accessory` item, you can now begin the process of **publishing** the asset to the Marketplace. This step is optional and only applicable for creators who intend to sell their asset.
For additional information and instructions on this process, see [uploading and publishing instructions](../../marketplace/publish-to-marketplace.md).
<iframe width="800" height="450" src="https://www.youtube-nocookie.com/embed/swQW2VS9ZMA" title="YouTube video player" frameborder="0" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br />
You now have your accessory added to the Marketplace catalog! Use the item's Marketplace link to view your listing at any time, or to send to your connections and followers for additional engagement.
<img src="../../assets/art/accessories/creating-rigid/Marketplace-Listing.png" />
<Alert severity = 'info'>
See the following resources for additional Marketplace policy and related information:
- [Marketplace policy](../../marketplace/marketplace-policy.md)
- [Fees and commissions](../../marketplace/marketplace-fees-and-commissions.md)
- [Intellectual property](../../marketplace/intellectual-property.md)
- [Moderation](../../marketplace/moderation.md)
</Alert>

View file

@ -0,0 +1,92 @@
---
title: Import clothing accessories
description: Use the 3D Importer to add third-party models to Studio before using the Accessory Fitting Tool to convert the model to an Accessory.
---
Use the following instructions to [import](#import-3d-assets) your `.fbx` or `.gltf` third-party model into Studio and [convert](#convert-layered-accessories) the asset to a clothing `Accessory` object that you can save to use in your experience, share with others, or upload to the Marketplace.
<Alert severity ='info'>
The following asset example and instructions are part of the [Clothing accessory tutorial](../accessories/creating/index.md) which covers the process of converting a model from Blender to publishing the asset to the Marketplace.
</Alert>
## Import 3D assets
Studio's 3D Importer provides a quick and easy way to import third-party 3D assets into your projects. The importer provides object previews and error-checking to ensure that your asset meets Roblox's [general 3D requirements](../modeling/specifications.md).
Keep in mind, your 3D layered accessory must also follow Roblox's [clothing specifications](../accessories/clothing-specifications.md) to eventually use this asset as a layered `Class.Accessory`, or you may experience errors later in the workflow.
To import your asset:
1. From Studio's **File** menu, select **3D Importer**.
2. In the file browser, select the `.fbx` or `.gltf` file saved locally. The 3D Importer loads a preview of the object.
- If textures don't load for your asset, you can manually import your textures later.
- See [3D Importer](../../art/modeling/3d-importer.md) for additional information on import settings and troubleshooting.
3. Select **Import**. The asset populates in your workspace as a `Class.Model` with the appropriate textures applied as a `Class.SurfaceAppearance` or `Class.MeshPart.TextureID`.
<BaseAccordion>
<AccordionSummary>Manually add textures</AccordionSummary>
<AccordionDetails>
If textures didn't load correctly, add them manually. You may need to save and publish your experience in order to access the [Asset Manager](../../projects/assets/manager.md).
1. In the **Asset Manager**, click the **Import** button.
2. Upload your image files.
3. After moderation clears for your image, select the `Class.MeshPart` parented within your imported `Class.Model`.
4. If you are using a single basic texture, set the `Class.MeshPart.TextureID` property to your uploaded texture image.
5. If you are using PBR textures:
1. Add a `Class.SurfaceAppearance` child to your `Class.MeshPart`.
<img src="../../assets/art/accessories/creating-rigid/Adding-Surface-Appearance.png" />
2. In the `Class.SurfaceAppearance` properties, click each property value and assign the appropriate texture image from the asset dropdown:
1. Set the **ColorMap** to the **\_ALB** texture image.
2. Set the **MetalnessMap** to the **\_MTL** texture image.
3. Set the **NormalMap** to the **\_NOR** texture image.
4. Set the **RoughnessMap** to the **\_RGH** texture image.
<img src="../../assets/art/accessories/creating-rigid/Surface-Appearance-Asset-Dropdown.png" />
</AccordionDetails>
</BaseAccordion>
<Alert severity = 'success'>
After successful import, your model object should populate in your project as a `Class.Model` with the appropriate textures applied. See [3D Importer](../../art/modeling/3d-importer.md) for additional information on import settings and troubleshooting.
</Alert>
## Convert layered accessories
With the `Class.Model` in your project, the last step in the process of clothing creation requires you to use the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) (AFT) to convert this object to a standard `Class.Accessory` that avatar characters can equip.
<Alert severity = 'warning'>
For shoes, you must convert the left shoe and the right shoe as separate accessories. Use the following instructions for each shoe before grouping both shoe accessories as a `Class.Model` when [saving to Roblox](../../marketplace/publish-to-marketplace.md#upload-an-asset).
</Alert>
To generate the accessory object:
1. In the toolbar's **Avatar** tab, click **Accessory** to open the AFT.
2. Select the `Class.Model` of the clothing item in the viewport. The tool's text field populates with the name of the object selected. Alternatively, you can select the object within the **Explorer** window.
3. Test out various sample characters, clothing, and animations. See [Test accessories](../../art/accessories/accessory-fitting-tool.md#test-accessories) for additional information.
- If required, make minor cage adjustments using the editing features. Larger cage changes may require returning to your third-party modeling software and re-exporting the asset.
4. When ready to generate your accessory, click **Generate MeshPart Accessory**. The accessory object with your model populates in your workspace.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/art/accessories/creating/Exporting-Clothing-in-Studio-Highlight.png" />
<figcaption>Clothing accessory in viewport</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/creating/Exporting-Accessory-Explorer.png" />
<figcaption>Clothing accessory in Explorer</figcaption>
</figure>
</GridContainer>
After successful fitting and converting, your 3D model should populate in your project as an `Class.Accessory`. With this `Class.Accessory` you can perform any of the following:
- Begin the process of [uploading and publishing](../../marketplace/publish-to-marketplace.md#upload-an-asset) the clothing accessory to the Marketplace.
- Use the accessory in your current experience by equipping it to character models with [HumanoidDescription](../../characters/appearance.md#manually-modify-appearance), or by dragging and dropping the accessory under the appropriate character `Class.Model` object.
- Save the accessory to your [Toolbox](../../projects/assets/toolbox.md) or make it public on the [Creator Store](../../production/creator-store.md) to share or use within any of your experiences.

View file

@ -0,0 +1,100 @@
---
title: Import rigid accessories
description: Use the 3D Importer to add third-party models to Studio before using the Accessory Fitting Tool to convert the model to an Accessory.
---
Use the following instructions to [import](#import-3d-assets) your `.fbx` or `.gltf` third-party model into Studio and [convert](#convert-rigid-accessories) the asset to an `Accessory` object that you can save to use in your experience, share with others, or upload to the Marketplace.
<Alert severity ='info'>
The following asset example and instructions are part of the [Rigid accessory tutorial](../accessories/creating-rigid/index.md) which covers the process of converting a model from Blender to publishing the asset to the Marketplace.
</Alert>
## Import 3D assets
Studio's 3D Importer provides a quick and easy way to import third-party 3D assets into your projects. The importer provides object previews and error-checking to ensure that your asset meets Roblox's [general 3D requirements](../modeling/specifications.md).
Keep in mind, the model that you intend to create as a rigid accessory must also follow Roblox's [accessory specifications](../accessories/specifications.md) to eventually use this asset as an `Class.Accessory`, or you may experience errors later in the workflow.
To import your asset:
1. From Studio's **File** menu, select **3D Importer**.
2. In the file browser, select the `.fbx` or `.gltf` file saved locally. The 3D Importer loads a preview of the object.
<img src="../../assets/art/accessories/creating-rigid/3D-Importer.png" />
- If textures don't load for your asset, you can manually import your textures later.
- See [3D Importer](../../art/modeling/3d-importer.md) for additional information on import settings and troubleshooting.
3. Select **Import**. The asset populates in your workspace as a `Class.Model` with the appropriate textures applied as a `Class.SurfaceAppearance` or `Class.MeshPart.TextureID`.
<BaseAccordion>
<AccordionSummary>Manually add textures</AccordionSummary>
<AccordionDetails>
If textures didn't load correctly, add them manually. You may need to save and publish your experience in order to access the [Asset Manager](../../projects/assets/manager.md).
1. In the **Asset Manager**, click the **Import** button.
2. Upload your image files.
3. After moderation clears for your image, select the `Class.MeshPart` parented within your imported `Class.Model`.
4. Add a `Class.SurfaceAppearance` child to your `Class.MeshPart`.
<img src="../../assets/art/accessories/creating-rigid/Adding-Surface-Appearance.png" />
5. In the `Class.SurfaceAppearance` properties, click each property value and assign the appropriate texture image from the asset dropdown:
1. Set the **ColorMap** to the **\_ALB** texture image.
2. Set the **MetalnessMap** to the **\_MTL** texture image.
3. Set the **NormalMap** to the **\_NOR** texture image.
4. Set the **RoughnessMap** to the **\_RGH** texture image.
<img src="../../assets/art/accessories/creating-rigid/Surface-Appearance-Asset-Dropdown.png" />
</AccordionDetails>
</BaseAccordion>
<Alert severity = 'success'>
After successful import, your model object should populate in your project as a `Class.Model` with the appropriate textures applied. See [3D Importer](../../art/modeling/3d-importer.md) for additional information on import settings and troubleshooting.
</Alert>
## Convert rigid accessories
After importing your asset into Studio, you can begin **fitting** your imported object to a mannequin and **converting** the `Class.Model` object into a `Class.Accessory`. When fitting and converting your accessory it's important to use the [Accessory Fitting Tool](../accessories/accessory-fitting-tool.md) (AFT) to correctly preview the placement and apply the correct configurations to your accessory.
To fit and generate your accessory:
1. In the toolbar's **Avatar** tab, click **Accessory** to open the AFT.
2. In the tool's panel, select the **Part** field and, in the workspace, select the accessory `Class.MeshPart` object in the workspace and press **Next**.
<img src="../../assets/art/accessories/creating-rigid/AFT-Select-Mesh.png" />
3. On the Asset Type page, select the **type** of asset and the expected **body scale**. Press **Next** when complete.
1. This example uses a **Hat** asset with an **Proportions Normal** scale.
2. Body scale is typically set based on the original sculpting and sizing of the asset. See [Body Scale](../../art/accessories/body-scale.md) for additional information on rigid accessory scaling.
<img src="../../assets/art/accessories/creating-rigid/AFT-Select-Type.png" />
4. On the preview screen, select one of the humanoid characters as a mannequin:
1. In the Avatars section, select a humanoid base body character.
2. In the preview panel, deselect the previous selection. Only the humanoid body displays in the preview window.
<img src="../../assets/art/accessories/creating-rigid/AFT-Add-Avatar-Panel.png" />
5. Using both the AFT preview window and the workspace, adjust the position, scale, and rotation of the accessory.
1. Use the AFT preview window and your mannequin as an accurate preview of how your asset fits on the character. The clothing mannequin in the workspace does not accurately portray how rigid accessories attach.
2. In the workspace, use the **Move**, **Scale**, and **Rotate** tools to adjust the positioning of your rigid accessory.
3. If you accidentally select something else, click back into the AFT panel to reselect the accessory and resume your adjustments using the transformation tools.
<video controls src="../../assets/art/accessories/creating-rigid/Fitting-Mask.mp4" width="100%"></video>
6. After previewing and fitting your asset, select **Generate MeshPart Accessory** to create the Accessory and add it to your explorer.
After successful fitting and converting, your 3D model should populate in your project as an `Class.Accessory`. With this `Class.Accessory` you can perform any of the following:
- Begin the process of [uploading and publishing](../../marketplace/publish-to-marketplace.md#upload-an-asset) the accessory to the Marketplace.
- Use the accessory in your current experience by equipping it to character models with [HumanoidDescription](../../characters/appearance.md#manually-modify-appearance), or by dragging and dropping the accessory under the appropriate character `Class.Model` object.
- Save the accessory to your [Toolbox](../../projects/assets/toolbox.md) or make it public on the [Creator Store](../../production/creator-store.md) to share or use within any of your experiences.

View file

@ -0,0 +1,164 @@
---
title: Rigid accessories
description: Rigid accessories are basic 3D cosmetics users can equip and wear on their avatar character.
---
<Grid container spacing={2} style={{ marginBottom: 24, width: '100%' }}>
<Grid item xs={6} style={{ padding: 16 }}>
<Grid item container wrap="nowrap" direction="column" style={{ gap: 8, flex: 1 }}>
<div
className="container"
style={{ position: "relative", paddingBottom: "56.25%", height: 0, marginBottom: 12 }} >
<iframe
src="https://www.youtube-nocookie.com/embed/tzPn6QvU8Bo"
title="YouTube video player"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} ></iframe>
</div>
<Typography variant="body1">
A high-level overview of accessories on Roblox.
</Typography>
</Grid>
</Grid>
<Grid item xs={6} style={{ padding: 16 }}>
<Grid item container wrap="nowrap" direction="column" style={{ gap: 8, flex: 1 }}>
<div
className="container"
style={{ position: "relative", paddingBottom: "56.25%", height: 0, marginBottom: 12 }} >
<iframe
src="https://www.youtube-nocookie.com/embed/Eed29gV0hLA"
title="YouTube video player"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} ></iframe>
</div>
<Typography variant="body1">
Create and sell your first basic accessory.
</Typography>
</Grid>
</Grid>
</Grid>
Rigid accessories are the most basic 3D cosmetic items that users can equip and wear on their avatar character, such props, weapons, hats, and more. Unlike [clothing accessories](../accessories/layered-clothing.md) that stretch and fit over a character body, rigid accessories attach to a specific point on an avatar character and don't deform or wrap over a target.
To create a custom Roblox accessory for your own experience or to sell on the Marketplace, it's important to start with the following:
- A basic background with 3D modeling tools such as [Blender](https://www.blender.org/) or [Maya](https://www.autodesk.com/products/maya/overview).
- An understanding of the [components that make up a rigid accessory](#components-of-a-rigid-accessory).
- An understanding of the general [accessory creation process](#creation-process).
- Review Roblox's official tutorials to create your own accessories:
- [Rigid accessory creation tutorial](../../art/accessories/creating-rigid/index.md) - covers each process required for converting a 3D model to a rigid accessory and publishing it to the Marketplace.
- [Clothing creation tutorial](../../art/accessories/creating/index.md) - a step-by-step process of creating your own avatar-ready clothing from scratch in Blender.
- [Additional tools, resources, and guides](#resources) provided by Roblox to standardize and expedite the creation process.
## Components of a rigid accessory
All accessory models are made up of the same base components of a [mesh object](#mesh-part), [textures](#textures), and [attachment](#attachments).
When [creating accessories](#creation-process), most of these components are created first in your modeling software, then converted to their appropriate Roblox Studio instance on import.
### Mesh part
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Mesh-Bow-Example.png" /><figcaption>Bow rigid accessory mesh object</figcaption></figure>
<figure><img src="../../assets/art/accessories/Mesh-Example.png"/> <figcaption>T-shirt layered clothing mesh object</figcaption></figure>
</GridContainer>
<Alert severity = 'warning'>
Clothing, such as the t-shirt, require [additional clothing components](../accessories/layered-clothing.md) to apply the layerable effect to the 3D object.
</Alert>
All accessories require a single mesh object that represents the geometry of the accessory object. In Studio, this mesh object is represented as a `Class.MeshPart` nested under a single `Class.Model`.
### Textures
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Texture-Example.png" /> <figcaption>2D texture map for the t-shirt model</figcaption></figure>
<figure><img src="../../assets/art/accessories/Texture-Applied-Example.png" /><figcaption>T-shirt model with texture applied</figcaption></figure>
</GridContainer>
Textures are 2D image files that define the surface appearance of your 3D object. You can create textures within a texture painting program or a 3D modeling software.
In Studio, textures images are imported as image assets and are set to `Class.MeshPart` objects by a child `Class.SurfaceAppearance` object or a `Class.MeshPart.TextureID` property.
### Attachments
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Attachment-Example.png" /> <figcaption>Attachment geometry defines where the attachment connects with the character</figcaption></figure>
<figure><img src="../../assets/art/accessories/Attachment-Data-Model-Example.png" width="80%"/><figcaption>Geometry with the "_Att" suffix automatically convert to `Class.Attachment` objects in Studio</figcaption></figure>
</GridContainer>
Attachment points define where accessories attach to a character's body. In Studio, attachments are represented by `Class.Attachment` objects.
## Creation process
Custom accessories are first created in 3D modeling programs, such as [Blender](https://www.blender.org/) or [Maya](https://www.autodesk.com/products/maya/overview), before importing the `.fbx` or `.gltf` model into Studio.
To get started creating your first avatar asset, see the [avatar tutorials](../../avatar/tutorials.md).
Depending on the type of asset you are creating, the creation process follows these high-level workflows:
<GridContainer numColumns="2">
<figure> <figcaption><center>Rigid Accessory Workflow</center></figcaption><img src="../../assets/art/accessories/Workflow-Rigid.png" /></figure>
<figure><figcaption><center>Layered Accessory Workflow</center></figcaption><img src="../../assets/art/accessories/Workflow-Layered.png" /></figure>
</GridContainer>
<Alert severity = 'info'>
Since 3D creation isn't a linear process and always requires reiteration and testing, the process of creating an accessory can differ between individuals and various creation workflows.
</Alert>
## Resources
There are a variety of resources available for creators of all backgrounds to get started with accessory creation.
If you are interested in specific avatar creation topics, use the following table to find guides and resources that best match your needs:
<table>
<thead>
<tr>
<th>Topic</th>
<th>Resources</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tutorials</td>
<td>[Rigid accessory creation](../../art/accessories/creating-rigid/index.md) <br /><br />[Basic clothing creation](../../art/accessories/creating/index.md)</td>
</tr>
<tr>
<td>Reference files</td>
<td>[Accessory and clothing reference files](../../art/modeling/project-files.md)</td>
</tr>
<tr>
<td>Technical specs</td>
<td>[.FBX export settings](../../art/modeling/export-requirements.md)<br /><br />[General mesh specifications](../../art/modeling/specifications.md)<br /><br />[Accessory specifications](../../art/accessories/specifications.md)<br /><br />[Marketplace policy](../../marketplace/marketplace-policy.md)</td>
</tr>
<tr>
<td>Cosmetic creation</td>
<td>[Accessories overview](../../art/accessories/specifications.md)<br /><br />[Layered clothing overview](../../art/accessories/layered-clothing.md)<br /><br /><br />[Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md)<br /><br />[Accessory specifications](../../art/accessories/specifications.md)<br /><br />[Marketplace requirements](../../marketplace/marketplace-policy.md)</td>
</tr>
<tr>
<td>Texturing</td>
<td>[Texturing requirements](../../art/modeling/texture-specifications.md)<br /><br />[PBR textures](../../art/modeling/surface-appearance.md)</td>
</tr>
<tr>
<td>Rigging and skinning</td>
<td>[Rigging and skinning overview](../../art/modeling/rigging.md)<br /><br />[Humanoid rig requirements](../../art/characters/specifications.md#rigging)<br /><br />[Rig facial bones](../../art/characters/facial-animation/create-basic-heads.md#rigging)<br /><br />[Automatic Skin Transfer](../../art/accessories/automatic-skinning-transfer.md)<br /><br />[Skin facial bones](../../art/characters/facial-animation/create-basic-heads.md#skin-face-bones)</td>
</tr>
<tr>
<td>Publishing and Marketplace</td>
<td>[Uploading to Marketplace](../../marketplace/publish-to-marketplace.md)<br /><br />[Marketplace Policy](../../marketplace/marketplace-policy.md)<br /><br />[Fees and commissions](../../marketplace/marketplace-fees-and-commissions.md)</td>
</tr>
</tbody>
</table>

View file

@ -0,0 +1,201 @@
---
title: Layered clothing
description: Layered clothing are cosmetic accessories that stretch, fit, and layer over any body type simulating real-life clothing.
---
<Grid container spacing={2} style={{ marginBottom: 24, width: '100%' }}>
<Grid item xs={6} style={{ padding: 16 }}>
<Grid item container wrap="nowrap" direction="column" style={{ gap: 8, flex: 1 }}>
<div
className="container"
style={{ position: "relative", paddingBottom: "56.25%", height: 0, marginBottom: 12 }} >
<iframe
src="https://www.youtube-nocookie.com/embed/gXXukd6yOSs"
title="YouTube video player"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} ></iframe>
</div>
<Typography variant="body1">
A high-level overview of 3D clothing on Roblox.
</Typography>
</Grid>
</Grid>
<Grid item xs={6} style={{ padding: 16 }}>
<Grid item container wrap="nowrap" direction="column" style={{ gap: 8, flex: 1 }}>
<div
className="container"
style={{ position: "relative", paddingBottom: "56.25%", height: 0, marginBottom: 12 }} >
<iframe
src="https://www.youtube-nocookie.com/embed/C-DwGRBHvmE"
title="YouTube video player"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
allowFullScreen
style={{ position: "absolute", top: 0, left: 0, width: "100%", height: "100%" }} ></iframe>
</div>
<Typography variant="body1">
Create and sell your first basic layered clothing.
</Typography>
</Grid>
</Grid>
</Grid>
Layered clothing accessories are 3D cosmetic items that users can equip and wear on their avatar body, such as pants, t-shirt, jackets, dresses, and more. Unlike [rigid accessories](../../art/accessories/index.md) that only attach to a specific point on a character, layered clothing stretches and fits over any body type and existing clothing.
To create a custom Roblox accessory for your own experience or to sell on the Marketplace, it's important to start with the following:
- A general background with 3D modeling tools such as [Blender](https://www.blender.org/) or [Maya](https://www.autodesk.com/products/maya/overview).
- An understanding of the [components that make up a layered accessory](#components-of-a-layered-clothing-accessory).
- An understanding of the general [clothing creation process](#creation-process).
- Review Roblox's official tutorials to create your own accessories:
- [Rigid accessory creation tutorial](../../art/accessories/creating-rigid/index.md) - covers each process required for converting a 3D model to a rigid accessory and publishing it to the Marketplace.
- [Clothing creation tutorial](../../art/accessories/creating/index.md) - a step-by-step process of creating your own avatar-ready clothing from scratch in Blender.
- [Additional tools, resources, and guides](#resources) provided by Roblox to standardize and expedite the creation process.
<Alert severity = 'info'>
If you are a developer and are looking for information on manually equipping or configuring layered clothing accessories within an experience, including implementing layered clothing on a non-standard character model, see [Character appearance](../../characters/appearance.md).
</Alert>
Roblox also supports [classic clothing](#classic-clothing), 2D images that can be applied to your character's surface.
## Components of a layered clothing accessory
All accessory models are made up of the same base components of a [mesh object](#mesh-part), [textures](#textures), and [attachment](#attachments). Layered clothing requires additional components, such as a [poseable rig](#rigging-armature), and an [inner and outer cage](#inner-and-outer-cages), to allow the asset to stretch, fit, and layer over a target character and existing clothing items.
When [creating accessories](#creation-process), all of the components are created first in your modeling software, then converted to their appropriate Roblox Studio instance on import.
### Mesh part
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Mesh-Example.png"/> <figcaption>T-shirt clothing mesh object</figcaption></figure>
<figure><img src="../../assets/art/accessories/Mesh-Bow-Example.png" /><figcaption>Bow accessory mesh object</figcaption></figure>
</GridContainer>
<Alert severity = 'warning'>
Simple accessories, such as the bow, are [rigid accessories](../../art/accessories/index.md) do not require the rigging and caging components that allow it to stretch and fit over a target.
</Alert>
All accessories require a single mesh object that represents the geometry of the accessory object. In Studio, this mesh object is represented as a `Class.MeshPart` nested under a single `Class.Model`
### Textures
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Texture-Example.png" /> <figcaption>2D texture map for the t-shirt model</figcaption></figure>
<figure><img src="../../assets/art/accessories/Texture-Applied-Example.png" /><figcaption>T-shirt model with texture applied</figcaption></figure>
</GridContainer>
Textures are image files that define the surface appearance of your accessory. You can create textures within a texture painting program or a 3D modeling software. In Studio, textures images are imported as image assets and are set to `Class.MeshPart` objects by a child `Class.SurfaceAppearance` object or a `Class.MeshPart.TextureID` property.
### Attachments
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Attachment-Example.png" /> <figcaption>Attachment geometry defines where the attachment connects with the character</figcaption></figure>
<figure><img src="../../assets/art/accessories/Attachment-Data-Model-Example.png" width="80%"/><figcaption>Geometry with the "_Att" suffix automatically convert to `Class.Attachment` objects in Studio</figcaption></figure>
</GridContainer>
For layered clothing, the attachment point is used to associate with the correct body part when the body ragdolls or is dismembered. In Studio, attachments are represented by `Class.Attachment` objects.
Attachments for clothing items are automatically generated in Studio using the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md).
### Rigging armature
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Rigging-Example.png" /> <figcaption>To ensure natural movement of the clothing item, it must be weighted to a character rig</figcaption></figure>
<figure><img src="../../assets/art/accessories/Rigging-Pose-Example.png" /><figcaption>When the rig is properly set up, the layered model can move and bend with the character rig</figcaption></figure>
</GridContainer>
A rigging armature defines how a layered asset can move with a character model. Using rigging and skinning techniques, you can set the areas of your clothes to move naturally with a character model's joints, such as ensuring a shirt sleeve correctly follows the movement of the elbow and shoulder. In Studio, this rigging and skinning data is saved to the mesh geometry.
### Inner and outer cages
<GridContainer numColumns="2">
<figure><img src="../../assets/art/accessories/Inner-Cage-Example.png" /> <figcaption>The inner cage defines the inner surface of the clothing item where the clothes wrap over</figcaption></figure>
<figure><img src="../../assets/art/accessories/Outer-Cage-Example.png" /><figcaption>The outer cage defines the outer surface of the clothing item where any additional clothes can wrap and layer over</figcaption></figure>
</GridContainer>
Cage meshes indicate the inner and outer surfaces of a layered accessory. The inside cage of a t-shirt defines how the t-shirt stretches and fits over a character body. The outer cage of a t-shirt defines how additional layered clothing fit over the t-shirt. In Studio, these cages are represented by `Class.WrapLayer` objects.
## Creation process
Custom accessories are first created in 3D modeling programs, such as [Blender](https://www.blender.org/) or [Maya](https://www.autodesk.com/products/maya/overview), before importing the `.fbx` or `.gltf` model into Studio.
To get started creating your first avatar asset, see [Avatar Tutorials](../../avatar/tutorials.md).
Depending on the type of asset you are creating, the creation process follows these high-level workflows:
<GridContainer numColumns="2">
<figure><figcaption><center>Layered Accessory Workflow</center></figcaption><br /><img src="../../assets/art/accessories/Workflow-Layered.png"/></figure>
<figure> <figcaption><center>Rigid Accessory Workflow</center></figcaption><br /><img src="../../assets/art/accessories/Workflow-Rigid.png" /></figure>
</GridContainer>
<Alert severity = 'info'>
Since 3D creation isn't a linear process and always requires reiteration and testing, the process of creating an accessory can differ between individuals and various creation workflows.
</Alert>
## Resources
There are a variety of resources available for creators of all backgrounds to get started with accessory creation.
If you are interested in specific avatar creation topics, use the following table to find guides and resources that best match your needs:
<table>
<thead>
<tr>
<th>Topic</th>
<th>Resources</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tutorials</td>
<td>[Rigid accessory creation](../../art/accessories/creating-rigid/index.md) <br /><br />[Basic clothing creation](../../art/accessories/creating/index.md)</td>
</tr>
<tr>
<td>Reference files</td>
<td>[Accessory and clothing reference files](../../art/modeling/project-files.md)</td>
</tr>
<tr>
<td>Technical specs</td>
<td>[.FBX export settings](../../art/modeling/export-requirements.md)<br /><br />[General mesh specifications](../../art/modeling/specifications.md)<br /><br />[Accessory specifications](../../art/accessories/specifications.md)<br /><br />[Marketplace policy](../../marketplace/marketplace-policy.md)</td>
</tr>
<tr>
<td>Cosmetic creation</td>
<td>[Accessories overview](../../art/accessories/specifications.md)<br /><br />[Layered clothing overview](../../art/accessories/index.md)<br /><br />[Create face accessories](../../art/characters/facial-animation/create-face-accessories.md)<br /><br />[Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md)<br /><br />[Accessory specifications](../../art/accessories/specifications.md)<br /><br />[Marketplace requirements](../../marketplace/marketplace-policy.md)</td>
</tr>
<tr>
<td>Texturing</td>
<td>[Texturing requirements](../../art/modeling/texture-specifications.md)<br /><br />[PBR textures](../../art/modeling/surface-appearance.md)</td>
</tr>
<tr>
<td>Rigging and skinning</td>
<td>[Rigging and skinning overview](../../art/modeling/rigging.md)<br /><br />[Humanoid rigging requirements](../../art/characters/specifications.md#rigging)<br /><br />[Rigging facial bones](../../art/characters/facial-animation/create-basic-heads.md#rigging)<br /><br />[Auto skin transfer](../../art/accessories/automatic-skinning-transfer.md)<br /><br />[Skin facial bones](../../art/characters/facial-animation/create-basic-heads.md#skin-face-bones)</td>
</tr>
<tr>
<td>Testing and validation</td>
<td>[Calisthenics tool](../../art/modeling/calisthenics-tool.md)<br /><br />[Clothing validation tool](../../art/accessories/validation-tool.md)</td>
</tr>
<tr>
<td>Publishing and Marketplace</td>
<td>[Upload to Marketplace](../../marketplace/publish-to-marketplace.md)<br /><br />[Marketplace policy](../../marketplace/marketplace-policy.md)<br /><br />[Fees and commissions](../../marketplace/marketplace-fees-and-commissions.md)</td>
</tr>
</tbody>
</table>
## Classic clothing
Classic clothing assets are 2D images that you can apply to the surface of an avatar body as t-shirts, shirts, or pants. You can design these assets in any image processing software, test the textures in Studio, and then upload the designs to the Marketplace to sell. See [Classic clothing](../../art/classic-clothing.md) for more information on creating, uploading, and selling these assets.
<img src="../../assets/accessories/classic-clothing/Block-Avatar-Dressed.jpg" width="800" />

View file

@ -0,0 +1,136 @@
---
title: Accessory project files and references
description: Download various accessory-related project files and reference files.
---
<Alert severity = 'info'>
See [Resources](../../avatar/resources.md) for a complete list of avatar-related downloadable content.
</Alert>
The following `.fbx`, `.blend`, and `.ma` project files are available to use as templates or as reference:
<Tabs>
<TabItem label="Clothing and mannequins">
<table>
<thead>
<tr>
<th><b>File</b></th>
<th><b>Description</b></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="../../assets/accessories/reference-files/Tshirt-model.fbx" download>Tshirt-model.fbx</a></td>
<td>Uncaged example clothing ready for caging in a 3D modeling software.</td>
</tr>
<tr>
<td><a href="../../assets/accessories/reference-files/Additional-FBX-assets.zip" download>Additional-FBX-assets.zip</a></td>
<td>Caged 3D accessory models ready for import into Studio or in a modeling tool.</td>
</tr>
<tr>
<td><a href="../../assets/accessories/reference-files/Caging-examples.zip" download>Additional-FBX-assets.zip</a></td>
<td>Additional caged clothing items from How to cage Roblox's [3D clothing video guide](https://www.youtube.com/watch?v=QwZaA9Gc-WQ).</td>
</tr>
<tr>
<td><a href="../../assets/art/reference-files/ClassicMannequin.fbx" download>ClassicMannequin.fbx</a></td>
<td>A [Classic body](../../art/characters/specifications.md#classic) type blank mannequin to use in Studio or your modeling application.</td>
</tr>
<tr>
<td><a href="../../assets/art/reference-files/ClassicMannequin_With-Cages.fbx" download>ClassicMannequin_With-Cages</a></td>
<td>A [Classic](../../art/characters/specifications.md#classic) body type blank mannequin with **body cages** to use in Studio or your modeling application for clothing design. Due to unconfigured cage objects, this file may not import correctly into Studio until modified.</td>
</tr>
<tr>
<td><a href="../../assets/art/reference-files/RthroMannequin.fbx" download>RthroMannequin.fbx</a></td>
<td>An [Rthro Normal](../../art/characters/specifications.md#normal) body type blank mannequin to use in Studio or your modeling application.</td>
</tr>
<tr>
<td><a href="../../assets/art/reference-files/RthroMannequin_With-Cages.fbx" download>RthroMannequin_With-Cages.fbx</a></td>
<td>An [Rthro Normal](../../art/characters/specifications.md#normal) body type blank mannequin with **body cages** to use in Studio or your modeling application to use in Studio or your modeling application for clothing design. Due to unconfigured cage objects, this file may not import correctly into Studio until modified.</td>
</tr>
<tr>
<td><a href="../../assets/art/reference-files/RthroSlenderMannequin.fbx" download>RthroSlenderMannequin.fbx</a></td>
<td>An [Rthro Slender](../../art/characters/specifications.md#slender) body type blank mannequin to use in Studio or your modeling application.</td>
</tr>
<tr>
<td><a href="../../assets/art/reference-files/RthroSlenderMannequin_With-Cages.fbx" download>RthroSlenderMannequin_With-Cages.fbx</a></td>
<td>An [Rthro Slender](../../art/characters/specifications.md#slender) body type blank mannequin with **body cages** to use in Studio or your modeling application to use in Studio or your modeling application for clothing design. Due to unconfigured cage objects, this file may not import correctly into Studio until modified.</td>
</tr>
</tbody>
</table>
</TabItem>
<TabItem label="Blender">
<table>
<thead>
<tr>
<th><b>File</b></th>
<th><b>Description</b></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Rig_and_Attachments_Templates.zip" download>Rig_and_Attachments_Template.blend</a></td>
<td>Starting armature rig template for Blender. Contains an armature with correct R15 naming conventions and attachment points. Use this template for rigging bodies and clothing items.</td>
</tr>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip" download>Clothing_Cage_Template.blend</a></td>
<td>Starting template for Blender that includes a full-body inner and outer cage mesh for creation of layered clothing. Use this template for caging your clothing accessories.</td>
</tr>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Combined_Templates.zip" download>Combined-Template.blend</a></td>
<td>Template file containing all content from previous templates, includes rig skeleton, body cages, attachment points. Use this template to rig and cage bodies and accessories.</td>
</tr>
</tbody>
</table>
</TabItem>
<TabItem label="Maya">
<table>
<thead>
<tr>
<th><b>File</b></th>
<th><b>Description</b></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Rig_and_Attachments_Templates.zip" download>Rig_and_Attachments_Template.ma</a></td>
<td>Starting armature rig template for Maya. Contains an armature with correct R15 naming conventions and attachment points. Use this template for creating bodies and clothing items.</td>
</tr>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip" download>Clothing_Cage_Template.ma</a></td>
<td>Starting template for Maya, includes a full-body inner and outer cage mesh for creation of layered clothing. Use this template for caging your clothing accessories.</td>
</tr>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Combined_Templates.zip" download>Combined-Template.ma</a></td>
<td>Template file containing all content from previous templates, includes rig skeleton, body cages, attachment points. Use this template to rig and cage bodies and accessories.</td>
</tr>
</tbody>
</table>
</TabItem>
<TabItem label="General">
<Alert severity = 'warning'>
The following `.fbx` files were exported from Maya for use in modeling applications. If you are using Blender or Maya in your workflow, use the specific template files for those programs instead of the following files.
</Alert>
<table>
<thead>
<tr>
<th><b>File</b></th>
<th><b>Description</b></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Rig_and_Attachments_Templates.zip" download>Rig_and_Attachments_Template.fbx</a></td>
<td>Starting armature rig template for general modeling software. Contains an armature with correct R15 naming conventions and attachment points. Use this template for creating bodies and clothing items.</td>
</tr>
<tr>
<td><a href="../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip" download>Clothing_Cage_Template.fbx</a></td>
<td>Starting template for general modeling software, includes a full-body inner and outer cage mesh for creation of layered clothing. Use this template for caging your clothing accessories.</td>
</tr>
</tbody>
</table>
</TabItem>
</Tabs>

View file

@ -0,0 +1,62 @@
---
title: Publish bodies with eyelashes and eyebrows
description: Eyelashes and eyebrows are optional accessory items you can equip to an avatar to publish in the Marketplace.
---
Eyelashes and eyebrows are cosmetics that can help emphasize facial features and create a unique way of customizing a character. Similar to clothing, eyelashes and eyebrows are [3D layered clothing](../../art/accessories/layered-clothing.md) that can stretch and fit over different face shapes and can deform and stretch with character face animations.
<GridContainer numColumns="3">
<figure>
<img src="../../assets/art/accessories/Nature-Girl-No-Accessories.png"/>
<figcaption>Character body without eyelashes and eyebrows</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/Nature-Girl-With-Face-Accessories.png"/>
<figcaption>Character body with eyelashes and eyebrows</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/Eyebrows-Eyelashes-Only.png"/>
<figcaption>Standalone eyelashes and eyebrows</figcaption>
</figure>
</GridContainer>
When publishing eyelashes and eyebrows, you must parent these `Class.Accessory` objects under the avatar character's `Class.Model` prior to uploading the character `Model` to the Marketplace. These `Accessory` face objects must adhere to Roblox's accessory requirements and include layered components such as caging, rigging, and skinning components. For an overview on creating your own eyelashes and eyebrows, see [Create face accessories](../../art/characters/facial-animation/create-face-accessories.md).
<Alert severity = 'warning'>
At this time, you can only bundle **eyelashes**, **eyebrows**, and **hair** with your body on Marketplace upload. Other facial accessories, such as horns, makeup, glitter, or other cosmetics are not acceptable. See [Marketplace policy](../../marketplace/marketplace-policy.md) for specific information on allowable cosmetics and other policy regulations and guidelines.
</Alert>
## Configure eyelash and eyebrow accessories
Use the following steps to import your face accessory and body assets into Studio. After converting the eyelashes and eyebrows to `Accessory` objects, parent the `Accessory` objects within the character `Model` before uploading the character to the Marketplace.
You can download reference `.fbx` models of [eyelashes](../../assets/art/reference-files/Eyelashes.fbx), [eyebrows](../../assets/art/reference-files/Eyebrows.fbx), and an [avatar body](../../assets/art/reference-files/AnimeFemale-Studio-Ready.fbx) to follow along this process.
1. In the [3D Importer](../../art/modeling/3d-importer.md), import the `.fbx` files of your face accessory and body. The eyelashes, eyebrows, and body each populate in your Workspace as a `Model`.
1. If you are using the reference body, set **Rig General** > **Rig Type** to **Rthro**.
2. Use the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) and select the **Eyelash** or **Eyebrow** model and click **Next**.
<img src="../../assets/art/accessories/AFT-Eyebrows-Example.png"/>
3. Select the appropriate **Accessory** > **Eyelash** or **Accessory** > **Eyebrow** asset type and click **Next**.
4. (Optional) Preview the fit of your face accessory.
1. If the face accessory was modeled on a specific character body, you may want to import that character body into Studio and use it as a mannequin in the fitting tool's preview. See [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) for more information on adding custom characters.
2. If using the provided reference body, you can continue to step 5.
5. Click **Generate MeshPart Accessory** to create your MeshPart.
6. **Repeat steps 2-5** for the other face accessory.
7. In the Outliner, **drag and drop** the face `Accessory` objects within the character `Model` instance. The accessories automatically equip and attach to the correct areas of your avatar character.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/art/accessories/Anime-Girl-Eyebrows-Example.png"/>
<figcaption>Workspace preview of body with face accessories</figcaption>
</figure>
<figure>
<img src="../../assets/art/accessories/Face-Accessory-Hierarchy.png"/>
<figcaption>Outliner hierarchy</figcaption>
</figure>
</GridContainer>
8. If required, rename the accessory objects to `EyelashAccessory` or `EyebrowAccessory` accordingly.
9. Once you are ready to upload the avatar model with your face accessories, see [Upload an asset](../../marketplace/publish-to-marketplace.md#upload-an-asset) for instructions on uploading and publishing your avatar body with eyelashes and eyebrows to the Marketplace.

View file

@ -0,0 +1,136 @@
---
title: Rigging and caging models (Blender)
description: Convert a 3D model into a layered 3D model in Blender before importing and converting the model into Studio as an Accessory.
---
You can use a third party modeling tool, such as [Blender](https://www.blender.org) or [Maya](https://www.autodesk.com/products/maya/overview), to modify an existing 3D object into a layerable 3D model that you can [import and convert](../../art/accessories/accessory-fitting-tool.md) into Studio as an `Class.Accessory`. To create a layered model, you must **parent** (Blender) or **bind** (Maya) a 3D model to a mannequin armature and then modify two additional meshes to fit around the inner and outer surface of the accessory model.
This guide covers the basic workflow for converting a 3D model into a layerable model in Blender using the following steps:
1. [Importing](#import) a 3D asset into a template Blender project file.
2. [Parenting](#parent-and-weight) the imported mesh object to the project file's armature rig with Blender's Automatic Weights feature.
1. Manual skinning is not covered, see [Skin a simple mesh](../modeling/skin-a-simple-mesh.md) for an overview of manual skinning.
3. [Editing](#edit-inner-and-outer-cage-meshes) the Inner and Outer Cage meshes to represent the inner and outer surface of the model.
A full list of asset requirements for a layered model can be found in [Layered model specifications](../../art/accessories/specifications.md).
<Alert severity="info">
This guide uses <a href="https://www.blender.org/download/releases/3-0/">Blender version 3.0</a>. If you are
using another version of Blender, there may be minor differences in UI and
settings.
</Alert>
## Import
Set up the project by opening the [rig template project](../../assets/modeling/meshes/reference-files/Rig_and_Attachments_Templates.zip) and importing the [sample accessory model](../../assets/accessories/reference-files/Tshirt-model.fbx).
To import and parent the accessory model:
1. In Blender, open the [rig template project](../../assets/modeling/meshes/reference-files/Rig_and_Attachments_Templates.zip). This file contains the default armature required for layered clothing.
<img
alt="Blender Mannequin Template Project"
src="../../assets/accessories/lc-blender-template-opened.png"
width="80%" />
2. In the Outliner, toggle the Hide icon to visually remove any non-armature objects in your workspace, such as Attachments.
<video controls width="80%" src="../../assets/accessories/1_lc-blender-unhide-cages.mp4">
</video>
3. In the File Menu, select **Import** and click **FBX (.fbx)**. Select the accessory model file you intend to fit onto the mannequin. The accessory populates in the workspace and, depending on how the asset was modeled, may need resizing or adjustment to fit on the mannequin.
<video controls width="80%" src="../../assets/accessories/2_lc-blender-import-tshirt.mp4">
</video>
## Parent and weight
For this basic accessory, parent the imported mesh to the template mannequin armature using Blender's [Automatic Weights](https://docs.blender.org/manual/en/latest/animation/armatures/skinning/parenting.html#with-automatic-weights) feature. Parenting the accessory model mesh to the armature in this way enables the 3D model to move and deform naturally with the character in Studio.
<Alert severity="warning">
Complex clothing and accessory items with moving parts may require more precise skinning with Blender's <a href="https://docs.blender.org/manual/en/3.5/grease_pencil/modes/weight_paint/introduction.html#weight-paint">Weight Painting</a> or other skinning tools. See [Skin a simple mesh](../modeling/skin-a-simple-mesh.md) for an example of manual skinning.
</Alert>
To parent the mesh object with the mannequin armature:
1. In the Outliner, temporarily hide both of the Cage objects to expose the Armature by toggling the Hide icon.
2. In the Workspace, click the mesh object, then hold <kbd>Shift</kbd> and **click** the mannequin's armature.
3. Right click, or use <kbd>Ctrl</kbd><kbd>P</kbd> (<kbd>⌘</kbd><kbd>P</kbd>) to parent the accessory to the armature by selecting **Automatic Weights**.
<video controls width="80%" src="../../assets/accessories/3_lc-blender-parenting-a-mesh.mp4">
</video>
4. Reduce visual clutter by hiding all objects except the **cages** and **model**. Click on the <img src="../../assets/accessories/lc-blender-hide-symbol.png" /> symbol next to the object in the Outliner panel.
<video controls width="80%" src="../../assets/accessories/4_lc-blender-outliner-cleanup.mp4">
</video>
## Edit inner and outer cage meshes
After parenting and weighting your clothing item, you can start adding the cage meshes to your clothing to indicate the inner and outer surfaces of your clothing.
When setting up the cages, the accessory model needs to fit on top of the inner cage and then the outer cage must be adjusted to fit tightly over the model object.
You can quickly add these two full-body meshes from the [Clothing_Cage_Template.blend](../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip) into your existing project.
<Alert severity="error">
Don't delete vertices or alter the UVs on the Inner or Outer Cages as this can cause errors when importing in Studio or when equipping onto a character.
</Alert>
To quickly add clothing cages to your project:
1. Download the [Clothing_Cage_Template.blend](../../assets/modeling/meshes/reference-files/Clothing_Cage_Templates.zip) project.
2. In your current Blender project, switch to Object Mode and navigate to **File** > **Append**. A file browser displays.
<img src="../../assets/accessories/lc-blender-append.png" width = "40%"/>
3. Click on the Clothing_Cage_Template.blend file and navigate to the **Object** folder.
<img src="../../assets/accessories/lc-blender-append-cages.png" width = "60%"/>
4. In the Object folder, hold <kbd>Shift</kbd> and select both `YourClothingName_InnerCage` and `YourClothingName_OuterCage` and click **Append**. The two cage mesh objects populate in your project.
<img src="../../assets/accessories/lc-blender-workspace-cages.png" />
To modify cages for your accessory model:
1. In the Outliner panel, rename the **\_InnerCage** and **\_OuterCage** meshes to match the imported mesh object (ex. Tshirt_InnerCage, Tshirt_OuterCage). Make sure this exactly matches the mesh name that you imported.
<img src="../../assets/accessories/lc-blender-selecting-cage-in-outlier.png"/>
2. In the Outliner window, select the \_OuterCage mesh and switch to **Edit Mode** <kbd>Tab</kbd>.
3. In the Viewport, enable **X-Ray** view and **Materials View** to improve visibility and access to the vertices of the outer cage mesh.
<video controls width="80%" src="../../assets/accessories/5_lc-blender-adjusting-viewport-settings.mp4">
</video>
4. While in Edit Mode, adjust the vertices with the Edit Mode tools so that the Outer Cage completely covers the top of the accessory.
<Alert severity="info">
When manipulating vertices, try to keep each face (the space between vertices) consistently sized and retain symmetry wherever possible. Use the symmetry toggles on the top right of the Viewport when applicable.
</Alert>
<video controls width="80%" src="../../assets/accessories/6_lc-blender-adjusting-outer-cage-vertices.mp4">
</video>
A finished outer cage should completely cover the accessory with minimal extra space. For comparison, you can download a completed caged version of the Tshirt model [here](../../assets/accessories/reference-files/Tshirt-caged.fbx).
<video controls width="80%" src="../../assets/accessories/8_lc-blender-finished-outer-cage.mp4"></video>
When finished with the caging and modeling of your asset, see [Exporting requirements](../../art/modeling/export-requirements.md#blender) for details on exporting the model from Blender.
After exporting, see [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) and [Converting clothing accessories tutorial](../accessories/creating/converting.md) for instructions on importing and converting the model into a usable accessory.
## Tips for editing cages
The following tips may be helpful when manipulating your cage vertices:
- On the top-right of the Viewport, toggle different [Viewport Shading](https://docs.blender.org/manual/en/latest/editors/3dview/display/shading.html) options, such as **Material Preview** and **X-Ray**, when necessary to better access vertices and view your caging progress.
- You can hide vertices you're currently not adjusting by using **Hide** (<kbd>H</kbd>) and **Unhide** (<kbd>Alt</kbd><kbd>H</kbd>; <kbd>⌥</kbd><kbd>H</kbd>).
- Multiple vertices can be selected and adjusted at the same time. Use **Move**, **Scale**, or any other Blender tools to make adjustments to multiple vertices at once.
<video controls width="80%" src="../../assets/accessories/7_lc-adjusting-multiple-vertices.mp4">
</video>

View file

@ -0,0 +1,357 @@
---
title: Rigid accessory specifications
description: Rigid accessory specifications lists the specific technical requirements for basic avatar accessories.
---
When creating rigid accessories for Roblox, it's important to meet specific technical requirements to ensure compatibility and optimize for performance and quality. Many of these requirements must be applied when designing and modeling your asset in a third-party modeling application.
Although rigid accessories and layerable clothing accessories share many technical requirements, layerable accessories must include [additional components](../../art/accessories/clothing-specifications.md) to ensure the accessories deform and stretch appropriately on different body scales.
If you are intending to publish and sell these assets on the Marketplace, there are additional [Marketplace policy](../../marketplace/marketplace-policy.md) standards that you must follow for any accessory or clothing item.
When ready to export, see [Export requirements](../../art/accessories/export-settings.md) for mesh export settings for Blender and Maya.
<Alert severity = 'warning'>
<AlertTitle>If creating other types of 3D models:</AlertTitle>
<ul>
<li>For generic meshes, see [general mesh specifications](../modeling/specifications.md) and [general export settings](../modeling/export-requirements.md).</li> <br />
<li>For layered accessories, see [layered accessory specifications](../accessories/clothing-specifications.md) and [layered export settings](../accessories/clothing-export-settings.md).</li> <br />
<li>For avatar characters, see [avatar specifications](../characters/specifications.md) and [avatar export settings](../characters/export-settings.md).</li>
</ul>
</Alert>
## Geometry and budgets
- **Single Mesh** - Accessories must be a single mesh.
- **Budgets** - Accessories can't exceed **4k** triangles.
- **Watertight** - All geometry must be watertight without exposed holes or backfaces.
- Use **quads** whenever possible. Avoid faces with 5 or more sides.
- **Mesh Size** - Depending on the type of accessory asset, meshes must follow a standard size (in studs, centered on attachment point) depending on the [body scale](#body-scale) it is designed for.
### Body scale
Roblox supports 3 types of body scales: `Classic`, `Normal`, and `Slender`. When designing your accessory, the size of your accessory cannot exceed the following sizes based on body scale and accessory asset type. Accessory size is measured based on attachment orientation.
See [Body scale](../accessories/body-scale.md) for more information on the different types of body proportions Roblox supports.
<Alert severity = 'info'>
You can use tools like the [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) to help visualize and adjust the scale of your mesh on a mannequin within a visualized boundary before uploading and publishing the asset.
</Alert>
#### Classic
<table>
<thead>
<tr>
<th>Asset Type</th>
<th>Width (X)</th>
<th>Height (Y)</th>
<th>Depth (Z)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hat</td>
<td>3</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>Hair</td>
<td>3</td>
<td>5* <br /> (Not centered: 2 up, 3 down)</td>
<td>3.5* <br /> (Not centered: 1.5 front, 2 behind)</td>
</tr>
<tr>
<td>Face</td>
<td>3</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>Eyebrow and Eyelashes</td>
<td>1.5</td>
<td>0.5</td>
<td>0.5</td>
</tr>
<tr>
<td>Neck</td>
<td>3</td>
<td>3</td>
<td>2</td>
</tr>
<tr>
<td>Shoulder (attached to NeckAttachment)</td>
<td>7</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>Shoulder (other)</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>Front</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>Back</td>
<td>10</td>
<td>7</td>
<td>4.5* <br /> (Not centered: 1.5 front, 3 behind)</td>
</tr>
<tr>
<td>Waist</td>
<td>4</td>
<td>3.5* <br /> (Not centered: 1.5 up, 2 down)</td>
<td>7</td>
</tr>
</tbody>
</table>
#### Normal
<table>
<thead>
<tr>
<th>Asset Type</th>
<th>Width (X)</th>
<th>Height (Y)</th>
<th>Depth (Z)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hat</td>
<td>1.87</td>
<td>2.5</td>
<td>1.87</td>
</tr>
<tr>
<td>Hair</td>
<td>1.87</td>
<td>3.12* <br /> (Not centered: 1.25 up, 1.875 down)</td>
<td>2.18* <br /> (Not centered: 0.9375 front, 1.25 behind)</td>
</tr>
<tr>
<td>Face</td>
<td>1.87</td>
<td>1.25</td>
<td>1.25</td>
</tr>
<tr>
<td>Eyebrow and Eyelashes</td>
<td>1.5</td>
<td>0.5</td>
<td>0.5</td>
</tr>
<tr>
<td>Neck</td>
<td>2.95</td>
<td>3.68</td>
<td>2.16</td>
</tr>
<tr>
<td>Shoulder (attached to NeckAttachment)</td>
<td>6.90</td>
<td>3.68</td>
<td>3.24</td>
</tr>
<tr>
<td>Shoulder (attached to RightCollarAttachment, LeftCollarAttachment)</td>
<td>2.95</td>
<td>3.68</td>
<td>3.24</td>
</tr>
<tr>
<td>Shoulder (attached to RightShoulderAttachment, LeftShoulderAttachment)</td>
<td>2.67</td>
<td>4.40</td>
<td>3.09</td>
</tr>
<tr>
<td>Front</td>
<td>2.95</td>
<td>3.68</td>
<td>3.24</td>
</tr>
<tr>
<td>Back</td>
<td>9.86</td>
<td>8.59</td>
<td>4.87* <br /> (Not centered: 1.623 front, 3.246 behind)</td>
</tr>
<tr>
<td>Waist</td>
<td>3.94</td>
<td>4.29* <br /> (Not centered: 1.842 up, 2.457 down)</td>
<td>7.57</td>
</tr>
</tbody>
</table>
#### Slender
<table>
<thead>
<tr>
<th>Asset Type</th>
<th>Width (X)</th>
<th>Height (Y)</th>
<th>Depth (Z)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hat</td>
<td>1.78</td>
<td>2.5</td>
<td>1.78</td>
</tr>
<tr>
<td>Hair</td>
<td>1.78</td>
<td>3.12* <br /> (Not centered: 1.25 up, 1.875 down)</td>
<td>2.08* <br /> (Not centered: 1.892 front, 1.189 behind)</td>
</tr>
<tr>
<td>Face</td>
<td>1.78</td>
<td>1.25</td>
<td>1.18</td>
</tr>
<tr>
<td>Eyebrow and Eyelashes</td>
<td>1.5</td>
<td>0.5</td>
<td>0.5</td>
</tr>
<tr>
<td>Neck</td>
<td>2.59</td>
<td>3.39</td>
<td>1.92</td>
</tr>
<tr>
<td>Shoulder (attached to NeckAttachment)</td>
<td>6.05</td>
<td>3.39</td>
<td>2.88</td>
</tr>
<tr>
<td>Shoulder (attached to RightCollarAttachment, LeftCollarAttachment)</td>
<td>2.59</td>
<td>3.39</td>
<td>2.88</td>
</tr>
<tr>
<td>Shoulder (attached to RightShoulderAttachment, LeftShoulderAttachment)</td>
<td>2.37</td>
<td>3.96</td>
<td>2.75</td>
</tr>
<tr>
<td>Front</td>
<td>2.59</td>
<td>3.39</td>
<td>2.88</td>
</tr>
<tr>
<td>Back</td>
<td>8.64</td>
<td>7.91</td>
<td>4.32* <br /> (Not centered: 1.443 front, 2.886 behind)</td>
</tr>
<tr>
<td>Waist</td>
<td>3.76</td>
<td>3.29* <br /> (Not centered: 1.414 up, 1.885 down)</td>
<td>6.73</td>
</tr>
</tbody>
</table>
## Textures
Textures created for accessories must meet Roblox's [texture specifications](../../art/modeling/texture-specifications.md).
- Non-albedo maps (RGH, MTL, NOR) for rigid accessories cannot exceed 256x256.
## Attachment points
`Class.Attachment` objects indicate where an accessory model attaches to a point on a character body. Whether you are creating rigid or [layered](./layered-clothing.md) accessories, Studio's [Accessory Fitting Tool](../../art/accessories/accessory-fitting-tool.md) (AFT) automatically adds and configures the appropriate `Class.Attachment` with the following specifications:
- **One attachment** - Each accessory, including layered clothing, require at least one attachment point to its associated body part.
- **Naming Convention** - The `Class.Attachment` name must follow a specific naming convention depending on the `Class.Accessory.AccessoryType`. The AFT generates an appropriate `Class.Attachment` name automatically.
If setting or configuring attachments manually in Studio, use the following names for your `Class.Attachment` object depending on the accessory type:
<table>
<thead>
<tr>
<th>Accessory type</th>
<th>Attachment name</th>
</tr>
</thead>
<tbody>
<tr>
<td>Hat</td>
<td>`HatAttachment`</td>
</tr>
<tr>
<td>Hair</td>
<td>`HairAttachment`</td>
</tr>
<tr>
<td>Back</td>
<td>`BodyBackAttachment`</td>
</tr>
<tr>
<td>Waist</td>
<td>`WaistFrontAttachment`, `WaistCenterAttachment`, `WaistBackAttachment`</td>
</tr>
<tr>
<td>Shoulder</td>
<td>`RightShoulderAttachment`, `RightCollarAttachment`, `NeckAttachment`, `LeftCollarAttachment`, `LeftShoulderAttachment`</td>
</tr>
<tr>
<td>Face, Eyelash, Eyebrow</td>
<td>`FaceFrontAttachment`, `FaceCenterAttachment`</td>
</tr>
<tr>
<td>Neck</td>
<td>`NeckAttachment`</td>
</tr>
<tr>
<td>Front</td>
<td>`BodyFrontAttachment`</td>
</tr>
</tbody>
</table>
<Alert severity = 'warning'>
Importing attachment objects from a third-party tool is not supported for rigid accessories, but is supported for [character bodies](../characters/specifications.md#attachments).
</Alert>
- **Shoulders and Collars** - Even though they are in similar locations, Shoulder and Collar attachment points interact with character rigs differently for rigid accessories.
- Items using `RightShoulderAttachment` or `LeftShoulderAttachment` move with the character's arm.
- Items using `RightCollarAttachment` or `LeftCollarAttachment` do not move with the character's arm.
## Layered properties
Accessories, such as clothing items, which stretch and fit around any character body type, must include additional configurations to achieve the layering effect. See [Clothing specifications](../../art/accessories/clothing-specifications.md) for specifications required to create layerable accessories.
## Marketplace requirements
Your items must meet the following requirements before you upload them to the Marketplace to sell:
- Ensure that your items adhere to the [Marketplace program guidelines](../../marketplace/marketplace-policy.md).
- Whenever applicable, ensure that your items adhere to Roblox's [custom mesh specifications](../../art/modeling/specifications.md).
- Object `Class.MeshPart.Material|Material` is set to `Plastic`.
- Object `Class.MeshPart.Transparency|Transparency` is set to 0.
- Object `Class.MeshPart.VertexColor|VertexColor` is the default `1, 1, 1`.
- Your `Class.Accessory` instance does not contain extraneous objects, like `Class.Script` or additional `Class.Part` instances.

View file

@ -0,0 +1,157 @@
---
title: Clothing Validation Tool
description: The Layered Clothing Validation Tool checks for common clothing creation issues in Blender or Maya before exporting.
---
The **Layered Clothing Validation Tool** is a supplemental tool you can install in either [Blender](https://www.blender.org/download/releases/3-0/) or [Maya](https://www.autodesk.com/products/maya/overview) to help quickly identify and fix common issues with layered clothing assets before you export them.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/validation-tool/Blender-Validation-Tool.png" width="80%" />
<figcaption>Blender Validation Tool</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/validation-tool/Maya-Validation-Tool-Opened.png" width="80%" />
<figcaption>Maya Validation Tool</figcaption>
</figure>
</GridContainer>
While this tool can save you time in the typical iteration process between your 3D modeling program and Studio, the tool doesn't provide comprehensive verification of all aspects of layered clothing assets. You must ensure your layered clothing model meets both the [general mesh requirements](../../art/modeling/specifications.md) and Roblox-specific [layered clothing requirements](../../art/accessories/specifications.md#layered-requirements) prior to importing it into Studio.
## Install the Clothing Validation Tool
There are two separate installation files and instructions for Blender and Maya.
<Alert severity="info">
The Layered Clothing Validation Tool is designed for both [Blender 3.0](https://www.blender.org/download/releases/3-0/) and [Maya 2022](https://www.autodesk.com/products/maya/overview). You can download and modify the tool for any use.
</Alert>
### Blender
To install the Clothing Validation Tool in Blender:
1. Download [ValidationTool_Blender.zip](../../assets/accessories/validation-tool/ValidationTool_Blender.zip) and save the `.zip` file locally.
2. In Blender, navigate to **Edit** > **Preferences**.
3. In Preferences, go to the **Add-Ons** section on the left side-bar.
<img src="../../assets/accessories/validation-tool/Blender-Add-On-Preferences.png" width="70%" />
4. Click the **Install...** button. A file browser displays.
5. Select the downloaded `.zip` file and click **Install Add-On**.
6. In the **Add-Ons section**, find the **Validation Tool** and **enable the add-on**.
<img src="../../assets/accessories/validation-tool/Blender-Enable-Add-On.png" width="70%" />
7. Return to your workspace and **expand the side toolbar** in the Viewport to access the add-on.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/validation-tool/Blender-Sidebar-Indicator.png" />
<figcaption>Sidebar indicator</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/validation-tool/Blender-Validation-Tool-Opened.png" width="48%" />
<figcaption>Expanded sidebar</figcaption>
</figure>
</GridContainer>
### Maya
Before you begin the process of installing the Validation Tool in Maya, you must install [Python 3.0](https://www.python.org/downloads/) or higher. If you already have Python installed, you can proceed to installing the Validation Tool.
To install Python 3.0+ on your device:
1. Download the appropriate installer from the official [Python website](https://www.python.org/downloads/).
2. Open the installer and follow the installation instructions.
- Enable **Add Python ### to PATH** before selecting **Install Now**.
<img src="../../assets/accessories/validation-tool/Maya-Install-Python-Settings.png" width="60%" />
To install the Clothing Validation Tool in Maya:
1. Download [ValidationTool_Maya.zip](../../assets/accessories/validation-tool/ValidationTool_Maya.zip) and unzip the content in a local directory.
2. Open the contents of the `.zip` file in a file browser.
- If on Windows, **double-click** `install.bat`. This runs a batch script that enables you to quickly run the Validation Tool in Maya.
- If on Mac, **right-click** the `install.command` file and select **Open With** > **Terminal**. This runs a terminal script that enables you to quickly run the Validation Tool in Maya.
<img src="../../assets/accessories/validation-tool/Mac-Right-Click-Install.png" width="40%" />
<Alert severity="warning">
If on Mac, you may need to adjust the read/write permissions for the `install.command` file to run successfully. This step requires administrator access.
To allow the `install.command` file to have full read and write access:
1. Open **terminal** and use the `cd` command to navigate to the directory of the saved `install.command` file.
2. Type the command `chmod 777 install.command` and press **Enter**. This should enable all read and write privileges for this file.
</Alert>
3. When prompted, type your Maya version and press **Enter**. For example, if using Maya 2020, input **2020** as your version.
<img src="../../assets/accessories/validation-tool/Maya-Install-Prompt-1.png" width="70%" />
4. When installation is successful, the following message displays:
<img src="../../assets/accessories/validation-tool/Maya-Command-Prompt-Success.png" width="60%" />
5. Open Maya and navigate to **Windows** > **General Editors** > **Script Editor**.
<img src="../../assets/accessories/validation-tool/Maya-Script-Editor-Menu.png" width="60%" />
6. When using the plugin for the first time, in the Script Editor, type `import ValidationTool` then press the **Play** button in the top bar of the Script Editor. The plugin UI displays.
<img src="../../assets/accessories/validation-tool/Maya-Script-Editor.png" width="60%" />
- When using the plugin after the initial launch, launch the plugin by typing `ValidationTool.validationTool()` and clicking the **Play** button.
- Alternatively, you can set up a shortcut from the plugin UI after initial launch by clicking the **Create shortcut button on Maya shelf** button.
<img src="../../assets/accessories/validation-tool/Maya-Shortcut.png" width="40%" />
## Validate assets
With the plugin active and a layered asset in your workspace, you can begin validating content. After the check, results with issues change to **red** (Blender) or **yellow** (Maya). You can resolve some failed checks by clicking the check button. See [Checks and Troubleshooting Steps](#checks-and-troubleshooting-steps) for details on each validation check.
<GridContainer numColumns="2">
<figure>
<img src="../../assets/accessories/validation-tool/Blender-Failed-Check-Example.png" width="81%" />
<figcaption>Checks without issues display as grey (Blender) or green (Maya).</figcaption>
</figure>
<figure>
<img src="../../assets/accessories/validation-tool/Blender-Failed-Check-Viewport.png" />
<figcaption>In this example, potential intersection issues are highlighted in the Viewport.</figcaption>
</figure>
</GridContainer>
To use the Validation Tool on your asset:
1. **Select** the object in your scene.
2. Open the Validation Tool and click **Check Assets**. After a few moments, the UI updates and produces an output message.
3. Results with issues are highlighted with red or yellow. Some issues can be automatically corrected by clicking the highlighted button.
<Alert severity="info">
This Validation Tool only checks for common clothing creation issues. Ensure your layered clothing model meets both the [general mesh specifications](../../art/modeling/specifications.md) and Roblox-specific [layered clothing specifications](../../art/accessories/specifications.md#layered-requirements) before uploading to Studio.
</Alert>
## Checks and troubleshooting steps
Refer to the table below for details on the specific checks and troubleshooting steps:
<dl>
<dt>**Layers**</dt>
<dd>Checks for extra layers in the scene. Automatic fix attempts to remove extra layers. <p />If the automatic fix fails, manually remove extra layers.</dd><p />
<dt>**Transforms**</dt>
<dd>Checks that geometry location, rotation, and scale are frozen (`0`,`0`,`0`). Automatic fix attempts to freeze the transforms. This may cause changes to your rig. <p />If the automatic fix fails, manually freeze your geometry.</dd><p />
<dt>**Unused Material**</dt>
<dd>Checks for any unused data in the scene, such as [orphan data](https://docs.blender.org/manual/en/latest/editors/outliner/interface.html?highlight=orphan) (Blender) or [construction history](https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2022/ENU/Maya-Basics/files/GUID-503E227B-EF49-4A78-B3CA-7EAC588017C9-htm.html) (Maya), or unused materials. Automatic fix attempts to remove extra data. <p />If automatic fix fails, manually remove unnecessary data and objects.</dd><p />
<dt>**Keyframes**</dt>
<dd>Checks for any unnecessary keyframes. Automatic fix attempts to remove keyframes.<p /> If automatic fix fails, manually remove keyframe data.</dd><p />
<dt>**Attachment Points**</dt>
<dd>Checks that attachment points are present and use the correct naming convention. Automatic fix attempts to parent any unexpected attachment points.</dd><p />
<dt>**Intersection**</dt>
<dd>Checks for any intersection between character geometry and the inner/outer cage mesh geometry. In Blender, clicking the button switches to **Edit Mode** and highlights vertices that are intersecting the inner or outer mesh. <p />Some edges, such as edges of the holes for the sleeves, neck and torso edges, may be highlighted by default behavior and can be ignored.</dd><p />
<dt>**Texture Format**</dt>
<dd>Checks that textures match texture requirements, such as resolution size. Users can also select an external image file. Refer to the output messages to manually resolve any texture related issues.</dd>
</dl>