[WIP] Send It! - Unreal Mountain Bike Game

Hey all! This is my first WIP thread for my newest project, “Send It!”

Basically it’s a game about going fast down hills on the lowly push bike. No motors? No problem!

MOST RECENT VIDEO:
https://www.youtube.com/watch?v=yy8rp-ViGCI

Here’s the first WIP video of the bikes system in action. 100% real physics, no unskinned bones hiding secret wheels. What you see is the real deal!
https://youtube.com/watch?v=MRxEE9pqsus

Here’s some more recent screenshots.

The WIP video you see above is already quite dated, and the bike is far more controllable than what is seen.
There will be a video of that…as soon as I figure out the Character IK, so that it’s all dynamic. Might I say it’s really doing my head in. Doesn’t help that the documentation on this sort of thing is quite scarce. If anyone can help me out with IK I’d be extremely grateful.

More on the IK issue:

Yeah this picture is my best attempt so far

https://i.imgur.com/OzZtdXC.png

I followed the tutorial below as best I could, but also added variables for the feet (which don’t work, like the hands)

I think the tutorial is quite outdated, and that is the root of my issues

It also seems that possessing the bike from the human character stops physics from working correctly, but when I possess the bike on it’s own, everything works flawlessly. As soon as the rider hops on though, the bike seems to have no physics that allow it to hit the ground. I essentially have the same set up as the video, just with IK for the legs as well. In the Animation BP, all the IK’s are dragged to (0,0,0), which is not where the handles for the bars and ‘peddles’ are. It’s like it’s not getting the values of the variable. I also tried setting them in the Bikes BP in the construction script, but that didn’t change anything

https://i.imgur.com/ffnJafQ.png

Happy to post my BP’s if someone is willing to help me figure out why my IK isn’t working,

Heyah! Good questions I should be in a good position to give some answers, working on a very similar setup in wheelz2.

Happy to be

Word of warning, I just muddled through my IK setup with trial/error/intuition - my setup is probably not optimal.

Your screenshots of “broken” IK all look cheerfully familar, I’ve had my mannequin fold up in very similar looking uncomfortable poses :smiley:

Please do post screenshots of your animation BP and I may be able to give you some better information - a video of the current state of affairs would be handy/fun too

FWIW - my setup is:
the bike has components for:
-attach point for rider (seat)
-targets for hands
-targets for feet
-target for spine

I use FABRIK to attach the neck/head to the spine target, and two-bone IK for the rest.

In the animation BP - I strongly recommend setting some “default/testing” values - so you can better know if it is your IK setup at fault, or the data you are feeding it.

FWIW - to transform the IK targets into the correct space for the skeletal mesh, I get their world transform, then subtract the skeletal meshes position, and apply the inverse of its rotation (i’m tempted to watch the video you linked to see if they have a better method)

As for physics being broken when you mount the vehicle - first off, do you really need to have your character off the bike? Everything (including the IK) is much easier if there is just one actor.
I’m tempted to switch back to this method in wheelz2, though it is nice to be able to get off the bike, it is by no means a core part of the gameplay. IK is solved, but networking still needs some work, it is nearly correct, with occasional issues, and it seems I need to do some more work to be able to record/replay demos without things exploding.

Assuming you do need to be able to get off the bike - the main issue I ran into was from not disabling collision before attaching the rider to the bike.
Ensure physics+collision is disabled for both the skel mesh and the capsule component before attaching to the bike.

Looking forwards to seeing/hearing more of your work! I’ll post some videos of my cycle soon too

Thank you for the quick reply!

Here’s my Anim BP, both the event graph and the anim graph

https://i.imgur.com/KIfEFKW.png

Setting default values in the Anim BP seems to show that the IK system is working fine, but the communication to the bikes variables that are controlling where the IK should be seems to be the issue. I may be casting incorrectly? Or the way I’ve set up the Billboards that mark where the points on control are could be wrong too. I’m unsure of how to parent them to a socket whilst still keeping their values, but world transform shouldn’t be effected by that
Here is how I am setting my variables in the bike’s BP, which is what the Animation event graph is reading

https://i.imgur.com/zvju4RV.png

And here’s a video I just recorded, before trying to implement FABRIK (It only made the skeleton from pelvis to head rigid, didn’t really make anything any better, But I implemented it on a whim just to see if it would work, unsure if I did it right)

And thanks for the tip on possessing the bike, I can now hop on it fine and ride away. Or as fine as someone can be when their limbs are being tethered to some unknown location

Yep! another familar looking IK madness :smiley:

I think the root cause here is probably a mismatch between local/global coords

My solution is to transform into local space manually, as in the screenshot below

However - you may be able to skip this step by selecting the correct coord space (world) in the IK settings

But I’ve not tried this - if it works, it should result in simpler code, and hopefully more performance!

Hmm, Changing the joint target location changes it, but I can’t say whether for the worse or better. Strangely, the feet are working…okay-ish, but the arms. It’s as if they’re attaching to the bike, but holding the bars at a 90 degree angle to the side, and not properly rotating with the bars either. See the attached picture

I could understand if both the hands and the feet weren’t working, but they currently have the exact same setup. It’s perplexing. The values are going through properly and I’ve got the values copied from the bike into the default position of the Animation BP, it looks just fine there. But once I actually get into gameplay, it breaks and the feet work, whilst the hands find strange spots that aren’t being called

Hmm, hard to know what is up from the static screenshot - but if it…

Glancing over one of your screenshots

looks like you are connecting a hand to a foot! (first one) Better run through all the relevant BPS for similar errors.

Suspect you may also need to swap the hands round.

Also - you can try enabling stretching on IK connections to help debug - makes things like connecting to an incorrect distant location more obvious

Can’t help but wonder if I am taking too much time to help out a direct competitor :wink:

UPDATE 2:

IK IS NOW WORKING (Basically)

Thanks for the tips Alex! I can’t believe I didn’t pick that up. After a bit of fixing small mistakes that must have only been born out sheer sleep exhaustion, it works in a very basic state

Considering switching to a different wheel system, right now I’m using a sphere collision on the wheel and that’s it. But a linetrace wheel may be better. Must research on how to implement that
Numerous tweaks that mean the bike is much easier to control than in the first video. Speed can be accomplished relatively safely, although crossing the joins in the terrain at speed has horrid consequences. You can even whip (throw the tail end of the bike out) mid jump! That was a feature that occurred entirely by accident, simply due to the fact that I’m using physics as opposed to animation and faking it
Here’s a gif (Hopefully) of the first in game whip! :cool:

https://i.imgur.com/4QpYgV0.gif

Progress is good right now

Great! It’s good to see it up and running :slight_smile:

I often find it silly little mistakes can be harder to catch.

I’m also using a sphere collision on the wheel, and am not totally happy with it - but for my purposes a line trace would not be much better. I’m considering a bunch of line traces, a sphere trace as well as a few other options.
Though, I may even stick with spheres - it looks like you don’t have suspension? that can really help with terrain joins
Before suspension, when driving over a join my bike would often do a full flip… now I hardly notice

My issue with spheres are more to do with high speeds, sharp turns (or rather, strong leaning) and fitting the wheel through small gaps

FWIW - this is the current state of my cycle

It has a few handling problems from too much tweaking the regular motorbike (not so obvious in that little vid)

What program(s) are you using for recording, editing and making gifs?

Now you are just making me look bad with that cycling demo :wink:

I do have a bike that has suspension, rigged and ready to go, but I thought I would get my core mechanics working on a rigid bike before I mess with suspension. I could be wrong in that philosophy though. Right now my suspension is very rudimentary, and was causing me a lot of trouble getting the basics working. But now that I have that sorted (to a very basic degree), I think moving onto suspension may be best

For recording I am using XSplit Gamecaster (software that came with a complementary licence when I bought my computer), for editing I’m just starting to try out Hitfilm Express 2017 and for GIF’s I just used Giphy. All uploads are handled by either Imgur or Youtube (respective to their format)

Looking good, keep up the effort!

I am MTBing myself and would love to try some interactive Cross-Country style MTBing in VR during the cold winter time. Don’t know if sweating and VR will fit, but this game makes me want to try on a home trainer instantly! :smiley:

I would love to do something like VR implementation! Unfortunately I don’t have a headset of my own, nor do I know anyone with one, so prototyping may be a bit tricky haha
Also, my current spare cash is going towards a new MTB (I MTB whenever I can, and I’d appreciate a bike with a decent spec list, as opposed to a el-cheapo Walmart style bike)

But VR is definitely on the list if I ever get access to a headset! Thanks for the support MaSe87

I think your cycle can happily up better than mine, which is somewhat over-engineered, based on a motorbike model, and has a few issues not apparent in that video. (mostly that it can be easy to lean too hard and fall, or to be unable to lean hard enough and fall outwards on a corner - I could try and call it a feature instead of a bug… but hope to fix it, or perhaps build a new cycle model)

Also, I suspect you have more real MTB experience :wink:

My motorbike works well but that’s another story!

Also tempted by getting VR up and running but lacking a headset. https://www.pimaxvr.com/ looks quite tempting, either their 4k or 8k headset. Lower cost than rift/vive, higher res, but lacking motion control and positional tracking. Also has lower refresh rate.
Actually - looks like the vive and rift have both dropped in price recently!

Regardless - keep up the good work, not only is it helping motivate me, but I really am looking forwards to giving your game a go