The mysteries of the animation_movebone, where Bone IK is the star

Hello @lubos
Could you please give us info about the procedure you used to make this demo movebone example ? ( making the Alpha_Surface, armature, rigging, parenting, bone constraints, special things to do/remember , …)

I will be more precise with this following simple test that seems to show that there is something important to do somewhere during the Blender creation process (here 2.7) to replicate this example. You can follow this creation therafter or use the final blend file here movebone_withcube.blend (2.7 MB) :

I have tried to stay as near as possible of the existing animation_movebone Armory example, and thereafter the details of what I have done :

1. Create a cube in order to replace the actual Alpha_SurfaceMesh
(I create a cube at (0,0,0), extrude it , subdivide it , and give it a material Diffuse BSDF)

2. Remove the actual Mesh from the armature and replace it with the Cube mesh
(First in Edit Mode, select the Cube,
then Shift+select a bone of the Armature
then Ctrl+P et select with Empty Group.
Secondly, with the Cube selected, switch to Edit Mode (A to select all) and do the assign of a bone to the Cube mesh … as it was assigned to mixamorig_LeftTooBase before we keep the same bone.)

3. verify the Logic Nodes as always the same before starting a test in Krom
( We keep the same LogicBoneIK for the Armature … as we use the same Armature.

We keep the same Goal ball as before with it’s Bundled SimpleMoveObject

image

4. verify in the Outliner
seems perfectly the same as it was with the mesh Alpha_Surface


with the Modifier the same applied to the mesh of the Cube

The Animation concerns the Armature and is stayed in place.

5. start with Play or F5
no error in the System console

but in the Krom, we only see the ball that can move but there is No Cube near the ball, ready in place to be deformed when moving the ball !

In reality the cube is sent far from it’s normal position and is’nt deformed by the ball target …

So If you have an idea :warning:of what’s going wrong, with finally something that seems trivial as exhanging one mesh with another on the same Armature, thanks for sharing :wink:?

(Cube pivot is at it’s center; Action is reseted with this new pose/mesh Cube; everything else seems stayed the same as in the original Lubos example;
the render is ok image ;
the mesh covers all the Armature image )

_

Did you figure out this? I’m desperate now, I need my character to lean left or right while running, I’ve done this in different ways in other engines, one way is to do a blend space 1d like in UE4, where you can set three animations linearly, unfortunately Armory doesn’t support blending for more than two animations, so my only solution for now is to rotate the spine bone, I tried this bone Ik, but it just don’t work.

I found something interesting, maybe is part of the mystery on why the move bone script doesn’t work with different armatures other than the example. In Armature’s edit mode, bone tab, at the bottom there are two custom properties for each bone, “bind_mat” and “rest_mat” with a bunch of matrices values, this might be needed in order to work.

This may not help much, but I just played this armory example and the character would lean left and right when I walked. It could have just been done with different animations for left, and right, though. I haven’t looked into it.

@Aryoksini “beaucoup d’eau a coulé sous les ponts” since I tested this example “movebone” for the first time.
This example is perfect for what it allows us to test in a first approach.

The problem for me was to spend more time mastering the armature in Blender, especially the orientation of the bones and how to apply correctly the meshes, i.e. with a good orientation too and a good procedure.
Then there was the necessity to master the link between the animation, the Rest state and the way an Inverse Kinematic (IK) is using those available data in Armory.

If you want to then get a correct results for your animation, I can only advise you to code your own IK with your own constraint management (which does not yet exists today).

This could be the subject of an interesting tutorial for advanced users, but before it could be preferable for you to wait the Armory release 0.6 to discover if Lubos made some evolution in this domain of IK, as he said us working hard on it to improve.
see here

3 Likes

Hey thanks @Didier , I actually realized that the first person shooter template has code that rotates the arm bone to aim with the gun, it helped me a lot. Here is my result from a couple of days.

And today I also made it lean forward, exactly what I needed, but yeah I think I should wait for better IK, is not urgent for now :slight_smile:

6 Likes

@zicklag thanks a lot, it’s actually very similar to the first person example, really cool that it was possible after all.