Skip to content

ChenxingM/sts-rust

Repository files navigation

中文 | English | 日本語

STS 3.0

Rust 重构的STS摄影表编辑器

功能特性

  • 快速轻量:优化后的可执行文件约 3MB,内存占用极小
  • 多格式支持:支持 STS、CSV、XDTS、TDTS、SXF 格式读写,以及 AE 关键帧导出
  • 主题设置:支持浅色/深色/跟随系统主题切换
  • AE 关键帧导出:可复制关键帧数据到剪贴板或导出文件,方便粘贴到 After Effects
  • 灵活的输入方式:Enter 键可配置跳步(/ 减少,* 增加),自动填充跳过的单元格
  • 多文档编辑:可同时打开最多 100 个文档
  • 批量编辑:支持重复选区、反转选区、序列填充等批量操作
  • 偏好设置:CSV 编码、AE 关键帧版本、自动保存等可配置

使用方法

创建新时间表

  1. 点击 文件 -> 新建 或按 Ctrl+N(macOS: Cmd+N
  2. 配置参数:
    • 名称:时间表名称
    • 图层数:图层数量(1-1000)
    • 帧率:帧速率(24 或 30)
    • 每页帧数:每页显示的帧数(12-288)
    • 时长:总时长,格式为秒+帧(例如:6s + 0k)
  3. 点击 确定 创建

编辑单元格

  • 点击 单元格开始编辑
  • 输入 数字并按 Enter 向下移动(按跳步数)
  • 方向键 在编辑时导航
  • 空输入 + Enter 复制上方单元格的值
  • Esc 取消编辑

选择与剪贴板

  • 拖动 选择多个单元格
  • 右键 打开上下文菜单(复制、剪切、粘贴、删除、重复、反转、序列填充、复制 AE 关键帧)
  • 支持系统剪贴板(与 Excel 兼容的 TSV 格式)

批量操作

  • 重复选区:将选中区域重复 N 次或填充到末尾
  • 反转选区:反转选中的动画序列
  • 序列填充:用递增数字填充帧(例如:1, 2, 3, 4...)

键盘快捷键

快捷键 macOS 功能
Ctrl+N Cmd+N 新建文档
Ctrl+O Cmd+O 打开文件
Ctrl+S Cmd+S 保存文件
Ctrl+Z Cmd+Z 撤销
Ctrl+C Cmd+C 复制
Ctrl+X Cmd+X 剪切
Ctrl+V Cmd+V 粘贴
Delete Delete 删除选中内容
Enter Enter 确认编辑并向下移动(按跳步数)
Tab Tab 切换到下一图层
方向键 方向键 导航单元格
/ / 减少跳步数
* * 增加跳步数
Esc Esc 取消编辑

支持的文件格式

格式 导入 导出 说明
STS Y Y ShiraheiTimeSheet 二进制格式(Shift-JIS 编码,最多 255 图层 / 65535 帧)
CSV Y Y 多编码支持(UTF-8、GBK、Shift-JIS)
XDTS Y - XML 格式
TDTS Y - XML 格式
SXF Y (beta) - 二进制格式(可读取,但解析结果存在错误)
AE Keyframe - Y After Effects 关键帧数据(剪贴板或文件导出)

应用本身支持最多 1000 个图层100,000 帧,但 STS 格式受限于 255 图层 / 65535 帧。

编码处理

使用 encoding_rs 库处理 Shift-JIS 编码:

  • 读取时自动解码为 UTF-8
  • 保存时转换回 Shift-JIS
  • 兼容日文图层名称

构建

# 调试
cargo build

# 发布
cargo build --release

发布版本的可执行文件:

  • Windows: target/release/sts.exe
  • macOS / Linux: target/release/sts

依赖项

  • egui 0.29 - GUI 框架
  • eframe 0.29 - 原生窗口包装器
  • serde / serde_json - 序列化
  • encoding_rs - Shift-JIS 编码/解码
  • rfd - 原生文件对话框
  • anyhow / thiserror - 错误处理
  • csv - CSV 读写
  • regex - 正则表达式
  • image - 图标处理
  • dirs - 跨平台配置目录
  • winreg - Windows 注册表(仅 Windows)

系统要求

  • Windows: Windows 7 或更高版本
  • macOS: macOS 10.13 或更高版本
  • Linux: 现代 Linux 发行版(需要 X11 或 Wayland)

许可证

Apache-2.0

贡献

欢迎提交问题和拉取请求!

开发环境设置

# 克隆仓库
git clone https://github.com/ChenxingM/sts-rust.git
cd sts-rust

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 运行测试
cargo test

# 启动开发版本
cargo run

代码风格

  • 使用 rustfmt 格式化代码
  • 使用 clippy 检查代码质量
  • 编写测试覆盖关键功能
cargo fmt
cargo clippy
cargo test

致谢

  • 原始 ShiratakeTimeSheet 作者
  • egui GUI 框架

联系方式

如有问题或建议,请提交 Issue 或 Pull Request。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors