Proper way to handle: "LogMovieScene: Warning: failed to resolve dynamic binding because the function is not contained within the director instance" ?

With CL 41761298, a fix was put in that seems to be affecting an admittedly niche workflow: Having a base class define an animation whose affected widgets are defined in a derived widget by binding.

In practice this is for a wrapper to set up common look and feel for widgets, such as affecting materials in a consistent and reusable way.

The question is: Is there more that we should be doing to mitigate the warning? Is this flow just unexpected and the warning is erroneous here?

Steps to Reproduce

  1. Create a widget blueprint, Base
  2. Create an animation on the blueprint that uses Dynamic Binding
  3. Leave the created function empty
  4. Create a derived widget blueprint from Base, Derived
  5. Give it a widget to animate, set as a variable
  6. Override the function, fill it out with the widget
  7. Each time the animation is told to play, 1-2 warnings will be generated:
  8. However, the animation will appear to play correctly
LogMovieScene: Warning: A_Example_Derived_INST: Failed to resolve dynamic binding 'SequenceEvent__ENTRYPOINTWBP_Base' because the function is not contained within the director instance.

Hey there,

Apologies for the long delay. In MovieSceneDynamicBindingInvoker you can try making this change

if (!DynamicBindingFunc->IsIn(DirectorInstance->GetClass()))to

if (!DirectorInstance->GetClass()->IsChildOf(DynamicBindingFunc->GetOwnerClass()))

This should navigate that warning and still catch the crash. Let us know how it goes.

Dustin