This implementation masterfully translates complex control theory into fluid procedural movement, proving that the future of character animation lies in physics rather than keyframes. It is a technically rigorous solution to the perennial problem of organic locomotion.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
[GameDev UE5] Cursed quadrupedal human? (True Physical Character Locomotion Day 16)
Added:Heat.
Heat.
Heat. Heat.
Heat. Heat.
Heat. Heat.
Huh?
Yeah. Fishim. Hello. An autoparator.
How's it going? Welcome. Welcome.
Welcome. Everyone, welcome all. Today we feat.
Um, what the [ __ ] just happened there?
Very interesting.
As you can see, uh, you know, it's it's a very it's a it's something. It's doing a thing.
me okay 3 EC how's it going so yeah currently we need to do well okay today I wanted to do some like more interesting stuff right um I want to [ __ ] do what's it called?
Andy, am I hyped for the next album? No.
How have you been?
So basically we need to do well I don't think we need to do transition from bipeedal to quadripedal but I was thinking of like kind of tidying up all the current code rather than tuning cuz essentially if we do quadriped quadriping quadripeeing feet it's essentially like a car right if if we are like a cube a cube or a a rectangular quadripeeing quad quadripedalization.
Um, I think it it it's almost like think of it like a car. Like you've got, you know, two sets of wheels that are sort of bound together by like a a shaft, you know, like um something coming out here and then this going between them. And so independently they can move like you know up and down or kind of turn not not really turn but like if we're looking like from bird's eye view then the like the kind of feet movement you know if we're if we're just going forward all of them are moving back and forth like this you know blah blah blah blah blah but then they can turn like this.
But then there's also if we if we do a doublejinted capsule. So like here's like the the capsule.
If we instead break it into two capsules so that we can do twist and also like leaning and stuff.
Um then it's like we can also you know have like a segmented you know what I mean it can go like but then these can also there's I don't know there's so many like degrees of also this is very long for a quadriped, but maybe it's a lizard.
So, I don't know. It's interesting, that's for sure. Um, yeah, it could be. Yeah, lizard people.
Exactly. Like Zuckerberg.
But in order to do that, I I need to kind of generalize Like a lot of this is just hardcoded.
Well, but it's like I don't know. Do I want to do I want to get this in a better state or do I want to start kind of functionalizing it a bit more?
Yeah, it literally is Fox.
It is some robo [ __ ] Um, ouch.
Yeah. Yeah, I mean once it's working it should be, you know, it should work.
But I mean it's the same with everything, right? Once it once it works, it works.
But when it isn't working, um, all blueprint at the moment, but I'll probably put some of it in in C equals equals, but I don't know.
It's a bit of a pain because Oh, yeah. You know what? Maybe I'll just [ __ ] eat that in there.
But see, then it's going too fast and stuff.
But is that just because this is going too fast?
And it's also like it needs to just not go so [ __ ] up. I need to just keep tuning it and just like uh I don't know. Are the steps too big or steps too small.
Now it's just like overshooting because there's like there's a few there's a few given physical principles that need to like be kind of I don't know tuning jumps. Yeah, that sounds like that sounds like a pain.
I know. I can ask the AI.
I can ask the AI robot also. Horrendous.
Welcome in the big stretch.
Doing three in a row.
towards re motion a lot because of it.
Yeah. Yeah.
Yeah, that's fair.
I mean, I just don't like the CMC or like most, you know, kinematic character movements cuz um it just like Oops. It just Oh, why was that going the right was going the wrong way. Um, it just never like works with physics, you know.
Oh, pardon me.
Also, I can crouch. That's funny.
Actually, I can jump. Hold on.
Remember we did pogo stick?
Um, so acceleration. So that's just accumulating the velocity.
One thing I could do is we can kind of feed back cuz like we have this we have this um you know I'm going to move the get rid of the character. Hold on the mesh. I mean, um, one thing to keep in mind, we essentially we know where the middle of the feet is, which is the the yellow guy. This this yellow one, the the drive vector.
Um, which is the middle of the feet, you know. Let let me look up what in in bipedal motion. What is the uh the the point between the feet called?
No, not the base of support. It's like the not the center of mass.
Well, like that's the thing in real bipedal motion.
Um, the drive vector is constantly changing because it's like when one foot goes down, you can see here with the balance vector, that's what I call it. Um, the balance vector constantly changes and whatnot. But we've kind of abstracted the motion of the character to like a flat. It's like the the the pelvis is at essentially a flat point and the feet can contract and extend so that like you know at this length or at this length it's just like they just move backwards and then they lift up to go to the next spot.
Um, can bipedal motion be represented with linear? What is it? Linear inverted pendulum.
Linear inverted pendulum.
What's it called? LIPM.
Linear inverted pendulum model use linear inverted motor. One of the most widely used in human robotics and biomechanics to generate stable walking gates.
Uh the linear constraint the standard pendulum equation is inherently nonlinear. To make it linear, the robot's center of mass is constrained to move on a constant horiz constant horizontal plane. By fixing the vertical height Z, the horizontal dynamics become linear and easily solvable. So that's what we that's essentially what we're going for um how quickly the center of mass is accelerating and adjust the next step accordingly to prevent falling.
limitations. No double support phase. I don't want a single leg support phase when one foot is on the ground, right?
Requiring instant foot switching, right? That's fine. Constant height assumption body neither dips nor rises during a step.
Variable height impul inverted pendulum.
Augmented linear inverted pendulum or linear or just linear pendulum model handle the double sword.
I don't know. I feel like the main issue is that like we have a target drive, the red the red color.
Uh maybe I'll like just pump the acceleration a tiny bit.
It also it might be that the um the balance vector. Oh no. What what's it's the look ahead step vector which is this guy here which is about well also actually you know what I'm going to solve this first.
I want to know why it gets so shitty.
So, okay, it's the stride acceleration.
Something in here is not working.
Dry vector.
Something's like accumulating.
Well, that's that's Delta World secondsed.
Well, let me actually see how big does that go.
No, the values do get pretty big.
I just want to know.
Is it just that physics gets [ __ ] when we time dilate?
Or is it that the acceleration needs?
No, cuz the acceleration is B.
Well, uh h you know, let me try something.
Cuz what's this giving us?
This guy here is turning a a difference in location essentially into an acceleration.
But does it need to actually get Yeah. Hold on. Hold on. Maybe I just forgot to [ __ ] delta time it.
Uh, horrendous Inferno. Got that cape years ago. I actually never got an Inferno cape on my main account. I I'm a fake I'm a fake Runescape player and I had a twisted bow and everything.
I just couldn't be bothered.
Just couldn't be bothered doing the inferno. Although I I did the inferno in the um in leagues league six cuz it was just like busted the water mage tank build just made it like comically easy.
So okay. No, I think this should be giving us Yeah. an acceleration per second, not the acceleration that we need on the way up. How have I what have I been doing here then? If this is velocity, this is the target acceleration.
Um, but then we're that's that's the absolute acceleration.
So then we turn that into an angle which then the difference in that angle and the current angle we turn into a a torque which is essentially like this and this are like the same thing in a weird way cuz that's literally just target drive vector.
Uh, I guess they're normalized. So, okay. No, they are different. They Yeah, it's normalized. So, that becomes a rotational force.
Um, which again here we we do stabilization torque and that just gets converted into an angle for the feet to be at. So that that's like the feet.
That's not very strong, is it?
I guess the acceleration isn't.
Yeah, you you can see it here. Ready? It tilts. So that's how we actually tilt and whatnot. Okay. So yeah, but down here where I'm actually accumulating the acceleration, it needs to be delta worlds seconds does otherwise I'm adding the acceleration amount.
Yeah.
So maybe this should just be a big number.
Wow. Um bigger number.
Well, actually we know that this um yeah this guy here we ate that in cuz this this here right is apparently if we a a ball or if we were like an infinite decimally small wheel.
This is the movement we'd need to be moving at to maintain maintain a given angle.
So this is almost like a target acceleration to not fall over.
Um, let me just get rid of that one for a sec.
And then this one should be here to just to correct that to stop the talk from talking the talk, you know.
Also, why are we losing so much?
Maybe the feet aren't um what's it called?
Fever values initialize. You know, we'll go back to normal feet.
Um and then we do foot collision blah blah blah blah blah down here.
Is that angular for the legs?
Angular for the feet.
Maybe that's just what I just pump that up to like gigger cuz I mean feet are pretty strong, you know.
That could be one of the reasons we lose traction. Yeah.
Uh little things matter 6690 subs uh from de log zero. Um no no don't lose anymore. You do more information how to game.
I am going to be doing more dev logs.
Um yeah. Yeah. Basically yes I I will be doing more devlogs. Um, but also more more educational stuff.
I mean, it's kind of like, yeah, the answer is yes, um, at some point, but I just I I I'll probably want have want to have a bit more to show before I start doing them again.
Um cuz it is kind of like a from the ground up sort of thing.
You know what? I need to check actually need the the edgation.
That's true. I think all of us could do with some some edgation.
What was that?
Lock the character.
Yeah.
Yeah. Look, I went down some rabbit holes and you know, there was the um the plugin, the water plugin that was I mean, look, the water plugin was worth it. Okay, so the feet are Yeah, they're they're level. Cool. Um, yeah, water water plugin brought in a decent amount of amount of funds.
So, I will be putting aside some more time to do that cuz I'm I'm sort of like I was halfway through doing um where the [ __ ] is it? Here. No, no, no. Wrong one. This one.
overhauling like the the water system.
Um which or you know the whole interaction system, but mostly the the water.
But then halfway through that, um, I bought a house and it was like, well, you know, now I need to renovate a house for, yeah, 6 months.
Um, and so this got put on the shelf, but yeah.
And then I know I just haven't touched it since then.
But I mean, a lot of this can be um a lot of this can be in dev logs, you know, like talk about this cuz this is like worth talking about to um non-game devs like, you know, you know, I kind of want the devlogs to be something that regular, you know, not insane people can like watch and enjoy and like be like, "Oh yeah, games are cool.
Video games are cool."
Um, but then also like for game devs to be like, "Oh, yeah, that's a really cool idea. How did you do it?" You know, I'll pay you money to to do it for me.
But I think yeah, something like this can kind of be simplified and talked about in a de vlog.
the sex train plug plugin for the marketplace. Any advice? Um, for a plugin I would I don't know. There's kind of there's a balance between, you know, like do you do you keep it plug and play and like it kind of cuz like my system it's kind of a black box.
Uh like obviously you can you can look inside it and you know change things and whatever but it's not like um it's not built like fluid ninja where it's like you can create a um sorry my brain just fogged over.
What was I [ __ ] talking about?
Right? You can't just like be like, "Okay, create a water simulation at this location or a water simulation with these properties that follow the player around and interact with these things, you know, interact with the the height map and the whatever whatever. It's very much like a a single blackbox system that you know exchanges flexibility for performance cuz like you know the wind the wind and the water are like directly linked together. They don't have to go through some interface.
So if I like blow wind then the wind can blow the you know the surface of the water around or you know if the water um trying to find somewhere that would be applicable.
Well, yeah. If the water like hits these these ferns, you know, they will jiggle kind of thing. And then like the the wind on top of that can blow the water and blow the the you know, shrubbery and whatever.
Um, and like they all read from the same input. And so it's like, yeah, it's super performant, but there's not really much you can like change about it easily. You'd have to actually like go in and do it yourself.
So I guess like picking picking the sort of style of plugin that you know well that works for you but also like you know it depends on the target audience like is it is it a kind of functionality that you know people that are just getting into gamedev are going to want to put in their project you know So their dev logs look nice or whatnot. Um or is the target like big studios that you know or like more more advanced users that can like that want a particular thing that your asset can provide.
Someone very new to Unreal can tell you the simil videos are missing a good grass video. Is there a lawn simulator?
Uh I think I've got a few grass videos actually.
So maybe even more in the regular category. I honestly didn't realize myself 3 years.
Congratulations. Oh, thank you. Thank you. Thank you.
Yeah, time flies. I mean, yeah, [ __ ] I've achieved nothing in 3 years. No, just kidding. I mean, I I honestly think that I Well, I don't know. the past 2 years I've kind of slacked off a bit with like streaming and videos and I've had a few like you know moments where it's like it's like yeah like I just want to want to get back on the horse and like [ __ ] do videos again and like I've got all these plans. I got all these ideas bouncing around in my skull and then but yeah then just falls off lose motivation or whatever.
Um but I don't know. I mean look it happens. There's no point getting getting uh annoyed about it. We all die.
Anyway, back to the the feet.
Um, and I just want to new water.
Is it new water? Yeah. Where's the Here we go. Water particles base.
Turn that off.
Cool.
Then we go back to the feet.
What's it called again? Physical feet.
Wait. Oh, it's probably over here. Here we go.
So, I want to make a bunch of stuff and all might just collide with one another.
Yeah. Yeah.
I mean, that's that's the thing, right?
Like I I find it really hard to be like switching gears.
like, you know, I'm doing this stuff, this physical character movement [ __ ] stuff, but then it's like um yeah, like I could make videos about it, but it's like can I really I don't know.
It's hard to do it all at once now cuz I feel like my I feel like back then.
It was like I was more interested in kind of making the videos, making, you know, de vlogs and whatever, whatever.
and like, you know, I could just put stuff together to then make a devlog interesting and what, but now I'm just more interested in like making the stuff.
And so making the videos is like harder to do cuz I feel like I'm not just making stuff for a video. I'm making stuff that, you know, will work into the future.
the future. I need to take this damn cardigan.
Also, Jed, hello.
You buy house next to Impossible. Yeah.
I mean, I mean, look, it was a it was a it was a crack den. It needed work. It's in a tiny little town and but it has good internet. That's the main thing. We have real internet.
Better than my old internet.
Um, did you ever release this one as a plugin or was it an external water just for your personal project? I will be releasing it as a plugin. It It'll be part of the Prismatape interaction plugin.
Um, and I'll be bumping up the price by like 10 or 20 bucks when that water's in it. So, it'll be like $60.
It'll still cost less than a video game, you know, than a than a AAA game. You get quadruple A water for a AAA price.
No, just got anything. Yeah, the uh the Prismatica dev learning hub.
Um, it is mostly geared towards uh like developers and stuff um to like ask questions and whatnot, but um I I'll be doing one for the game at some point that's like just about the game, not just about the the you know development.
So, we can buy it for 5.3. It should it should work. I'm pretty sure I'm in 54 at the moment.
Um, or is it 55? No, I think it's 54 like this this project which it it is also running in. Um, so I don't think there should be any issues going to 53.
Yeah. I mean, if if the plug-in already works in 53, um there's there's nothing like there's no extra dependencies for the, you know, the super water stuff.
So, yeah. Yeah.
You're going to use your plugin. It's made in release. would be uh would you be interested hearing about it? Could be used for plug. Yeah. Yeah, absolutely.
Um some people have actually released games that use it and they were like, "Hey, I released my game on Steam.
It uses your plugin like to do all the the foliage stuff and everyone says like the foliage stuff is cool."
It's like, "Wow, I am haunted. Now give me all your money.
Give me all your damn money. Give me some of that damn money. I'm just kidding.
Unless No, I'm just kidding. I'm just kidding.
Um, where the [ __ ] was that? There's heels.
So, now that we've fixed that error with the delta world seconds, um, we might be able to use time dilation.
or not.
Oh, you know what? Let's do this first.
See, now it's overtuned, over dampened.
Why is the um that green value, right?
That's the that is the stride acceleration, I'm pretty sure. Why is that so large?
Right? Cuz it's acceleration then it gets thing out. So yeah, maybe I don't need to the debug debug.
Um, stride acceler stride velocity stride acceleration.
I don't need to make that. Yeah. Yeah.
So, one thing I was thinking was um I can add a feedback loop to the feet to some extent.
Um yeah, actually no, you know what? Let's go to the velocity stuff.
which is like yeah center of gravity minus a previous center of gravity gives us a center of gravity's velocity which I also smooth to some degree.
Um, but what we could do is the stride.
No, what's it called? The um, [ __ ] It's called the drive.
No, not the drive vector.
It's the something center ball center stride center stride center. So we can get the stride center and make a new variable called true stride velocity.
Uh, you know, I'll put that, you know, maybe I should do this when I calculate the the stride center.
Calc stride center blah blah blah blah blah.
Well, stride true stride, you know, I'll call it stride. True.
So this is like the measured velocity of uh this yellow point down here.
I might even I might give it a a label.
But like this one here, the yellow and the red here.
This is like where the if the character was like a unicycle, that's where the wheel would be touching the ground.
So stride center we calculate it here.
Yep. Yep.
And then the true strike. True velocity is have to do it before the new one is set.
stride center minus this.
The new stride center equals stride true velocity.
Um, and it should be is it the it's the No, it's the new one minus the old one. Gives us the velocity.
Well actually no the velocity needs to be delta time.
This currently is change in position which is very small value but we need to divide that by how long it took. What was the time between the frames? Cool.
Cool. Um, so let's get a debug on that.
is smooth stride. So this is like the the smooth stride target velocity.
Target velocity and then target stride velocity. Yeah.
Um, but then we do actual thing.
You know, this is an Async physics tick.
Uh, no.
Uh, I'm not.
Maybe I should. How does that work? You just do this one, I'm guessing.
seems I mean it doesn't really matter too much.
Well, yeah, cuz I'm not actually doing I I I shouldn't need to actually. In fact, one of the um one of the ideas I had was to actually run a lot of this logic, like staggered, like only run like the feedback calculations, you know, 30 times a second or even less.
um and like swap or you know go through a list of you know walking characters.
Um but then obviously apply apply the forces on tick but you know do all the like these kind of calculations and stuff only every you know every third frame but like staggered. So they all kind of take turns doing it cuz like a lot of robotic sensors, you know, the feedback isn't constant or like especially like camera camera based stuff.
I don't know.
Um, let's see. Strike. Oh my god. I can't delete stuff now.
I can't copy paste it. So that'll actually someone doing sick burnouts outside.
Um, for should be on the physics tick by the rest of logic saying. Yeah, exactly.
Yeah.
Stride. same vector distance.
So that puts it down.
Wait, where does it actually end up velocity?
No, they're just this guy plus, you know, [ __ ] it. Let's just say just go down.
minus 100.
So that should put one.
Okay, that's this. Yeah, green line here.
Let's try a vector floor distance. I guess I never Maybe I unhooked that. It doesn't matter. Let's do this one. kill you minus one - 90.
Need to offset them all a bit.
And this is the stride target velocity.
Amethyst yelling at Larry. Is he scratching the couch? Naughty naughty boy.
See O minus 80.
So then this one here is the Huh.
That's all right.
He deserves it.
Right. True velocity. So this is stride true val.
Although it isn't it is the absolute velocity but that's different to the um to the [ __ ] the thing.
Ding. Ding.
Let's go. Stride true velocity here.
So, it's the orange one, which is very jittery, understandably, cuz it's literally just Yeah, it's constantly changing. I can't [ __ ] see it. There it is. Right there.
See, if I smooth it a bit, it'll be a bit more a bit more good.
And that was in here.
Blah blah blah blah blah. Stride center true velocity v interp 2 time dude target true velocity here. Bam. Bam.
Now that should be smoothed.
I also need to uh in the debug make an XY only.
Uh probably do the same with the acceleration and [ __ ] even though I think it is already by default.
Then the target velocity is also XY only kill tree velocity. Yeah. Yeah.
So yeah, the this one and that one should be relatively similar.
But I think maybe I need to use the the true velocity as like a feedback loop.
cuz yeah, it will oscillate a fair bit cuz like obviously the character wobbles around and whatnot.
Why does it still not like delta time slowing down?
Maybe I could I'll just do half speed and see if it still goes gigafucked.
I I almost think it's the um the physics constraints that just [ __ ] themselves with um you know slower deltas or they just don't even account for time dilation.
Anyway, it doesn't matter.
Um, so now that we have this target velocity and a true velocity, we can maybe well between them we would get an error value, but I I don't know. Again, it shouldn't really even matter that much.
Pardon me.
Mhm.
Mhm.
Yeah. See, that's the thing, right? is well no cuz it should it should know like it shouldn't really matter what the actual speed of the feet moving is because it should know like yeah this is falling backwards it's going to you know eat [ __ ] and die.
Um but then cuz it's just getting the difference between the drive target drive and current drive, right? Which is the the yellow guy and the red guy.
You know, you know what else I want to do? I want to be able to disable some of these [ __ ] debug lines cuz there's so much [ __ ] All right, let me let me sort them all into things that make sense.
Pelvis and center of gravity. All right.
This is facing vector.
So, this is all rotational [ __ ] Now, I can't [ __ ] put a comment in.
What's with this dumbass engine being dumb and asked?
Okay. Comment. This is rotation stuff.
This is the lean lean and balance stuff.
Have you feel like Unreal 6 dumping blueprints? I'm not too fussed about like blueprint.
It's more just they've said they won't have a visual scripting version of, you know, whatever the new shitty ass language is.
Um, which I think is a bit silly of them. I think I think they will suffer because of it.
Um, but as for like, you know, reddoing their scripting language from the ground up, I think is probably a good idea, like going forward cuz I think blueprint started as something that was, you know, like a a cool little thing that they were using internally to, you know, let artists do like monkey jobs.
Um, but then it kind of turned into a whole ass thing, you know, the balance from the Falcon.
Oh, where's that look ahead?
Look ahead, dude.
Look ahead.
Look ahead.
Now, inspector, let me cut you.
I'll cut you and put you here.
balance vector. Does that even need a That doesn't need [ __ ] text.
Um, yeah. Yeah. So, I think I think they're kind of stabbing themsel in the balls with that one, but I'm I'm not inherently opposed to it. I think they will cave and do like you know a graph version of the language cuz I mean the whole point of the language is that like it is like a a pre-ompiled C++ meaning that like everything is nuggetized you know everything is already code nuggets so making something that can you know something that can represent that and then compile it into that like a one one version of it which then gets executed as C++ or whatever.
Um yeah, let's see if I this.
So this is all our upward upward angles and [ __ ] balance drive etc. So, I've unhooked that. So, now we should have no upward facing thingos. Yeah.
Cool.
Um, there was one that was forward vector. This is rotation.
Rotation.
Rotation and facing. There you go.
myself wouldn't uh update without it cuz there five years perfecting bas on blueprint. Yeah, exactly. Exactly.
Um yeah, I don't know. They I don't know.
Do you have to redo a lot of this work for the plugin when UE6 does that?
Uh you mean like this?
Uh maybe I mean a lot of this here the the difficult part isn't writing the code you know like it's currently only like you know on tick you know get the center of gravity which is just loop through all the bodies you know figure out the center of mass that's easy that would take like 5 minutes to rewrite um this is just again just more vector math.
Um, you know, this is like a bit more well even then like this what once it's all figured out once it's designed it would take maybe like 2 hours to rewrite.
So I think and and it's going to be rewritten anyway just in C++ once it's all figured out. I just use blueprint to like, you know, I I I can literally just be like, "Oh, yeah." Like, "Press play.
Okay. Yeah. This is what happens when it does the thing. Cool. Quit. Uh, disable movement speed entirely. Play." And, you know, cuz it's a pre-ompiled language.
It just it just works.
Yeah. And then we can just pogo around.
You know, that's that's like the one thing about blueprint that I really like is that you can just you can just [ __ ] around and like just change [ __ ] You just hit control S, you know, play And then then we're we're going. You know, it's completely different. You don't have to wait like 50 minutes for C++ to do its thing.
Yeah. Exactly, Matthew. Exactly.
All right, let's say Where? Who? What the?
No, that's just, you know, we unhook them all.
Um, someone asked what's the performance difference? Um, it is more expensive in general.
Um, but it also kind of gets around a lot of stuff and then also considering that it won't run every frame like the the computation.
Um, it depends.
And I I might be doing like a light version of it, which is, you know, less accurate but more cheap, which will just be like floating capsule.
Floating capsule that leans and then probably just like shoots a trace out its butt.
and applies it. It'll be using thrusting forces.
Um, but it will it'll apply it to the ground as well.
Same with like weight and stuff.
So, it it'll still have like some two-way physics interaction, whatnot, but it'll be way cheaper. So that that'll be good for just like NPCs that are moving around and like kind of bumping into each other, but then as soon as you like crash into one, then their feet will activate and they'll they'll be actually walking and tripping over and stuff like I mean there's nothing inherently like casting is kind of just a thing that you need to do sometimes. I think it's more about um casting's often more like a memory hog cuz if you or or like load times like hitches and whatnot cuz when you have a cast in a piece of logic it creates like you know loading dependencies like if I had a um if I had let's say like my main character every time my main charact my monolithic main character class attacked and it hit something if I was then doing like a cast to be like oh is this is this boss number five and if it is boss number five do this other thing um that cast would be or anytime the main character is loaded in memory, boss number five and potentially all of boss number five's assets would get loaded into memory as well.
But it's like if you were just casting to something like uh like the enemy class from your main character, that would be fine because like the enemy parent class is always going to be in memory anyway. Like you're never not going to be using that. So in that case, the cast would just be fine.
I mean, it's not like it's not the best thing, but you know, uh, like performance-wise, if you were like casting a,000 times per second, the performance is the same as if you were doing a,000 interfaces per second or 1,000 anythings per second.
It is more just about yeah the the memory memory dependency chains and stuff from my understanding anyway. I'm just a guy that doesn't know C++.
Um so super plus is about just leave like that Unreal wouldn't have done BPs.
I mean, um, well, to be fair, I'm not the one that rewrites in C++.
I usually talk someone through it.
Um, and yeah, usually I tidy up the blueprint and whatnot.
Um, and and if I ever am doing plugins, I usually include the original blueprint file in there just so people can kind of dig through um, and whatnot.
So, these are all So, what do we got here? Forward. Forward vector is a facing vector.
You can get y You can hear now.
So then what is this guy?
So target velocity, absolute velocity, target acceleration.
Yeah. So these are all body or c o gvel exclerel.
This is all stride stuff.
which is all the stride target velocity, stride acceleration, stride true velocity.
Cool. And the feet stuff, which is right, just the the actual drawing of the feet. I think that's all there is.
If I do this, then all we have is a center of gravity and the pelvis.
Cool.
[ __ ] Rayman ass looking thing.
All right, then we plug the feet in.
for things that aren't rendered. I need updated prior render. For instance, widgets don't rely on.
Yeah, that's true. That's true.
So now, okay. Everything's plugged in.
Let's just create little break points.
Not break points, but well, yeah, literally points to break.
Plug back in again.
Thank you.
Let me go.
Is he funny?
We got to know by my side. Dead dog. No, I'm I'm all about the talk.
I find it helps me pace myself.
And also, if I lose my train of thought, it's usually because I was doing something that didn't like that didn't matter. You know, every time you cast, you're bloating your wand with M.
True.
Very true.
And for human. Yeah. I'm like just so hose mad. Hose mad.
What's this? This song is the motherload mine, isn't it? Banger talking to me. What the Whoa. Calm down.
You ain't no hoe.
Uh balance. Okay, so we do need these.
See, why does it do this?
Like I don't I don't think it does that, you know. Let me um let me uncap my um frame rate. Project settings.
Let's go 100 fps just to like see if it I don't know what the [ __ ] chaos solver. You [ __ ] off. Sol these nuts. Uh is it No, it's in editor preferences, right? frame right. No, it is in other one project settings frame here. Go 100 even though I only stream at 60 but yeah, cool. So, it's still [ __ ] but it's Yeah. Good. Good. Okay, cool.
Be homeost homeostasis.
Uh, after U6, try to learn their new language. What are your plans for future design prototype work? Um, yeah. I don't know. I might just stay on Unreal 5. I mean, honestly, I probably could have just stayed on Unreal 4.
I I I'm almost like I'm trying to um Oh, wait. We're getting lots of wiggling there. Is that cuz the feet aren't strong enough?
Right. The feet do weigh a lot more and they also can twist because we do twist them. But maybe it's just the um yeah, I don't know. My my my general like thought process is like you like I use Unreal Engine, but I but I don't use Unreal Engine. Do you know what I mean?
Like I try and build everything my own way cuz I I don't like relying on I know it sounds like tinfoil hat [ __ ] but like I kind of just hate how See, why is that whoo?
Is it because of the slurping? No, but it should just Why is that so cursed?
And it definitely needs spherical.
Um, yeah. I just hate the idea.
Just like the way they implement a lot of their like plugins and stuff.
It's like, oh yeah, like we we made this new [ __ ] plugin. It's like going to be in beta forever.
Um, and whatever.
Yeah. Really? Why does it jiggle so much?
Like, why are they So, side to side jiggly.
Or is that just an oscillation caused by this jiggling?
Actually, that you know what that could just be cuz the Why are they [ __ ] Why are they like voing? That's what I want to know.
Let's go back to our ah you know why actually I don't know why but or do I no well no well I do but I don't know looks vibe coded [ __ ] I wish I wish AI could like do blueprints What call shadow maps milliseconds tan stat GPU WP etc. Uh are you using virtual shadow maps?
Oops. [ __ ] Back makes it. Yeah, absolutely. Go. Go for it. I'm uh I love backseaters.
I love backseaters that have a background in biomechanics and robotics.
Uh, if there's any roboticists in the chat, please back seat. I I need help.
I'm just winging this. I have no formal education.
Uh, right. Let's see. So, that's all fine. It's doing its thing.
Oh, that's a angular Z, which is always zero.
Um, [ __ ] Maybe it's the legs that are twisting cuz they can twist.
Can I just bring back the uh leg mesh hidden? No.
It is the leg. Okay, hold on. That's That's easier to unfuck.
Although, I wish it could work. I don't know.
I kind of have to do spherical lur cuz it's like less [ __ ] up and like they technically do need to have some twist, but where are you? Leg joint three linear position strength.
Yikes. 2,00 is the force limit.
That's pretty good.
Yeah.
Um I I've disabled all the collision between the legs and the feet cuz yeah currently I've got the feet um yeah they just intersect each other.
There's no like hip offset.
You know this is a lot more stable now.
Maybe that was an issue.
Maybe we just get back to tuning.
So where am I? So this is our thing.
Yeah.
target drive, which again that target drive is based on the target acceleration, which is based on velocity. We can't see all that [ __ ] yet, but basically basically we just want the yellow to match the red. Yellow match red. That's all.
Which like I I look if I do this, if I just say like [ __ ] you just like get in that position here then like you know then it kind of works right like yeah I'm moving at the target thing.
Okay. Okay. Well, that that's kind of cursed, but um maybe not that hard. Maybe 10,000.
Like that looks like walking, right?
And then that might end up looking like running. I don't know why the feet um kind of slip.
I guess it's cuz we aren't I don't know. I don't know if the legs need more or less suspension.
I mean, the other thing is I'm using a walking gate to do that. But um Oh, you know what it would be? It would be Well, okay, here's the thing, right?
The Yeah. See how it kind of slips? I mean, it's kind of because, yeah, we're doing this corrective talk, whatever, which like I want to do as little assistive forces as possible cuz that's cheating.
Um, yeah, like we want it to balance as well as it can naturally cuz it will just result in more natural movement.
And I'm just thinking like, yeah, is the suspension in the legs cuz like the the the way I've got it set up is that it harvests the data from an animation to then use as a stride profile.
Um but but and so like like the kind of yeah the the length of the leg changing you know like like here this is the ground here's the character moving the hips or the center of gravity.
Um, like you know, yeah, if the leg is forward, it will just be longer and if it's here, it'll be shorter.
Usually, we have a knee to do that.
But it's like, should I be accounting for, you know, the center of mass going up and down like we do normally?
Should I bake that in? Should I have some data that you know like in the animations reference walk like yeah the pelvis moves up and down.
Should I be adding like an offset to the pelvis or should the leg cuz like rather than Well, I mean, yeah, the the reference point for the entire system is the pelvis. So, maybe it should be that the feet are cuz like from this this reference point, you know, orthogonally, the feet are moving linearly like that. But in reality, relative to the the pelvis, the feet are moving kind of down like in an arc, which would mean that, you know, if we go here, rather than it looking like this, it would look more like uh let's add another key.
How do you unfuck?
Shift alt. How do I unsnap?
Yeah.
Yeah, it would be more like this where it's like it does go down.
Maybe I'll just do an auto on that so it's smooth and whatever.
Um which will yeah kind of naturally yeah make the hips you know bob up and down a bit more but should also be yeah providing more like resonance in a way you know maybe even if it's only just like two extra centimeters that goes to what 86 That's 1 cm is walking actual walking with friction between foot and ground. Uh suspension moving in order to lower the friction.
No. Uh it it is actually yeah like like frictional.
Um, like if I go over to the ice, you know, just just I'm sure you can.
[ __ ] All right. Well, he's just stuck in a death loop. Hold on.
Yeah, it's it's it it balances. It needs the friction.
Um, plus the wheels be lesser power should move relative to the ground. Yeah, that's true. That's true.
Yeah, I guess it it is only Well, the only reason it is with walking is that it's just more energy efficient. It's not actually like a necessary thing.
I mean, yeah. See, we're getting bouncing now because the the legs aren't infinitely strong.
Um or maybe they're too weak cuz like yeah if I make the character jump and land you can see like there's yeah like a fair bit of suspension like passive suspension which I mean human legs can be pretty stiff and like a lot of what we do is active suspension where like you know we land so we we provide some resistance to decelerate slower like more gradually. It's not just that our knees are like springs.
Um so maybe we do just make them a bit more stronger.
Yeah. Yeah, like I've set it to 2,000, which is probably a bit too like Yeah, that that feels a lot more, you know, if I hit the ground with stiff legs monopedal. I mean, yeah, kind monopel.
Yeah. See, now we're just getting Yeah.
oscillations, which look, it's better than like being super [ __ ] I mean, that looks decent with the leg at that strength because yeah, again, we the the leg adjusts its length during the stride.
Like a lot of it might actually just be that we um we just need to figure out there's like a a thing in biomechanics like optimal gate uh frequency for given length and speed.
Optimal gave rings for person for for uh 60 86 cm leg 70 kg or no 75 kg I think I made the character six uh 86 cm leg 60 75 kg weight moving at 150 cm per second.
AI tell me now. Now we're vibe coding.
First quarter the compression should be basically all damping. Then after that it should really start pushing back up in my experience. Yeah. Well, I see it is in theory it's baked in, right?
Um, in theory How do we do this?
Just a big vibration mid stride.
Now we're hopping.
Or this this would be making the leg longer in the middle, which would Yeah, that would bump the pelvis up more.
Well, it looks like it is, but the the length of the pistons are changing.
Um, so like like if if I let Let me put the character back in cuz you you can pretty much aside from like the change in um the change in center of mass that would occur when you bend your legs. cuz you know obviously when you crouch or when your legs bend your leg bends so here here's hip here's foot and you bend it moves forward a bit um which I don't want to [ __ ] with but aside from that you can simplify you know a leg or an arm into a single thing with a with a retractable extendable length.
Um, so if I put the character back in the uh in the thing, you you'll kind of see Yeah. where where the cushioning occurs and whatnot cuz they they're just iade to the thing.
So, it does still, you know, bend its knees, but it's See, now now I feel like the legs are too strong cuz it's kind of like kind of jiggling a bit too much.
Whoa. [ __ ] Like, yeah. How much is too much resistance? Cuz if this is at just a 1,000, it'll just sink, you know, like it'll just not really be able to I mean, now it'll just Yeah, now it's Now it's too much.
Um, I'll be right back. I need to pee.
Heat.
Heat.
Hey.
Hey. Hey.
Heat. Heat.
Hey, hey, hey.
Uh, oh, pardon me. I should have kept my mic muted for that one.
Um, yeah. So, okay. So, um, oh, you know, okay, you know, something else that I was thinking, right, is that we I don't I think we account for the target pelvis height, right?
But we don't actually measure the the actual height of the pelvis.
Um, which obviously if we are kind of going up and down, right, then that obviously affects our what the [ __ ] H 300 thousand. Um that obviously like affects the the movement as in like well again though it should be selfcorrecting.
The controller should be correcting that. Like the controller doesn't really need to know how how fast the feet are moving. It's just looking at the rotation and being like, are the are the feet moving enough to be rotating the capsule back that way.
Um, see, that's what happens when the feet are too or the legs are too strong.
Like, we kind of need them to be a bit lazier. But then if these are too lazy, they they do that weird kind of oscillating twisty business like that where they just go nuts.
Also, the feet probably don't need to be that stiff now, do they?
Well, this one's based on the angular femur is the body.
Uh femurs being the the the thighs, I guess, right? The femur is in your upper leg.
Um on the that's the delta angle.
My femur during the gate. everything from the knee down to find response to that value.
Well, yeah.
I don't know. It sounds too smart for me.
Sounds too smart.
I'm trying to make it as dumb as possible.
But no, I I think one thing I might do, which will probably be Oh, no. Cuz it should account for that.
I don't think the Yeah. No, no, you know, I shouldn't need to do that. Um, let's also just get rid of the Oh, [ __ ] Wrong thing. The character mesh.
No more distractions. No more jiggle physics.
So, I mean, look, currently it's pretty good at just the um the thing. This is getting this tuned kind of dry vector with the That's the thing. against the target pelvis height and the crouch offset or target crouch offset. We're not actually getting the true pelvis height and whatnot. Although this works cuz yeah then if I up [ __ ] Maybe I'll maybe I'll just look up.
Um, oh wait probably frequency of one if I do it so that at uh step length strike current stride movement speed per second.
How what the [ __ ] was the calculation again?
Well, if it's movement speed per second 150 and I want it's 150 per second and each step should be one is a a stride is one foot doing a thing, right?
Let's just do Matt range clamp. Um, well, then it would be 150, right?
That's one per second.
[ __ ] That's another thing, right? That isn't um Oh, well, no. I [ __ ] changed this, didn't I?
What was that at earlier? Is it like three or some [ __ ] Um, yeah. Changing.
Wait, does it think that a gate is hold on?
Optimal gate frequency moving at 1.5 is this many steps per minute.
bottom stride length.
I don't care.
Like yeah, look, there's a there's a bunch of hacks we can do to make it more stable, which is like make the steps shorter, you know, like yeah, technically this is peak performance.
Um, or the other hack we can do is just have more legs.
you know, octopus mode or like tank tread mode, which like again this is handy for tuning it to some degree.
God, the way that moves is [ __ ] freaky. I'm not a big fan.
Yeah. Yeah. Road running mode. Exactly.
Was cool and funny otherwise. Yeah, it's kind of [ __ ] tank bugs.
True.
So, yeah. So, so like using this we can be like okay like the you know the P controller is overtuned like what a [ __ ] surprise. I also don't know if like here we go. How how fast do legs need to stride to maintain or to I don't know exeler. I I don't [ __ ] know like like I don't think this is really necessary.
Like yeah, this is the acceleration required at a single contact point to counteract gravity and maintain the tilt of any given angle if there is no torque. Like, yeah, cool story, but do we actually need that anywhere?
Wouldn't it just be better to try and use the feet to maintain the target drive vector?
Um, also this is inverse.
So, like currently, well, no. Why is it saying target drive back there?
Well, cuz we're falling and the drive is saying, "No, slow down. I don't want you to be moving."
So, in that case, it's like, "Okay, well, maybe we just need to, you know, move faster.
Move even faster. Faster.
Maybe even faster. Faster. Faster.
And now we get oscillations and it shoots itself. So then we go, okay, more damping, please.
And then it's like maybe a bit too Jesus Christ.
Well, then maybe do I need to smooth the target acceleration slightly so that it can then it's too laggy.
It's laggy.
So, like is the damping just too high?
Or is the acceleration too strong, you know, it should be 15 cuz Yeah. Like like if we want to go really fast really quickly, I'll slow this down. Then it's like, yeah, the target drive is that direction, but now we've surpassed that and it's like two [ __ ] thing.
So yeah, it's hard to know like is it just a tuning issue?
Can I do it just with damping and no proportional?
Then it's too jerky. Is it just proportional?
But the proportional doesn't take into account the the change in the values. It's just saying, you know, if this is this way, then do that or like should the target just be straight up?
Like should we fall and then this the target for the feet is to just stand up straight again rather than reach the target drive.
I feel like that is the wrong way to go about it cuz it almost relies cuz we never reach the target.
H.
So no, I think it is the target drive.
Where is that?
So when was I putting that in there?
The look ahead step vector.
Um, hello funny boy. Hey, watch out for that cat.
You funny.
Look, a new cat.
Don't go behind the monitor, please.
Okay, funny boy. Look, and another cat there. And another cat here. We're triple catted.
Want to sit?
You can sit.
Triple cat threat.
One other thing that I I I need to do the math on it, right? But what if I just had a fixed step length?
Does that change much?
Hey, Fain.
Don't antagonize my cat, please.
You silly boy. Silly goose.
Get you.
Not a fan.
I don't know if you guys can see him.
He's like under the Yeah, he's under the chair. Hold on.
No, no, no. He's fine. He's fine.
You okay, buddy?
What are you doing?
Let go get you.
Grumpy girl.
It's okay.
She'll teach him a lesson.
Yeah. Yeah.
He's just not in the movie.
Ain't no [ __ ] do.
Off he skullks.
He's a skullker.
Lady cat wins again.
We need to do me and just need to have a cat tournament where we make it like cats fight each other.
I think that's illegal.
Would not recommend.
Um, let's Anyway, let's continue tuning continue tuning the ping.
Uh, you fe thingy rock. I think they they don't for their regular locomotion.
I'm like pretty sure.
Um, but when you like knock a character or something, they they kind of go into a weird kind of drunk mode. But I I feel like their their one is kind of like character is falling.
Um put a leg, you know, put the opposite leg in this location to balance them. Whereas this is more like the legs are kind of always in pairs.
Um, as in like whenever it whenever one moves forward, the other one moves back equally as much.
Let's try six.
What about seven?
67.
67.
67. Yeah. Any 67?
67 enjoyer.
See that lean is way too leaned.
But then also that's too vy.
Let's let's move back to two legs. All right.
Six.
That's funny. That's so funny.
Wow. [ __ ] Why 10? Yeah. 10 to 150.
Oh, why the [ __ ] are they so quick?
Oh, I said zero to zero. I said 600.
That's not what I Okay, with two feet. It's a bit too too crazy.
Hello, lady.
Tell Now we're limping.
Quap too.
I mean, look, maybe this should be a friend slop kind of kind of dealio.
I don't know. Another thing that I was thinking is should we just keep going with the the anus vector?
Like if this here was just um well stride aim vector is just fully this guy then and the other thing. Let let me just check what is more stable.
The other thing would have been in here.
There would be this guy where it gets undone.
We undo it. And then also uh one other place here.
So now it should just be poking out the butt of the character.
So, like the the the capsule can't bend at the hip essentially, which yeah, I don't know. It kind of always means that the feet are always kind of behind the capsule, which again, that doesn't make too much sense.
We do kind of want them Well, the other the other option would be Um, they're always perpendicular to the ground, which would be just like no pitch and roll, only your And then in the this guy, uh, this would just be stride aim would just be down.
So then here it's like yeah if we want to you know what I mean?
No, I I think we were right when we did it this way where it's like a proportion of the lean of the torso is where the feet go cuz the feet do need to go.
Yeah. To some degree like that. And then determine finish target.
Um, oh [ __ ] where was it? Here, I think I think this has definitely helped it a fair bit.
cuz it means that yeah, like the trajectory of the feet is a thing.
Uh, that noise.
Oh, the inverse of that.
That's another thing, right, is that when your foot lands, it like changes a bunch of [ __ ] So, we kind of need to like anticipate that. Yes. Like the we're about to land, so therefore, I don't know.
Earth.
Nah.
Is the [ __ ] damping set really high or something?
Or is that just Okay, that must have just been the extra [ __ ] Maybe I should set the damping high.
Maybe I should make a pogo game about like just a guy with one leg, you know?
Why the hell is the look ahead balance vector there?
Wait, what did I turn off again? Oh, right. The movement speed. The movement speed's still zero.
And how does it even Why does it end up there?
Right? Cuz neither none of them are striding. It's funny.
Wonder what happens if I just scale this up. Did I actually account for that?
Well, I mean kind of, but also no.
Interesting.
I can't see [ __ ] I was thinking like it might actually be easier to do it with a really big heavy character.
Um but yala right I set that to zero. That's why it isn't You know what it is? I think the character can't physically move its legs now cuz I've made it a ton and it weigh a ton.
So maybe let's just go back to here.
No, it's just cuz I This is desired drive angle.
I was thinking maybe if I get the difference between the Got to open this again, you [ __ ] between the stride target and the stride true.
Um, which would be what would the error be if I wanted to correct it? Like if it was going too fast, true velocity was too fast.
Um, so if I was actually going 100, but I wanted to go 90, I would want to slow down, which means it is the target minus The true gives us a difference in velocity which can be an acceleration or some proportion of that as an acceleration.
Um, that's Yeah, that would have to be delta time.
What the [ __ ] Oh, sure. I guess the true stride velocity accounts for just falling over and [ __ ] right?
And also, what the hell is going on here? All right, I set it to 10.
But then why the hell is it going so fast?
Test drive velocity.
True velocity, right? This would be getting set at like a billion to begin with.
Uh cuz we're not at world origin. So that just means that there is like a like a set initial values thing. Absolute velocity zero.
Stride true velocity set to zero please.
Thank you.
uninitialize.
No, it's still mad.
Um, let's see.
Apply all the run.
Calculate our gravity.
Uh uh.
debugs here stride related things. Here we go.
So yeah, one of them just starts really [ __ ] high.
Like stupid high.
Why is this strike target velocity stride center and lean card capsule rotate the thing stride aim vector target height powers location stride center minus previous stride center.
Ah, maybe I should just do that here.
Oh, I Yeah, I literally just No, it's fine.
Do that. Uninitialize.
So our initial values aren't stupid.
There we go.
So this should do something.
# something.
Um, yeah. So, like if we're trying to move at some value, it can kind of selfcorrect.
Let's All right. Target velocity, stride, actual velocity.
And the difference between them, yeah, is creating an acceleration, which is kind of getting a bit [ __ ] and weird.
But again, I can't tell if that's just because the whole thing's kind of [ __ ] Or is this too high? Or is it too low?
Or is it the wrong way around?
H.
H.
What are you doing, Larry?
Just saying hello.
Sniffing.
Lady got such a grump.
Grumpy grump.
So, I don't have my back light on.
I just noticed.
Um, let's see.
This make my brain hurt.
So, is it just moving slower because this I wonder?
Yeah, kind of. So maybe that is well I don't know if it's helping or not cuz again is that maybe just muddying the feedback.
I mean, I think it does it is more stable.
The thing is though, like yeah, it just can't reach the target lean or the target drive, the red one. like it like it gets there but then it kind of just overshoots it, right?
which like but then but then the problem is that if I overtune it to like reach that target really well then it kind of oscillates too much because I mean you can see with the the feet it's kind of like [ __ ] going crazy cuz like it's so damn it's so sensitive to rate changes that the the bumpiness from the legs, you know, from the fact that it's a biped makes that super sensitive, you know.
Uh so Muno, we expose a bunch of variables, have a track speed, distance, a whole bunch of values, give the good ones.
I I had thought about it like yeah doing like a um it wouldn't even necessarily be I mean I I guess it would be machine learning to some degree like yeah like doing a fitness test you know have them all given this target and then here's a bunch of values to you know tune between zero and 10. And then just like randomize and run it a million times and see which values which tuning values end up, you know, with the best results of like yeah, the the current matching the target the most accurately and whatever.
Um, that just feels like so much effort, you know?
It's kind of baby's game like it's uh currently it it kind of seems like that, but it it should in the end be uh it should just feel like a real game.
It should just feel nice and like smooth and good and it, you know, you shouldn't even you shouldn't even notice it.
Like we're going to a lot of effort for something that you're supposed to not even notice, you know?
Okay. So I think this is doing some work by delta time slower.
Yeah, I don't know. It must be there must be some [ __ ] with the physics engine that just makes it not not happy.
Let's pump this back up to 10,000.
Yeah. No, most most games are a lot smarter than this. This is um this is stupid idiot territory, you know.
This is silly man.
Silly man territory.
Did I change that back? Yeah. No, I did.
I did cuz the up vector is different to the drive vector and whatever.
Um, see now it's just too [ __ ] Although that would be because this now isn't going and it's like See, that's the thing. If the drive is here and I am matching the drive well actually is that 450.
What's our stride target at?
It's like 350 something. Oh god.
Um, this is something the character does unconsciously. It will be a game with me. It It'll just be something that the character will do.
It's just how the characters will move basically. Um, and like it is completely unnecessary.
which and yeah, a good question, Tuna.
Um, it is kind of just a challenge. It's more of an iteration on a previous thing that I was doing.
Um, which was like a ball based character, which worked a lot. Wait, why is it Why does it feel like it's going slow motion?
This was happening with the other one as well. Is it cuz something's is maybe cuz I'm streaming.
Uh and I'm like going at 100 FPS. Oh, it's cuz I have a fixed frame rate.
So, it's fixed at 100. So, it slows down if it can't handle it, maybe.
Where the [ __ ] is it's in project settings, isn't it? Not thing.
Let's go back to 60 for a bit while I steam.
Okay, that's better. Um, yeah. So, this one this one worked like quite well, right?
Um, which was like, you know, simplifying the stride into like just a rotating ball on a motor.
and, you know, work decently well enough. You know, we can pull things around and get pulled around. And um the the main aim is to have like fully like two-way physics, right? Like if I jump on this, it pushes down as much as I push on it and whatnot. So, like if I, you know, I can use it to like time my jumps to jump higher like a trampoline, but if I like do it when it's on the way down, I won't jump as high kind of thing.
Um, and also, yeah, like if you're on a moving platform or you're on something, it will cuz it's like completely friction based.
There's no thrusting forces or just like arbitrary, you know, linear physics. It's all rotational.
Um, and we and we we generate linear momentum using rotational forces like you do in the real world. like nothing is derived from I mean technically gravity well technically not gravity gravity is in a [ __ ] up way rotational but it's like because like time distortion [ __ ] or space distortion I can't [ __ ] I don't I'm not a physicist Um, so yeah, this this worked decently well and was, you know, a lot simpler relatively.
Um, but just ran into limitations with like slopes. like on a slope, it's impossible for it to stand still, you know, like like cuz a a sphere has an infinite decimally small point of contact and the physics engine's just like nah.
And then also stairs is just like not, you know, just straight up doesn't work.
Um, and and also it's very prone to like little bumps because it's like a fixed bowl kind of length cuz like my my initial idea was um to like like if you were in real life if you were like walking and like stepping But your steps were like you were stepping one centimeter at a time but just like really [ __ ] fast.
Then you know that's kind of how the the ball is represented. Um how the humanoid is animated here. So it's just a b it's just regular blend spaces.
So we have like a walking animation, we have a running animation.
And then we just use the rotation of the ball to determine what animation we're playing. And then we have some like leaning, you know, back, forth, left, right based on the lean of the the physics body.
So there's nothing fancy going on. It's just it's as simple as it can be, but it's driven by a physical model.
So, if I if I just show you the blend space, I don't know if you're also a game dev or just if you know what I I don't mean to like, you know, devplain.
Um but yeah, blend space just you know there's an animation another animation and it just blends between them based on well this is the speed and then this direction is the well the direction Um, pardon me.
Oh, there's also like some knee bending stuff for the the crouching and whatnot for like landing and [ __ ] Yeah. So, this this was like my first idea. This took less time that I've spent on the legs.
Um, and I also didn't uh I kind of like shelved it cuz it was just a bit too jank in some aspects.
Can I grab that? No. I I get [ __ ] basically. Oh god.
Wait, why did that not Oh, cuz I didn't grab the backpack, right?
First.
Yeah. For like dragging things around and them dragging you around and whatnot. It Yeah, it worked very well.
But just yeah the main limitations was the the stairs and the slopes which is why we are trying again but we use feet which is where we are now but it just introduces a lot of extra [ __ ] because I mean it has feet Right.
And like we can kind of we can turn it back into a bowl by doing this and just do like eight legs and like you you'll see the similarities, you know.
Obviously it's not set up right. It's not tuned right.
This needs to go way faster.
I pumped the [ __ ] out of that.
I mean, that's reaching its target, you know, but obviously I I'm I'm very firmly assisting at 10,000, you know. Try just 1,000. See how much it wigs out.
Yeah. See, now it's going to oscillate cuz we didn't damp it.
Blah blah blah. More damping.
Too much damping.
Maybe there's just too much proportional feedback.
Yeah. Yeah, it is like tank treads, which is sort of like more how I imagined the the ball being anyway being more like um Okay, see that's better. But again, it's oscillating too much. Does that mean it needs more damping?
Maybe. But then more damping makes it just more [ __ ] Maybe it needs less. Maybe it needs less of both.
Maybe it needs less of that. and just Yeah. I don't know. It's It's just like tuning it is so hard.
This is where most of the time sync is.
It's just like, you know, can I get this to [ __ ] work?
Yeah, a lot of the time it just oscillates and it's like annoying and then once I get once I like if I'm if I'm in tank tread mode.
Um it's like okay well like it works. Cool.
Whatever.
Um, but then as soon as it goes back to being two legs, like the the mechanics change, right?
Cuz then you've got this this whenever the foot lands, there's like a b and it slows down slightly.
Yeah, it's kind of like the the more derivative like more damping is makes it more stable like more rigid but that also then introduces more like a different kind of oscillation.
But then I can try like okay what if I smooth the inputs you know like smooth the input acceleration if I do it like really slow so introduce some lag but then it's like okay is that just like I mean yeah it makes it less responsive so I don't know that The whole thing is just like a a neverending nightmare.
Oops.
Even just being like cursed quadriped is like better. But you can see here even now. Yeah, we get the oscillation.
So, I don't know. Like, maybe I could just base it on like and like Okay. And this isn't even this isn't even like doing like Okay. Well, this is more cursed, but Um, none of this even has like hip offset yet where like we actually do them side by side.
Actually, does that one is that just doing odd and even? Yeah. Mod two. Left, right, left, right.
Yeah.
Or we can do really cursed [ __ ] like like this.
But uh make that like No. What? Why?
Why is that one all the way over there?
Radius times four. One zero is one 2 3 4 that be multiplied by this actually. Yeah, probably.
Oh, that's going to make them go further out, right? But they are all evenly spaced. Well, that's [ __ ] up.
Now we're talking.
Strand Beast vibes.
It's creepy.
Imagine you see this thing coming towards you.
Now we get like some weird [ __ ] centipede [ __ ] going [ __ ] Stay balanced.
looked up P tuning. Yeah. Yeah. Yeah.
Yeah. I I'm quite versed on uh P tuning and stuff. I mean, that's how I got the ball thing to work.
Also, this won't be able to handle cuz each individual leg There's supposed to be one unit. This This isn't how I would do this kind of [ __ ] up creature.
Was it center? Yeah. Yeah. When when we move this way. Yeah. It is like a centipede.
Like I could do How many legs does a centipede have?
Like 71 or some [ __ ] Yeah. Many legs on centi.
Uh, A centipede can't have 100 legs.
There you go.
because they always have a pair of legs per segment, but they always have an odd number of segments.
Um, all right, let's just do 30 then.
29.
Yeah, lit.
This is the most [ __ ] up thing I've ever done.
And I'm here for it.
But I mean, look, it is working. That's the thing, right? It is working. We are moving.
Uh, you've lost the plot. Yeah. Have you ever seen a centipede strafing?
Is what a strafing centipede looks like.
Or is this more This is more like a um keep in mind, right, this is actually physically moving.
This isn't just like this isn't um this isn't just like procedural animation like this is actually moving the character forward in a real [ __ ] up way.
Dancing fence. True. True.
We can do like a weirder pairing. Oh, no. That would just be right. No, cuz they would go there cuz the select only has two options.
I'm just trying to think of like ways to do it more [ __ ] up, like to stagger them. But no, cuz these ones are all in like left then right, you know, like taking turns.
Also, centipede jump. You ready?
Yeah. Yeah. I mean, look, it makes it kind of Imagine. Yeah. This is the boss and it like walks towards you like this and you have to dodge out of the way or something.
It really doesn't like it at first, like going that way.
And once it settles in, it's kind of okay like that. There it is.
Now it's figured it out.
What if I did? Okay. Okay. This is something I wanted to try. So, let's just do So, this will do every second one.
like that. But again, this is kind of like a spider.
But what if every How would I do it? Would it be every mod like like in pairs?
Um, ah, index divided by two and rounded. How the [ __ ] do I do that though? Well, that will that should return a float.
Index divided by two returns a float.
And then uh floor it so that one one and zero would be the same. Then two and three would be one.
Yeah.
So then we say these ones go back 20.
This one goes forward 20. This is the index.
This goes into the X axis.
Uh something's unhappy.
Right value of the divide by two and then convert to that.
Right. But they go okay. Well, so we should be able to gallop like this.
This should produce a galloping gate.
Um, let me also do not multiply by just multiply by one.
Okay, we are hon.
Uh, we're spinning out. We're spinning out.
Although, no. Okay, this is going to treat them all as one. I mean, look, this this isn't built to handle the back and forth. You know what? It it can probably strafe fine.
Yeah.
Well, now it's just it's so it's confused.
With two legs legs, what do you need?
Cushioning of a bending knee, extra phys.
Yeah. So, we um currently the the legs um they can contract and extend which is like a simplified version of you know from the shoulder to the hand.
If I move like this, then you can simplify that with just a force or you know with with a piston essentially which is just a lot easier to to tackle like a baby. It is like a baby horse, isn't it?
The thing is though, I I would need humans to be able to like crawl.
So that that's why yeah even just for humanoids the by by quadripedality is like necessary as well. But I I would program it if I was going to program it properly.
Um cuz like the thing the thing about about things is that all appendages are um paired, right?
And so like yeah, the the the front two legs I would have as a pair that would sort of they they won't they wouldn't act independently, but they can move independently to the back feet.
So like like um if we were if we were a haunt looking from above his his horse head.
I don't know what a [ __ ] I mean I do know what a horse looks like. They got a [ __ ] they dumbass ear. This is a horse from above. Um, we'd we'd have an overall control which would say move this direction while facing this direction.
Um, oh well here's your target direction.
Here's the absolute velocity I want you to have. You know, move this way.
Um, and so it would be like, okay, well, we need to move that way. So, we're going to get this pair of legs and this pair of legs and we are going to make them both like in sync, you know, move in that direction. Or they can like strafe, you know, like this, you know, whilst maintaining that direct direction. Or we can make these ones turn very slightly this way and these ones turn this way to turn the character around to reach this target thingo.
Um so that's how like that would work. And then if we and so this is like our center point, right?
And so all the calculations would be based on like okay like from this center point if I needed to rotate well this one is in front and this one is in back. So this one knows to go this way while this one needs to go that way. And if there was like a a extra pair of legs, it would just be like, "Yeah, you just you just keep doing what you're doing." Or maybe it could do this one uh like does like this kind of [ __ ] I mean, it it would probably just walk in place, like just kind of move its feet up and down as to not kind of stick to the ground.
Um yeah. And so like for a biped, we would just we'd just have one set of dudes. It would be like, "Yeah, this is how we walk when we're bipedal." Cuz bipedal is kind of the only exception.
Um it has a lot of extra complexity versus quadripedalism.
Because quadripedalism you like you essentially can't um you can't really fall over as a quadriped easily unless you like die because like you're you're you've got two feet that are like yeah out here and another two feet that are like out there. So like your your balance platform, your your like fulcrum area is like giga big.
And they also don't need to um like they don't need to lean forward.
I mean, this one does cuz it's kind of [ __ ] up, but usually you wouldn't need to lean forward as a quadriped to move because you can just push with your back legs without any kind of, you know, you know what I mean?
Does this work as a uni?
We're going to find out.
to some degree.
It might actually work.
Um, I mean, it works like this, right?
So, if I go forward, it's kind of going the wrong way. But technically, it should um if it if it had a different like what do you call it? Not stroke, like a different thingo.
Also, it is very overtuned. Holy [ __ ] Um, if I had it. So, you know, it's kind of interesting. I kind of want to Let's just take this and duplicate it.
PB fit. Uh, hop test.
Can I What the [ __ ] is going on here?
Get out.
How the [ __ ] do I normalize these things again?
[ __ ] give me the [ __ ] normalize view mode. There we go. Oh, and stacked.
Yeah, that's stacked AF. Okay, so if we were hopping alo, I don't use the X currently.
Um, we would So, this is where our foot lands.
If we were hopping, we would need to like have a really short lift up phase. This is also a back to forth.
So, let's grab you guys.
No. What the [ __ ] is that? [ __ ] No. Go back.
Oh my god. Stop it.
Ah, [ __ ] it. Whatever. Just Okay. Hold on. Hold on. No, stop selecting. Just What does I say? So, this is the foot moving backwards here.
Just ye them.
Um, moving backwards and then it moves forward.
So, we would want to squish this part up a bunch.
like this.
And then same with this part. This would need to go here.
And then you go like So this is lifting the foot up. Yeah. So it's like lift it up. [ __ ] So here it's there and then that would be like button me up and so then that's forward.
Yeah. Lift up and move forward.
Can that just like straight?
God, I don't know if this will that needs to be more, you know, let me just set them all to [ __ ] linear.
Way [ __ ] easier.
I need to start lifting up and that moves forward and then lands as it comes forward.
Something like that.
Then I can probably just do an auto on that.
Uh, no, you know, I'll just keep it linear.
And then if we were in our thing and I said, keep in mind this is relevant. Um, this this is actually something that, you know, characters may need to do if they have a broken leg.
Also, limping needs to be I mean, limping is a bit easier. You can just um just make the stride lopsided so the stride slows up slow slows and speeds. All right. What's the current stride stride curve? We'll swap that with the the hop test.
He's not happy.
Um, you know, I'd probably have to tune the [ __ ] thing a bit.
Or is that just a hardcoded value?
Stride curve.
All right. Stride data asset is where it is. Okay. Okay. So, that one's not real.
This is where it is, right? PB feet walking. That has the flat foot testing.
This is the hop test.
See, as you can see, the steps are like a lot more.
Um, they're on the ground a lot longer and the the movement is a lot quicker.
So, if we started hopping, maybe it would work.
You know just just for just for memes we will make the the assistive talk way fatter 10,000.
Oh yeah. Okay. Okay. You know what?
Actually, if right before it does that, it extends a tiny bit. I like [ __ ] minus 90.
- 93.
Hold on. Okay.
Now we're worming.
Oh, no. We're going backwards.
Hey, stop that.
Maybe it was tuned different. Oh, there we Oh, now we're [ __ ] Now we're gaming. What does that look like with a uh with a character?
The dumbest [ __ ] ever. But like look, you guys can see the potential. Right.
Right.
Right.
All I need is just like a [ __ ] aerospace engineering degree.
All right. The other legs just [ __ ] freaked.
So that's that's shorter leg.
Yeah. Yeah, sure. And that jumps.
That might be too extreme because then it's just creating oscillations.
Nice. Anyway, yeah, interesting experiment. I mean, look, we can do it more like this where we like manually hop using jumping and leaning, which again, that would make a good a good game, a good rage game. XD rage game.
Friend slop rage game.
Pogo racer.
Fane. What are you doing?
You're a funny boy, aren't you? Funny.
Funny.
He's a silly boy. What?
What is it? Hm.
Hm.
It's a cursed freaky.
less.
Yeah. You know what? I I tend to agree.
Wow. Literal human centipede.
It doesn't like that.
I don't think it likes it.
Probably liked this better.
Uh, watch as we make them dynamic wars on the Gerson water waves. Like honestly honestly um it it will do that the way I do the buoyancy and stuff like yeah it should just be able to to do Yeah.
Hello.
Maybe it should just walk like this.
Like why didn't humans evolve to be like this?
You know, it's just so much more efficient efficiency. Look how it just handles all the bumps perfect, you know, and then jump.
slope climbing, you know, easy peasy.
It's not going that way.
What?
Oh god.
Oh no. Some of my legs got stuck up there.
Yeah.
Where are like bigger steps over here?
I'm so tired, by the way. I'm I don't even know what's happening.
All right. Can't make it up. See? Okay. This is where like having just two legs is like optimal, you know, in a in a weird way.
Cuz then we can just be like, "Oh, yeah.
We got two [ __ ] legs. We can like adjust the pairing of the legs.
I mean, look, I I'm heavily stabilizing it right now, but if I do longer steps, [ __ ] hell, it is somewhere over here.
You go up to like 2 and 1/2 m steps at max thing.
And yeah, like some of the time it can it can handle the steps cuz it does like a look ahead and we'll be like, "Oh yeah, we're going down.
We are going D O W N."
Although I don't know if it can I know. I haven't I haven't gotten there yet. The thing with the steps though is that like it tech Well, actually, no, it shouldn't really change the um the the thing.
Oh, look. It tried. Oh, I got there.
Calm down. Relax.
Relax. You are fine.
Look how scuffed it is. So good.
Big steps. See, now it's in like a an o like a proper oscillating rhythm, you know, like what actually happens when you when you run kind of, you know what I mean? It doesn't look as [ __ ] up.
Do I speak French? Uh uh uh. Jenn Palpa Franc just looks so bad with the [ __ ] stabilization The stabilization makes it feel bad.
Like I think I think I want to limit the stabilization to 1,000.
That's as that's as hard as it should go.
Will I be able to speak French in your game? Um, I don't know.
Maybe no. French people not allowed. French people are banned from my game.
Unless they mail me a baguette in the mail that isn't moldy. Not Not the stale baguette. You know what I'm saying?
Trying to bag a baguette. Hell yeah. I I I could go a baguette right now.
I hear birds outside. [ __ ] birds.
What have birds ever done for us, you know? Apart from [ __ ] lay eggs.
Damn birds. Get out. Get off my property, birds.
This is my land. I'm a land owner now.
this physics based movement. It's It's not physics- based. It is physical.
It's real physical [ __ ] We on that real physics [ __ ] and I hate it.
Tell him that he's fat.
Tell Larry he's a fat cat. Get out of my damn chips.
Get out of my damn potato chips. God damn it.
Pretty sure UEI phys is just phys. I mean, yes.
But yeah, it it is uh it's physical locomotion.
So, the aim is to not use any thrusters, only rotators. We we derive linear motion from rotate boys.
We get rotated.
Let's get rotated in here. Let's get rotated in here.
Let's get rotated in here.
need to um I need to when I when I make a video about this, I need to make I need to get an AI to make Huh. I did. I did.
Yeah.
Mhm.
Yeah.
Um, what was I what what am I doing? I'm so confused.
I'm not getting anywhere right now. I'm just
Related Videos

Setting up a curved screen with Immersive Calibration Pro 4 and multiple cameras (P3D v4)
FlyerOneZero
23K views•2019-07-21

Robot Learning with Sparsity and Scarcity
allenai
379 views•2025-10-14

Jorge Mendez-Mendez: Unlocking Lifelong Robot Learning With Modularity (2023-10-05)
umassmlfl
237 views•2024-01-06

Northwestern’s MS in Robotics: Student Robotics Projects, 2023
NorthwesternEngineering
1K views•2024-05-31

"Perfect" Turns: Turning by the Gyro - FIRST LEGO League (FLL) SPIKE Prime + EV3 RePlay Programming
ZacharyTrautwein
94K views•2020-10-02

Gorkem Secer: TSLIP-based Deadbeat Running Control of Bipedal Robot ATRIAS
DynamicWalking-wv6qm
298 views•2018-06-22

Self-Driving Cars Need Lessons On Human Drivers | Maddie About Science
skunkbear
26K views•2018-08-21

Milrem Robotics’ THeMIS UGVs used in a live-fire manned-unmanned teaming exercise
MilremRobotics
99K views•2021-05-20
Trending

we're almost finished the house (ep.125)
JennaPhipps
347K views•2026-07-22

We Finally Know Where Saturn’s Rings Came From
astrumspace
79K views•2026-07-22

BIG BET: Cathie Wood goes ALL IN on Elon Musk
FoxBusiness
89K views•2026-07-22

MIC DROP: Smithsonian Director Called Out For Woke Propaganda
TheAmalaEkpunobi
37K views•2026-07-23