本文へ移動
cccskills
無料GitHub で公開

scenario-roblox-environment

Use when building or lighting a Roblox map: graybox or blockout, level layout, landmarks, doors and walls, parts versus unions (CSG), collision fidelity, terrain (generate, sculpt, paint, water, Part to Terrain), MaterialVariants, custom terrain materials, PBR textures from Scenario, skyboxes, Lighting, Atmosphere, Clouds, bloom, color correction, day or night moods, interior light, scattering rocks, bushes and trees, level of detail (SLIM, RenderFidelity), per-model streaming or a streaming test, collision overlays, invisible walls, or texture sizes. Also when a map looks flat, foggy, too dark or plastic, grass pokes through floors, a doorway blocks players, content pops in or never unloads, a custom material disappears, or the sun lights the wrong side.

日本語の概要は準備中です。原文の説明を表示しています。

インストール方法を見る

含まれるファイル(17)

  • SKILL.md21.0 KB
  • references/critique.md12.3 KB
  • references/expert-notes.md15.7 KB
  • references/foliage.md9.6 KB
  • references/gui-paths.md12.6 KB
  • references/procedures.md42.8 KB
  • references/sources.md21.2 KB
  • references/verification.md10.6 KB
  • scripts/agentkit/environment/EnvAudit.luau11.3 KB
  • scripts/agentkit/environment/Graybox.luau10.4 KB
  • scripts/agentkit/environment/Looks.luau12.5 KB
  • scripts/agentkit/environment/lune_env_audit.luau845 B
  • scripts/agentkit/environment/MaterialKit.luau4.6 KB
  • scripts/agentkit/environment/Scatter.luau11.0 KB
  • scripts/agentkit/environment/TerrainKit.luau13.1 KB
  • scripts/agentkit/environment/WorldCheck.luau4.1 KB
  • scripts/rbx_environment.py10.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Roblox environment (builder, environment artist and lighter)

Target: Roblox Studio (October 2026 build) on macOS, driven through the scenario-roblox-expert toolkit.

Expert environment work on Roblox means a graybox built from plain parts and composed from the spawn camera, terrain and materials made from code with their silent failures checked, and light designed from a mood with the sun aimed first and post effects last. This skill carries those rules from the sources, corrected by live tests in Studio 0.743 on a village, terrain and interior built for the purpose, plus kit modules that build, light, measure and audit a scene. If a sibling skill named here is missing from your available skills, ask the user to install it (npx skills add scenario-labs/skills --skill <name>); unattended, proceed from tool schemas and flag the gap.

REQUIRED BACKGROUND: scenario-roblox-expert (channels, review loop, toolkit, current-Roblox traps).

Status (2026-10-19): live run 2026-10-19 01:14 passed 14 of 14 in Studio 0.743; offline O1 to O9 pass. Scatter, the streaming test and the overlays are offline-tested only. A later run stalled on a viewport that stopped drawing (see references/procedures.md).

Stance (the expert delta)

  1. Graybox in plain parts, composed from the spawn camera. Primitives, one grid MaterialVariant, folders with underscores, a ground color distinct from walls (Jalapeno, T--CNfkfBBQ [00:02:01 to 00:02:35, 00:08:13]). Landmarks as loud placeholders at true size (RoBuilder, eRnnjqVOq7c [00:05:20]). Doorways and halls at least 10 studs wide, walls at least 10 tall (Roblox graybox tutorial). Compose from where players spawn and time the walk between landmarks (Gino, vWx8UTxsi0A [00:11:49, 00:12:21]).
    • Live: the template SpawnLocation faced away from the village, so the first view was a hillside. Turn the spawn toward the first landmark.
  2. Parts before CSG; test what collision does to openings. Cut axis-aligned holes with parts, not unions (Kaiwala, x9jg8kjH3Vs [00:04:41]). Each distinct union is its own mesh and collision asset (Kaiwala, Ahn2P_4TDrU [00:20:40]). Pick fidelity by whether players pass through or touch the shape (Roblox collisions docs).
    • Kaiwala saw Default collision close a hole and switches to PreciseConvexDecomposition; Hull or Box are his cheap fix for simple shapes (Ahn2P_4TDrU [00:01:54, 00:02:28]).
    • Live: Hull and Box filled a 10 by 10 doorway; Default and PreciseConvexDecomposition kept it open. Probe every opening rather than trusting a fidelity name.
    • GetPartBoundsInBox reported every union door as blocked because it compares bounding boxes. Test passage with GetPartsInPart or a ray.
  3. Terrain from code, checked by reading the voxels. Block out with parts, convert, then smooth (BONES, -DoOf32pkPo [00:04:34, 00:09:57]). Region calls need resolution 4, grid-aligned regions and at most 4,194,304 voxels each (Terrain reference).
    • Live: a FillBlock whose top sat at y 0 left the walkable surface near y 2. TerrainKit.occupancy places the surface exactly.
    • Live: a raycast right after a fill returned nothing. TerrainKit.surfaceY reads the height from the voxels instead.
    • Grass blades poke through parts; paint LeafyGrass there (SmartyRBX, CippiATeZ54 [00:01:40]). Live, they grew through every floor set on Grass; TerrainKit.paintUnder repaints under floors.
  4. Materials link by name, per base material, and terrain needs more. A rename breaks every part using the variant (Roblox materials docs). Terrain uses a variant only through an override, one per material: Grass and LeafyGrass separately (SmartyRBX, CippiATeZ54 [00:05:13, 00:05:47]).
    • Live: creating a Basalt variant changed nothing until SetBaseMaterialOverride.
    • Live: the override still rendered near black because the terrain material color (Basalt 30, 30, 37) multiplies the map. Brighten it with Terrain:SetMaterialColor, as SmartyRBX does by hand [00:02:44].
  5. Decide the mood, then aim the sun, then color. Mood sentence first, ClockTime next (RingWorld, UlvSrWHESwA [00:01:06, 00:01:58]). Aim the sun so light lands where it matters (DatBoiEle, aq0Fi0R2FAY [00:02:11]; BONES uses GeographicLatitude as the direction control, zAoY8pxJM9c [00:08:36]).
    • Live: at the default latitude the spawn camera faced the sun and saw only shadow sides, tinted by Ambient. Looks.aimSun finds a ClockTime and GeographicLatitude for any direction, error under 1 degree.
  6. Warm light, cool shadow; contrast last, in small steps. Ambient tints shadows and ColorShift_Top tints light; lowering EnvironmentDiffuseScale raises contrast (DatBoiEle [00:03:38, 00:05:48]). Realistic first; Atmosphere Density 0.3 to 0.4 with Offset 0; color correction last, for contrast (Develuper, vkEXLmRAQgs [00:00:27, 00:01:04, 00:02:16]). Move ColorCorrection in 0.05 steps (DatBoiEle [00:08:09]). His Bloom: Threshold about 0.03, a large Size, then Intensity lowered to taste [00:07:37].
  7. Night needs a focal light and silhouettes. BONES' dark recipe works in a corridor: black Atmosphere Color and Decay, Density 0.495, Offset 0.25, Haze 5, Glare 0, environment scales 0, ExposureCompensation -0.4 (zAoY8pxJM9c [00:03:15 to 00:06:04]). Outdoors, RingWorld lowers Brightness, drops glare, tints blue and adds near and far lights (UlvSrWHESwA [00:06:44 to 00:07:54]).
    • Deciding condition: does the player need the skyline? Live, the corridor recipe turned 96 to 100 % of the far views black. night_outdoor kept every view readable.
  8. Interiors: windows must pass light, then fake the bounce. Glass casting shadows blocks the sun shaft; turn CastShadow off (DatBoiEle [00:09:16]). For window-lit rooms BONES uses Brightness 44, black ambients, environment scales 0. He adds a PointLight [234, 255, 254], Range 50, Shadows on, near the window (zAoY8pxJM9c [00:06:14, 00:07:14]). All three confirmed live.

Establish first

  • Camera and genre: third person (the default) needs larger doors and ceilings than first person.
  • Target devices; mobile reach favors Soft lighting and the performance owner's budgets.
  • Map size, StreamingEnabled, and which models must always exist on clients.
  • One mood sentence per zone and two or three reference images.
  • Asset sources: Scenario meshes, textures and skyboxes, or Roblox materials only.
  • File pipeline: Rojo or Studio only. Several settings are file-only (Current Roblox notes).

Defaults: Realistic with PrioritizeLightingQuality, graybox grid variant at StudsPerTile 8, doors 10 by 10, the day_fantasy look aimed for the spawn view.

Procedure

Setup: import rbx_environment as E, then E.run(studio, code, kit=["Graybox", "TerrainKit", "MaterialKit", "Looks", "EnvAudit"]) (it finds the lead toolkit). Full code and recorded results: references/procedures.md.

  1. Readiness (P1). Read LightingStyle, overrides and the file-only settings. GATE: values as intended; anything scripts refuse is set in the place file or the Properties panel.
  2. Graybox (P3). Graybox.house, wall, lantern, block under map_geo/<area>/<kind>; landmark placeholders; spawn turned toward the first landmark. GATE: Graybox.clearance returns no findings; walk times reported; the spawn capture shows the landmark.
  3. Terrain (P2, P13, P4). TerrainKit.heightfield with a height function, water, fromParts and smooth, then paintUnder for floors. GATE: the spawn ground (groundY after a frame, or surfaceY) sits at the design height; no grass through floors in the spawn and interior captures.
  4. Openings and collision (P5). Openings from parts; any union keeps Default fidelity and the Opening attribute. GATE: a character-sized GetPartsInPart probe and a ray pass every doorway.
  5. Materials (P6). MaterialKit.kit, dress by role, one override per terrain material, terrain material colors. GATE: MaterialKit.links returns 0 broken; each override reads back; the dressed captures judged with references/critique.md.
    • Foliage, rocks and trees: Scatter.plan and Scatter.place, with collision and LevelOfDetail per variant (references/foliage.md).
  6. Light (P7 to P10). Snapshot, Looks.apply, Looks.aimSun, capture the same cameras before and after, E.look_metrics, one contact sheet. GATE: metric bands in Quality gates; the sheet judged against the mood sentence.
  7. Playtest (P11). Client Stats, per-model streaming check, walk through a door. GATE: the character arrives inside; numbers go to the performance owner.
    • Checks that can fail beyond captures: streaming at radius 64, collision and invisible-blocker overlays, texture sizes and mesh groups (references/verification.md).
  8. Audit and hand off (P12). EnvAudit.all(game) in Studio, E.lune_audit(place) on the saved file. GATE: no error or warn.

Numbers

ValueNumberSource
Doorway and hall width; wall height10 studs at leastgraybox tutorial
Default WalkSpeed; JumpHeight16 studs/s; 7.2 (the tutorial's 5 is stale)Humanoid reference
One studabout 28 cm; imports are not convertedunits guide
Grid variant tileStudsPerTile 8Jalapeno
Terrain region callsresolution 4, 4,194,304 voxelsTerrain reference
CSG result20,000 triangles at mostsolid modeling docs
Light Rangeclamped to 120 on write (live)deltas
Atmosphere Density, Offset (day)0.3 to 0.4, 0Develuper
Dark AtmosphereDensity 0.495, Offset 0.25, Haze 5, Glare 0BONES
ExposureCompensation-0.4, move by decimalsBONES
Window-lit interiorBrightness 44; fake GI [234, 255, 254], Range 50BONES
ColorCorrection steps0.05; Contrast 0.1DatBoiEle
Streaming baselineMinRadius 64, TargetRadius 1024, PauseOutsideLoadedArea, Opportunistic, Improvedstreaming docs
Per-view budget on 2 GB phones500 draw calls, 500k trianglesMcNeill, cWDNVvOh4o0 (performance owns it)
Script clamps (live)Atmosphere Glare and Haze 10, Density and Offset 1, ShadowSoftness 1; Brightness and Bloom Size unclampedStudio 0.743

Quality gates

Measured (lower half of each capture with skip_top=0.45, so the sky does not dominate):

  • Day looks: crushed under 0.05 in every view; spread wider than the neutral capture.
  • Outdoor night: crushed under 0.5 in every view; a lit focal point near spawn.
  • Interior with sun: the floor patch clips (clipped above 0.05) and the fake bounce lifts mean_luma while the patch stays.
  • Graybox.clearance, MaterialKit.links, EnvAudit: zero findings at error or warn.
  • Playtest: 60 fps on the dev machine; draw calls and triangles reported per view.

Judged by eye on the contact sheet (references/critique.md): mood matches the sentence; value structure reads in gray; light faces seen from spawn; landmark contrasts with its background; no plastic or near-black materials; distance haze leaves silhouettes.

Common mistakes

MistakeFix
Lighting.Technology = Future in a scriptLightingStyle plus PrioritizeLightingQuality; write Technology only in the place file
Streaming radii or Terrain.Decoration set by scriptfile-only: Rojo $properties or Properties panel (live: "not a valid member")
LevelOfDetail = StreamingMesh with a small radiusSLIM for static models; StreamingMesh only with TargetRadius 1000 or more (Andrew, Wwj8EkMWFhI)
4 by 8 doors10 by 10 at least
A union door with Hull or Boxparts, or a union with Default fidelity
A variant with BaseMaterial Grass, expecting terrain to changeSetBaseMaterialOverride for Grass and LeafyGrass, then check the terrain material color
Renaming a variant after applying itkeep names; audit with MaterialKit.links
ShadowSoftness tuned under Soft, then judged in Realisticjudge in the style you ship; captures per style
Tuning colors before the sun is aimedLooks.aimSun first
Judging bloom in an Edit captureBloom at Intensity 3 changed a capture no more than two identical captures differ (live); judge it in play or on a device
One far point lighttwo lights, near and far; Range stops at 120
Glass with CastShadow onCastShadow off

Handoffs

To or fromWhat
scenario-3d, then scenario-roblox-assetsScenario meshes are imported and checked there (triangles, collision, SurfaceAppearance); this skill places them, sets fidelity and LevelOfDetail, and lights them
scenario-texturestileable PBR sets become MaterialVariants here (color, normal, roughness, metalness; OpenGL normals); one-mesh texture sets go to scenario-roblox-assets as SurfaceAppearance
scenario-skyboxessix faces into Sky.SkyboxBk/Dn/Ft/Lf/Rt/Up; uploading needs the user's go; judge the sky with the look, since it colors the scene
scenario-game-assetsdecals and signage placed on surfaces here; UI art goes to scenario-roblox-ui
scenario-roblox-performancestreaming settings, budgets and device tests: send the P11 Stats and the EnvAudit counts
scenario-roblox-vfx-audioparticles, beams, ambience; send the mood sentence and the light positions
scenario-roblox-gameplaycollision groups, hitbox geometry, NPC navigation through the graybox
scenario-roblox-toolingRojo projects carrying the file-only settings

Current Roblox notes

  • Lighting.Technology is superseded by LightingStyle (Soft or Realistic) and PrioritizeLightingQuality; scripts cannot read Technology.
  • Script-refused, file-only (live): StreamingTargetRadius and the other streaming settings except StreamingEnabled, Terrain.Decoration, GrassLength, MaterialService.<Material>Name. Rojo 7.7.1 writes them all (Lune read-back).
  • A place built by Rojo starts with engine defaults: GlobalShadows off, environment scales 0, gray ambients, no Sky or Atmosphere (live).
  • GeometryService:SubtractAsync and siblings replace BasePart:SubtractAsync; results come back unparented; a CollisionFidelity write reads back after the next yield (live).
  • ReadVoxelChannels returns Size on the result table, ReadVoxels on the materials array (live).
  • Terrain Clouds live under Workspace.Terrain and can be created by script (live).
  • ClockTime does not advance by itself in a running game (live).

References

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Handle review comments received on GitHub for the current branch's PR or a given PR number or URL, by triaging each unresolved thread, fixing what is warranted, pushing, and replying in each thread, when asked to address, fix or answer PR comments. Works in any Scenario repository.

日本語の概要は準備中です。原文の説明を表示しています。

scenario-labs/skills1,0882026年10月23日 更新

Generate one short Conventional Commits squash message describing only the net diff between the PR's base and head, set its header as the PR title, validate it with the repository's commitlint and both copy its description to the clipboard and display it, when asked for a squash message. Works in any Scenario repository, whatever its default branch.

日本語の概要は準備中です。原文の説明を表示しています。

scenario-labs/skills1,0882026年10月23日 更新

Refresh the current pull request description from its net changes, following the repository's PR template, when asked to update or write the PR summary. Works in any Scenario repository, whatever its default branch.

日本語の概要は準備中です。原文の説明を表示しています。

scenario-labs/skills1,0882026年10月23日 更新

scenario

無料

Use when connecting an AI agent to Scenario (scenario.com) through MCP, or when a task involves generating images, video, 3D, audio, sprites, textures, or game assets. Also when picking a Scenario model, running a LoRA, refining a generation prompt, uploading reference images, waiting on generation jobs, checking credits or quota, hitting Scenario auth, scope, or Forbidden errors, or setting up mcp.scenario.com in Claude Code, Cursor, VSCode, or another agent.

日本語の概要は準備中です。原文の説明を表示しています。

scenario-labs/skills1,0882026年10月23日 更新

Use when generating or handling 3D assets through the Scenario MCP server, including text-to-3D or image-to-3D meshes, GPT-6 Astra 3D or Claude Opus 5.5 3D, GLB, FBX, OBJ, STL, or VOX files, PBR-textured or game-ready models, voxel models, multi-view reconstruction, editing a mesh by prompt, retexture, remesh, UV unwrap, auto-rigging a biped or quadruped, or retargeting an animation, previewing a mesh in the 3D viewer, or downloading a model for import into Unity, Unreal, Godot, or Blender.

日本語の概要は準備中です。原文の説明を表示しています。

scenario-labs/skills1,0882026年10月23日 更新

Use when generating navigable 3D worlds or Gaussian splat scenes on Scenario via MCP: text-to-world, image-to-world, a 360 panorama or skybox turned into a walkable splat, multi-view photos or a video walkthrough reconstructed as a splat, or one object photo to splat. Keywords: World Labs Marble 1.1, 1.1 Plus, 1.0 Draft, Hunyuan World, HY World, image-to-skybox, skybox-to-splat, multiview-to-splat, TripoSplat, gaussian splatting, 3DGS, spz, world generation, explorable scene, VR.

日本語の概要は準備中です。原文の説明を表示しています。

scenario-labs/skills1,0882026年10月23日 更新

scenario-labs のスキルをすべて見る

このスキルの問題を報告する