- 创建详细的README文档,介绍项目功能、架构、使用方法等 - 新增.pyc文件和目录,用于缓存编译后的Python代码 - 添加.lingma规则文件,用于代码格式检查 - 删除ALVR串流处理器代码,准备替换为OpenXR输入处理器 - 新增OpenXR输入处理器代码,处理VR控制器输入
151 lines
4.4 KiB
Markdown
151 lines
4.4 KiB
Markdown
# EG - 3D编辑器与游戏引擎
|
||
|
||
EG是一个功能强大的3D编辑器和游戏引擎,基于Panda3D和PyQt5构建,提供直观的可视化编辑功能和VR支持。该引擎适用于游戏开发、3D可视化和交互式应用程序创建。
|
||
|
||
## 功能特性
|
||
|
||
### 核心功能
|
||
- **3D场景编辑与管理**:完整的场景编辑工具集
|
||
- **模型导入与处理**:支持多种3D模型格式导入
|
||
- **材质系统**:高级材质编辑和管理
|
||
- **光照系统**:环境光、定向光、聚光灯和点光源
|
||
- **相机控制系统**:灵活的相机操作和视角控制
|
||
- **场景保存与加载**:BAM格式场景保存和恢复
|
||
|
||
### 编辑器功能
|
||
- **对象选择与变换**:精确的对象选择和变换工具
|
||
- **坐标轴拖拽控制**:直观的3D变换控制
|
||
- **属性面板编辑**:实时编辑对象属性
|
||
- **场景树管理**:层次化场景结构管理
|
||
- **材质编辑器**:可视化材质编辑
|
||
- **日夜循环系统**:动态光照和环境变化
|
||
|
||
### GUI系统
|
||
- **2D GUI元素**:按钮、标签、输入框、滑块等
|
||
- **3D空间GUI**:3D文本和虚拟屏幕
|
||
- **GUI编辑模式**:可视化GUI布局编辑
|
||
- **事件处理系统**:GUI交互事件响应
|
||
|
||
### VR支持
|
||
- **VR系统集成**:完整的VR环境支持
|
||
- **VR控制器输入处理**:精确的控制器输入识别
|
||
- **ALVR串流支持**:无线VR体验
|
||
- **触觉反馈**:增强沉浸感的触觉反馈
|
||
- **VR手势识别**:自然的手势交互
|
||
|
||
### 脚本系统
|
||
- **Python脚本热重载**:实时脚本更新无需重启
|
||
- **脚本模板创建**:快速创建新脚本
|
||
- **对象脚本管理**:为游戏对象添加行为脚本
|
||
- **脚本调试支持**:内置调试功能
|
||
|
||
### 项目管理
|
||
- **项目创建与保存**:完整的项目管理功能
|
||
- **资源管理**:统一的资源导入和管理
|
||
- **项目打包**:一键打包发布项目
|
||
|
||
## 系统架构
|
||
|
||
### 核心模块
|
||
- `core/world.py` - 核心世界管理,集成所有子系统
|
||
- `core/event_handler.py` - 输入事件处理系统
|
||
- `core/selection.py` - 对象选择和变换系统
|
||
- `core/tool_manager.py` - 编辑工具管理
|
||
- `core/script_system.py` - Python脚本系统
|
||
- `core/vr_manager.py` - VR系统管理
|
||
- `core/vr_input_handler.py` - VR输入处理
|
||
- `core/alvr_streamer.py` - ALVR串流支持
|
||
|
||
### 子系统
|
||
- `scene/scene_manager.py` - 场景管理系统
|
||
- `gui/gui_manager.py` - GUI系统管理
|
||
- `ui/` - 用户界面组件
|
||
- `ui/main_window.py` - 主窗口设置
|
||
- `ui/property_panel.py` - 属性面板
|
||
- `ui/widgets.py` - 自定义UI组件
|
||
- `ui/interface_manager.py` - 界面管理
|
||
- `project/project_manager.py` - 项目管理系统
|
||
|
||
## 快速开始
|
||
|
||
### 系统要求
|
||
- Python 3.7+
|
||
- Panda3D
|
||
- PyQt5
|
||
- 支持OpenGL的显卡
|
||
|
||
### 依赖安装
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
### 运行编辑器
|
||
```bash
|
||
python main.py
|
||
```
|
||
|
||
### 基本操作
|
||
- **鼠标左键**:选择对象
|
||
- **鼠标右键**:旋转视角
|
||
- **鼠标中键**:平移视角
|
||
- **滚轮**:缩放视角
|
||
- **WASD**:在场景中移动
|
||
- **数字键1-0**:切换不同时间点
|
||
- **F键**:聚焦选中对象
|
||
- **Delete键**:删除选中对象
|
||
|
||
## 编辑器使用指南
|
||
|
||
### 导入模型
|
||
1. 点击"文件" > "导入模型"
|
||
2. 选择支持的3D模型文件
|
||
3. 调整模型位置和属性
|
||
|
||
### 场景编辑
|
||
1. 使用选择工具选中对象
|
||
2. 通过属性面板修改对象属性
|
||
3. 使用变换工具(移动、旋转、缩放)调整对象
|
||
|
||
### GUI创建
|
||
1. 进入GUI编辑模式
|
||
2. 选择GUI元素类型
|
||
3. 点击场景放置GUI元素
|
||
4. 通过属性面板调整GUI属性
|
||
|
||
### VR模式
|
||
1. 连接VR设备
|
||
2. 点击"VR" > "启用VR模式"
|
||
3. 使用VR控制器进行交互
|
||
|
||
### 脚本编辑
|
||
1. 点击"脚本" > "创建新脚本"
|
||
2. 编写Python脚本代码
|
||
3. 将脚本附加到场景对象
|
||
|
||
## 开发指南
|
||
|
||
### 架构概述
|
||
EG采用模块化设计,核心功能通过`MyWorld`类集成各个子系统。所有子系统都通过代理方法暴露功能,使API保持一致性。
|
||
|
||
### 添加新功能
|
||
1. 在相应目录下创建新模块
|
||
2. 在`MyWorld`类中添加代理方法
|
||
3. 通过子系统管理器集成功能
|
||
|
||
### 扩展VR功能
|
||
1. 修改`vr_manager.py`添加新功能
|
||
2. 更新`vr_input_handler.py`处理新输入
|
||
3. 在`alvr_streamer.py`中添加串流支持
|
||
|
||
### 创建自定义工具
|
||
1. 在`tool_manager.py`中添加新工具类型
|
||
2. 实现工具的交互逻辑
|
||
3. 在UI中添加工具选择按钮
|
||
|
||
## 贡献
|
||
|
||
欢迎提交Pull Request或Issue报告问题。贡献前请先查看贡献指南。
|
||
|
||
## 许可证
|
||
|
||
MIT License |