Kaemi

Twerk for me daddy

Jan 1st, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.44 KB | None | 0 0
  1. function clerp(a,b,t)
  2. local qa = {QuaternionFromCFrame(a)}
  3.  
  4. local qb = {QuaternionFromCFrame(b)}
  5.  
  6. local ax, ay, az = a.x, a.y, a.z
  7.  
  8. local bx, by, bz = b.x, b.y, b.z
  9.  
  10. local _t = 1-t
  11.  
  12. return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
  13. end
  14.  
  15. function QuaternionFromCFrame(cf)
  16. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  17.  
  18. local trace = m00 + m11 + m22
  19. if trace > 0 then
  20. local s = math.sqrt(1 + trace)
  21.  
  22. local recip = 0.5/s
  23.  
  24. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  25. else
  26. local i = 0
  27.  
  28. if m11 > m00 then
  29.  
  30. i = 1
  31.  
  32. end
  33. if m22 > (i == 0 and m00 or m11) then
  34.  
  35. i = 2
  36.  
  37. end
  38. if i == 0 then
  39. local s = math.sqrt(m00-m11-m22+1)
  40.  
  41. local recip = 0.5/s
  42.  
  43. return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
  44. elseif i == 1 then
  45. local s = math.sqrt(m11-m22-m00+1)
  46.  
  47. local recip = 0.5/s
  48.  
  49. return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
  50. elseif i == 2 then
  51. local s = math.sqrt(m22-m00-m11+1)
  52.  
  53. local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
  54. end
  55. end
  56. end
  57.  
  58. function QuaternionToCFrame(px, py, pz, x, y, z, w)
  59. local xs, ys, zs = x + x, y + y, z + z
  60.  
  61. local wx, wy, wz = w*xs, w*ys, w*zs
  62.  
  63. local xx = x*xs
  64.  
  65. local xy = x*ys
  66.  
  67. local xz = x*zs
  68.  
  69. local yy = y*ys
  70.  
  71. local yz = y*zs
  72.  
  73. local zz = z*zs
  74.  
  75. return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy))
  76. end
  77.  
  78. function QuaternionSlerp(a, b, t)
  79. local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
  80. local startInterp, finishInterp;
  81. if cosTheta >= 0.0001 then
  82. if (1 - cosTheta) > 0.0001 then
  83. local theta = math.acos(cosTheta)
  84.  
  85. local invSinTheta = 1/math.sin(theta)
  86.  
  87. startInterp = math.sin((1-t)*theta)*invSinTheta
  88.  
  89. finishInterp = math.sin(t*theta)*invSinTheta
  90. else
  91. startInterp = 1-t
  92.  
  93. finishInterp = t
  94. end
  95. else
  96. if (1+cosTheta) > 0.0001 then
  97. local theta = math.acos(-cosTheta)
  98. local invSinTheta = 1/math.sin(theta)
  99. startInterp = math.sin((t-1)*theta)*invSinTheta
  100. finishInterp = math.sin(t*theta)*invSinTheta
  101. else
  102. startInterp = t-1
  103.  
  104. finishInterp = t
  105. end
  106. end
  107. return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp
  108. end
  109.  
  110. cf = CFrame.new
  111. euler = CFrame.fromEulerAnglesXYZ
  112.  
  113. Player=game:GetService("Players").LocalPlayer
  114. Character=Player.Character
  115. PlayerGui=Player.PlayerGui
  116. Backpack=Player.Backpack
  117. Torso=Character.Torso
  118. Head=Character.Head
  119. Hum1=Character.kaemi
  120. LeftArm=Character["Left Arm"]
  121. LeftLeg=Character["Left Leg"]
  122. RightArm=Character["Right Arm"]
  123. RightLeg=Character["Right Leg"]
  124. Neck=Torso["Neck"]
  125. LS=Torso["Left Shoulder"]
  126. LH=Torso["Left Hip"]
  127. RS=Torso["Right Shoulder"]
  128. RH=Torso["Right Hip"]
  129. necko=CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
  130. LHC0=cf(-1,-1,0,-0,-0,-1,0,1,0,1,0,0)
  131. LHC1=cf(-0.5,1,0,-0,-0,-1,0,1,0,1,0,0)
  132. RHC0=cf(1,-1,0,0,0,1,0,1,0,-1,-0,-0)
  133. RHC1=cf(0.5,1,0,0,0,1,0,1,0,-1,-0,-0)
  134. RootPart=Character.HumanoidRootPart
  135. RootJoint=RootPart.RootJoint
  136. RootCF=euler(-1.57,0,3.14)
  137. RW, LW=Instance.new("Weld"), Instance.new("Weld")
  138. RHW, LHW=Instance.new("Weld"), Instance.new("Weld")
  139. RW.Name="Right Shoulder"
  140. LW.Name="Left Shoulder"
  141. RHW.Name="Right Hip"
  142. LHW.Name="Left Hip"
  143.  
  144. function swait(num)
  145. if num==0 or num==nil then
  146. game:service'RunService'.RenderStepped:wait()
  147. else
  148. for i=0,num do
  149. game:service'RunService'.RenderStepped:wait()
  150. end
  151. end
  152. end
  153.  
  154. local Animator
  155. if Hum1:FindFirstChild("Animator") ~= nil then
  156. Animator = Hum1:FindFirstChild("Animator"):clone()
  157. end
  158.  
  159. local Animate1
  160. if Character:FindFirstChild("Animate1") ~= nil then
  161. Animate1 = Character:FindFirstChild("Animate1"):clone()
  162. Animate1.Disabled = true
  163. end
  164.  
  165. local Mouse = Player:GetMouse()
  166. local Toggle = false
  167.  
  168. Mouse.KeyDown:connect(function(key)
  169. if key == "q" then
  170. if Toggle == false then
  171. Toggle = true
  172. else
  173. Toggle = false
  174. end
  175. end
  176. end)
  177.  
  178. RSH=Torso["Right Shoulder"]
  179. LSH=Torso["Left Shoulder"]
  180.  
  181.  
  182. local C = nil --cloner
  183. local SFX = nil
  184. local Anim,LAnim
  185. local Init = false
  186. while true do
  187.  
  188. swait()
  189.  
  190. if Toggle == true then
  191.  
  192. if Init == false then
  193.  
  194. if SFX == nil and Head:FindFirstChild("SFX") == nil then
  195. SFX = Instance.new("Sound",Head)
  196. SFX.Name = "SFX"
  197. SFX.Looped = true
  198. SFX.SoundId = "rbxassetid://170184872"
  199. SFX.Volume = 1
  200. swait()
  201. end
  202.  
  203. if SFX ~= nil then
  204. SFX:Play()
  205. end
  206.  
  207. RSH.Parent=nil
  208. LSH.Parent=nil
  209. RH.Parent=nil
  210. LH.Parent=nil
  211. --
  212. RW.Name="Right Shoulder"
  213. RW.Part0=Torso
  214. RW.C0=CFrame.new(1.5, 0.5, 0)
  215. RW.C1=CFrame.new(0, 0.5, 0)
  216. RW.Part1=Character["Right Arm"]
  217. RW.Parent=Torso
  218. --
  219. LW.Name="Left Shoulder"
  220. LW.Part0=Torso
  221. LW.C0=CFrame.new(-1.5, 0.5, 0)
  222. LW.C1=CFrame.new(0, 0.5, 0)
  223. LW.Part1=Character["Left Arm"]
  224. LW.Parent=Torso
  225. --
  226.  
  227. RHW.Name="Right Hip"
  228. RHW.Part0=Torso
  229. RHW.C0=CFrame.new(1, -1, 0)
  230. RHW.C1=CFrame.new(0.5, 1, 0)
  231. RHW.Part1=Character["Right Leg"]
  232. RHW.Parent=Torso
  233. --
  234. LHW.Name="Left Hip"
  235. LHW.Part0=Torso
  236. LHW.C0=CFrame.new(-1, -1, 0)
  237. LHW.C1=CFrame.new(-0.5, 1, 0)
  238. LHW.Part1=Character["Left Leg"]
  239. LHW.Parent=Torso
  240. Init = true
  241. end
  242.  
  243. -- animations
  244.  
  245.  
  246.  
  247. for i=0,.6,0.085 do
  248. if Toggle == false then
  249. break
  250. end
  251. swait()
  252. Neck.C0=clerp(Neck.C0,necko * euler(0,0,0),0.6)
  253. RootJoint.C0=clerp(RootJoint.C0,cf(0,0,0) * euler(-1.9,0,3.14),0.6)
  254. LHW.C0 = clerp(LHW.C0,cf(-1,-1,.25) * euler(0.5,0,-.25),0.6)
  255. RHW.C0 = clerp(RHW.C0,cf(1,-1,.25) * euler(0.5,0,.25),0.6)
  256. RW.C0 = clerp(RW.C0,cf(1.25, 0.25, -0.25) * euler(0.5,0,-.15),0.6)
  257. LW.C0 = clerp(LW.C0,cf(-1.25, 0.25, -0.25) * euler(0.5,0,.15),0.6)
  258. end
  259.  
  260. swait()
  261.  
  262. for i=0,.6,0.085 do
  263. if Toggle == false then
  264. break
  265. end
  266. swait()
  267. Neck.C0=clerp(Neck.C0,necko * euler(-0.25,0,0),0.6)
  268. RootJoint.C0=clerp(RootJoint.C0,cf(0,-0.1,0) * euler(-2,0,3.14),0.6)
  269. LHW.C0 = clerp(LHW.C0,cf(-1,-1,.25) * euler(0.65,0,-.3),0.6)
  270. RHW.C0 = clerp(RHW.C0,cf(1,-1,.25) * euler(0.65,0,.3),0.6)
  271. RW.C0 = clerp(RW.C0,cf(1.25, 0.25, -0.25) * euler(0.5,0,-.15),0.6)
  272. LW.C0 = clerp(LW.C0,cf(-1.25, 0.25, -0.25) * euler(0.5,0,.15),0.6)
  273. end
  274.  
  275. -- animations end
  276.  
  277. else
  278. if Init == true then
  279. for i=0,.5,0.1 do
  280. --anim reset
  281. Neck.C0=clerp(Neck.C0,necko,0.5)
  282. RootJoint.C0=clerp(RootJoint.C0,RootCF,0.5)
  283. RW.C0 = clerp(RW.C0,cf(1.5, 0.25, 0), 0.5)
  284. LW.C0 = clerp(RW.C0,cf(-1.5, 0.25, 0),0.5)
  285. RHW.C0 = clerp(RHW.C0,cf(1, -1, 0),0.5)
  286. LHW.C0 = clerp(RHW.C0,cf(-1, -1, 0),0.5)
  287.  
  288. if SFX ~= nil then
  289. SFX:Stop()
  290. SFX:Destroy()
  291. SFX = nil
  292. end
  293.  
  294. RW.Parent=nil
  295. LW.Parent=nil
  296. RHW.Parent=nil
  297. LHW.Parent=nil
  298.  
  299. RSH.Parent=Character.Torso
  300. LSH.Parent=Character.Torso
  301. RH.Parent=Character.Torso
  302. LH.Parent=Character.Torso
  303.  
  304.  
  305. if Character:FindFirstChild("Animate1") ~= nil then
  306. Character:FindFirstChild("Animate1").Disabled = false
  307. end
  308. Init = false
  309. if Toggle == true then
  310. break
  311. end
  312. end
  313. end
  314.  
  315. end
  316. end
  317.  
  318. Hum1.Died:connect(function() Toggle = false; script:Remove(); end)
Add Comment
Please, Sign In to add comment