S-Drama 是一款基于 "剧本驱动动画生成" 的轻量级动画短片引擎。通过智能剧本解析和自动动画生成技术,让用户能够轻松地将文字剧本转换为精美的动画短片。
- 📝 智能剧本解析 - 支持Markdown、Word文档等多种格式
- 🎨 自动风格识别 - 智能识别童话、现代、悬疑等故事风格
- 🎬 动画自动生成 - 根据剧本内容自动生成动画序列
- 💫 丰富视觉特效 - 包含光照、粒子、摄像机运动等效果
- 🎮 实时预览播放 - 支持交互式动画预览和调试
- 🌐 多格式输出 - 输出JSON动画数据、HTML预览、截图等
S-Drama/
├── src/ # 源代码
│ ├── core/ # 核心模块
│ │ ├── enhanced_script_parser.py # 增强剧本解析器
│ │ └── enhanced_animation_generator.py # 增强动画生成器
│ ├── demo/ # Demo组件
│ │ ├── script_parser.py # 基础剧本解析
│ │ ├── animation_generator.py # 基础动画生成
│ │ ├── visual_renderer.py # 可视化渲染器
│ │ ├── enhanced_visual_renderer.py # 增强可视化渲染器
│ │ └── screenshot_generator.py # 截图生成器
│ └── config/ # 配置文件
│ └── paths.py # 路径配置
├── examples/ # 示例和Demo
│ ├── basic/ # 基础示例
│ │ └── demo.py # 基础Demo
│ ├── visual/ # 可视化示例
│ │ ├── demo_visual.py # 可视化Demo
│ │ └── run_complete_demo.py # 完整可视化Demo
│ └── enhanced/ # 增强示例
│ ├── demo_enhanced.py # 增强Demo
│ ├── run_enhanced_demo.py # 完整增强Demo
│ └── test_enhanced.py # 增强功能测试
├── docs/ # 文档
│ ├── design/ # 设计文档
│ │ ├── S-Drama 产品计划书.md
│ │ ├── 项目框架设计.md
│ │ ├── 项目概览.md
│ │ └── 发布计划.md
│ ├── development/ # 开发文档
│ │ ├── 开发计划.md
│ │ ├── Demo使用说明.md
│ │ └── 增强功能说明.md
│ ├── test/ # 测试文档
│ │ └── 测试计划.md
│ └── scripts/ # 剧本文件
│ └── examples/ # 示例剧本
│ ├── demo_script.md # Demo剧本
│ └── The Princess and Pea.docx # 童话剧本
├── build/ # 构建输出(Google规范)
│ ├── outputs/ # 构建产物
│ │ ├── *.json # 动画数据
│ │ ├── *.html # HTML预览
│ │ └── screenshots/ # 关键帧截图
│ ├── artifacts/ # 发布产物
│ └── cache/ # 构建缓存
├── assets/ # 资源文件
├── tests/ # 测试文件
├── tools/ # 工具脚本
└── scripts/ # 项目脚本
└── update_paths.py # 路径更新脚本
- Python 3.7+
- pygame >= 2.0.0
- python-docx
- 其他依赖见
requirements-demo.txt
pip install -r requirements-demo.txtcd examples/basic
python3 demo.pycd examples/visual
python3 run_complete_demo.pycd examples/enhanced
python3 run_enhanced_demo.py- ✅ Markdown剧本解析
- ✅ 基础动画生成
- ✅ 文本时间轴输出
- ✅ 实时动画播放器
- ✅ 关键帧截图生成
- ✅ HTML动画预览
- ✅ 交互式控制(播放/暂停/调速等)
- ✅ Word文档智能解析
- ✅ 故事风格自动识别(童话/现代/悬疑)
- ✅ 丰富视觉特效(光照/粒子/光环)
- ✅ 智能摄像机运动
- ✅ 角色特性增强
- ✅ 童话风格专用渲染器
项目采用 Google 开发规范:
src/- 所有源代码examples/- 示例和演示代码docs/- 所有文档(设计/开发/测试)build/- 构建输出(替代原output/)tests/- 测试代码scripts/- 项目脚本
使用 src/config/paths.py 统一管理所有路径:
from config.paths import *
# 获取剧本文件
script_file = str(PRINCESS_PEA_SCRIPT)
# 获取输出路径
output_file = get_output_path('animation.json')
# 确保构建目录存在
ensure_build_dirs()将剧本文件放入 docs/scripts/examples/ 目录,支持:
.md- Markdown格式.docx- Word文档.txt- 纯文本
运行Demo后,所有输出文件保存在 build/outputs/ 目录:
build/outputs/
├── enhanced_script_data.json # 剧本解析数据
├── enhanced_animation.json # 动画序列数据
├── enhanced_animation_preview.html # HTML预览页面
├── compatible_animation.json # 兼容格式数据
└── screenshots/ # 关键帧截图
├── frame_01_0.0s.png
├── frame_08_35.3s.png
└── ...
可视化播放器支持以下快捷键:
空格- 播放/暂停↑/↓- 调整播放速度←/→- 快进/快退R- 重新播放Q- 退出播放器
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
S-Drama - 让每个人都能成为动画导演! 🎬✨