Advertisement
Guest User

snap keyframes

a guest
Apr 20th, 2016
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. (
  2. selectedKeys_Pos = #()
  3. selectedKeysTime_Pos = #()
  4.  
  5. selectedKeys_Rot = #()
  6. selectedKeysTime_Rot = #()
  7.  
  8. selectedKeys_Scale = #()
  9. selectedKeysTime_Scale = #()
  10.  
  11. fn fn_GetNewKeyTimeValue key modValue =
  12. (
  13. tmp = key
  14. i = 0
  15. newkey=0
  16.  
  17. if (mod key modValue == 0) then return key
  18.  
  19. while (mod tmp modValue !=0) do
  20. (
  21. tmp+=1
  22. i+=1
  23.  
  24. if i>2 then
  25. (
  26. newkey = key - (modValue-i)
  27. )
  28. else
  29. (
  30. newkey = key + i
  31. )
  32. )
  33. newkey
  34. )
  35.  
  36. fn fn_SnapKeys obj modValue =
  37. (
  38.  
  39. if obj == undefined then return Messagebox "Please select an object"
  40.  
  41. --position
  42. for i=1 to obj.position.controller.keys.count do
  43. (
  44. if (isKeySelected obj.position.controller i) then
  45. (
  46. keytime = (getKeyTime obj.position.controller i )
  47. append selectedKeysTime_Pos keytime.frame
  48. append selectedKeys_Pos i
  49. deselectKey obj.position.controller i
  50. )
  51. )
  52.  
  53. --rotation
  54. for i=1 to obj.rotation.controller.keys.count do
  55. (
  56. if (isKeySelected obj.rotation.controller i) then
  57. (
  58. keytime = (getKeyTime obj.rotation.controller i )
  59. append selectedKeysTime_Rot keytime.frame
  60. append selectedKeys_Rot i
  61. deselectKey obj.rotation.controller i
  62. )
  63. )
  64.  
  65. --scale
  66. for i=1 to obj.scale.controller.keys.count do
  67. (
  68. if (isKeySelected obj.scale.controller i) then
  69. (
  70. keytime = (getKeyTime obj.scale.controller i )
  71. append selectedKeysTime_Scale keytime.frame
  72. append selectedKeys_Scale i
  73. deselectKey obj.scale.controller i
  74. )
  75. )
  76.  
  77. --position
  78. for k=1 to selectedKeys_Pos.count do
  79. (
  80. newkeytime = fn_GetNewKeyTimeValue selectedKeysTime_Pos[k] modValue
  81. delta = (newkeytime - selectedKeysTime_Pos[k])
  82. selectKey obj.position.controller selectedKeys_Pos[k]
  83. moveKeys obj.position.controller delta #selection
  84. deselectKey obj.position.controller selectedKeys_Pos[k]
  85.  
  86. format "Pos Keyframe: % got snapped to: % \n" selectedKeysTime_Pos[k] newkeytime
  87. )
  88.  
  89. --rotation
  90. for k=1 to selectedKeys_Rot.count do
  91. (
  92. newkeytime = fn_GetNewKeyTimeValue selectedKeysTime_Rot[k] modValue
  93. delta = (newkeytime - selectedKeysTime_Rot[k])
  94. selectKey obj.rotation.controller selectedKeys_Rot[k]
  95. moveKeys obj.rotation.controller delta #selection
  96. deselectKey obj.rotation.controller selectedKeys_Rot[k]
  97.  
  98. format "Rotation Keyframe: % got snapped to: % \n" selectedKeysTime_Rot[k] newkeytime
  99. )
  100.  
  101. --scale
  102. for k=1 to selectedKeys_Scale.count do
  103. (
  104. newkeytime = fn_GetNewKeyTimeValue selectedKeysTime_Scale[k] modValue
  105. delta = (newkeytime - selectedKeysTime_Scale[k])
  106. selectKey obj.scale.controller selectedKeys_Scale[k]
  107. moveKeys obj.scale.controller delta #selection
  108. deselectKey obj.scale.controller selectedKeys_Scale[k]
  109.  
  110. format "Scale Keyframe: % got snapped to: % \n" selectedKeysTime_Scale[k] newkeytime
  111. )
  112.  
  113. )
  114.  
  115. fn_SnapKeys $ 5
  116.  
  117. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement