bfb9be225639904062cca8474afc1cd3e6909d23
- Task 1: 添加顶点属性层基础结构 - 在头文件中添加顶点属性数组声明 - 添加 InitializeVertexAttributes() 和 ReleaseVertexAttributes() 函数 - 在 InitializeBoxMesh() 中调用初始化 - 在 EndPlay() 中调用释放 - Task 2: 实现顶点属性初始化 - 实现 InitializeVertexAttributes() 函数 - 实现 ReleaseVertexAttributes() 函数 - 使用简单数组存储顶点属性(初始位置、累积应变、硬度系数、打磨度) - Task 3: 添加各向异性流动参数 - 添加 AnisotropyRatio 参数(各向异性比) - 添加 bEnableEdgeConstraint 参数(边缘约束开关) - 添加 EdgeThreshold 参数(边缘阈值) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
BladeSmith - 打铁模拟游戏
这是一个基于UE5开发的打铁游戏,玩家可以在游戏中体验锻造刀具的真实流程,刀具成型过程通过物理计算还原真实锻造效果,锻造每一把刀具的造型,纹路,性能都是独特的。
核心功能
- 切割:通过电锯切割锻材,快速成型
- 加热 通过温度控制锻材可塑性以及强度
- 捶打: 通过锤击改变锻材形状
- 打磨: 通过打磨,改变锻材表面光滑度与微调形状
- 淬火: 通过淬火,改变锻材强度
- 强度测试:提供场地和一些测试道具,测试刀具性能。
技术实现
- GeometryScript: 使用GeometryScript生成动态模型,并不断调整模型的形状
- 动态材质: 通过动态材质来表现锻材表面的缺陷(锈蚀,坑洞,划痕,油污,灰尘,加热发光),并通过加工移除这些缺陷
- 以塑性力学/金属材料学/金属热处理为核心的数据模拟框架:
- 应力损毁: 强度不够,或者内部应力不平衡时,遇到较大冲击,刀具损毁。
- 数据存储:刀具数据存储,每一把到存储其独特的数据,来保存其各个属性。
主要组件
-
AIronBlock - 铁块Actor
- 管理变形纹理和Compute Shader
- 处理锤击碰撞和变形计算
- 更新动态材质参数
-
UBladeSmithWeaponComponent - 锤子组件
- 第一人称锤击交互
- 射线检测和碰撞处理
- 音效和动画播放
-
FDeformationCS - Compute Shader
- GPU并行变形计算
- 基于距离的衰减效果
- 塑性变形模拟
文件结构
Source/BladeSmith/
├── IronBlock.h/cpp # 铁块实现
├── FDeformComputeShader.h/cpp # Compute Shader
├── BladeSmithWeaponComponent.h/cpp # 锤子组件
├── BladeSmithCharacter.h/cpp # 角色类
└── BladeSmith.Build.cs # 模块配置
Shaders/Private/
└── DeformationCS.usf # Compute Shader源码
- 添加新的物理参数(弹性、硬度等)
- 实现更复杂的碰撞检测
- 集成第三方物理引擎
许可证
本项目基于Epic Games的UE5.5开发,遵循相应的许可证条款。
Description
Languages
C++
97.5%
C#
1.4%
C
0.6%
CMake
0.5%