00fjg

Untitled

Apr 12th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.80 KB | None | 0 0
  1.  
  2. --This is just a fun script. Make it local to work, have fun. --
  3. do --CFrame lerp
  4. local function QuaternionFromCFrame(cf)
  5. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  6. local trace = m00 + m11 + m22
  7. if trace > 0 then
  8. local s = math.sqrt(1 + trace)
  9. local recip = 0.5/s
  10. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  11. else
  12. local i = 0
  13. if m11 > m00 then
  14. i = 1
  15. end
  16. if m22 > (i == 0 and m00 or m11) then
  17. i = 2
  18. end
  19. if i == 0 then
  20. local s = math.sqrt(m00-m11-m22+1)
  21. local recip = 0.5/s
  22. return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
  23. elseif i == 1 then
  24. local s = math.sqrt(m11-m22-m00+1)
  25. local recip = 0.5/s
  26. return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
  27. elseif i == 2 then
  28. local s = math.sqrt(m22-m00-m11+1)
  29. local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
  30. end
  31. end
  32. end
  33. local function QuaternionToCFrame(px, py, pz, x, y, z, w)
  34. local xs, ys, zs = x + x, y + y, z + z
  35. local wx, wy, wz = w*xs, w*ys, w*zs
  36. local xx = x*xs
  37. local xy = x*ys
  38. local xz = x*zs
  39. local yy = y*ys
  40. local yz = y*zs
  41. local zz = z*zs
  42. 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))
  43. end
  44. local function QuaternionSlerp(a, b, t)
  45. local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
  46. local startInterp, finishInterp;
  47. if cosTheta >= 0.0001 then
  48. if (1 - cosTheta) > 0.0001 then
  49. local theta = math.acos(cosTheta)
  50. local invSinTheta = 1/math.sin(theta)
  51. startInterp = math.sin((1-t)*theta)*invSinTheta
  52. finishInterp = math.sin(t*theta)*invSinTheta
  53. else
  54. startInterp = 1-t
  55. finishInterp = t
  56. end
  57. else
  58. if (1+cosTheta) > 0.0001 then
  59. local theta = math.acos(-cosTheta)
  60. local invSinTheta = 1/math.sin(theta)
  61. startInterp = math.sin((t-1)*theta)*invSinTheta
  62. finishInterp = math.sin(t*theta)*invSinTheta
  63. else
  64. startInterp = t-1
  65. finishInterp = t
  66. end
  67. end
  68. 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
  69. end
  70. function clerp(a,b,t)
  71. local qa = {QuaternionFromCFrame(a)}
  72. local qb = {QuaternionFromCFrame(b)}
  73. local ax, ay, az = a.x, a.y, a.z
  74. local bx, by, bz = b.x, b.y, b.z
  75. local _t = 1-t
  76. return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
  77. end
  78.  
  79. end
  80. do --the animating
  81. plr = game:service'Players'.LocalPlayer
  82. char = plr.Character
  83. mouse = plr:GetMouse()
  84. humanoid = char:findFirstChild("Humanoid")
  85. torso = char:findFirstChild("Torso")
  86. head = char.Head
  87. ra = char:findFirstChild("Right Arm")
  88. la = char:findFirstChild("Left Arm")
  89. rl = char:findFirstChild("Right Leg")
  90. ll = char:findFirstChild("Left Leg")
  91. rs = torso:findFirstChild("Right Shoulder")
  92. ls = torso:findFirstChild("Left Shoulder")
  93. rh = torso:findFirstChild("Right Hip")
  94. lh = torso:findFirstChild("Left Hip")
  95. neck = torso:findFirstChild("Neck")
  96. rj = char:findFirstChild("HumanoidRootPart"):findFirstChild("RootJoint")
  97. anim = char:findFirstChild("Animate")
  98. rootpart = char:findFirstChild("HumanoidRootPart")
  99. camera = workspace.CurrentCamera
  100. if anim then
  101. anim:Destroy()
  102. end
  103.  
  104.  
  105. local rm = Instance.new("Motor", torso)
  106. rm.C0 = CFrame.new(1.5, 0.5, 0)
  107. rm.C1 = CFrame.new(0, 0.5, 0)
  108. rm.Part0 = torso
  109. rm.Part1 = ra
  110. local lm = Instance.new("Motor", torso)
  111. lm.C0 = CFrame.new(-1.5, 0.5, 0)
  112. lm.C1 = CFrame.new(0, 0.5, 0)
  113. lm.Part0 = torso
  114. lm.Part1 = la
  115.  
  116. local rlegm = Instance.new("Motor", torso)
  117. rlegm.C0 = CFrame.new(0.5, -1, 0)
  118. rlegm.C1 = CFrame.new(0, 1, 0)
  119. rlegm.Part0 = torso
  120. rlegm.Part1 = rl
  121. local llegm = Instance.new("Motor", torso)
  122. llegm.C0 = CFrame.new(-0.5, -1, 0)
  123. llegm.C1 = CFrame.new(0, 1, 0)
  124. llegm.Part0 = torso
  125. llegm.Part1 = ll
  126.  
  127. neck.C0 = CFrame.new(0, 1, 0)
  128. neck.C1 = CFrame.new(0, -0.5, 0)
  129.  
  130.  
  131. rj.C0 = CFrame.new()
  132. rj.C1 = CFrame.new()
  133.  
  134.  
  135. local sound = Instance.new("Sound", head)
  136. sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
  137. sound.Volume = 0.8
  138. sound.Looped = true
  139.  
  140. for i,v in pairs(char:children()) do
  141. if v:IsA("Hat") then
  142. v:Destroy()
  143. end
  144. end
  145.  
  146.  
  147. --look of the fox here
  148. game:service'InsertService':LoadAsset(25930301):children()[1].Parent = char
  149. Instance.new("PointLight", head).Range = 10
  150.  
  151.  
  152.  
  153.  
  154. local speed = 0.3
  155. local angle = 0
  156. local sitting = false
  157. local humanwalk = false
  158. local anglespeed = 1
  159. rsc0 = rm.C0
  160. lsc0 = lm.C0
  161. llc0 = llegm.C0
  162. rlc0 = rlegm.C0
  163. neckc0 = neck.C0
  164.  
  165. local controllerService = game:GetService("ControllerService")
  166. local controller = controllerService:GetChildren()[1]
  167.  
  168. controller.Parent = nil
  169.  
  170. Instance.new("HumanoidController", game:service'ControllerService')
  171. Instance.new("SkateboardController", game:service'ControllerService')
  172. Instance.new("VehicleController", game:service'ControllerService')
  173. local controller = controllerService:GetChildren()[1]
  174. mouse.KeyDown:connect(function(k)
  175. if k == "q" then
  176. humanwalk = not humanwalk
  177. end
  178. if k == "z" then
  179. if not sound.IsPlaying then
  180. sound:stop()
  181. sound.SoundId = "http://www.roblox.com/asset/?id=130802245"
  182. wait()
  183. sound:play()
  184. end
  185. end
  186. if k == "x" then
  187. if not sound.IsPlaying then
  188. sound:stop()
  189. sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
  190. wait()
  191. sound:play()
  192. end
  193. end
  194. if k == "c" then
  195. if not sound.IsPlaying then
  196. sound:stop()
  197. sound.SoundId = "http://www.roblox.com/asset/?id=149713968"
  198. wait()
  199. sound:play()
  200. end
  201. end
  202. if string.byte(k) == 48 then
  203. humanoid.WalkSpeed = 34
  204. end
  205.  
  206. end)
  207. mouse.KeyUp:connect(function(k)
  208.  
  209. if string.byte(k) == 48 then
  210. humanoid.WalkSpeed = 16
  211. end
  212.  
  213. end)
  214.  
  215.  
  216.  
  217. while wait() do
  218. angle = (angle % 100) + anglespeed/10
  219. mvmnt = math.pi * math.sin(math.pi*2/100*(angle*10))
  220. local rscf = rsc0
  221. local lscf = lsc0
  222. local rlcf = rlc0
  223. local llcf = llc0
  224. local rjcf = CFrame.new()
  225. local ncf = neckc0
  226. local rayz = Ray.new(rootpart.Position, Vector3.new(0, -6, 0))
  227. local hitz, enz = workspace:findPartOnRay(rayz, char)
  228. if not hitz then
  229. if sound.IsPlaying then
  230. sound:stop()
  231. end
  232.  
  233. if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude > 2 then
  234.  
  235. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, 0)
  236. rjcf = CFrame.new() * CFrame.Angles(-math.pi/5, math.sin(angle)*0.05, 0)
  237. rscf = rsc0 * CFrame.Angles(math.pi/1.7+math.sin(angle)*0.1, 0, 0)
  238. lscf = lsc0 * CFrame.Angles(math.pi/1.7+math.sin(-angle)*0.1, 0, 0)
  239. rlcf = rlc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.3, 0, 0)
  240. llcf = llc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.3, 0, 0)
  241.  
  242. else
  243.  
  244. ncf = neckc0 * CFrame.Angles(math.pi/14, 0, 0)
  245. rjcf = CFrame.new() * CFrame.Angles(-math.pi/18, math.sin(angle)*0.05, 0)
  246. rscf = rsc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.2, 0, 0)
  247. lscf = lsc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.2, 0, 0)
  248. rlcf = rlc0 * CFrame.new(0, 0.7, -0.5) CFrame.Angles(-math.pi/14, 0, 0)
  249. llcf = llc0 * CFrame.Angles(-math.pi/20, 0, 0)
  250.  
  251. end
  252. elseif humanoid.Sit then
  253. if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
  254. anglespeed = 6
  255. ncf = neckc0 * CFrame.Angles(math.pi/5-math.sin(angle)*0.1, 0, 0)
  256. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
  257. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  258. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  259. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  260. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  261. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=135570347" then
  262. anglespeed = 4
  263. ncf = neckc0 * CFrame.Angles(math.pi/5-math.abs(math.sin(angle))*0.3, 0, 0)
  264. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
  265. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  266. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  267. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  268. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  269. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
  270. anglespeed = 2
  271. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
  272. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
  273. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  274. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  275. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  276. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  277. else
  278. anglespeed = 1/2
  279. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
  280. rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
  281. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  282. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  283. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  284. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  285. end
  286. elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 2 then
  287. if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
  288. anglespeed = 6
  289. ncf = neckc0 * CFrame.Angles(math.pi/10-math.sin(angle)*0.07, 0, 0)
  290. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/10, math.sin(angle)*0.001, 0)
  291. rscf = rsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
  292. lscf = lsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
  293. rlcf = rlc0 * CFrame.Angles(math.pi/10, math.sin(angle)*0.08, math.rad(6.5))
  294. llcf = llc0 * CFrame.Angles(math.pi/10, -math.sin(angle)*0.08, -math.rad(6.5))
  295. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
  296. anglespeed = 2
  297. ncf = neckc0 * CFrame.Angles(math.pi/10-math.abs(math.sin(angle))*0.3, 0, 0)
  298. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/20, math.sin(angle)*0.001, 0)
  299. rscf = rsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
  300. lscf = lsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
  301. rlcf = rlc0 * CFrame.Angles(math.pi/20, math.sin(angle)*0.08, math.rad(2.5))
  302. llcf = llc0 * CFrame.Angles(math.pi/20, -math.sin(angle)*0.08, -math.rad(2.5))
  303. elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130802245" then
  304. anglespeed = 3
  305. ncf = neckc0 * CFrame.Angles(math.sin(angle)*0.07, math.rad(30), 0)
  306. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
  307. rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.05, 0, 0)
  308. lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.05, 0, 0)
  309. rlcf = rlc0 * CFrame.new(0, -0.1 + math.abs(mvmnt)*0.1, -0.1) * CFrame.Angles(0, math.rad(5), math.rad(5))
  310. llcf = llc0 * CFrame.Angles(0, math.rad(2.5), math.rad(1))
  311. else
  312. if humanwalk then
  313. anglespeed = 1/4
  314. ncf = neckc0 * CFrame.Angles(-math.sin(angle)*0.07, 0, 0)
  315. rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
  316. rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.1, 0, 0)
  317. lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.1, 0, 0)
  318. rlcf = rlc0 * CFrame.Angles(0, math.sin(angle)*0.08, math.rad(2.5))
  319. llcf = llc0 * CFrame.Angles(0, -math.sin(angle)*0.08, -math.rad(2.5))
  320. else
  321. anglespeed = 1/2
  322. ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
  323. rjcf = CFrame.new(0, -2, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
  324. rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
  325. lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
  326. rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
  327. llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
  328. end
  329. end
  330. elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 20 then
  331. if sound.IsPlaying then
  332. sound:stop()
  333. end
  334. if humanwalk then
  335. anglespeed = 4
  336. ncf = neckc0 * CFrame.Angles(math.pi/24, mvmnt*.02, 0)
  337. rjcf = CFrame.new(0, math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/24, -mvmnt*.02, 0)
  338. rscf = rsc0 * CFrame.Angles(math.sin(angle)*1.25, 0, -math.abs(mvmnt)*0.02)
  339. lscf = lsc0 * CFrame.Angles(math.sin(-angle)*1.25, 0, math.abs(mvmnt)*0.02)
  340. rlcf = rlc0 * CFrame.Angles(math.sin(-angle)*1, 0, math.rad(.5))
  341. llcf = llc0 * CFrame.Angles(math.sin(angle)*1, 0, -math.rad(.5))
  342. else
  343. anglespeed = 4
  344. ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9, 0, 0)
  345. rjcf = CFrame.new(0, -1.5+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9, math.sin(mvmnt/2)*0.05, 0)
  346. rscf = rsc0 * CFrame.new(-.45, 0.2, -.4+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(angle)*0.7, 0, math.rad(5))
  347. lscf = lsc0 * CFrame.new(.45, 0.2, .1-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(-angle)*0.7, 0, -math.rad(5))
  348. rlcf = rlc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*0.6, 0, math.abs(mvmnt)*0.025)
  349. llcf = llc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(angle)*.6, 0, -math.abs(mvmnt)*0.025)
  350. end
  351. elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then
  352. if sound.IsPlaying then
  353. sound:stop()
  354. end
  355. if humanwalk then
  356. anglespeed = 5
  357. ncf = neckc0 * CFrame.Angles(math.pi/20, math.sin(angle)*.04, 0)
  358. rjcf = CFrame.new(0, -.4 + math.abs(mvmnt)*0.25, 0) * CFrame.Angles(-math.pi/20, -math.sin(angle)*.08, 0)
  359. rscf = rsc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(angle)*1.5, 0, -math.abs(mvmnt)*0.02)
  360. lscf = lsc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(-angle)*1.5, 0, math.abs(mvmnt)*0.02)
  361. rlcf = rlc0 * CFrame.new(0, 0, -.6+math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(-angle)*1.3, 0, math.rad(.5))
  362. llcf = llc0 * CFrame.new(0, 0, -math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(angle)*1.3, 0, -math.rad(.5))
  363. else
  364. anglespeed = 5.5
  365. ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9+math.sin(mvmnt/2)*0.05, 0, 0)
  366. rjcf = CFrame.new(0, -1.3+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9+math.abs(mvmnt/2)*0.1, 0, 0)
  367. rscf = rsc0 * CFrame.new(-1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, math.rad(5))
  368. lscf = lsc0 * CFrame.new(1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, -math.rad(5))
  369. rlcf = rlc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, math.abs(mvmnt)*0.025)
  370. llcf = llc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, -math.abs(mvmnt)*0.025)
  371. end
  372. end
  373.  
  374. rm.C0 = clerp(rm.C0,rscf,speed)
  375. lm.C0 = clerp(lm.C0,lscf,speed)
  376. rj.C0 = clerp(rj.C0,rjcf,speed)
  377. neck.C0 = clerp(neck.C0,ncf,speed)
  378. rlegm.C0 = clerp(rlegm.C0,rlcf,speed)
  379. llegm.C0 = clerp(llegm.C0,llcf,speed)
  380. end
  381.  
  382.  
  383. end
Add Comment
Please, Sign In to add comment