Skip to content

Commit 81c9d88

Browse files
authored
Merge branch 'main' into patch-4
2 parents 9fd9ab4 + 358152b commit 81c9d88

File tree

61 files changed

+1831
-675
lines changed

Some content is hidden

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

61 files changed

+1831
-675
lines changed

content/common/navigation/engine/reference.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,6 +1183,11 @@ navigation:
11831183
type: engineapi
11841184
source: /reference/engine/classes/HandlesBase.yaml
11851185
ignoreTranslation: true
1186+
- title: HandRigDescription
1187+
path: /reference/engine/classes/HandRigDescription
1188+
type: engineapi
1189+
source: /reference/engine/classes/HandRigDescription.yaml
1190+
ignoreTranslation: true
11861191
- title: HapticEffect
11871192
path: /reference/engine/classes/HapticEffect
11881193
type: engineapi
@@ -2933,6 +2938,11 @@ navigation:
29332938
type: engineapi
29342939
source: /reference/engine/classes/VelocityMotor.yaml
29352940
ignoreTranslation: true
2941+
- title: VideoCapture
2942+
path: /reference/engine/classes/VideoCapture
2943+
type: engineapi
2944+
source: /reference/engine/classes/VideoCapture.yaml
2945+
ignoreTranslation: true
29362946
- title: VideoCaptureService
29372947
path: /reference/engine/classes/VideoCaptureService
29382948
type: engineapi
@@ -4276,6 +4286,11 @@ navigation:
42764286
type: engineapi
42774287
source: /reference/engine/enums/HandlesStyle.yaml
42784288
ignoreTranslation: true
4289+
- title: HandRigDescriptionSide
4290+
path: /reference/engine/enums/HandRigDescriptionSide
4291+
type: engineapi
4292+
source: /reference/engine/enums/HandRigDescriptionSide.yaml
4293+
ignoreTranslation: true
42794294
- title: HapticEffectType
42804295
path: /reference/engine/enums/HapticEffectType
42814296
type: engineapi
@@ -4631,6 +4646,11 @@ navigation:
46314646
type: engineapi
46324647
source: /reference/engine/enums/NameOcclusion.yaml
46334648
ignoreTranslation: true
4649+
- title: NegateOperationHiddenHistory
4650+
path: /reference/engine/enums/NegateOperationHiddenHistory
4651+
type: engineapi
4652+
source: /reference/engine/enums/NegateOperationHiddenHistory.yaml
4653+
ignoreTranslation: true
46344654
- title: NetworkOwnership
46354655
path: /reference/engine/enums/NetworkOwnership
46364656
type: engineapi

content/en-us/art/characters/export-avatar-animations-from-maya.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description: Explains the process for exporting avatar animations from Maya.
1111
<figcaption>R15 mannequin reference</figcaption>
1212
</figure>
1313
<figure>
14-
<video controls src="../../assets/animation/exporting-avatar-animations-from-maya/Moving-Rig.mp4" alt="An angled side view of the same humnoid mannequin walking in place." width="40%"></video>
14+
<video controls src="../../assets/animation/exporting-avatar-animations-from-maya/Moving-Rig.mp4" alt="An angled side view of the same humanoid mannequin walking in place." width="40%"></video>
1515
<figcaption>Example walking animation</figcaption>
1616
</figure>
1717
</GridContainer>
@@ -89,7 +89,7 @@ To export your avatar animation from Maya:
8989
1. In the menu bar, click **Windows**. A contextual menu displays.
9090
1. Hover over **Settings/Preferences**, then click **Plug-in Manager**. The **Plug-in Manager** window displays.
9191

92-
<img width="80%" img src="../../assets/animation/exporting-avatar-animations-from-maya/Plugin-Manager.jpg" alt="A close up view of the Windows dropdown menu in Maya. The Settings/Preferences menu item is highlighted, as well as the Plguin-in Manager submenu." />
92+
<img width="80%" img src="../../assets/animation/exporting-avatar-animations-from-maya/Plugin-Manager.jpg" alt="A close up view of the Windows dropdown menu in Maya. The Settings/Preferences menu item is highlighted, as well as the Plug-in Manager submenu." />
9393

9494
1. In the search field, input **fbxmaya**. The **fbxmaya.mll** plugin displays.
9595
1. Enable the **Loaded** and **Auto load** options.
Lines changed: 3 additions & 0 deletions
Loading

content/en-us/cloud-services/data-stores/error-codes-and-limits.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,8 @@ Each queue has a limit of 30 requests. When the limit of a queue is reached, req
327327
<Tabs>
328328
<TabItem label="Server limits">
329329
Each server is allowed a certain number of data store requests based on the request type and number of users. Use `Class.DataStoreService:GetRequestBudgetForRequestType()|GetRequestBudgetForRequestType()` to confirm the number of data store requests that the current place can make.
330+
331+
For each request type, the limit is shared among all listed functions.
330332

331333
<table>
332334
<thead>
@@ -343,7 +345,7 @@ Each queue has a limit of 30 requests. When the limit of a queue is reached, req
343345
<td>60 + numPlayers × 10</td>
344346
</tr>
345347
<tr>
346-
<td><b>Set</b> (limit is shared among all listed functions)</td>
348+
<td><b>Set</b></td>
347349
<td>`Class.GlobalDataStore:SetAsync()|SetAsync()`<br></br>`Class.GlobalDataStore:IncrementAsync()|IncrementAsync()`<br></br>`Class.GlobalDataStore:UpdateAsync()|UpdateAsync()`<br></br>`Class.GlobalDataStore:RemoveAsync()|RemoveAsync()`</td>
348350
<td>60 + numPlayers × 10</td>
349351
</tr>

content/en-us/education/battle-royale-series/cleanup-and-reset.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ At the end of the transition, remaining players will be removed from the arena,
211211

212212
When players move into the transition state, remove their weapons.
213213

214-
1. In PlayerManager, find the local functions. Copy and paste the highlighted code for `removePlayerWeapon()` below. The code will remove an individual player's weapon if it's actively equipt or in the player's backpack.
214+
1. In PlayerManager, find the local functions. Copy and paste the highlighted code for `removePlayerWeapon()` below. The code will remove an individual player's weapon if it's actively equipped or in the player's backpack.
215215

216216
```lua
217217
local function removePlayerWeapon(whichPlayer)
@@ -227,7 +227,7 @@ When players move into the transition state, remove their weapons.
227227
end
228228

229229
-- If the player has the weapon in their backpack
230-
local backpackWeapon = whichPlayer.Backpack:FindFirstChild("Weapon")
230+
local backpackWeapon = whichPlayer.Backpack:FindFirstChild("Weapon")
231231

232232
if backpackWeapon then
233233
backpackWeapon:Destroy()
@@ -288,7 +288,7 @@ Cleanup will be its own function in MatchManager. For now, cleanup will just use
288288
repeat
289289
task.wait(gameSettings.intermissionDuration)
290290
until #Players:GetPlayers() >= gameSettings.minimumPlayers
291-
291+
292292
displayManager.updateStatus("Get ready!")
293293
task.wait(gameSettings.transitionTime)
294294

@@ -371,25 +371,25 @@ First, start a function to send players back to the lobby.
371371

372372
```lua
373373
while true do
374-
displayManager.updateStatus("Waiting for Players")
374+
displayManager.updateStatus("Waiting for Players")
375375

376-
repeat
377-
task.wait(gameSettings.intermissionDuration)
378-
until #Players:GetPlayers() >= gameSettings.minimumPlayers
376+
repeat
377+
task.wait(gameSettings.intermissionDuration)
378+
until #Players:GetPlayers() >= gameSettings.minimumPlayers
379379

380-
displayManager.updateStatus("Get ready!")
381-
task.wait(gameSettings.transitionTime)
380+
displayManager.updateStatus("Get ready!")
381+
task.wait(gameSettings.transitionTime)
382382

383-
matchManager.prepareGame()
384-
local endState = matchEnd.Event:Wait()
383+
matchManager.prepareGame()
384+
local endState = matchEnd.Event:Wait()
385385

386-
local endStatus = matchManager.getEndStatus(endState)
387-
displayManager.updateStatus(endStatus)
386+
local endStatus = matchManager.getEndStatus(endState)
387+
displayManager.updateStatus(endStatus)
388388

389-
matchManager.cleanupMatch()
390-
task.wait(gameSettings.transitionTime)
389+
matchManager.cleanupMatch()
390+
task.wait(gameSettings.transitionTime)
391391

392-
matchManager.resetMatch()
392+
matchManager.resetMatch()
393393
end
394394
```
395395

@@ -614,7 +614,7 @@ local function removePlayerWeapon(whichPlayer)
614614
end
615615

616616
-- If the player has the weapon in their backpack
617-
local backpackWeapon = whichPlayer.Backpack:FindFirstChild("Weapon")
617+
local backpackWeapon = whichPlayer.Backpack:FindFirstChild("Weapon")
618618

619619
if backpackWeapon then
620620
backpackWeapon:Destroy()

content/en-us/performance-optimization/design.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Designing for performance means following a handful of best practices **as you b
77

88
## Low-end devices
99

10-
Lower-end devices, particularly mobile devices, have severe memory limitations and are succeptible to crashes due to out of memory (OOM) errors:
10+
Lower-end devices, particularly mobile devices, have severe memory limitations and are susceptible to crashes due to out of memory (OOM) errors:
1111

1212
- If you want to support lower-end devices, choose at least one "baseline" device, test your experience on it throughout the development process, and pay close attention to frame rate and memory usage. As you find problem areas in your experience, use those areas to identify the limits of your device.
1313

content/en-us/physics/mechanical-constraints.md

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,133 +5,159 @@ description: Mechanical constraints behave as conceptual mechanical connections
55

66
The physics engine includes the following `Class.Constraint|Constraints` that behave as conceptual mechanical connections, including hinges, springs, ropes, and more. In addition, various [mover constraints](../physics/mover-constraints.md) are available to exert directional or rotational force upon [assemblies](../physics/assemblies.md).
77

8-
<GridContainer numColumns="2">
8+
<Grid container spacing={4}>
99

10+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
1011
<Card variant="outlined" style={{height: '100%'}}>
1112
<CardContent>
12-
<Button href="../physics/constraints/ball-socket.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Ball Socket</Button>
13+
<Button href="../physics/constraints/ball-socket.md" size="large" variant="contained" fullWidth>Ball Socket</Button>
1314
<p></p>
1415
<CardMedia component="video" controls src="../assets/physics/constraints/BallInSocket-Demo.mp4" />
1516
<p></p>
1617
<figcaption>[BallSocketConstraint](../physics/constraints/ball-socket.md) forces its two attachments into the same position and allows them to freely rotate about all three axes, with optional limits to restrict both tilt and twist</figcaption>
1718
</CardContent>
1819
</Card>
20+
</Grid>
1921

22+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
2023
<Card variant="outlined" style={{height: '100%'}}>
2124
<CardContent>
22-
<Button href="../physics/constraints/hinge.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Hinge</Button>
25+
<Button href="../physics/constraints/hinge.md" size="large" variant="contained" fullWidth>Hinge</Button>
2326
<p></p>
2427
<CardMedia component="video" controls src="../assets/physics/constraints/Hinge-Demo.mp4" />
2528
<p></p>
2629
<figcaption>[HingeConstraint](../physics/constraints/hinge.md) allows its two attachments to rotate about one axis, with optional assigned power for motor or servo behavior</figcaption>
2730
</CardContent>
2831
</Card>
32+
</Grid>
2933

34+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
3035
<Card variant="outlined" style={{height: '100%'}}>
3136
<CardContent>
32-
<Button href="../physics/constraints/prismatic.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Prismatic</Button>
37+
<Button href="../physics/constraints/prismatic.md" size="large" variant="contained" fullWidth>Prismatic</Button>
3338
<p></p>
3439
<CardMedia component="video" controls src="../assets/physics/constraints/Prismatic-Demo.mp4" />
3540
<p></p>
3641
<figcaption>[PrismaticConstraint](../physics/constraints/prismatic.md) allows two attachments to slide along one axis but not rotate, with optional assigned power for mechanisms like sliding doors and elevator platforms</figcaption>
3742
</CardContent>
3843
</Card>
44+
</Grid>
3945

46+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
4047
<Card variant="outlined" style={{height: '100%'}}>
4148
<CardContent>
42-
<Button href="../physics/constraints/cylindrical.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Cylindrical</Button>
49+
<Button href="../physics/constraints/cylindrical.md" size="large" variant="contained" fullWidth>Cylindrical</Button>
4350
<p></p>
4451
<CardMedia component="video" controls src="../assets/physics/constraints/Cylindrical-Demo.mp4" />
4552
<p></p>
4653
<figcaption>[CylindricalConstraint](../physics/constraints/cylindrical.md) allows its attachments to slide along one axis and rotate about another axis, with optional assigned angular and/or linear power</figcaption>
4754
</CardContent>
4855
</Card>
56+
</Grid>
4957

58+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
5059
<Card variant="outlined" style={{height: '100%'}}>
5160
<CardContent>
52-
<Button href="../physics/constraints/spring.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Spring</Button>
61+
<Button href="../physics/constraints/spring.md" size="large" variant="contained" fullWidth>Spring</Button>
5362
<p></p>
5463
<CardMedia component="video" controls src="../assets/physics/constraints/Spring-Demo.mp4" />
5564
<p></p>
5665
<figcaption>[SpringConstraint](../physics/constraints/spring.md) applies a force on its attachments based on spring and damper behavior, with an optional minimum/maximum length</figcaption>
5766
</CardContent>
5867
</Card>
59-
68+
</Grid>
69+
70+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
6071
<Card variant="outlined" style={{height: '100%'}}>
6172
<CardContent>
62-
<Button href="../physics/constraints/torsion-spring.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Torsion Spring</Button>
73+
<Button href="../physics/constraints/torsion-spring.md" size="large" variant="contained" fullWidth>Torsion Spring</Button>
6374
<p></p>
6475
<CardMedia component="video" controls src="../assets/physics/constraints/TorsionSpring-Demo.mp4" />
6576
<p></p>
6677
<figcaption>[TorsionSpringConstraint](../physics/constraints/torsion-spring.md) applies torque based on a relative angle and relative angular velocity, in an attempt to bring two axes from two parts together</figcaption>
6778
</CardContent>
6879
</Card>
69-
80+
</Grid>
81+
82+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
7083
<Card variant="outlined" style={{height: '100%'}}>
7184
<CardContent>
72-
<Button href="../physics/constraints/universal.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Universal</Button>
85+
<Button href="../physics/constraints/universal.md" size="large" variant="contained" fullWidth>Universal</Button>
7386
<p></p>
7487
<CardMedia component="video" controls src="../assets/physics/constraints/Universal-Demo.mp4" />
7588
<p></p>
7689
<figcaption>[UniversalConstraint](../physics/constraints/universal.md) ensures two axes on two assemblies remain perpendicular, useful for applications such as vehicle power transmission to rear drive shafts, robotics, and more</figcaption>
7790
</CardContent>
7891
</Card>
92+
</Grid>
7993

94+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
8095
<Card variant="outlined" style={{height: '100%'}}>
8196
<CardContent>
82-
<Button href="../physics/constraints/rope.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Rope</Button>
97+
<Button href="../physics/constraints/rope.md" size="large" variant="contained" fullWidth>Rope</Button>
8398
<p></p>
8499
<CardMedia component="video" controls src="../assets/physics/constraints/Rope-Demo.mp4" />
85100
<p></p>
86101
<figcaption>[RopeConstraint](../physics/constraints/rope.md) prevents two attachments from separating further than a defined length, with optional behavior as an extending or contracting winch</figcaption>
87102
</CardContent>
88103
</Card>
104+
</Grid>
89105

106+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
90107
<Card variant="outlined" style={{height: '100%'}}>
91108
<CardContent>
92-
<Button href="../physics/constraints/rod.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Rod</Button>
109+
<Button href="../physics/constraints/rod.md" size="large" variant="contained" fullWidth>Rod</Button>
93110
<p></p>
94111
<CardMedia component="video" controls src="../assets/physics/constraints/Rod-Demo.mp4" />
95112
<p></p>
96113
<figcaption>[RodConstraint](../physics/constraints/rod.md) keeps two attachments separated by a defined length, with optional limits on rotational tilt</figcaption>
97114
</CardContent>
98115
</Card>
116+
</Grid>
99117

118+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
100119
<Card variant="outlined" style={{height: '100%'}}>
101120
<CardContent>
102-
<Button href="../physics/constraints/plane.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Plane</Button>
121+
<Button href="../physics/constraints/plane.md" size="large" variant="contained" fullWidth>Plane</Button>
103122
<p></p>
104123
<CardMedia component="video" controls src="../assets/physics/constraints/Plane-Demo.mp4" />
105124
<p></p>
106125
<figcaption>[PlaneConstraint](../physics/constraints/plane.md) moves two attachments into a position/orientation along a plane, and both attachments remain free to translate and rotate unless otherwise constrained</figcaption>
107126
</CardContent>
108127
</Card>
128+
</Grid>
109129

130+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
110131
<Card variant="outlined" style={{height: '100%'}}>
111132
<CardContent>
112-
<Button href="../physics/constraints/weld.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Weld</Button>
133+
<Button href="../physics/constraints/weld.md" size="large" variant="contained" fullWidth>Weld</Button>
113134
<p></p>
114135
<figcaption>[WeldConstraint](../physics/constraints/weld.md) connects two `Class.BasePart|BaseParts` and ensures they stay in the same relative position and orientation to each other, even if they are not touching</figcaption>
115136
</CardContent>
116137
</Card>
138+
</Grid>
117139

140+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
118141
<Card variant="outlined" style={{height: '100%'}}>
119142
<CardContent>
120-
<Button href="../physics/constraints/rigid.md" size="large" color="primaryBrand" variant="outlined" fullWidth>Rigid</Button>
143+
<Button href="../physics/constraints/rigid.md" size="large" variant="contained" fullWidth>Rigid</Button>
121144
<p></p>
122145
<figcaption>[RigidConstraint](../physics/constraints/rigid.md) connects two `Class.Attachment|Attachments` or `Class.Bone|Bones` and ensures they stay in the same relative position/orientation to each other, even if they are not touching</figcaption>
123146
</CardContent>
124147
</Card>
148+
</Grid>
125149

150+
<Grid item XSmall={12} Small={6} Medium={6} Large={6}>
126151
<Card variant="outlined" style={{height: '100%'}}>
127152
<CardContent>
128-
<Button href="../physics/constraints/no-collision.md" size="large" color="primaryBrand" variant="outlined" fullWidth>No Collision</Button>
153+
<Button href="../physics/constraints/no-collision.md" size="large" variant="contained" fullWidth>No Collision</Button>
129154
<p></p>
130155
<figcaption>[NoCollisionConstraint](../physics/constraints/no-collision.md) prevents collisions between two specific parts, but those parts may still register collisions with the rest of the world</figcaption>
131156
</CardContent>
132157
</Card>
158+
</Grid>
133159

134-
</GridContainer>
160+
</Grid>
135161

136162
## Constraint visualization
137163

0 commit comments

Comments
 (0)