CEL 脚本入门:让 Celestia 自动执行一串动作
什么是 CEL 脚本
CEL(Celestia Language)是 Celestia 内置的简单脚本语言。它不能写复杂的逻辑(没有循环、变量、条件判断),但在"顺序执行一串 Celestia 动作"这件事上非常好用:
Select { object "Earth" }
Follow { }
SetTime { Date "2024 04 08 18 30 00" }
Wait { Duration 2 }
Center { }
这六行脚本就是一个"2024 日全食启动画面":选中地球 → 跟随 → 跳到日全食时刻 → 等 2 秒 → 居中。
用 CEL 脚本做什么
CEL 脚本最适合三类场景:
1. 开机演示(start.cel)
每次启动 Celestia 自动运行的剧本。Celestia 自带的 start.cel 就在根目录,默认内容是一个简单的太阳系大环游。你可以编辑它改成自己的自定义启动画面。
2. 课堂教学
把每节课的 Celestia 画面预置成一个 .cel 文件。上课前双击就能直接跳到正确画面,不用每次手动搜天体、调时间、飞过去。
3. 宣传片头
CEL 可以连续跳转多个目标并控制时间和 FOV——配合截图工具可以自动生成一段镜头漫游视频。
CEL 语法基础
CEL 使用指令 + 花括号 + 参数的格式:
指令名 { 参数1 值1 参数2 值2 }
常用指令:
| 指令 | 作用 | 示例 |
|---|---|---|
Select | 选中目标天体 | Select { object "Jupiter" } |
Follow | 切换到跟随模式 | Follow { } |
Free | 回到自由模式 | Free { } |
Center | 把目标居中 | Center { } |
Goto | 飞向目标 | Goto { } |
SetTime | 跳到指定日期 | SetTime { Date "2024 04 08 18 30 00" } |
SetScene | 跳转时间 + 目标 | SetScene { ... }(综合) |
Wait | 等待 N 秒 | Wait { Duration 3 } |
SetFov | 切换 FOV | SetFov { 60 } |
Print | 屏幕上显示一行字 | Print { "日食开始!" } |
运行 CEL 脚本
三种方式:
- 命令行:
celestia --url myscript.cel(启动时直接运行) - Celestia 内:
Ctrl+E打开数据文件编辑器,选择.cel文件 - 自动运行:把脚本内容写进
start.cel
CEL 脚本没有错误提示——写错了 Celestia 只是默默跳过。如果脚本不按预期执行,把每一行单独拿出来测试定位哪一行有问题。