UnityLaparoscopicSceneSimul.../.claude/commands/cinematic-laparoscope-camera.md
Artur Mukhamadiev c51e6d1369 feat(models) added models/textures and Agents related stuff
:Release Notes:
- Agents files for opencode and claude
- Skills for opencode and claude
- 3d models with medical organs
- Some textures

:Detailed Notes:
-

:Testing Performed:
-

:QA Notes:
- Looks like shit :)

:Issues Addressed:
TG-1
2026-06-22 16:57:48 +03:00

60 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cinematic Laparoscope Camera (project-scoped)
Constrains camera work to the laparoscope viewpoint the scene is built around. The preserved stereo rig is **not** edited by this skill — it is the interop surface.
## When to use
Load before adjusting FOV, near/far clip, depth of field, exposure, or post-processing on any camera, or diagnosing "scene looks too far", "scene looks too bright", "black frame", or "vignette too strong".
## Camera inventory (do not rename)
- **Stereo rig** (from `MainScene`): preserved at its current path. Do not rename, move, or retarget. Interop surface for WebRTC and external automation.
- **Art-directed laparoscope camera**: under `SurgeryBenchmark/Shared`. If one is not present, the scene-director agent can add it as a bounded change.
## Laparoscope framing
- **FOV**: `fieldOfView` 3555 for "looks like a scope"; 6075 for "wide scope"; > 80 looks like a generic game camera.
- **Near clip**: 0.010.05 m. Far clip: 520 m (enough for a cavity).
- **Barrel optics**: `LensDistortion.intensity` 0.050.15 + `Vignette.intensity` 0.250.4, smoothness 0.30.5.
- **Highlights**: narrow `Bloom.intensity` 0.10.3, `threshold` > 1.0 (only catches the brightest specular hits).
- **Color grading**: `ColorAdjustments.contrast` +0.05 to +0.15, `postExposure` near 0, `Tonemapping` = Neutral or ACES.
## Depth of field
- Mode: `Gaussian` (not Bokeh — too heavy for real-time).
- `gaussianStart`: near the closest tissue you want sharp.
- `gaussianEnd`: just past the farthest tissue you want sharp.
- `gaussianMaxRadius`: 1.02.5 px for subtle; > 4 looks like a portrait lens.
- Pitfall: focus so close the near plane is inside the focus zone → "all-blur" frame. Verify by screenshot.
## Exposure and HDR
- `Camera.allowHDR` = true. The URP asset must have HDR enabled (default in URP 14).
- Use `ColorAdjustments.postExposure` (stops, ±1.0). If range > 1.0 needed, fix the lighting instead.
- "Too dark" laparoscope usually means: Volume profile missing `ColorAdjustments`, or post-processing is skipped because the URP asset has it disabled. Verify with `volume_get_info` before touching the camera.
## Adding a secondary / overview camera (bounded change)
1. Create as child of `SurgeryBenchmark/Shared/_Cameras`.
2. Name it `OverviewCamera_<Tag>` (e.g., `OverviewCamera_Cavity`).
3. `clearFlags = Solid Color` with neutral mid-grey, or `Skybox` if the cavity is enclosed.
4. Do **not** disable the stereo rig or any preserved camera.
## Composition rules
- Verify from at least two angles: scope (default) + 3045° offset.
- A 3045° offset shot catches stretching, lighting falloff, and proportion problems the scope view hides.
- For every verification pass: scope screenshot + offset screenshot.
## Common MCP calls
```
# Screenshot from the laparoscope
mcp__UnityMCP__manage_camera(action="screenshot", include_image=true, output_folder="Assets/Screenshots/LaparoscopicBenchmark")
# Set camera properties
mcp__UnityMCP__manage_camera(action="set_lens", target="<camera path>", search_method="by_path", field_of_view=45, near_clip_plane=0.02, far_clip_plane=10.0)
# Read camera properties
mcp__UnityMCP__manage_components(action="get_component", target="<camera path>", component_type="Camera")
```