I made my own character mesh in 3ds Max (pic in attachment), added its movement components for forward, backward, left, right, roll, pitch and yaw. Also I am using my own track model also made in 3ds Max. The project was started from a blank template and everything so far works fine. Now I added a Box trigger (marked on image2) that will on character entering it up the speed of my ship, but I cant access my current or default speed. The base idea was that when the character enters the box trigger zone, Wind component would multiply with ships movement. Wind direction is in the direction of the yellow arrows. Adding also the blueprint idea which i came up with, bualt textt dont know to finnish it. I am a begginer in this, so all help is wellcome.
I recommend looking into using a FloatingPawnMovement component on a Pawn, if you’re not already using a Pawn. This allows you to set values such as Max Speed, Acceleration, Deceleration, and so on.
To do this, go into your Ship blueprint, and click the Add Component button. Then type in Floating Pawn Movement and you should be able to add it.
Once you have this, you can grab a reference to your Floating Pawn Movement component, and then get the Max Speed. You can then add whatever you’d like to the value when your ship enters the Wind trigger, and then set it back to it’s original value when the ship leaves the Wind trigger.
Thank you very much for your fast and helpfull reply.
I am very gratefull but also a little confused now, so can you please explain to me what setter is the last node and why is the wind event connected to it? As much as I understood some tutorials, because I use box trigger for overlap, shouldnt I connect the trigger overlap event?
Yes in your case, you would connect the overlap event. The wind event was just an example in my case. The set is you setting the character’s max speed after you add whatever value you’d like it to increase to. Basically, when your character overlaps your wind trigger, you want to increase the movement speed (I used 50 as an example, feel free to use whatever value works for you) and then set the Max Speed to the original Max Speed + 50 (or whatever value you choose).
You can do something like OnActorBeginOverlap, and then drag off of the Other Actor pin and cast this to your Wind actor (or whatever you have decided to call the actor that contains the box trigger).Then, if the cast is successful, meaning that the actor you overlapped was in fact the Wind actor, you can perform the logic shown in the above image.
Also, you can use the Event ActorEndOverlap event, perform the same cast, and then decrease the Max Speed back to its original value.
I know that maybe I am asking trivial things, but still cant seem to get it to work. Tried the upper blueprint which you suggested, than added that cast to a trigger box, but my speed still isnt increasing. I converted my trigger box to a blueprint and made the last blueprint in it so when my actor overlaps with the trigger box i get an message on screen, which works. So what am I doing wrong with the speed?
The upper and the middle blueprint were in my character blueprint. only the print function is in the box trigger blueprint. I connected them, but still no changes to the speed. Here is the character blueprint (which i think i did correctly).
Edit: Both generate overlap events are ticked/enabled from the start.
You’ll need to plug the execution pin (the white arrow) of the Event Actor Begin Overlap into the Cast node in order to get it to function properly. You’ll also need to perform this logic inside of your character blueprint, not the Trigger Box blueprint.
EDIT: In order for begin overlap to work, you’ll also need to have your character’s collision set to generate overlap events, as shown in the image below.
This is the default First Person Character BP. In your character, you’ll need to ensure that you set both the mesh and the collision capsule/box to Generate Overlap Events.
I recommend adding a box or capsule collision to your character blueprint and making it the root component. Then on this capsule, ensure that you have generate overlap events checked as shown in my above image.
Then, use the Base Move Speed variable and multiply that times your SpeedIncreaseAmount variable (which is just a float variable that you can set to whatever you’d like to increase your speed by when you enter the wind trigger).
Did this work for you, because when I updated mine blueprint, the speed increases on game start, but when it reaches the trigger box, it stays the same?
Tried also to change values for Speed Increase Amount from 10 to 10000 and nothing changed.
Where are you putting the logic to increase your speed? Is it in your character, or is it in the Wind Trigger? If it’s not working in the character, you could always perform the same logic in the Wind blueprint, and then just cast to your character instead. Then, you can get the variables shown in the above image, perform the multiplication, and set the BaseMovementSpeed
I did both first in the character blueprint. After I did the logic of the character blueprint for Speed Increase Amount and put it in the TriggerBoxWind blueprint, and added a Print string to it. When my character begins to overlap with the trigger box the string is printed on screen, but speed doesnt change. Also did it with just putting a number in the multiplier and still nothing. My blueprint changes to the original are these:
Just realized my mistake. You’ll need to set the Base Movement speed on Event Begin Play instead of on Input Axis. So go ahead and do Base Movement Speed * 30 on begin play, and then set Base Movement Speed to that value.
After you’ve done this, instead of setting Base Movement Speed on Input, just get Base Movement Speed and plug it into the New Vel input of the Set Physics Linear Velocity. Do this for both Input Axis Move Right and Input Axis Move Forward.
Somehow I cant find my comment, so Im posting it again.
Could you please give me a blueprint view because I am not sure I understand what to change? Also I think I shouldnt change the Axis Move Right because I need the speed up to be only when the button for forward (W) is pressed.
As I understood, I should have connected it like this?