This is a great tutorial I just found, though I usually make strafe movement animation inside the loop by using look and right vector for CFrame and angles for motor6d and is much better since it works perfectly with mobile joystick and is super smooth in all direction imo... But this video helps better for beginners but my method is probably complicated but easily understandable.
as a single developer making my own "R6 engine" called ( ZOY's Engine ) by that i mean making some changes on everything like movement, camera movement, graphics and stuff like that, i made my own scripts but sometimes when i dont get to do it myself i look up in YT so i ended up in this video. it was very usefull and i appreciate it.
Thank you so much bro! I have been trying to figure this out for so long but nobody has posted a video about this... You just earned a new sub! I would love if you could make more advanced tutorials in the future, they would help so much!
i remember a game inspired by overgrowth in roblox it wasnt really a game but like a testing place made by some player, i remember that he somehow made the legs actually be like it is in overgrowth (i highly reccomend you look at the real game), the leg's foot actually stays in one spot while the torso moves and the other leg. i think its an algorithm but how he do it its so good, like it looks physically right. edit nevermind he already made a video about what i was saying, and i know the name to this now thanks to him. (footplanting)
and a ramp rate for the character walk speed, the small bit of accel makes it a lot more realistic even if the ramp rate is just like 0.5 seconds to max walk speed.
ngl, the best tutorials i seen so far, you explained everything really well! one thing i would ask for, is the studio theme colors, beacouse your script editor looks absolutely amazing!
Brilliant tutorial but as a developer the reason I would not use this is because people want to play in their own Avatar animation. Everyone who entered a game with this system would have to be animated specifically this way which people may not like. If Roblox added a “walk back” animation in the default animations we could then manipulate all peoples animations with their own but unfortunately that’s not the case 🫤
here is the script ( I added Idle animation as well, also if you have a sprint script for r6 this script will not allow the torso to bend for the running animation) ---- local RunService = game:GetService("RunService") local Players = game:GetService("Players") local Player = Players.LocalPlayer local Character = Player.Character or Player.CharacterAdded:Wait() local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart") local Humanoid = Character:WaitForChild("Humanoid") local AnimationsFolder = script:WaitForChild("Animations") local AnimationsTable = { ["WalkForward"] = Humanoid:LoadAnimation(AnimationsFolder.WalkForward), ["WalkRight"] = Humanoid:LoadAnimation(AnimationsFolder.WalkRight), ["WalkLeft"] = Humanoid:LoadAnimation(AnimationsFolder.WalkLeft), ["Idle"] = Humanoid:LoadAnimation(AnimationsFolder.Idle), } -- Function to play animations for a specific player local function playAnimations(player, animationsTable) for _, Animation in pairs(animationsTable) do Animation:Play(0, 0.01, 0) end RunService.RenderStepped:Connect(function() local DirectionOfMovement = HumanoidRootPart.CFrame:VectorToObjectSpace(HumanoidRootPart.AssemblyLinearVelocity) local Forward = math.abs(math.clamp(DirectionOfMovement.Z / Humanoid.WalkSpeed, -1, -0.001)) local Backwards = math.abs(math.clamp(DirectionOfMovement.Z / Humanoid.WalkSpeed, 0.001, 1)) local Right = math.abs(math.clamp(DirectionOfMovement.X / Humanoid.WalkSpeed, 0.001, 1)) local Left = math.abs(math.clamp(DirectionOfMovement.X / Humanoid.WalkSpeed, -1, -0.001)) if DirectionOfMovement.Magnitude < 0.1 then animationsTable.Idle:AdjustWeight(1) animationsTable.Idle:AdjustSpeed(1) else animationsTable.Idle:AdjustWeight(0) animationsTable.Idle:AdjustSpeed(0) if DirectionOfMovement.Z / Humanoid.WalkSpeed < 0.1 then animationsTable.WalkForward:AdjustWeight(Forward) animationsTable.WalkRight:AdjustWeight(Right) animationsTable.WalkLeft:AdjustWeight(Left) animationsTable.WalkForward:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1) animationsTable.WalkRight:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1) animationsTable.WalkLeft:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1) else animationsTable.WalkForward:AdjustWeight(Backwards) animationsTable.WalkRight:AdjustWeight(Left) animationsTable.WalkLeft:AdjustWeight(Right) animationsTable.WalkForward:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1) animationsTable.WalkRight:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1) animationsTable.WalkLeft:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1) end end end) end -- Play animations for the local player playAnimations(Player, AnimationsTable) -- Network synchronization for other players Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(character) local humanoidRootPart = character:WaitForChild("HumanoidRootPart") local humanoid = character:WaitForChild("Humanoid") local animationsTableCopy = {} for name, animation in pairs(AnimationsTable) do animationsTableCopy[name] = humanoid:LoadAnimation(animation.Animation) end playAnimations(player, animationsTableCopy) -- Synchronize animations with other players RunService.Heartbeat:Connect(function() for name, animation in pairs(animationsTableCopy) do AnimationsTable[name]:ApplyTransition(animation.Weight, animation.Speed) end end) end) end)
im curious, does this overwrite the regular animation script in the character? or are the walk animations and such from the regular animation script still playing?
can you make a lerp without animations? w makes you learn foward, s makes you learn backwards and a makes you look to the left (not lean) and d makes you look to the right
local Player = game.Players.LocalPlayer local Character = Player.Character local HumanoidRootPart = Character:WaitForChild('HumanoidRootPart') local Humanoid = Character:WaitForChild('Humanoid')
local AnimationsFolder = script:WaitForChild('Animations')
Can you make more tutorials? Since roblox dev on youtube is on pretty much elementary level, it would be nice if at least someone created tutorial on something advanced
How would I go about adding an animation for walking backwards? Additionally, how would you add an idle animation? I've tried to implement both myself but I lack the knowledge of whats going on. Any help appreciated!
Well- on else statement Make Additional one for the idle- And check if the idle isn't playing then below the if statement on the idle Play the animation
I think I did the code right but whenever I test it in game there is no animation when I walk, I animated my own walk anims, uploaded them to roblox, and inserted the ID in the AnimationId box and it doesn't play the animation when I move, just a static pose, any reasons for this?
Everytime I follow steps for these types of videos, after completing everything I load up the game and my characters animation is just in a still pose when moving, How do I fix this?
Yo man! Can you explain whenever i play test my game my avatar doesnt do any animation for walking? Like its just standing?? Tho it only happends when i put r6 or the player chooses..😔
do you know how to make a jump animation? Because I was testing around with the script so I could make a run and walk mode with working left right etc but I do not know how to make the jump/fall Anim.
I feel like this would work but I feel like it won’t work for me it’s just that I watched a tutorial on how to make a left shift Sprint button with animation I did it but it did not work. I’m a failure ):
This is a great tutorial I just found, though I usually make strafe movement animation inside the loop by using look and right vector for CFrame and angles for motor6d and is much better since it works perfectly with mobile joystick and is super smooth in all direction imo... But this video helps better for beginners but my method is probably complicated but easily understandable.
Well this method does work with mobile joystick too, but yeah if you don't want to make like a bunch of animations the motor6d method is better
@@devdumpDoes it also work with AI too? if not what would you do?
fr
@@devdump btw u dont have to make ur own animations u can steal the animation or leave the rig and the server animations on a roblox file
that's actually a pretty smart way of doing it, i might try and make this myself
as a single developer making my own "R6 engine" called ( ZOY's Engine ) by that i mean making some changes on everything like movement, camera movement, graphics and stuff like that, i made my own scripts but sometimes when i dont get to do it myself i look up in YT so i ended up in this video. it was very usefull and i appreciate it.
Thank you so much bro! I have been trying to figure this out for so long but nobody has posted a video about this... You just earned a new sub! I would love if you could make more advanced tutorials in the future, they would help so much!
GUYS ARE YOU BOTS???? THAT DOESNT WORK
@@Therealanassela it works for me lol and im definitely not a bot
lol you made this comment seem so ai generated
i wouldve never thought of making it like this in a million years, very clever!
i remember a game inspired by overgrowth in roblox
it wasnt really a game but like a testing place made by some player, i remember that he somehow made the legs actually be like it is in overgrowth (i highly reccomend you look at the real game), the leg's foot actually stays in one spot while the torso moves and the other leg.
i think its an algorithm but how he do it its so good, like it looks physically right.
edit nevermind he already made a video about what i was saying, and i know the name to this now thanks to him. (footplanting)
If you combine this with camera swaying/bobbing movement, it actually looks fire
and a ramp rate for the character walk speed, the small bit of accel makes it a lot more realistic even if the ramp rate is just like 0.5 seconds to max walk speed.
you gotta make more tutorials this alone makes a game feel so much more alive
Omg bro thanks so much i have been looking everywhere for this! Im subscribing
ngl, the best tutorials i seen so far, you explained everything really well! one thing i would ask for, is the studio theme colors, beacouse your script editor looks absolutely amazing!
This idea with using animate script is ridiculous but working. Thanks! :D
Thanks. I really like the look of directional movement.
Great tutorial! Really simple and effective
"feel free to use this without credit" being so nice like that is definitely gonna make me add it 😭🙏
just wanna say the walk animations themselves are PHENOMENAL!!
I LOVE YOU, I'VE BEEN SEARCHING SOMETHING LIKE THIS FOR YERS, YOU SAVED ME!!
Nice video. I was trying to look for a video on this but couldn't find any, thanks and keep up the great work!
bot-
@@Therealanassela suck deck
super clean and really impressive. no ik required! :)
Thank you so much. I have been trying to look for a script like this for so long!
You have NO IDEA how long I've been searching the internet trying to find this.
Brilliant tutorial but as a developer the reason I would not use this is because people want to play in their own Avatar animation. Everyone who entered a game with this system would have to be animated specifically this way which people may not like. If Roblox added a “walk back” animation in the default animations we could then manipulate all peoples animations with their own but unfortunately that’s not the case 🫤
Custom animations are for r15 and this is for R6
Thank you so much this is exactly what i needed
edit: and the fact that he makes it free to use no credit
thanks this is exactly what i needed
here is the script ( I added Idle animation as well, also if you have a sprint script for r6 this script will not allow the torso to bend for the running animation) ---- local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")
local Humanoid = Character:WaitForChild("Humanoid")
local AnimationsFolder = script:WaitForChild("Animations")
local AnimationsTable = {
["WalkForward"] = Humanoid:LoadAnimation(AnimationsFolder.WalkForward),
["WalkRight"] = Humanoid:LoadAnimation(AnimationsFolder.WalkRight),
["WalkLeft"] = Humanoid:LoadAnimation(AnimationsFolder.WalkLeft),
["Idle"] = Humanoid:LoadAnimation(AnimationsFolder.Idle),
}
-- Function to play animations for a specific player
local function playAnimations(player, animationsTable)
for _, Animation in pairs(animationsTable) do
Animation:Play(0, 0.01, 0)
end
RunService.RenderStepped:Connect(function()
local DirectionOfMovement = HumanoidRootPart.CFrame:VectorToObjectSpace(HumanoidRootPart.AssemblyLinearVelocity)
local Forward = math.abs(math.clamp(DirectionOfMovement.Z / Humanoid.WalkSpeed, -1, -0.001))
local Backwards = math.abs(math.clamp(DirectionOfMovement.Z / Humanoid.WalkSpeed, 0.001, 1))
local Right = math.abs(math.clamp(DirectionOfMovement.X / Humanoid.WalkSpeed, 0.001, 1))
local Left = math.abs(math.clamp(DirectionOfMovement.X / Humanoid.WalkSpeed, -1, -0.001))
if DirectionOfMovement.Magnitude < 0.1 then
animationsTable.Idle:AdjustWeight(1)
animationsTable.Idle:AdjustSpeed(1)
else
animationsTable.Idle:AdjustWeight(0)
animationsTable.Idle:AdjustSpeed(0)
if DirectionOfMovement.Z / Humanoid.WalkSpeed < 0.1 then
animationsTable.WalkForward:AdjustWeight(Forward)
animationsTable.WalkRight:AdjustWeight(Right)
animationsTable.WalkLeft:AdjustWeight(Left)
animationsTable.WalkForward:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1)
animationsTable.WalkRight:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1)
animationsTable.WalkLeft:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1)
else
animationsTable.WalkForward:AdjustWeight(Backwards)
animationsTable.WalkRight:AdjustWeight(Left)
animationsTable.WalkLeft:AdjustWeight(Right)
animationsTable.WalkForward:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1)
animationsTable.WalkRight:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1)
animationsTable.WalkLeft:AdjustSpeed(DirectionOfMovement.Magnitude / Humanoid.WalkSpeed * -1)
end
end
end)
end
-- Play animations for the local player
playAnimations(Player, AnimationsTable)
-- Network synchronization for other players
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
local animationsTableCopy = {}
for name, animation in pairs(AnimationsTable) do
animationsTableCopy[name] = humanoid:LoadAnimation(animation.Animation)
end
playAnimations(player, animationsTableCopy)
-- Synchronize animations with other players
RunService.Heartbeat:Connect(function()
for name, animation in pairs(animationsTableCopy) do
AnimationsTable[name]:ApplyTransition(animation.Weight, animation.Speed)
end
end)
end)
end)
Sigma
W
W comment
is nobody talking about the text to speech said ✨universy✨ and ✨lo-ked✨
Overall, great tutorial! Its understandable.
Hearing the mario kart double dash credit theme over this was magical
Yes! This code really helps a lot, thank you!
(You might wanna include the jump animation for that model link)
heres a script for jump
Humanoid.Jumping:Connect(function(IsJumping)
if IsJumping then
AnimationsTable.Jump:Play(1)
else
end
end)
@@NovaFlynnSmith This goes in a different script and then put a Jump animation Animations folder?
No. Put it on the same script but put it at the very end of the animation script, you should add the jump anim first on the animations folder
If you want to stop the jump anim when landing well i think you know how just use statechanged
@@Togawaaa thats all
i personally really appreciate you using text to speech instead of just text, helps a lot for multitasking :)
Thanks you so much Mr. AI, I thought it would be very difficult, but it turns out making something like this is quite simple :D
Strafing animations exist now so you can just change the strafe animations in the character
what is bro doing here
you can't
Hey, amazing work! But my animations can't seem to load, any way to fix this? Thanks!
thanks dude! this really helped a lot 👌
GPO needs this
@phoeyu
You jst helped me understand how all the math works. Didn’t even think it was this easy lol
big thanks! You actually helped me learn how to script a bit!
0:48 you can make the game open source, and then the user can upload the animations there
bRO I HAVE BEEN SEARCHING FOR THIS TUTORIAL FOR TOO LONG (AROUND A YEAR TO BE EXACT)
thx soo much man
Finally after years, I've found it
work perfectly! thanks for the great tutorial
I love your teaching style.
This works great! THANKS!
simple, and very good explaining! great tutorial!
Hey, can you please tell me what text-to-voice you use? :(
why
Litally just the found the new entertaining bro that keeps me entertained to learn about scripting thanks dawg.
what font do you use for the script editor, looks so clean
thank this video was ammazing!
im curious, does this overwrite the regular animation script in the character? or are the walk animations and such from the regular animation script still playing?
Naming the local script “Animate” does override the default animate script, so yes.
can you make a lerp without animations? w makes you learn foward, s makes you learn backwards and a makes you look to the left (not lean) and d makes you look to the right
local RunService = game:GetService('RunService')
local Player = game.Players.LocalPlayer
local Character = Player.Character
local HumanoidRootPart = Character:WaitForChild('HumanoidRootPart')
local Humanoid = Character:WaitForChild('Humanoid')
local AnimationsFolder = script:WaitForChild('Animations')
local AnimationsTable = {
['WalkForward'] = Humanoid:LoadAnimation( AnimationsFolder.WalkForward ),
['WalkRight'] = Humanoid:LoadAnimation( AnimationsFolder.WalkRight ),
['WalkLeft'] = Humanoid:LoadAnimation( AnimationsFolder.WalkLeft ),
}
for _, Animation in AnimationsTable do
Animation:Play( 0, 0.01, 0 )
end
RunService.RenderStepped:Connect(function()
local DirectionOfMovement = HumanoidRootPart.CFrame:VectorToObjectSpace( HumanoidRootPart.AssemblyLinearVelocity )
print(DirectionOfMovement)
local Forward = math.abs( math.clamp( DirectionOfMovement.Z / Humanoid.WalkSpeed, -1, -0.001 ) )
local Backwards = math.abs( math.clamp( DirectionOfMovement.Z / Humanoid.WalkSpeed, 0.001, 1 ) )
local Right = math.abs( math.clamp( DirectionOfMovement.X / Humanoid.WalkSpeed, 0.001, 1 ) )
local Left = math.abs( math.clamp( DirectionOfMovement.X / Humanoid.WalkSpeed, -1, -0.001 ) )
local SpeedUnit = (DirectionOfMovement.Magnitude / Humanoid.WalkSpeed)
if DirectionOfMovement.Z/Humanoid.WalkSpeed < 0.1 then
AnimationsTable.WalkForward:AdjustWeight( Forward )
AnimationsTable.WalkRight:AdjustWeight( Right )
AnimationsTable.WalkLeft:AdjustWeight( Left )
AnimationsTable.WalkForward:AdjustSpeed( SpeedUnit )
AnimationsTable.WalkRight:AdjustSpeed( SpeedUnit )
AnimationsTable.WalkLeft:AdjustSpeed( SpeedUnit )
else
AnimationsTable.WalkForward:AdjustWeight( Backwards )
AnimationsTable.WalkRight:AdjustWeight( Left )
AnimationsTable.WalkLeft:AdjustWeight( Right )
AnimationsTable.WalkForward:AdjustSpeed( SpeedUnit * -1 )
AnimationsTable.WalkRight:AdjustSpeed( SpeedUnit * -1 )
AnimationsTable.WalkLeft:AdjustSpeed( SpeedUnit * -1 )
end
end)
I NEEDED THIS THANK YOU
Wow is actually fun watching 😂😂
quick question, i just really wanna know the background music youve used in this video if possible 😅
W guy, first vid ive seen of this + new sub
Can you make more tutorials? Since roblox dev on youtube is on pretty much elementary level, it would be nice if at least someone created tutorial on something advanced
Have you looked at TheDevKing’s Advanced series?
@@ronaldo_cf17 they are not advanced
Roblox allows sharing animations if you export it using Moon animator plugin. Unfortunately the price skyrocketed.
thanks for the helpful tutorial!
this was very helpful, thanks
Yo, what's your studio settings and font for it to look like that? It's really smooth ❤
i love ur colors for ur code could you tell me what they are for each one
Basically Roblox's feature "StrafingAnimations" but R6 supported
actually good footplanting
bro how do i get pluginguiservice and what did he do to get the animations 0:35
Can you pls do a combat system were they use hands and legs to fight?
Does this work for custom rigs such as Skinned Meshes? For example, if I'm using a dragon would it work for it?
Roblox animator supports any rig as long as it uses bones or motor6d
Better than roblox walking animatoon
you make good tutorial! Wish you would be famous one day!
How would I go about adding an animation for walking backwards? Additionally, how would you add an idle animation? I've tried to implement both myself but I lack the knowledge of whats going on. Any help appreciated!
Well- on else statement
Make Additional one for the idle-
And check if the idle isn't playing then below the if statement on the idle
Play the animation
really thank you for this tutorial😁
I think I did the code right but whenever I test it in game there is no animation when I walk, I animated my own walk anims, uploaded them to roblox, and inserted the ID in the AnimationId box and it doesn't play the animation when I move, just a static pose, any reasons for this?
Same thing for me. I’m going to try to fix this and if I do I’ll let u know
@@Bluified_ did u find a solution? at first I thought It would be as simple as publishing and setting the game to r6 but its still not working.
@@guhuhhuh3630 yeah I can’t find any solutions either. I might have to post the code on a forum and see if someone more experienced can help
Anyone found a solution yet?
i feel like the engineer from tf2 is teaching me
I really wanna see a procedural one, please do it if you can!
he did it already
Also if you already have a sprint script can you please make a tutorial on how to put sprint animations when our sprint scipt is activated?
*me watching even though I’m not a developer or plan to make any games*
Hey I have a question, how do I create the three animations accordingly? I don't quite get it.. I have to make it myself? :v
Everytime I follow steps for these types of videos, after completing everything I load up the game and my characters animation is just in a still pose when moving, How do I fix this?
Maybe you didnt put up your own animation id?
Now make a procedural walk cycle using inverse kinematics.
ruclips.net/video/bRSxAasiSmA/видео.html
wait you're actually a genius
Thanks for tutorial
Yo man! Can you explain whenever i play test my game my avatar doesnt do any animation for walking? Like its just standing?? Tho it only happends when i put r6 or the player chooses..😔
do you know how to make a jump animation?
Because I was testing around with the script so I could make a run and walk mode with working left right etc but I do not know how to make the jump/fall Anim.
Can you make it for sprinting too? Also the video is so fun like the voice so keep it up
Do you actually need to use waitForChild when creating a variable? I think you can just write it normally without waitforchild
bro my brain is frying by listening to this
3:10
the ai switch accent is so funny to me
So much similar to gear 5 in fruit battleground
I feel like this would work but I feel like it won’t work for me it’s just that I watched a tutorial on how to make a left shift Sprint button with animation I did it but it did not work. I’m a failure ):
thank you man thats is good tutorial :)
I just noticed a little problem with the animations: when you are holding a tool the character does not hold it correctly
Me trying to not lose a brain cell: 😐〽️
THANK YOU
Good video, liked the AI voice. Thanks!
Nice! do you think you can make one for r15??
is there a way to add jumping/falling and idle animations as well?
1 question. Can other players see the animation playing?
Cool. Is this r6? And can it be customized to r15?
man you should continue doing tutorials no cap
thanks bro ! +1 subscriber😀
tysm! you the best!
can u please just explain how to animate and how to put the animation id into the things and how to get the animation to work???
OOOOORRR you can enable strafing animations in game settings (works only for r15 though)
they ruined the animations, i didnt even get the chance to even archive them