map.terrain-route-flyover

地形路线飞越

Terrain Route Flyover

仅本次打开有效
范围
场景
复杂度
高级
建议时长
4.2s
画幅
16:9 · 9:16 · 1:1
01
Live preview

真实渲染预览

实机渲染 · HyperFrames
02
Purpose

这个动效用来做什么

镜头飞越自绘低多边形地形,路线从起点延伸到终点并在终帧停住。

A camera flies over self-drawn low-poly terrain as a route extends from origin to destination and settles in the final frame.

地图
导航揭示演示
知识视频数据叙事演示文稿社交短视频
03
Inputs

可替换参数

origin_label必填 · string

Label shown at the route origin.

默认值
NORTH
destination_label必填 · string

Label shown at the route destination.

默认值
SOUTH
route_points必填 · string

Pipe-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可选 · enum

Procedural terrain contour style.

默认值
ridge
04
Motion timeline

归一化动作时间线

所有事件都使用 0 到 1 的归一化进度:0 是镜头开始,1 是镜头结束;事件可以重叠,适配器再把相同比例映射到秒或帧。

terrain.revealopacity.fade
0.04–0.32
route.drawpath.draw
0.18–0.68
camera.flyovercamera.push
0.12–0.72
markers.revealcollection.reveal
0.42–0.70
route.holdstate.hold
0.78–1.00
05
Copy to Agent

复制执行上下文

四个上下文共享同一份可机器校验核心;引擎标签只追加已验证 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 -->
06
Engine implementations

引擎实现

gsap-timeline

HyperFrames

已验证
Composition
terrain-route
入口文件
index.html
确定性
  • lint通过
  • validate通过
  • inspect通过
  • render通过
frame-based

Remotion

已验证
Composition
TerrainRouteFlyover
入口文件
TerrainRouteFlyover.tsx
确定性
  • typecheck通过
  • render通过
frame-based

Three.js

已验证
Composition
ThreeTerrainRouteFlyover
入口文件
ThreeTerrainRouteFlyover.tsx
确定性
  • typecheck通过
  • build通过
  • render通过
07
Source, reference & rights

来源与使用边界

再分发状态
original
来源说明
Self-authored H2 Recipe and procedural adapters.
Recipe 文件
recipes/map/terrain-route-flyover/recipe.yaml

参考

无外部参考;该 Recipe 与测试素材为项目原创。

08
Verification

验收标准

01
terrain-depth

Terrain contour layers and raised surface remain visible from the flyover camera.

02
route-integrity

The route follows the input points in order, with distinct origin, waypoint, and destination markers.

03
offline-safe

The composition uses only self-drawn geometry and no remote tiles, textures, or network requests.

04
stable-hold

The complete route and both endpoint labels remain still and readable during the final hold.

3 个实现已通过真实渲染理解验证模型