elkraneo/RCPComponentDiffFixtures

GitHub: elkraneo/RCPComponentDiffFixtures

用于逆向工程 Reality Composer Pro 组件字段映射的 USDA fixture 数据集,通过差异对比提供 UI 控件到文件结构的确证映射。

Stars: 1 | Forks: 0

# 组件字段探索 Fixtures 本仓库是一个用于逆向工程 Reality Composer Pro (RCP) Inspector 字段的 fixture 实验室。 其目的是通过为每个组件/字段变更存储小型的、受控的 `.usda` 快照,然后对比这些快照以识别以下内容,从而使字段行为**可观察且可重复**: - 实际序列化的字段键/路径 (key/path) - 具体数据类型(bool, token, float, vector, asset reference 等) - 当单个 Inspector 值发生变化时,RCP 如何重写相邻数据 ## 为什么存在这个仓库 在构建 Deconstructed 的 Inspector 时,猜测 schema 细节是不可靠的。RCP 可以规范化值、重新排序部分内容、输出默认值以及改变相关字段。这套 fixture 集为我们提供了从 UI 控件到 USDA 结构的基于证据的映射。 简而言之:这个仓库是文章和实现工作所使用的基准真相 (ground truth)。 ## 这里面有什么 - `Package.realitycomposerpro/`: - RCP 文档元数据(`ProjectData/main.json`,工作区状态) - `Sources/RCPComponentDiffFixtures/RCPComponentDiffFixtures.rkassets/`: - 按组件和字段变体分组的 Fixture USDA 文件 - 典型模式: - `BASE.usda` = 组件的基线 - 变体文件(`Intensity.usda`、`MaskAll.usda` 等) = 一个受控的变更 - 有时有 `ALL.usda` = 组合状态参考 示例: - `Directional Light/BASE.usda` vs `Directional Light/Intensity.usda` - `Collision/Filter/Mask/Default.usda` vs `Collision/Filter/Mask/All.usda` - `Physics Body/Mode/Static.usda`、`Dynamic.usda`、`Kinematic.usda` ## Fixture 方法 1. 从已知的基线(`BASE.usda`)开始。 2. 在 RCP 中更改一个 Inspector 字段。 3. 保存并导出结果 USDA 快照。 4. 对比基线与变体。 5. 记录发现的映射(字段路径、类型、值编码、副作用)。 ## 这对 Deconstructed 有何帮助 - 基于真实数据驱动 Inspector 字段类型建模。 - 防止解析器/编辑器逻辑更改时出现回归。 - 暴露我们需要为兼容性保留的 RCP 写入时转换。 - 为文档和文章参考提供可复现的示例。 ## 注意事项 - 文件有意包含从真实工具输出中捕获的边缘和不一致命名情况。 - 将文件系统 fixtures 视为事实来源;文档索引(`main.json`)有用但不是存在的权威依据。
标签:3D图形编程, Apple visionOS, Augmented Reality, Homebrew安装, iOS开发, Reality Composer Pro, Schema Discovery, SOC Prime, USDA, Xcode, 云资产清单, 差分分析, 序列化, 开发工具, 文件格式分析, 格式映射, 测试固件, 空间计算, 逆向工程