IK Feet Placement Setup & new blog

Hi all!! I would announce my new blog about UE. It’s hosted on a free hosting provider for now so don’t be afraid from URL. I also would to ask sorry if my English is not perfect. I will appreciate any correction :smiley:

And with my new blog i would announce also my first tutorial:

IK Feet Placement Setup

http://unrealdevelop.org/wp-content/uploads/2014/04/IKPreview.gif

Well, any feedback and reply will be appreciated, here and on my site. Enjoy

Sweet, I’ve been wondering how best to handle the capsule location with IK. Thanks!

Pretty good!
Added to bookmarks :smiley:

tnx for your effort

This article is very easy to understand.
Great!

This looks very interesting. Also because many models share the same skeleton. Will try this out when i have some free time. Thanks for posting such an extensive tutorial, and what appears to be easily followable.

Thank you guys :slight_smile:

Heya, first off thanks for the very well documented tut! :slight_smile:
As a test ive followed it too the letter so i could compare it to what i had, and while you have a 5 times nicer structuring (wich i shamelessly copied now lol) im seeing some issues with feet placement that dont show in your final preview gif animation at the bottom of the tutorial.

The FInterp and RInterp seem to be causing an issue where the feet dont get placed exactly where they should, when standing on a slope, topmost foot will always be sunken into the slope a bit, and lowest feet will float a bit. When i unlink the *InterpSpeed variables from the several ‘Update Foot Offset’ function calls in the anim blueprint, it stops misplacing feet, so my hunch is that 4.14.3/4.15 handle the FInterp and RInterp differently then before? (possibly deciding ‘its good enough’ sooner then in earlier engine versions?)

Its not really a problem in my case since i built another IK system ~2 days ago (from a much harder to understand source, so in effect i learned alot lol) so i have a good idea of what i can change to overcome the issue i describe (redo the feet & hips offset bit in ‘IK Update’ func) but i was wondering if you
a) Are aware of any changes too the engine that may have caused this
b) Know of a fix without me rebuilding half your system :stuck_out_tongue:

Again thanks for a great tutorial!

It’s hard for me to understand your issue. If you could upload a gif or a video would be useful

Cant really make a vid atm, so put together the below image to hopefully explain:

So whats happening top-left is the feet are not properly placed, and it seems to be related to the FInterp and RInterp nodes inside of the ‘Update Foot Offset’ and ‘Update Foot Rotation’ functions never actually reaching the target value (even when i just run the IK all the time, like i did for the above screens/am doing for testing) this assumption is made stronger by the fact that if i disconnect the *InterpSpeed variables from the IK function nodes marked with the red arrow, i effectively tell the FInterp and RInterp to go to target straight away, and then i get the result on the top-right, where the feet are actually properly placed (but obviously now it instantly ‘snaps’ to position rather then moves too it, which isn’t great either)

That’s wierd…:confused:
I’ve tested on 4.15 and i can’t reproduce this issue… Are you sure that you have followed the tutorial completely?
However thank for notice me this :slight_smile:

Yeah i went over it 3 times now to double check, really seems to be an issue with the ‘*Interp To’ functions
Im on 4.14.3 atm, i’ll have a look if this still happens in 4.15

Edit: getting same result in 4.15…

Idk, i was discussing this in the ‘unreal slackers’ discord channel earlier and everybody seems convinced that its my error, but im not convinced it is, im logging the target and return of the ‘Update Foot Offset’ function (read; of its ‘Finterp To’ function inside) and im seeing it level out to values that are offset by up to 10 points from the target values… (depending on how character stands) See below screens:

Note how in the second screen theres the difference between the Target and Return values, but ‘FInterp To’ settles on those result values instead of the target value mentioned infront…
So the first and last value in that list are extremely likely the left and right foot, and they settle on wrong values

Love this tutorial. Works very well. Thx for sharing. :slight_smile: I’ve replaced the byref setters via Blueprint-Interface getter/setter… as I have different anim-BPs and would not cast for a specific one. For some reason I did not get byref working with blueprint-interfaces. My custom meshes even requires *-1 Z instead X for the left and right effector loc in the AnimBP (probably as hint if somebody else uses a Blender export). Works way better than expected as first (after some hours of experimenting with other tutorials).

However there is some minor issue with the FInterp in IKUpdate caused via the Delay in the IK event graph. I think it does not have something to do with 4.15. I’ve fixed it via wiping the “IKUpdate Part 4” branch of IKUpdate and replacing the Delay via a Retriggerable Delay:

Reason: If you stop movement and the feet gets close to the pos where they should be (NearlyEqualTo for both feets) the IKUpdate triggers the DisableIK-Event which calls a Delay that would close the Gate (no matter what happens afterwards). So if you start turning again while the Delay is already counting from 0.5 towards 0.0 a further IKUpdate would try it’s best to reach again the best pos for the Feet but fails too soon because the Delay of the previous successfull placement finally counts to 0.0 and closes the Gate. Leaving the feets in the air.

The retriggerable Delay would always give a timeout after any new EnableIK event and resets the counter if you turn/move again… so I always get at least my timeout time (1.2) that is required to finally let all FInterp finish (and give me enough time now to let even those 90° rotations finish) but still don’t linetrace forever (which is important to stop jittering of one feet if you get a unlucky tracing pos at some stairs).

Can someone help me to fix this problem pls?
http://makeagif.com/gif/-AFAfog
I want to setup IK foot myself and having this annoying problem=.=
I knew its the problem of the line trace, but i dont know how to fix that.

Move the foot socket in line of the heel

Thanks, i will try that :smiley:
Thanks for your answer but it didnt work, when i go up its ok, but when i go down, i have the same problem =.=

Great tutorial Kheka, thanks a lot.

Anyone tried something similar with quadrupeds/animals?

I mean only using Fabrik nodes or two bone IK nodes, beside IKinema or other paid plugins.

I am thinking of using a “chain” of fabrik nodes but might need to add constrains/tweak the engine code.

I could try something, but i don’t have a good animal model and BP setup for it. If someone will give me an example project where the pawn/character is an animal i will adapt it.


In case anyone was wondering how to add Set Float by Ref

  1. Set function input value to By Reference
  2. Pick value output and right click and type “set”, then scroll down …

Thanks for this for the most part easy to follow tutorial. Below is some testing, with uneven terrain there are a few issues, i guess it requires further tweaking