Short answer, you can’t with the default character.
Long(er) answer: You can’t abort the jump’s vertical velocity because it’s not velocity… it’s a scripted animation (in the case of the default character). It’s not jumping by increasing vertical velocity, it’s jumping by playing a “jump” animation which plays through to the end.
You’d have to disconnect the Jump function and make your own that plays a jump animation without vertical change, and initiates a vertical velocity that lets the character bounce up on it’s own physics, then set your vertical velocity to 0 on release of the jump button.
Not sure if I got the question but could you use something like 2 “Launch Character” nodes coming out of the imputaction jump without using the jump function, one with a +Z velocity and the other with a -Z velocity.
So basically you hold down jump button to “jump” and when you release it, you start coming back down even if you haven’t reach the peak of your jump yet.
I used a Launch Character node, then when released, I captured the Z velocity (as long as it’s positive, or not falling) and multiply by -1 to another Launch Character
I got pretty good results tying the launch character node to a 0.5s time line with a linear curve going from 1 to 0. The output of that curve is multiplied by a variable to control the jump strength, turned into a vector, and then piped into the launch node.
When you press the jump button it checks a branch for “IsFalling”. If false, it hits the “Play From Beginning” input on the timeline.
When you release the jump button, it hits the STOP input on the timeline.
My jump strength variable is defaulted to 110, but I want the character to jump quite high.