Inverse Kinematics Control Instance for animation is now in Beta!

can you make sure that the target part you are using is the one referenced in the script, that you are using a Script, not LocalScript, that the game is running (Server or Client both work), and that you restarted Studio after enabling the beta?

yea, I did follow all of the steps you listed above.

Using just a regular r15 block rig, with the script and beta feature, it seems to just not work.
(stop liking/responding to the post, my mistake. this will help you if you liked this Inverse Kinematics | Roblox Creator Documentation)

I’m not 100% sure but im pretty sure it shouldn’t be doing this…

2 Likes

I had a go with this about a week ago using some “funny methods” to enable it early. This feature is awesome and offloads so much math for the developers to figure out! (Video from release 455 with IKControl enabled through modified feature flags)

The code for this is live on GitHub: GitHub - Innovation-Inc-Roblox/Railgun at ikcontrol

Once I update studio for release 456, I will need to see if some of the issues I had on release 455 still exist. In my testing, changing the C0 and C1 properties of the character’s motors had some undesirable and unexpected effects. Either I will edit with this crossed out if it is fixed in release 456 or I will create a new post with the problem I have and a repro file.

12 Likes

The IK control instance was working for a while and seems it isn’t functional anymore in a sudden :raised_hands: I checked in beta features and the IK control option is disappeared as well

2 Likes

I remember testing some type of feature like this maybe a year or two ago, and what I felt would help (and I mentioned back then) would be the ability to ‘anchor’ a joint, such as, if you don’t want the upper arm to move, when you drag the wrist, you could anchor the shoulder joint, then drag the wrist.
Did that ever get considered?

Also, with all the new animation things being released, is there ever going to be a way to scale an animation’s shifts while playing, such as animation:Play( scale) so that animations created with translations can be scaled for scaled rigs?

Thanks, and I am so excited to see these new tools for us!

2 Likes

there is currently a service distruption: https://status.roblox.com. service disruptions → flags get reverted to isolate the issue.

2 Likes

I was trying to get it to work with R6 and this is the closest I got

Either this is a bug or just me horribly screwing it up but I can’t find any solution that won’t just set the arm position to (0, 0, 0)

Though it works fine on R15.

8 Likes

The Beta feature is live as of now. We plan on fully releasing this either late Q4 '22 or early Q1 '23.

2 Likes

Follow-up:
I was experimenting what happens if I change the C0 of the motor for the arm. The following video shows a red part that should be the center the motor, a green part as the target, and my character with IKControl set for the right arm. The shoulder joint should be at the red part, but isn’t. The results are unexpected.

For further testing, I also created a very simple arm. On start, the arm does not start from the correct spot and flipping through the types led to unexpected and inconsistent behavior of where the arm starts.

Repro file with both: IKControl Test Issues.rbxl (104.9 KB)

3 Likes

I saw the video last week, we incorporated some of your feedback, thanks for making it!

4 Likes

Yes, as mentioned by someone we had to temporarily revert some of the flags so that might be why. Feel free to DM if you still have issues in a bit so I can have a look. Thanks

2 Likes

Yes, if you move the parts directly you’ll break the joints and disconnect the rig. You should create a separate part to use as Target.

4 Likes

We temporarily rolled back due to some unrelated issue but now it should be available again. Sorry for the inconvenience.

2 Likes

i finally got it to work. its a pretty cool feature ngl.

https://cdn.discordapp.com/attachments/999521266614665227/1024784150516998244/Screen_Recording_2022-09-28_at_21.44.53.mov
(although it looks a bit strange that my characters lower left arm and hand keeps on rotating like that)

2 Likes

This is amazing. I cannot wait until it is live in-game!

1 Like

Yes! Thank you so much for releasing this. I first saw a reference to this in the Release Notes section a couple weeks ago, right before I was about to start a new project. I specifically paused that project until this release, to save myself some hassle in writing my own IK implementation (since IK plays a crucial role in the game). After some quick testing within studio, I’ve found this to fit my needs, and I greatly appreciate this release and hope others do as well. Great job!

1 Like

This is such a cool feature, can’t wait when it gets fully added!

Some things I would recommend:

  • A property to affect how much the IK overrides animations (Hands look funny when the walking animation plays).

  • An enumeration to affect where the center of the target is (The center or the pivot).

  • Setting the weight should update the positions of the part correctly and also make them gradually interpolate to the new weight. If I set the weight from 1 to 0.5, the next time I move it will be jittery to the new weight meaning to get a good effect I would have to manually lerp it myself.

  • If I set weight to 0 it just keeps my hand in the same last position unlike how AnimationTracks act where it just stops affecting its position.

Anyways, super stoked for this! No more are the days of using performance heavy IK modules!

2 Likes

works really well from testing, got the player legs to follow the ground by raycasting a point from the player feet and then using IKControl on that raycast point

9 Likes

After playing with this for a bit more, something that would be useful is an offset for the EndEffector.

Consider this case, where I want the arm to be pointing toward an attachment but not necessarily stretching to it:
image
desired behavior
image
current behavior

Current options are to rotate the c0/c1 of the wrist joint or place the target in a different place, both of which are not ideal.

This would also help with making sure the correct part of the EndEffector is moving to the target, so the wrist/ankle/etc joint is not always stretching to the desired point but rather the center/offset.

Another example, aligning the bottom of the feet rather than the ankle:
image

4 Likes