FLESH插件 (Fully Locational Evisceration System for Humanoids)
引擎版本要求
- Unreal Engine 5.5.4或更高版本
- 需要启用Niagara和GeometryScript插件
插件安装指南
标准安装
- 将FLESH文件夹复制到您项目的
Plugins
目录中 - 重新生成项目解决方案
- 启动Unreal编辑器,在编辑 > 插件菜单中启用FLESH插件
- 重启编辑器以完成安装
从源代码安装
- 克隆FLESH仓库到您的本地目录
- 将
FLESH
文件夹复制到项目的Plugins
目录 - 右键点击您的
.uproject
文件,选择"生成Visual Studio项目文件" - 打开解决方案并编译
- 启动编辑器并在插件菜单中启用FLESH
依赖项
- GeometryScript插件(用于网格处理)
- Niagara插件(用于粒子效果)
- Chaos物理系统(用于物理模拟)
编辑器使用指南
启动FLESH编辑器
- 在Unreal编辑器中,导航至
窗口 > FLESH编辑器
- FLESH编辑器窗口将打开,包含以下主要面板:
- 节点树视图(左侧):管理所有解剖结构节点
- 3D预览视口(中央):实时预览效果
- 属性面板(右侧):编辑选中节点的属性
- 层编辑器(右侧):管理解剖层级结构
- 物理设置面板(右侧):配置物理模拟参数
- 节点图编辑器(右侧):创建行为逻辑
使用节点树系统
- 节点树视图显示所有解剖结构节点的层级关系
- 右键点击节点树空白处可添加根节点:
- SoftBody节点:创建可变形软体结构
- Anchor节点:创建固定点
- LineChain节点:创建线性约束链
- Tetra节点:创建四面体结构
- Collision节点:创建碰撞体
- 右键点击现有节点可添加子节点或执行其他操作:
- 添加子节点
- 复制/粘贴节点
- 删除节点
- 重命名节点
- 选择节点后,在属性面板中可编辑节点特定属性
配置角色肢解设置
- 在编辑器中点击
导入
按钮加载骨骼网格体 - 在节点树视图中创建和组织解剖结构
- 在属性面板中设置以下参数:
- 切割平面位置和方向
- 断面材质设置
- 物理响应参数
- 血液效果配置
使用布尔切割工具
- 在工具栏中选择
布尔切割工具
按钮打开切割工具面板 - 在3D视口中定位切割平面:
- 使用变换工具调整位置和旋转
- 使用快捷键进行精确调整(Alt+拖拽微调)
- 调整切割参数:
- 切割形状:平面、球体、圆柱体、自定义网格
- 切割精度:低(快速)、中、高(精确但较慢)
- 封盖网格生成:自动、手动、高级(UV映射选项)
- 切割厚度:控制切口边缘厚度
- 材质设置:断面材质、边缘材质
- 点击
预览
按钮查看切割效果(不会修改原始网格) - 点击
应用
按钮将切割永久应用到网格 - 使用
撤销
/重做
按钮管理切割历史
配置内部器官系统
- 在编辑器中切换到
内部结构
标签页 - 使用器官创建工具:
- 器官笔刷:自由绘制内部结构
- 体素雕刻:精确雕刻器官形状
- 解剖图谱:基于医学参考创建精确器官
- 从器官库中拖放预设器官:
- 心脏、肺、肝脏等主要器官
- 血管系统(动脉、静脉)
- 神经系统
- 肌肉组织
- 配置器官物理属性:
- 软体参数:弹性、阻尼、质量
- 破坏阈值:撕裂、穿刺、压碎
- 物理约束:附着点、连接器
- 流体属性:血液流动、粘度
- 设置器官反应系统:
- 物理反应:内脏骨骼晃动物理,基于UE的RigidBody
使用节点图编辑器
- 切换到
节点图
标签页打开可视化编程界面 - 管理图表:
- 创建新图:点击工具栏中的
新建
按钮 - 加载现有图:从项目浏览器中选择
- 保存图表:自动保存或手动点击
保存
- 创建新图:点击工具栏中的
- 添加事件节点(触发器):
OnDamage
:受到伤害时触发OnCut
:被切割时触发OnImpact
:受到冲击时触发OnExposure
:内部结构暴露时触发OnPhysicsCollision
:物理碰撞时触发
- 添加处理节点(行为):
SpawnBlood
:生成血液效果ApplyForce
:施加物理力DeformMesh
:变形网格TriggerAnimation
:触发动画
- 添加控制流节点:
- 条件分支:基于参数选择不同路径
- 循环:重复执行操作
- 延迟:延时执行
- 序列:按顺序执行多个操作
- 设置变量和参数:
- 伤害类型:切割、穿刺、钝器
- 伤害强度:轻、中、重
- 物理参数:力、速度、质量
- 调试和测试:
- 使用
编译
按钮验证图表 - 使用
模拟
按钮在编辑器中测试 - 使用
断点
和观察
调试执行流程
- 使用
使用物理优化工具
- 在工具栏中选择
物理优化
按钮 - 配置性能设置:
- 物理LOD级别:根据距离调整模拟精度
- 子步进设置:平衡精度和性能
- 碰撞优化:简化远距离碰撞
- 使用性能分析器识别瓶颈
- 应用预设配置:
- 高性能:优先考虑帧率
- 平衡:性能和质量平衡
- 高质量:优先考虑模拟精度
API参考
主要组件
UDismembermentComponent
将此组件添加到角色以启用肢解功能。
// 添加到角色蓝图
UDismembermentComponent* DismembermentComp = CreateDefaultSubobject<UDismembermentComponent>(TEXT("DismembermentComponent"));
主要方法
// 在指定位置应用切割
bool ApplyCut(FVector CutLocation, FVector CutNormal, float CutForce = 1000.0f);
// 在指定骨骼处应用切割
bool ApplyCutAtBone(FName BoneName, FVector CutNormal, float CutForce = 1000.0f);
// 设置肢解配置
void SetDismembermentConfig(const FDismembermentConfig& Config);
// 获取当前肢解状态
FDismembermentState GetDismembermentState() const;
USplatterMapComponent
管理角色的伤害纹理系统。
// 添加到角色蓝图
USplatterMapComponent* SplatterMapComp = CreateDefaultSubobject<USplatterMapComponent>(TEXT("SplatterMapComponent"));
主要方法
// 在指定UV位置添加伤害
void AddDamageAtUV(FVector2D UVLocation, float Intensity, EDamageType DamageType);
// 在世界空间位置添加伤害
void AddDamageAtLocation(FVector WorldLocation, float Intensity, EDamageType DamageType);
// 清除所有伤害
void ClearAllDamage();
UBloodSystemComponent
管理血液效果系统。
// 添加到角色蓝图
UBloodSystemComponent* BloodComp = CreateDefaultSubobject<UBloodSystemComponent>(TEXT("BloodSystemComponent"));
主要方法
// 在指定位置生成血液喷溅
void SpawnBloodSpray(FVector Location, FVector Direction, float Intensity);
// 创建血液贴花
void CreateBloodDecal(FVector Location, FVector Normal, float Size);
// 创建血池
void CreateBloodPool(FVector Location, float Size, float LifeTime);
USoftBodyComponent
提供软体物理模拟功能。
// 添加到角色蓝图
USoftBodyComponent* SoftBodyComp = CreateDefaultSubobject<USoftBodyComponent>(TEXT("SoftBodyComponent"));
主要方法
// 初始化软体系统
void InitializeSoftBody(UStaticMeshComponent* TargetMesh, ESoftBodyMethod Method);
// 添加固定点
void AddAnchorPoint(FVector Location, UPrimitiveComponent* AnchorComponent);
// 应用力到软体
void ApplyForceAtLocation(FVector Force, FVector Location);
蓝图API
事件
OnDismemberment
:当肢解发生时触发OnDamageApplied
:当伤害应用到SplatterMap时触发OnBloodSpawned
:当血液效果生成时触发OnOrganExposed
:当内部器官暴露时触发
函数库
FLESHFunctionLibrary
:提供通用功能函数FLESHMathLibrary
:提供物理和数学计算函数FLESHMaterialLibrary
:提供材质处理函数
性能优化指南
推荐设置
-
LOD系统:根据距离调整物理模拟精度
- 近距离:完整物理模拟
- 中距离:简化物理模拟
- 远距离:禁用物理模拟
-
物理优化:
- 调整迭代次数(建议:4-8次)
- 启用空间哈希网格碰撞检测
- 使用SIMD加速物理计算
-
渲染优化:
- 使用较低分辨率的SplatterMap(128x128)
- 限制同时显示的血液粒子数量
- 对远距离对象使用简化材质
常见问题解答
编译错误
问题:编译时出现"GeometryScript未找到"错误
解决方案:确保在项目设置中启用了GeometryScript插件
问题:链接错误与FLESH模块相关
解决方案:确保在项目的Build.cs文件中添加了FLESH模块依赖
运行时问题
问题:切割效果不显示
解决方案:检查切割平面位置和材质设置
问题:物理模拟不稳定
解决方案:增加物理迭代次数或减小时间步长
问题:性能下降严重
解决方案:启用LOD系统并优化物理设置
版本历史
v1.2.0 (2025年4月)
- 添加多线程物理模拟
- 实现空间哈希碰撞检测
- 添加自适应LOD系统
- SIMD优化物理计算
- 修复UE5.5.4兼容性问题
v1.1.0 (2025年3月)
- 添加更多器官类型
- 改进血液效果质量
- 增强材质系统
- 添加预设系统
- 修复各种bug和性能问题
v1.0.0 (2025年2月)
- 初始发布版本
- 基础肢解功能
- 布尔切割系统
- 基本编辑器界面
联系与支持
- 官方文档:[链接待添加]
- 问题报告:[链接待添加]
- 社区论坛:[链接待添加]
许可证信息
FLESH插件采用专有许可证。详情请参阅LICENSE文件。
Description
Languages
C++
99%
C#
1%