BIK: Full Body IK Solver

I made all these changes, and things still work fine for me, i.e. if I understand your issue correctly. Is your issue that you make some changes to your game project’s cpp or header files and the entire engine requires rebuild ?

Are you by any chance using “Rebuild” to build ? If yes, then that’s a known issue with projects using github engine source and is independent of the plugin. If not, please let me know.

There is something screwy going here. As an experiment, I used the stock packaged binaries for 4.13.2 and created a c++ project for the 3rd person template. It was automatically compiled after a few seconds and the editor opened with the project ready to go. Closing the editor, inserting the plugin, and restarting causes no issues. Adding a BIK node to an anim bp causes no issues either.

Now repeat the process for a Git source editor build. The Git version does not automatically compile the new project. Furthermore, if you attempt to compile the new project manually, VS demands that you rebuild the editor and ShaderCompileWorker. (The editor and SCW are tagged as out of date.) WTF? (This is without the plugin installed at this point.) So it’s looking like there’s something rotten in the Git version I’m using with the build system.

So let me mess with this some more. It looks like there’s something wrong with the release source build on Git.

I went back to the stock editor which solved the plugin build issues. However, I’m having trouble with BLook when used with a skeleton other than the mannequin. It’s crashing immediately when hitting play or simulate. All I did to produce this was to add a BLook anim node to a very simple animation script. The new skeleton has the same back/neck/head hierarchy as the stock mannequin.

MachineId:4799BBC94746EEDE6E6B80B8F278A99C
EpicAccountId:

Access violation - code c0000005 (first/second chance not available)

UE4Editor_Core
UE4Editor_Core
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_Engine
UE4Editor_FullBodyIKPlugin!UAimTargetComponent::Solve() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\aimtargetcomponent.cpp:39]
UE4Editor_FullBodyIKPlugin!FBLookSolver::PreSolve_Super() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\bonecontrollers\blooksolver.cpp:175]
UE4Editor_FullBodyIKPlugin!FBLookSolver::Solve() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\bonecontrollers\blooksolver.cpp:212]
UE4Editor_FullBodyIKPlugin!FAnimNode_BLook::EvaluateBoneTransforms() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\bonecontrollers\animnode_blook.cpp:118]
UE4Editor_AnimGraphRuntime
UE4Editor_Engine
UE4Editor_AnimGraphRuntime
UE4Editor_Engine
UE4Editor_Engine

Edit: I had a mannequin in the level in addition to my player character. Both had BLook added to their anim graphs. It seems that running them individually works just fine. But having them both in the level triggers the crash.

Is there an adjustment for getting the feet on the ground? My character is floating about 6" about the surface of the floor.

BLook is unstable:

UE4Editor_FullBodyIKPlugin!UAimTargetComponent::Solve() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\aimtargetcomponent.cpp:39]
UE4Editor_FullBodyIKPlugin!FBLookSolver::PreSolve_Super() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\bonecontrollers\blooksolver.cpp:175]
UE4Editor_FullBodyIKPlugin!FBLookSolver::Solve() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\bonecontrollers\blooksolver.cpp:212]
UE4Editor_FullBodyIKPlugin!FAnimNode_BLook::EvaluateBoneTransforms() [c:\shailen\unrealprojects\vrik_4_13\plugins\animation\fullbodyikplugin\source\fullbodyikplugin\private\animation\bonecontrollers\animnode_blook.cpp:118]
UE4Editor_AnimGraphRuntime

It runs for about 30 seconds or so, then crashes. Disabling the BLook IK allows the rest of BIK to run.

Oh man, when is this coming to the asset store? I’m working on VR game and really need this. Would be happy paying even 100eur+.

Will there be a 4.14 release?

Waiting for a 4.14 release too…

Unreal Engine 4.14.0 Test Video

:smiley:

One thing I hoped for was the ability of BIK to make adjustments to a pose in order to aim a weapon. The look functionality for moving the head works great (though unstable). It would be nice if there were a similar function to make the arms move for weapon aiming.

This happens when the height from feet to floor is a little off, needs some tweaking inside the BIK component settings. However, in 4.12 version i’ve tested sometimes this even happened after adjustments, for instance when sliding around a rock, or wall, and there is a steep height. This behavior suggests that the tick, or amount of traces could be lowered, maybe, though unclear how feasible this approach would be.

Does your model uses APEX clothing, because of the root mesh interference? There is a solution if true.

Hello all,

I am in the middle of working on some API changes which is moving towards providing integration source code to you all so that you can build your own plugins. The core of the solver will remain closed source still, but it does not depend on any UE4 source code. This will allow for easy setup with most versions of UE4 you might be using.

Build for UE4.14.0 is ready but needs a bit more testing still. If you are waiting for the build, please send me an email and I will reply with the current build.

I have looked into the BLook stability issue, will provide an update soon.

The foot offset problem while standing on rocks will be investigated as soon as I am done with the aforementioned API changes. Thank you all for your patience.

The effector components can be used to pose hands (although not fingers) for the weapons. Can you describe a bit more into what doesn’t work there ?

Best,

I know the hand effectors can be used to position the arms for weapon aiming. What I am talking about is the ability to have the arms track an aim target much like the head currently can do. This capability is available on some of the other Ik solvers and would significantly reduce the animation demands and provide a more natural looking character. Currently, aiming the arms still requires the use of blend spaces and aim offsets which produce somewhat stiff looking results.

Have you looked at this tutorial and still doesn’t fit your need ?

If so, can you describe what is missing and I will look into how to support that usecase.

Happy to know!

I looked at that tutorial and gave it a try. What I found was that the head does track quite well. But the arms/hands only partially follow since the torso motion is distributed. (The head look motion is being distributed thru the spine a little at each bone junction.) For example, suppose the head may want to do a simple look up 40 degrees to track an aim target. The neck01, spine01, spine02 and spine03 may only bend 10 degrees each to achieve the 40 degree head tilt. This means the arms are off 10 degrees (the amount of bend in neck01.) This gets worse if there is any body twisting involved. Also, having a target that’s nearby is also problematic because the weapon’s viewpoint is often quite a bit lower than the head’s viewpoint (especially true for hip fired weapons) which creates a nasty looking parallax problem for weapon aiming.

I believe Ikinema has a feature that allows the arms to have their own aim target. I don’t think having a separate aim target is really necessary (though it does allow the character to look around while continuing to hold aim). But the ability of the IK solver to explicitly move the hands/arms to track a target would be a welcome addition. It might work as having the hand effectors setting the initial grip position and allowing the user to specify weapon forward vector (like the head does). Then a weapon look animation node would move the arms to track an aim target using an analogous feature to BLook. I would see the animation chain as applying the character animation, then applying a base aim offset to establish a rough aiming posture, and finally allowing BIK/BLook to make their adjustments as needed.

I see, this all makes sense. Thank you for the detailed description. I will look into how to support this with BIK.

Best,

I have resolved the foot placement issues. Also have worked a fair bit on quadruped support.

OOOOhhhhhhh that looks incredible!!!

I just have to comeback and comment on how awesome that looks. What I like most is how responsive it is and the chain reaction going up the chain. Knees move first, then the hips, as a viewer one can really infer the transfer of motion up the leg! It looks great!