OgreSkeletonLib_addmissingkeys.ms 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. -- add key to Position tracks.
  2. function addPosK obj time =
  3. (
  4. local posContr,subPosContr,i ;
  5. posContr = obj.pos.controller ;
  6. subPosContr = getXYZControllers posContr ;
  7. for i = 1 to 3 do
  8. (
  9. addNewKey subPosContr[i] time ;
  10. )
  11. )
  12. -- add key to Rotation tracks.
  13. function addRotK obj time =
  14. (
  15. local rotContr,subRotContr,i ;
  16. rotContr = obj.rotation.controller ;
  17. subRotContr = getXYZControllers rotContr ;
  18. for i = 1 to 3 do
  19. (
  20. addNewKey subRotContr[i] time ;
  21. )
  22. )
  23. -------------------------------------------------------------------------------
  24. -- add keys for example in position track when there are some in rotation track
  25. -------------------------------------------------------------------------------
  26. function addMissingKeys obj =
  27. (
  28. local rotContr,posContr,nRotKeys,nPosKeys
  29. rotContr = obj.rotation.controller ;
  30. posContr = obj.pos.controller ;
  31. subRotContr = getXYZControllers rotContr ;
  32. subPosContr = getXYZControllers posContr ;
  33. nRotKeys = #() ;
  34. nPosKeys = #() ;
  35. if (subRotContr[1] != undefined and subPosContr[1] != undefined) then
  36. (
  37. nRotKeys[1] = numKeys subRotContr[1] ;
  38. nRotKeys[2] = numKeys subRotContr[2] ;
  39. nRotKeys[3] = numKeys subRotContr[3] ;
  40. nPosKeys[1] = numKeys subPosContr[1] ;
  41. nPosKeys[2] = numKeys subPosContr[2] ;
  42. nPosKeys[3] = numKeys subPosContr[3] ;
  43. for i=1 to 3 do -- i = controller index
  44. (
  45. for n = 1 to numKeys subRotContr[i] do -- n = number of keys
  46. (
  47. for j=1 to n do -- j = key index
  48. (
  49. t = (getKey subRotContr[1] j).time ;
  50. addRotK obj t ;
  51. addPosK obj t ;
  52. )
  53. )
  54. for n = 1 to numKeys subPosContr[i] do -- n = number of keys
  55. (
  56. for j=1 to n do -- j = key index
  57. (
  58. t = (getKey subPosContr[1] j).time ;
  59. addRotK obj t ;
  60. addPosK obj t ;
  61. )
  62. )
  63. )
  64. )
  65. )