Skip to content

Repository files navigation

Live2D Recorder

一个基于 React + Tauri 的 Live2D 模型录制工具,支持动作和表情控制。

功能特性

🎭 Live2D 模型显示

  • 支持 Live2D 模型加载和显示
  • 基于 PIXI.js 的高性能渲染
  • 响应式布局,自动适应窗口大小

🎬 动作控制

  • 点击模型: 随机播放动作
  • 动作分类: 按类型分组显示(如 angry、smile、thinking 等)
  • 动作列表: 包含以下动作类型:
    • angry - 愤怒表情动作
    • smile - 微笑表情动作
    • thinking - 思考动作
    • cry - 哭泣动作
    • sad - 悲伤动作
    • serious - 严肃表情动作
    • shame - 害羞动作
    • surprised - 惊讶动作
    • wink - 眨眼动作
    • bye - 告别动作
    • kandou - 感动动作
    • kime - 决定动作
    • nf/nnf - 各种面部表情动作
  • 动画参数控制: 支持设置动画索引和优先级
    • 动画索引: 控制动作的播放顺序
    • 优先级: 控制动作的播放优先级(0-10)

😊 表情控制

  • 表情切换: 支持多种表情状态
  • 实时预览: 显示当前使用的表情
  • 表情分类: 按类型分组,便于选择

🎛️ 控制面板

  • 可折叠: 支持隐藏/显示控制面板
  • 分类显示: 动作和表情按类别分组
  • 状态显示: 实时显示当前动作和表情
  • 美观界面: 半透明黑色主题,现代化设计
  • 参数控制: 动画索引和优先级设置

🎥 智能录制系统

  • 透明背景录制: 支持VP9/VP8编码的WebM格式
  • 模型边框录制优化: 只录制模型范围内的内容,显著提升性能
  • 录制区域可视化: 可显示录制边框,实时预览录制范围
  • 自动边框计算: 根据模型尺寸和位置自动计算最优录制区域
  • 多格式导出: 支持WebM和MOV格式导出
  • 时间线同步: 录制与时间线播放完全同步

使用方法

启动应用

# 开发模式
npm run dev

# 或使用 Tauri 开发模式
npm run tauri:dev

控制操作

  1. 显示/隐藏控制面板: 点击右上角的控制面板按钮
  2. 播放动作: 点击控制面板中的动作按钮
  3. 切换表情: 点击控制面板中的表情按钮
  4. 随机动作: 直接点击 Live2D 模型

录制功能

实时录制(下载 WebM)

  1. 在时间线中添加动作/表情/音频片段
  2. 点击开始录制,时间线会同步播放,动画实时被捕获
  3. 录制结束后点击下载 WebM 保存文件,也可点击转 MOV 转换为 ProRes 4444 格式

实时录制使用浏览器 MediaRecorder + canvas.captureStream() 捕获,录制时长等于动画时长,帧率受运行时性能影响。

离线导出(更高质量)

  1. 在时间线中添加动作/表情/音频片段
  2. 点击离线导出 WebM,程序会逐帧渲染并截图,进度条显示导出进度
  3. 导出完成后点击下载 WebM 保存文件

离线导出逐帧调用 applyTimelineAtTime(t) 精确定位每一帧,PNG 序列由 Rust 后端 FFmpeg 合成,不受实时性能限制,不会丢帧,音频按帧边界精确对齐。导出速度比实时录制慢,但质量更稳定。

两种方式对比

实时录制 离线导出
速度 与动画等长 慢于实时(逐帧渲染)
帧率稳定性 受性能影响,可能丢帧 每帧完整渲染,不丢帧
音频同步 Web Audio API 实时播放 FFmpeg 按帧精确对齐
适用场景 快速预览导出 最终成品导出

模型文件结构

public/model/
├── anon/                    # 爱音角色模型
│   ├── model.json         # 模型配置文件
│   └── live2d/
│       └── chara/
│           ├── 037_casual-2023_rip/    # 模型文件
│           └── 037_general_rip/        # 动作和表情文件
└── soyo/                   # 其他角色模型

技术栈

  • 前端: React 19 + TypeScript
  • 渲染引擎: PIXI.js 6.5
  • Live2D: pixi-live2d-display
  • 桌面应用: Tauri 2.0
  • 构建工具: Vite 6.3
  • 录制技术: MediaRecorder API + VP9/VP8编码

开发说明

添加新模型

  1. 将模型文件放入 public/model/ 目录
  2. 确保 model.json 文件包含正确的动作和表情配置
  3. Live2DView.tsx 中更新模型路径

自定义动作和表情

  • 动作文件格式: .mtn 文件
  • 表情文件格式: .exp.json 文件
  • model.json 中配置 motionsexpressions 字段

录制优化

  • 模型边框录制: 通过 createModelFrameRecorder 实现区域录制
  • 性能提升: 只录制模型范围内的内容,减少文件大小和处理时间
  • 动态边框: 支持录制过程中动态调整录制区域
  • 边框可视化: 可选的录制区域边框显示

许可证

MIT License

About

基于tauri和pixi的透明live2d视频生成器,支持webgal

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages