Files
FLESH/Plan.md
2025-04-23 01:18:06 +08:00

6.9 KiB
Raw Blame History

FLESH 插件开发计划

项目概述

FLESH (Fully Locational Evisceration System for Humanoids) 是一个为Unreal Engine 5.5.4开发的高级肢解系统插件,旨在提供真实的软体物理模拟、精确的布尔切割以及复杂的解剖结构模拟。

引擎版本要求

  • Unreal Engine 5.5.4或更高版本
  • 需要启用Niagara和GeometryScript插件

核心功能目标

  • 实时布尔切割系统GPU加速的实时网格切割支持多种切割形状和参数
  • 多层解剖结构系统:骨骼、肌肉、内脏、血管的分层模拟,不同层次的独立物理行为
  • 高级物理模拟:软体物理系统用于内脏和肌肉模拟,骨骼物理系统用于断肢和骨骼碎片
  • 程序化伤口和血液效果动态伤口生成和渲染基于Niagara的高级血液粒子系统
  • 编辑器工具:交互式肢解设计工具,可视化参数调整界面,预设管理和导入/导出功能

已完成工作

  1. 基础架构搭建

    • 创建插件基本结构和模块
    • 设置必要的依赖关系GeometryScript、Niagara、Chaos物理系统
    • 实现基本的编辑器集成
    • 解决UE5.5.4兼容性问题TObjectPtr、enum class、Slate API
  2. 核心系统实现

    • 布尔切割工具BooleanCutTool支持静态网格体、骨骼网格体和程序化网格体的切割
    • 肢解系统DismembermentSystem实现多层肢解和单层肢解
    • 飞溅贴图系统SplatterMapSystem支持多通道伤害纹理
    • 内部器官系统InternalOrganSystem管理不同类型的器官
    • 血液系统BloodSystem实现喷溅效果、血池创建和贴花功能
    • 软体物理工具SoftBodyPhysicsTool实现四种模拟方法和四种网格类型
    • 内脏节点系统VisceraNodeSystem管理内部器官结构
  3. 编辑器功能

    • 骨骼树视图:显示角色的骨骼层次结构
    • 3D预览视口用于预览模型和切割效果
    • 属性编辑面板:调整切割参数、物理响应和血液效果
    • 节点图编辑器:用于可视化编程肢解效果
    • 视口控制功能:重置相机、切换线框模式、显示骨骼
  4. 性能优化

    • 空间哈希网格:将碰撞检测复杂度从 O(n²) 降低到接近 O(n)
    • 自适应LOD系统根据距离调整模拟精度支持四个LOD级别
    • SIMD加速使用向量指令优化数学计算
    • 多线程支持:实现并行粒子更新处理
    • 物理优化器:实现基于距离的物理模拟缩放
  • 多层类型定义

    • 骨骼模型,
    • SoftBody骨骼模型可转换成SoftBody区别在于有单独定义的晃动气球物理 等等),
    • 修改器Line, Plane, Matrix(4*3)AnchorsPhere 等等)
  • 多层层次定义

    • Skin 表层皮肤: SkeletonMesh(支持破环隐藏,表层塌陷 等等)
    • Fat 脂肪层: SkeletonMesh(支持破环隐藏,撕扯物理 等等)
    • Muscle 肌肉层: SkeletonMesh(支持破环隐藏,撕扯物理 等等)
    • Bone 骨架层: SkeletonMesh(简单的Rigidbody 等等)
    • Origan 内脏层: SkeletonMesh(支持晃动气球物理,拉扯物理 等等)

当前状态

  1. 核心功能已完成

    • 布尔切割工具BooleanCutTool

      • 支持静态网格体、骨骼网格体和程序化网格体切割
      • 实现三种封盖网格生成方法(简单、三角扇形、镜嵌式)
      • 支持多层切割Kinder Egg Man方法
      • 实现基于骨骼的引导切割
    • 软体物理系统FLESHSoftBodySystem

      • 支持四种模拟方法Verlet积分、位置基约束、弹簧质点系统和有限元方法
      • 支持四种网格类型:四面体、六面体、表面和链式
      • 实现全面的物理参数控制(重力、阻尼、弹性、体积保持等)
      • 支持自适应时间步长和连续碰撞检测
    • 物理优化器FLESHPhysicsOptimizer

      • 支持五种优化级别(无、低、中、高、极端)
      • 实现四种空间分区方法(无、网格、八叉树、自适应)
      • 支持基于距离的模拟缩放
      • 提供多线程物理计算
  2. 编辑器功能现状

    • 基本的骨骼树视图已实现
    • 3D预览视口支持基本的模型查看和操作
    • 属性编辑面板可以调整基本参数
    • 节点图编辑器框架已实现
    • 需要完善Layer System和Physics Settings界面
  3. 性能优化现状

    • 空间哈希网格已实现,显著减少了碰撞检测的复杂度
    • 自适应LOD系统已实现基本功能支持四个LOD级别
    • SIMD优化已应用于部分物理计算
    • 多线程支持已实现基本框架
    • 需要进一步优化复杂场景下的性能
  4. 存在的问题和挑战

    • 编辑器界面需要更直观和用户友好的设计
    • 高复杂度场景下的物理模拟性能仍需优化
    • 缺少全面的测试和性能基准测试
    • 需要更完善的文档和示例
    • 代码国际化工作仍未完全完成

下一步计划

  1. 编辑器功能完善

    • Layer System实现

      • 完成多层解剖结构编辑界面
      • 添加层级可视化管理
      • 实现层之间的交互和约束
      • 支持层级属性的批量编辑
    • Physics Settings界面完善

      • 添加物理优化级别可视化选择
      • 实现空间分区方法配置
      • 添加LOD距离阈值的直观调整
      • 实现物理参数的实时预览
    • 预设管理系统

      • 实现常用设置的保存和加载
      • 添加预设分类和搜索功能
      • 支持预设导入和导出
      • 实现预设缓存和快速切换
  2. 性能优化深化

    • 布尔切割算法优化

      • 实现基于GPU的并行切割算法
      • 添加切割缓存机制减少重复计算
      • 优化切割面生成算法
      • 实现自适应精度控制
    • 自适应LOD系统完善

      • 添加基于重要性的LOD切换
      • 实现平滑的LOD过渡
      • 添加基于视野的LOD策略
      • 优化LOD切换的内存开销
    • SIMD和多线程优化

      • 将SIMD扩展到所有关键物理计算
      • 实现基于任务的并行化系统
      • 添加智能线程池管理
      • 优化线程同步和数据共享
  3. 功能增强

    • 伤口系统增强

      • 添加多种伤口类型(切割、穿透、烧伤、擦伤)
      • 实现伤口随时间演变的系统
      • 添加基于物理的伤口反应
      • 实现伤口叠加和交互
    • 器官系统扩展

      • 添加更多器官类型(心脏、肺、肠、胃、肝脏)
      • 实现器官特定的物理行为
      • 添加器官损伤和反应系统
      • 实现器官之间的连接和交互
    • 材质和渲染改进

      • 实现高级切割面材质
      • 添加程序化组织纹理生成
      • 改进血液渲染和流动效果
      • 实现次表面散射效果提升组织真实感