Skip to content

Commit 144bff6

Browse files
update Open Source Docs from Roblox internal teams
1 parent be526a6 commit 144bff6

File tree

58 files changed

+440
-296
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+440
-296
lines changed

content/common/navigation/avatar/guides.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ navigation:
2323
path: /art/accessories/clothing-specifications
2424
- title: Reference Files
2525
path: /art/accessories/project-files
26+
- title: Caging Best Practices
27+
path: /art/accessories/caging-best-practices
2628
- title: Export Settings
2729
path: /art/accessories/clothing-export-settings
2830
- title: Importing into Studio

content/common/navigation/engine/studio.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ navigation:
77
- title: Overview # merge working in studio content into here
88
path: /studio/
99
- title: Studio Setup
10-
path: /studio/setting-up-roblox-studio
10+
path: /studio/setup
1111
- title: Studio Interface
1212
path: /studio/ui-overview
13-
- title: Beta Features
14-
path: /studio/beta
1513
- heading: Building Tools
1614
- title: Align Tool
1715
path: /studio/align-tool
Lines changed: 272 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,272 @@
1+
---
2+
title: Caging Best Practices
3+
description: In-depth description and images of various caging best practices for layered clothing.
4+
---
5+
6+
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.
7+
8+
<GridContainer numColumns="3">
9+
<figure>
10+
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-D.png" width="100%" alt=""/>
11+
<figcaption>A properly configured cage typically includes a tight layering of the inner cage, clothing mesh, and the outer cage.</figcaption>
12+
</figure>
13+
14+
<figure>
15+
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-B.png" width="100%" alt=""/>
16+
<figcaption>The t-shirt stretches and fits naturally over a base body.</figcaption>
17+
</figure>
18+
19+
<figure>
20+
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-C.png" width="100%" alt=""/>
21+
<figcaption>Other layered objects, such as a jacket, should stretch and fit naturally over a target body and any other caged assets.</figcaption>
22+
</figure>
23+
24+
</GridContainer>
25+
26+
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.
27+
28+
<Alert severity = 'warning'>
29+
Roblox is enforcing a stricter set of validation rules to improve the overall quality of layered clothing accessories in the Marketplace.
30+
</Alert>
31+
32+
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.
33+
34+
## Best practices
35+
36+
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.
37+
38+
<Alert severity = 'error'>
39+
You should not edit the cage UVs since this will introduce visual artifacts.
40+
</Alert>
41+
42+
When caging your clothing items, use these important universal guidelines:
43+
44+
- 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.
45+
<GridContainer numColumns="3">
46+
<figure>
47+
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-D.png" width="80%" alt=""/>
48+
<figcaption>The t-shirt mesh fits snugly between the inner and outer cage.</figcaption>
49+
</figure>
50+
51+
<figure>
52+
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-B.png" width="80%" alt=""/>
53+
<figcaption>The correctly configured t-shirt naturally stretches over a target body.</figcaption>
54+
</figure>
55+
56+
<figure>
57+
<img src="../../assets/accessories/caging-best-practices/7-Typical-Caging-Example-C.png" width="80%" alt=""/>
58+
<figcaption>Other layered assets should stretch and fit naturally over a target body and any equipped caged assets.</figcaption>
59+
</figure>
60+
</GridContainer>
61+
62+
- You must follow the [naming conventions](../../art/accessories/clothing-specifications.md#cage-meshes) for the clothing geometry and the cage.
63+
- Many caging issues start from incorrect outer cage setup. See [working with outer cages](#working-with-outer-cages) for specific details.
64+
- 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).
65+
- If troubleshooting any issues, review [common issues](#common-issues) to help identify problematic clothing items or specific validation errors.
66+
67+
### Working with outer cages
68+
69+
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.
70+
71+
When working with the outer cage, use the following guidelines when possible:
72+
73+
- Move vertices outwards in the normal's direction.
74+
<img src="../../assets/accessories/caging-best-practices/8-Symmetry.png" width="60%" alt=""/>
75+
- Keep the outer cage as close to the clothing as possible.
76+
- Work symmetrically as much as possible to save time.
77+
- Do not alter the UVs in any way.
78+
- Do not stack your vertices.
79+
<figure>
80+
<img src="../../assets/accessories/caging-best-practices/9-Stacking-Vertices.png" width="100%" alt=""/>
81+
<figcaption>Two vertices stacked directly over each other. This will introduce visual artifacts when layering other layered accessories on top.</figcaption>
82+
</figure>
83+
84+
- Keep the vertex, edge, and face count exactly the same as when you started.
85+
- Keep your cage's edge spacing as evenly as possible.
86+
<GridContainer numColumns = '2'>
87+
<figure>
88+
<img src="../../assets/accessories/caging-best-practices/10-Even-Spacing-A.png" width="100%" alt=""/>
89+
<figcaption><Alert severity = 'success'>Outer cage with even spacing whenever possible on the faces. </Alert></figcaption>
90+
</figure>
91+
<figure>
92+
<img src="../../assets/accessories/caging-best-practices/10-Even-Spacing-B.png" width="100%" alt=""/>
93+
<figcaption><Alert severity = 'error'>Outer cage with uneven spacing throughout the torso area. Uneven cages can create visual artifacts and uneven deformations.</Alert> </figcaption>
94+
</figure>
95+
</GridContainer>
96+
97+
- 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.
98+
99+
<figure>
100+
<img src="../../assets/accessories/caging-best-practices/11-Positioning-Along-Joints.png" width="50%" alt=""/>
101+
<figcaption>Proportional changes can help improve animation and posing quality.</figcaption>
102+
</figure>
103+
104+
### Caging form-fitting clothing
105+
106+
Form-fitting clothing, like t-shirts, yoga pants, shorts, sweaters and slim jackets, are the most common type of layered clothing.
107+
108+
In this case, the outer cage needs to completely envelop the clothing accessory with minimal gaps between inner cage, clothing, and outer cage.
109+
110+
- Move outer cage vertices outwards to completely cover the clothing item, while maintaining the silhouette of the clothing as much as possible.
111+
- 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.
112+
- The entire clothing item should be located in-between the outer and inner cages.
113+
114+
### Caging bulky clothing items
115+
116+
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.
117+
118+
- Pay special attention to the direction neighboring outer cage vertices are moved.
119+
- Move along vertex normal directions as much as possible.
120+
- Move vertices nearby each other more or less along the same directions (smooth relative displacements).
121+
- Avoid moving vertices that are not covered by the clothing item, such as moving vertices in the arm region if you are making pants.
122+
123+
### Caging protrusions
124+
125+
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.
126+
127+
<GridContainer numColumns="3">
128+
<figure>
129+
<img src="../../assets/accessories/caging-best-practices/12-Protusions-A.png" width="100%" alt=""/>
130+
<figcaption>Like all clothing, clothing with protrusions should fit over inner cages.</figcaption>
131+
</figure>
132+
133+
<figure>
134+
<img src="../../assets/accessories/caging-best-practices/12-Protusions-B.png" width="100%" alt=""/>
135+
<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>
136+
</figure>
137+
138+
<figure>
139+
<img src="../../assets/accessories/caging-best-practices/12-Protusions-C.png" width="100%" alt=""/>
140+
<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>
141+
</figure>
142+
</GridContainer>
143+
144+
To ensure that the protruded region stays visible independent of the number of layers:
145+
146+
- 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.
147+
- Avoid moving vertices that are not covered by the clothing item
148+
149+
## Common issues
150+
151+
Improper caging can cause various rendering and deformation issues. The following common examples can help diagnose and troubleshoot any caging issues you may encounter.
152+
153+
### Uneven caging
154+
155+
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.
156+
157+
<GridContainer numColumns='2'>
158+
159+
<figure>
160+
<img src="../../assets/accessories/caging-best-practices/1-Uneven-Cage-A.png" width="80%" alt=""/>
161+
<figcaption>The outer cage of the black shirt is set up with uneven vertices producing an undulated caging surface.</figcaption>
162+
</figure>
163+
<figure>
164+
<img src="../../assets/accessories/caging-best-practices/1-Uneven-Cage-B.png" width="80%" alt=""/>
165+
<figcaption>Any layered clothing accessory fit on top will have visual artifacts even if the clothing asset itself looks fine.</figcaption>
166+
</figure>
167+
</GridContainer>
168+
169+
### Identical inner and outer cage
170+
171+
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.
172+
173+
<GridContainer numColumns='2'>
174+
<figure>
175+
<img src="../../assets/accessories/caging-best-practices/2-Inner-Outer-Identical-A.png" width="80%" alt=""/>
176+
<figcaption>An example of an identical inner and outer cages.</figcaption>
177+
</figure>
178+
<figure>
179+
<img src="../../assets/accessories/caging-best-practices/2-Inner-Outer-Identical-B.png" width="80%" alt=""/>
180+
<figcaption>The tshirt deforms in an unexpected manner and fails to render in its original shape or placement.</figcaption>
181+
</figure>
182+
</GridContainer>
183+
184+
### Clothing inside inner cage
185+
186+
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.
187+
188+
<GridContainer numColumns = '2'>
189+
190+
<figure>
191+
<img src="../../assets/accessories/caging-best-practices/3-Clothing-Under-Inner-A.png" width="80%" alt=""/>
192+
<figcaption>The clothing mesh intersects and is positioned within the inner cage at the shoulders and abdomen areas.</figcaption>
193+
</figure>
194+
<figure>
195+
<img src="../../assets/accessories/caging-best-practices/3-Clothing-Under-Inner-B.png" width="80%" alt=""/>
196+
<figcaption>When equipped, the t-shirt does not fit properly, exposing the problematic areas in the shoulders and abdomen.</figcaption>
197+
</figure>
198+
</GridContainer>
199+
200+
### Clothing partially outside outer cage
201+
202+
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).
203+
204+
<GridContainer numColumns = '2'>
205+
<figure>
206+
<img src="../../assets/accessories/caging-best-practices/4-Outer-Not-Fully-Covering-A.png" width="80%" alt=""/>
207+
<figcaption>The outer cage of the tshirt is positioned within the clothing mesh near the abdomen.</figcaption>
208+
</figure>
209+
<figure>
210+
<img src="../../assets/accessories/caging-best-practices/4-Outer-Not-Fully-Covering-B.png" width="80%" alt=""/>
211+
<figcaption>When equipped, layered assets fail to fit properly at the affected areas.</figcaption>
212+
</figure>
213+
</GridContainer>
214+
215+
### Oversized outer cage
216+
217+
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.
218+
219+
<img src="../../assets/accessories/caging-best-practices/6-Oversized-Cage.png" width="50%" alt=""/>
220+
221+
### Collapsed cage vertices
222+
223+
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.
224+
225+
<figure>
226+
<img src="../../assets/accessories/caging-best-practices/9-Stacking-Vertices.png" width="100%" alt=""/>
227+
<figcaption>Most 3D applications can indicate if vertices are directly overlapping</figcaption>
228+
</figure>
229+
230+
<Alert severity = 'warning'>
231+
This setup will be rejected during validation.
232+
</Alert>
233+
234+
### Cages with missing limbs
235+
236+
<img src="../../assets/accessories/caging-best-practices/13-Cage-Missing-Parts.png" width="60%" alt=""/>
237+
238+
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.
239+
240+
<Alert severity = 'warning'>
241+
This setup will be rejected during validation.
242+
</Alert>
243+
244+
### Outer cage inside the inner cage
245+
246+
Setting the outer cage inside the inner cage creates a clothing item that can't properly layer with other assets.
247+
248+
<img src="../../assets/accessories/caging-best-practices/14-Outer-Inside-Inner.png" width="60%" alt=""/>
249+
250+
<Alert severity = 'warning'>
251+
This setup will be rejected during validation.
252+
</Alert>
253+
254+
### Mesh outside of outer cage
255+
256+
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.
257+
258+
<GridContainer numColumns = '2'>
259+
<figure>
260+
<img src="../../assets/accessories/caging-best-practices/15-Orbitting-Accessory-B.png" width="80%" alt=""/>
261+
<figcaption>Assets outside of the cage meshes are not supported.</figcaption>
262+
</figure>
263+
<figure>
264+
<img src="../../assets/accessories/caging-best-practices/15-Orbitting-Accessory-A.png" width="80%" alt=""/>
265+
<figcaption>Even with a correct hierarchy, assets outside the cages will not deform.</figcaption>
266+
</figure>
267+
268+
</GridContainer>
269+
270+
<Alert severity = 'warning'>
271+
This setup will be rejected during validation.
272+
</Alert>

content/en-us/art/overview-studio.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Each of the following sections include a brief description as well as additional
1717

1818
## Basic Layout
1919

20-
After [installing Studio](../studio/setting-up-roblox-studio.md), familiarize yourself with Studio's many 3D art tools and interfaces. While you can customize Studio to show various layouts and tools, Studio opens with the most commonly used windows by default:
20+
After [installing Studio](../studio/setup.md), familiarize yourself with Studio's many 3D art tools and interfaces. While you can customize Studio to show various layouts and tools, Studio opens with the most commonly used windows by default:
2121

2222
<img src="../assets/art/Studio-Overview.png" width = "100%" alt=""/>
2323

@@ -82,12 +82,12 @@ Like all creation tools, keyboard shortcuts allow you to work efficiently and qu
8282
<td>Anchoring a part locks it in place, even when other objects collide with it. </td>
8383
</tr>
8484
<tr>
85-
<td>In [Studio Settings](../studio/setting-up-roblox-studio.md#customization)</td>
85+
<td>In [Studio Settings](../studio/setup.md#customization)</td>
8686
<td>Change highlight and selection colors</td>
8787
<td>Changing highlight and selection colors can help with accessibility.</td>
8888
</tr>
8989
<tr>
90-
<td>In [Studio Settings](../studio/setting-up-roblox-studio.md#customization)</td>
90+
<td>In [Studio Settings](../studio/setup.md#customization)</td>
9191
<td>Change camera speed</td>
9292
<td>Modify how fast the camera moves by default. </td>
9393
</tr>
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)