59 lines
2.2 KiB
Markdown
59 lines
2.2 KiB
Markdown
# BladeSmith - 打铁模拟游戏
|
|
|
|
这是一个基于UE5开发的打铁游戏,玩家可以在游戏中体验锻造刀具的真实流程,刀具成型过程通过物理计算还原真实锻造效果,锻造每一把刀具的造型,纹路,性能都是独特的。
|
|
|
|
|
|
### 核心功能
|
|
- **切割**:通过电锯切割锻材,快速成型
|
|
- **加热** 通过温度控制锻材可塑性以及强度
|
|
- **捶打**: 通过锤击改变锻材形状
|
|
- **打磨**: 通过打磨,改变锻材表面光滑度与微调形状
|
|
- **淬火**: 通过淬火,改变锻材强度
|
|
- **强度测试**:提供场地和一些测试道具,测试刀具性能。
|
|
### 技术实现
|
|
- **GeometryScript**: 使用GeometryScript生成动态模型,并不断调整模型的形状
|
|
- **动态材质**: 通过动态材质来表现锻材表面的缺陷(锈蚀,坑洞,划痕,油污,灰尘,加热发光),并通过加工移除这些缺陷
|
|
- **以塑性力学/金属材料学/金属热处理为核心的数据模拟框架**:
|
|
- **应力损毁**: 强度不够,或者内部应力不平衡时,遇到较大冲击,刀具损毁。
|
|
- **数据存储**:刀具数据存储,每一把到存储其独特的数据,来保存其各个属性。
|
|
|
|
### 主要组件
|
|
|
|
1. **AIronBlock** - 铁块Actor
|
|
- 管理变形纹理和Compute Shader
|
|
- 处理锤击碰撞和变形计算
|
|
- 更新动态材质参数
|
|
|
|
2. **UBladeSmithWeaponComponent** - 锤子组件
|
|
- 第一人称锤击交互
|
|
- 射线检测和碰撞处理
|
|
- 音效和动画播放
|
|
|
|
3. **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开发,遵循相应的许可证条款。
|
|
|