关于 map-route
一项将目的地、出行时间和距离制作成风格化 3D 路线动画视频的技能。它通过无头 Chrome 中的 WebGL 渲染 MP4,并可通过复制模板自定义路线。
主要功能
- 01生成 3D 路线动画
- 02显示 ETA 和目的地卡片
- 03自定义地点标签、强调色和随机种子
- 04通过模板修改路线
- 05使用无头 Chrome 渲染 MP4
适用场景
- 01制作目的地路线动画短片
- 02准备地图风格的出行时间视频
- 03更改视频中显示的路线形状
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ artemnovitckii/ claude-animation-skills --skill map-route安装后在 Claude Code 中输入/map-route确认已加载。
附带文件build.pytemplate.html
详细介绍
/map-route
┌──────────────────────┐
│ [▲ 9 min] │ ETA card counts down, then "Arrived"
│ ┌Iron Yard Gym┐ │ destination card after the pin lands
│ ▒▒ ▒▒ 📍 ▒▒ │ white 3D blocks, parks, a river
│ ▒▒ ━━━━━━━┛ ▒▒ │ the route draws itself, the camera rides along
│ ▒▒ ┃ ▒▒ ▒▒ │ and pulls back at the end
└──────────────────────┘
首次使用
此技能的文件夹就是 Claude Code 加载技能时显示的“Base directory”。
SKILL_DIR="<base directory of this skill>"
KIT=$(python3 -c 'import os,sys;print(os.path.realpath(os.path.join(sys.argv[1],"..","..","kit")))' "$SKILL_DIR")
[ -s "$KIT/node_modules/three/build/three.module.js" ] || bash "$KIT/setup.sh"
需要 ffmpeg 和 Node。它会在无头 Chrome 中使用 WebGL 渲染。
步骤
- 行程。 向用户询问目的地名称、所需分钟数和距离(例如“从家到健身房,2.8 km,9 分钟”)。如果用户只提供分钟数或距离中的一项,就估算另一项(步行约每公里 12 分钟,骑行约 4 分钟,市区驾车约 2 分钟),并说明这是估算值。
- 规格。 编写
<name>.map.json(见下文)。 - 构建。 运行
python3 "$SKILL_DIR/build.py" <spec.json>。3D 渲染约需 1.5 分钟,其中大部分时间用于等待 HyperFrames 中的 WebGL(出现sub_timeline_readiness_timeout警告属于正常情况)。先添加--snap 3.8检查最后一帧。 - 检查 画面:目的地卡片完整显示在屏幕上,街道标签不会压在预计到达时间卡片上。
- 交付 mp4 文件路径。
规格
{
"destination": "Iron Yard Gym", "minutes": 9, "distance": 2.8, "unit": "km",
"places": ["North Quay", "Botanic Gardens", "Market Hall", "Elm Park", "The Canal"],
"accent": "#2f7cf6", "seed": 7
}
destination、minutes、distance:必填。unit:"km"或"mi"。places:地图上固定位置的 5 个小灰色标签。顺序依次为:起点附近、最左侧的公园、路线中段的街区、最右侧的公园、河流。使用符合用户所在城市的名称,也可以填写""隐藏标签。这些只是装饰,并不代表真实地理位置。accent:路线、移动点和预计到达时间图标的颜色(十六进制)。图钉始终为红色。seed:使用不同的整数可以生成不同的建筑和公园布局。hold(可选):结尾额外停留的秒数。out(可选):输出路径。
更改路线
路线形状固定为:向上、向右、向上、向右,终点为图钉所在位置。若要更改,请将 "$SKILL_DIR/template.html" 复制到规格文件所在目录,在副本中编辑 WP([x, z] 坐标点;每个拐角都必须位于街道上,而街道沿 4 的倍数延伸;x 范围为 -36 到 36,z 范围为 -88 到 24,北方为负 z),并在规格中添加 "template": "template.html"。相机最终拉远的目标位置(new THREE.Vector3(3, 0, -27))和标签位置(LBL)是按默认路线调整的,因此更改路线时也要相应移动它们,并使用 --snap 检查。
风格
- 名称简短、听起来自然。目的地卡片最多可容纳约 26 个字符。
- 保持简洁:一条路线、一个图钉,不要添加额外的箭头或标注。
评论
支持 Markdown