Navigation
Unreal Engine C++ API Reference > Plugins > VCamCore
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UActorComponent
- USceneComponent
- UVCamComponent
References
Module | VCamCore |
Header | /Engine/Plugins/VirtualProduction/VirtualCameraCore/Source/VCamCore/Public/VCamComponent.h |
Include | #include "VCamComponent.h" |
Syntax
UCLASS (Blueprintable, ClassGroup=VCam, HideCategories=(Mobility),
Meta=(BlueprintSpawnableComponent))
class UVCamComponent : public USceneComponent
Remarks
Provides a modular system for editing a UCineCameraComponent using user widgets. This component must be attached as a direct child of UCineCameraComponent.
This component implements a Model-View-Controller architecture where modifiers are the model, output providers the view, and this component the controller.
There are three aspects to this component:
- Modifiers implement logic for changing properties on the UCineCameraComponent. Modifiers contain ConnectionPoints. ConnectionPoints can optionally expose UInputActions (Enhanced Input) that can be invoked by widgets.
- Output providers create and render widgets (possibly streaming them). Usually output providers create UVCamWidgets, which are special widgets that can connect to ConnectionPoints. Widgets interact with modifiers in two ways:
- Simple: trigger input actions that modifiers are subscribed to and expose via connections.
- Advanced: query whether modifiers implement certain custom defined interfaces. UVCamWidget Connections can be configured with required and optional interfaces.
- UVCamSubsystems exist for as long as a UVCamComponent is enabled (this is comparable to ULocalPlayerSubsystem). One notable such system is the UInputVCamSubsystem which allows UVCamComponents to bind to input devices similarly to how APlayerControllers do in shipped games.
Variables
Type | Name | Description | |
---|---|---|---|
![]() ![]() ![]() ![]() |
FOnComponentReplaced | OnComponentReplaced | There are situations in the editor where the component may be replaced by another component as part of the actor being reconstructed This event will notify you of that change and give you a reference to the new component. |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
void | AddInputMappingContext
(
const UVCamModifier* Modifier |
Adds the Input Mapping Context from a modifier, if it exists, to the input system |
![]() |
void | AddInputMappingContext
(
UInputMappingContext* Context, |
Adds an explicitly provided Input Mapping Context to the input system |
![]() ![]() ![]() |
bool | AddInputProfileWithCurrentlyActiveMappings
(
const FName ProfileName, |
Tries to add a new Input Profile to the VCam Input Settings and populates it with any currently active player mappable keys Note: The set of currently active player mappable keys may be larger than the set of mappings in this component's Input Profile |
![]() ![]() ![]() |
bool | AddModifier
(
const FName Name, |
Add a modifier to the stack with a given name. |
![]() ![]() ![]() |
bool | AddOutputProvider
(
UPARAM(meta=(AllowAbstract="false")) TSubclassOf< UVCamOutputProviderBase > ProviderClass, |
|
![]() ![]() |
void | AddReferencedObjects
(
UObject* InThis, |
|
![]() |
void | ApplyComponentInstanceData
(
FVCamComponentInstanceData& ComponentInstanceData, |
Applies the component instance cache |
![]() |
void | Call this after modifying the InputProfile in code to update the player mapped keys | |
![]() ![]() |
bool | CanUpdate () |
|
![]() ![]() ![]() ![]() |
TArray< FName > | Returns all the modifier names used to identifying connection points. | |
![]() ![]() ![]() ![]() |
void | GetAllModifiers
(
TArray< UVCamModifier* >& Modifiers |
Returns all the Modifiers in the Component's Stack Note: It's possible not all Modifiers will be valid (such as if the user has not set a class for the modifier in the details panel) |
![]() ![]() ![]() ![]() |
void | GetAllOutputProviders
(
TArray< UVCamOutputProviderBase* >& Providers |
|
![]() ![]() ![]() ![]() |
TArray< FEnhancedActionKeyMapping > | Searches the currently active input system for all registered key mappings that are marked as Player Mappable. | |
![]() ![]() ![]() ![]() |
bool | ||
![]() ![]() ![]() ![]() |
bool | ||
![]() ![]() ![]() ![]() |
const FVCamInputDeviceConfig & | Gets the current input device settings being used (if this component is enabled) or that will be used (if not enabled). | |
![]() ![]() ![]() ![]() |
const FVCamInputProfile & | ||
![]() ![]() ![]() ![]() |
UInputVCamSubsystem * | Gets the subsystem responsible for input handling. | |
![]() ![]() ![]() |
bool | GetLiveLinkDataForCurrentFrame
(
FLiveLinkCameraBlueprintData& LiveLinkData |
|
![]() ![]() ![]() ![]() |
FLiveLinkSubjectName | ||
![]() ![]() ![]() ![]() |
UVCamModifier * | GetModifierByIndex
(
const int32 Index |
Returns the Modifier in the Stack with the given index if it exist. |
![]() ![]() ![]() ![]() |
UVCamModifier * | GetModifierByName
(
const FName Name |
Tries to find a Modifier in the Stack with the given name. |
![]() ![]() ![]() ![]() |
UVCamModifierContext * | Get the current Modifier Context | |
![]() ![]() ![]() ![]() |
void | GetModifiersByClass
(
UPARAM(meta=(AllowAbstract="false")) TSubclassOf< UVCamModifier > ModifierClass, |
Given a specific Modifier class, returns a list of matching Modifiers |
![]() ![]() ![]() ![]() |
void | GetModifiersByInterface
(
UPARAM(meta=(AllowAbstract="false")) TSubclassOf< UInterface > InterfaceClass, |
Given a specific Interface class, returns a list of matching Modifiers |
![]() ![]() |
const TArray< FModifierStackEntry > & | ||
![]() ![]() ![]() ![]() |
int32 | ||
![]() ![]() ![]() ![]() |
int32 | ||
![]() ![]() ![]() ![]() |
UVCamOutputProviderBase * | GetOutputProviderByIndex
(
const int32 ProviderIndex |
|
![]() ![]() ![]() ![]() |
void | GetOutputProvidersByClass
(
UPARAM(meta=(AllowAbstract="false")) TSubclassOf< UVCamOutputProviderBase > ProviderClass, |
|
![]() ![]() ![]() ![]() |
PRAGMA_DISABLE_DEPRECATION_WARNINGSTArray< FEnhancedActionKeyMapping > | Returns a list of all player mappable keys that have been registered | |
![]() ![]() ![]() ![]() |
FKey | GetPlayerMappedKey
(
const FName MappingName |
Searches the currently active input system for the current key mapped to a given input mapping If there is not a player mapped key, then this will return EKeys::Invalid. |
![]() ![]() ![]() ![]() |
FGameplayTag | GetRole () |
|
![]() ![]() |
TSubsystemClass * | GetSubsystem
(
const TSubclassOf< TSubsystemClass >& SubsystemClass |
|
![]() ![]() |
const TArray< TSubsystemClass * > & | GetSubsystemArray
(
const TSubclassOf< TSubsystemClass >& SubsystemClass |
|
![]() ![]() ![]() ![]() |
TArray< UVCamSubsystem * > | GetSubsystemArray
(
const TSubclassOf< UVCamSubsystem >& Class |
Gets all subsystems implementing this interface |
![]() ![]() ![]() ![]() |
UCineCameraComponent * | ||
![]() ![]() ![]() ![]() |
void | InjectInputForAction
(
const UInputAction* Action, |
Injects an input action. |
![]() ![]() ![]() ![]() |
void | InjectInputVectorForAction
(
const UInputAction* Action, |
Injects an input vector for action. |
![]() ![]() ![]() |
bool | InsertModifier
(
const FName Name, |
Insert a modifier to the stack with a given name and index. |
![]() ![]() ![]() |
bool | InsertOutputProvider
(
int32 Index, |
|
![]() ![]() ![]() ![]() |
bool | IsEnabled () |
|
![]() ![]() |
bool | Whether this component is initialized, i.e. the input subsystem is set up and the output providers are allowed to be active. | |
![]() |
void | OnOutputProvidersEdited
(
FPropertyChangedChainEvent& PropertyChangedEvent |
|
![]() |
void | ||
![]() ![]() ![]() |
void | RegisterObjectForInput
(
UObject* Object |
Registers the given object with the VCamComponent's Input Component This allows dynamic input bindings such as input events in blueprints to work correctly Note: Ensure you call UnregisterObjectForInput when you are finished with the object otherwise input events will still fire until GC actually destroys the object |
![]() ![]() ![]() |
void | Remove all Modifiers from the Stack. | |
![]() ![]() ![]() |
void | ||
![]() |
void | RemoveInputMappingContext
(
const UVCamModifier* Modifier |
Removes the Input Mapping Context from a modifier, if it exists, from the input system |
![]() |
void | RemoveInputMappingContext
(
UInputMappingContext* Context |
Removes an explicitly provided Input Mapping Context to the input system |
![]() ![]() ![]() |
bool | RemoveModifier
(
const UVCamModifier* Modifier |
|
![]() ![]() ![]() |
bool | RemoveModifierByIndex
(
const int ModifierIndex |
|
![]() ![]() ![]() |
bool | RemoveModifierByName
(
const FName Name |
|
![]() ![]() ![]() |
bool | RemoveOutputProvider
(
const UVCamOutputProviderBase* Provider |
|
![]() ![]() ![]() |
bool | RemoveOutputProviderByIndex
(
const int32 ProviderIndex |
|
![]() ![]() ![]() ![]() |
bool | SaveCurrentInputProfileToSettings
(
const FName ProfileName |
Saves the current input profile settings to the VCam Input Settings using the provided Profile Name. |
![]() ![]() ![]() |
void | SetDisableComponentWhenSpawnedBySequencer
(
bool bValue |
|
![]() ![]() ![]() |
void | SetDisableOutputOnMultiUserReceiver
(
bool bValue |
|
![]() ![]() ![]() |
void | SetEnabled
(
bool bNewEnabled |
Sets whether the VCamComponent will update every frame |
![]() ![]() ![]() ![]() |
void | SetInputDeviceSettings
(
const FVCamInputDeviceConfig& NewInputProfile |
Propagates devices settings all the way to the player input. |
![]() ![]() ![]() ![]() |
void | SetInputProfile
(
const FVCamInputProfile& NewInputProfile |
|
![]() ![]() ![]() |
bool | SetInputProfileFromName
(
const FName ProfileName |
Attempts to apply key mapping settings from an input profile defined in VCam Input Settings Returns whether the profile was found and able to be applied |
![]() ![]() ![]() |
void | SetLiveLinkSubobject
(
FLiveLinkSubjectName Value |
|
![]() ![]() ![]() |
void | SetModifierContextClass
(
UPARAM(meta=(AllowAbstract="false")) TSubclassOf< UVCamModifierContext > ContextClass, |
Sets the Modifier Context to a new instance of the provided class |
![]() ![]() ![]() |
bool | SetModifierIndex
(
int32 OriginalIndex, |
Moves an existing modifier in the stack from its current index to a new index. |
![]() ![]() ![]() |
bool | SetOutputProviderIndex
(
int32 OriginalIndex, |
Moves an existing Output Provider in the stack from its current index to a new index. |
![]() ![]() ![]() |
void | SetRole
(
FGameplayTag Value |
|
![]() ![]() ![]() ![]() |
void | UnregisterObjectForInput
(
UObject* Object |
Unregisters the given object with the VCamComponent's Input Component |
![]() |
void | Update () |
|
![]() |
void | Updates all actor Locks on viewports to be as configured. |
Overridden from USceneComponent
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | Called when AttachParent changes, to allow the scene to update its attachment state. |
Overridden from UActorComponent
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | Function that gets called from within Map_Check to allow this actor component to check itself for any potential errors and register them with map check dialog. | |
![]() ![]() |
void | EndPlay
(
EEndPlayReason::Type Reason |
Ends gameplay for this component. |
![]() ![]() ![]() |
TStructOnScope< FActorComponentInstanceData > | Called before we throw away components during RerunConstructionScripts, to cache any data we wish to persist across that operation | |
![]() ![]() |
void | Called when a component is created (not loaded). This can happen in the editor or during gameplay | |
![]() ![]() |
void | OnComponentDestroyed
(
bool bDestroyingHierarchy |
Called when a component is destroyed |
![]() ![]() |
void | OnRegister () |
Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called. |
Overridden from UObject
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
void | BeginDestroy () |
Called before destroying the object. |
![]() ![]() |
void | PostEditChangeChainProperty
(
FPropertyChangedChainEvent& PropertyChangedEvent |
This alternate version of PostEditChange is called when properties inside structs are modified. |
![]() ![]() |
void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Called when a property on this object has been modified externally |
![]() ![]() |
void | PostLoad () |
Do any object-specific cleanup required immediately after loading an object. |
![]() ![]() |
void | PreEditChange
(
FEditPropertyChain& PropertyAboutToChange |
This alternate version of PreEditChange is called when properties inside structs are modified. |
![]() ![]() |
void | PreEditChange
(
FProperty* PropertyAboutToChange |
This is called when a property is about to be modified externally |
![]() ![]() |
void | PreSave
(
FObjectPreSaveContext SaveContext |
Presave function. |
![]() ![]() |
void | Handles reading, writing, and reference collecting using FArchive. |
Enums
Type | Name | Description | |
---|---|---|---|
![]() |
EPIEState | Variable used for pausing update on editor objects while PIE is running |
Deprecated Variables
Type | Name | Description | |
---|---|---|---|
![]() ![]() |
EVCamTargetViewportID | TargetViewport_DEPRECATED | Which viewport to use for this VCam. |