AR Film Creator
将捆绑的项目作为新项目的唯一真实来源。保持相机、追踪、几何体、遮挡和服务器流水线稳定,除非用户明确请求更改交互。
路由请求
- 对请求进行分类:
- 新项目:实例化
assets/browser-ar-template。 - 仅样式更改:编辑
src/filter-presets.js。 - 行为更改:首先编辑预设几何体或运动值。
- 引擎更改:仅在预设字段无法表达请求时编辑
src/app.js。
- 新项目:实例化
- 对于每次样式或行为更改,请阅读
references/preset-contract.md。 - 当将视觉需求转换为参数时,请阅读
references/filter-recipes.md。 - 在更改追踪、几何体、渲染顺序、遮罩、启动或文件结构之前,请阅读
references/architecture.md。
创建项目
运行:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/New-ArFilmProject.ps1 -Destination "<absolute-output-path>"
要求目标路径不存在或为空。不要隐式覆盖现有项目。
自定义样式
- 保留一个现有预设作为已知良好的回退方案。
- 在
src/filter-presets.js中添加一个新的唯一 kebab-case 预设 ID。 - 只更改
references/preset-contract.md定义的字段。 - 保持正好三个图层定义,除非用户明确请求引擎级别的层数更改。
- 通过
?preset=<预设-id>测试预设。 - 确认未知的预设 ID 会回退到
transparent-film。
保护引擎不变量
- 保留 MediaPipe Tasks Vision 的固定 URL 和模型回退行为。
- 保留两只手的屏幕位置排序。
- 保留控制行
4、8、12和20。 - 保留相邻表面之间的共享边界。
- 允许折叠和扭曲过渡;不要重新引入自相交冻结。
- 保留合成顺序:背景、胶片、手/前臂、控件。
- 保留 localhost 启动和相机权限错误处理。
- 保持派生项目无构建过程,除非用户明确请求其他技术栈。
验证
运行:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/Test-ArFilmProject.ps1 -ProjectPath "<absolute-project-path>"
然后启动本地服务器并验证:
- 根路径、CSS、
app.js和filter-presets.js返回 HTTP 200。 - 模型加载完成。
- 演示模式渲染出四条弯曲的控制线和三个连接的表面。
- 请求的预设视觉效果明显不同。
- 扭曲动画在两个弯曲方向上都正常进行,不会冻结。
- 重置和平滑控件正常工作。
- 浏览器控制台没有项目错误。
当可用时,使用真实的浏览器自动化工具。将 MediaPipe 内部的“OpenGL 错误检查已禁用”警告视为信息性消息,除非伴随有实际错误。
报告
报告:
- 添加的预设或引擎行为;
- 更改的文件;
- 如何选择和使用的样式;
- 完成的验证;
- 仍然需要用户进行的相机或硬件检查。