3.7 KiB
3.7 KiB
UE5 客户端 — 待供应商回复的 TODO
以下两个问题答复后,对应代码可在一天内完成。 其余所有代码均已写好,不依赖这两个答案。
TODO-1:视频处理器输入格式
等待信息:LED 屏配套视频处理器(如诺瓦星云)接受什么 3D 信号格式?
| 可能答案 | 对应操作 |
|---|---|
| Side-by-Side(左右并排) | StereoRenderingManager.cpp 里 EnableStereo 的 SideBySide 分支已写好,直接启用 |
| Top-Bottom(上下叠加) | 同上,切换到 TopBottom 分支 |
| 行交错(行偏振直驱) | 需要新写一个 PostProcess Material,把左右眼奇偶行合并输出 |
| 私有协议 | 需要供应商提供 UE5 插件或信号格式文档 |
代码位置:
ue_client/Source/PlanetClient/StereoRenderingManager.h — 第 8-18 行 TODO 注释
ue_client/Source/PlanetClient/StereoRenderingManager.cpp — EnableStereo() 函数
需要同时确认:
- 视频处理器品牌和型号
- 屏幕物理分辨率(用于配置 UE5 输出分辨率)
- 3D 启用时是否需要特殊信号时序(如 3D Frame Packing)
TODO-2:动捕角色接入
已确认:
- 本周末前:供应商交付含动捕插件 + 3D 角色(已配好绑定和重定向)的基础 UE5 工程
- 接入两台摄像头,4080 以上显卡即可直接运行动捕调试
- 之后尽快:动画资产单独交付,复制到工程 Content/ 目录即可直接调用
- 我们的任务:把他们工程内容迁移进
ue_client/,把角色动作映射到地球操作
阶段 A:拿到基础工程后(本周末)
迁移步骤:
-
迁移动捕插件
- 从供应商工程
Plugins/拷到ue_client/Plugins/ PlanetClient.uproject的Plugins数组添加插件条目(Enabled: true)PlanetClient.Build.cs的PublicDependencyModuleNames加插件模块名
- 从供应商工程
-
迁移角色
- 把角色 Blueprint、动画、骨骼网格从供应商
Content/拷到ue_client/Content/ - 在关卡里放置角色 Actor,确认摄像头接入后能正常驱动
- 把角色 Blueprint、动画、骨骼网格从供应商
-
接入动作触发(关键,看到工程后确认方式):
| 需要确认的内容 | 用途 |
|---|---|
| 角色动作怎么暴露给外部? | Blueprint Custom Event / AnimNotify / 骨骼姿态变量? |
| 手势集合有哪些? | 填写 EMotionGesture 枚举,配置 FMotionActionMapping |
| 是否持续输出旋转增量? | 旋转地球用"持续增量"还是"离散手势触发" |
插件模块名称(ModuleName) |
加入 Build.cs 依赖 |
拿到工程后(我来做):
- 用插件实际 API 实现
UMotionCaptureReceiver子类 - 在
PlanetPlayerController::BeginPlay里取消注释BindMotionCaptureEvents()
代码位置(接口已预留):
ue_client/Source/PlanetClient/MotionCaptureInterface.h — 基类和手势枚举
ue_client/Source/PlanetClient/PlanetPlayerController.cpp — BindMotionCaptureEvents()
ue_client/Source/PlanetClient/PlanetClient.Build.cs — TODO 注释处加插件模块名
ue_client/PlanetClient.uproject — Plugins 数组加插件条目
阶段 B:动画资产到位后
- 把供应商提供的动画资产直接复制到
ue_client/Content/对应目录 - 在
PlanetDataManager/ 场景 Actor 里引用这些资产即可调用
答复到位后的操作清单
拿到答案后告诉我,我来:
- 视频处理器格式 → 配置
StereoRenderingManager,把bAutoEnableOnPlay改为true,写进 setup guide - 动捕插件 → 插件放入
ue_client/Plugins/,实现UMotionCaptureReceiver子类对接插件 API,更新Build.cs和.uproject