Navigation
API > API/Plugins > API/Plugins/VCamCore > API/Plugins/VCamCore/Output
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UVCamOutputProviderBase
- UDecoupledOutputProvider
- UVCamPixelStreamingSession
- UVCamOutputComposure
- UVCamOutputMediaOutput
- UVCamOutputRemoteSession
- UVCamOutputViewport
References
| Module | VCamCore |
| Header | /Engine/Plugins/VirtualProduction/VirtualCameraCore/Source/VCamCore/Public/Output/VCamOutputProviderBase.h |
| Include | #include "Output/VCamOutputProviderBase.h" |
Syntax
UCLASS (Abstract, BlueprintType, EditInlineNew, CollapseCategories)
class UVCamOutputProviderBase : public UObject
Remarks
Output providers implement methods of overlaying a widget onto a target viewport. The composition of viewport and widget is then usually streamed to an application outside the engine, e.g. via Pixel Streaming or Remote Session.
To start outputting, the owning UVCamComponent must be enabled and the output provider activated.
Output providers are managed by UVCamComponent, which own them and must be attached as a child to a UCineCameraComponent. Output providers have a target viewport that the widget is overlayed onto. The target viewport can be locked to the target camera, which happens when:
The output provider is outputting IsOutputting() == true
The output provider is configured to do so, either by 2.1 NeedsForceLockToViewport returning true or 2.2 UVCamComponent::ViewportLocker being configured accordingly. When a viewport is locked, the owning output provider can affect its resolution (see bUseOverrideResolution and OverrideResolution).
A concept of viewport ownership is implemented in FViewportManager ensuring that at most 1 output provider affects a viewport's lock and resolution at a time; the first output provider to request lock, gets the ownership over that viewport. When lock, resolution or target viewport change, call RequestResolutionRefresh to updat the viewport state.
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bUseOverrideResolution | Override the default output resolution with a custom value - NOTE you must toggle bIsActive off then back on for this to take effect | |
| EVPWidgetDisplayType | DisplayType | Defines how the overlay widget should be added to the viewport. | |
| TObjectPtr< UGameplayViewTargetPolicy > | GameplayViewTargetPolicy | In game worlds, such as PIE or shipped games, determines which a player controller whose view target should be set to the owning cine camera. | |
| FActivationDelegate | OnActivatedDelegate | ||
| FActivationDelegate_Blueprint | OnActivatedDelegate_Blueprint | Called when the activation state of this output provider changes. | |
| FIntPoint | OverrideResolution | When bUseOverrideResolution is set, use this custom resolution |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| bool | |||
| void | CreateUMG () |
Called to create the UMG overlay widget. | |
| void | Deinitialize () |
Called when the provider is being shutdown such as before changing level or on exit | |
| void | DestroyUMG () |
||
| void | |||
| void | DisplayUMG () |
||
| int32 | Gets the index of this output provider in the owning UVCamComponent::OutputProviders array. | ||
| UGameplayViewTargetPolicy * | |||
| FName | |||
| UVCamOutputProviderBase * | GetOtherOutputProviderByIndex
(
int32 Index |
Utility that gets the owning VCam component and gets another output provider by its index. | |
| TSharedPtr< FSceneViewport > | GetSceneViewport
(
EVCamTargetViewportID InTargetViewport |
Gets the viewport identified by the passed in parameters. | |
| TWeakPtr< SWindow > | |||
| FLevelEditorViewportClient * | |||
| TSharedPtr< FSceneViewport > | Gets the scene viewport identified by the currently configured TargetViewport. | ||
| EVCamTargetViewportID | |||
| FName | |||
| TSubclassOf< UUserWidget > | GetUMGClass () |
||
| FName | |||
| UVPFullScreenUserWidget * | GetUMGWidget () |
||
| UVPFullScreenUserWidget * | GetUMGWidget () |
||
| UVCamComponent * | |||
| void | Initialize () |
Called when the provider is brought online such as after instantiating or loading a component containing this provider Use Initialize for any setup logic that needs to survive between Start / Stop cycles such as spawning transient objects | |
| void | InitTargetViewport
(
EVCamTargetViewportID Value |
Uses this version in constructors (e.g. for initializing a CDO). | |
| bool | IsActivationChangeAllowed
(
bool bRequestActiveState |
||
| bool | IsActivationChangeAllowedWithReason
(
bool bRequestActiveState, |
||
| bool | IsActive () |
Returns if this output provider is currently active or not | |
| bool | Returns if this output provider has been initialized or not | ||
| bool | IsOutputting () |
||
| bool | |||
| void | Calls the VCamModifierInterface on the widget if it exists and also requests any child VCam Widgets to reconnect | ||
| void | OnActivate () |
Called when the provider is Activated | |
| void | OnDeactivate () |
Called when the provider is Deactivated | |
| void | OnSetTargetCamera
(
const UCineCameraComponent* InTargetCamera |
Called by owning UVCamComponent when the target camera changes. | |
| void | If PreReapplyViewport returned EVCamViewportChangeReply::ApplyViewportChange, then this function is called after the UMG widget has been placed in the new target viewport. | ||
| UE::VCamCore::EViewportChangeReply | Called a new target viewport has been set while outputting but before the viewport change is processed. | ||
| TFuture< FVCamStringPromptResponse > | PromptClientForString
(
const FVCamStringPromptRequest& Request |
Request string input from the streaming client. Returns true if the request was handled. | |
| void | |||
| void | Called while a UMG widget is being outputted. | ||
| void | Called after changing viewport. | ||
| void | Requests that at end of the frame the target viewport's resolution is updated to match this provider's settings. | ||
| void | Restore the output state from previous call to disable output. | ||
| void | SetActive
(
const bool bInActive |
Called to turn on or off this output provider | |
| void | SetActiveInternal
(
bool bInActive |
Triggers all callbacks without checking whether the bIsActive flag is actually being changed. | |
| void | SetTargetViewport
(
EVCamTargetViewportID Value |
||
| void | SetUMGClass
(
const TSubclassOf< UUserWidget > InUMGClass |
||
| void | Temporarily disable the output. Caller must eventually call RestoreOutput. | ||
| void | Tick
(
const float DeltaTime |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | BeginDestroy () |
Called before destroying the object. | |
| void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Called when a property on this object has been modified externally | |
| void | PostEditUndo () |
Called after applying a transaction to the object. | |
| void | PostLoad () |
Do any object-specific cleanup required immediately after loading an object. | |
| void | PreEditUndo () |
Called before applying a transaction to the object. | |
| void | Handles reading, writing, and reference collecting using FArchive. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FActivationDelegate_Blueprint |
Typedefs
| Name | Description |
|---|---|
| FActivationDelegate |