Hey!
Long story short, I’m trying to create a realistically behaving golf ball for a VR project.
Initially, I struggled to detect collisions between the ball and the fast-moving club. I eventually solved this by casting object traces and checking for collisions.
I’ve managed to gather all the necessary information to apply an impulse to the ball. The impulse and direction are calculated by multiplying the club’s speed by the ball’s mass, and then dividing that value by 3 (this adjustment feels better in VR).
Here’s the logic I’m using:
The ball’s logic:
I currently have a physical material applied only to the ball. I initially had different physical materials on the floor and walls, but I decided to focus solely on improving the ball’s physics first. So, I removed any physical material from everything else.
Here’s how the physical material looks:
The issue I’m facing is that while the ball gains the impulse and rotates correctly based on the impact location, it behaves oddly upon hitting the floor. It rotates in opposite directions, as if it has too much grip, even without a physical material. If you hit the ball from underneath, it moves forward but rotates backward, causing it to immediately reverse direction. If the impulse is powerful enough, the ball hits the wall and instead of bouncing back, it keeps rotating in place, similar to a character in a video game walking against a wall.
Here’s a video of the issue: It’s a short, 2-second clip, but you can clearly see the ball hitting the wall and then continuing to rotate against it instead of bouncing back. It bounces back, but quickly goas back to the wall.
If i reduce the impulse intensity, by dividing it even further, it gets harder to hit the ball. In the sense that the ball feels “heavy” since i need to move the club a lot faster to make it go further, and there’s a point where the Controllers will stop registering properly, since i’m going way to fast.
Any advice on how to fix this would be greatly appreciated!