能力边界
有意不做的、还没做的、往返带不走的,以及 1.0.0 的已知问题清单 —— 附带它们各自会怎么显形。
这一页把「DreamFX 不做什么」写清楚。原则只有一条:每一处降级都有诊断,绝不静默。 所以下面每一条都配着它显形的方式。
有意不做
| 为什么 | |
|---|---|
| Scratch Pad | scratch pad 脚本是内嵌在资产里的图,没有稳定名字可以寻址 |
| 把模块 body 铺成节点图 | .dfm 的 body 落成一个 custom HLSL 节点。铺开是「二级」,那是 DreamShader 已经背着的约 1.3 万行的问题再来一遍 |
| 通用表达式编译器 | 内联表达式只有算术和一张短白名单(DFX4031)。要更多请写 hlsl { } 或 .dfm |
通过 from 的隐式原生继承 | from 在重建时拷贝并合并 .dfe 源码。原生资产继承使用 inherits 显式声明 |
MaterialParam | 保留语法,未实现(DFX5093) |
#Region 到达资产 | 外部编辑 API 没有给栈加注记的函数(L5) |
Group 和 SortPriority 填充资产的 user 参数层级。前者那条
DFX5099 限制仍为旧链接保留记录,但在已发布的实现里
不再是限制。见系统参考。
还没做
| 现在会怎样 | |
|---|---|
| GPU/CPU 条件分支 | 不表达 |
| Scalability 条件逻辑 | 不表达(emitter 的 QualityLevelMask 是支持的) |
.dfm 静态开关的编译期折叠 | 接受、校验,然后按普通输入 lower(DFX5102) |
| 曲线数据接口的完整可读语法 | 键之外还有配置时退回逐字 JSON |
通用 stage 也支持派发尺寸和粒子迭代过滤器。它们支持的参数列在 系统参考;自定义 C++ stage 类仍是一个缺口。
往返带不走的
DFX8014: 原生 emitter 继承的限制。 系统导出会保留
inherits 并锁定父版本,对完整栈/renderer 覆盖、事件/stage 快照以及不可用的父基线
都有已记录的限制。独立 .dfe 导出仍会摊平父关系。见原生 emitter 继承。
DFX8015: 一个 emitter 上的第二个事件处理器。 一个可表达;多的不行。独立 .dfe
导出也带不走处理器的 Source,因为那里没有兄弟 emitter 可以命名。
DFX8016: 自定义 C++ stage 类。 普通 stage 导出成 Stage name(...);类不是
引擎通用 stage 的带不走。
还有两类不报码但值得知道:
- renderer 列表元素的其余字段。
Meshes写成路径数组,而每个 元素其实是个结构体 —— 网格的逐元素轴心、缩放、LOD 范围没有语法。会因此丢东西的导出 把它写进文件头。 - 内联表达式不按原样回来。 它们以等价的
hlsl { }块回来。往返是语义上的,不是文本上的。
1.0.0 已知问题
- 嵌套 dynamic input 节点上深度 > 1 的链接型宣言开关未防护 —— 引擎缺陷可达,但语料零命中; 计划在 1.0.x 把守卫扩到该深度。
- emitter 级
FixedBounds未携带(系统级已携带)。 bGpuAlwaysRunParticleUpdateScript未携带。- 数据接口配置以原样 JSON 承载(可读语法挂起);裸
DI<T>加链接的形态下, 残留默认实例的计数不稳 —— 那是判据噪音,不是数据丢失。 - UE 5.8.1 的 refPath 导入回归 —— 引擎 bug,已用
NormalizeObjectReferences绕过,5.8.2 复测后拆除。 - L4 画面对比是人工可选步骤(OBS 配方已验证,未脚本化)。
- 长尾未做栏:自定义 C++ stage 类、参数驱动迭代次数等 —— 缺口头会点名,语料里没有实例。
这些不是缺陷,是环境要求
警告:
宿主项目必须启用与创作项目相同的内容插件(如
NiagaraFluids)。插件没挂载时模块探针没有基线,引用其模块的源码会以缺口或编译错 的形式显形。一整族解析不了的名字共享同一个前缀 = 挂载点没挂,不是拼写错。
警告:
写包的命令要关编辑器(
build、corpus、mirror-diff、decompile-all)。两个进程存同一批包会静默竞争。
警告:
重建一个系统之前先让它的实例消失。 热替换期间活着的
NiagaraActor可能 看到建到一半的 renderer 布局,然后在渲染 worker 上断言。这是引擎侧的竞态,DreamFX 挡不住。
自己量自己的覆盖率
别人的数字回答不了你的问题:
pwsh -File Plugins/DreamFX/.skill/dfx.ps1 coverage它按特性分桶报告一整棵内容树里有多少能被表达。展开见 往返与等价。