Download

Trying to mute MovieScene tracks at runtime: LNK2019 on module I already added to dependencies.

Hi, can someone help me with this? I’m writing a plugin heavily based on the MovieScene module. I usually fix my linker errors referring to the engine API reference, but now I’m having this error on a class that belongs to MovieScene, which is already included in my Build.cs public/private dependencies

My code refers to the offending class in this way:


void UFDSequencePlayer::RebuildEvaluationTemplates(UMovieSceneSequence* InSequence)
{
    FMovieSceneEvaluationTemplate* RootTemplate = RootTemplateInstance.FindTemplate(MovieSceneSequenceID::Root);
    FMovieSceneEvaluationTemplateGenerator(*InSequence, *RootTemplate).Generate();
}

And it produces these 2:


Error LNK2019 unresolved external symbol "public: void __cdecl FMovieSceneEvaluationTemplateGenerator::Generate(void)" (?Generate@FMovieSceneEvaluationTemplateGenerator@@QEAAXXZ) referenced in function "public: void __cdecl UFDSequencePlayer::RebuildEvaluationTemplates(class UMovieSceneSequence *)" (?RebuildEvaluationTemplates@UFDSequencePlayer@@QEAAXPEAVUMovieSceneSequence@@@Z)

Error LNK2019 unresolved external symbol "public: __cdecl FMovieSceneEvaluationTemplateGenerator::FMovieSceneEvaluationTemplateGenerator(class UMovieSceneSequence &,struct FMovieSceneEvaluationTemplate &)" (??0FMovieSceneEvaluationTemplateGenerator@@QEAA@AEAVUMovieSceneSequence@@AEAUFMovieSceneEvaluationTemplate@@@Z) referenced in function "public: void __cdecl UFDSequencePlayer::RebuildEvaluationTemplates(class UMovieSceneSequence *)" (?RebuildEvaluationTemplates@UFDSequencePlayer@@QEAAXPEAVUMovieSceneSequence@@@Z)


UFDSequencePlayer inherits from UMovieSceneSequencePlayer.
FMovieSceneEvaluationTemplateGenerator seems to belong to the MovieScene module, so I’m kind of lost on why this might be giving these errors.

Thanks!

Try also adding LevelSequence.

Thanks for your response. Unfortunately, LevelSequence is already in my Build.cs dependencies list. I have tried looking into FMovieSceneEvaluationTemplateGenerator to see if it refers to any other module, but I feel like it’s a desperate move at this point since that should be MovieScene.Build.cs business, not my plugin’s.
This is overwhelming, I’d appreciate some help.

Sorry for the double post, I just noticed that FMovieSceneEvaluationTemplateGenerator is not exported with the MOVIESCENE_API macro. So, since it’s a small class, I copied the code to my plugin and now the linker error points to FMovieSceneEvaluationTemplate, which class, again, is not exported completely, just some functions. The error obviously is on a non-exported function.
Is this my problem? In case it is, is there any way around it?

What I’m trying to do is to mute MovieScene tracks at runtime, and the only runtime piece of code that seems to be checking UMovieSceneTrack::IsEvalDisabled() is FMovieSceneEvaluationTemplateGenerator.