Take Recorder Sync
Automatically synchronize OBS recording with Unreal Engine’s Take Recorder for virtual production workflows.
Experimental / optional. This is a separate, optional editor module that is disabled by default. It only loads when the Takes plugin is enabled, and discovery returns gracefully when it is unavailable.
Enabling Take Recorder Sync
- Enable the Takes plugin (
Edit > Plugins > Virtual Production > Takes). - Go to
Edit > Project Settings > Plugins > OBS Take Recorder Sync. - Check Enabled.
- Configure sync options as needed.
Sync Settings
| Setting | Default | Description |
|---|---|---|
| Auto Start Record | true | Start OBS recording when Take Recorder begins |
| Auto Stop Record | true | Stop OBS recording when Take Recorder stops |
| Post-Roll Seconds | 0.0 | Continue OBS recording X seconds after take (0 to 60) |
| Auto Start Virtual Cam | false | Sync virtual camera with takes |
| Auto Start Stream | false | Sync streaming with takes (use with caution!) |
| Switch Scene On Start | false | Switch to a specific scene when a take starts |
| Create Chapters On Marked Frames | true | The M key in Take Recorder creates OBS chapters |
| Add Start Chapter With Metadata | true | Embed slate name, take number, timecode at start |
| Log File Correlation | true | Log the OBS file path with the take asset path |
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();
}
}
Chapter Marker Requirements
OBS chapter markers require:
- OBS version 30.2.0 or later
- Recording format set to Hybrid MP4 (HLS) in
OBS Settings > Output
File Correlation
Since OBS filenames can’t be set via WebSocket, enable Log File Correlation to match recordings:
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: =================================
Troubleshooting
| Problem | Solution |
|---|---|
| ”OBS is not connected” warning on take start | Connect to OBS before starting takes |
| OBS recording doesn’t start with take | Check sync is enabled in Project Settings, verify Auto Start Record is on |
| Chapter markers not appearing | Verify OBS 30.2.0+, set recording format to Hybrid MP4 |
| Take Recorder sync settings missing | Enable the Takes plugin (Edit > Plugins), restart the editor |
| Settings not persisting | Check Config/DefaultInhyeongOBS.ini isn’t read-only |