When I initially do set this up from scratch the engines glow perfectly. Once i save it and reopen it and try to run it the engines do not glow at all. I do not understand why when I made no changes at all, just saved, closed and reopened. Below is the blueprint showing thrust and thrust glow nodes. Is there a way to set it up and use a scalar parameter and then change that scalar parameter within the game based on whether thrust is being applied or removed?
The static mesh is actually two separate meshes. One is the entire ship and one is just the section of the engines that I want to glow. Is there any other way to adjust that second mesh and make it glow in intensity in gameplay to simulate the engines receiving or losing power?
I would move the setting of the scalar parameter over to the InputAxis Engine Thrust event and NOT have it in the tick - that way when you are applying thrust they will glow and it’s not based on how fast your ship is moving… the parameter “Thrust” in the material is wired to the emissve I assume? and that value is larger than 1 for blue? like a value of 10 for blue will make it glow nicely probably
is this what you were referring to?
That was part of it - yeah - the other part was to make sure you are sending a value > 1 to the emissive node inside the material
If you are referring to in here…which value am I to change?
If it’s not here where you are referring please elaborate. Thank you for your assistance
Yes that is where I mean - so the value you feed into emissive will be “glowier” if you pump that value up - for instance in my picture I am taking the blue and multiplying that by 100 and feeding that into emissive - you could make that 100 a parameter called “Emissive Strength” if you wanted to have some control - or just plug in whatever value works for you
if I wanted to have access to the “Emmissive Strength” variable in the blueprint… how do I accomplish that. The reason why is because the ship will have acceleration and deceleration which I have working fine. But I want the engine emmissions to follow those player actions to give a visual representation. Because when I make that constant it does not give me a way to name it. Ultimately what I am after is I want the engines to be gray when not in use and increase in blue glow (emmission) as thrust is applied. And decrease in blue and slowly return to gray when thrust is decreased. (User presses space bar to increase thrust and Left shift to decrease thrust)
in the material you would right click on the 100 node and say “Convert To Parameter” and then you can give that a name and pass it a value from the blueprint (you already have a "Set Vector Value there, you just need one like that but it’ll be Set Scalar parameter value and change the parameter Name to what you called the parameter in the material) does that make sense?
This is what I think you mean but I must be wrong. First part I got fine. I set the initial value to 0 because I want the engine to appear inactive until thrust is applied. I also made sure that Scalar Parameter Value was checked in the material instance also.
But in blueprint I am confused. See note in image.
I did try promoting parameter name to variable and typing that name as EmissionValue but it still didn’t work.
I wanna keep it updating in real time so that it follows player’s actions. Sorry I’m still kinda new at this.
Those little white input nodes have to be wired up - they are execution pins - so in the red box you have, there’s nothing wired up to the start of it and so will never get fired
There’s also (not at the time of that picture) nothing driving the “Parameter value” of that node and it’s set to 0 - you probably already wired something in there, but just making sure you knew there has to be something other than 0 in there
I got it to work… kind of. Now the issue is, when I start the game and try to move forward it doesn’t glow. But if I turn the ship or move it away from its original start position it glows stronger and stronger. How can I set it so that the glow will be visible and constantly the same no matter what position the ship is in. This is what I have now. I will work on it but any more help would be greatly appreciated
Also, after I contain the emissive value so that it caps at a certain value, how can I change it in run time as if the ship was upgraded?
You are doing a lot of math based on velocity to determine the EmissionValue - I would forget all of that and have just a simple variable that you can set - 100 for standard thrusters - 200 for upgraded thrusters, etc… simple
Also I think that is part of your problem with it not glowing when you first move - because it’s based on your velocity and maybe you’re not moving enough yet? jut a thought, not sure what your velocity even gets to but then you are multiplying them all together (which really could just be whatever the forward value is and if the other values are zero then your result would be zero… and then you are dividing it by 5 - so the chances that you are getting anything remotely near 100 (which was a nice glow) is probably pretty slim… just switch it to a regular, simple float variable and set it to be 100 for now and then you can set it to be a higher value when the **** is upgraded… Make sense?
Edit: actually - now that I think about it your math probably always produces a zero? unless you are moving three ways at once - one of them will be a zero and thus produce a zero result…
I have not done much i variable work in blueprints. How would I set that up as a simple variable and adjust it as needed? What pin would I connect it to so that it gets executed constantly? I know this sounds basic but sometimes the simplest things slip right past us lol
EDIT: I think I figured out part of it. Now I have it that the engines just go on and off when the forward thrust is applied. But it doesn’t gradually increase and when I press the reverse it doesn’t do anything at all. I’m going to mess with it a little more tonight before I put up another pic but if you have ideas before then please pass them on
What I have so far. This will turn engine glow on and increase it a little. But when I let go of the key the glow disappears instantly. How can I fade it back out?
It doesn’t sound like you even want the glow to be based on velocity, but on player input. Have you tried using a timeline?
Result
Timeline is the way to go for sure if you want a gradually increasing and decreasing glow - what it can do is give you an animated value curve where you can set the length of time for the animation and also set the min and max values… It may seem a little complicated at first, but trust me these are worth getting a handle on as you will use them a lot (at least I do) here’s a quick step by step…
- Right click in empty space in the blueprint
- search for Timeline - there should be a “Add Timeline” (it’s at the bottom )
- Name it if you want to - Thrust or Glow is probably good
- Double click on it to open the editor
- here’s where I was like - oh man this is too complicated - bear with me
- look for the “Length” field - default is 5 seconds - this is where you set how long you want your animation to be - like how fast your glow will take to reach full power… 1 or 2 seconds maybe?
- Click the F+ button and that will add a float track
- Name it “Glow”
- right click in the timeline that’s created and “Add Key to CurveFloat_1” - values will pop up near the top that are “Time” and Value" - set the time to 0 and the value to 0
- Right click again on the timeline and “Add key to CurveFloat_1” - again adjust the values for Time and Value this time to Time should be whatever your max length was (1-2) and value should be 1
11 Bonus round… If you want the curve that’s created to have a better curve - you can highlight the dots that are created and hit the number 1 for each and that will give you little handles to adjust the curve - although the default position give pretty good results just hitting the 1…
so that will give you what’s pictured in ausernottaken’s picture - so since ‘1’ is not a high enough value, you see he is multiplying by 100 before passing it to his “Set Scalar Parameter” - I also attached a screenshot of what the timeline looks like in the editor
I will try that. Is there a way to increase the second value for max time during the gameplay? This way when a better engine is added the glow becomes stronger to represent that.
What you could to is create a variable for the multiplication and change that when you upgrade the thrusters - the easiest way to create a variable and have it already wired up is to drag off the empty pin (like where the 100 is) and there should be a “Promote To Variable” - then just give it a name and it’s done
Do I need to go into Visual Studio to change the variables in run-time? Or is there a way to do it in the blueprints based on what part is installed in the ship? Also, on a side note: because the starsphere background is so large to prohibit the player from flying past it, is there a way to create a particle field to simulate stars flying past the ship with their speed increasing or decreasing based on the speed of the ship?
Nope - you don’t need Visual Studio at all and you can set the variables at run time - all in blueprints - figuring all this stuff out are the challenges we all go through creating a game sometimes where to put things is the hardest part
one idea for the simulated star field might be to put a particle emitter in front of the camera - just a quick idea I haven’t done anything like that before
Do you have any experience with particle emitters?