Live2D 虚拟主播软件(开源Python)
Live2D 虚拟主播软件(开源Python)
Live2D 虚拟主播软件(开源Python)
Live2D 虚拟主播软件(开源Python)
「python制作的live2d面部捕捉(二开)」
链接:https://pan.quark.cn/s/246074fa79ed
1
Live2D Virtual Streamer
🎭 一个基于 Python 的 Live2D 虚拟主播应用程序
使用 PySide6 + MediaPipe + Live2D 技术,支持实时面部捕捉的虚拟主播系统
功能特性 • 快速开始 • 安装说明 • 使用指南 • 项目结构
</div>📋 目录项目简介功能特性系统要求快速开始详细安装使用指南配置说明项目结构技术架构常见问题开发路线贡献指南许可证致谢🎯 项目简介
Live2D Virtual Streamer 是一个功能完整的虚拟主播应用程序,通过摄像头实时捕捉用户的面部表情和头部动作,并驱动 Live2D 角色模型进行同步表演。该项目集成了:🎨 Live2D 渲染引擎 - 支持 Cubism 2.0 和 3.0/4.0 模型📹 实时面部捕捉 - 基于 MediaPipe Face Mesh 的高精度面部追踪🖥️ 现代化 GUI - 使用 PySide6 构建的优雅用户界面⚙️ 丰富配置选项 - 精细控制模型显示、捕捉参数、性能设置等
该应用程序适合虚拟主播、内容创作者、直播主以及对 Live2D 技术感兴趣的开发者使用。✨ 功能特性🎭 核心功能实时面部捕捉基于 MediaPipe Face Mesh 的高精度面部追踪支持眼睛开合、嘴部动作、头部旋转等多维度参数捕捉可调节的影响系数和平滑因子,实现自然的动作过渡Live2D 模型渲染支持 Cubism 2.0 (.moc) 和 Cubism 3.0/4.0 (.moc3) 模型格式OpenGL 硬件加速渲染,流畅的 60FPS 动画支持模型缩放、位置调整、旋转等变换自动眨眼功能开关设备管理自动扫描和选择摄像头设备支持多种分辨率设置(640x480 到 1920x1080)可调节帧率(30-60 FPS)🖼️ 显示功能透明窗口 - 窗口透明度可调(0-100%)置顶显示 - 窗口始终置顶选项点击穿透 - 窗口可穿透鼠标点击背景设置灰色背景开关自定义图片背景背景图片定时刷新功能画布边框 - 调试边框显示🎛️ 设置面板模型设置加载自定义 Live2D 模型调整模型中心点位置(X/Y)调整模型缩放比例调整画布尺寸设备设置摄像头选择和预览分辨率和帧率设置面部捕捉引擎选择精度模式设置(高/中/低)平滑因子调节眼睛/嘴巴/头部影响系数调节性能设置目标 FPS 设置性能监控显示设置窗口透明度置顶开关点击穿透开关背景设置边框显示通用设置配置重置系统信息查看🎨 用户界面现代化的设置面板界面系统托盘图标支持右键菜单快速访问实时预览功能直观的参数调节滑块中文界面支持💻 系统要求操作系统✅ Windows 10/11 (x64) - 完全支持✅ macOS (11+, ARM64 和 x64) - 完全支持✅ Linux (Ubuntu 20.04+, Arch) - 支持Python 版本推荐: Python 3.10+最低要求: Python 3.8不支持: Python 2.x硬件要求CPU: 双核及以上处理器内存: 4GB RAM 及以上(推荐 8GB+)显卡: 支持 OpenGL 2.0+ 的显卡摄像头: 720p 及以上网络摄像头(推荐 1080p)磁盘空间: 至少 1GB 可用空间(包含模型文件)🚀 快速开始方式一:直接运行(推荐)克隆或下载项目git clone https://github.com/yourusername/bbb-live2d-py-v4.git cd bbb-live2d-py-v4创建 Conda 环境# 创建名为 live2d-mascot 的 conda 环境 conda create -n live2d-mascot python=3.10 # 激活环境 conda activate live2d-mascot安装依赖pip install -r examples/requirements.txt运行程序
Windows:# 双击运行 run.bat # 或命令行运行 python main.py
macOS/Linux:python main.py方式二:从源码构建(高级用户)
如果需要从源码构建 Live2D C 扩展模块:# 1. 安装构建依赖 # Windows: 安装 Visual Studio 2019+ # macOS: 安装 Xcode Command Line Tools # Linux: 安装 build-essential cmake # 2. 构建项目 mkdir build && cd build cmake .. cmake --build . # 3. 安装 Python 包 pip install -e .📦 详细安装Windows 安装安装 Python访问 python.org下载 Python 3.10+ Windows installer安装时勾选 "Add Python to PATH"安装 Git(可选)访问 git-scm.com下载并安装 Git安装 Conda(推荐)下载 Miniconda 或 Anaconda运行安装程序克隆项目并安装依赖git clone https://github.com/yourusername/bbb-live2d-py-v4.git cd bbb-live2d-py-v4 conda create -n live2d-mascot python=3.10 -y conda activate live2d-mascot pip install -r examples/requirements.txt运行程序python main.pymacOS 安装安装 Homebrew(如果未安装)/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"安装 Python 和 Condabrew install [email protected] brew install --cask miniconda克隆项目并安装依赖git clone https://github.com/yourusername/bbb-live2d-py-v4.git cd bbb-live2d-py-v4 conda create -n live2d-mascot python=3.10 -y conda activate live2d-mascot pip install -r examples/requirements.txt运行程序python main.pyLinux 安装安装系统依赖
Ubuntu/Debian:sudo apt update sudo apt install -y python3.10 python3-pip python3-venv git cmake build-essential \ libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender-dev libgomp1
Arch Linux:sudo pacman -S python python-pip git cmake base-devel mesa glu \ glib2 libsm libxi libxrender克隆项目并安装依赖git clone https://github.com/yourusername/bbb-live2d-py-v4.git cd bbb-live2d-py-v4 python3.10 -m venv venv source venv/bin/activate # Linux # 或 source venv/bin/activate.fish # Fish shell pip install -r examples/requirements.txt运行程序python main.py📖 使用指南基本操作启动程序运行python main.py或双击run.bat(Windows)程序启动后会显示 Live2D 角色窗口面部捕捉程序会自动打开默认摄像头面向摄像头,保持适当距离(50-100cm)确保面部光线充足打开设置方法1: 右键点击 Live2D 窗口 → 选择 "设置"方法2: 右键点击系统托盘图标 → 选择 "设置"加载模型打开设置面板 → "模型设置" 标签点击 "浏览" 按钮选择 Live2D 模型文件(.model3.json 或 .model.json)模型会立即加载并显示调整模型位置: 调整 "中心 X" 和 "中心 Y" 滑块大小: 调整 "缩放" 滑块画布: 调整 "画布宽度" 和 "画布高度"调整捕捉参数打开 "设备设置" 标签平滑因子: 控制动作平滑程度(值越大越平滑)眼睛影响: 控制眼睛开合的敏感度嘴巴影响: 控制嘴部动作的幅度头部影响: 控制头部旋转的幅度调整显示打开 "显示设置" 标签透明度: 调整窗口透明度(0-100%)置顶: 勾选 "窗口置顶" 保持窗口在最前穿透: 勾选 "点击穿透" 使鼠标点击穿透窗口背景: 可选择灰色背景或自定义图片背景快捷操作右键菜单(Live2D 窗口)设置 - 打开设置面板重置模型 - 重置模型位置和缩放隐藏窗口 - 隐藏主窗口退出 - 退出程序系统托盘图标双击 - 显示/隐藏窗口右键 - 显示菜单保存配置
程序会自动保存配置到config.json文件,下次启动时会自动恢复上次的设置。⚙️ 配置说明
配置文件位于项目根目录的config.json,包含以下配置项:画布设置"canvas": { "width": 450, // 画布宽度 "height": 700, // 画布高度 "show_border": false, // 是否显示边框 "show_background": false, // 是否显示灰色背景 "show_image_background": false, // 是否显示图片背景 "background_image": "background_images\\xxx.jpg" // 背景图片路径 }性能设置"performance": { "fps": 31 // 目标帧率 }模型设置"model": { "center_x": 0.18, // 模型中心 X 偏移 "center_y": 0.11, // 模型中心 Y 偏移 "scale": 1.2, // 模型缩放比例 "current_path": "..." // 当前模型路径 }设备设置"device": { "camera_id": 0, // 摄像头 ID "camera_width": 1280, // 摄像头宽度 "camera_height": 720, // 摄像头高度 "camera_fps": 60 // 摄像头帧率 }面部捕捉设置"face": { "engine": "MediaPipe Face Mesh", // 追踪引擎 "precision": "高", // 精度模式 "smooth_factor": 0.7, // 平滑因子 (0.0-1.0) "eye_influence": 1.9, // 眼睛影响系数 "mouth_influence": 1.0, // 嘴巴影响系数 "head_influence": 2.0 // 头部影响系数 }显示设置"display": { "always_on_top": true, // 窗口置顶 "click_through": false, // 点击穿透 "opacity": 100, // 不透明度 (0-100) "background_enabled": false, // 背景启用 "background_folder": "background_images", // 背景图片文件夹 "background_refresh_interval": 60 // 背景刷新间隔(秒) }📁 项目结构bbb-live2d-py-v4/ ├── app/ # 主应用程序 │ ├── __init__.py │ └── main_window.py # 主窗口和 Live2D 渲染组件 │ ├── panels/ # 设置面板 │ ├── __init__.py │ ├── settings_panel.py # 设置面板主文件 │ ├── ui/ # UI 组件 │ │ ├── config_manager.py # 配置管理器 │ │ └── base_panel.py # 基础面板类 │ ├── fonts/ # 字体文件 │ └── pages/ # 设置页面 │ ├── about_page.py # 关于页面 │ ├── app_settings_page.py # 应用设置页面 │ ├── device_page.py # 设备设置页面 │ ├── display_page.py # 显示设置页面 │ ├── general_page.py # 通用设置页面 │ └── model_settings_page.py # 模型设置页面 │ ├── examples/ # 示例代码和资源 │ ├── main_*.py # 各种 GUI 框架示例 │ ├── facial_*.py # 面部捕捉示例 │ ├── mediapipe_capture/ # MediaPipe 捕捉模块 │ ├── resources.py # 资源路径管理 │ ├── requirements.txt # Python 依赖 │ └── README.md # 示例说明 │ ├── Resources/ # Live2D 模型资源 │ ├── v2/ # Cubism 2.0 模型 │ │ ├── haru/ │ │ ├── hibiki/ │ │ ├── shizuku/ │ │ └── ... │ └── v3/ # Cubism 3.0/4.0 模型 │ ├── Haru/ │ ├── Mao/ │ ├── llny/ │ └── ... │ ├── Live2D/ # Live2D C/C++ 核心库 │ ├── Core/ # Cubism Core │ ├── Framework/ # Cubism Framework │ ├── Glad/ # OpenGL 加载器 │ └── README.md # Live2D 库说明 │ ├── Wrapper/ # Python C 扩展封装 │ └── (构建生成的 Python 模块) │ ├── package/ # Python 包 │ └── live2d/ │ ├── v2/ # Cubism 2.0 接口 │ │ └── live2d.pyi │ └── v3/ # Cubism 3.0/4.0 接口 │ └── live2d.pyi │ ├── background_images/ # 背景图片文件夹 │ ├── cmake/ # CMake 构建脚本 │ ├── Live2D.cmake │ ├── Live2DViewer.cmake │ └── Wrapper.cmake │ ├── main.py # 程序入口 ├── config.json # 配置文件 ├── CMakeLists.txt # CMake 主配置 ├── run.bat # Windows 启动脚本 ├── wiki.txt # 项目 Wiki ├── 如何运行.txt # 运行说明 └── README.md # 本文件🏗️ 技术架构技术栈架构图┌─────────────────────────────────────────────────────┐ │ 用户界面层 │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ 主窗口渲染器 │ │ 设置面板 │ │ 系统托盘 │ │ │ │ Live2DWidget │ │ SettingsPanel│ │ TrayIcon │ │ │ └──────────────┘ └──────────────┘ └────────────┘ │ └─────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────┐ │ 业务逻辑层 │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ 配置管理器 │ │ 面部捕捉器 │ │ 模型管理器 │ │ │ │ConfigManager │ │FacialCapture │ │ModelManager │ │ │ └──────────────┘ └──────────────┘ └────────────┘ │ └─────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────┐ │ 核心引擎层 │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ Live2D 引擎 │ │ MediaPipe │ │ OpenCV │ │ │ │ live2d.v3 │ │ Face Mesh │ │ VideoCapture│ │ │ └──────────────┘ └──────────────┘ └────────────┘ │ └─────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────┐ │ 系统层 │ │ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │ │ │ OpenGL │ │ 摄像头硬件 │ │ 文件系统 │ │ │ │ 渲染上下文 │ │ Camera Device│ │ FileSystem │ │ │ └──────────────┘ └──────────────┘ └────────────┘ │ └─────────────────────────────────────────────────────┘核心模块说明Live2DWidget继承自QOpenGLWidget负责 OpenGL 上下文初始化和 Live2D 模型渲染处理面部参数到模型参数的映射支持背景、边框等视觉效果MainWindow主应用程序窗口管理系统托盘图标和右键菜单集成面部捕捉定时器协调各个组件的交互SettingsPanel基于对话框的设置面板提供标签页式分类设置实时预览和参数调整配置保存和加载FacialCapture使用 MediaPipe 进行面部检测提取 468 个面部关键点计算眼睛开合、嘴部动作、头部旋转角度应用平滑滤波ConfigManager单例模式的配置管理器JSON 配置文件的读写参数变更通知机制默认值管理❓ 常见问题安装问题
Q: 安装 PySide6 时出现错误?
A: 确保使用最新版本的 pip:python -m pip install --upgrade pip pip install PySide6
Q: MediaPipe 安装失败?
A: 使用指定版本安装:pip install mediapipe==0.10.21运行问题
Q: 启动时提示 "找不到摄像头"?
A: 检查以下项目:摄像头是否被其他程序占用摄像头驱动是否正常安装在设置中尝试切换摄像头 ID
Q: 模型无法加载?
A: 确认:模型文件路径正确模型文件完整(包含所有纹理和资源)模型格式为 Cubism 2.0 或 3.0/4.0
Q: 面部捕捉不准确?
A: 尝试调整:改善光线条件调整与摄像头的距离增大影响系数调整平滑因子
Q: 程序运行卡顿?
A: 优化建议:降低摄像头分辨率降低目标 FPS关闭不需要的背景应用更新显卡驱动
Q: 窗口透明度不生效?
A: 某些桌面环境可能不支持窗口透明:Windows: 通常完全支持macOS: 完全支持Linux: 取决于窗口管理器(KDE、GNOME 支持较好)性能优化
Q: 如何提高性能?
A:使用较低分辨率(640x480 或 720p)降低 FPS 到 30使用更简单的 Live2D 模型关闭背景图片使用 MediaPipe 的中/低精度模式🗺️ 开发路线已完成 ✅基础 Live2D 渲染MediaPipe 面部捕捉PySide6 GUI 界面设置面板系统托盘集成配置持久化透明窗口支持多种显示选项Cubism 2.0/3.0 模型支持计划中 🚧更多面部表情参数(眉毛、脸颊等)录制和回放功能虚拟摄像头输出(OBS 集成)多模型支持动作录制系统自定义表情快捷键皮肤/主题系统多语言支持插件系统自动更新功能未来构想 💡VR/AR 支持全身动作捕捉手势识别语音识别和口型同步AI 对话集成云端模型库移动端远程控制🤝 贡献指南
欢迎任何形式的贡献!如何贡献Fork 本项目创建特性分支 (git checkout -b feature/AmazingFeature)提交更改 (git commit -m 'Add some AmazingFeature')推送到分支 (git push origin feature/AmazingFeature)开启 Pull Request贡献领域🐛 Bug 修复✨ 新功能开发📝 文档改进🎨 UI/UX 优化🌍 国际化翻译⚡ 性能优化🧪 测试用例代码规范遵循 PEP 8 Python 代码规范添加适当的注释和文档字符串保持函数简洁和单一职责编写有意义的提交信息📄 许可证
本项目基于 MIT 许可证开源 - 详见 LICENSE 文件Live2D 许可Live2D 软件:Live2D 许可协议Cubism SDK:Cubism SDK 许可协议使用本项目中的 Live2D 模型请遵循其各自的许可协议第三方库许可
本项目使用的第三方库遵循其各自的许可证:PySide6: LGPLv3MediaPipe: Apache 2.0OpenCV: Apache 2.0NumPy: BSD🙏 致谢核心技术Live2D - 提供了优秀的 2D 模型渲染技术MediaPipe - Google 的强大机器学习解决方案PySide6 - Qt 官方的 Python 绑定OpenCV - 计算机视觉领域的标准库项目灵感
感谢以下项目提供的灵感和参考:live2d-py - 本项目的核心 Live2D Python 封装库Live2D 官方示例项目虚拟主播社区的所有开发者特别感谢感谢所有测试用户的反馈和建议感谢 Live2D 社区提供的技术支持感谢开源社区的贡献者们📞 联系方式问题反馈: GitHub Issues功能建议: GitHub Discussions邮件: [email protected]📸 截图
(待添加:应用程序截图展示)🌟 Star History
如果这个项目对你有帮助,请给我们一个 ⭐️!
⬆ 返回顶部
Made with ❤️ by [Your Name]
</div>