I have a shoot mechanic that launches a physics ball that can bounce on the level collision (it is basically the FPS template ball). In relation to this I want to create a preview of the bounce trajectory. The idea is to use the trace to let the player know what direction the ball will bounce, before he actually launches it.
Later I will switch out the trace with a mesh (my “preview line”) and transform it using the values currently passed to the trace’s end-input. Until then I have used the trace to get the basics right.
Obviously there will be an error margin as the trace/line will not care about the physics (velocity and shape). I’m planning to accomodate for the velocity by using the charge values as criterias for the trace length etc. I will add the trace/preview to a tick event once I see that it is acceptable.
it is not working correctly. It seems like trace #2 is being done from the mesh normal rather than the reflect vector. I guess my math is incorrect here.
My questions are:
Any thoughts on why this is not working?
Suggestions for better ways to do this? If possible.
This isn’t based off of the projectile but instead it’s based directly off of the player view. See if it gives you any ideas. The ‘Mirror Vector by Normal’ might do the trick.
this code is working for me except it don’t reflect correctly in the -X world direction
In that direction it reacts like the normal is fliped, then instead of reflecting it refracts
I tested this in 4.6.1 but I couldn’t get your results. Which version of the editor are you using? Also, take a look at this tutorial I posted just to make sure everything is the same.
I’m using 4.6.1.
actually the problem is when the line trace hits a normal in 1,0,0 direction ( it not about the world)
But I’ve made a reflection by normal that is working for me (it was a hell to do this since I’m not a programmer)
I think is a bug because I saw other users reporting the same problem.
below the code:
I’m glad your custom function got this working for you. If you have time could you try this function instead and let me know if it also works correctly or if you experience the error again?
Hi! I’ve tested it and (I think) the behavior was the same of the default “mirror vector by normal” node. the error persists.
this setup was the same I did, only inverted the order of the multiply.
I don’t know why but when it calculates against the 1,0,0 normal it refracts so I multiply to -2 instead of 2
Edit: I tested and the setup I made didn’t worked in other conditions (different position) this is making me crazy
maybe if I make a video showing the problem you can helpme?
I know you’re in 4.6.1 now, but did you upgrade your project from an older version of the editor? The reason I ask is on further testing, my original setup works correctly in a new 4.6.1 project but I noticed that I get the same results as you in a older 4.5.1 project I have.
Okay, here are a couple possible solutions. Both fixed the issue for me in 4.6 but not 4.5.
Add the Normal and Impact Normal of the previous line trace and use that info to set the Start of the next line trace.
28166-
Or make an Array out of the Hit Actor and have the next line trace ignore that actor.
28167-
Let me know how they go.
I’ll try again when I got home. I’m thinking… maybe it stopped working because I put the results of the line trace to a variable and traced the next line with the variable.
I really have the impression that when I first tested the tjballard solution it have worked
I’m considering moving the project to a fresh 4.6 version to see if it resolves it. My current project has been upgraded a couple of times (from 4.3 i think) and is now 4.6.
The JIRA report came back as not being a bug. The developers said that the correct way to handle this setup is to use the first fix I posted above. You shouldn’t directly line trace off a a surface normal, you need to add that small offset to keep errors from happening.
However, there still seems to be issues with older converted projects. I believe recreating them in 4.6 will fix the issue and upgrading from there works correctly (tested with our latest internal build).
On a new empty project everything works fine though…
I tried to create a new project and copy the game folder from the older project to the new but the line trace problem came with it
Since it’s only a few nodes. What if you remove the ricochet blueprint setup from the old project, migrate the content, then recreate the ricochet blueprints again in the new project?