In the CharacterIKs script on line 15 instead of character.Humanoid.Died:Wait() ik:Destroy() you should use character.Humanoid.Died:Once(function() ik:Destroy() end) this will stop the loop at line 38 from getting blocked
I really wanted to use your model and script of the steering wheel with ikcontrol and hingeconstraint. but I couldnt find it in your discord. nvm im stupid and found it right after i posted this comment XD
i set the weight to 0.999, but the ik still tries to look at the part when it's behind it. Edit: nevermind, i fixed it. It doesn't look the cleanest, but it works.
Oh God I was so scared that you weren't coming back with the tutorials. Please don't leave us, your Roblox Studio tutorials are truly the best on youtube.
this was a very useful tutorial. frankly, inverse kinematics seemed like a very scary subject to tackle. after watching this tutorial, i will now attempt to use inverse kinematics for a small project. thank you for uploading this!
I've never seen a single roblox studio tutorials as good as yours, you really put in the time to explain everything perfectly so almost everybody from experienced to beginners are gonna be able to understand. Keep up your amazing tutorials!
I have never known I could do so much with IK Controls or even that they existed. This tutorial helped me familiarize myself with IK controls and really helped me. Thank you!
Hello Suphi, Thank you for your amazing work! your tutorials are very unique and understandable. The Best thing is you explain them very well ( I mean the logic behind various functions,). I joined the discord server recently and it has helped me a lot when it comes to fixing bugs and finding more tutorials. thanks mate.! keep the good work up
Okay Jokes Aside, You Are Literally The Best On UA-cam, Your Tutorials Are Amazing, You Explain Everything, And You Have Taught Me Alot Of Things, Please Keep Doing What You Are Doing, You Are Amazing!
Un iconally me and another guy I am woking on this project with needed IK and we were talking about how ChatGPT is kinda slow on *new* donumentaion, and I go back to my home screen and see this exact video of what wee needed. Verry cool, thank you.
your videos are honestly amazing i have fun trying to write and comment in the code you show in your video although there are a few things i end up needing to search separatedly, like why you used function(deltaTime) with the renderstepped, maybe you explained it in a previous video that i have yet to see anyways, i really hope you the best and wish that you continue to upload aweasome videos like this and many other that you have in your channel
Amazing tutorial, thank you so much! Really enjoyed the data optimization solution. One bug I encountered is that in script CharacterIKs character.Humanoid.Died:Wait() will stop the loop on line 38, might be better to do :Connect() instead.
I checked all the IK properties and they were the same as yours, but for some reason setting weight to .999 didn't stop my character from looking awkwardly under him to look backwards and reset to look forwards. My best guess is its my characters animations being different from yours?
Another choice is to try work it out on your own what I did was use the dot product to dynamically set the weight based on the angle between the characters rootpart and the direction they want to face
Have you ever tried to make the character follow the mouse instead of the Camera using IK? Couldn't manage to get mine to work the way I wanted (Weirdish behavior like at 53:58)
The IK controls for the steering wheel is bloody brilliant, but what would be the advantage for character rotation over just directly manipulating target angles for the characters motor6ds? Lower data usage?
I am not sure what I am doing wrong. Everything seems to be working as intended, but even though the weight for the torso turning IK is set to .999, the character is still doing the slow-mo matrix movement. I moved it down to 0.25 before seeing it kind of stop making the drastic movements. For that though, the character barely turns at all.
Now the fix for the weird movements at 53:41 doesn't work anymore, seems that roblox change it and now it look like it's set at 1, is there a fix like, if the part is behind your character it sets the weight for like 0.2 or something like this?
I get "CharacterIKs:9: attempt to index nil with 'UpperTorso'" when I try to run it, and the same happens with the head and humanoid, as if character wasnt defined. I have line 4 the same as you, where character gets put as a variable. Any thoughts? Amazing tutorial
So after the updated weight, now if one player moves their head, it changes the direction of the other players head. I confirmed it on your studio release from discord. Any idea why?
They have network ownership of the assembly and they only share the cframe and velocity of the assembly not individual parts The same is true for animations when a client plays a animation there not sharing the position of each individual part there simply sharing to start playing the animation then each other client will play the same animation
I see now so its like the server recieves a play anim and it FireAllClients with that request of playing the animation could you please correct me ? @5uphi @@5uphi
yes network owner tells server to play animation then server tells all other client to play the same animation that way only a small amount of data is sent over the internet and all players see the same animation
Excellent tutorial, everything works fine exept that even tho i put 0.999 in the IKControl Weight, my character still does those weird movements when looking backward. Any ideas ?
Do inverse kinematics work with custom humanoids that are only one part? The roblox characters usually have different parts for each piece of the body so that's why im wondering this.
@@5uphi i found out it works on bones as well, very cool feature. Thanks for making the tutorial so detailed and helpful. Your tutorials save me a lot of time of trying to understand documentation, trial and eror and scroling through dev forum. I can just watch you explain as you show it in practice. Apreciate your work 👍 Keep up the good work 🙏
Hey Suphi, I have a Sword animation in my game and it moves the right upperarm i think, but if i walk while the animation is playing the head starts looking into some directions. Its not too much of a problem since it doesnt move really big amount but its visible so i wanted to ask if you know what could be the cause for this?
Hey man, awesome tutorial. I ran into an error in the CharacterIKs script tho - in line 7 it does not recognize the character variable as it's being passed by nil in line 26. I ran some CharacterAdded:Wait() but it doesn't seem to resolve the issue. Help!
Hey, I took this for a reference to make my own player look direction using IKControls and UnreliableRemoteEvents, it works, but for some odd reason if there is more than one player in the server, the camera parts position is just their head's position. (The client is constantly sending the Camera LookVector to the server btw) Do you perhaps know any solution?
I wanted to make a fps system with a viewmodel and I wanted to use IK to place the arms on the gun and while I managed to get the IK to work on the viewmodel I can't seem to get it exactly right. IK is too confusing. 😥
Is it possible to make tank tracks using IK? because i suck at math i've been trying for ages to make realistic-looking tank tracks and IK looks promising
Hey, First of all amazing video but i have a small problem, in the character script i did everything right but idk why the weight property doesn't do anything, if i made it 1 or 0.999 it doesn't seem to change anything
i have a question; is there a way to make this work with R6? if not are there other scripting alternatives on how to do so without changing startercharacter and breaking motor6d joints?
Hi Thanks a lot for your Tutorial that s work perfectly, except that theinto IK controller or Characterik script the Weight Set up at 0.999 do not have the same effect on my game than on yours, on my game it did no difference with 1, the guys continue to bend and the part is moving with the head even if the camera do not move, where i am wrong?
@@5uphi Thanks i honestly use your neat script to combine with a bow aiming autorotation. love you accent by the way (from a french is so crystal clear :) )
Tried to use IKControl in my project and from time to time it stops working immediately after start, until I Cut-Paste the IKControl to the same place (in my case it is AnimationController)
@@5uphi I would certainly do this if they removed their forum level-up feature. Tired waiting for level-up to be able to report bugs and reply in topics.
Would this be helpful for a mechanic in a game im making? I Need to know how to make the players head rotate to up(max 90 deegres) and when i tried using cframe,the whole character also rotated as the head is connected to the torso.I then tried disabling the players neck, and then the head just falls of the body i think,after that i added a hingeconstraint and the head was connected to the body correctly,and is rotatable,but when the character is bigger the head sometimes glitches,so if there’s a smoother way of rotating the head to up let me know because i really Need it for my game to be smoother.
this is what Roblox says about R6 "they don’t work for R6, since for chains with a single bone it’s almost always impossible to find a solution, but we’re experimenting with a few possibilities of how to make them look good with R6." so I guess because R6 only has one joint in the arm it does not work correctly I personally have never tested it with R6 so I don't know anything about it :(
@@5uphi Yeah, I've moved on to a different solution: manually setting the Motor6D's CFrame in a heartbeat connection. The controller does "work" for R6, but animation blending is a mess - it seems like the weight property doesn't do anything. Well explained video though, +1 subscriber.
I know im probs late but I need help, So basically I want to detect if my player is in a certain radius then the ik control will activate. If anyone knows how that would be greatly appreciated
In the CharacterIKs script on line 15 instead of character.Humanoid.Died:Wait() ik:Destroy() you should use character.Humanoid.Died:Once(function() ik:Destroy() end) this will stop the loop at line 38 from getting blocked
Dang, I actually forgot they added the Once method, thanks for the reminder.
@@Egzekiel its such a good addition tbh. So glad they added it!
I really wanted to use your model and script of the steering wheel with ikcontrol and hingeconstraint. but I couldnt find it in your discord.
nvm im stupid and found it right after i posted this comment XD
What is once?
i set the weight to 0.999, but the ik still tries to look at the part when it's behind it.
Edit: nevermind, i fixed it. It doesn't look the cleanest, but it works.
Oh God I was so scared that you weren't coming back with the tutorials. Please don't leave us, your Roblox Studio tutorials are truly the best on youtube.
Please never leave us!
this was a very useful tutorial. frankly, inverse kinematics seemed like a very scary subject to tackle. after watching this tutorial, i will now attempt to use inverse kinematics for a small project. thank you for uploading this!
Before Roblox made the IKControls inverse kinematics was a scary subject but with the new IKControls instance now IK has become very easy to do
I've never seen a single roblox studio tutorials as good as yours, you really put in the time to explain everything perfectly so almost everybody from experienced to beginners are gonna be able to understand.
Keep up your amazing tutorials!
I have never known I could do so much with IK Controls or even that they existed. This tutorial helped me familiarize myself with IK controls and really helped me. Thank you!
Finally a proper IK tutorial, instant like and subscribe, will rewatch this prob several times
I've been waiting, finally. Thanks for these tutorial, Kaner. You inspired me to be Dev.
Your explanation skills are INCREDIBLE! No tutorial has helped me like yours did!
Thank god we have people like you. Those tutorials helps me alot to understand these functions. Keep up with the good work!
Hello Suphi, Thank you for your amazing work! your tutorials are very unique and understandable. The Best thing is you explain them very well ( I mean the logic behind various functions,). I joined the discord server recently and it has helped me a lot when it comes to fixing bugs and finding more tutorials. thanks mate.! keep the good work up
Okay Jokes Aside, You Are Literally The Best On UA-cam, Your Tutorials Are Amazing, You Explain Everything, And You Have Taught Me Alot Of Things, Please Keep Doing What You Are Doing, You Are Amazing!
This is amazing! As always another amazing video , can't wait for the next ones too !
These are something that I would never expect to be made as a tutorial lol. They are amazing as always :)
Un iconally me and another guy I am woking on this project with needed IK and we were talking about how ChatGPT is kinda slow on *new* donumentaion, and I go back to my home screen and see this exact video of what wee needed.
Verry cool, thank you.
The legend is back!
your videos are honestly amazing
i have fun trying to write and comment in the code you show in your video
although there are a few things i end up needing to search separatedly, like why you used function(deltaTime) with the renderstepped, maybe you explained it in a previous video that i have yet to see
anyways, i really hope you the best and wish that you continue to upload aweasome videos like this and many other that you have in your channel
this is perfect, thank you so much! :D i can finally continue with my project xD
Wow what a brilliant scripter you are! Thank you for this video!
Amazing tutorial, thank you so much! Really enjoyed the data optimization solution. One bug I encountered is that in script CharacterIKs character.Humanoid.Died:Wait() will stop the loop on line 38, might be better to do :Connect() instead.
Your right I missed that you can also use :Once()
@@5uphi Oh, that's even better! Didn't know about this method.
amazing tutorial! you put it slowly and easy to understand.
I always wanted to learn about Inverse Kinematics so I can make procedural animations for guns
WOW, that's awesome, had no idea you could do this in Roblox!! Thanks for sharing...
Your Roblox Studio Tutorials are the best on the whole UA-cam Website.
Thank you :)
This content is like P100, very good, continue with the good content!
I wish I knew this earlier, but thanks! I was looking for something like this for SO long!
Amazing Video, thank you so much
I never watched you in 2 years, you need more subs.
tysm dude, i wanted to make a copy of "The Future" but it actually gets updated
amazing tutorial like always
I learned a lot from you, thx so much
Hi I just wanna thank you for your tutorials.
Omg 1 hour ago. Also i waited for tutorials about IK.
suphi i love ur tutorials man
Yo this IKControl is soo cool to use!
THE KING HAS RETURNED!!!
You're back! W
I checked all the IK properties and they were the same as yours, but for some reason setting weight to .999 didn't stop my character from looking awkwardly under him to look backwards and reset to look forwards.
My best guess is its my characters animations being different from yours?
Roblox changed the way weight works you can find the fixed version inside discord
@@5uphismoothe. Guess I’ll have no choice but to join
Another choice is to try work it out on your own what I did was use the dot product to dynamically set the weight based on the angle between the characters rootpart and the direction they want to face
@@5uphi where? you lied.
when you cant figure out math formulas Suphi Kaner is there to save the day
this is the thing i want :Đ
thank you so much
I'm late 2 hours
1:12 😍😍😍
@@kebaburon149 😉
How did he just type like that
AutoHotKey
wtf he types so fast, and I thought that my typing speed was impressive 10:55
AutoHotKey
new video = new things to learn! YEY
Have you ever tried to make the character follow the mouse instead of the Camera using IK? Couldn't manage to get mine to work the way I wanted (Weirdish behavior like at 53:58)
i still dont know how this dude types so smoothly :sob:
AutoHotKey
Great tutorial!
The IK controls for the steering wheel is bloody brilliant, but what would be the advantage for character rotation over just directly manipulating target angles for the characters motor6ds? Lower data usage?
Only advantage is simplicity
I really was in need of this tutorial, do you think it would work for custom characters like a dragon?
yes it works with any Humanoid or AnimationController
I am not sure what I am doing wrong. Everything seems to be working as intended, but even though the weight for the torso turning IK is set to .999, the character is still doing the slow-mo matrix movement. I moved it down to 0.25 before seeing it kind of stop making the drastic movements. For that though, the character barely turns at all.
Roblox changed how the weight works there is a fix in the discord server
When did roblox add inverse kinematics? this is awesome!
Now the fix for the weird movements at 53:41 doesn't work anymore, seems that roblox change it and now it look like it's set at 1, is there a fix like, if the part is behind your character it sets the weight for like 0.2 or something like this?
You will have to use the dot product of the camera and humanoidrootpart to workout the weight
How could I do this with a skinned mesh?
finally a good tutorial
I get "CharacterIKs:9: attempt to index nil with 'UpperTorso'" when I try to run it, and the same happens with the head and humanoid, as if character wasnt defined. I have line 4 the same as you, where character gets put as a variable. Any thoughts? Amazing tutorial
Maybe try waitforchild
@@5uphi ik.ChainRoot = character:WaitForChild("UpperTorso") Something like that? Or wait for child character
Its saying that your doing
nil.UpperTorso
So your character variable is equal to nil
Ah ok thank you sorry
Thank you for tutorials, really helpful
So after the updated weight, now if one player moves their head, it changes the direction of the other players head. I confirmed it on your studio release from discord. Any idea why?
My hands point the wrong way
A Quick Question Why Do We Have To Pass It To The Server Even Tho The Player Has Control Over HumanoidRootPart because of NetworkOwner ?
They have network ownership of the assembly and they only share the cframe and velocity of the assembly not individual parts
The same is true for animations when a client plays a animation there not sharing the position of each individual part there simply sharing to start playing the animation then each other client will play the same animation
I see now so its like the server recieves a play anim and it FireAllClients with that request of playing the animation could you please correct me ? @5uphi
@@5uphi
yes network owner tells server to play animation then server tells all other client to play the same animation that way only a small amount of data is sent over the internet and all players see the same animation
Oh dude you cleared alot of things for me thank you very much man your the best!@@5uphi
How cool!!
best tutorial ever!
Excellent tutorial, everything works fine exept that even tho i put 0.999 in the IKControl Weight, my character still does those weird movements when looking backward. Any ideas ?
Roblox made some changes since this video the fix is in the Discord server
@@5uphi Thank you
Do inverse kinematics work with custom humanoids that are only one part? The roblox characters usually have different parts for each piece of the body so that's why im wondering this.
It does work with custom humanoids but it wont work with just 1 part I believe but I have never tested it so you need to try
@@5uphi i found out it works on bones as well, very cool feature. Thanks for making the tutorial so detailed and helpful. Your tutorials save me a lot of time of trying to understand documentation, trial and eror and scroling through dev forum. I can just watch you explain as you show it in practice. Apreciate your work 👍 Keep up the good work 🙏
Hey Suphi, I have a Sword animation in my game and it moves the right upperarm i think, but if i walk while the animation is playing the head starts looking into some directions. Its not too much of a problem since it doesnt move really big amount but its visible so i wanted to ask if you know what could be the cause for this?
If your animations are affecting the ik that's because your not using a weight of 1
is it the new update ? but my character i use is R6 and it doesn't give up looking when i turn backward with 0.999 weight. i need help
oh nvm i found a way, really epic tutorial ;D
how bro i need the info ?
Hey man, awesome tutorial. I ran into an error in the CharacterIKs script tho - in line 7 it does not recognize the character variable as it's being passed by nil in line 26. I ran some CharacterAdded:Wait() but it doesn't seem to resolve the issue. Help!
Use waitforchild when trying to get the characters children in the video I never had content streaming turned on so it was not a problem for me
There's a problem with the part: when a player resets, the part instantiates again and there are 2 parts then. The old parts never get deleted.
The part should be created in the player added event and removed in the player removing event
The weight thing does not work, and it always tries its best to look at it. How do i fix it?
You have to dynamically update the weight based on the angle you can find an example in the discord server
Hey, I took this for a reference to make my own player look direction using IKControls and UnreliableRemoteEvents, it works, but for some odd reason if there is more than one player in the server, the camera parts position is just their head's position.
(The client is constantly sending the Camera LookVector to the server btw)
Do you perhaps know any solution?
Nevermind, it's fixed.
I wanted to make a fps system with a viewmodel and I wanted to use IK to place the arms on the gun and while I managed to get the IK to work on the viewmodel I can't seem to get it exactly right. IK is too confusing. 😥
Is it possible to make tank tracks using IK? because i suck at math i've been trying for ages to make realistic-looking tank tracks and IK looks promising
I think maybe yes but I would guess it would be easier not using IK and just setting the cframes manually
dont be puasing at 8:46
Hey, First of all amazing video but i have a small problem, in the character script i did everything right but idk why the weight property doesn't do anything, if i made it 1 or 0.999 it doesn't seem to change anything
Roblox changed how weight works you will need to dynamically set the weight I show how to do that in the discord server
@@5uphi Ok i joined the discord server, where can i find the tutorial? or should i make a post in the help channel?
Even though I set the weight to 0.999, my character still looks backwards and it's extremely unnatural
Roblox changed how it works. In my discord channel you will find a updated version that works
@@5uphi Thank you so much! Love your content
this is so cool
my character doesn't give up when i looking to my back, how can i fix this?
The fix is in the discord channel
@@5uphi where can i find it?
Inside resources
Is it possible to create IK for R6?
Yes R6 only have 1 joint so you just set the motor6Ds transform
i have a question; is there a way to make this work with R6? if not are there other scripting alternatives on how to do so without changing startercharacter and breaking motor6d joints?
Hi Thanks a lot for your Tutorial that s work perfectly, except that theinto IK controller or Characterik script the Weight Set up at 0.999 do not have the same effect on my game than on yours, on my game it did no difference with 1, the guys continue to bend and the part is moving with the head even if the camera do not move, where i am wrong?
Roblox changed how it works. In my discord channel you will find a updated version that works
@@5uphi Thanks i honestly use your neat script to combine with a bow aiming autorotation. love you accent by the way (from a french is so crystal clear :) )
do you know how to make this work with r6? i tried it with r6 and it really didnt work and i dont really know what to do
R6 only has 1 joint so it does not really work with a single joint you would have to set the motor6D join manually
Can anyone help? I can only get the handle to move to the right but cant get it to move to the left so can anyone explain to me?
nvm i came up with a new script that fixes it
Do you know how you could set the ik.Enabled to false, in a way that all the clients will see it?
You would set it in a server script the same way I did for the arms in this video
does the IK system work with mesh characters? I'm too lazy to find out on my own.
Yes
im trying to get this to work with r6 and it looks goofy
Ik does not work well if there is only 1 joint
Tried to use IKControl in my project and from time to time it stops working immediately after start, until I Cut-Paste the IKControl to the same place (in my case it is AnimationController)
you should report it to Roblox here: devforum.roblox.com/t/ik-controls-are-now-out-of-beta/2156480
@@5uphi I would certainly do this if they removed their forum level-up feature. Tired waiting for level-up to be able to report bugs and reply in topics.
yup I feel you I also am not allowed to report bugs
back in my day we had to make the IK math ourselves :/
OK boomer
I set the Ik control weight to 0.999 but my character still looks at the part when the part is behind the head
Roblox made some changes to the ik controller and it no longer works like it use to
@@5uphi how do i fix it?
You need to check the angle between the camera and character and dynamically change the weight based on the angle
@@5uphi thankss I will try
@@5uphi how would you go about doing it?
Would this be helpful for a mechanic in a game im making? I Need to know how to make the players head rotate to up(max 90 deegres) and when i tried using cframe,the whole character also rotated as the head is connected to the torso.I then tried disabling the players neck, and then the head just falls of the body i think,after that i added a hingeconstraint and the head was connected to the body correctly,and is rotatable,but when the character is bigger the head sometimes glitches,so if there’s a smoother way of rotating the head to up let me know because i really Need it for my game to be smoother.
This method will work also setting the motor6ds transform property should also work
Is there a way to connect this to VR?
You can use create.roblox.com/docs/reference/engine/classes/VRService#GetUserCFrame to get the VR position then use IK to that position
LETS GOOOOOOOO
One question, does it work to Bones?
I have not tested it with bones all the documentation says is that it has to be a child of a Humanoid or AnimationController
@@5uphi oh okay thanks, it would be very nice if they added for it to function with bones someday.
♥️♥️♥️
ccccccm
@@5uphi ccccm
Is there a way to make the IKController ignore rotations?
Set it to position
@@5uphi Thanks for replying so quickly. However, that teleports my character's arm to the cold abyss known as nan.
I forgot to add - I'm using R6
this is what Roblox says about R6
"they don’t work for R6, since for chains with a single bone it’s almost always impossible to find a solution, but we’re experimenting with a few possibilities of how to make them look good with R6."
so I guess because R6 only has one joint in the arm it does not work correctly I personally have never tested it with R6 so I don't know anything about it :(
@@5uphi Yeah, I've moved on to a different solution: manually setting the Motor6D's CFrame in a heartbeat connection.
The controller does "work" for R6, but animation blending is a mess - it seems like the weight property doesn't do anything.
Well explained video though, +1 subscriber.
I know im probs late but I need help, So basically I want to detect if my player is in a certain radius then the ik control will activate. If anyone knows how that would be greatly appreciated
does this work with r6?
You must have more then 1 joint in the chain
nice a new video
can it work for r6
Last I tested Some of the modes don't work when there is only 1 joint but some of them do
53:45 Nice
54:08 :(
how he write like robot??
-Recapha
Beep boop
I love you
just a comment
just a reply