Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -->> Sample-Animations
- --|| Made by basbas1234;
- Players = game:GetService('Players')
- ServerStorage = game:GetService('ServerStorage');
- RunService = game:GetService('RunService');
- TweenService = game:GetService('TweenService');
- Debris = game:GetService('Debris');
- Terrain = workspace.Terrain;
- Camera = workspace.CurrentCamera;
- local Character = script.Parent
- local Humanoid = Character:WaitForChild('Humanoid')
- local HumanoidRootPart = Character:WaitForChild('HumanoidRootPart')
- local Head = Character:WaitForChild('Head')
- local Torso = Character:WaitForChild('Torso')
- local RightArm = Character:WaitForChild('Right Arm')
- local LeftArm = Character:WaitForChild('Left Arm')
- local RightLeg = Character:WaitForChild('Right Leg')
- local LeftLeg = Character:WaitForChild('Left Leg')
- local RootJoint = HumanoidRootPart:WaitForChild('RootJoint')
- local Neck = Torso:WaitForChild('Neck')
- NeckCFrame = CFrame.new(0, 1.5, 0)
- RootCFrame = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14)
- Connections = {}
- Networks = {}
- local Wrap = coroutine.wrap
- local NewCFrame = CFrame.new
- local NewAngles = CFrame.Angles
- local NewRad = math.rad
- local NewSin = math.sin
- local NewCos = math.cos
- --[ Frame Systems ];
- TimeFrame = 0
- FrameRate = 1 / 60
- TimeFrameLoss = false
- FrameRateLoss = false
- LastFrame = tick()
- local Heartbeat = Instance.new('BindableEvent')
- Heartbeat.Name = 'Heartbeat'
- Heartbeat.Parent = script
- script:WaitForChild('Heartbeat')
- Heartbeat:Fire()
- RunService.Heartbeat:Connect(function(Step)
- TimeFrame = TimeFrame + Step
- if TimeFrame >= FrameRate then
- if FrameRateLoss then
- Heartbeat:Fire()
- LastFrame = tick()
- else
- for i = 1, math.floor(TimeFrame / FrameRate) do
- Heartbeat:Fire()
- end
- LastFrame = tick()
- end
- if TimeFrameLoss then
- TimeFrame = 0
- else
- TimeFrame = TimeFrame - FrameRate * math.floor(TimeFrame / FrameRate)
- end
- end
- end)
- --\\
- -->> Functions;
- --//
- function Swait(Numbers)
- if (Numbers == 0 or Numbers == nil) then
- Heartbeat.Event:Wait()
- else
- for Index = 0, Numbers do
- Heartbeat.Event:Wait()
- end
- end
- end
- function HeartbeatWait()
- return RunService.Heartbeat:Wait()
- end
- function CLerp(Start, End, TimeToNewCFrame)
- return Start:Lerp(End, TimeToNewCFrame)
- end
- function CreateWeld(Parent, Part0, Part1, C0, C1)
- local Weld = Instance.new('Weld')
- Weld.Parent = Parent
- Weld.Part0 = Part0
- Weld.Part1 = Part1
- Weld.C0 = C0 or NewCFrame(0, 0, 0) * NewAngles(0, 0, 0)
- Weld.C1 = C1 or NewCFrame(0, 0, 0) * NewAngles(0, 0, 0)
- return Weld
- end
- --\\
- -->> Animate;
- --//
- Animpose = 'Standing'
- Walk = 0
- Walked = false
- Change = 1
- Sine = 0
- RW = Torso:FindFirstChild("Weld Right Shoulder") or Instance.new("Weld",Torso)
- LW = Torso:FindFirstChild("Weld Left Shoulder") or Instance.new("Weld",Torso)
- RH = Torso:FindFirstChild("Weld Right Hip") or Instance.new("Weld",Torso)
- LH = Torso:FindFirstChild("Weld Left Hip") or Instance.new("Weld",Torso)
- HW = Torso:FindFirstChild("Weld Neck") or Instance.new("Weld",Torso)
- pcall(function() Character.Neck:Destroy() end)
- RW.Name = "Weld Right Shoulder"
- RW.Part0 = Torso
- RW.Part1 = RightArm
- RW.C0 = NewCFrame(1.5, 0.5, 0)
- RW.C1 = NewCFrame(0, 0.5, 0)
- LW.Name = "Weld Left Shoulder"
- LW.Part0 = Torso
- LW.Part1 = LeftArm
- LW.C0 = NewCFrame(-1.5, 0.5, 0)
- LW.C1 = NewCFrame(0, 0.5, 0)
- RH.Name = "Weld Right Hip"
- RH.Part0 = Torso
- RH.Part1 = RightLeg
- RH.C0 = NewCFrame(0.5, -2, 0)
- RH.C1 = NewCFrame(0, 0, 0)
- LH.Name = "Weld Left Hip"
- LH.Part0 = Torso
- LH.Part1 = LeftLeg
- LH.C0 = NewCFrame(-0.5, -2, 0)
- LH.C1 = NewCFrame(0, 0, 0)
- HW.Name = "Weld Neck"
- HW.Part0 = Torso
- HW.Part1 = Head
- HW.C0 = NewCFrame(0, 1.5, 0)
- HW.C1 = NewCFrame(0, 0, 0)
- Humanoid.Running:Connect(function(Speed)
- Walk = Speed
- Walked = true
- end)
- Wrap(function()
- while true do
- Swait()
- Sine = Sine + Change
- Walk = Walked and Walk or 0 -- or this method : if not (Walked and Walk) then Walk = 0 end
- local Jump = HumanoidRootPart.Velocity.Y
- local HitFloor = (Humanoid.FloorMaterial ~= Enum.Material.Air and true)
- HitFloor = HitFloor or nil
- if Walk >= 20 and HitFloor ~= nil then
- Animpose = "Running"
- Change = Walk * 0.2
- RootJoint.C0 = CLerp(RootJoint.C0, RootCFrame * NewCFrame(0, 0, 0-0.1*NewCos(Sine/15)) * NewAngles(NewRad(20-2.5*NewCos(Sine/30)), NewRad(0), NewRad(5*NewCos(Sine/30))), 0.3)
- HW.C0 = CLerp(HW.C0, NeckCFrame * NewAngles(NewRad(-2.5), NewRad(5*NewCos(Sine/30)), NewRad(0)), 0.2)
- RW.C0 = CLerp(RW.C0, NewCFrame(1.5, 0.5, 0) * NewAngles(NewRad(-60*NewCos(Sine/30)), NewRad(0), NewRad(10+2.5*NewCos(Sine/30))), 0.25)
- LW.C0 = CLerp(LW.C0, NewCFrame(-1.5, 0.5, 0) * NewAngles(NewRad(60*NewCos(Sine/30)), NewRad(0), NewRad(-10-2.5*NewCos(Sine/30))), 0.25)
- RH.C0 = CLerp(RH.C0, NewCFrame(0.5, -1.9-0.1*NewCos(Sine/30), -0.05-0.85*NewCos(Sine/30)) * NewAngles(NewRad(20*NewCos(Sine/30)-RightLeg.RotVelocity.Y/25+-NewSin(Sine/30)/2.5), NewRad(0), NewRad(0)) * NewAngles(NewRad(0+30*NewCos(Sine/30)), NewRad(0), NewRad(0)), 0.25)
- LH.C0 = CLerp(LH.C0, NewCFrame(-0.5, -1.9-0.1*NewCos(Sine/30), 0.05+0.85*NewCos(Sine/30)) * NewAngles(NewRad(-20*NewCos(Sine/30)+LeftLeg.RotVelocity.Y/25-NewSin(Sine/30)/2.5), NewRad(0), NewRad(0)) * NewAngles(NewRad(0+-30*NewCos(Sine/30)), NewRad(0), NewRad(0)), 0.25)
- end
- if Jump > 0 and HitFloor == nil then
- Animpose = "Jumping"
- Change = 2
- RootJoint.C0 = CLerp(RootJoint.C0, RootCFrame * NewCFrame(0, 0, 0) * NewAngles(NewRad(0), NewRad(0), NewRad(0)), 0.25)
- HW.C0 = CLerp(HW.C0, NeckCFrame * NewCFrame(0, 0, -0.05) * NewAngles(NewRad(10+2*NewSin(Sine/30)), NewRad(0), NewRad(0)), 0.5)
- RW.C0 = CLerp(RW.C0, NewCFrame(1.5, 0.5, 0) * NewAngles(NewRad(-20), NewRad(0), NewRad(30)), 0.25)
- LW.C0 = CLerp(LW.C0, NewCFrame(-1.5, 0.5, 0) * NewAngles(NewRad(-20), NewRad(0), NewRad(-30)), 0.25)
- RH.C0 = CLerp(RH.C0, NewCFrame(0.55, -1.95-0.075*NewCos(Sine/15), -0.05) * NewAngles(NewRad(0), NewRad(-10), NewRad(2.5)), 0.25)
- LH.C0 = CLerp(LH.C0, NewCFrame(-0.55, -1.95-0.075*NewCos(Sine/15), -0.05) * NewAngles(NewRad(0), NewRad(9), NewRad(-2.5)), 0.25)
- end
- if Walk == 0 and HitFloor ~= nil then
- Animpose = "Standing"
- Change = 1
- RootJoint.C0 = CLerp(RootJoint.C0, RootCFrame * NewCFrame(0, 0, -0.1 + 0.1*NewCos(Sine/15)) * NewAngles(NewRad(0), NewRad(0), NewRad(0)), 0.05)
- HW.C0 = CLerp(HW.C0, NeckCFrame * NewCFrame(0, 0, -0.1-0.05*NewSin(Sine/15)) * NewAngles(NewRad(-10-4.5*NewSin(Sine/15)), NewRad(0), NewRad(0)), 0.05)
- RW.C0 = CLerp(RW.C0, NewCFrame(1.425, 0.625+0.1*NewCos(Sine/15), 0) * NewAngles(NewRad(0), NewRad(0), NewRad(15+3*NewCos(Sine/15))), 0.05)
- LW.C0 = CLerp(LW.C0, NewCFrame(-1.425, 0.625+0.1*NewCos(Sine/15), 0) * NewAngles(NewRad(0), NewRad(0), NewRad(-12-3*NewCos(Sine/15))), 0.05)
- RH.C0 = CLerp(RH.C0, NewCFrame(0.55, -1.95-0.075*NewCos(Sine/15), -0.025) * NewAngles(NewRad(0), NewRad(-10), NewRad(2.5)), 0.05)
- LH.C0 = CLerp(LH.C0, NewCFrame(-0.55, -1.95-0.075*NewCos(Sine/15), -0.025) * NewAngles(NewRad(0), NewRad(9), NewRad(-2.5)), 0.05)
- end
- if Jump < 0 and HitFloor == nil then
- Animpose = "Freefalling"
- Change = 2
- RootJoint.C0 = CLerp(RootJoint.C0, RootCFrame * NewCFrame(0, 0, 0) * NewAngles(NewRad(0), NewRad(0), NewRad(0)), 0.25)
- HW.C0 = CLerp(HW.C0, NeckCFrame * NewCFrame(0, 0, -0.05) * NewAngles(NewRad(-10), NewRad(0), NewRad(0)), 0.1)
- RW.C0 = CLerp(RW.C0, NewCFrame(1.5, 0.5, 0) * NewAngles(NewRad(-30), NewRad(0), NewRad(50)), 0.25)
- LW.C0 = CLerp(LW.C0, NewCFrame(-1.5, 0.5, 0) * NewAngles(NewRad(-30), NewRad(0), NewRad(-50)), 0.25)
- RH.C0 = CLerp(RH.C0, NewCFrame(0.55, -1.95-0.075*NewCos(Sine/(15)), -0.05) * NewAngles(NewRad(0), NewRad(-10), NewRad(2.5)), 0.25)
- LH.C0 = CLerp(LH.C0, NewCFrame(-0.55, -1.95-0.075*NewCos(Sine/(15)), -0.05) * NewAngles(NewRad(0), NewRad(9), NewRad(-2.5)), 0.25)
- end
- if Walk > 0 and Walk < 20 and HitFloor ~= nil then
- Animpose = "Walking"
- Change = Walk * 0.15
- RootJoint.C0 = CLerp(RootJoint.C0, RootCFrame * NewCFrame(0, 0, -0.1-0.1*NewCos(Sine/15)) * NewAngles(NewRad(0), NewRad(0), NewRad(0-2.5*NewCos(Sine/30))), 0.15)
- HW.C0 = CLerp(HW.C0, NeckCFrame * NewCFrame(0, 0, -0.05) * NewAngles(NewRad(-5), NewRad(0), NewRad(-1*NewCos(Sine/30))), 0.05)
- RW.C0 = CLerp(RW.C0, NewCFrame(1.5, 0.5, 0) * NewAngles(NewRad(0+40*NewCos(Sine/30)), NewRad(0), NewRad(5+2.5*NewCos(Sine/30))), 0.15)
- LW.C0 = CLerp(LW.C0, NewCFrame(-1.5, 0.5, 0) * NewAngles(NewRad(0-40*NewCos(Sine/30)), NewRad(0), NewRad(-5-2.5*NewCos(Sine/30))), 0.15)
- RH.C0 = CLerp(RH.C0, NewCFrame(0.5, -1.925+0.15*NewCos(Sine/30)/2, 0.25+0.75*NewCos(Sine/30)) * NewAngles(NewRad(-15-35*NewCos(Sine/30)), NewRad(0), NewRad(0)), 0.15)
- LH.C0 = CLerp(LH.C0, NewCFrame(-0.5, -1.925+-0.15*NewCos(Sine/30)/2, 0.25+-0.75*NewCos(Sine/30)) * NewAngles(NewRad(-15+35*NewCos(Sine/30)), NewRad(0), NewRad(0)), 0.15)
- end
- end
- end)()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement