46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
# Product Brief — HS_DollyCam
|
|
|
|
## Overview
|
|
|
|
**HS_DollyCam** is a cinematic camera dolly HUD for Second Life that enables users to compose, save, and playback professional-grade camera movements and tours. It is distributed as a wearable HUD (single-prim, Controller in ROOT) with a suite of companion scripts that handle playlist playback, continuous tour runtime, camera engine control, dialog menus, visual markers, and field-of-view adjustment.
|
|
|
|
## Problem
|
|
|
|
Second Life's default camera is imprecise and non-repeatable for cinematic photography, viewer capture, or scripted scene direction. Users cannot reliably reproduce camera angles, compose multi-shot sequences, or execute smooth automated camera rides across predefined waypoints without manual repositioning for each shot.
|
|
|
|
## Solution
|
|
|
|
A HUD-based camera system that:
|
|
- Lets users **save camera presets** (position + focus + FOV) into Linkset Data
|
|
- Enables **smooth cinematic moves** between presets with configurable timing and easing
|
|
- Supports **playlist playback** from inventory notecards for complex multi-shot sequences
|
|
- Delivers **continuous tours** via Catmull-Rom spline interpolation with trapezoidal motion profiles
|
|
- Provides **visual markers** (rez'd pyramids) at preset positions for clickable navigation
|
|
- Offers **FOV control** via RLVa, **dolly zooms**, **lock/follow modes**, and a **touch menu** for common workflows
|
|
|
|
## Target Users
|
|
|
|
- **SL photographers** composing cinematic viewer captures
|
|
- **Content creators** building scripted camera experiences
|
|
- **Virtual set directors** directing camera movement for viewer recording
|
|
- **Linden Scripting Language (LSL) developers** using the engine as a reusable camera framework
|
|
|
|
## Key Constraints
|
|
|
|
- **LSL memory is severely limited** — all scripts must avoid large/mixed-type lists and expensive `llParseString2List` in hot paths
|
|
- **Single-prim HUD** — the Controller lives in the ROOT prim; all logic must be memory-efficient
|
|
- **Second Life viewer limitations** — camera permission quirks require ESC-workaround; RLVa required for FOV
|
|
- **Parcel object limits** — marker rezzing depends on parcel LI and rez permissions
|
|
|
|
## Scope
|
|
|
|
| In Scope | Out of Scope |
|
|
|----------|---------------|
|
|
| Preset save/load/delete/list | Multi-user / networked camera sync |
|
|
| Notecard-driven playlist playback | Mobile / non-desktop viewer support |
|
|
| Continuous tour with spline interpolation | Audio synchronization |
|
|
| FOV control via RLVa | AR / VR viewer camera modes |
|
|
| Lock / Follow modes | Physics object interaction |
|
|
| Visual marker system | Cloud-based preset sharing |
|
|
| Dialog menu UI | REST / external API integration |
|