Hi [mention removed], [mention removed] passed this issue over me to take a look at.
I think that the original issue that you mentioned, with rewind debugger not showing the chooser evaluation, is because there’s no object being passed into the evaluation context. If you modify your chooser so that it takes an object, and update your code accordingly, you should see the chooser appear in the trace data. For instance, you could pass in the character bp, or the anim bp. They won’t affect the evaluation, but it should allow rewind debugger to display the information correctly. So after you update your Chooser, your code would look something like this (note that order matters here - the second parameter in your chooser needs to be the second value added to the context):
FChooserEvaluationContext LocoChooserContext; LocoChooserContext.AddStructParam(InOutChoiceParams); LocoChooserContext.AddObjectParam(MyCharacterBP); return Cast<UPoseSearchDatabase>(DatabaseChooser->ChooseObject(LocoChooserContext));
For the second issue where the read/write struct wasn’t getting the output values written into it when calling EvaluateChooser from a character blueprint, that’s not expected. It’d be interesting to get some more information on that. All that should be required is that:
- The chooser has the struct type set as an input/output parameter
- The output column on the chooser is bound to the property you want to set within the struct
- In your character bp graph, you pass a variable of the struct type as an input to Evaluate Chooser and then get the equivalent from one of the output pins
I’d be happy to dig into the second problem in more detail if you can’t get it working. It could be useful to get some screenshots of your setup, or a small repro project if you’re able to provide one.