It shows all player animations, they were made with Blender, and I made a quick plugin exporting everything as pure LUA tables, something like:
Code: Select all
sneaking = {
{ name = "AVANT_BRAS_DROIT", keyframes = { location_X = { { time = 0, value = 4.03 }, { time = 9, value = -1.38 }, { time = 18, value = 4.03 }, }, location_Y = { { time = 0, value = -32.83 }, { time = 9, value = -34.15 }, { time = 18, value = -32.83 }, }, location_Z = { { time = 0, value = -3.0 }, { time = 9, value = -3.0 }, { time = 18, value = -3.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = -0.26 }, { time = 9, value = -0.28 }, { time = 18, value = -0.26 }, }, scale_X = { { time = 0, value = 0.8 }, { time = 9, value = 0.8 }, { time = 18, value = 0.8 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "AVANT_BRAS_GAUCHE", keyframes = { location_X = { { time = 0, value = 6.97 }, { time = 9, value = 9.27 }, { time = 18, value = 6.97 }, }, location_Y = { { time = 0, value = 31.01 }, { time = 9, value = 30.95 }, { time = 18, value = 31.01 }, }, location_Z = { { time = 0, value = -3.0 }, { time = 9, value = -3.0 }, { time = 18, value = -3.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.26 }, { time = 9, value = 0.17 }, { time = 18, value = 0.26 }, }, scale_X = { { time = 0, value = 0.8 }, { time = 9, value = 0.8 }, { time = 18, value = 0.8 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "BRAS_DROIT", keyframes = { location_X = { { time = 0, value = -3.95 }, { time = 9, value = -3.44 }, { time = 18, value = -3.95 }, }, location_Y = { { time = 0, value = -15.88 }, { time = 9, value = -16.26 }, { time = 18, value = -15.88 }, }, location_Z = { { time = 0, value = -1.0 }, { time = 9, value = -1.0 }, { time = 18, value = -1.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = -0.19 }, { time = 9, value = -0.29 }, { time = 18, value = -0.19 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "BRAS_GAUCHE", keyframes = { location_X = { { time = 0, value = 0.26 }, { time = 9, value = 1.75 }, { time = 18, value = 0.26 }, }, location_Y = { { time = 0, value = 13.4 }, { time = 9, value = 13.84 }, { time = 18, value = 13.4 }, }, location_Z = { { time = 0, value = -1.0 }, { time = 9, value = -1.0 }, { time = 18, value = -1.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = -0.16 }, { time = 9, value = -0.1 }, { time = 18, value = -0.16 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "CAPUCHE", keyframes = { location_X = { { time = 0, value = 8.41 } }, location_Y = { { time = 0, value = 0.0 } }, location_Z = { { time = 0, value = 1.0 } }, rotation_euler_X = { { time = 0, value = 0.0 } }, rotation_euler_Y = { { time = 0, value = 0.0 } }, rotation_euler_Z = { { time = 0, value = 0.0 } }, scale_X = { { time = 0, value = 1.0 } }, scale_Y = { { time = 0, value = 1.0 } }, scale_Z = { { time = 0, value = 1.0 } } } },
{ name = "DOS", keyframes = { location_X = { { time = 0, value = -1.0 } }, location_Y = { { time = 0, value = 0.0 } }, location_Z = { { time = 0, value = 0.0 } }, rotation_euler_X = { { time = 0, value = 0.0 } }, rotation_euler_Y = { { time = 0, value = 0.0 } }, rotation_euler_Z = { { time = 0, value = 0.0 } }, scale_X = { { time = 0, value = 1.0 } }, scale_Y = { { time = 0, value = 1.0 } }, scale_Z = { { time = 0, value = 1.0 } } } },
{ name = "GRENADES", keyframes = { location_X = { { time = 0, value = -5.35 }, { time = 9, value = -3.5 }, { time = 18, value = -5.35 }, }, location_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, location_Z = { { time = 0, value = -4.0 }, { time = 9, value = -4.0 }, { time = 18, value = -4.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "JAMBE_DROITE_BACK_SUP", keyframes = { location_X = { { time = 0, value = -13.65 }, { time = 9, value = 2.81 }, { time = 18, value = -13.65 }, }, location_Y = { { time = 0, value = -10.7 }, { time = 9, value = -10.7 }, { time = 18, value = -10.7 }, }, location_Z = { { time = 0, value = -5.0 }, { time = 9, value = -5.0 }, { time = 18, value = -5.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 0.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "JAMBE_DROITE_FRONT", keyframes = { location_X = { { time = 0, value = 1.84 }, { time = 9, value = 17.46 }, { time = 18, value = 1.84 }, }, location_Y = { { time = 0, value = -9.09 }, { time = 9, value = -10.2 }, { time = 18, value = -9.09 }, }, location_Z = { { time = 0, value = -5.0 }, { time = 9, value = -5.0 }, { time = 18, value = -5.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 0.0 }, { time = 9, value = 1.0 }, { time = 18, value = 0.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "JAMBE_GAUCHE_BACK_SUP", keyframes = { location_X = { { time = 0, value = -0.24 }, { time = 9, value = -12.54 }, { time = 18, value = -0.24 }, }, location_Y = { { time = 0, value = 6.46 }, { time = 9, value = 6.09 }, { time = 18, value = 6.46 }, }, location_Z = { { time = 0, value = -5.0 }, { time = 9, value = -5.0 }, { time = 18, value = -5.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 0.0 }, { time = 9, value = 1.0 }, { time = 18, value = 0.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "JAMBE_GAUCHE_FRONT", keyframes = { location_X = { { time = 0, value = 14.87 }, { time = 9, value = 2.7 }, { time = 18, value = 14.87 }, }, location_Y = { { time = 0, value = 8.09 }, { time = 9, value = 8.09 }, { time = 18, value = 8.09 }, }, location_Z = { { time = 0, value = -5.0 }, { time = 9, value = -5.0 }, { time = 18, value = -5.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 0.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "MAIN_DROITE_FERMEE", keyframes = { location_X = { { time = 0, value = 16.17 }, { time = 9, value = 10.44 }, { time = 18, value = 16.17 }, }, location_Y = { { time = 0, value = -35.67 }, { time = 9, value = -37.79 }, { time = 18, value = -35.67 }, }, location_Z = { { time = 0, value = -0.0 }, { time = 9, value = -0.0 }, { time = 18, value = -0.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = -0.23 }, { time = 9, value = -0.3 }, { time = 18, value = -0.23 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "MAIN_GAUCHE_FERMEE", keyframes = { location_X = { { time = 0, value = 18.11 }, { time = 9, value = 19.77 }, { time = 18, value = 18.11 }, }, location_Y = { { time = 0, value = 33.56 }, { time = 9, value = 31.68 }, { time = 18, value = 33.56 }, }, location_Z = { { time = 0, value = -0.0 }, { time = 9, value = -0.0 }, { time = 18, value = -0.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.26 }, { time = 9, value = 0.06 }, { time = 18, value = 0.26 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "PIED_DROIT_BACK", keyframes = { location_X = { { time = 0, value = -30.22 }, { time = 9, value = 34.58 }, { time = 18, value = -30.22 }, }, location_Y = { { time = 0, value = -10.94 }, { time = 9, value = -8.34 }, { time = 18, value = -10.94 }, }, location_Z = { { time = 0, value = -6.0 }, { time = 9, value = -6.0 }, { time = 18, value = -6.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "PIED_DROIT_BACK_SEMELLE", keyframes = { location_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, location_Y = { { time = 0, value = -9.77 }, { time = 9, value = -9.77 }, { time = 18, value = -9.77 }, }, location_Z = { { time = 0, value = -6.0 }, { time = 9, value = -6.0 }, { time = 18, value = -6.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "PIED_GAUCHE_BACK", keyframes = { location_X = { { time = 0, value = 31.99 }, { time = 9, value = -26.88 }, { time = 18, value = 31.99 }, }, location_Y = { { time = 0, value = 6.36 }, { time = 9, value = 5.99 }, { time = 18, value = 6.36 }, }, location_Z = { { time = 0, value = -6.0 }, { time = 9, value = -6.0 }, { time = 18, value = -6.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
{ name = "PIED_GAUCHE_BACK_SEMELLE", keyframes = { location_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, location_Y = { { time = 0, value = 4.79 }, { time = 9, value = 4.79 }, { time = 18, value = 4.79 }, }, location_Z = { { time = 0, value = -6.0 }, { time = 9, value = -6.0 }, { time = 18, value = -6.0 }, }, rotation_euler_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Y = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, rotation_euler_Z = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_X = { { time = 0, value = 0.0 }, { time = 9, value = 0.0 }, { time = 18, value = 0.0 }, }, scale_Y = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, scale_Z = { { time = 0, value = 1.0 }, { time = 9, value = 1.0 }, { time = 18, value = 1.0 }, }, } },
},
And finally I retrieve it and update the positions, rotations and scales according to the current time, and blending from current states when starting a new animation. I'm also using the location_z value to control the render order for all player parts.