Launch Character

Is there a way to always have the same distance covered with launch character? If I launch it on the ground, it’s pretty stable and will go where i intend. If i launch while falling/inair/jumping, i’ll fly across the map. What can I do to make it a static distance whether in the air or on the ground?

The friction is the problem. You can set the friction to a lower value while Lanching to get a higher distance on ground, or get/make a boolean “IsFalling” (i can´t remember if there´s a function for this. If not, just add a line tracer to detect the ground). When you receive the input for the Launch (for example pressing a button or walking into a triggerbox), make a branch and check “IsFalling” or however you named the variable. Now you can add 2 Launch character nodes with different values (IsFalling == true -> Launch Character with less force. If not true, use a higher value) or create the a Float/Intreger “LaunchForce”, set it to the value you want to use and then Launch. I´d use the second method with the float, so you can access it easier in case you need it later.

I forgot to mention that I am settting CharacterMovement Ground Friction to 0 before launching and then setting it back to 8 after the launch is completed. It helps me get across the ground fast, but in the air, it’s ridiculous. So you’re saying I should have to Launch Characters one for isfalling and one for not and then I should find the numbers for each that give me the same distance.

OK this helped a lot. I have two different launches like you said and it’s easier to get close to a static distance, but I noticed something. I started printing the forward vector length after each launch and noticed that i’m getting a different value every time. sometimes it’ll be 2493, sometimes 2450. and sometimes 2510 and so on. Any idea why? Of course, I test it while standing completely still.

huh, forward vector should always be length 1.

What I’m doing is get velocity > vector to string and putting it at the end of my launch character code. and not only do the numbers vary, but the visual distance im travelling after dashing varies slightly as well. I start the game, dash, record where i stopped, and repeat. Sometimes i go shorter and sometimes further, but only slightly. And I’m trying to figure out why it varies at all. It should always be the same, right?

here’s a better question. what is it that makes being in the air (falling) different from being on the ground? if i set both the ground friction and lateral falling friction to 8.0, i still get different results on ground vs in air. i’ve been trying to see what the lateral falling friction equivalent is so i’ll do like, ground friction 8 and falling friction 9.5 or 10 and so on, but the number needed changes the more force/velocity i apply to my dash.

Even with this it won’t work properly, picture a LaunchCharacter off an edge, it will detect IsFalling as false, but when it leaves the ground it’ll fly away.

1 Like

For future users. You can change the falling friction inside the character blueprint. Select the MovementComponent and look for Falling Lateral Friction. The default is 0

If you only want to reduce the falling friction when using the Launch Character function, you can set the new Falling Friction for desired time then return to normal by putting the MovementComponent then access Falling Lateral Friction, set the value and then return it to default.

I do not recommend the Launch Character for an advanced project like Gears of War or Dark Souls , you have less control. What if i want the character to roll and cover if there is a wall close? or roll and sweep enemy leg all in one movement. A CapsuleTrace would be better and then add the mechanics according to your game.

Hope I helped someone :v:

1 Like