FilmbackPresets
FilmbackPresets
#Overview
name: FilmbackPresets
The value of this variable can be defined or overridden in .ini config files. 13
.ini config files referencing this setting variable.
It is referenced in 10
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of FilmbackPresets is to provide a list of predefined filmback settings for cinematic cameras in Unreal Engine 5. Filmback settings define the size and characteristics of the virtual camera sensor, which affects the field of view and depth of field in the rendered images.
This setting variable is primarily used by the Cinematic Camera system in Unreal Engine 5. It is part of the CinematicCamera module, which is responsible for providing advanced camera functionality for film-like shots and cinematography in games and other real-time applications.
The value of this variable is set in the UCineCameraSettings class, which is derived from UDeveloperSettings. It can be modified through the project settings in the Unreal Editor or programmatically using the SetFilmbackPresets function.
FilmbackPresets interacts with other variables and functions within the CinematicCamera module, such as:
- RecalcSensorAspectRatios(): Recalculates the aspect ratios for all filmback presets
- GetFilmbackPresetByName(): Retrieves a specific filmback preset by its name
- GetFilmbackPresetNames(): Returns a list of all filmback preset names
Developers should be aware that:
- Changes to FilmbackPresets will trigger a recalculation of sensor aspect ratios.
- The presets are stored in the project’s configuration files and can be accessed across different parts of the engine.
- This variable has been moved from UCineCameraComponent to UCineCameraSettings in UE 5.1, so older code might need to be updated.
Best practices when using this variable include:
- Use the provided setter function (SetFilmbackPresets) to modify the presets, as it ensures proper recalculation and saving of settings.
- When adding new presets, ensure they have unique names to avoid conflicts.
- Consider the impact on existing scenes and cameras when modifying or removing presets, as it may affect the look of previously set up shots.
- Use the GetFilmbackPresetByName function to safely retrieve presets, as it handles cases where a preset might not exist.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:3328, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="16:9 Film",FilmbackSettings=(SensorWidth=24.00,SensorHeight=13.5))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3329, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="16:9 Digital Film",FilmbackSettings=(SensorWidth=23.76,SensorHeight=13.365))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3330, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="16:9 DSLR",FilmbackSettings=(SensorWidth=36,SensorHeight=20.25))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3331, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="Super 8mm",FilmbackSettings=(SensorWidth=5.79,SensorHeight=4.01))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3332, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="Super 16mm",FilmbackSettings=(SensorWidth=12.52,SensorHeight=7.58))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3333, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="Super 35mm",FilmbackSettings=(SensorWidth=24.89,SensorHeight=18.66))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3334, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="35mm Academy",FilmbackSettings=(SensorWidth=21.946,SensorHeight=16.002))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3335, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="35mm Full Aperture",FilmbackSettings=(SensorWidth=24.892,SensorHeight=18.9121))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3336, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="35mm VistaVision",FilmbackSettings=(SensorWidth=37.719,SensorHeight=25.146))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3337, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="IMAX 70mm",FilmbackSettings=(SensorWidth=70.41,SensorHeight=56.63))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3338, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="APS-C (Canon)",FilmbackSettings=(SensorWidth=22.2,SensorHeight=14.8))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3339, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="Full Frame DSLR",FilmbackSettings=(SensorWidth=36,SensorHeight=24))
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:3340, section: [/Script/CinematicCamera.CineCameraSettings]
- INI Section:
/Script/CinematicCamera.CineCameraSettings
- Raw value:
(Name="Micro Four Thirds",FilmbackSettings=(SensorWidth=17.3,SensorHeight=13))
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:42
Scope (from outer to inner):
file
function void UCineCameraSettings::PostEditChangeProperty
Source code excerpt:
void UCineCameraSettings::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
{
if (PropertyChangedEvent.GetMemberPropertyName() == GET_MEMBER_NAME_CHECKED(UCineCameraSettings, FilmbackPresets))
{
RecalcSensorAspectRatios();
}
Super::PostEditChangeProperty(PropertyChangedEvent);
}
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:83
Scope (from outer to inner):
file
function void UCineCameraSettings::SetFilmbackPresets
Source code excerpt:
void UCineCameraSettings::SetFilmbackPresets(const TArray<FNamedFilmbackPreset>& InFilmbackPresets)
{
FilmbackPresets = InFilmbackPresets;
RecalcSensorAspectRatios();
SaveConfig();
}
void UCineCameraSettings::SetDefaultCropPresetName(const FString InDefaultCropPresetName)
{
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:107
Scope (from outer to inner):
file
function TArray<FNamedFilmbackPreset> const& UCineCameraSettings::GetFilmbackPresets
Source code excerpt:
TArray<FNamedFilmbackPreset> const& UCineCameraSettings::GetFilmbackPresets()
{
return GetDefault<UCineCameraSettings>()->FilmbackPresets;
}
TArray<FNamedPlateCropPreset> const& UCineCameraSettings::GetCropPresets()
{
return GetDefault<UCineCameraSettings>()->CropPresets;
}
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:128
Scope (from outer to inner):
file
function bool UCineCameraSettings::GetFilmbackPresetByName
Source code excerpt:
bool UCineCameraSettings::GetFilmbackPresetByName(const FString PresetName, FCameraFilmbackSettings& FilmbackSettings)
{
FNamedFilmbackPreset* NamedFilmbackPreset = FilmbackPresets.FindByPredicate([PresetName](const FNamedFilmbackPreset& Preset)
{
return Preset.Name == PresetName;
});
FilmbackSettings = NamedFilmbackPreset ? NamedFilmbackPreset->FilmbackSettings : FCameraFilmbackSettings();
return NamedFilmbackPreset != nullptr;
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:167
Scope (from outer to inner):
file
function TArray<FString> UCineCameraSettings::GetFilmbackPresetNames
Source code excerpt:
{
TArray<FString> FilmbackPresetNames;
for (const FNamedFilmbackPreset& FilmbackPreset : FilmbackPresets)
{
FilmbackPresetNames.Emplace(FilmbackPreset.Name);
}
return FilmbackPresetNames;
}
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:203
Scope (from outer to inner):
file
function void UCineCameraSettings::RecalcSensorAspectRatios
Source code excerpt:
void UCineCameraSettings::RecalcSensorAspectRatios()
{
for (FNamedFilmbackPreset& FilmbackPreset : FilmbackPresets)
{
FilmbackPreset.FilmbackSettings.RecalcSensorAspectRatio();
}
}
void UCineCameraSettings::CopyOldConfigSettings()
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:261
Scope (from outer to inner):
file
function void UCineCameraSettings::CopyOldConfigSettings
Source code excerpt:
TArray<FString> OldFilmbackPresets;
if (GConfig->GetArray(*CineCameraConfigSection, TEXT("FilmbackPresets"), OldFilmbackPresets, GEngineIni))
{
TArray<FString> CurrentFilmbackPresets;
GConfig->GetArray(*SettingsConfigSection, TEXT("FilmbackPresets"), CurrentFilmbackPresets, GEngineIni);
for (const FString& OldFilmbackPreset : OldFilmbackPresets)
{
// If a preset already exists with that name then update it with the old value
// otherwise add the preset to the list
FString PresetName, PresetValue;
OldFilmbackPreset.Split(",", &PresetName, &PresetValue);
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Private/CineCameraSettings.cpp:280
Scope (from outer to inner):
file
function void UCineCameraSettings::CopyOldConfigSettings
Source code excerpt:
}
}
GConfig->SetArray(*SettingsConfigSection, TEXT("FilmbackPresets"), CurrentFilmbackPresets, GEngineIni);
}
LoadConfig();
if (Notification)
{
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Public/CineCameraComponent.h:209
Scope (from outer to inner):
file
class class UCineCameraComponent : public UCameraComponent
Source code excerpt:
UE_DEPRECATED(5.1, "This property is now located on the UCineCameraSettings object")
UPROPERTY(config)
TArray<FNamedFilmbackPreset> FilmbackPresets;
/** List of available lens presets */
UE_DEPRECATED(5.1, "This property is now located on the UCineCameraSettings object")
UPROPERTY(config)
TArray<FNamedLensPreset> LensPresets;
#Loc: <Workspace>/Engine/Source/Runtime/CinematicCamera/Public/CineCameraSettings.h:301
Scope (from outer to inner):
file
class class UCineCameraSettings : public UDeveloperSettings
Source code excerpt:
/** List of available filmback presets */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, BlueprintSetter=SetFilmbackPresets, Category=Filmback, meta=(TitleProperty=Name))
TArray<FNamedFilmbackPreset> FilmbackPresets;
/** Name of the default crop preset */
UPROPERTY(config, EditAnywhere, BlueprintReadWrite, BlueprintSetter=SetDefaultCropPresetName, Category=Crop, meta=(GetOptions=GetCropPresetNames))
FString DefaultCropPresetName;
/** List of available crop presets */