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

set-weather

Reads and sets the weather on a running CARLA server via get_weather/set_weather, and turns natural-language weather requests ("heavy rain at sunset", "light fog at night", "clear noon", "dust storm") into exact WeatherParameters — cloudiness, precipitation, puddles, wind, fog, sun position, wetness, dust. Use when the user asks to "set/change the weather", "make it rainy/foggy/sunny/night", "apply a weather preset", or describes any sky/lighting condition.

インストール方法を見る

含まれるファイル(5)

  • SKILL.md6.6 KB
  • references/weather.md8.1 KB
  • scripts/check_env.sh2.2 KB
  • scripts/env.sh1.1 KB
  • scripts/weather.py6.5 KB

SKILL.md(原文)

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

Set CARLA weather

Paths. scripts/… and references/… below are relative to the directory holding this SKILL.md. Your working directory is the user's project, not that directory, so prefix them with its absolute path or the command is not found.

Set the weather on a running server from a client, and read it back to confirm. The deliverable is verified server state: set_weather returns nothing, so every change is re-read into a VERIFY block.

The job that matters here is turning words into the right numbers. CARLA has 14 weather fields and 23 tuned presets; a plain request maps to exact values, not a guess. The mapping is authoritative and lives in references/weather.md — read it before composing a set. The rule of thumb:

  • A request naming one quantity ("raise the sun", "how high the sun sits", "more puddles", "make it windier", "thicker fog") maps to a single field → set --<field>. The plain-language→field table in the reference names the everyday phrasings for each of the 14 fields. Relative wording ("a bit higher", "less rain") → show the current value, then set the field to the new one.
  • A standard condition × time ("heavy rain at sunset") is a preset → apply it directly.
  • A tweak on a standard look → start from that preset and override the few differing fields (set --base <preset> ...).
  • Anything else → compose fields from the reference's vocabulary tables, picking the sun angle from its time-of-day table.

Instructions

Progress:
- [ ] Step 1: Check prerequisites (bash scripts/check_env.sh), clear FAILs
- [ ] Step 2: Map the request -> preset or field values (references/weather.md)
- [ ] Step 3: Apply (preset / set --base / set)
- [ ] Step 4: Verify the VERIFY block matches the words

Commands need CARLA_HOST/CARLA_PORT from scripts/env.sh (defaults 127.0.0.1:2000). Prefix with source scripts/env.sh or export them.

Step 1: Check prerequisites

bash scripts/check_env.sh

FAILs only on a missing carla module or an unreachable server.

Step 2: Map the words to parameters

Open references/weather.md. Decide whether the request is a preset, a preset-plus-tweak, or a from-scratch composition. Do not invent field values — use the tables so the result is reproducible.

Step 3: Apply

source scripts/env.sh

# see what maps to what
python3 scripts/weather.py show
python3 scripts/weather.py list-presets

# a standard look = a preset
python3 scripts/weather.py preset HardRainSunset
python3 scripts/weather.py preset ClearNight

# a preset with a tweak (foggier hard rain at sunset)
python3 scripts/weather.py set --base HardRainSunset --fog-density 40

# a from-scratch composition (misty grey afternoon, roads still wet)
python3 scripts/weather.py set \
    --cloudiness 90 --fog-density 20 --fog-distance 60 \
    --precipitation-deposits 50 --wetness 40 --sun-altitude-angle 40

set takes a flag for every field (--cloudiness, --precipitation, --precipitation-deposits, --wind-intensity, --fog-density, --fog-distance, --fog-falloff, --wetness, --sun-altitude-angle, --sun-azimuth-angle, --dust-storm, and the three scattering scales). 0-100 fields are clamped. Without --base it overrides the current weather, leaving unspecified fields untouched.

Step 4: Verify

The VERIFY block prints all 14 fields. Confirm they match the request: e.g. "heavy rain at sunset" ⇒ precipitation = 100, precipitation_deposits = 90, cloudiness = 100, sun_altitude_angle = 15.

Examples

Example 1: a preset request

User says: "make it rain hard at sunset"

python3 scripts/weather.py preset HardRainSunset. VERIFY: precipitation 100, deposits 90, cloudiness 100, sun_altitude 15. Done.

Example 1b: a single-field request

User says: "the sun's too low, raise it higher"

show (say sun_altitude_angle = 15), then set --sun-altitude-angle 60. Only the sun height changes; clouds/rain/fog stay as they were.

Example 2: night + fog, not an exact preset

User says: "foggy night, calm"

Nearest is ClearNight (already fog 60 at night); if they want thicker fog: set --base ClearNight --fog-density 90 --fog-distance 10 --wind-intensity 5. VERIFY: sun_altitude -90, fog_density 90.

Example 3: from-scratch daytime scene

User says: "overcast afternoon just after rain — wet roads, no rain falling"

set --cloudiness 90 --precipitation 0 --precipitation-deposits 70 --wetness 50 --sun-altitude-angle 40. Puddles high, rain zero — the "just stopped" look.

Example 4: keep weather across a map change

User says: "set hard rain, then switch to Town02"

preset HardRainNoon, then the load-map skill — weather resets on load, so re-apply the preset after loading.

Troubleshooting

Problem: I set rain but it looks wrong / no clouds Cause: high precipitation with low cloudiness. Solution: raise cloudiness too (presets do — HardRain* sets 100).

Problem: "wet" scene but roads look dry Cause: only precipitation set; standing water is precipitation_deposits. Solution: set precipitation-deposits (and wetness) as well.

Problem: preset Default didn't give a clear day Cause: Default fields are -1 = "unset" — it defers to the map's own default. Solution: use ClearNoon (or the intended named preset) for a defined look.

Problem: weather reset after loading a map Cause: weather is per-world; a load resets it. Solution: re-apply after load-map (re-run the preset/set).

Outputs

Server state, not a file: the running world now renders the requested weather. The VERIFY block is the record of the applied parameters.

The field semantics, the full preset matrix, and the natural-language vocabulary tables are in references/weather.md.

レビュー

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

同じリポジトリのスキル

概要と使いどころ

Adds a new ROS 2 message type to CARLA's native ROS 2 interface — the hand-written POD struct under LibCarla/source/carla/ros2/types/msg, its Fast-CDR serialize/deserialize pair, the RIHS01 type hash computed in Docker, the CdrTopicInfo registration and the type-hash test. Use when the user asks to "add a ROS message type", "support sensor_msgs/X in CARLA", "add a carla_msgs type", "why is my type hash warning appearing", or needs a message CARLA does not publish yet. There is no IDL codegen — every step is manual.

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

carla-simulator/carla1.4万2026年10月13日 更新

Adds a new topic to CARLA's native ROS 2 interface — a publisher (BasePublisher + PublisherImpl, topic suffix, QoS, registration in ROS2::GetOrCreateSensor, a ProcessDataFrom* entry point and its call site in the UE4 plugin) or a subscriber that lets ROS drive an actor. Also covers adding a middleware (RMW) behind IPublisherMiddleware. Use when the user asks to "publish X to ROS from CARLA", "add a ROS topic/publisher/subscriber", "make the obstacle/lane-invasion sensor publish", "add odometry to ROS", or "add another RMW".

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

carla-simulator/carla1.4万2026年10月13日 更新

Reads and summarises ScenarioRunner output — the criteria pass/fail tables from --output/--file, the machine-readable --json and --junit result files, and the criteria JSON written alongside a --record recording — and runs the metrics module (metrics_manager.py) to compute custom measurements over a recorded run offline, without the simulator. Use when the user asks "did the scenario pass", "why did it fail", "summarise these results", "compare these runs", or wants distance/speed/lane metrics from a recording.

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

carla-simulator/carla1.4万2026年10月13日 更新

Gets actor and level 3D bounding boxes and projects them into a camera image as 2D boxes — the dataset-annotation workflow. Lists box geometry, draws 3D boxes in the world via debug, or captures one camera frame and writes an annotated PNG plus a JSON of 2D boxes for matching actors. Use when the user asks to "get bounding boxes", "draw boxes around the cars", "project boxes onto the camera", or "generate a detection dataset / annotations".

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

carla-simulator/carla1.4万2026年10月13日 更新

Builds CARLA (branch ue4-dev, Unreal Engine 4.26) from source on Linux end-to-end — UE4 fork, the Carla server (editor C++ modules), the LibCarla Python client wheel, and content — then verifies them against a from-source server. Optionally builds the native ROS 2 interface in (ROS2=1 → --ros2, Fast-DDS/CycloneDDS/Zenoh), which is compile-time only and cannot be enabled later. Use when the user asks to "build CARLA from source", "compile CARLA ue4-dev", "set up CARLA on Ubuntu (incl. 24.04)", "build CARLA with ROS2 support", or "produce a CARLA server + client wheel". Cooking a distributable Dist/ package is a separate skill (package-carla-ue4); running the build is run-carla-server.

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

carla-simulator/carla1.4万2026年10月13日 更新

Builds CARLA on Unreal Engine 5.8 from the ue58-dev branch using its CMake build system — configure a preset, then build the carla-unreal / carla-unreal-editor / carla-python-api-install / launch targets — with ROS 2, DLSS, RSS and cook-scope options, and the engine-side build of the CarlaUnreal UE 5.8 fork. There is no Makefile and no Util/BuildTools in this tree, so every UE4 `make` recipe is invalid here. Use when the user asks to "build CARLA UE5", "build ue58-dev", "compile CARLA with cmake", "rebuild the Python API", or hits a CMake configure or target failure.

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

carla-simulator/carla1.4万2026年10月13日 更新

carla-simulator のスキルをすべて見る

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