地形路线飞越
Terrain Route Flyover
- 范围
- 场景
- 复杂度
- 高级
- 建议时长
- 4.2s
- 画幅
- 16:9 · 9:16 · 1:1
真实渲染预览
这个动效用来做什么
镜头飞越自绘低多边形地形,路线从起点延伸到终点并在终帧停住。
A camera flies over self-drawn low-poly terrain as a route extends from origin to destination and settles in the final frame.
可替换参数
origin_label必填 · stringLabel shown at the route origin.
- 默认值
NORTH
destination_label必填 · stringLabel shown at the route destination.
- 默认值
SOUTH
route_points必填 · stringPipe-separated normalized x,y route points.
- 默认值
0.18,0.72|0.31,0.55|0.47,0.58|0.62,0.34|0.82,0.42
terrain_style可选 · enumProcedural terrain contour style.
- 默认值
ridge
归一化动作时间线
所有事件都使用 0 到 1 的归一化进度:0 是镜头开始,1 是镜头结束;事件可以重叠,适配器再把相同比例映射到秒或帧。
0.04–0.320.18–0.680.12–0.720.42–0.700.78–1.00复制执行上下文
四个上下文共享同一份可机器校验核心;引擎标签只追加已验证 Adapter 路由、能力与实现纪律。
<!-- motion-registry-context:{"format":"1.0.0","recipe_id":"map.terrain-route-flyover","recipe_version":"0.2.0","recipe_source":"recipes/map/terrain-route-flyover/recipe.yaml"} -->
# Motion Registry Context
<!-- motion-registry-section:recipe-identity:start -->
## Recipe identity
- Recipe ID: map.terrain-route-flyover
- Schema version: 0.2.0
- Recipe source: recipes/map/terrain-route-flyover/recipe.yaml
<!-- motion-registry-section:recipe-identity:end -->
<!-- motion-registry-section:motion-intent:start -->
## Motion intent and scope
- Purpose (zh): 镜头飞越自绘低多边形地形,路线从起点延伸到终点并在终帧停住。
- Purpose (en): A camera flies over self-drawn low-poly terrain as a route extends from origin to destination and settles in the final frame.
- Scope: scene
- Complexity: advanced
- Subjects: map
- Intents: navigate, reveal, demonstrate
- Use cases: knowledge-video, data-story, presentation, social-video
- Recipe capabilities: procedural-terrain, route-on-surface, camera-flyover, offline-safe
<!-- motion-registry-section:motion-intent:end -->
<!-- motion-registry-section:inputs:start -->
## Inputs
- origin_label: string (required; default=NORTH) — Label shown at the route origin.
- destination_label: string (required; default=SOUTH) — Label shown at the route destination.
- route_points: string (required; default=0.18,0.72|0.31,0.55|0.47,0.58|0.62,0.34|0.82,0.42) — Pipe-separated normalized x,y route points.
- terrain_style: enum (optional; default=ridge; options=ridge|basin) — Procedural terrain contour style.
<!-- motion-registry-section:inputs:end -->
<!-- motion-registry-section:normalized-timeline:start -->
## Normalized motion timeline (0 to 1)
- 0.04–0.32 · terrain.reveal · opacity.fade → terrain · parameters={"from":0,"to":1}
- 0.18–0.68 · route.draw · path.draw → route · parameters={"from":0,"to":1}
- 0.12–0.72 · camera.flyover · camera.push → terrain · parameters={"from":0,"to":1,"curve":"ease-in-out"}
- 0.42–0.70 · markers.reveal · collection.reveal → markers · parameters={"order":"source","opacity_from":0,"opacity_to":1}
- 0.78–1.00 · route.hold · state.hold → route · parameters={}
<!-- motion-registry-section:normalized-timeline:end -->
<!-- motion-registry-section:output-envelope:start -->
## Output envelope
- Aspect ratios: 16:9, 9:16, 1:1
- Duration: min 2.8s; preferred 4.2s; max 6s
<!-- motion-registry-section:output-envelope:end -->
<!-- motion-registry-section:acceptance:start -->
## Acceptance constraints
- terrain-depth: Terrain contour layers and raised surface remain visible from the flyover camera.
- route-integrity: The route follows the input points in order, with distinct origin, waypoint, and destination markers.
- offline-safe: The composition uses only self-drawn geometry and no remote tiles, textures, or network requests.
- stable-hold: The complete route and both endpoint labels remain still and readable during the final hold.
<!-- motion-registry-section:acceptance:end -->
<!-- motion-registry-section:handoff-invariants:start -->
## Handoff invariants
- Preserve the subject, input meaning, event order, overlaps, final state, and approximate normalized timing.
- Keep the implementation deterministic and retain a readable, stable final hold.
- Treat the Recipe document as the source of truth; do not infer engine APIs in this shared core.
<!-- motion-registry-section:handoff-invariants:end -->引擎实现
HyperFrames
- Composition
terrain-route- 入口文件
index.html- 确定性
- 是
- lint通过
- validate通过
- inspect通过
- render通过
Remotion
- Composition
TerrainRouteFlyover- 入口文件
TerrainRouteFlyover.tsx- 确定性
- 是
- typecheck通过
- render通过
Three.js
- Composition
ThreeTerrainRouteFlyover- 入口文件
ThreeTerrainRouteFlyover.tsx- 确定性
- 是
- typecheck通过
- build通过
- render通过
来源与使用边界
- 再分发状态
- original
- 来源说明
- Self-authored H2 Recipe and procedural adapters.
- Recipe 文件
recipes/map/terrain-route-flyover/recipe.yaml
参考
无外部参考;该 Recipe 与测试素材为项目原创。
验收标准
terrain-depthTerrain contour layers and raised surface remain visible from the flyover camera.
route-integrityThe route follows the input points in order, with distinct origin, waypoint, and destination markers.
offline-safeThe composition uses only self-drawn geometry and no remote tiles, textures, or network requests.
stable-holdThe complete route and both endpoint labels remain still and readable during the final hold.