Files
UnrealEngine/Engine/Source/Editor/MovieSceneTools/Public/MovieSceneToolsProjectSettings.h
2025-05-18 13:04:45 +08:00

115 lines
3.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Containers/Array.h"
#include "Containers/UnrealString.h"
#include "CoreMinimal.h"
#include "HAL/Platform.h"
#include "UObject/Object.h"
#include "UObject/ObjectMacros.h"
#include "UObject/UObjectGlobals.h"
#include "MovieSceneToolsProjectSettings.generated.h"
UENUM()
enum class EMovieSceneToolsPropertyTrackType
{
FloatTrack,
DoubleTrack
};
USTRUCT()
struct FMovieSceneToolsPropertyTrackSettings
{
GENERATED_BODY()
/** Optional ActorComponent tag (when keying a component property). */
UPROPERTY(config, EditAnywhere, Category=PropertyTrack)
FString ComponentName;
/** Name to the keyed property within the Actor or ActorComponent. */
UPROPERTY(config, EditAnywhere, Category=PropertyTrack)
FString PropertyName;
};
USTRUCT()
struct FMovieSceneToolsFbxSettings
{
GENERATED_BODY()
/** The name of the fbx property */
UPROPERTY(config, EditAnywhere, Category=TrackSettings)
FString FbxPropertyName;
/** The property track setting to map to */
UPROPERTY(config, EditAnywhere, Category=TrackSettings)
FMovieSceneToolsPropertyTrackSettings PropertyPath;
/** Type of property track to map to */
UPROPERTY(config, EditAnywhere, Category=TrackSettings)
EMovieSceneToolsPropertyTrackType PropertyType = EMovieSceneToolsPropertyTrackType::FloatTrack;
};
// Settings for the level sequences
UCLASS(config=EditorPerProjectUserSettings)
class MOVIESCENETOOLS_API UMovieSceneToolsProjectSettings : public UObject
{
GENERATED_BODY()
public:
UMovieSceneToolsProjectSettings();
/** The default start time for new level sequences, in seconds. */
UPROPERTY(config, EditAnywhere, Category=Timeline, meta=(Units=s))
float DefaultStartTime;
/** The default duration for new level sequences in seconds. */
UPROPERTY(config, EditAnywhere, Category=Timeline, meta=(ClampMin=0.00001f, Units=s))
float DefaultDuration;
/** The default directory for the subsequences. */
UPROPERTY(config, EditAnywhere, Category=Shots)
FString SubsequenceDirectory;
/** The default directory for the shots. */
UPROPERTY(config, EditAnywhere, Category=Shots)
FString ShotDirectory;
/** The default prefix for subsequence names. */
UPROPERTY(config, EditAnywhere, Category=Shots)
FString SubsequencePrefix;
/** The default prefix for shot names. */
UPROPERTY(config, EditAnywhere, Category=Shots)
FString ShotPrefix;
/** The first shot number. */
UPROPERTY(config, EditAnywhere, Category=Shots, meta = (UIMin = "1", UIMax = "100"))
uint32 FirstShotNumber;
/** The default shot increment. */
UPROPERTY(config, EditAnywhere, Category=Shots, meta = (UIMin = "1", UIMax = "100"))
uint32 ShotIncrement;
/** The number of digits for the shot number. */
UPROPERTY(config, EditAnywhere, Category=Shots, meta = (UIMin = "1", UIMax = "10"))
uint32 ShotNumDigits;
/** The number of digits for the take number. */
UPROPERTY(config, EditAnywhere, Category=Shots, meta = (UIMin = "1", UIMax = "10"))
uint32 TakeNumDigits;
/** The first take number. */
UPROPERTY(config, EditAnywhere, Category=Shots, meta = (UIMin = "1", UIMax = "10"))
uint32 FirstTakeNumber;
/** Character separator between the shot number and the take number. */
UPROPERTY(config, EditAnywhere, Category=Shots)
FString TakeSeparator;
/** Mapping between fbx property name and property track path */
UPROPERTY(config, EditAnywhere, Category=TrackSettings)
TArray<FMovieSceneToolsFbxSettings> FbxSettings;
};