依据:视频画面 + 字幕逐段核对整理。 说明:凡是视频里能明确看到的控件名、图层名、数值,我都直接写出;凡是视频里没有明确显示、只能靠画面推断的地方,我会标注“未显示/推断”。
一、工程准备
1. 软件与插件
- After Effects 2023(界面为 AE 2023 风格)
- GEOlayers 3
2. 本案例核心目标
复刻一个 RealLifeLore 风格的导弹射程地图动画,主要包含:
- 卫星地图底图
- 朝鲜区域填充与描边
- 导弹射程圆
- 半径线
- 4,600 KM 数字动画
- 虚线外圈
- 地图缩放动画
二、按时间轴整理的详细操作
00:00–02:52|新建地图工程 + 下载地理数据
步骤 1:新建地图 Mapcomp
- 打开 GEOlayers 3 面板。
- 点击 Create a new map comp。
- 名称输入:
North Korea Missile Range
- 点击 Next。
- 地图 profile 选择:
- standard Bing aerial profile
步骤 2:下载地理数据
在 GEOlayers 的 geodata 搜索区:
- 搜索
North Korea - 在 Natural Earth Data 下下载:
- 朝鲜国家边界
- 再搜索
Pyongyang - 下载:
- 平壤点位
步骤 3:快速定位
- 在 Feature Browser 中双击刚下载的特征,快速跳转到对应地理位置。
00:57–02:36|导入参考图并锁定参考视图
步骤 4:导入参考图
作者先自己截了一张参考图,拖进地图合成中。
操作:
- 将参考图拖入 Mapcomp。
- 执行:
- Transform > Fit to Comp
- 降低透明度(视频未显示精确值)。
- 手动对齐到与参考样片大致一致的地图范围。
步骤 5:保存“标尺绘制视图”
作者强调:
- 一旦开始按比例绘制,不要随便改变缩放级别。
- 否则比例会乱。
所以先保存当前地图视图:
- 点击 GEOlayers 面板里的 Add Features to Browser(小加号)。
- 选择:
- Map Comp View
- 命名为:
Draw Scale Features Here
- 点击 Apply。
以后如果误缩放:
- 直接在 Feature Browser 里双击这个 Map Comp View,就能跳回当前这组缩放/方向设置。
步骤 6:设置参考图层
对参考图层执行:
- 重命名:
Reference(视频里后期也出现过全大写REFERENCE)
- 打开 3D Layer
- 用 Parent Pick Whip 父级到:
North Korea Missile Range Mapcomp Anchor
- 将图层 Lock 锁定,避免误拖动。
02:36–05:45|用 GEOlayers Scale Bar 建立精确比例
步骤 7:生成比例尺
- 在 GEOlayers 面板点击:
- Run Script File
- 选择:
- Scale Bar
- 对齐位置选择:
- Center
这会自动生成两个图层:
- 一个 shape 图层
- 一个 text 图层
步骤 8:放大比例尺文字并重命名
- 选中文本图层
- 打开 Character 面板
- 设置:
- 文字颜色:白色
- 字号:调大(此处视频未给出初始精确字号)
- 将两个比例尺图层都重命名为:
Mapscale
步骤 9:查看比例尺控制参数
选中 shape 版 Mapscale,打开 Effect Controls,可看到:
SizeFixed SizeMiles
视频中在 03:43 左右清晰可见:
Size= 245.0, 10.0- 此时画面显示大约:
- 900 km
作者会勾选/使用 Fixed Size 来读取更直接的像素对应关系。
步骤 10:把比例尺拉到导弹射程直径
视频思路:
- 参考图上写的是 4,600 km
- 这表示的是半径
- 所以要画的圆,其直径应为:
9,200 km
于是继续调 Mapscale 的 Size X 值。
视频中 05:45 左右清晰可见:
Size= 2610.2, 10.0- 屏幕文字显示:
- 9200 km
这里真正有用的是 X 向像素长度 2610.2 px。 这个值后面会拿来做射程圆的直径。
05:45–07:40|绘制导弹射程圆(Missile Range)
步骤 11:创建新椭圆图层
- 关闭参考图显示(便于看清)
- 选择顶部 Shape Tool > Ellipse
- 设置:
- Fill:打开,实色
- Stroke:关闭
- 注意:
- 绘制前不要选中任何其他图层,否则会画到已有 Shape 里
- 按住 Shift,双击 Ellipse Tool
- 这样会生成一个正圆
- 作者特别说明:不按 Shift 会按合成比例生成,容易变形
步骤 12:命名并设置尺寸
- 将图层重命名为:
Missile Range
- 展开:
Contents > Ellipse Path 1 > Size
- 将圆尺寸设置为:
- 2610.2 × 2610.2 px
视频口头说“把从比例尺复制的 size 粘进来”, 但从画面逻辑看,真正用于射程圆的是 直径像素值 2610.2, 因为最终画出来的是正圆,而不是
2610.2 × 10的扁椭圆。
步骤 13:降低圆透明度
- 按
T打开 Opacity - 视频画面里在 06:48 左右能看到大约:
- 47%
步骤 14:把圆精确绑定到平壤
- 选中
Missile Range - 在 GEOlayers 里选中
Pyongyang - 点击底部图钉按钮:
- Pin Layer to Feature
然后会自动生成一套 GEOlayers 的定位控制参数。
步骤 15:关键绑定选项(必须)
作者反复强调这一步不能漏:
- 打开 3D Layer
- 勾选:
- Scale with Map
- Rotate with Map
Rotate along path不勾
否则:
- 地图缩放时圆不会跟着按真实比例变化
- 做出来就没有测距意义
08:00–11:20|绘制半径线(Missile Range RADIUS)
步骤 16:打开标尺和参考线
为了精确画“从圆心到边缘”的半径线:
- 关闭地图显示/切到便于观察的状态
- 打开 Rulers
- 打开 Guides
步骤 17:设置参考线位置
作者操作逻辑是:
- 直径 =
2610.2 px - 半径 =
2610.2 / 2 = 1305.1 px
具体做法:
- 右键参考线 → Edit Position
- 输入:
2610.2/2
- 得到:
- 1305.1
- 再拉一条参考线,位置设为:
- 0
这样就得到一条从圆心到边缘的精确绘制基准。
步骤 18:用钢笔工具画直线
- 选择 Pen Tool
- 设置:
- Fill:None
- Stroke:白色
- Stroke Width:5 px
- 按住 Shift 绘制,确保线保持水平/垂直
- 如果吸附不到参考线,去:
- View > Snap to Guides
- 让端点分别吸附到两条参考线上
步骤 19:重命名与移动锚点
- 图层重命名:
Missile Range RADIUS
- 选 Pan Behind Tool(锚点工具)
- 按住 Ctrl 拖锚点,让锚点吸附到线段的一端
- 这一步是为了后面旋转动画从圆心转起来更自然
步骤 20:将半径线绑定到平壤
和圆一样:
- 选中半径线图层
- 选中
Pyongyang - 点击 Pin Layer to Feature
- 再设置:
- 3D 打开
- Scale with Map 打开
- Rotate with Map 打开
11:48–13:10|制作外圈虚线 + 朝鲜国家边界样式
A. 外圈虚线
步骤 21:复制射程圆制作外圈
- 选中
Missile Range Ctrl + D复制- 重命名:
border- 后面项目中也出现过类似命名:
Missile Range (Pinned) BORDER
步骤 22:把复制圆改成虚线描边
展开:
Contents > Ellipse 1
设置:
- Fill:关闭
- Stroke:打开
- Stroke Width:10
- Line Cap:Round
- 点击 Dashes 两次,生成:
DashGap
- 数值设置:
Dash = 50Gap = 25
- 按
T打开透明度:- Opacity = 80%
B. 朝鲜国家填充与描边
步骤 23:新建 GEOlayers 图层样式
- 打开 Layer Styles / Style Swatches
- 新建一个 style,命名:
country
- 颜色切成:
- 红色(精确 RGB 未显示)
- 点击 Apply
步骤 24:绘制国家填充
- 在 GEOlayers 里选择
North Korea - 点击 Draw Features
- 得到国家填充层
步骤 25:绘制国家边线
- 切换到描边样式
- 再次对
North Korea执行 Draw Features - 重命名两个图层:
North Korea fillNorth Korea border
项目后期画面中出现的图层名通常是:
North Korea FILLNorth Korea BORDER
13:12–15:03|制作距离文字与“North Korea”标签底板
A. 距离文本初版
步骤 26:建立距离文本
- 创建文本图层,输入:
4,600
- 复制一份,输入:
kilometers
- 对齐方式:
kilometers:左对齐- 数字层:右对齐
- 把两者拼到一起摆放
步骤 27:保存“其他元素绘制视图”
因为此时缩放视图和前面做比例尺时不一样了,作者又保存了一份 Map Comp View:
- GEOlayers 面板 → Add Features to Browser
- 选 Map Comp View
- 命名:
draw other elements here
B. North Korea 标签
步骤 28:复制文本做国家名称
- 复制原文本层
- 段落设为:
- Center
- 文本改为:
North Korea
步骤 29:绘制标签黑底
- 选 Rectangle Tool
- 设置:
- Fill:黑色
- Stroke:关闭
- 在
North Korea文本上画一个黑底矩形 - 右键矩形:
- Transform > Center Anchor Point in Layer Content
- 再拖动文字到矩形上方
- 按住 Ctrl 拖动,可吸附到居中位置
- 黑底图层命名:
Text Background- 项目后期画面里也出现过:
Text BG
- 让黑底先父级到文字,后面再统一处理
15:03–20:20|动画阶段:地图缩放、圆生长、半径旋转
作者拆成 4 个主要动画:
- 地图缩放
- 射程圆从 0 缩放到最终大小
- 半径线做 360° 旋转揭示
- 距离文字在末尾计数出现
A. 地图缩放动画
步骤 30:给地图 comp 打关键帧
- 时间线移动到大约:
- 3.5 秒~4 秒
- 这作为最终视图,先打关键帧
- 回到开头 0 秒
- 将地图缩放到更近的朝鲜区域
作者中途还提醒:
- 如果你没把 Feature 存进 Favorite,关项目再打开后,Feature Browser 里的临时内容可能丢失。
- 解决办法:
- 重新搜索下载
- 或导出为 GeoJSON
- 或加入 Favorite Features
步骤 31:调地图关键帧曲线
- 打开 Graph Editor
- 使用 Speed Graph
- 给地图缩放关键帧做缓动,让运动更“有冲劲”
视频里没有给出具体 Influence 数值,只是手动调速度曲线。
B. 射程圆缩放动画
步骤 32:圆从 0 缩放到 100%
- 选中
Missile Range - 按
S打开 Scale - 在最终时刻打一个最终关键帧
- 开头设为:
- 0%
- 前后关键帧做 Easy Ease
- 进 Graph Editor 微调
作者特别说明: 即便这个图层本身已有 GEOlayers 表达式,只要你直接给 Scale 打关键帧,也仍然能工作。
C. 半径线旋转揭示动画
步骤 33:把半径线用圆作遮罩
作者想要半径线只显示在圆内,并随着动画被“揭示”出来。
- 打开 Track Matte 列
- 将
Missile Range RADIUS的 Track Matte 指向:Missile Range
- 注意:AE 自动作为遮罩后,原遮罩层可能会自动隐藏
- 需要手动把
Missile Range再打开显示
步骤 34:做旋转
- 选中半径线图层
- 按
R - 动画目标:
- Z Rotation 做一圈(360°)
作者口头的做法是:
- 一端设
1x + 0° - 另一端设
0x + 0° - 看方向对不对,再决定是否反过来
然后:
- 对关键帧做 Easy Ease
- 再进 Speed Graph 手调节奏
20:20–24:20|数字计数动画(4,300 → 4,600)
A. 加 Slider Control
步骤 35:给数字文本加控制器
- 选中数字文本图层
- 打开 Effects & Presets
- 搜索:
Slider Control
- 拖到数字文本图层上
- 重命名该效果:
Counter Animation
步骤 36:用 Source Text 绑定 Slider
- 展开文本图层
- 找到:
Text > Source Text
- 使用 Source Text 的 Pick Whip 连接到:
effect("Counter Animation")("Slider")
此时文字会直接读取 Slider 数值。
B. 先做直接计数,再做“4,”前缀
步骤 37:第一版计数
作者先想到直接做:
4300 → 4600
操作:
- Slider 开头打关键帧:
4300
- 结束打关键帧:
4600
步骤 38:改成“固定前缀 + 三位数变化”
因为千位“4”不变,所以作者优化为:
- 让 Slider 只做:
300 → 600
- 然后在 Source Text 里手动加前缀:
"4,"
视频 23:55 的画面里能看出,Source Text 表达式大致为:
"4," + effect("Counter Animation")("Slider") + " KM"
于是最终变成:
- 文字显示为
4,300 KM → 4,600 KM
步骤 39:给数字文字加透明度动画
- 选中数字文本图层
- 按
T - 做 Opacity 动画:
- 开头
0 - 结束
100
- 开头
- 给关键帧做 Ease In / Easy Ease
C. 去小数点
步骤 40:对 Slider 加 Math.round
因为 Slider 默认会产生小数,作者这样处理:
- 在
Counter Animation > Slider上 - 按住 Alt 点击秒表
- 添加表达式:
Math.round(value)
这样数字会被取整,不再出现一堆小数位。
步骤 41:把数字层绑定到地图
- 将数字文本图层设为 3D
- 父级到:
Mapcomp Anchor
24:23–25:20|修正朝鲜边界与填充效果
A. 修正描边粗细随缩放失真
作者发现:
- 之前朝鲜边界是在错误缩放级别下画的
- 且 Auto Stroke Width 没开
- 结果一放大,线会越来越粗
步骤 42:重新让边线按地图缩放
- 重新选朝鲜边界特征
- 打开样式
- 打开 Auto Stroke Width
- 用相同样式重新替换/重绘一次边界
B. 修正国家填充混合模式
步骤 43:调整填充层混合模式与透明度
作者的口头操作是:
- 选中
North Korea FILL - 试混合模式:
Add- 或
Lighten
- 最终趋向:
- Lighten
- Opacity 降到:
- 50%
这样朝鲜区域既能压住卫星底图,又不会太死板。
25:21–27:23|让 North Korea 标签不跟地图一起怪异缩放
步骤 44:先解除错误关系
作者先把标签背景和文字的关系拆开,准备重新定位。
步骤 45:Pin,而不是 Parent
作者说明:
- 对
North Korea标签,他更倾向于 Pin 到地图,而不是普通 Parent - 因为这样更容易单独控制标签缩放
但第一次 Pin 的效果不好,于是又取消,再重来。
步骤 46:重置标签锚点
问题原因是:
North Korea文字层锚点在底部,不适合缩放/定位
处理:
- 选文字层
- 右键:
- Transform > Center Anchor Point in Layer
- 视频后面也有一次用的是
in Layer Content
步骤 47:标签与底板重新 Pin
- 选中:
North KoreaText BG
- 重新 Pin 到地图
步骤 48:调标签缩放动画
作者做法:
- 到动画结尾位置看效果
- 选中
North Korea和Text BG - 按
S - 先缩小到合适位置
- 再在开头给一个略大的值
视频口头明确说:
- 可能让它从 75 到 50
也就是:
- 开头:75%
- 结尾:50%
画面 26:42 左右也能看到 75.0 的 Scale 值。
26:45–28:55|统一字体,提升风格还原度
步骤 49:更换字体
作者认为字体是风格成立的重要原因,于是把现有文字改成接近参考片的字体。
在 Character 面板中输入字体名:
Long Beach
画面中能确认到的字体为:
- LongBeachUSN
- 字重:Regular
步骤 50:文字参数(能看到的部分)
在 27:55 附近画面里能看到:
- 字体:
LongBeachUSN - 字重:
Regular - 字号:100 px
- 填充颜色:白色
在 28:55 附近作者又说:
- “Let’s make it like 125 maybe”
所以后期标签字号又被进一步加大到:
- 125 px 左右
步骤 51:再次修正锚点
因为切字体后视觉中心变了:
- 右键文字层
- 执行:
- Transform > Center Anchor Point in Layer Content
27:23–29:10|虚线外圈淡入
步骤 52:给虚线外圈做透明度动画
- 打开外圈虚线图层(
Missile Range (Pinned) BORDER) - 按
T - 在末尾附近做:
0 → 80
- 给末尾关键帧做 Easy Ease
这样虚线会在动画的最后一段淡入出现。
28:44–29:30|微调标签尺寸与补一个 Adjustment Layer
步骤 53:继续放大标签
作者再次说:
- “Let’s make it like 125 maybe”
说明标签大小在这里又被继续抬高。
步骤 54:复制缩放动画到边框/文字相关层
作者提到:
- 想让某些元素在动画过程中保持更一致的相对关系
- 就把一个图层的 Scale 动画复制 到另一个图层上
步骤 55:加调整层做 Noisy Vignette
- 新建:
- Adjustment Layer
- 去 Effects & Presets 搜索并套用他自己的:
Noisy Vignette
这里作者没有展示具体参数,所以只能确认:
- 他确实加了一个 Adjustment Layer
- 套了名为 noisy vignette 的预设/风格
- 然后把 vignette 调到画面中心并略微 tweek
29:30–31:07|修正数字抖动:把 KM 单独拆成一个文本层
作者发现:
- 数字计数时,整串
4,300 KM → 4,600 KM会左右跳 - 原因是字符宽度变化导致文本框重排
步骤 56:先把数字层改为左对齐
- 选计数数字层
- 改为:
- Left Align
这样数字本体会稳定很多。
步骤 57:把单位从表达式里删掉
原来 Source Text 里有:
"4," + effect("Counter Animation")("Slider") + " KM"
作者决定把后面的 " KM" 去掉。
于是数字层最终只保留:
"4," + effect("Counter Animation")("Slider")
步骤 58:新建独立的单位文本层
- 用文字工具单独创建一个新文本层
- 输入:
kilometer(口头这么说)- 但最终画面实际上用的是:KM
- 设置为:
- Left Align
步骤 59:临时关闭 3D 便于吸附
作者的做法:
- 先把新的
KM层 关闭 3D - 这样它更容易和数字层进行 2D 吸附对齐
- 对齐好位置以后
- 再把两个文字层都重新打开 3D
步骤 60:把 KM 层也连到地图锚点
- 将
KM图层父级到:MapComp Anchor
- 把数字层的 Opacity 动画复制 给
KM
视频最后的图层里可以看到:
4,600KM
已经是两个独立文字层。
三、视频中能明确确认的关键数值汇总
1. 地图/比例相关
- Mapcomp 名称:
North Korea Missile Range - Profile:standard Bing aerial profile
- 射程半径文本:4,600 km
- 射程直径:9,200 km
- 比例尺中间阶段:
Size = 245.0, 10.0- 对应约
900 km
- 比例尺最终阶段:
Size = 2610.2, 10.0- 对应
9200 km
- 射程圆建议尺寸:
- 2610.2 × 2610.2 px
- 半径辅助线:
2610.2 / 2 = 1305.1 px
2. 图层命名(视频中出现过)
Reference / REFERENCEMapscaleMissile RangeMissile Range (Pinned)Missile Range RADIUSMissile Range RADIUS (Pinned)Missile Range (Pinned) BORDERNorth Korea FILLNorth Korea BORDERNorth KoreaText BG / Text Background4,600KMNorth Korea Missile Range Mapcomp Anchor
3. 描边/虚线参数
- 半径线 Stroke:5 px
- 外圈虚线 Stroke Width:10 px
- Line Cap:Round
- Dash:50
- Gap:25
- 外圈虚线 Opacity:80%
4. 文字参数
- 距离文字内容:
4,600 - 单位文字最终:
KM - 国家标签:
North Korea - 字体:LongBeachUSN
- 字重:Regular
- 字号(中段能看到):100 px
- 后期作者口头又提高到:125 px 左右
- 颜色:白色
5. 混合模式/透明度
- 国家填充 Blend Mode:
- 试过
Add - 最终倾向
Lighten
- 试过
- 国家填充 Opacity:50%
- 射程圆 Opacity:画面可见约 47%
6. 动画数值
- 地图缩放总时长:约 3.5–4 秒
- 射程圆 Scale:0% → 100%
- 标签缩放:作者口头建议 75% → 50%
- 数字计数:
- 初版:
4300 → 4600 - 优化后 Slider:
300 → 600
- 初版:
- 外圈虚线淡入:
0 → 80
四、表达式整理(可直接照着写)
1. 计数文字的 Source Text(中期版本)
"4," + effect("Counter Animation")("Slider") + " KM"
2. 为 Slider 去小数
在 Counter Animation > Slider 上 Alt+点击秒表后写:
Math.round(value)
3. 最终更稳的数字版本(推荐)
把单位拆出去以后,数字层 Source Text 改成:
"4," + effect("Counter Animation")("Slider")
然后另建一个独立文本层写 KM。
五、复刻时最容易踩坑的点
-
没保存 Map Comp View
- 一旦缩放错了,前面的比例会全部乱掉。
- 至少保存两个视图:
Draw Scale Features Heredraw other elements here
-
没开 Scale with Map / Rotate with Map
- 射程圆和半径线都会失真。
-
直接把
2610.2, 10.0当成椭圆 Size 粘进去- 会变成扁椭圆。
- 正确做法是把射程圆设为:
2610.2 × 2610.2 px
-
国家边界 Auto Stroke Width 没开
- 一缩放线宽就爆炸。
-
数字和单位写在同一个表达式里
- 数字计数时文本会左右乱跳。
- 最后最好拆成:
- 数字层
- 单位层(KM)
-
标签锚点不居中
- Pin 完以后缩放、移动都会很怪。
- 先做:
Transform > Center Anchor Point in Layer / Layer Content
六、最适合你直接照做的简化复刻顺序
- 新建 GEOlayers Mapcomp,命名
North Korea Missile Range - 下载
North Korea和Pyongyang - 导入参考图,
Fit to Comp,降透明度,保存Draw Scale Features Here - GEOlayers 运行
Scale Bar,居中生成比例尺 - 把比例尺拉到
9200 km,读取 X 像素值2610.2 - 新建正圆,Size 设
2610.2 × 2610.2 - 圆 Pin 到
Pyongyang,开 3D + Scale with Map + Rotate with Map - 用 Guides 画半径线,长度
1305.1 px - 半径线 Pin 到
Pyongyang - 复制圆做虚线边:10 px / Dash 50 / Gap 25 / Opacity 80
- 用 GEOlayers 画朝鲜填充和边界
- 做
4,600数字层 +North Korea标签层 + 黑底 - 地图做 4 秒左右缩放动画
- 圆做
0 → 100%缩放动画 - 半径线做一圈 Z Rotation 动画,并用圆做 Track Matte
- 给数字层加 Slider Control,做
300 → 600计数 - Source Text 写
"4," + effect("Counter Animation")("Slider") - Slider 表达式写
Math.round(value) - 单独建
KM文本层,复制数字层 opacity 动画 - 字体统一换
LongBeachUSN - 填充层设
Lighten,Opacity50% - 必要时加 Adjustment Layer + noisy vignette
这份教程已经能直接拿去照着做。