Well BPRs technique is not just a work around. There are lots of benefits to that system
This could be, but i am a total disaster if it comes to characters, animating is a pain already with IK’s it always messes up the bones/positions, if you don’t limit bones, IK has no use, if you limit bones, you cant even get a weapon from your back lol, without spending hours rotating bones and the ik to get to the right position. or with IK simple actions makes arm rotate a few times on its axis before it reach the position. So in other word i will look into it, but at a later stage.
I have seen your videos at resource BPR (globally looked at em all) but still wonder some things haha, but that wil get attention when i am at that stage.
At this point i am doing my character, so the bunny hop is very noticeable, but i managed to build a work around, that will fix the hopping and slope jumping (when you run up a slope onto a flat ground you get launched).
ray_check = cont.sensors['ray_check'] # (no true pulse needed -z direction)
if ray_check.positive:
# distance to object below, from first checkpoint(my case a ground senor cube)
# also the bunny hop check
distance = own.children[0].getDistanceTo(ray_check.hitPosition)
# distance the physics hop is.
if distance > 0.05 and distance <= 0.20:
# at this point your character cannot jump anymore, to fix add the biggest distance above
# to your jump action, like this example:
# if jump: (example code)
# own.localPosition[2] += 0.21 (so your jump starts higher then the hopping check)
# z = jump_speed
# distance to object below, from second checkpoint(my case a player cube)
distance2 = own.getDistanceTo(ray_check.hitPosition)
#set the player cube position back to the ground, z axis with a 0.01 offset else you fall trough the floor.
own.localPosition[2] = ray_check.hitPosition[2] + (distance2 - (distance + 0.01))
else:
own['action'] = 'moving'
own['player_action'] = 'jumping'