diff --git a/content/common/navigation/engine/art.yaml b/content/common/navigation/engine/art.yaml index d9dc45303..df4956e40 100644 --- a/content/common/navigation/engine/art.yaml +++ b/content/common/navigation/engine/art.yaml @@ -40,9 +40,9 @@ navigation: path: /art/characters/facial-animation/animating-heads - heading: Environment and Lighting - title: Assembling Modular Environments - path: /tutorials/3D-art/assembling-modular-environments + path: /tutorials/use-case-tutorials/modeling/assembling-modular-environments - title: Enhancing Outdoor Environments with Future Lighting - path: /tutorials/3D-art/enhancing-outdoor-environments-with-future-lighting + path: /tutorials/use-case-tutorials/lighting/enhancing-outdoor-environments-with-future-lighting - heading: Example Projects path: diff --git a/content/common/navigation/engine/tutorials-core.yaml b/content/common/navigation/engine/tutorials-core.yaml index bb3392485..777d7a4d7 100644 --- a/content/common/navigation/engine/tutorials-core.yaml +++ b/content/common/navigation/engine/tutorials-core.yaml @@ -4,27 +4,27 @@ backTo: navigation: - heading: Overview - title: Core Curriculum - path: /tutorials/core/ + path: /tutorials/curriculums/core/ - heading: Building - title: Create a Project - path: /tutorials/core/building/create-a-project + path: /tutorials/curriculums/core/building/create-a-project - title: Create an Environment with Terrain - path: /tutorials/core/building/create-an-environment-with-terrain + path: /tutorials/curriculums/core/building/create-an-environment-with-terrain - title: Greybox a Playable Area - path: /tutorials/core/building/greybox-a-playable-area + path: /tutorials/curriculums/core/building/greybox-a-playable-area - heading: Scripting - title: Create a Coin Collection Mechanic - path: /tutorials/core/scripting/script-game-behavior + path: /tutorials/curriculums/core/scripting/script-game-behavior - title: Record and Display Player Data - path: /tutorials/core/scripting/record-and-display-player-data + path: /tutorials/curriculums/core/scripting/record-and-display-player-data - title: Create Player Hazards - path: /tutorials/core/scripting/create-player-hazards + path: /tutorials/curriculums/core/scripting/create-player-hazards - title: Script an Upgrade Button - path: /tutorials/core/scripting/script-an-upgrade-button + path: /tutorials/curriculums/core/scripting/script-an-upgrade-button - heading: Polish - title: Create Basic Visual Effects - path: /tutorials/core/building/create-basic-visual-effects + path: /tutorials/curriculums/core/building/create-basic-visual-effects - title: Customize Global Lighting - path: /tutorials/core/building/customize-global-lighting + path: /tutorials/curriculums/core/building/customize-global-lighting - title: Apply Polished Assets - path: /tutorials/core/building/apply-polished-assets + path: /tutorials/curriculums/core/building/apply-polished-assets diff --git a/content/common/navigation/engine/tutorials-ea.yaml b/content/common/navigation/engine/tutorials-ea.yaml index 89604428d..877d1feec 100644 --- a/content/common/navigation/engine/tutorials-ea.yaml +++ b/content/common/navigation/engine/tutorials-ea.yaml @@ -4,14 +4,14 @@ backTo: navigation: - heading: Environmental Art Curriculum - title: Overview - path: /tutorials/environmental-art/ + path: /tutorials/curriculums/environmental-art/ - title: Greybox Your Environment - path: /tutorials/environmental-art/greybox-your-environment + path: /tutorials/curriculums/environmental-art/greybox-your-environment - title: Develop Polished Assets - path: /tutorials/environmental-art/develop-polished-assets + path: /tutorials/curriculums/environmental-art/develop-polished-assets - title: Assemble an Asset Library - path: /tutorials/environmental-art/assemble-an-asset-library + path: /tutorials/curriculums/environmental-art/assemble-an-asset-library - title: Construct Your World - path: /tutorials/environmental-art/construct-your-world + path: /tutorials/curriculums/environmental-art/construct-your-world - title: Optimize Your Experience - path: /tutorials/environmental-art/optimize-your-experience + path: /tutorials/curriculums/environmental-art/optimize-your-experience diff --git a/content/common/navigation/engine/tutorials-gs.yaml b/content/common/navigation/engine/tutorials-gs.yaml index 07eb2b0bb..64d06d3a2 100644 --- a/content/common/navigation/engine/tutorials-gs.yaml +++ b/content/common/navigation/engine/tutorials-gs.yaml @@ -4,14 +4,14 @@ backTo: navigation: - heading: Gameplay Scripting Curriculum - title: Overview - path: /tutorials/gameplay-scripting/ + path: /tutorials/curriculums/gameplay-scripting/ - title: Creating Teams - path: /tutorials/gameplay-scripting/creating-teams + path: /tutorials/curriculums/gameplay-scripting/creating-teams - title: Spawning and Respawning - path: /tutorials/gameplay-scripting/spawn-respawn + path: /tutorials/curriculums/gameplay-scripting/spawn-respawn - title: Adding Rounds - path: /tutorials/gameplay-scripting/adding-rounds + path: /tutorials/curriculums/gameplay-scripting/adding-rounds - title: Implementing Blaster Behavior - path: /tutorials/gameplay-scripting/implementing-blasters + path: /tutorials/curriculums/gameplay-scripting/implementing-blasters - title: Detecting Hits - path: /tutorials/gameplay-scripting/detecting-hits + path: /tutorials/curriculums/gameplay-scripting/detecting-hits diff --git a/content/common/navigation/engine/tutorials-ui.yaml b/content/common/navigation/engine/tutorials-ui.yaml index 4730d2c8e..71e6d61b9 100644 --- a/content/common/navigation/engine/tutorials-ui.yaml +++ b/content/common/navigation/engine/tutorials-ui.yaml @@ -4,10 +4,10 @@ backTo: navigation: - heading: UI Design Curriculum - title: Overview - path: /tutorials/user-interface-design/ + path: /tutorials/curriculums/user-interface-design/ - title: Choose an Art Style - path: /tutorials/user-interface-design/choose-an-art-style + path: /tutorials/curriculums/user-interface-design/choose-an-art-style - title: Wireframe Your Layouts - path: /tutorials/user-interface-design/wireframe-your-layouts + path: /tutorials/curriculums/user-interface-design/wireframe-your-layouts - title: Implement Designs in Studio - path: /tutorials/user-interface-design/implement-designs-in-studio + path: /tutorials/curriculums/user-interface-design/implement-designs-in-studio diff --git a/content/common/navigation/engine/tutorials.yaml b/content/common/navigation/engine/tutorials.yaml index 4a1aef281..3bd4c4c89 100644 --- a/content/common/navigation/engine/tutorials.yaml +++ b/content/common/navigation/engine/tutorials.yaml @@ -6,80 +6,80 @@ navigation: path: /tutorials/first-experience/ - heading: Curriculum Paths - title: Overview - path: /tutorials/curriculum-overview + path: /tutorials/curriculums/curriculum-overview - title: Core - path: /tutorials/core/ + path: /tutorials/curriculums/core/ navigation: /engine/tutorials-core.yaml - title: Environmental Art - path: /tutorials/environmental-art/ + path: /tutorials/curriculums/environmental-art/ navigation: /engine/tutorials-ea.yaml - title: Gameplay Scripting - path: /tutorials/gameplay-scripting/ + path: /tutorials/curriculums/gameplay-scripting/ navigation: /engine/tutorials-gs.yaml - title: User Interface Design - path: /tutorials/user-interface-design/ + path: /tutorials/curriculums/user-interface-design/ navigation: /engine/tutorials-ui.yaml - heading: Use Case Tutorials - title: Overview - path: /tutorials/use-case-tutorial-overview + path: /tutorials/use-case-tutorials/use-case-tutorial-overview - title: Modeling section: - title: Creating Neon Signs - path: /tutorials/3D-art/creating-neon-signs + path: /tutorials/use-case-tutorials/modeling/creating-neon-signs - title: Assembling Modular Environments - path: /tutorials/3D-art/assembling-modular-environments + path: /tutorials/use-case-tutorials/modeling/assembling-modular-environments - title: User Interfaces section: - title: Creating Score Bars - path: /tutorials/building/ui/creating-a-score-bar + path: /tutorials/use-case-tutorials/ui/creating-a-score-bar - title: Creating Interactive Buttons - path: /tutorials/building/ui/interactive-buttons + path: /tutorials/use-case-tutorials/ui/interactive-buttons - title: Creating Proximity Prompts - path: /tutorials/building/ui/proximity-prompts + path: /tutorials/use-case-tutorials/ui/proximity-prompts - title: Creating Part Interfaces - path: /tutorials/building/ui/interfaces-on-parts + path: /tutorials/use-case-tutorials/ui/interfaces-on-parts - title: Audio section: - title: Playing Background Music - path: /tutorials/building/environments/playing-background-music + path: /tutorials/use-case-tutorials/audio/playing-background-music - title: Playing Positional Sounds - path: /tutorials/building/environments/in-game-sounds + path: /tutorials/use-case-tutorials/audio/in-game-sounds - title: Lighting section: - title: Enhancing Indoor Environments - path: /tutorials/building/environments/enhancing-indoor-environments + path: /tutorials/use-case-tutorials/lighting/enhancing-indoor-environments - title: Enhancing Outdoor Environments - path: /tutorials/3D-art/enhancing-outdoor-environments-with-future-lighting + path: /tutorials/use-case-tutorials/lighting/enhancing-outdoor-environments-with-future-lighting - title: VFX section: - title: Creating Laser Beams - path: /tutorials/building/effects/laser-traps-with-beams + path: /tutorials/use-case-tutorials/vfx/laser-traps-with-beams - title: Creating Waterfalls - path: /tutorials/building/effects/creating-waterfalls + path: /tutorials/use-case-tutorials/vfx/creating-waterfalls - title: Creating Volcanoes - path: /tutorials/building/effects/creating-volcanoes + path: /tutorials/use-case-tutorials/vfx/creating-volcanoes - title: Creating Explosions - path: /tutorials/building/effects/using-particles-for-explosions + path: /tutorials/use-case-tutorials/vfx/using-particles-for-explosions - title: Physics section: - title: Creating Moving Objects - path: /tutorials/building/physics/creating-moving-objects + path: /tutorials/use-case-tutorials/physics/creating-moving-objects - title: Creating Spinning Objects - path: /tutorials/3D-art/creating-spinning-objects + path: /tutorials/use-case-tutorials/physics/creating-spinning-objects - title: Creating Elevators - path: /tutorials/3D-art/creating-elevators + path: /tutorials/use-case-tutorials/physics/creating-elevators - title: Building Hinged Doors - path: /tutorials/building/physics/building-a-hinged-door + path: /tutorials/use-case-tutorials/physics/building-a-hinged-door - title: Building Ferris Wheels - path: /tutorials/building/physics/building-a-ferris-wheel + path: /tutorials/use-case-tutorials/physics/building-a-ferris-wheel - title: Animation section: - title: In Studio section: - title: Creating Character Animations - path: /tutorials/building/animation/creating-an-animation + path: /tutorials/use-case-tutorials/animation/creating-an-animation - title: Playing Character Animations - path: /tutorials/building/animation/scripting-avatar-animations + path: /tutorials/use-case-tutorials/animation/playing-character-animations - title: In Blender section: - title: Rigging Simple Meshes @@ -95,26 +95,26 @@ navigation: - title: Basic Gameplay section: - title: Introduction to Scripting - path: /tutorials/scripting/basic-scripting/intro-to-scripting + path: /tutorials/use-case-tutorials/scripting/basic-scripting/intro-to-scripting - title: Deadly Lava - path: /tutorials/scripting/basic-scripting/deadly-lava + path: /tutorials/use-case-tutorials/scripting/basic-scripting/deadly-lava - title: Fading Trap - path: /tutorials/scripting/basic-scripting/fading-trap + path: /tutorials/use-case-tutorials/scripting/basic-scripting/fading-trap - title: Scoring Points - path: /tutorials/scripting/basic-scripting/scoring-points + path: /tutorials/use-case-tutorials/scripting/basic-scripting/scoring-points - title: Intermediate Gameplay section: - title: Creating Health Pickups - path: /tutorials/scripting/intermediate-scripting/creating-a-health-pickup + path: /tutorials/use-case-tutorials/scripting/intermediate-scripting/creating-a-health-pickup - title: Saving Data - path: /tutorials/scripting/intermediate-scripting/saving-data + path: /tutorials/use-case-tutorials/scripting/intermediate-scripting/saving-data - title: Creating Player Tools - path: /tutorials/scripting/intermediate-scripting/creating-player-tools + path: /tutorials/use-case-tutorials/scripting/intermediate-scripting/creating-player-tools - title: Hit Detection with Lasers - path: /tutorials/scripting/intermediate-scripting/hit-detection-with-lasers + path: /tutorials/use-case-tutorials/scripting/intermediate-scripting/hit-detection-with-lasers - title: Input and Camera section: - title: Controlling the User's Camera - path: /tutorials/scripting/input-and-camera/controlling-the-users-camera + path: /tutorials/use-case-tutorials/input-and-camera/controlling-the-users-camera - title: Detecting User Input - path: /tutorials/scripting/input-and-camera/detecting-user-input + path: /tutorials/use-case-tutorials/input-and-camera/detecting-user-input diff --git a/content/en-us/art/index.md b/content/en-us/art/index.md index 660a31d8c..ac99abc1a 100644 --- a/content/en-us/art/index.md +++ b/content/en-us/art/index.md @@ -80,7 +80,7 @@ style={{position: "relative", paddingBottom: "56.25%", height: 0}}> Environmental Art Environmental Art teaches you how to recreate a high-quality environment for a first-person laser tag experience.
- + @@ -123,7 +123,7 @@ Check out the following showcases made by Roblox and the community. Each of thes Check out various experiences created by Roblox. Click to see documentation, downloadable resources, and links to try out the experiences yourself! Mystery of Duvall Drive Beyond the Dark - Modern City template + Modern City template @@ -257,9 +257,9 @@ The following is a list of common 3D art resources ordered by subject, as well a 3D Art Tutorials -Core Curriculum -Environmental Art -Gameplay Scripting +Core Curriculum +Environmental Art +Gameplay Scripting

See Engine Tutorials for additional 3D Art tutorials.

@@ -359,13 +359,13 @@ The following is a list of common 3D art resources ordered by subject, as well a Environment, Lighting, and Effects -Environmental Art Curriculum -Assembling Modular Environments -Lighting with Props -In-Game Sounds -Enhancing Outdoor Environments with Future Lighting -Basic Particle Effects -Custom Particle Effects +Environmental Art Curriculum +Assembling Modular Environments +Lighting with Props +In-Game Sounds +Enhancing Outdoor Environments with Future Lighting +Basic Particle Effects +Custom Particle Effects Custom Skyboxes 101 (Staff)
diff --git a/content/en-us/reference/engine/classes/CollectionService.yaml b/content/en-us/reference/engine/classes/CollectionService.yaml index b48bdf060..310197310 100644 --- a/content/en-us/reference/engine/classes/CollectionService.yaml +++ b/content/en-us/reference/engine/classes/CollectionService.yaml @@ -128,7 +128,7 @@ methods: fires under two conditions: - The tag is assigned to an instance within the `Class.DataModel` (game) - using `Class.CollectionService:AddTag()`. + using `Class.CollectionService:AddTag()` or `Class.Instance:AddTag()`. - An instance with the given tag is added as a descendant of the `Class.DataModel`, e.g. by setting `Class.Instance.Parent` or similar. @@ -165,7 +165,7 @@ methods: fires under two conditions: - The tag is removed from an instance within the `Class.DataModel` (game) - using `Class.CollectionService:RemoveTag()`. + using `Class.CollectionService:RemoveTag()` or `Class.Instance:RemoveTag()`. - An instance with the given tag is removed as a descendant of the `Class.DataModel`, e.g. by un-setting `Class.Instance.Parent` or similar. diff --git a/content/en-us/reference/engine/libraries/string.yaml b/content/en-us/reference/engine/libraries/string.yaml index f54ac78fc..fd1f34086 100644 --- a/content/en-us/reference/engine/libraries/string.yaml +++ b/content/en-us/reference/engine/libraries/string.yaml @@ -676,10 +676,10 @@ functions: code_samples: - name: string.sub summary: | - Returns the substring of `s` that starts at `i` and continues until j. `i` + Returns the substring of `s` that starts at `i` and continues until and including `j`. `i` and `j` can be negative. `i` defaults to 1 and `j` defaults to `-1`. description: | - Returns the substring of `s` that starts at `i` and continues until j. `i` + Returns the substring of `s` that starts at `i` and continues until and including `j`. `i` and `j` can be negative. `i` defaults to 1 and `j` defaults to `-1`. parameters: - name: s diff --git a/content/en-us/reference/engine/libraries/utf8.yaml b/content/en-us/reference/engine/libraries/utf8.yaml index 9e871c957..5c5f872b3 100644 --- a/content/en-us/reference/engine/libraries/utf8.yaml +++ b/content/en-us/reference/engine/libraries/utf8.yaml @@ -161,7 +161,7 @@ functions: default: 1 summary: '' returns: - - type: int + - type: int? summary: '' tags: code_samples: diff --git a/content/en-us/scripting/index.md b/content/en-us/scripting/index.md index c39bf88be..82d6ddece 100644 --- a/content/en-us/scripting/index.md +++ b/content/en-us/scripting/index.md @@ -8,7 +8,7 @@ Scripts are plain text files that let you add custom, dynamic behavior to your e This section is for creators with some coding experience who want to know the specifics of scripting in Roblox. -If you've never written code before and want an introduction to programming, see [Coding Fundamentals](../tutorials/fundamentals/coding-1/coding-fundamentals.md), which covers concepts like variables, functions, conditionals, loops, and arrays. For a more guided, step-by-step approach, see the [Basic Gameplay](../tutorials/scripting/basic-scripting/intro-to-scripting.md) tutorial. +If you've never written code before and want an introduction to programming, see [Coding Fundamentals](../tutorials/fundamentals/coding-1/coding-fundamentals.md), which covers concepts like variables, functions, conditionals, loops, and arrays. For a more guided, step-by-step approach, see the [Basic Gameplay](../tutorials/use-case-tutorials/scripting/basic-scripting/intro-to-scripting.md) tutorial. ## Luau diff --git a/content/en-us/tutorials/core/building/apply-polished-assets.md b/content/en-us/tutorials/curriculums/core/building/apply-polished-assets.md similarity index 72% rename from content/en-us/tutorials/core/building/apply-polished-assets.md rename to content/en-us/tutorials/curriculums/core/building/apply-polished-assets.md index da3e5722f..ae939b483 100644 --- a/content/en-us/tutorials/core/building/apply-polished-assets.md +++ b/content/en-us/tutorials/curriculums/core/building/apply-polished-assets.md @@ -21,32 +21,32 @@ Asset libraries are collections of assets you can place into a central location
- A mesh that's a grassy, circular platform with concrete surrounding its edges. + A mesh that's a grassy, circular platform with concrete surrounding its edges.
PlatformA
- A mesh that's a grassy, circular platform with rock underneath. + A mesh that's a grassy, circular platform with rock underneath.
PlatformB
- A mesh that's a shiny golden coin with a Roblox logo in the middle. + A mesh that's a shiny golden coin with a Roblox logo in the middle.
Coin
- A mesh that's a large rock sea stack. + A mesh that's a large rock sea stack.
SeaStackMesh
- A mesh that's a large rock sea stack with a hollow tunnel in the middle. + A mesh that's a large rock sea stack with a hollow tunnel in the middle.
SeaStackCaveMesh
- A mesh that's a large snowy mountain. + A mesh that's a large snowy mountain.
MountainMesh
-Each of these 3D assets are either a single `Class.MeshPart` object, or a `Class.Model` object that stores multiple `Class.MeshPart` objects, and they use custom materials or physically-based rendering (PBR) textures that allow you to represent realistic shading and lighting. For more information on this process, see [Materials - Custom Materials](../../../parts/materials.md#custom-materials) and [PBR Textures](../../../art/modeling/surface-appearance.md). +Each of these 3D assets are either a single `Class.MeshPart` object, or a `Class.Model` object that stores multiple `Class.MeshPart` objects, and they use custom materials or physically-based rendering (PBR) textures that allow you to represent realistic shading and lighting. For more information on this process, see [Materials - Custom Materials](../../../../parts/materials.md#custom-materials) and [PBR Textures](../../../../art/modeling/surface-appearance.md). You can add the library to your inventory within Studio by clicking the **Add to Inventory** link in the following component. Once assets are within your inventory, you can reuse them in any project on the platform. @@ -57,21 +57,21 @@ To get the asset library from your inventory into your experience: 1. In the menu bar, select the **View** tab. 2. In the **Show** section, click **Toolbox**. The **Toolbox** window displays. - Studio's View tab with the Toolbox tool highlighted. + Studio's View tab with the Toolbox tool highlighted. 3. In the **Toolbox** window, click the **Inventory** tab. The **My Models** sort displays. - Studio's Toolbox window with the Inventory tab highlighted. + Studio's Toolbox window with the Inventory tab highlighted. 4. Click the **Core Building and Scripting** tile. The library displays in the viewport, but some of the meshes do not display the correct texture. This is because their materials are set to custom variants that are not yet in `Class.MaterialService`. - All meshes from the asset library hover above the water. Some of the meshes are missing their textures so they appear gray. + All meshes from the asset library hover above the water. Some of the meshes are missing their textures so they appear gray. 5. In the **Explorer** window, select **Moss_Lumpy_A** and **Moss_Strata_Noisy_A** in the sample asset library, then drag them into the **MaterialService** container. The asset library updates to display the correct materials. - Studio's Explorer window with both the Moss_LumpyA and Moss_Strata_Noisy_A textures highlighted underneath MaterialService. + Studio's Explorer window with both the Moss_LumpyA and Moss_Strata_Noisy_A textures highlighted underneath MaterialService. - All meshes from the asset library hover above the water, now complete with all of their textures. + All meshes from the asset library hover above the water, now complete with all of their textures. ## Continue Organization Structure @@ -83,7 +83,7 @@ To add in additional container objects to your organization structure: 2. Rename the folders **Platforms** and **Mountains**, respectively. 3. Insert a new model into the **Platforms** folder for each sea stack platform in your environment, and rename them according to sea stack level naming you created in [Greybox a Playable Area](../../core/building/greybox-a-playable-area.md). For example, the sample experience has 18 individual model containers for every platform in the environment. - Studio's Explorer window with all of the level model objects underneat the Platforms folder. + Studio's Explorer window with all of the level model objects underneat the Platforms folder. ## Apply Asset Library @@ -95,10 +95,10 @@ Now that you have an organizational structure to contain your new assets, you ca - A version of the sample Island Jump experience's placeholder greybox geometry. + A version of the sample Island Jump experience's placeholder greybox geometry. - A version of the sample Island Jump experience with polished geometry. + A version of the sample Island Jump experience with polished geometry. @@ -111,7 +111,7 @@ The sample asset library includes two types of platforms you can use for the top Both platform types are `Class.Model` objects that include two `Class.MeshPart` objects. -Platform A and Platform B are side-by-side, and highlighted with their platform type. +Platform A and Platform B are side-by-side, and highlighted with their platform type. @@ -124,11 +124,11 @@ To apply the asset library to your platforms: 1. In the **Platforms** folder, paste **PlatformA** into the **Level_1** model. 1. In the **Home** tab, use the **Move** and **Scale** tools to position and scale the model to the size of your first placeholder sea stack platform. - A view of the sample laser tag experience with only the first platform visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with only the first platform visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 1. Repeat this process, adding and configuring either a **PlatformA** or **PlatformB** asset to the top of each placeholder sea stack platform. - A view of the sample laser tag experience with all of the platforms visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms visible with the polished assets. Other greybox sea stacks are transluscent in the distance. @@ -144,7 +144,7 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Fin 1. Set **Origin.Position** to **-30, 3, 9**. 1. Set **Scale** to **2.2**. - A view of the sample laser tag experience with only the first platform visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with only the first platform visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 4. Repeat this process, adding and configuring the following **PlatformA** assets into their respective sea stack platform models: @@ -180,7 +180,7 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Fin - A view of the sample laser tag experience with all Platform A platforms visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all Platform A platforms visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 5. Add and configure the following **PlatformB** assets into their respective sea stack platform models: @@ -266,7 +266,7 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Fin - A view of the sample laser tag experience with all of the platforms visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms visible with the polished assets. Other greybox sea stacks are transluscent in the distance. @@ -282,10 +282,10 @@ Both platform types are `Class.MeshPart` objects.
- A comparison of a single sea stack next to multiple sea stacks that are stacked on top of each other. + A comparison of a single sea stack next to multiple sea stacks that are stacked on top of each other.
- A demonstration of a SeaStackCaveMesh stacked on top of a PlatformB on top of a SeaStackMesh. + A demonstration of a SeaStackCaveMesh stacked on top of a PlatformB on top of a SeaStackMesh.
@@ -298,11 +298,11 @@ To apply the asset library to your sea stacks: 1. In the **Platforms** folder, paste **SeaStackMesh** into one of your level models. 1. In the **Home** tab, use the **Move**, **Scale**, and **Rotate** tools to position, scale, and rotate the mesh until it is the length of your placeholder sea stack. If necessary, use more than one instance of the **SeaStackMesh** mesh. - A view of the sample laser tag experience with all of the platforms visible with the polished assets, as well as the first sea stack. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms visible with the polished assets, as well as the first sea stack. Other greybox sea stacks are transluscent in the distance. 1. Repeat this process, adding and configuring more **SeaStackMesh** and **SeaStackCaveMesh** meshes for each respective sea stack and tunnel in your experience. - A view of the sample laser tag experience with all of the platforms and sea stacks visible with the polished assets. + A view of the sample laser tag experience with all of the platforms and sea stacks visible with the polished assets. 1. Delete your placeholder greybox sea stack platforms. @@ -342,7 +342,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1 sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1 sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 4. Repeat this process, adding and configuring the following **SeaStackMesh** asset into the **Level_3b** model: @@ -363,7 +363,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-2 sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-2 sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 5. Add and configure the following **SeaStackMesh** asset into the **Level_3c** model: @@ -384,7 +384,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-3 sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-3 sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 6. Add and configure the following **SeaStackMesh** assets into the **Level_4a** model: @@ -410,7 +410,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-4a sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-4a sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 7. Add and configure the following assets into the **Level_4b** model: @@ -445,7 +445,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-4a and 4b sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-4a and 4b sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 8. Add and configure the following **SeaStackMesh** asset into the **Level_4c** model: @@ -466,7 +466,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A side view of the sample laser tag experience with level 4c sea stacks visible with the polished assets. + A side view of the sample laser tag experience with level 4c sea stacks visible with the polished assets. 9. Add and configure the following **SeaStackMesh** assets into the **Level_4d** model: @@ -497,7 +497,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A side view of the sample laser tag experience with level 4c and 4d sea stacks visible with the polished assets. + A side view of the sample laser tag experience with level 4c and 4d sea stacks visible with the polished assets. 10. Add and configure the following **SeaStackMesh** assets into the **Level_4e** model: @@ -523,7 +523,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A side view of the sample laser tag experience with level 4c-4e sea stacks visible with the polished assets. + A side view of the sample laser tag experience with level 4c-4e sea stacks visible with the polished assets. 11. Add and configure the following **SeaStackMesh** assets into the **Level_5a** model: @@ -554,7 +554,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A side view of the sample laser tag experience with level 4c-5a sea stacks visible with the polished assets. + A side view of the sample laser tag experience with level 4c-5a sea stacks visible with the polished assets. 12. Add and configure the following **SeaStackMesh** assets into the **Level_5b** model: @@ -600,7 +600,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-5b sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-5b sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 13. Add and configure the following **SeaStackMesh** assets into the **Level_5c** model: @@ -646,7 +646,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-5c sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-5c sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 14. Add and configure the following **SeaStackMesh** assets into the **Level_5d** model: @@ -677,7 +677,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-5d sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-5d sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 15. Add and configure the following **SeaStackMesh** assets into the **Level_6a** model: @@ -708,7 +708,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-6a sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-6a sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 16. Add and configure the following **SeaStackMesh** assets into the **Level_6b** model: @@ -759,7 +759,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-6b sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-6b sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 17. Add and configure the following **SeaStackMesh** assets into the **Level_6c** model: @@ -805,7 +805,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-6c sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-6c sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 18. Add and configure the following **SeaStackMesh** assets into the **Level_7a** model: @@ -846,7 +846,7 @@ To exactly recreate the sea stacks within the sample [Island Jump - Final](https - A view of the sample laser tag experience with all of the platforms and level 1-7a sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. + A view of the sample laser tag experience with all of the platforms and level 1-7a sea stacks visible with the polished assets. Other greybox sea stacks are transluscent in the distance. 19. Delete your placeholder greybox sea stack platforms. @@ -859,7 +859,7 @@ The sample asset library includes a single **Coin** asset that's a `Class.MeshPa You can place these objects anywhere you set your initial placeholder coins, or modify their position and orientation values where you think they will be more useful to players. -A close up view of a shiny gold coin with a Roblox icon in the middle. The coin floats over a grassy path of island. +A close up view of a shiny gold coin with a Roblox icon in the middle. The coin floats over a grassy path of island. @@ -871,7 +871,7 @@ To apply the asset library to your coins: 1. In the **Home** tab, use the **Move** and **Rotate** tools to position and rotate the mesh until it's at the same configuration of first your placeholder coin. 1. Repeat this process, adding and configuring **coin** assets wherever you set your initial coin placeholder objects. - A view of shiny gold coins hovering over each level of sea stack platform. + A view of shiny gold coins hovering over each level of sea stack platform. 1. Delete your placeholder coins. @@ -1030,7 +1030,7 @@ To exactly recreate the coins within the sample [Island Jump - Final](https://ww - A view of shiny gold coins hovering over each level of sea stack platform. + A view of shiny gold coins hovering over each level of sea stack platform. 5. Delete your placeholder coins. @@ -1041,7 +1041,7 @@ To exactly recreate the coins within the sample [Island Jump - Final](https://ww The sample asset library includes a single **MountainMesh** asset you can use to decorate the background of your world, hide the edge of your water terrain, and enclose the environment around your sea stack platforms. By rotating and scaling individual mountains, the asset's material blends together with neighboring mountains. This technique effectively reduces players' ability to detect that the whole mountain range is just one repeating mesh. -Several mountain meshes with different scales and rotation values overlap each other's edges to look like a mountain range. Each mesh has a light blue outline. +Several mountain meshes with different scales and rotation values overlap each other's edges to look like a mountain range. Each mesh has a light blue outline. @@ -1053,7 +1053,7 @@ To apply the asset library to your mountains: 1. In the **Home** tab, use the **Move**, **Scale**, and **Rotate** tools to position, scale, and rotate the mesh along the border of your water terrain. 1. Repeat this process, adding and configuring mountains of different sizes and rotations until the border of your water terrain has cover. - A view of the polished sea stacks, platform, and coins, with a mountain range in the background. + A view of the polished sea stacks, platform, and coins, with a mountain range in the background. @@ -1155,7 +1155,7 @@ To exactly recreate the mountains within the sample [Island Jump - Final](https: - A view of the polished sea stacks, platform, and coins, with a mountain range in the background. + A view of the polished sea stacks, platform, and coins, with a mountain range in the background. @@ -1168,12 +1168,12 @@ To playtest your experience: 1. In the menu bar, click the **Play** button. Studio enters playtest mode. - Studio's Home tab with the Play button highlighted in the menu bar. + Studio's Home tab with the Play button highlighted in the menu bar. 1. Play your experience and try to reach the flare at the top of the stacks. 1. When you're done, navigate back to the menu bar, and click the **Stop** button. Studio exits playtest mode. - Studio's Home tab with the Stop button highlighted in the menu bar. + Studio's Home tab with the Stop button highlighted in the menu bar. Congratulations on completing the Core Curriculum! Now that you have experience creating a simple experience from start to finish, you can extend your project with new gameplay features or additional levels, explore Studio's additional [features](../../../platform.md), or follow additional tutorial curricula, such as the [Environmental Art Curriculum](../../environmental-art/index.md) that teaches you how to create a high-quality laser tag environment. Happy creating! diff --git a/content/en-us/tutorials/core/building/create-a-project.md b/content/en-us/tutorials/curriculums/core/building/create-a-project.md similarity index 77% rename from content/en-us/tutorials/core/building/create-a-project.md rename to content/en-us/tutorials/curriculums/core/building/create-a-project.md index 75b35ead5..9549b1a18 100644 --- a/content/en-us/tutorials/core/building/create-a-project.md +++ b/content/en-us/tutorials/curriculums/core/building/create-a-project.md @@ -17,11 +17,11 @@ To create a project with the **Baseplate** template: 1. In the vertical navigation bar, select the **New** tab. All templates display. 1. Select the **Baseplate** template. Studio opens a new experience. - Studio's landing page interface with the Baseplate template highlighted. + Studio's landing page interface with the Baseplate template highlighted. 1. In the **Explorer** window, right-click the **Baseplate** object. A contextual menu displays. 1. Select **Delete**. The viewport displays an empty world with a spawn location in the middle. - A viewport view of the baseplate template without the baseplate. The spawn location is highlighted in the middle of the view. + A viewport view of the baseplate template without the baseplate. The spawn location is highlighted in the middle of the view. In the next section of the tutorial, you will learn how to use the Terrain Editor to create an island environment around the spawn location. diff --git a/content/en-us/tutorials/core/building/create-an-environment-with-terrain.md b/content/en-us/tutorials/curriculums/core/building/create-an-environment-with-terrain.md similarity index 68% rename from content/en-us/tutorials/core/building/create-an-environment-with-terrain.md rename to content/en-us/tutorials/curriculums/core/building/create-an-environment-with-terrain.md index 5108635d1..211cd793a 100644 --- a/content/en-us/tutorials/core/building/create-an-environment-with-terrain.md +++ b/content/en-us/tutorials/curriculums/core/building/create-an-environment-with-terrain.md @@ -9,7 +9,7 @@ prev: /tutorials/core/building/create-a-project
-**Creating an environment with terrain** allows you to generate and customize organic materials within the 3D space that look and behave like natural materials from the real world. Using tools within the [Terrain Editor](../../../studio/terrain-editor.md), this section of the tutorial teaches you how to generate and sculpt terrain for a small island where players spawn and navigate to the first few platforms of your experience. +**Creating an environment with terrain** allows you to generate and customize organic materials within the 3D space that look and behave like natural materials from the real world. Using tools within the [Terrain Editor](../../../../studio/terrain-editor.md), this section of the tutorial teaches you how to generate and sculpt terrain for a small island where players spawn and navigate to the first few platforms of your experience. Before you begin, it's important to note that sculpting terrain is an art form, and it's difficult to exactly recreate brush strokes and subtle material edits. As long as your terrain meets the needs of your own experience, it's normal and expected for your environment to look and feel different from the sample [Island Jump](https://www.roblox.com/games/14239096301/) experience. @@ -21,17 +21,17 @@ To create the island: 1. In the menu bar, navigate to the **Home** tab, then click the **Terrain Editor** button. The **Terrain Editor** window displays. - Studio's Home tab with the Terrain Editor tool highlighted. + Studio's Home tab with the Terrain Editor tool highlighted. 1. In the **Terrain Editor** window, click the **Edit** tab, then the **Draw** button. - Studio's Terrain Editor window with both the Edit tab and Draw button highlighted. + Studio's Terrain Editor window with both the Edit tab and Draw button highlighted. 1. In the **Brush Settings** and **Material Settings** sections, keep all default setting except for the following: - Studio's Draw tool settings for this step in the task. The Brush Mode's Add button is highlighted. + Studio's Draw tool settings for this step in the task. The Brush Mode's Add button is highlighted. - Set **Base Size** to **32**. @@ -42,7 +42,7 @@ To create the island: 1. In the viewport, click near the spawn location in the viewport. A sphere of sand material displays. @@ -57,13 +57,13 @@ To shape the island: 1. In the **Terrain Editor** window, click the **Flatten** button. - Studio's Terrain Editor window with both the Edit tab and Flatten button highlighted. + Studio's Terrain Editor window with both the Edit tab and Flatten button highlighted. 1. In the **Brush Settings** section, keep all default setting except for the following: - Studio's Flatten tool settings for this step in the task. + Studio's Flatten tool settings for this step in the task. - Set **Base Size** to **18**. @@ -76,22 +76,22 @@ To shape the island: top. 1. Navigate back to the **Terrain Editor** window, then click the **Sculpt** button. - Studio's Terrain Editor window with both the Edit tab and Sculpt button highlighted. + Studio's Terrain Editor window with both the Edit tab and Sculpt button highlighted. 1. In the **Brush Settings** and **Material Settings** sections, set **Material** to **Sand**, otherwise keep all default settings. - Studio's Sculpt tool settings for this step in the task. The Brush Mode's Add button highlighted. + Studio's Sculpt tool settings for this step in the task. The Brush Mode's Add button highlighted. 1. In the viewport, click and drag your mouse around the island's edges and below the water line to make the island look more natural. @@ -109,7 +109,7 @@ To create the water around the island: 1. In the **Terrain Editor** window, click the **Fill** button. - Studio's Terrain Editor window with both the Edit tab and Fill button highlighted. + Studio's Terrain Editor window with both the Edit tab and Fill button highlighted. 1. In the **Selection Settings** section, 1. Set **Position** to **0, -15, 0** to ensure the water fills below the top of the island. @@ -118,7 +118,7 @@ To create the water around the island: - Studio's Fill tool material settings for this step in the task. The Material Mode's Replace button, source material, and target material are highlighted. + Studio's Fill tool material settings for this step in the task. The Material Mode's Replace button, source material, and target material are highlighted. - Set **Material Mode** to **Replace**. @@ -130,7 +130,7 @@ To create the water around the island: 1. Click the **Apply** button. Water generates around the island. ## Apply Materials @@ -142,13 +142,13 @@ To apply materials to the island: 1. In the **Terrain Editor**, click the **Paint** button. - Studio's Terrain Editor window with both the Edit tab and Paint button highlighted. + Studio's Terrain Editor window with both the Edit tab and Paint button highlighted. 1. In the **Brush Settings** and **Material Settings** sections, keep all default setting except for the following: - Studio's Paint tool settings for this step in the task. The material is highlighted. + Studio's Paint tool settings for this step in the task. The material is highlighted. - Set **Material Mode** to **Paint**. @@ -159,7 +159,7 @@ To apply materials to the island: 1. In the viewport, click and drag around the middle of the island to apply the leafy grass material. 1. Navigate back to the **Terrain Editor** window, then in the **Brush Settings** and **Material Settings** sections, @@ -172,7 +172,7 @@ To apply materials to the island: 1. In the viewport, move the spawn location toward the edge of the island to make space for the first platform. The sample [Island Jump - Building](https://www.roblox.com/games/14239096301/Island-Jump-Building) `.rbxl` file uses a position of **-127, -3, 9**. @@ -190,14 +190,14 @@ To playtest your experience: 1. In the menu bar, click the **Play** button. Studio enters playtest mode. - Studio's Home tab with the Play button highlighted in the menu bar. + Studio's Home tab with the Play button highlighted in the menu bar. 1. Walk around the island and check out how it looks while playing. When you're done, navigate back to the menu bar and click the **Stop** button. Studio exits playtest mode. - Studio's Home tab with the Stop button highlighted in the menu bar. + Studio's Home tab with the Stop button highlighted in the menu bar. diff --git a/content/en-us/tutorials/core/building/create-basic-visual-effects.md b/content/en-us/tutorials/curriculums/core/building/create-basic-visual-effects.md similarity index 84% rename from content/en-us/tutorials/core/building/create-basic-visual-effects.md rename to content/en-us/tutorials/curriculums/core/building/create-basic-visual-effects.md index 7c073f180..4a4aa5c4d 100644 --- a/content/en-us/tutorials/core/building/create-basic-visual-effects.md +++ b/content/en-us/tutorials/curriculums/core/building/create-basic-visual-effects.md @@ -56,16 +56,16 @@ To create a flare: 1. From the contextual menu, insert an **Attachment**. An attachment displays in the center of the part in the direction of the positive Y axis. 1. Add a particle emitter to this attachment, and rename the particle emitter to **Emitter_Flare**. The particle emitter immediately emits particles in the direction of the attachment. - + ### Configure the Flare Now that you have a particle emitter in your experience, you can customize its properties so that it emits a glowing flare that -faces players when they start the experience. To learn more about how each property affects the resulting visual effect, see `Class.ParticleEmitter|ParticleEmitter` and [Customizing Particles](../../../effects/particle-emitters.md#customizing-particles). +faces players when they start the experience. To learn more about how each property affects the resulting visual effect, see `Class.ParticleEmitter|ParticleEmitter` and [Customizing Particles](../../../../effects/particle-emitters.md#customizing-particles). #### Particle Image -Each particle displays an image set by the `Class.ParticleEmitter.Texture|Texture` property. To use your own image, you need to upload the image to Roblox and get an asset ID. See [Assets](../../../projects/assets/index.md) for more on this process and how to do it yourself. +Each particle displays an image set by the `Class.ParticleEmitter.Texture|Texture` property. To use your own image, you need to upload the image to Roblox and get an asset ID. See [Assets](../../../../projects/assets/index.md) for more on this process and how to do it yourself. You can use Roblox's pre-made flare image for the `Class.ParticleEmitter.Texture|Texture` of the particle emitter. To use Roblox's pre-made asset: @@ -104,7 +104,7 @@ To configure the sequences for `Class.ParticleEmitter.Size` and `Class.ParticleE 1. Add points to the sequence by clicking on it, and move them until the window resembles the following example:
- A number sequence window where the size starts at 0 and grows slowly in the beginning of its lifetime, then quickly grows to a size of 10 and remains 10 for the duration of the lifetime. + A number sequence window where the size starts at 0 and grows slowly in the beginning of its lifetime, then quickly grows to a size of 10 and remains 10 for the duration of the lifetime.
The Y axis represents each particle's size and the X axis represents each particle's lifetime. The size starts at 0 and grows slowly in the beginning of its lifetime, then quickly grows to a size of 10 and remains 10 for the duration of the lifetime.
@@ -112,11 +112,11 @@ To configure the sequences for `Class.ParticleEmitter.Size` and `Class.ParticleE 1. Add points to the sequence by clicking on it, and move them until the window resembles the following example:
- A number sequence window where the particle is visible (equal or close to 0) for the majority of its lifetime. As the particle approaches the end of its lifetime, its transparency value bounces up and down at different values, settling at 1 at the very end. + A number sequence window where the particle is visible (equal or close to 0) for the majority of its lifetime. As the particle approaches the end of its lifetime, its transparency value bounces up and down at different values, settling at 1 at the very end.
The particle is visible (equal or close to 0) for the majority of its lifetime. As the particle approaches the end of its lifetime, its transparency value bounces up and down at different values, settling at 1 at the very end.
-The final version of the flare against a bright blue sky. +The final version of the flare against a bright blue sky. ### Add a PointLight @@ -133,7 +133,7 @@ A `Class.PointLight` is best for this to emit light spherically from the part at 1. Set **Brightness** to **2** to make the light brighter. 1. Set **Range** to **36** to increase the light's range. -The final version of the flare hovering over a gray cylinder sea stack. The flare emits a gentle glow over the sea stack. +The final version of the flare hovering over a gray cylinder sea stack. The flare emits a gentle glow over the sea stack. ## Create the Dust Particles @@ -168,7 +168,7 @@ To create dust particles: 1. Add a particle emitter to this part, then rename the particle emitter to **Emitter_DustMotes**. The particle emitter immediately emits particles within the part's area. - + ### Configure the Dust Particles @@ -187,7 +187,7 @@ Here are the values for all other previously explained properties. Refer back to 1. Set **Size** to the following `Datatype.NumberSequence`:
- A number sequence window where the size rises to 0.25 shortly after creation, then fades down gradually to 0. + A number sequence window where the size rises to 0.25 shortly after creation, then fades down gradually to 0.
The size rises to 0.25 shortly after creation, then fades down gradually to 0
@@ -195,7 +195,7 @@ Here are the values for all other previously explained properties. Refer back to 1. Set **Transparency** to the following `Datatype.NumberSequence`:
- A number sequence window where the particle begins fully transparent, becomes randomly more opaque with an envelope of 0.1, then slowly fades out. + A number sequence window where the particle begins fully transparent, becomes randomly more opaque with an envelope of 0.1, then slowly fades out.
Begins fully transparent, becomes randomly more opaque (envelope of 0.1), then slowly fades out
@@ -208,6 +208,6 @@ Here are the values for all other previously explained properties. Refer back to 1. Set **Acceleration** to **1, -1, 1** to make the particles gently float upwards.
-The final version of the dust particles against a bright blue sky. +The final version of the dust particles against a bright blue sky.
Faint dust particles in the air looking up at the sky from the platforms
diff --git a/content/en-us/tutorials/core/building/customize-global-lighting.md b/content/en-us/tutorials/curriculums/core/building/customize-global-lighting.md similarity index 79% rename from content/en-us/tutorials/core/building/customize-global-lighting.md rename to content/en-us/tutorials/curriculums/core/building/customize-global-lighting.md index 09cdec675..db0c598bd 100644 --- a/content/en-us/tutorials/core/building/customize-global-lighting.md +++ b/content/en-us/tutorials/curriculums/core/building/customize-global-lighting.md @@ -13,7 +13,7 @@ next: /tutorials/core/building/apply-polished-assets Using only a few modifications to Studio's default lighting settings, this section of the tutorial teaches you how to customize your global lighting in order to change the sun's position and light color, make dramatic shadows, and thicken the atmosphere. - There are many additional lighting objects you can customize to impact global lighting in your experience. For an overview on all lighting objects available in Studio, see [Lighting and Effects](../../../environment/index.md). + There are many additional lighting objects you can customize to impact global lighting in your experience. For an overview on all lighting objects available in Studio, see [Lighting and Effects](../../../../environment/index.md). ## Set Lighting Properties @@ -29,7 +29,7 @@ The `Class.Lighting` service contains five high-level categories of properties t The following instructions show you how to adjust properties within almost all of these categories to alter the colors of ambient and reflective lighting, make the edges of shadows sharper, utilize the most advanced lighting technology, and modify the position of the sun and your world to match the sample [Island Jump - Final](https://www.roblox.com/games/14238807008/Island-Jump-Completed-Sample) settings. - For an overview on the additional properties within the `Class.Lighting` service, see [Global Lighting](../../../environment/lighting.md). + For an overview on the additional properties within the `Class.Lighting` service, see [Global Lighting](../../../../environment/lighting.md). ### Adjust the Color of Light @@ -44,11 +44,11 @@ In addition, the `Class.Lighting.ColorShift_Top` property controls the color of
A comparison between the sample Island Jump experience's default and custom ambient lighting
- The sample Island Jump experience with default ambient lighting visuals. + The sample Island Jump experience with default ambient lighting visuals.
Default Properties
- The sample Island Jump experience with custom ambient lighting visuals. + The sample Island Jump experience with custom ambient lighting visuals.
Custom Properties
@@ -68,11 +68,11 @@ The second step in matching the sample **Island Jump - Final** experience's `Cla
A comparison between the sample Island Jump experience's default and custom shadows
- The sample Island Jump experience with default shadow visuals that produce fuzzy shadows. + The sample Island Jump experience with default shadow visuals that produce fuzzy shadows.
Default Shadows
- The sample Island Jump experience with custom shadow visuals that produce sharp shadows. + The sample Island Jump experience with custom shadow visuals that produce sharp shadows.
Custom Shadows
@@ -91,11 +91,11 @@ The Future lighting system allows both your global and local lighting to work to
A comparison between the ShadowMap lighting system and the Future lighting system
- The sample Island Jump experience with the ShadowMap lighting system. + The sample Island Jump experience with the ShadowMap lighting system.
ShadowMap lighting system
- The sample Island Jump experience with the Future lighting system that produces more prominent lighting from the flare. + The sample Island Jump experience with the Future lighting system that produces more prominent lighting from the flare.
Future lighting system
@@ -122,11 +122,11 @@ The sun's default position is high in the sky, emulating around midday in the re
A comparison between the default and custom sun position
- The sample Island Jump experience with the default sun position high in the sky. + The sample Island Jump experience with the default sun position high in the sky.
Default sun position
- The sample Island Jump experience with a custom sun position approaching the horizon. + The sample Island Jump experience with a custom sun position approaching the horizon.
Custom sun position
@@ -145,7 +145,7 @@ The `Class.Lighting` service's child `Class.Atmosphere` object allows you to cre The following instructions show you how to adjust `Class.Atmosphere` properties to create a slightly thicker atmosphere to conceal the edge of the water and create more depth of field, just like the sample [Island Jump - Final](https://www.roblox.com/games/14238807008/Island-Jump-Completed-Sample) experience. - For an overview on the additional properties within the `Class.Atmosphere`, see [Atmospheric Effects](../../../environment/atmosphere.md). + For an overview on the additional properties within the `Class.Atmosphere`, see [Atmospheric Effects](../../../../environment/atmosphere.md). ### Increase Air Particle Density @@ -155,11 +155,11 @@ The first step in matching the sample **Island Jump - Final** experience's `Clas
A comparison between the default and custom air particle density
- The sample Island Jump experience with the default air particle density that produces a clear background. + The sample Island Jump experience with the default air particle density that produces a clear background.
Default air particle density
- The sample Island Jump experience with custom air particle density that produces a hazy background. + The sample Island Jump experience with custom air particle density that produces a hazy background.
Custom air particle density
@@ -178,11 +178,11 @@ While the sample experience could have set this property to zero to completely h
A comparison between the default and custom Offset values
- The sample Island Jump experience with default Offset values that keep the background visible. + The sample Island Jump experience with default Offset values that keep the background visible.
Default `Class.Atmosphere.Offset` properties
- The sample Island Jump experience with custom Offset values that hide the edges of the background. + The sample Island Jump experience with custom Offset values that hide the edges of the background.
Custom `Class.Atmosphere.Offset` properties
@@ -196,9 +196,9 @@ Now that your experience's global lighting is set to custom properties, in the n - The sample Island Jump experience's lighting visuals before the customization from this page. + The sample Island Jump experience's lighting visuals before the customization from this page. - The sample Island Jump experience's lighting visuals after the customization from this page. + The sample Island Jump experience's lighting visuals after the customization from this page. diff --git a/content/en-us/tutorials/core/building/greybox-a-playable-area.md b/content/en-us/tutorials/curriculums/core/building/greybox-a-playable-area.md similarity index 74% rename from content/en-us/tutorials/core/building/greybox-a-playable-area.md rename to content/en-us/tutorials/curriculums/core/building/greybox-a-playable-area.md index 32a1114e7..280fb1ef3 100644 --- a/content/en-us/tutorials/core/building/greybox-a-playable-area.md +++ b/content/en-us/tutorials/curriculums/core/building/greybox-a-playable-area.md @@ -40,7 +40,7 @@ A stud is Studio's primary unit for length, and it's equivalent to 28cm.
-A distant view of the sample island jump experience's greybox geometry. Each level of height difference between sea stacks is highlighted. +A distant view of the sample island jump experience's greybox geometry. Each level of height difference between sea stacks is highlighted. @@ -63,10 +63,10 @@ and because they are similar in shape to the sea stack meshes you will use in th
A comparison between the sample Island Jump experience's greybox and final geometry
- The sample Island Jump experience's greybox geometry. + The sample Island Jump experience's greybox geometry.
- The sample Island Jump experience's final geometry. + The sample Island Jump experience's final geometry.
@@ -81,7 +81,7 @@ To create an organization structure: 1. In the **Explorer** window, hover over the **Workspace** and click the **⊕** icon. A contextual menu displays. 1. From the contextual menu, insert a **Folder** object. A folder object displays that you will use to contain all assets for the 3D world. - Studio's Explorer window with both the Workspace's plus icon and Folder object highlighted. + Studio's Explorer window with both the Workspace's plus icon and Folder object highlighted. 1. Rename the new folder `World`. @@ -96,11 +96,11 @@ To create an organization structure: 1. Hover over the **World** folder and click the **⊕** icon. 1. From the contextual menu, insert a **Model**. - Studio's Explorer window with both the World folder's plus icon and Model object highlighted. + Studio's Explorer window with both the World folder's plus icon and Model object highlighted. 1. **Rename** the model to `Blockout_Parts`. - Studio's Explorer window with the new Blockout_Parts model highlighted under the World folder. + Studio's Explorer window with the new Blockout_Parts model highlighted under the World folder. ### Insert Parts @@ -118,30 +118,30 @@ To insert a cylinder part for your first platform: 1. In the menu bar, select the **Home** tab. 1. In the **Insert** section, click the **Part** dropdown arrow, then select **Cylinder**. A cylinder part displays in the viewport. - Studio's Home tab with both the Part tool's dropdown arrow and Cylinder object highlighted. + Studio's Home tab with both the Part tool's dropdown arrow and Cylinder object highlighted. 1. In the **Explorer** window, click and drag the new **Part** to the **Blockout_Parts** model. The part becomes a child of the model. - Studio's Explorer window with the new Part highlighted under the Blockout_Parts model object. + Studio's Explorer window with the new Part highlighted under the Blockout_Parts model object. 1. Navigate back to the **Home** tab, then use the **Move**, **Scale**, and **Rotate** tools to position, scale, and rotate your cylinder until it's a large, flat surface in the middle of your island. For more information on these tools, see [Manipulating Parts](../../../parts/index.md#manipulating-parts). - Studio's Home tab with the Move tool highlighted. + Studio's Home tab with the Move tool highlighted. - Studio's Home tab with the Scale tool highlighted. + Studio's Home tab with the Scale tool highlighted. - Studio's Home tab with the Rotate tool highlighted. + Studio's Home tab with the Rotate tool highlighted. - A large cylinder object partially sticking out of an island surrounded by water. + A large cylinder object partially sticking out of an island surrounded by water. 1. Using the same process, add and configure at least seven more sea stack platforms with increasing levels of height into the **Blockout_Parts** model. - Many large cylinder objects partially sticking out of an island surrounded by water, and the water itself. + Many large cylinder objects partially sticking out of an island surrounded by water, and the water itself. 1. In the **Explorer** window, select the **Block_Out** model. 1. In the **Home** tab, navigate to the **Edit** section, and click the **Anchor** icon. This ensures that the physics system doesn't move your parts when the experience starts. - Studio's Home tab with the Anchor tool highlighted. + Studio's Home tab with the Anchor tool highlighted.
@@ -151,11 +151,11 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Bui 1. In the menu bar, select the **Home** tab. 1. In the **Insert** section, click the **Part** dropdown arrow, then select **Cylinder**. A cylinder part displays in the viewport. - Studio's Home tab with both the Part tool's dropdown arrow and Cylinder object highlighted. + Studio's Home tab with both the Part tool's dropdown arrow and Cylinder object highlighted. 1. In the **Explorer** window, click and drag the new **Part** to the **Blockout_Parts** model. The part becomes a child of the model. - Studio's Explorer window with the new Part highlighted under the Blockout_Parts model object. + Studio's Explorer window with the new Part highlighted under the Blockout_Parts model object. 1. In the **Properties** window, @@ -164,7 +164,7 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Bui 1. Set **CFrame.Position** to **-23, -4, 9** so the top of the platform is only a short jump from the surface of the island. 1. Set **CFrame.Orientation** to **0, 0, 90** so the flat surface of the cylinder faces toward the sky. - A large cylinder object partially sticking out of an island surrounded by water. + A large cylinder object partially sticking out of an island surrounded by water. 1. Using this process, add and configure seven more sea stack levels with the following values for the rest of the sea stack platforms: @@ -283,12 +283,12 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Bui - Many large cylinder objects partially sticking out of an island and its surrounding water. + Many large cylinder objects partially sticking out of an island and its surrounding water. 1. In the **Explorer** window, select the **Block_Out** model. 1. In the **Home** tab, navigate to the **Edit** section, and click the **Anchor** icon. This ensures that the physics system doesn't move your parts when the experience starts. - Studio's Home tab with the Anchor tool highlighted. + Studio's Home tab with the Anchor tool highlighted.
@@ -301,14 +301,14 @@ To exactly recreate the sea stack platforms within the sample [Island Jump - Bui As you add more sea stack placeholder parts off the island, it's easier to manage the height differences between levels if you use varying sizes for these parts instead of different positions. You can achieve this by **aligning** the base of each platform so that all vertical size differences are reflected in differing heights, and parts of the same size are on the same level. -The [Align Tool](../../../studio/align-tool.md) aligns parts on either the minimum, center, or maximum edge according to a specific axis. For the purposes of this experience, you need to align the **bottom** edge in the **Y** axis so that all of the parts are partially submerged in the water. +The [Align Tool](../../../../studio/align-tool.md) aligns parts on either the minimum, center, or maximum edge according to a specific axis. For the purposes of this experience, you need to align the **bottom** edge in the **Y** axis so that all of the parts are partially submerged in the water. To align parts: 1. In the **Explorer** window, select all of your platforms. -1. In the menu bar, navigate to the **Model** tab, then click the [Align Tool](../../../studio/align-tool.md). The **Align Tool** window displays. +1. In the menu bar, navigate to the **Model** tab, then click the [Align Tool](../../../../studio/align-tool.md). The **Align Tool** window displays. - Studio's Model tab with the Align tool highlighted. + Studio's Model tab with the Align tool highlighted. 1. In the **Align Tool** window, @@ -318,7 +318,7 @@ To align parts: 1. Click the **Align** button. All parts align on the Y axis according to the part with the lowest Y `Class.Part.Position` value.
- An underwater view of many cylinders that are aligned along their bottom edge. + An underwater view of many cylinders that are aligned along their bottom edge.
All platforms align their bottom edge
@@ -333,9 +333,9 @@ There are four solid modeling tools: - **Negate** – Negates parts, which is useful for making holes and indentations. - **Separate** – Separates the union or intersection back into its individual parts. -For the purposes of creating a hollow tunnel, you only need to use the **Union** and **Negate** tools. For a full breakdown of all of the tools, see [Solid Modeling](../../../parts/solid-modeling.md). +For the purposes of creating a hollow tunnel, you only need to use the **Union** and **Negate** tools. For a full breakdown of all of the tools, see [Solid Modeling](../../../../parts/solid-modeling.md). -Studio's Model tab with the solid modeling tools highlighted. +Studio's Model tab with the solid modeling tools highlighted. To create a hollow tunnel: @@ -381,17 +381,17 @@ To create a hollow tunnel: - A close-up view of a gray block sticking out of a gray cylinder. + A close-up view of a gray block sticking out of a gray cylinder. 1. In the **Explorer** window, select the block part. 1. In the **Model** tab, navigate to the **Solid Modeling** section, then click the **Negate** button. The part turns translucent. - A close-up view of a partially translucent pink block sticking out of a gray cylinder. + A close-up view of a partially translucent pink block sticking out of a gray cylinder. 1. In the **Explorer** window, select both the negated part and the cylinder tunnel part. 1. In the **Model** tab, navigate back to the **Solid Modeling** section, then click the **Union** button. The negated part is cut out from the overlapping tunnel cylinder. - A close-up view of a gray cylinder with an open tunnel through itself. The tunnel does not have a roof. + A close-up view of a gray cylinder with an open tunnel through itself. The tunnel does not have a roof. 1. Rename the new union to something that reflects its height level and position, such as **Level_4b_Union**. 1. Duplicate the sea stack platform underneath your new union, and position it so that it's on top of the tunnel. The sample **Island Jump - Building** experience positions the duplicate **Level_4b** platform above the union with the following values: @@ -415,7 +415,7 @@ To create a hollow tunnel: - A close-up view of a tunnel through a cylinder. + A close-up view of a tunnel through a cylinder. ## Playtest @@ -431,17 +431,17 @@ To playtest your experience: 1. In the menu bar, click the **Play** button. Studio enters playtest mode. - Studio's Home tab with the Play button highlighted in the menu bar. + Studio's Home tab with the Play button highlighted in the menu bar. 1. In the **Explorer** window, select the arrow next to your character model that displays your Roblox username. All of your character model's children objects display. 1. Select **Humanoid**. - Studio's Explorer window with the Humanoid object highlighted. The hierarchy of the Workspace to CharacterModel to Humanoid is also highlighted. + Studio's Explorer window with the Humanoid object highlighted. The hierarchy of the Workspace to CharacterModel to Humanoid is also highlighted. 1. In the **Properties** window, navigate to the **Jump Settings** section, then enable **UseJumpPower**. The **JumpPower** property displays with a default value of **50**. 1. Set **JumpPower** to **0**. This ensures your character is unable to jump, emulating the same starting state for players after you script the gameplay. - Jump Settings with the JumpPower and UseJumpPower properties highlighted. + Jump Settings with the JumpPower and UseJumpPower properties highlighted. If you can't see the **Properties** window, open the **View** tab and ensure **Properties** is selected in the **Show** section. @@ -449,7 +449,7 @@ To playtest your experience: 1. As you reach new levels, set **JumpPower** to multiples of **30** to simulate jumping upgrades. In the next section of the tutorial, you will learn how to script the overall gameplay of the experience. diff --git a/content/en-us/tutorials/core/index.md b/content/en-us/tutorials/curriculums/core/index.md similarity index 60% rename from content/en-us/tutorials/core/index.md rename to content/en-us/tutorials/curriculums/core/index.md index f611ebeda..64a4e7ee6 100644 --- a/content/en-us/tutorials/core/index.md +++ b/content/en-us/tutorials/curriculums/core/index.md @@ -34,7 +34,7 @@ platforms until they reach a flare on top of the highest platform. This course is intended for readers who are familiar with general coding concepts but are new to Roblox. If you need help learning -how to code, try the [absolute basics](../first-experience/index.md) of working in Studio and +how to code, try the [absolute basics](../../first-experience/index.md) of working in Studio and [coding fundamentals](../fundamentals/coding-1/coding-fundamentals.md).
@@ -53,9 +53,9 @@ inspect the place files if you want to see the end result of each chapter. - - [Create a Project](../../tutorials/core/building/create-a-project.md) - Learn how to create a `.rbxl` file that represents your experience on the Roblox platform. - - [Create an Environment with Terrain](../../tutorials/core/building/create-an-environment-with-terrain.md) - Learn how to create the island where players spawn using Studio's terrain tools. - - [Greybox a Playable Area](../../tutorials/core/building/greybox-a-playable-area.md) - Learn how to use solid modeling tools to plan out the basic shape of your platforms. + - [Create a Project](./building/create-a-project.md) - Learn how to create a `.rbxl` file that represents your experience on the Roblox platform. + - [Create an Environment with Terrain](./building/create-an-environment-with-terrain.md) - Learn how to create the island where players spawn using Studio's terrain tools. + - [Greybox a Playable Area](./building/greybox-a-playable-area.md) - Learn how to use solid modeling tools to plan out the basic shape of your platforms. @@ -85,7 +85,7 @@ While many creators focus on a single area, the following tutorials walk you thr Core Learn how to build a simple 3D platformer where players collect coins to trade for jump power.
- + @@ -102,7 +102,7 @@ While many creators focus on a single area, the following tutorials walk you thr Environmental Art Learn how to recreate a high-quality environment for a first-person laser tag experience.
- + @@ -119,7 +119,7 @@ While many creators focus on a single area, the following tutorials walk you thr Gameplay Scripting Learn how to organize and implement the gameplay logic for a large, complex project.
- + @@ -142,7 +142,7 @@ While many creators focus on a single area, the following tutorials walk you thr Modeling @@ -160,9 +160,9 @@ While many creators focus on a single area, the following tutorials walk you thr Environments
@@ -178,9 +178,9 @@ While many creators focus on a single area, the following tutorials walk you thr Effects
@@ -196,10 +196,10 @@ While many creators focus on a single area, the following tutorials walk you thr UI
@@ -215,9 +215,9 @@ While many creators focus on a single area, the following tutorials walk you thr Physics
    -
  • Learn how to move and spin objects in a way that emulates real-world physical behavior
  • -
  • Learn how to move objects to transport players linearly from point A to B
  • -
  • Learn how to use constraints for mechanical connections, such as door hinges, rope, and welds
  • +
  • Learn how to move and spin objects in a way that emulates real-world physical behavior
  • +
  • Learn how to move objects to transport players linearly from point A to B
  • +
  • Learn how to use constraints for mechanical connections, such as door hinges, rope, and welds
@@ -233,9 +233,9 @@ While many creators focus on a single area, the following tutorials walk you thr Animation
@@ -251,8 +251,8 @@ While many creators focus on a single area, the following tutorials walk you thr Scripting
    -
  • Learn how to script the gameplay logic for player hazards, such as deadly lava and fading traps
  • -
  • Learn how to script the gameplay logic for player information, such as their score, health, and data that needs to persist between sessions
  • +
  • Learn how to script the gameplay logic for player hazards, such as deadly lava and fading traps
  • +
  • Learn how to script the gameplay logic for player information, such as their score, health, and data that needs to persist between sessions
@@ -268,8 +268,8 @@ While many creators focus on a single area, the following tutorials walk you thr Input and Camera
diff --git a/content/en-us/tutorials/building/animation/creating-an-animation.md b/content/en-us/tutorials/use-case-tutorials/animation/creating-an-animation.md similarity index 100% rename from content/en-us/tutorials/building/animation/creating-an-animation.md rename to content/en-us/tutorials/use-case-tutorials/animation/creating-an-animation.md diff --git a/content/en-us/tutorials/building/animation/scripting-avatar-animations.md b/content/en-us/tutorials/use-case-tutorials/animation/playing-character-animations.md similarity index 100% rename from content/en-us/tutorials/building/animation/scripting-avatar-animations.md rename to content/en-us/tutorials/use-case-tutorials/animation/playing-character-animations.md diff --git a/content/en-us/tutorials/building/environments/in-game-sounds.md b/content/en-us/tutorials/use-case-tutorials/audio/in-game-sounds.md similarity index 100% rename from content/en-us/tutorials/building/environments/in-game-sounds.md rename to content/en-us/tutorials/use-case-tutorials/audio/in-game-sounds.md diff --git a/content/en-us/tutorials/building/environments/playing-background-music.md b/content/en-us/tutorials/use-case-tutorials/audio/playing-background-music.md similarity index 100% rename from content/en-us/tutorials/building/environments/playing-background-music.md rename to content/en-us/tutorials/use-case-tutorials/audio/playing-background-music.md diff --git a/content/en-us/tutorials/scripting/input-and-camera/controlling-the-users-camera.md b/content/en-us/tutorials/use-case-tutorials/input-and-camera/controlling-the-users-camera.md similarity index 100% rename from content/en-us/tutorials/scripting/input-and-camera/controlling-the-users-camera.md rename to content/en-us/tutorials/use-case-tutorials/input-and-camera/controlling-the-users-camera.md diff --git a/content/en-us/tutorials/scripting/input-and-camera/detecting-user-input.md b/content/en-us/tutorials/use-case-tutorials/input-and-camera/detecting-user-input.md similarity index 96% rename from content/en-us/tutorials/scripting/input-and-camera/detecting-user-input.md rename to content/en-us/tutorials/use-case-tutorials/input-and-camera/detecting-user-input.md index 1607bc3fc..9dd34258b 100644 --- a/content/en-us/tutorials/scripting/input-and-camera/detecting-user-input.md +++ b/content/en-us/tutorials/use-case-tutorials/input-and-camera/detecting-user-input.md @@ -12,7 +12,7 @@ Connecting user input to actions gives users much better and more intuitive cont ## Getting Started -This tutorial uses the **Blaster** tool created in [Creating Player Tools](../../../tutorials/scripting/intermediate-scripting/creating-player-tools.md). You can follow those instructions to create the tool or you can download the [Blaster](https://www.roblox.com/library/6571559694/Blaster) model and insert it into **StarterPack**. +This tutorial uses the **Blaster** tool created in [Creating Player Tools](../../../tutorials/use-case-tutorials/scripting/intermediate-scripting/creating-player-tools.md). You can follow those instructions to create the tool or you can download the [Blaster](https://www.roblox.com/library/6571559694/Blaster) model and insert it into **StarterPack**. Models can be added into your Inventory to be used between any experience. To add a model to your experience: diff --git a/content/en-us/tutorials/3D-art/creating-flickering-lights.md b/content/en-us/tutorials/use-case-tutorials/lighting/creating-flickering-lights.md similarity index 88% rename from content/en-us/tutorials/3D-art/creating-flickering-lights.md rename to content/en-us/tutorials/use-case-tutorials/lighting/creating-flickering-lights.md index 94d6e67e9..b2ecc9b71 100644 --- a/content/en-us/tutorials/3D-art/creating-flickering-lights.md +++ b/content/en-us/tutorials/use-case-tutorials/lighting/creating-flickering-lights.md @@ -5,7 +5,7 @@ description: Explains the process of creating flickering local light sources in **Flickering lights** is a powerful force in influencing an environment's tone. For example, a home with lighting of a consistent brightness can feel warm and inviting, but if you add flickering lights to that same home's hallway, it becomes haunting and might hint at possible danger ahead. By strategically modeling and scripting different light sources within your experience, you can add a whole new level to your environmental storytelling. - + As with all 3D creation, there are many ways to achieve any particular goal. In this guide, you can quickly create a flickering light animation using tools and methods available only within Studio with only a few basic assets, including a `.rbxm` file for the banker's lamp model that contains child `Class.MeshParts` you can customize to fit the aesthetic of your own experiences. @@ -16,20 +16,20 @@ In the following method to create flickering lights, follow each section to lear - A `Class.Script` that configures how the two attributes work with the model's child `Class.MeshPart|MeshParts` to flicker the lamp's light. - You can create your own assets in third-party modeling tools and follow along with your own design. For information on exporting models for use in Studio, see [Exporting Requirements](../../art/modeling/export-requirements.md). + You can create your own assets in third-party modeling tools and follow along with your own design. For information on exporting models for use in Studio, see [Exporting Requirements](../../../art/modeling/export-requirements.md). ## Importing the Sample Lamp This guide uses a downloadable `.rbxm` file of a high-quality, customizable banker's lamp model to demonstrate a flickering light technique. You can use this model to understand the basic principles, then apply them to your own models you create within Studio or other third-party modeling software. -To import the [BankersLamp](../../assets/tutorials/creating-flickering-lights/BankersLamp.rbxm) `.rbxm`: +To import the [BankersLamp](../../../assets/tutorials/creating-flickering-lights/BankersLamp.rbxm) `.rbxm`: 1. In the **Explorer** window, right-click **Workspace**. A contextual menu displays. 1. Select **Insert From File…** A file browser displays. 1. Select the **BankersLamp** `.rbxm`, then click the **Open** button. The model displays within the viewport. - + ## Creating a Brightness NumberSequence @@ -37,7 +37,7 @@ A `Datatype.NumberSequence` is a data type that represents a series of number va The X axis of a `Datatype.NumberSequence` represents time, and the Y axis represents relative brightness. Each square at the start and end of the number sequence is a **keypoint** that determines the value of the property at that point of the light brightness's lifetime. When you first create a `Datatype.NumberSequence`, the graph is a straight line and the light remains the same brightness intensity throughout its lifetime, but by adding and moving keypoints around, you can create curves within the sequence and change the lamp's brightness over time. - + While the lamp doesn't have a brightness `Datatype.NumberSequence` by default, you can create a brightness attribute, set it to a `Datatype.NumberSequence` type, then experiment by adding keypoints with different values until the light flickers at your set cadence. @@ -54,11 +54,11 @@ To create a brightness `Datatype.NumberSequence`: 1. Click the **Type** dropdown menu, then select **NumberSequence**. 1. Click the **Save** button. The new attribute displays in the **Attributes** section of the **Properties** window. - + 1. Select the new **BrightnessCurve** property, then click the **…** button. A number sequence pop-up displays. - + 1. Perform one of the following actions: @@ -69,7 +69,7 @@ To create a brightness `Datatype.NumberSequence`: For example, the following graph makes the light flicker to full brightness for the first flicker, 50% brightness for the second flicker, then 75% brightness for the third flicker. - + ## Creating a Loop Duration @@ -87,7 +87,7 @@ To create a loop duration: 1. Click the **Type** dropdown menu, then select **Number**. 1. Click the **Save** button. The new attribute displays in the **Attributes** section of the **Properties** window. - + 1. Set the new **LoopDuration** attribute to **1**. This tells the `Datatype.NumberSequence` to repeat after one second. @@ -163,7 +163,7 @@ RunService.Heartbeat:Connect(function() end) ``` -When you [playtest your experience](../../studio/test-tab.md), the Heartbeat function executes the following every frame: +When you [playtest your experience](../../../studio/test-tab.md), the Heartbeat function executes the following every frame: 1. Solves for a time (`numberSequenceTime`) within the `brightnessCurve` `Datatype.NumberSequence` based on the current time. - The time is between 0 and 1 as these represent the beginning and end of the NumberSequence, respectively. @@ -174,4 +174,4 @@ When you [playtest your experience](../../studio/test-tab.md), the Heartbeat fun The changes to these properties over time result in the flickering effect below. - + diff --git a/content/en-us/tutorials/building/environments/enhancing-indoor-environments.md b/content/en-us/tutorials/use-case-tutorials/lighting/enhancing-indoor-environments.md similarity index 100% rename from content/en-us/tutorials/building/environments/enhancing-indoor-environments.md rename to content/en-us/tutorials/use-case-tutorials/lighting/enhancing-indoor-environments.md diff --git a/content/en-us/tutorials/3D-art/enhancing-outdoor-environments-with-future-lighting.md b/content/en-us/tutorials/use-case-tutorials/lighting/enhancing-outdoor-environments-with-future-lighting.md similarity index 81% rename from content/en-us/tutorials/3D-art/enhancing-outdoor-environments-with-future-lighting.md rename to content/en-us/tutorials/use-case-tutorials/lighting/enhancing-outdoor-environments-with-future-lighting.md index da3210699..e63d4e80c 100644 --- a/content/en-us/tutorials/3D-art/enhancing-outdoor-environments-with-future-lighting.md +++ b/content/en-us/tutorials/use-case-tutorials/lighting/enhancing-outdoor-environments-with-future-lighting.md @@ -16,11 +16,11 @@ If at any point you become stuck in the process, you can use **Lighting Outdoors
- The starting outdoor environment you can use to complete this tutorial. + The starting outdoor environment you can use to complete this tutorial.
Lighting Outdoors - Start
- The complete outdoor environment with global and local lighting you will create by the end of this tutorial. + The complete outdoor environment with global and local lighting you will create by the end of this tutorial.
Lighting Outdoors - Complete
@@ -37,11 +37,11 @@ To demonstrate this concept, see the following two images of the same campfire w
- +
`Enum.Technology.ShadowMap` Lighting System
- +
`Enum.Technology.Future` Lighting System
@@ -51,7 +51,7 @@ To enable the `Enum.Technology.Future` lighting system: 1. In the **Explorer** window, select **Lighting**. 1. In the **Properties** window, click the **Technology** dropdown, then select **Future**. - A close up view of the Properties window with the Future technology property highlighted. + A close up view of the Properties window with the Future technology property highlighted. ### Elevate Metal Reflections @@ -61,11 +61,11 @@ This step is important because it ensures that any PBR textures in your experien
- +
`Class.Lighting.EnvironmentDiffuseScale` and `Class.Lighting.EnvironmentSpecularScale` = `0`
- +
`Class.Lighting.EnvironmentDiffuseScale` and `Class.Lighting.EnvironmentSpecularScale` = `1`
@@ -81,11 +81,11 @@ Now that your experience is using the `Enum.Technology.Future` lighting system a
- +
The default sun is high in the sky. While this placement is great if the campfire was happening around noon, it's not realistic for the evening.
- +
The new sun position is much more appropriate for the time of day right before sunset.
@@ -106,11 +106,11 @@ By default, these properties are set to produce gray ambient lighting, but to co
- +
`Class.Lighting.OutdoorAmbient` and `Class.Lighting.Ambient` = `70, 70, 70`
- +
`Class.Lighting.OutdoorAmbient` and `Class.Lighting.Ambient` = `156, 136, 176`
@@ -126,16 +126,16 @@ A skybox is a cube made up of six individual images that create an experience's - A skybox's lower hemisphere should be similar to the color of your general terrain. This ensures the lower hemisphere closely relates to the ground surface, and that the colors that reflect off of objects will roughly match the skybox. - A skybox's lower hemisphere should be darker than the upper hemisphere because a darker lower hemisphere replicates the natural occlusion of light from below the ground, making your lighting more immersive. -- A skybox doesn't require clouds, because you can easily add in [dynamic clouds](../../environment/clouds.md) to achieve the same effect and supplement your skybox. +- A skybox doesn't require clouds, because you can easily add in [dynamic clouds](../../../environment/clouds.md) to achieve the same effect and supplement your skybox. -To illustrate these concepts, examine the following two images to see how the same chrome sphere reflects two different skyboxes. The first skybox has the same level of brightness for both the upper and lower hemispheres, so it doesn't seem like the sphere is reflecting the world around it well. By contrast, the second skybox has a darker lower hemisphere from its upper hemisphere, achieving a more natural look. For information on how to create and customize skyboxes, see [Skyboxes](../../environment/skybox.md). +To illustrate these concepts, examine the following two images to see how the same chrome sphere reflects two different skyboxes. The first skybox has the same level of brightness for both the upper and lower hemispheres, so it doesn't seem like the sphere is reflecting the world around it well. By contrast, the second skybox has a darker lower hemisphere from its upper hemisphere, achieving a more natural look. For information on how to create and customize skyboxes, see [Skyboxes](../../../environment/skybox.md).
- +
- +
@@ -149,11 +149,11 @@ The `Class.Atmosphere.Density` property controls how many particles exist in the
- +
`Class.Atmosphere.Density` = `0`
- +
`Class.Atmosphere.Density` = `0.391`
@@ -163,7 +163,7 @@ To increase density of the air particles in the atmosphere: 1. In the **Explorer** window, select **Atmosphere**. 1. In the **Properties** window, set **Density** to **0.272**. - + #### Add a Haze @@ -174,7 +174,7 @@ To add haze to the atmosphere: 1. In the **Explorer** window, select **Atmosphere**. 1. In the **Properties** window, set **Haze** to **1**. - + #### Adjust the Color of the Atmosphere @@ -185,11 +185,11 @@ To adjust the color of the atmosphere: 1. In the **Explorer** window, select **Atmosphere**. 1. In the **Properties** window, set **Color** to **85, 78, 54**. - + ## Configure Local Lighting -Local lighting is the luminescence from local [light sources](../../effects/light-sources.md) in your experience, such as `Class.SpotLight`, `Class.SurfaceLight`, and `Class.PointLight` objects. The key local light source you can create for this experience is the campfire's glow, and by adjusting a couple of its default properties, you can significantly alter how this local lighting interacts with the overall environment and compliment your global lighting configuration. +Local lighting is the luminescence from local [light sources](../../../effects/light-sources.md) in your experience, such as `Class.SpotLight`, `Class.SurfaceLight`, and `Class.PointLight` objects. The key local light source you can create for this experience is the campfire's glow, and by adjusting a couple of its default properties, you can significantly alter how this local lighting interacts with the overall environment and compliment your global lighting configuration. ### Add a PointLight @@ -197,11 +197,11 @@ Unlike `Class.SpotLight` or `Class.SurfaceLight` objects that only project light
- +
The scene without a local light source
- +
The same scene with a local light source
@@ -211,7 +211,7 @@ To add a `Class.PointLight` to the campfire: 1. In the **Explorer** window, hover over **FireLight** and click the **⊕** button. A contextual menu displays. 1. From the menu, select **PointLight**. The `Class.PointLight` object displays as a child of the campfire mesh. - + ### Increase the Range of the PointLight @@ -222,7 +222,7 @@ To increase the range of the `Class.PointLight`: 1. In the **Explorer** window, select the campfire's **PointLight**. 1. In the **Properties** window, set **Range** to **48**. The light's maximum lighting range expands. - + ### Enable Shadows @@ -233,7 +233,7 @@ To enable shadows from the campfire's local lighting: 1. In the **Explorer** window, select the campfire's **PointLight**. 1. In the **Properties** window, enable **Shadows**. - + ### Adjust the Lighting's Brightness and Color @@ -246,6 +246,6 @@ To enable shadows from the campfire's local lighting: 1. Set **Brightness** to **2**. 1. Set **Color** to **255, 179, 73**. - + You now have a campfire scene that is complete and welcoming for players to relax. Using the skills in this tutorial, you can combine the Future lighting system with the PBR materials available to create rich and immersive experiences. It only takes setting up the correct properties and making decisions about these features that suit your environment. diff --git a/content/en-us/tutorials/building/environments/lighting-with-props.md b/content/en-us/tutorials/use-case-tutorials/lighting/lighting-with-props.md similarity index 100% rename from content/en-us/tutorials/building/environments/lighting-with-props.md rename to content/en-us/tutorials/use-case-tutorials/lighting/lighting-with-props.md diff --git a/content/en-us/tutorials/3D-art/assembling-modular-environments.md b/content/en-us/tutorials/use-case-tutorials/modeling/assembling-modular-environments.md similarity index 71% rename from content/en-us/tutorials/3D-art/assembling-modular-environments.md rename to content/en-us/tutorials/use-case-tutorials/modeling/assembling-modular-environments.md index f52f4c915..6acc1bfef 100644 --- a/content/en-us/tutorials/3D-art/assembling-modular-environments.md +++ b/content/en-us/tutorials/use-case-tutorials/modeling/assembling-modular-environments.md @@ -9,11 +9,11 @@ Assembling modular environments is useful because it means you don't need to man
- +
Sample Modular Building Kit
- +
Studio's Modern City Template
@@ -26,20 +26,20 @@ Every object in Studio moves and rotates according to the location of its pivot For example, the following two parts both have a size value of [10, 10, 1] and keep their default pivot point locations. If you move the yellow part in increments of 5 studs on the X axis, it moves from its center to its edge, and is easily able to align and snap to either side of the blue part. - + - + However, if you rotate the yellow part and continue to move it in increments of 5 studs on the X axis, it cannot align and snap to either side of the blue part. This is because the width of the yellow part is now one stud, so when it moves 5 studs from its center, it moves 0.5 studs from the center + 4.5 studs on the world grid, resulting in 0.5 studs of overlap on either side of the blue part. - +
- +
- +
@@ -53,17 +53,17 @@ Modular assets can consist of a nearly infinite variety of different shapes, siz
- +
- +
- +
-For information on how to configure pivot locations for parts and models you create within Studio, see [Pivot Tools](../../studio/pivot-tools.md#edit-pivot). For information on how to configure pivot locations for meshes you create in third-party modeling tools, see the pivot point documentation for [Blender](https://docs.blender.org/manual/en/2.80/scene_layout/object/editing/transform/control/pivot_point.html) or [Maya](https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2022/ENU/Maya-Basics/files/GUID-150B390E-840B-4FE3-B8E9-8DEBCE7CEC97-htm.html). +For information on how to configure pivot locations for parts and models you create within Studio, see [Pivot Tools](../../../studio/pivot-tools.md#edit-pivot). For information on how to configure pivot locations for meshes you create in third-party modeling tools, see the pivot point documentation for [Blender](https://docs.blender.org/manual/en/2.80/scene_layout/object/editing/transform/control/pivot_point.html) or [Maya](https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2022/ENU/Maya-Basics/files/GUID-150B390E-840B-4FE3-B8E9-8DEBCE7CEC97-htm.html). ## Configuring Snapping Behavior @@ -78,7 +78,7 @@ To configure Studio settings for ideal snapping behavior for the sample modular 1. Enable **Rotate** and set it to 45. 1. Enable **Move** and set it to 7.5. - + ## Combining Modular Assets @@ -89,17 +89,17 @@ To snap modular assets together to create a building using the sample modular bu 1. Select one of the bottom modular meshes. This example uses a door. 1. In the viewport, position this mesh in a location within your experience where you want to create a building. - + 1. In the **Properties** window, copy the **Position** coordinates. 1. In the viewport, select a single mesh you want to connect to your first mesh. 1. In the **Properties** window, paste the **Position** coordinates from the first mesh. The second mesh displays on top of the first mesh. - + 1. In the menu bar, select the **Move** tool, then move the second mesh to a new location on either side of the first mesh. It snaps in 7.5 increments along the same axis. - + The process of combining modular meshes requires you to only move one mesh at a time. If you select multiple meshes at once, Studio averages both of their pivot point locations together, effectively removing the intentional consistent pivot point locations the meshes need in order to align and snap together. @@ -107,7 +107,7 @@ To snap modular assets together to create a building using the sample modular bu 1. Repeat this process for every mesh you want to comprise your building, continuously pasting the first mesh's position coordinates for each additional mesh to ensure the starting pivot location remains the same for each mesh of the building. - + ## Customizing Modular Assets @@ -115,28 +115,28 @@ To ensure every object looks and feels unique from one another, it's important t ### Using Alternative Custom Materials -Every mesh within the sample modular building kit uses a [custom material](../../parts/materials.md#custom-materials) from the sample [materials pack](https://create.roblox.com/store/asset/13168345645/Modern-City-Materials-Pack) that you can use to alter the appearance and physical qualities of your buildings' walls. For example, by default, all walls start with a **PaintedBrick** custom material, but you can change it to various forms of alternative brick, concrete, and plaster, then set a distinct tint color to the material in order to give each building a unique appearance. +Every mesh within the sample modular building kit uses a [custom material](../../../parts/materials.md#custom-materials) from the sample [materials pack](https://create.roblox.com/store/asset/13168345645/Modern-City-Materials-Pack) that you can use to alter the appearance and physical qualities of your buildings' walls. For example, by default, all walls start with a **PaintedBrick** custom material, but you can change it to various forms of alternative brick, concrete, and plaster, then set a distinct tint color to the material in order to give each building a unique appearance. To use alternative custom materials for wall meshes: 1. In the viewport, hold down AltShift (⌥Shift) then click on any mesh of your building with a brick material. - + 1. In the **Properties** window, click the **MaterialVariant** dropdown menu. All alternative custom materials display. - + 1. Select an alternative material variant. All active wall meshes update their material in the viewport. - + 1. **(Optional)** To further customize the new custom material, select a new tint color. 1. In the **Properties** window, click either **BrickColor** or **Color**. The hexagon map or colors popup display, respectively. 1. Select a new color. All active wall meshes update their tint color in the viewport. - + ### Using Alternative SurfaceAppearance Objects @@ -146,34 +146,34 @@ To swap `Class.SurfaceAppearance` objects for trim meshes: 1. In the viewport, select a mesh with a trim. - + 1. In the **Explorer** window, expand the parent model, then the child mesh until the `Class.SurfaceAppearance` object is visible. - + 1. Delete the `Class.SurfaceAppearance` object. The mesh's visual appearance updates in the viewport. - + 1. In the **SurfaceAppearance** folder, copy an alternative `Class.SurfaceAppearance` object you want to use for the trim. - + 1. Navigate back to the trim model, then paste the new `Class.SurfaceAppearance` object into the child mesh. The mesh's visual appearance updates in the viewport.
- +
- +
1. Repeat this process for each trim mesh on your building. - + 1. **(Optional)** To further customize the new `Class.SurfaceAppearance` object, select a new tint color. @@ -181,27 +181,27 @@ To swap `Class.SurfaceAppearance` objects for trim meshes: 1. In the **Properties** window, click either **BrickColor** or **Color**. The hexagon map or colors popup display, respectively. 1. Select a new color. All active trim meshes update their tint color in the viewport. - + ### Reducing Visible Repetition -When you're building large objects that utilize tiling materials like bricks and concrete, the tiling pattern can rapidly reveal visible repetition. To help reduce the visible tiling of these materials, you can create a grunge decal or texture, then add it as a child of your wall meshes to overlay on top of the wall's active materials. This customization strategy has the benefit of adding additional realism to your building, quickly improving the quality of your 3D environment. For information on how to apply and customize textures, see [Textures and Decals](../../parts/textures-decals.md). +When you're building large objects that utilize tiling materials like bricks and concrete, the tiling pattern can rapidly reveal visible repetition. To help reduce the visible tiling of these materials, you can create a grunge decal or texture, then add it as a child of your wall meshes to overlay on top of the wall's active materials. This customization strategy has the benefit of adding additional realism to your building, quickly improving the quality of your 3D environment. For information on how to apply and customize textures, see [Textures and Decals](../../../parts/textures-decals.md).
- +
Wall without a grunge texture overlay
- +
Wall with a grunge texture overlay
- + ### Adding Decorative Props As a final step in making objects feel distinct in their larger modular environment, you can add a significant amount of character to each object by dressing them with decorative props. For example, the sample modular building kit includes assets like fire escapes, window balconies, air conditioner units, and foliage that you can experiment with to flourish each building and make it feel lived in. Even just including a few decorative props can add a vast amount of storytelling to your scene. - + diff --git a/content/en-us/tutorials/3D-art/creating-neon-signs.md b/content/en-us/tutorials/use-case-tutorials/modeling/creating-neon-signs.md similarity index 68% rename from content/en-us/tutorials/3D-art/creating-neon-signs.md rename to content/en-us/tutorials/use-case-tutorials/modeling/creating-neon-signs.md index c078ea213..f6e391e9c 100644 --- a/content/en-us/tutorials/3D-art/creating-neon-signs.md +++ b/content/en-us/tutorials/use-case-tutorials/modeling/creating-neon-signs.md @@ -5,9 +5,9 @@ description: Explains how to create neon signage to draw attention to something **Neon signs** are bright and colorful electric signage that draws attention to something within an experience, such as where users can enter a building or purchase an item. By combining modeling and lighting techniques, you can create and use neon signs to elevate the immersion within your environments. - + -As with all 3D creation, there are many ways to achieve any particular goal. In this guide, you can quickly create your own neon sign using tools and methods available only within Studio with only a few basic assets, including a [`.obj`](../../assets/tutorials/creating-neon-signs/open-text.obj) file for the 3D text of the sign model. +As with all 3D creation, there are many ways to achieve any particular goal. In this guide, you can quickly create your own neon sign using tools and methods available only within Studio with only a few basic assets, including a [`.obj`](../../../assets/tutorials/creating-neon-signs/open-text.obj) file for the 3D text of the sign model. In the following method to create a neon sign, follow each section to learn how to: @@ -16,19 +16,19 @@ In the following method to create a neon sign, follow each section to learn how - Incorporate 3D text with your sign and save the sign as a model. - You can create your own assets in third-party modeling tools and follow along with your own design. For information on exporting models for use in Studio, see [Exporting Requirements](../../art/modeling/export-requirements.md). + You can create your own assets in third-party modeling tools and follow along with your own design. For information on exporting models for use in Studio, see [Exporting Requirements](../../../art/modeling/export-requirements.md). ## Create the Backboard and Border -A `Class.Part` is Roblox's primary building block that you can move, resize, rotate, and customize to change their appearance, such as their color and material. Using [basic parts](../../parts/index.md) to create the foundation of neon signs is useful because the signage's backboard and border only require basic shapes. +A `Class.Part` is Roblox's primary building block that you can move, resize, rotate, and customize to change their appearance, such as their color and material. Using [basic parts](../../../parts/index.md) to create the foundation of neon signs is useful because the signage's backboard and border only require basic shapes. To create the backboard and border: 1. In the menu bar, select the **Model** tab. 1. In the **Parts** section, click the **Part Type Picker** and select **Block**. A block part displays in the workspace that's about to become the backboard of your neon sign. - Studio's Model tab with the Insert Part tool and its Part Type Picker highlighted. + Studio's Model tab with the Insert Part tool and its Part Type Picker highlighted. 1. In the **Explorer** window, select the block, then in the **Properties** window, @@ -37,12 +37,12 @@ To create the backboard and border: 1. Set **Name** to **Backboard**. 1. Enable the **Anchored** property. - + 1. In the **Explorer** window, select **Backboard**, then press CtrlD (⌘D) to duplicate the part. 1. In the menu bar, select the **Move** tool and use one of the axis arrows to pull the duplicate backboard part away from the original position so you can see each object. - Studio's Home tab with the Move tool highlighted. + Studio's Home tab with the Move tool highlighted. 1. In the **Explorer** window, select the duplicate backboard part that's about to become the border of your neon sign, then in the **Properties** window, @@ -50,7 +50,7 @@ To create the backboard and border: 2. Set **Size** to `7.75, 3.75, 0.25`. 3. Set **Name** to **Border**. - + 1. In the **Explorer** window, select **Border**, then press CtrlD (⌘D) to duplicate the part. **Do not move this new part** because it needs to be in its current position for the next sculpting step. @@ -58,21 +58,21 @@ Now that you have three parts that make up the basic shapes of your neon sign, y ## Shape the Neon Border -Using [solid modeling](../../parts/solid-modeling.md), you can join and separate parts in unique ways to form more complex shapes known as **unions**. This process enables you to resize and modify the duplicate border part to become the neon border. +Using [solid modeling](../../../parts/solid-modeling.md), you can join and separate parts in unique ways to form more complex shapes known as **unions**. This process enables you to resize and modify the duplicate border part to become the neon border. To create the neon border shape: 1. In the **Explorer** window, select the duplicate border part, then in the **Properties** window, set the **Size** to `7.5, 3.5, 1.0`. - + 1. With the duplicate border part still selected, in the menu bar, navigate to the **Solid Modeling** section and select **Negate**. The border part turns translucent and its **Name** property automatically changes to **NegativePart**. - Studio's Model tab with the Solid Modeling tools highlighted. + Studio's Model tab with the Solid Modeling tools highlighted. 1. With **NegativePart** still selected, hold Ctrl/⌘ and click on the original border part to select both parts at the same time. - + 1. In the menu bar, select **Union** to fuse both parts together. A border-shaped part displays, and the **Name** property automatically changes to **Union**. @@ -84,8 +84,8 @@ To create the neon border shape: 1. In the menu bar, select the **Move** tool and use one of the axis arrows to pull **Border** in front of **Backboard**. - - + + Now that you have a complete backboard and a glowing neon border, you can create extruding neon 3D text for the words of the sign. @@ -94,20 +94,20 @@ Now that you have a complete backboard and a glowing neon border, you can create Since Studio doesn't natively support 3D text, this guide provides an open-text.obj file for you to import into your scene that contains a 3D model of text that spells the word "OPEN". You can also use other methods to create 3D texts or custom designs for this process, such as using your own models from third-part modeling software, working with community plugins, or creating your own text manually in Studio through solid modeling. -To incorporate neon 3D text from the [open-text](../../assets/tutorials/creating-neon-signs/open-text.obj) `.obj` file: +To incorporate neon 3D text from the [open-text](../../../assets/tutorials/creating-neon-signs/open-text.obj) `.obj` file: 1. Import the **open-text** `.obj` file. 1. In the menu bar, navigate to the **Home** tab, then click **Import 3D**. A file browser displays. - Import 3D button indicated in Home tab + Import 3D button indicated in Home tab 1. Select the **open-text** `.obj` file, then click the **Open** button. The **Import Preview** window displays. 1. Keep the default import settings, then click the **Import** button. The open text models display within the viewport. 1. In the menu bar, select the Move tool and use one of the axis arrows to center the text on the sign. - + 1. In the **Properties** window, @@ -117,11 +117,11 @@ To incorporate neon 3D text from the [open-text](../../assets/tutorials/creating 1. In the **Explorer** window, select the text models, **Border**, and **Backboard**, then press CtrlG (⌘G) to group them into a single `Class.Model` object. - For a reference of what this neon sign looks like within Studio, you can download the [base project file](../../assets/tutorials/creating-neon-signs/neon-sign-baseplate.rbxl) and compare it to your model. + For a reference of what this neon sign looks like within Studio, you can download the [base project file](../../../assets/tutorials/creating-neon-signs/neon-sign-baseplate.rbxl) and compare it to your model. 1. Rename the new model to **NeonSign**. 1. In the **Explorer** window, right-click **NeonSign**. A contextual menu displays. 1. Select **Save to Roblox**. -After you save the asset in your [Toolbox](../../projects/assets/toolbox.md), you can use it within any of your experiences. In addition, you can [distribute your asset to the Creator Store](../../production/creator-store.md) to make it publicly available to all creators to use within their experiences too. +After you save the asset in your [Toolbox](../../../projects/assets/toolbox.md), you can use it within any of your experiences. In addition, you can [distribute your asset to the Creator Store](../../../production/creator-store.md) to make it publicly available to all creators to use within their experiences too. diff --git a/content/en-us/tutorials/building/physics/building-a-ferris-wheel.md b/content/en-us/tutorials/use-case-tutorials/physics/building-a-ferris-wheel.md similarity index 100% rename from content/en-us/tutorials/building/physics/building-a-ferris-wheel.md rename to content/en-us/tutorials/use-case-tutorials/physics/building-a-ferris-wheel.md diff --git a/content/en-us/tutorials/building/physics/building-a-hinged-door.md b/content/en-us/tutorials/use-case-tutorials/physics/building-a-hinged-door.md similarity index 100% rename from content/en-us/tutorials/building/physics/building-a-hinged-door.md rename to content/en-us/tutorials/use-case-tutorials/physics/building-a-hinged-door.md diff --git a/content/en-us/tutorials/3D-art/creating-elevators.md b/content/en-us/tutorials/use-case-tutorials/physics/creating-elevators.md similarity index 80% rename from content/en-us/tutorials/3D-art/creating-elevators.md rename to content/en-us/tutorials/use-case-tutorials/physics/creating-elevators.md index 29e7a0799..810e6190d 100644 --- a/content/en-us/tutorials/3D-art/creating-elevators.md +++ b/content/en-us/tutorials/use-case-tutorials/physics/creating-elevators.md @@ -5,7 +5,7 @@ description: The process for creating moving platforms to move users from one ar **Elevators** are platforms users can operate to travel from one part of an experience to another. This device is useful when you want to allow users to reach new areas within the worlds you create. In this guide, you can quickly create your own elevator that elevates users upwards and downwards when they interact with a proximity prompt. - + In the following method to create an elevator, follow each section to learn how to: @@ -23,7 +23,7 @@ To create the platform and track of your elevator: 1. In the menu bar, select the **Model** tab. 1. In the **Parts** section, click the dropdown arrow and select **Block**. A block part displays in the workspace that's about to become the platform users ride up and down the elevator. - + 1. In the **Explorer** window, select the block, then in the **Properties** window, @@ -43,10 +43,10 @@ To create the platform and track of your elevator:
- +
- +
In the viewport, the model appears as two separate objects. In the Explorer window, the model contains the separate Platform and Track objects.
@@ -57,7 +57,7 @@ Now that you have two parts that make up the foundation of your elevator, you ca ### Creating the PrismaticConstraint and Attachments -A `Class.PrismaticConstraint` creates a rigid joint between two `Class.Attachment|Attachments`, allowing the attachments to slide along one axis without rotating. This type of [constraint](../../physics/mechanical-constraints.md) is ideal for elevators because it keeps the platform at a single orientation while still being able to move upwards and downwards. +A `Class.PrismaticConstraint` creates a rigid joint between two `Class.Attachment|Attachments`, allowing the attachments to slide along one axis without rotating. This type of [constraint](../../../physics/mechanical-constraints.md) is ideal for elevators because it keeps the platform at a single orientation while still being able to move upwards and downwards. To create a PrismaticConstraint and its attachments: @@ -73,7 +73,7 @@ To create a PrismaticConstraint and its attachments: 1. Repeat this process for **Platform**. 1. Rename both attachments **TrackAttachment** and **PlatformAttachment**, respectively. - + 1. Select the **PrismaticConstraint**. 1. In the **Properties** window, assign the attachments to the PrismaticConstraint. @@ -83,7 +83,7 @@ To create a PrismaticConstraint and its attachments: 1. Select the `Class.PrismaticConstraint.Attachment1` property. Your cursor changes. 1. In the **Explorer** window, select **PlatformAttachment**. - + ### Aligning the Attachments @@ -94,11 +94,11 @@ Before you begin to reposition and align your attachments, make sure you are abl 1. In the menu bar, navigate to the **Model** tab, then the **Constraints** section. 1. If it's not currently enabled, click **Constraint Details** and **Draw On Top** to display constraint and attachment visual aids. - + 1. If you want to make the visualization of each attachment larger, increase **Scale**. - + It's important to view attachments so that you can visualize how the constraint is using both attachments to connect and move the platform. @@ -106,11 +106,11 @@ To align the constraint's attachments: 1. In the menu bar, select the **Rotate** tool and rotate the **TrackAttachment** and **PlatformAttachment** so that the yellow arrow of each attachment points upwards on the Y axis. - + 1. Select the **Move** tool and reposition the attachment points so that they are both outside of their parent parts and aligned on their X and Z axes. - + ### Setting PrismaticConstraint Values @@ -118,11 +118,11 @@ Now that you have a `Class.PrismaticConstraint` and have aligned its associated
- +
The elevator in comparison to a track that has 1 stud segments to help visualize how to determine what lower and upper limits a constraint must have.
- +
The platform must move ten studs up and down from the middle of the track in order to transport a user from the bottom to the top of the track.
@@ -149,14 +149,14 @@ To set values for your constraint to enable elevator movement within a set range ## Creating the Proximity Prompt -A `Class.ProximityPrompt` is an object that encourages user interaction to trigger an action when they approach in-experience objects such as doors, light switches, and buttons. This process uses a [proximity prompt](../../ui/proximity-prompts.md) to allow users to press a key when they are near the platform in order to activate the elevator's movement. +A `Class.ProximityPrompt` is an object that encourages user interaction to trigger an action when they approach in-experience objects such as doors, light switches, and buttons. This process uses a [proximity prompt](../../../ui/proximity-prompts.md) to allow users to press a key when they are near the platform in order to activate the elevator's movement. To create a proximity prompt: 1. In the **Explorer** window, hover over **Platform** and click the **⊕** button. A contextual menu displays. 1. From the menu, insert a **ProximityPrompt**. - + ## Scripting Elevator Movement @@ -182,4 +182,4 @@ platform.ProximityPrompt.Triggered:Connect(function(player) end) ``` -When you [playtest your experience](../../studio/test-tab.md) and input the key for the elevator's proximity prompt, the script runs to check if the platform is below or above 9 studs from the constraint. If it's below 9 studs and a user interacts with the proximity prompt, the platform moves upwards until it reaches the constraint's upper limit; conversely, if it's above 9 studs and a user interacts with the proximity prompt, the platform moves downwards until it reaches the constraint's lower limit. +When you [playtest your experience](../../../studio/test-tab.md) and input the key for the elevator's proximity prompt, the script runs to check if the platform is below or above 9 studs from the constraint. If it's below 9 studs and a user interacts with the proximity prompt, the platform moves upwards until it reaches the constraint's upper limit; conversely, if it's above 9 studs and a user interacts with the proximity prompt, the platform moves downwards until it reaches the constraint's lower limit. diff --git a/content/en-us/tutorials/building/physics/creating-moving-objects.md b/content/en-us/tutorials/use-case-tutorials/physics/creating-moving-objects.md similarity index 100% rename from content/en-us/tutorials/building/physics/creating-moving-objects.md rename to content/en-us/tutorials/use-case-tutorials/physics/creating-moving-objects.md diff --git a/content/en-us/tutorials/3D-art/creating-spinning-objects.md b/content/en-us/tutorials/use-case-tutorials/physics/creating-spinning-objects.md similarity index 84% rename from content/en-us/tutorials/3D-art/creating-spinning-objects.md rename to content/en-us/tutorials/use-case-tutorials/physics/creating-spinning-objects.md index 63d612f80..c3b9ddf5c 100644 --- a/content/en-us/tutorials/3D-art/creating-spinning-objects.md +++ b/content/en-us/tutorials/use-case-tutorials/physics/creating-spinning-objects.md @@ -11,10 +11,10 @@ Using the [Spinning Objects](https://www.roblox.com/games/16550477904/Spinning-O - Using a `Class.HingeConstraint` mechanical constraint to spin a part within an assembly at a constant angular velocity as the rest of the assembly remains stationary. - Using the `Class.BasePart.ApplyAngularImpulse|ApplyAngularImpulse` method to spin an assembly with an initial impulse of angular force so that the assembly slowly decelerates over time. - + - You can create your own assemblies using basic parts or meshes from third-party modeling tools, then follow along with your own assets. For information on exporting meshes for use in Studio, see [Exporting Requirements](../../art/modeling/export-requirements.md). + You can create your own assemblies using basic parts or meshes from third-party modeling tools, then follow along with your own assets. For information on exporting meshes for use in Studio, see [Exporting Requirements](../../../art/modeling/export-requirements.md). ## Angular Motion and Physical Forces @@ -25,10 +25,10 @@ Roblox Studio is a real-world simulation engine that emulates physical behavior
- +
- +
@@ -36,7 +36,7 @@ Angular motion cannot exist without external, physical forces pushing or pulling
- +
@@ -48,10 +48,10 @@ This is because torque needs to be _greater_ than any directional physical force
- +
- +
@@ -67,11 +67,11 @@ The amount of torque you apply to your objects not only depends on oppositional
- +
The little triangle part has a lower moment of inertia, so it needs less angular force to achieve the same acceleration.
- +
The large triangle part has a larger moment of inertia, so it needs more angular force to achieve the same acceleration.
@@ -80,7 +80,7 @@ The following subsections use assemblies of different shapes and sizes to teach ### Using AngularVelocity Constraints -`Class.AngularVelocity` objects are a type of [mover constraint](../../physics/mover-constraints.md) that apply torque on an entire assembly to maintain a constant angular velocity. To begin spinning the assembly, the `Class.AngularVelocity` constraint needs to know: +`Class.AngularVelocity` objects are a type of [mover constraint](../../../physics/mover-constraints.md) that apply torque on an entire assembly to maintain a constant angular velocity. To begin spinning the assembly, the `Class.AngularVelocity` constraint needs to know: - The point and positive or negative direction to apply an angular force. - The amount of radians you want the assembly to spin per second. @@ -88,7 +88,7 @@ The following subsections use assemblies of different shapes and sizes to teach To demonstrate this process, you will add a block to your workspace with an attachment that an `Class.AngularVelocity` constraint references to spin the block `6` radians per second along the world's Y axis at a constant angular velocity, or about one full rotation. - + #### Add Attachment @@ -96,26 +96,26 @@ You can specify the fixed point to spin an assembly by adding an `Class.Attachme Attachments include visual aids to help you visualize their axes of rotation. The yellow arrow denotes the attachment's primary axis, and the orange arrow denotes the attachment's secondary axis. While neither axis of rotation influences the block's rotation in the steps of this technique, it's important to understand these visual aids for future reference because they can assist you in determining ideal behavior for different types of constraints, such as the `Class.HingeConstraint` in the next technique. - + To add an attachment: 1. In the **Explorer** window, insert a **block** part into the **Workspace**. - + 1. Insert an attachment into the new part. 1. In the **Explorer** window, hover over the part and click the ⊕ button. A contextual menu displays. 1. From the menu, insert an **Attachment**. The attachment displays in the center of the part. 1. Rename the attachment to **SpinAttachment**. - + #### Configure Constraint Now that your block has a fixed point to spin the block, you can configure the properties of an `Class.AngularVelocity` constraint to specify the rotational direction, axis or axes to apply a target constant angular velocity, the amount of radians you want the block to spin per second, and the maximum amount of torque the engine can apply for the block to reach a constant angular velocity. -The sample [Spinning Objects](https://www.roblox.com/games/16550477904/Spinning-Objects) experience applies up to 1000 Rowton-studs of constant angular force to spin the block 6 radians per second along the world's Y axis at a constant angular velocity. Rowton-studs are Roblox's primary physical units for measuring torque. To reference Roblox physical units and how they convert to metric units, see [Roblox Units](../../physics/units.md). +The sample [Spinning Objects](https://www.roblox.com/games/16550477904/Spinning-Objects) experience applies up to 1000 Rowton-studs of constant angular force to spin the block 6 radians per second along the world's Y axis at a constant angular velocity. Rowton-studs are Roblox's primary physical units for measuring torque. To reference Roblox physical units and how they convert to metric units, see [Roblox Units](../../../physics/units.md). To configure an `Class.AngularVelocity` constraint: @@ -123,7 +123,7 @@ To configure an `Class.AngularVelocity` constraint: 1. In the menu bar, navigate to the **Model** tab, then the **Constraints** section. 1. If it's not currently enabled, click **Constraint Details** to display constraint visual aids. - + 1. Insert an `Class.AngularVelocity` constraint into the part. 1. In the **Explorer** window, hover over the part, then click the ⊕ icon. A contextual menu displays. @@ -136,29 +136,29 @@ To configure an `Class.AngularVelocity` constraint: 1. Set **MaxTorque** to `1000` to apply up to 1000 Rowton-studs of constant angular force per second to achieve the target angular velocity. 1. Keep **RelativeTo** to **World** to spin the block relative to the world's position and orientation. - + 1. Verify the amount of torque you set spins the block 6 radians per second along the world's Y axis. 1. In the menu bar, navigate to the **Test** tab. 1. In the **Simulation** section, click the **Mode Picker**. A dropdown menu displays. - Rapid playtest options in Test tab of Studio + Rapid playtest options in Test tab of Studio 1. Select **Run**. Studio simulates the experience at the current camera position without your avatar in the 3D space. - + You may need to adjust your torque depending on your block's scale and any oppositional physical forces in your environment. For example, the properties of the `Class.AngularVelocity` constraint in the sample experience work for a block part with a default size of `4, 1, 2` on a flat platform with a plastic material, and an environment with the classic preset gravity. However, if your block is a larger size and on grass terrain, you need to increase your `Class.AngularVelocity.MaxTorque` property because the angular force needs to overcome both the block's mass and friction from the environment. For example, the large block part that's quadruple the size of the sample's part needs at least `300000` Rowton-studs of constant angular force to achieve the set angular velocity! - + ### Using HingeConstraint Constraints `Class.HingeConstraint` objects are a type of [mechanical constraint](../../physics/mechanical-constraints.md) that allows two attachments to rotate around one axis, constraining the attachments to the same position and their primary axes in the same direction. When you set `Class.HingeConstraint.ActuatorType` to **Motor**, this constraint applies torque on the two attachments with the goal of the attachments reaching and maintaining a constant angular velocity. - + Further, when you place attachments into an assembly with two objects, the objects lock together and attempt to spin together according to the attachment's fixed primary axis. If you anchor one of these objects, the angular force continues to spin the other object at a constant angular velocity while the rest of the assembly remains stationary. @@ -171,7 +171,7 @@ For example, to begin spinning a particular object within an assembly, the `Clas To demonstrate this process, you will add a propeller assembly with two objects to your workspace with attachments in both objects that a `Class.HingeConstraint` constraint references to spin the propeller `3` radians per second (about half a full rotation per second) along the Y axis at a constant angular velocity while the base of the propeller remains stationary. - + #### Get Propeller Asset @@ -186,15 +186,15 @@ To get this propeller asset from your inventory into your experience: 1. In the menu bar, select the **View** tab. 2. In the **Show** section, click **Toolbox**. The **Toolbox** window displays. - + 3. In the **Toolbox** window, click the **Inventory** tab. The **My Models** sort displays. - + 4. Click the **Propeller** tile. The model displays in your viewport. - + #### Configure Attachments @@ -210,11 +210,11 @@ To configure attachments for the hinge constraint: 1. Repeat this process for **Base**. 1. Rename both attachments **HeadAttachment** and **BaseAttachment**, respectively. - + 1. Rotate **HeadAttachment** and **BaseAttachment** so that the primary axis of each attachment points upwards on the Y axis. This tells Studio to rotate the attachments counterclockwise. - + 1. Move **BaseAttachment** to the top of **Base**, and **HeadAttachment** to the bottom edge of **Propeller**. This tells Studio where to connect the hinge itself, and overlap both attachments at runtime. @@ -237,24 +237,24 @@ To configure a hinge constraint: 1. Set **Attachment0** to **BaseAttachment**. 1. Set **Attachment1** to **HeadAttachment**. The hinge displays in the viewport. - + 1. In the **Explorer** window, select the constraint, then in the **Properties** window, 1. Set **ActuatorType** to **Motor**. New property fields display. 1. Set **MotorMaxTorque** to `1000` to apply up to 1000 Rowton-studs of constant angular force to achieve the target angular velocity. 1. Set **AngularVelocity** to `3` to spin the head of the propeller 3 radians per second. - + 1. Verify the amount of torque you set spins the propeller 3 radians per second along the Y axis. 1. In the menu bar, navigate to the **Test** tab. 1. In the **Simulation** section, click the **Mode Picker**. A dropdown menu displays. - Rapid playtest options in Test tab of Studio + Rapid playtest options in Test tab of Studio 1. Select **Run**. Studio simulates the experience at the current camera position without your avatar in the 3D space. - + ## Applying an Initial Angular Force @@ -276,7 +276,7 @@ To spin an assembly using `Class.BasePart.ApplyAngularImpulse|ApplyAngularImpuls 1. Insert a **sphere** part into the **Workspace**. The sample uses a sphere with a `Class.MaterialVariant` so you can clearly visualize the sphere's movement. - + 1. Insert a script into the new part. 1. In the **Explorer** window, hover over the part and click the ⊕ button. A contextual menu displays. @@ -291,4 +291,4 @@ part:ApplyAngularImpulse(impulse) ``` - + diff --git a/content/en-us/tutorials/scripting/basic-scripting/deadly-lava.md b/content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/deadly-lava.md similarity index 83% rename from content/en-us/tutorials/scripting/basic-scripting/deadly-lava.md rename to content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/deadly-lava.md index 92e3ff1fa..9ff3e8b53 100644 --- a/content/en-us/tutorials/scripting/basic-scripting/deadly-lava.md +++ b/content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/deadly-lava.md @@ -5,31 +5,31 @@ next: /tutorials/scripting/basic-scripting/fading-trap prev: /tutorials/scripting/basic-scripting/intro-to-scripting --- -In [Introduction to Scripting](../../../tutorials/scripting/basic-scripting/intro-to-scripting.md), you learned how to make changes in an experience in a loop over time. What if you want to make changes based on user behavior? In this tutorial, you'll learn how to make a deadly lava floor which kills users when they step on it. +In [Introduction to Scripting](./intro-to-scripting.md), you learned how to make changes in an experience in a loop over time. What if you want to make changes based on user behavior? In this tutorial, you'll learn how to make a deadly lava floor which kills users when they step on it. ## Setting Up -You need a place in your world to put the deadly lava. If you followed the [Introduction to Scripting](../../../tutorials/scripting/basic-scripting/intro-to-scripting.md) course, the lava floor would fit nicely in the gap covered by the disappearing platforms. +You need a place in your world to put the deadly lava. If you followed the [Introduction to Scripting](./intro-to-scripting.md) course, the lava floor would fit nicely in the gap covered by the disappearing platforms. 1. Insert a `Part` and move it into place in your world. Name it **LavaFloor**. 2. Resize it so it covers the floor of the enclosing space. - ![](../../../assets/tutorials/deadly-lava/partInserted.jpg) + ![](../../../../assets/tutorials/deadly-lava/partInserted.jpg) 3. Make the floor look more like lava by setting the `Material` property to `Neon` and the `Color` to an orange shade. - - + + 4. Insert a **Script** into the `LavaFloor` part and rename it to `Kill`. - + 5. Remove the default code and create a variable for the lava. @@ -113,7 +113,7 @@ lava.Touched:Connect(kill) You can easily check if the Humanoid was found using an **if** statement. The code in an if statement will only run if the condition defined in the first line is true. -There are a variety of [operators](../../../luau/operators.md) that can be used to build more complex conditions which you'll encounter in future courses - for now, just put the `humanoid` variable there. Create an **if** statement with `humanoid` as the condition. +There are a variety of [operators](../../../../luau/operators.md) that can be used to build more complex conditions which you'll encounter in future courses - for now, just put the `humanoid` variable there. Create an **if** statement with `humanoid` as the condition. ```lua local lava = script.Parent diff --git a/content/en-us/tutorials/scripting/basic-scripting/fading-trap.md b/content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/fading-trap.md similarity index 82% rename from content/en-us/tutorials/scripting/basic-scripting/fading-trap.md rename to content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/fading-trap.md index a38471f75..df0ebece4 100644 --- a/content/en-us/tutorials/scripting/basic-scripting/fading-trap.md +++ b/content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/fading-trap.md @@ -5,25 +5,25 @@ next: /tutorials/scripting/basic-scripting/scoring-points prev: /tutorials/scripting/basic-scripting/deadly-lava --- -In [Deadly Lava](../../../tutorials/scripting/basic-scripting/deadly-lava.md), you learned how to trigger code based on user behavior. This tutorial shows you how to make a platform which fades away when a user steps on it. +In [Deadly Lava](./deadly-lava.md), you learned how to trigger code based on user behavior. This tutorial shows you how to make a platform which fades away when a user steps on it. ## Setting Up -If you followed [Deadly Lava](../../../tutorials/scripting/basic-scripting/deadly-lava.md), you can place your fading platform above the lava floor that users can't jump across. +If you followed [Deadly Lava](./deadly-lava.md), you can place your fading platform above the lava floor that users can't jump across. 1. Insert a part and move it into place in your world. Name it `FadingPlatform`. 2. Resize it so a user can jump on it. 3. Make sure it's **Anchored**. - ![](../../../assets/tutorials/fading-trap/partInPlace.jpg) + ![](../../../../assets/tutorials/fading-trap/partInPlace.jpg) 4. Insert a **Script** into the part, rename it to **FadeOnTouch**, and remove the default code. - + 5. Create a variable for the platform and an empty function connected to the platform's `Touched` event. @@ -45,7 +45,7 @@ You could change the `Transparency` property and wait a very short time over and This can be achieved much more effectively using a **for** loop which repeats code a specific number of times. Each loop of the code is known as an **iteration**. A for loop is defined with three things, separated by commas: -![](../../../assets/tutorials/fading-trap/forLoop.jpg) +![](../../../../assets/tutorials/fading-trap/forLoop.jpg) - **Control variable** - The variable created and used to count the loops. In this example, it's `count` and the starting value is 1. - **End value** - The value it has to get to for the loop to stop. In this example, it's 10. @@ -100,11 +100,11 @@ After the platform has vanished, users should fall through it. The platform shou ## Debounce Variable -In [Deadly Lava](../../../tutorials/scripting/basic-scripting/deadly-lava.md), you learned that the `Touched` event runs each time a user's body part comes into contact with the part. This behavior causes issues when a user runs across the fading platform: the function will run multiple times, resetting the loop each time. +In [Deadly Lava](./deadly-lava.md), you learned that the `Touched` event runs each time a user's body part comes into contact with the part. This behavior causes issues when a user runs across the fading platform: the function will run multiple times, resetting the loop each time. For the code to work properly, the function should only run once when the user touches the platform for the first time. Ensuring that an action is only triggered once when it would otherwise be triggered multiple times is known as **debouncing**. -To debounce a function, a [boolean](../../../luau/booleans.md) variable can be used to keep track of when the platform has already been touched. Booleans can only contain **true** and **false** values. Create a variable called `isTouched` and set it to `false`. +To debounce a function, a [boolean](../../../../luau/booleans.md) variable can be used to keep track of when the platform has already been touched. Booleans can only contain **true** and **false** values. Create a variable called `isTouched` and set it to `false`. ```lua local platform = script.Parent @@ -196,7 +196,7 @@ And that's it! Test your code now, and you should find that the platform fades a You can duplicate this platform across a wider gap to create a challenging obstacle and change the speed at which they fade to balance the difficulty. ## Final Code diff --git a/content/en-us/tutorials/scripting/basic-scripting/intro-to-scripting.md b/content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/intro-to-scripting.md similarity index 86% rename from content/en-us/tutorials/scripting/basic-scripting/intro-to-scripting.md rename to content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/intro-to-scripting.md index b72754d16..1c944de3c 100644 --- a/content/en-us/tutorials/scripting/basic-scripting/intro-to-scripting.md +++ b/content/en-us/tutorials/use-case-tutorials/scripting/basic-scripting/intro-to-scripting.md @@ -4,7 +4,7 @@ description: The process for creating a basic script that makes a platform disap next: /tutorials/scripting/basic-scripting/deadly-lava --- -In [Introduction to Roblox Studio](../../../tutorials/first-experience/index.md), you learned how to create and manipulate parts in Roblox Studio. In this tutorial, you'll learn how to apply a **script** to parts to make a platform appear and disappear. You can use this in a platforming experience to span a gap, challenging users to time their jumps carefully to get to the other side. +In [Introduction to Roblox Studio](../../../first-experience/index.md), you learned how to create and manipulate parts in Roblox Studio. In this tutorial, you'll learn how to apply a **script** to parts to make a platform appear and disappear. You can use this in a platforming experience to span a gap, challenging users to time their jumps carefully to get to the other side.