vault backup: 2026-05-03 20:37:58

This commit is contained in:
2026-05-03 20:37:58 +08:00
parent 4fb34c6f38
commit 83502d0874
37 changed files with 2411 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
---
title: Animation
date: 2026-05-03 00:00:00
excerpt: ARC 引擎动画系统修改分类索引
tags:
- ARC
- Animation
rating: ⭐
---
# Animation — 动画系统
返回 [[ARC引擎修改总览]]
## 概述
ARC 引擎的动画系统修改围绕**格斗游戏对帧精确动画的需求**展开。格斗游戏的攻击判定、无敌帧等核心机制要求动画必须以固定帧率精确播放,不能有插值误差。
## 功能列表
| 功能 | 文档 | 说明 |
|------|------|------|
| 常量关键帧压缩 | [[常量关键帧压缩]] | 60fps 帧限动画、4F 间隔校正 |
| FBX 导入扩展 | [[FBX导入扩展]] | RED 动画数据、轮廓线 ID、首末帧处理 |

View File

@@ -0,0 +1,76 @@
---
title: FBX导入扩展
date: 2026-05-03 00:00:00
excerpt: RED 动画数据导入、轮廓线 ID 导入、首末帧处理、XSI 支持
tags:
- ARC
- Animation
- FBX
- Editor
rating: ⭐
---
# FBX 导入扩展
返回 [[Animation]]
## 概述
ARC 引擎大幅扩展了 FBX 导入功能,添加了格斗游戏和卡通渲染所需的专用数据导入支持。
## RED 动画数据导入
`bImportREDAnimationData` 选项启用时:
- 动画以 60fps 帧限模式导入
- 关键帧 snap 到固定帧率网格
- 配合 [[常量关键帧压缩]] 使用
## 首末帧处理
两个独立选项:
- **首帧删除** — 删除动画第一帧DCC 工具常在第 0 帧放置 T-Pose
- **末帧复制** — 将最后一个关键帧复制到动画末尾(确保循环动画平滑衔接)
## 轮廓线 ID 导入
`OutlineIndexUVChannel` 选项指定从哪个 UV 通道导入轮廓线 ID
```
UV Channel 0 → 标准 UV
UV Channel 1 → Lightmap UV
UV Channel N → OutlineID 数据(由美术在 DCC 中绘制)
```
导入后的 OutlineID 存储在网格数据中BasePass 时写入 GBufferD 供 [[RED自定义数据通道]] 使用。
## 法线导入模式扩展
新增法线处理模式:
```cpp
// FBXNIM_ImportNormalsAndComputeNormalsToTangents
// 导入法线 + 从法线计算切线
// (标准 UE4 只有导入法线、计算法线、导入法线和切线三种)
```
## XSI 2015 支持
扩展 FBX 导入器支持 Softimage XSI 2015 格式的 FBX 文件。
## LOD 重导入
骨骼网格和静态网格的 LOD 重导入时保留 OutlineID 数据和 RED 自定义骨骼网格数据。
## 关联文档
- [[常量关键帧压缩]] — 动画压缩方案
- [[RED自定义数据通道]] — OutlineID 的渲染端使用
## 修改文件列表
| 文件 | 修改类型 |
|------|---------|
| `Source/Editor/UnrealEd/Private/Fbx/` (多个文件) | FBX 导入扩展 |
| `Source/Editor/UnrealEd/Public/FbxImporter.h` | 选项定义 |
| `Source/Editor/UnrealEd/Private/SkeletalMeshEdit.cpp` | LOD 重导入 |
| `Source/Editor/UnrealEd/Private/StaticMeshEdit.cpp` | 同上 |

View File

@@ -0,0 +1,56 @@
---
title: 常量关键帧压缩
date: 2026-05-03 00:00:00
excerpt: 60fps 帧限动画和 4F 间隔自动校正,确保格斗游戏帧精确播放
tags:
- ARC
- Animation
rating: ⭐
---
# 常量关键帧压缩
返回 [[Animation]]
## 概述
新增 `AnimCompress_Constant` 压缩方案,将动画关键帧限定在 60fps 的固定帧率网格上。格斗游戏的核心机制(攻击判定、无敌帧、帧优势等)要求动画在每一帧的状态都是确定性的,不能依赖插值。
## 实现
### AnimCompress_Constant
```cpp
// AnimCompress_Constant.h/.cpp
// 常量关键帧插值 — 不做帧间插值,直接使用最近的关键帧
```
核心行为:
- 每帧独立存储(不做 delta 编码)
- 运行时取值不做线性插值,直接 snap 到最近关键帧
- 确保 60fps 下每帧状态与 DCC 工具导出完全一致
### 4F 间隔自动校正
Avatar 动画使用 4 帧间隔15fps 的关键帧),自动校正导入的帧时间到 4F 网格:
```
原始帧: 0, 3, 7, 11, ...
校正后: 0, 4, 8, 12, ... (snap 到 4F 倍数)
```
### AnimCompress_Automatic 扩展
标准 UE4 的 `AnimCompress_Automatic` 也被扩展以支持常量帧模式选项。
## 关联文档
- [[FBX导入扩展]] — `bImportREDAnimationData` 控制导入时的帧限处理
## 修改文件列表
| 文件 | 修改类型 |
|------|---------|
| `Source/Runtime/Engine/Public/Animation/AnimCompress_Constant.h` | **新增** |
| `Source/Runtime/Engine/Private/Animation/AnimCompress_Constant.cpp` | **新增** |
| `Source/Runtime/Engine/Public/Animation/AnimCompress_Automatic.h` | 扩展 |