mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-25 13:31:37 +00:00
rules
This commit is contained in:
parent
a9b4f8e83b
commit
e6efc04756
8494 changed files with 495610 additions and 0 deletions
56
.cursor/rules/roblox/art/emotes/export-settings.md
Normal file
56
.cursor/rules/roblox/art/emotes/export-settings.md
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
title: Animation export settings
|
||||
description: Use the appropriate export settings in Maya and Blender to generate Studio-ready .fbx files.
|
||||
---
|
||||
|
||||
You can export animation data from a third-party software, such as Blender or Maya to use in Studio. Both `.fbx` and `.gLTF` formats support animation data.
|
||||
|
||||
Typically, creators will use a third-party modeling tool to animate a character model. Once the animation is complete, you export both the model and the animation data into Roblox Studio.
|
||||
|
||||
After exporting, you can [import and configure](./import.md) the animation data into Studio.
|
||||
|
||||
## Before exporting
|
||||
|
||||
When exporting characters with animation or FACS animation, ensure that your animation timeline **Start** and **End** include the entire range of your animations.
|
||||
|
||||
<img src="../../assets/art/avatar/basic-creation/Blender-Animation-Start-End.png" width = "60%" alt="Zoom-in of Blender animation track indicating a Start value of 0 and End value of 308." />
|
||||
|
||||
## 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.
|
||||
|
||||
1. In the topbar, click **File** > **Export** > **FBX (.fbx)**. The Blender file browser window displays.
|
||||
2. Set **Path Mode** to **Copy** and enable the **Embed Textures** icon.
|
||||
3. In the Include section, enable **Custom Properties**.
|
||||
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).
|
||||
5. Expand the Armature section and uncheck **Add Leaf Bones**.
|
||||
6. Enable **Bake Animation**.
|
||||
7. Expand Bake Animation and **uncheck NLA Strips**, **All Actions**, and **Force Start/End Keyframes**.
|
||||
1. Ensure your project animation timeline has the correct **Start** and **End** range of all your keyframes.
|
||||
8. In Bake Animation, set **Simplify** to **0.0**.
|
||||
9. Click the **Export FBX** button. Save the `.fbx` to the directory of your choice.
|
||||
|
||||
<img src="../../assets/art/avatar/basic-creation/Export-Settings.png" width = "50%" alt="Screenshot of Blender export settings" />
|
||||
|
||||
## Maya
|
||||
|
||||
For additional context on exporting animations from Maya, see the [Exporting Characters from Maya](../../art/characters/export-avatar-animations-from-maya.md) tutorial.
|
||||
|
||||
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, enable **Animation**. Avatar characters with [facial animation data](../../art/characters/facial-animation/index.md) require animation data.
|
||||
7. Enable **Bake Animation**.
|
||||
8. If you need to import textures as a `.png`, in the **Embed Media** section, enable **Embed Media**.
|
||||
9. In the **Advanced Options** section,
|
||||
- Navigate to **Units**, then enable **Automatic**.
|
||||
- Navigate to **Axis Conversion**, then set the **Up Axis** property to **Y**.
|
||||
10. Click the **Export All** button.
|
||||
|
||||
<img src="../../assets/accessories/lc-requirements-maya-settings-with-animation.png" alt = "Screenshot of Maya export settings for exports with animation."/>
|
||||
|
||||
11. After exporting, use Studio's [3D importer](../../art/modeling/3d-importer.md) to import your model. See [Test characters in Studio](../../art/characters/testing/studio.md) for additional importing and testing information.
|
||||
93
.cursor/rules/roblox/art/emotes/import.md
Normal file
93
.cursor/rules/roblox/art/emotes/import.md
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
---
|
||||
title: Import and configure animations
|
||||
description: Use the 3D Importer to add third-party models to Studio before testing, using, or uploading the character model.
|
||||
---
|
||||
|
||||
Use the following steps to import and configure the animation for publishing emotes:
|
||||
|
||||
1. [Import](#import-into-animation-editor) the animation into Studio.
|
||||
2. [Convert](#convert-to-curveanimation) the animation to a `CurveAnimation`.
|
||||
3. [Generate an asset ID](#generate-asset-id) from your animation data.
|
||||
4. [Create an Animation object](#create-an-animation-object) using the asset ID
|
||||
5. [Upload](#upload-and-publish-an-emote) the animation as an avatar emote.
|
||||
|
||||
## Import into Animation Editor
|
||||
|
||||
If your animation data is saved to a `.fbx` file and your animation meets the emote [technical specifications](./specifications.md), use the **Animation Editor** to import your animation. If your animation is already in Studio, skip this step.
|
||||
<br />
|
||||
To import your animation in Studio:
|
||||
|
||||
1. If you don't already have a rigged R15 character in your workspace, add one by selecting **Avatar** > **Character**.
|
||||
2. Select **Avatar** > **Animation** to open the **Animation Editor**.
|
||||
3. With editor open, select the rigged character in the 3D viewport.
|
||||
4. In the **Animation Editor**, select **⋯** > **Import** > **From FBX Animation** and select your `.fbx` file.
|
||||
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Editor-Import.png" />
|
||||
|
||||
5. Verify your animation populates and correctly animates on the target rig.
|
||||
6. Follow steps to [convert to CurveAnimation](#convert-to-curveanimation).
|
||||
|
||||
## Convert to CurveAnimation
|
||||
|
||||
To generate an asset ID for your animation, use the **Animation Editor** to convert the animation to a `CurveAnimation` and save the animation to Roblox to generate an asset ID.
|
||||
|
||||
<Alert severity = 'warning'>
|
||||
The animation data for emotes must be a `CurveAnimation` clip.
|
||||
</Alert>
|
||||
|
||||
To convert an existing keyframe sequence to a `CurveAnimation`:
|
||||
|
||||
1. In the **Animation Editor**, select the **Curve Editor** button next to the timeline. A confirmation prompt displays.
|
||||
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Editor-Curve-Animation-Icon.png" />
|
||||
|
||||
2. Press **Confirm** to convert your keyframes into a `CurveAnimation` clip.
|
||||
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Editor-Curve-Prompt.png" />
|
||||
|
||||
## Generate Asset ID
|
||||
|
||||
To create an asset ID of the `CurveAnimation`:
|
||||
|
||||
1. In the **Animation Editor**, select the **⋯** > **Publish to Roblox**.
|
||||
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Editor-Publish.png" />
|
||||
|
||||
2. Add a title and description and save the animation.
|
||||
3. After processing, you should see a successful upload and an asset ID to copy.
|
||||
|
||||
<img src="../../assets/avatar/avatar-emotes/Generate-Asset-ID-Success.png" />
|
||||
|
||||
## Create an Animation object
|
||||
|
||||
To submit an emote to the Marketplace, you must submit an `Class.Animation` object with the `AnimationId` property set to the asset ID of your `CurveAnimation`.
|
||||
|
||||
<GridContainer numColumns="2">
|
||||
<figure>
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Explorer.png" />
|
||||
<figcaption><center>`Animation` object in the Explorer.</center></figcaption>
|
||||
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Properties.png" />
|
||||
<figcaption><center>`AnimationId` property in the Properties window.</center></figcaption>
|
||||
</figure>
|
||||
</GridContainer>
|
||||
|
||||
To create an `Class.Animation` object you can publish as an emote:
|
||||
|
||||
1. In the **Explorer**, add a new `Animation` object.
|
||||
2. In the **Properties** window, add the asset ID of the emote animation.
|
||||
|
||||
## Upload and publish an emote
|
||||
|
||||
When you have an `Class.Animation` with your emote animation asset ID set, you can upload the emote to the Marketplace. This process requires an [upload fee](../../marketplace/marketplace-fees-and-commissions.md#upload-fees).
|
||||
|
||||
1. Right-click the `Animation` object and select **Save to Roblox**.
|
||||
2. In the upload window, set the following fields:
|
||||
1. Add a title and description.
|
||||
2. Set the **Content Type** to **Avatar Item**.
|
||||
3. Set the **Asset Category** to **Emotes**.
|
||||
3. Press Submit to upload your asset for moderation.
|
||||
|
||||
For more information on the upload and publishing process, see [publishing Marketplace items](../../marketplace/publish-to-marketplace.md#upload-an-asset).
|
||||
57
.cursor/rules/roblox/art/emotes/index.md
Normal file
57
.cursor/rules/roblox/art/emotes/index.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
---
|
||||
title: Emotes
|
||||
description: All Roblox users are represented by an avatar character which can be customized with body parts, accessories, and clothes from the Marketplace or within experiences.
|
||||
---
|
||||
|
||||
**Emotes** are short animations that an avatar performs, making it easier to communicate and celebrate with others, enhancing the experience to feel more social and more lively.
|
||||
|
||||
Creators sell their own emotes, such as gestures, reactions, dances, and more, by publishing their animation to sell on the Marketplace or within experiences.
|
||||
|
||||
<Alert severity = 'info'>
|
||||
Developers can access and modify emotes within their own experiences. For more information, see [character emotes](../../characters/emotes.md).
|
||||
</Alert>
|
||||
|
||||
## Components of an emote
|
||||
|
||||
Emotes are made up of an `Class.Animation` object with the unique `Class.Animation.AnimationId` property set to the asset ID of your animation sequence.
|
||||
|
||||
<GridContainer numColumns="2">
|
||||
<figure>
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Explorer.png" />
|
||||
<figcaption><center>`Animation` object in the Explorer.</center></figcaption>
|
||||
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Properties.png" />
|
||||
<figcaption><center>`AnimationId` property in the Properties window.</center></figcaption>
|
||||
</figure>
|
||||
</GridContainer>
|
||||
|
||||
Emotes must meet [technical specifications](./specifications.md) as well as [Marketplace](../../marketplace/marketplace-policy.md) and [Community](https://en.help.roblox.com/hc/en-us/articles/203313410-Roblox-Community-Standards) policies.
|
||||
|
||||
## Creation process
|
||||
|
||||
There are several ways to create an animation both in Studio or using a third-party tool. See the following table for common workflows and various resources to create your own.
|
||||
|
||||
<table><thead>
|
||||
<tr>
|
||||
<th>Animation workflow</th>
|
||||
<th>Description</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Animation Capture</td>
|
||||
<td>Use the [Animation Capture (Body)](../../animation/capture.md#body) to convert a video of your emote into a keyframe sequence.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Manual animation with Animation Editor</td>
|
||||
<td>Use the [Animation Editor](../../animation/editor.md) to manually animate a character rig. For an in-depth tutorial on creating a character animation, see [Create character animations](../../tutorials/use-case-tutorials/animation/create-an-animation.md).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Third-party plug-ins</td>
|
||||
<td>Use a third-party animation plugin, such as [Moon Animator](https://create.roblox.com/store/asset/4725618216/Moon-Animator-2), to generate your animation.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
To convert your keyframe sequence into an animation and upload to the Marketplace, see [import and configure emotes](../emotes/import.md#configure).
|
||||
31
.cursor/rules/roblox/art/emotes/specifications.md
Normal file
31
.cursor/rules/roblox/art/emotes/specifications.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
title: Emotes specifications
|
||||
description: Character specification lists the specific technical requirements for custom characters created outside of Studio.
|
||||
---
|
||||
|
||||
Emotes are made up of an `Class.Animation` object with the `Class.Animation.AnimationId` property set to the asset ID of your animation sequence.
|
||||
|
||||
<GridContainer numColumns="2">
|
||||
<figure>
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Explorer.png" />
|
||||
<figcaption><center>`Animation` object in the Explorer.</center></figcaption>
|
||||
|
||||
</figure>
|
||||
<figure>
|
||||
<img src="../../assets/avatar/avatar-emotes/Animation-Properties.png" />
|
||||
<figcaption><center>`AnimationId` property in the Properties window.</center></figcaption>
|
||||
</figure>
|
||||
</GridContainer>
|
||||
|
||||
Only the `Class.Animation` object is required to upload an emote to the Marketplace. Animations do not require meshes, textures, or other 3D art components.
|
||||
|
||||
## Animation requirements
|
||||
|
||||
Emotes must also meet the following requirements or may fail validation:
|
||||
|
||||
- Emotes must be less than 10 seconds.
|
||||
- The joint root of the character can not move too far from its starting position.
|
||||
- Movement speed can't exceed a certain threshold to prevent teleportation abuse (measured from a frame-by-frame basis).
|
||||
- Animation data must reference an R15 rig.
|
||||
- Animation must be sourced from a `CurveAnimation`. For information on converting animation data, see [import and configure](./import.md#generate-asset-id).
|
||||
- Animations must meet [Marketplace](../../marketplace/marketplace-policy.md) and [Community](https://en.help.roblox.com/hc/en-us/articles/203313410-Roblox-Community-Standards) policies.
|
||||
Loading…
Add table
Add a link
Reference in a new issue