That’s okay, interfaces are extremely confusing and counter-intuitive at first and the documentation for them is pretty bad. But once you get the hang of them, they’re indispensable.
So, first create a new Blueprint Interface called “CharacterAnimDriver”. Add a Function to it called “SendPitch” (my own personal habit for interfaces has been to name them based on some imaginary hierarchy; here, the character bp uses an interface to “drive” the animations. Functions that pass data from character to anim are Send, functions which pass data from anim to character are Get, etc. You don’t have to use this convention, but I urge you to settle on SOME naming convention as Interfaces get unwieldy fast and are highly finicky things).
Make sure you add an output to SendPitch (you don’t need an input). Make sure this output is of the Float type (since you’re trying to pass float data), and has a unique name (say, AimPitchOutput).
Compile the Interface.
Now, in your character BP, hit the “Blueprint Props” button up top, then in the details pane, add the interface you just created. Do the same thing in your Anim bp.
Back in the character BP, add the SendPitch function (FROM the “Interface Messages” part of the menu; a duplicate will appear in Functions, but don’t use that. The function node should have a little envelope icon in the corner)
Right click and type self, to get a reference to self, and connect it to the Target of the SendPitch Interface Message. This tells the BP that when it calls the Interface Message, it should call the version in THIS BP (an IM can have multiple versions in each BP; Unreal needs to know which iteration to call).
Double-click the interface message to modify it; this will let you modify the message FOR THIS BP. Inside here, add the “Get” to the Pitch float var you’re Setting just before you get here, and connect it to the output pin.
Compile, save.
Go to your AnimBP. In your execution flow, call the “SendPitch” Interface message. Add a “Try Get Pawn Owner” and connect it to the Target pin. Since the Pawn Owner of your AnimBP is the Character, this tells Unreal to call SendPitch AS IT EXISTS IN YOUR CHARACTER BP.
Since, in your character BP, it was simply feeding the Pitch float to its output, what this does is causes your Anim BP to “hop over” to the Character BP, call the IM function which is getting a variable from the Character BP, and pass it to an output that the AnimBP can see. By setting that output to be a new Var IN the AnimBP, you can subsequently call it in the Anim Graph to feed your blendspace.
So that’s interface messages. Learn them well; any time you need your inputs to do anything but drive the capsule around, they’ll be your friend (e.g. You can use IMs to send events for when the reload button is pressed to trigger a reload anim. Then you can use them to send AnimNotify from the anim back to the character BP so the ammo count can reset once the anim has completed. Etc).