Roblox Animation Maker Download

Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.


Archive

Upgrading the animation editor was an exciting task to undertake with a lot of challenges along the way. I wanted to improve the overall look and user experience of the editor while making it powerful, if not the most powerful plugin in the ROBLOX library.

During my first pass at upgrading the editor I focused on adding features and getting comfortable with the large amount of code that had gone into the feature over multiple years. Ensuring you fully understand someone else’s code can be a daunting task, but it’s essential for optimizing and implementing new features successfully. Once I was confident I finally began to implement new features, some of which included a grid below your character and customizable timeline increments. With these features and many others in place we started to see a huge improvement in the capabilities of the editor.

Animation by “MisterObvious”

During his time as an intern Davidii worked on implementing easing styles. He did a great job establishing the necessary infrastructure required for me to step in and finish the feature. Now any animation can be brought to life with some really neat easing styles.

  • Linear (the default)
  • Constant (instant)
  • Elastic (my favorite, a springy transition)
  • Bounce (bounces to the end position)
  • Cubic (accelerates / decelerates to end position)

Along with the easing styles mentioned above there are easing types (Out, InOut, In) that allow you to further customize the style of your animation. This gives each style 3 separate variations (excluding linear) for a total of 13 unique tweens. With these new easing styles and types, developers can make top tier animations with…well… ease.

Animation by “OKevinO”

Once the functionality improvements were complete, I began to focus on the user experience of the feature. The animation editor had previously been a bit cumbersome to use and was often criticized for being buggy. Because of its previous reputation I spent an ample amount of time focusing on reliability and usability. Now developers can feel confident using the animation editor for implementing even incredibly complex animations. With a tool that is both easier to use and more powerful than ever before the possibilities for creation have never been better.

So jump in studio and check it out!

-Alex “Rukiryo” Hicks

Recommended
Jan 21st, 2017
Never
Roblox
Not a member of Pastebin yet?Sign Up, it unlocks many cool features!

Roblox Animation Maker Download Free

  1. local child = parent:findFirstChild(childName)
  2. while true do
  3. if child.NamechildName then return child end
  4. end
  5. local Figure = script.Parent
  6. local RightShoulder = waitForChild(Torso, 'Right Shoulder')
  7. local LeftShoulder = waitForChild(Torso, 'Left Shoulder')
  8. local RightHip = waitForChild(Torso, 'Right Hip')
  9. local Neck = waitForChild(Torso, 'Neck')
  10. local Humanoid = waitForChild(Figure, 'Humanoid')
  11. local currentAnimInstance = nil
  12. local currentAnimKeyframeHandler = nil
  13. local animTable = {}
  14. idle = {
  15. { id = 'http://www.roblox.com/asset/?id=180435571', weight = 9 },
  16. { id = 'http://www.roblox.com/asset/?id=180435792', weight = 1 }
  17. walk = {
  18. { id = 'http://www.roblox.com/asset/?id=180426354', weight = 10 }
  19. run = {
  20. },
  21. { id = 'http://www.roblox.com/asset/?id=125750702', weight = 10 }
  22. fall = {
  23. { id = 'http://www.roblox.com/asset/?id=180436148', weight = 10 }
  24. climb = {
  25. { id = 'http://www.roblox.com/asset/?id=180436334', weight = 10 }
  26. sit = {
  27. { id = 'http://www.roblox.com/asset/?id=178130996', weight = 10 }
  28. toolnone = {
  29. { id = 'http://www.roblox.com/asset/?id=182393478', weight = 10 }
  30. toolslash = {
  31. { id = 'http://www.roblox.com/asset/?id=129967390', weight = 10 }
  32. },
  33. { id = 'http://www.roblox.com/asset/?id=129967478', weight = 10 }
  34. wave = {
  35. { id = 'http://www.roblox.com/asset/?id=128777973', weight = 10 }
  36. point = {
  37. { id = 'http://www.roblox.com/asset/?id=128853357', weight = 10 }
  38. dance1 = {
  39. { id = 'http://www.roblox.com/asset/?id=182435998', weight = 10 },
  40. { id = 'http://www.roblox.com/asset/?id=182491037', weight = 10 },
  41. { id = 'http://www.roblox.com/asset/?id=182491065', weight = 10 }
  42. dance2 = {
  43. { id = 'http://www.roblox.com/asset/?id=182436842', weight = 10 },
  44. { id = 'http://www.roblox.com/asset/?id=182491248', weight = 10 },
  45. { id = 'http://www.roblox.com/asset/?id=182491277', weight = 10 }
  46. dance3 = {
  47. { id = 'http://www.roblox.com/asset/?id=182436935', weight = 10 },
  48. { id = 'http://www.roblox.com/asset/?id=182491368', weight = 10 },
  49. { id = 'http://www.roblox.com/asset/?id=182491423', weight = 10 }
  50. laugh = {
  51. { id = 'http://www.roblox.com/asset/?id=129423131', weight = 10 }
  52. cheer = {
  53. { id = 'http://www.roblox.com/asset/?id=129423030', weight = 10 }
  54. }
  55. -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote
  56. local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}
  57. function configureAnimationSet(name, fileList)
  58. for _, connection in pairs(animTable[name].connections) do
  59. end
  60. animTable[name] = {}
  61. animTable[name].totalWeight = 0
  62. local config = script:FindFirstChild(name)
  63. -- print('Loading anims ' .. name)
  64. table.insert(animTable[name].connections, config.ChildAdded:connect(function(child) configureAnimationSet(name, fileList) end))
  65. table.insert(animTable[name].connections, config.ChildRemoved:connect(function(child) configureAnimationSet(name, fileList) end))
  66. for _, childPart in pairs(config:GetChildren()) do
  67. table.insert(animTable[name].connections, childPart.Changed:connect(function(property) configureAnimationSet(name, fileList) end))
  68. animTable[name][idx].anim = childPart
  69. local weightObject = childPart:FindFirstChild('Weight')
  70. animTable[name][idx].weight = 1
  71. animTable[name][idx].weight = weightObject.Value
  72. animTable[name].count = animTable[name].count + 1
  73. animTable[name].totalWeight = animTable[name].totalWeight + animTable[name][idx].weight
  74. -- print(name .. ' [' .. idx .. '] ' .. animTable[name][idx].anim.AnimationId .. ' (' .. animTable[name][idx].weight .. ')')
  75. end
  76. end
  77. -- fallback to defaults
  78. for idx, anim in pairs(fileList) do
  79. animTable[name][idx].anim = Instance.new('Animation')
  80. animTable[name][idx].anim.AnimationId = anim.id
  81. animTable[name].count = animTable[name].count + 1
  82. animTable[name].totalWeight = animTable[name].totalWeight + anim.weight
  83. -- print(name .. ' [' .. idx .. '] ' .. anim.id .. ' (' .. anim.weight .. ')')
  84. end
  85. function scriptChildModified(child)
  86. if (fileList ~= nil) then
  87. end
  88. script.ChildRemoved:connect(scriptChildModified)
  89. configureAnimationSet(name, fileList)
  90. local toolAnim = 'None'
  91. local jumpAnimDuration = 0.3
  92. local toolTransitionTime = 0.1
  93. local jumpMaxLimbVelocity = 0.75
  94. -- functions
  95. function stopAllAnimations()
  96. if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] false) then
  97. end
  98. currentAnim = '
  99. if (currentAnimKeyframeHandler ~= nil) then
  100. end
  101. if (currentAnimTrack ~= nil) then
  102. currentAnimTrack:Destroy()
  103. end
  104. end
  105. function setAnimationSpeed(speed)
  106. currentAnimSpeed = speed
  107. end
  108. if (frameName 'End') then
  109. local repeatAnim = currentAnim
  110. if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] false) then
  111. end
  112. local animSpeed = currentAnimSpeed
  113. setAnimationSpeed(animSpeed)
  114. end
  115. -- Preload animations
  116. function playAnimation(animName, transitionTime, humanoid)
  117. local roll = math.random(1, animTable[animName].totalWeight)
  118. local idx = 1
  119. while (roll > animTable[animName][idx].weight) do
  120. idx = idx + 1
  121. -- print(animName .. ' ' .. idx .. ' [' .. origRoll .. ']')
  122. if (anim ~= currentAnimInstance) then
  123. if (currentAnimTrack ~= nil) then
  124. currentAnimTrack:Destroy()
  125. currentAnimTrack = humanoid:LoadAnimation(anim)
  126. -- play the animation
  127. currentAnim = animName
  128. if (currentAnimKeyframeHandler ~= nil) then
  129. end
  130. currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
  131. end
  132. end
  133. -------------------------------------------------------------------------------------------
  134. -------------------------------------------------------------------------------------------
  135. local toolAnimName = '
  136. local toolAnimInstance = nil
  137. if (frameName 'End') then
  138. playToolAnimation(toolAnimName, 0.0, Humanoid)
  139. end
  140. function playToolAnimation(animName, transitionTime, humanoid)
  141. local roll = math.random(1, animTable[animName].totalWeight)
  142. local idx = 1
  143. while (roll > animTable[animName][idx].weight) do
  144. idx = idx + 1
  145. -- print(animName .. ' * ' .. idx .. ' [' .. origRoll .. ']')
  146. toolAnimTrack:Stop()
  147. transitionTime = 0
  148. toolAnimTrack = humanoid:LoadAnimation(anim)
  149. -- play the animation
  150. toolAnimName = animName
  151. currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
  152. end
  153. function stopToolAnimations()
  154. currentToolAnimKeyframeHandler:disconnect()
  155. toolAnimInstance = nil
  156. toolAnimTrack:Stop()
  157. toolAnimTrack = nil
  158. return oldAnim
  159. -------------------------------------------------------------------------------------------
  160. -------------------------------------------------------------------------------------------
  161. if speed>0.01 then
  162. if currentAnimInstance and currentAnimInstance.AnimationId 'http://www.roblox.com/asset/?id=180426354' then
  163. end
  164. else
  165. playAnimation('idle', 0.1, Humanoid)
  166. end
  167. end
  168. function onDied()
  169. end
  170. function onJumping()
  171. jumpAnimTime = jumpAnimDuration
  172. end
  173. function onClimbing(speed)
  174. setAnimationSpeed(speed / 12.0)
  175. end
  176. function onGettingUp()
  177. end
  178. function onFreeFall()
  179. playAnimation('fall', fallTransitionTime, Humanoid)
  180. pose = 'FreeFall'
  181. pose = 'FallingDown'
  182. pose = 'Seated'
  183. pose = 'PlatformStanding'
  184. if speed>0 then
  185. else
  186. end
  187. for _, kid in ipairs(Figure:GetChildren()) do
  188. end
  189. end
  190. function getToolAnim(tool)
  191. if c.Name 'toolanim' and c.className 'StringValue' then
  192. end
  193. return nil
  194. playToolAnimation('toolnone', toolTransitionTime, Humanoid)
  195. end
  196. if (toolAnim 'Slash') then
  197. return
  198. playToolAnimation('toollunge', 0, Humanoid)
  199. end
  200. RightShoulder.MaxVelocity = 0.15
  201. RightShoulder:SetDesiredAngle(3.14 /2)
  202. RightHip:SetDesiredAngle(3.14 /2)
  203. end
  204. local lastTick = 0
  205. function move(time)
  206. local frequency = 1
  207. lastTick = time
  208. local climbFudge = 0
  209. jumpAnimTime = jumpAnimTime - deltaTime
  210. if (pose 'FreeFall' and jumpAnimTime <= 0) then
  211. playAnimation('fall', fallTransitionTime, Humanoid)
  212. playAnimation('sit', 0.5, Humanoid)
  213. elseif (pose 'Running') then
  214. elseif (pose 'Dead' or pose 'GettingUp' or pose 'FallingDown' or pose 'Seated' or pose 'PlatformStanding') then
  215. stopAllAnimations()
  216. frequency = 1
  217. end
  218. if (setAngles) then
  219. desiredAngle = amplitude * math.sin(time * frequency)
  220. RightShoulder:SetDesiredAngle(desiredAngle + climbFudge)
  221. LeftShoulder:SetDesiredAngle(desiredAngle - climbFudge)
  222. LeftHip:SetDesiredAngle(-desiredAngle)
  223. local tool = getTool()
  224. toolAnim = animStringValueObject.Value
  225. animStringValueObject.Parent = nil
  226. end
  227. if time > toolAnimTime then
  228. toolAnim = 'None'
  229. else
  230. toolAnim = 'None'
  231. toolAnimTime = 0
  232. end
  233. -- connect events
  234. Humanoid.Running:connect(onRunning)
  235. Humanoid.Climbing:connect(onClimbing)
  236. Humanoid.FreeFalling:connect(onFreeFall)
  237. Humanoid.Seated:connect(onSeated)
  238. Humanoid.PlatformStanding:connect(onPlatformStanding)
  239. game.Players.LocalPlayer.Chatted:connect(function(msg)
  240. if msg '/e dance' then
  241. elseif (string.sub(msg, 1, 3) '/e ') then
  242. elseif (string.sub(msg, 1, 7) '/emote ') then
  243. end
  244. if (pose 'Standing' and emoteNames[emote] ~= nil) then
  245. end
  246. end)
  247. playAnimation('idle', 0.1, Humanoid)
  248. local _, time = wait(0.1)
  249. end

Roblox Animation Maker Download Free

Roblox