Questions about Take Recorder

Yep, it would require source changes and vary a bit depending on the type of struct.

Essentially, if you want to record anything, it needs to be animatable. If you’re looking to animate just a property inside of a struct, then you can mark it with an Interp flag (which is needed on a UProperty to be animatable in Sequencer). As far as recording goes, if those properties are marked as Interp, they’ll automatically be recorded if they change during Take Recording.

Marking something with the Interp flag is dependent on the struct and its structure. For example, the Filmback setting (below) includes the Interp marker, which lets it get animated in Sequencer. This is because every property inside it also has the Interp flag.

/** Controls the filmback of the camera. */ UPROPERTY(Interp, BlueprintSetter = SetFilmback, EditAnywhere, BlueprintReadWrite, Category = "Current Camera Settings") FCameraFilmbackSettings Filmback;As another example, the CameraFocusSettings does not include the Interp flag:

/** Controls the camera's focus. */ UPROPERTY(EditAnywhere, BlueprintSetter = SetFocusSettings, BlueprintReadWrite, Category = "Current Camera Settings") FCameraFocusSettings FocusSettings;…but within that struct, the ManualFocusDistance is marked as Interp, and can be animated/recorded.

`FCameraFocusSettings
{
GENERATED_USTRUCT_BODY()

/** Which method to use to handle camera focus */
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = “Focus Method”)
ECameraFocusMethod FocusMethod;

/** Manually-controlled focus distance (manual focus mode only) */
UPROPERTY(Interp, EditAnywhere, BlueprintReadWrite, Category = “Manual Focus Settings”, meta=(Units=cm))
float ManualFocusDistance;`So, your use case will influence how/where the Interp flag should be added.

If the thing you want to animate is not a generic property, then you’ll have to write a track that animates and evaluates it; If you want to record it, you’ll need to write a track recorder that writes keyframes to that track.

I hope that helps! Please let me know if you need additional support on this topic.