# 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` 35–55 for "looks like a scope"; 60–75 for "wide scope"; > 80 looks like a generic game camera. - **Near clip**: 0.01–0.05 m. Far clip: 5–20 m (enough for a cavity). - **Barrel optics**: `LensDistortion.intensity` 0.05–0.15 + `Vignette.intensity` 0.25–0.4, smoothness 0.3–0.5. - **Highlights**: narrow `Bloom.intensity` 0.1–0.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.0–2.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_` (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) + 30–45° offset. - A 30–45° 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="", 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="", component_type="Camera") ```