Skip to content

feirate/S-Drama

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

S-Drama - 轻量级动画短片引擎

License: MIT Python 3.7+

S-Drama 是一款基于 "剧本驱动动画生成" 的轻量级动画短片引擎。通过智能剧本解析和自动动画生成技术,让用户能够轻松地将文字剧本转换为精美的动画短片。

🎯 核心特性

  • 📝 智能剧本解析 - 支持Markdown、Word文档等多种格式
  • 🎨 自动风格识别 - 智能识别童话、现代、悬疑等故事风格
  • 🎬 动画自动生成 - 根据剧本内容自动生成动画序列
  • 💫 丰富视觉特效 - 包含光照、粒子、摄像机运动等效果
  • 🎮 实时预览播放 - 支持交互式动画预览和调试
  • 🌐 多格式输出 - 输出JSON动画数据、HTML预览、截图等

🏗️ 项目结构(Google 开发规范)

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.txt

运行示例

1. 基础文本Demo

cd examples/basic
python3 demo.py

2. 可视化Demo

cd examples/visual  
python3 run_complete_demo.py

3. 增强版Demo(推荐)

cd 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 - 退出播放器

🤝 贡献指南

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🔗 相关链接


S-Drama - 让每个人都能成为动画导演! 🎬✨

About

S-Drama 短剧引擎 ai 全栈

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages