Is there a way to take keyframes and snap them to the value of neighbors keys?
You use the NLA for this. Maya also has one.
Here's a walkthrough: https://youtu.be/-SQdHehksJw
You animate in your Fcurve. Open a dopesheet window, switch it to ACTION. Set your first keyframe (it doesn't matter where) and name the action: Breathe_1_10 (if you want to identify the duration for your keyframes, this is very helpful as you will produce ACTION clips). When you're done animating, press PUSH to NLA.
Open an NLA window, you will see an unnamed NLA track, double click it. Name it the same as your action (Breathe_1_10) and now your character's OWN NLA will be available to you wherever you port your character with your breathing animation. While in the NLA window, press N, go to STRIP tab on the right side tabs and scroll down to check-animate influence. That's the track's weight influence. If you want it to &quot;CONTRIBUTE&quot; to the animation, set the Active Strip&gt;Blending&gt;Add (alternatively: combine). They are self-explanatory.
Notice, once you enter the NLA, all the animation will be driven by mixing and combining weight Action clips, no longer it will prioritize the fcurve editor.