Capture Flow Plugin Documentation¶
Introduction¶
Capture Flow is a sophisticated plugin for Unreal Engine that enhances the developer's workflow by capturing time-lapsed visual histories of editor sessions. This documentation covers the Unreal Engine Client components of the plugin in detail, guiding you from installation to advanced configuration.
Features¶
- Automatic Capture: Seamlessly integrate with Unreal Engine editor to capture periodic screenshots.
- User-Friendly UI: Intuitive interface within the editor for easy control over capture settings and status visibility.
- Idle Detection: Smart functionality to pause captures during user inactivity.
- Customizable Settings: Extensive configurable options for intervals, processors, and more.
- License Validation: Secure and compliant operation with built-in license management.
Getting Started¶
Installation¶
- Download the Plugin: Get the Capture Flow plugin from the [Plugin Repository] or [FAB Marketplace].
- Install the Plugin: Copy the Capture Flow plugin folder into your Unreal Engine project's Plugins directory.
- Enable the Plugin: Open your Unreal Engine project, navigate to
Edit > Plugins
, locate Capture Flow, and enable it. - Configure Settings: Find the settings under
Edit > Project Settings > Capture Flow
and adjust to suit your project.
Launching Capture¶
- Toggle Capture: Use the toolbar button in the editor for start/stop functionality.
- Active State: The button changes color when capture is active.
Advanced Configuration¶
Setup¶
The initial setup matches the installation process, but with additional steps for customizing the plugin to your needs.
If you have purchased a license, you can set an Environment Variable in your system with your License Key called CAPTURE_FLOW_LICENSE_KEY
, or you can insert a LICENSE
file into the plugins' config directory like so:
The license file should contain your license key and no other data.
Capture Mechanics¶
The plugin operates by capturing the editor window at regular intervals. Depending on your configuration, the plugin can either capture any focused window or exclusively on the Unreal Engine editor window.
- Interval Configuration: Default to capture every 30 seconds; adjustable through settings.
- Idle Detection: Automatically suspends capture if no activity is detected, conserving resources.
Processing¶
- Local Processing: Utilizes
ffmpeg
for turning screenshots into time-lapse videos locally. - Remote Processing: Sets up server-based processing for environments where local processing is unfeasible or unwanted.
- Allows images to be collected and uploaded to a server for conversion into videos. This enables production or third party reviewing of timelapses and workflow without intervention from the user.
Configuration¶
Settings¶
Each setting can be configured to tailor the functionality of Capture Flow to the needs of your project.
- bCaptureFlowEnabled: Enable or disable capture functionality (default:
false
).
UPROPERTY(config, VisibleAnywhere, BlueprintReadOnly, Category = "CaptureFlow")
bool bCaptureFlowEnabled = false;
- CaptureProcessor: Choose between local (
ECP_Local
) or remote (ECP_Remote
) processing.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
TEnumAsByte<ECaptureProcessor> CaptureProcessor = ECP_Local;
- CaptureFlowPath: Directory path where screenshots are saved.
UPROPERTY(config, VisibleAnywhere, BlueprintReadOnly, Category = "CaptureFlow")
FString CaptureFlowPath = FString::Printf(TEXT("%sCaptureFlow/"), FPlatformProcess::UserDir());
- CaptureFlowServer: URL of the remote server for processing (if using
ECP_Remote
).
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
FString CaptureFlowServer = TEXT("https://flow.unreal.dev/");
- ffmpegPathLocal: Path to the local ffmpeg executable for local processing.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
FString ffmpegPathLocal =
FPaths::Combine(IPluginManager::Get().FindPlugin(TEXT("CaptureFlow"))->GetBaseDir(), TEXT("ThirdParty/ffmpeg/bin/ffmpeg.exe"));
- CaptureFlowInterval: Interval in seconds between captures (default:
30.0
).
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, meta = (ClampMin = "1.0", ClampMax = "3600.0"), Category = "CaptureFlow")
float CaptureFlowInterval = 30.0f;
- ffmpegDuration: Image display duration in video (default:
0.1
seconds).
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, meta = (ClampMin = "0.1", ClampMax = "2.0", UIMin = "0.1", UIMax = "2.0"), Category = "CaptureFlow")
float ffmpegDuration = 0.1f;
- bCaptureOnlyEditorWindow: Whether to capture only the editor window.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
bool bCaptureOnlyEditorWindow = true;
- bShouldReverseSearchWindow: Enables reverse search to capture editor window if not currently foreground.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
bool bShouldReverseSearchWindow = false;
- bShouldCaptureOnStartExit: Automatically start capture on editor launch.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
bool bShouldCaptureOnStartExit = false;
- bNotification: Toggles display of capture notifications.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
bool bNotification = true;
- bRemoveDataOnCompletion: Deletes capture data post-processing to save storage.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
bool bRemoveDataOnCompletion = true;
- IdleTimeThreshold: Time in seconds before capturing is paused due to inactivity.
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, Category = "CaptureFlow")
float IdleTimeThreshold = 60.0f;
API Reference¶
Core Classes¶
FCaptureFlowModule
: Manages capture functionalities and server communication.UCaptureFlowSettings
: Houses capture settings, allowing fine-tuned customization.UIdleDetector
: Manages detection of idle states to intelligently pause capturing.
Client Dashboard¶
If you have purchased a license, you can access the client dashboard by navigating to the server URL and entering your license key. If there isn't a user account associated with the license key, you will be prompted to create one.
After that you can login at the main page:
And the dashboard is available at:
Troubleshooting¶
- Capture Not Starting: Ensure plugin is correctly installed and enabled, and check configuration settings.
- License Issues: Verify that the license key is correctly set up. Contact support for persistent issues.
- Processing Errors: Double-check
ffmpeg
path or server setup.
More Examples¶
Watch your workflow come to life with Capture Flow!
Capture the evolution of your project with ease.
Monitor productivity and progress with visual timelapses.
Share your development journey with captivating timelapse videos.
Further Information¶
For further assistance, feature requests, or updates, contact us at [email protected]