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:

Developers should be aware that:

  1. Changes to FilmbackPresets will trigger a recalculation of sensor aspect ratios.
  2. The presets are stored in the project’s configuration files and can be accessed across different parts of the engine.
  3. 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:

  1. Use the provided setter function (SetFilmbackPresets) to modify the presets, as it ensures proper recalculation and saving of settings.
  2. When adding new presets, ensure they have unique names to avoid conflicts.
  3. Consider the impact on existing scenes and cameras when modifying or removing presets, as it may affect the look of previously set up shots.
  4. 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]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3329, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3330, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3331, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3332, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3333, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3334, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3335, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3336, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3337, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3338, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3339, section: [/Script/CinematicCamera.CineCameraSettings]

Location: <Workspace>/Engine/Config/BaseEngine.ini:3340, section: [/Script/CinematicCamera.CineCameraSettings]

#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 */