Take Recorder 同步
自动将 OBS 录制与 Unreal Engine 的 Take Recorder 同步,用于虚拟制片工作流程。
实验性 / 可选功能。 这是一个独立的可选编辑器模块,默认情况下处于禁用状态。仅当 Takes 插件启用时才会加载,若插件不可用则会优雅地退出发现流程。
启用 Take Recorder 同步
- 启用 Takes 插件(
Edit > Plugins > Virtual Production > Takes)。 - 前往
Edit > Project Settings > Plugins > OBS Take Recorder Sync。 - 勾选 Enabled。
- 根据需要配置同步选项。
同步设置
| 设置 | 默认值 | 说明 |
|---|---|---|
| Auto Start Record | true | Take Recorder 开始时启动 OBS 录制 |
| Auto Stop Record | true | Take Recorder 停止时停止 OBS 录制 |
| Post-Roll Seconds | 0.0 | 镜次结束后继续 OBS 录制 X 秒(0 至 60) |
| Auto Start Virtual Cam | false | 将虚拟摄像头与镜次同步 |
| Auto Start Stream | false | 将推流与镜次同步(请谨慎使用!) |
| Switch Scene On Start | false | 镜次开始时切换到指定场景 |
| Create Chapters On Marked Frames | true | Take Recorder 中的 M 键创建 OBS 章节标记 |
| Add Start Chapter With Metadata | true | 在开始处嵌入场记板名称、镜次编号和时间码 |
| Log File Correlation | true | 将 OBS 文件路径与镜次资产路径一同记录 |
Blueprint API
// Get the sync object
Get OBS Take Recorder Sync -> UInhyeongOBSTakeRecorderSync
// Enable/disable at runtime
Set OBS Take Recorder Sync Enabled (Enabled: Boolean)
// Check status
Is OBS Take Recorder Sync Enabled -> Boolean
Is OBS Syncing Take -> Boolean
C++ API
#include "InhyeongOBSTakeRecorderModule.h"
#include "InhyeongOBSTakeRecorderSync.h"
// Check availability and get sync object
if (FInhyeongOBSTakeRecorderModule::IsAvailable())
{
UInhyeongOBSTakeRecorderSync* Sync =
FInhyeongOBSTakeRecorderModule::Get().GetTakeRecorderSync();
if (Sync)
{
Sync->bEnabled = true;
Sync->bAutoStartRecord = true;
Sync->bSwitchSceneOnStart = true;
Sync->StartSceneName = TEXT("Recording");
Sync->SaveConfig();
}
}
章节标记要求
OBS 章节标记需要满足以下条件:
- OBS 版本 30.2.0 或更高
- 在
OBS Settings > Output中将录制格式设置为 Hybrid MP4 (HLS)
文件关联
由于无法通过 WebSocket 设置 OBS 文件名,请启用 Log File Correlation 以匹配录制文件:
LogOBSTakeRecorder: === Take/OBS File Correlation ===
LogOBSTakeRecorder: Take Name: MySlate_Take3
LogOBSTakeRecorder: Take Asset: /Game/Cinematics/Takes/MySlate/MySlate_003
LogOBSTakeRecorder: OBS File: C:/Videos/2024-01-15_14-32-15.mp4
LogOBSTakeRecorder: =================================
故障排查
| 问题 | 解决方案 |
|---|---|
| 镜次开始时出现”OBS is not connected”警告 | 请在开始镜次前先连接到 OBS |
| 镜次开始时 OBS 录制未启动 | 检查 Project Settings 中是否已启用同步,并确认 Auto Start Record 已开启 |
| 章节标记未显示 | 确认 OBS 版本为 30.2.0 或更高,并将录制格式设置为 Hybrid MP4 |
| Take Recorder 同步设置缺失 | 启用 Takes 插件(Edit > Plugins),然后重启编辑器 |
| 设置未持久保存 | 检查 Config/DefaultInhyeongOBS.ini 是否被设为只读 |