В борьбе с проскальзыванием ног на полу посвящается: небольшой скрипт, который позволяет в заданном диапазоне удалить все ключи на траектории перемещения и зафиксировать положение из текущего кадра двумя flat ключами. Скрипт собран с помощью UIBuilder.

Как использовать скрипт, демонстрирую в следующем видео


Управление осуществляется через пользовательским интерфейс.

Задаем временные рамки диапазона и время бленда.

Кнопка Action запустит алгоритм для всех выделенных объектов. Принцип таков: удаляются ключи на перемещении выделенных объектов с зазором в BlendTime, затем в рамках диапазона выставляются два ключа с нулевыми тангентами, тем самым на заданном промежутке времени фиксируя значения трансформации. Один очень важный момент, положение будет выбираться из текущего кадра на время нажатия кнопки Action.


MotionBuilder 2010 —

MotionBuilder 2012 —

MotionBuilder 2013 — [wpdm_file id=3]

Лог разработки

19.03.2013 — добавлены кнопка Timeline range и список использующихся каналов трансформации

30.08.2012 — новая редакция под МоБи 2012, 2013

24.08.2012 — первая редакция скрипта

МоБи скрипт: stay on floor

24 thoughts on “МоБи скрипт: stay on floor

  • Понедельник Август 27, 2012 на 10:57
    Постоянная ссылка

    Thank you! This will be interesting to try out :)

    I was really impressed by the system you using in the post «This is how we cleanup». Are there any possibilities that you will release it? It looks really useful!

  • Понедельник Август 27, 2012 на 21:43
    Постоянная ссылка

    Hi Carolina, thank you for the feedback. I hope you will find this script usefull.
    About the cleanup mocap system. It’s still our inhouse software, maybe in the future I will make some version for the public… But I can’t say exactly when.

  • Вторник Август 28, 2012 на 09:02
    Постоянная ссылка

    Thanks for your answer (and your scripts).
    If you need someone to beta test the cleanup mocap system let me know :)

  • Четверг Август 30, 2012 на 16:33
    Постоянная ссылка

    I try to open this script in MoBu 2012. Script editor print this:

    Python 2.6.4 (r264:75708, Oct 26 2009, 07:36:50) [MSC v.1500 64 bit (AMD64)] on win32
    Traceback (most recent call last):
    File «C:/Program Files/Autodesk/MotionBuilder 2012/bin/config/Scripts/», line 262, in
    File «C:/Program Files/Autodesk/MotionBuilder 2012/bin/config/Scripts/», line 257, in CreateTool
    t = CreateUniqueTool(«Stay on floor (Sergey Solokhin 2012)»)
    NameError: global name ‘CreateUniqueTool’ is not defined

  • Четверг Август 30, 2012 на 21:44
    Постоянная ссылка

    Hi Marcin,

    I have uploaded a new version for MoBu 2012.
    The difference is in a procedure name. In MoBu 2010 it was CreateUniqueTool, and then in MoBu 2011, 2012 it was renamed FBCreateUniqueTool.

  • Пятница Август 31, 2012 на 11:43
    Постоянная ссылка

    Next error

    Python 2.6.4 (r264:75708, Oct 26 2009, 07:36:50) [MSC v.1500 64 bit (AMD64)] on win32
    Traceback (most recent call last):
    File «C:/Program Files/Autodesk/MotionBuilder 2012/bin/config/Scripts/», line 254, in ButtonActionEvent
    ProcessFCurve(node.FCurve, currTime, startTime, stopTime, blendTime)
    File «C:/Program Files/Autodesk/MotionBuilder 2012/bin/config/Scripts/», line 217, in ProcessFCurve
    AttributeError: ‘FBFCurve’ object has no attribute ‘KeyRemove’

  • Суббота Сентябрь 1, 2012 на 00:32
    Постоянная ссылка

    Hi Marcin,

    thank you for testing. My script was written in MoBu 2010. In new versions like 2012, 2013 there are some declaration difference moments, which cause errors on execution. So I have uploaded scripts for each MoBu version.

  • Четверг Июнь 6, 2013 на 17:54
    Постоянная ссылка

    новая ревизия скрипта под 2013 и выше, если нужно для 2011, оставляйте пожелание и сделаю )

  • Пятница Июнь 14, 2013 на 09:06
    Постоянная ссылка

    Хорошо, при первой же свободной минутке, закину версию для 11го МоБи.

  • Понедельник Декабрь 9, 2013 на 09:07
    Постоянная ссылка

    This script sounds like the exact thing I’m looking for…will it work in mobu 2014?

  • Воскресенье Июль 27, 2014 на 14:03
    Постоянная ссылка

    Hello, thanks for your script.

    Could you please re-uploaded the version for MoBu 2012?
    The 2013 version has an issue with the assign start/end frame button on MoBu 2012. For example, when I set frame 45, the tool set it to frame 15. And when I set the frame manually, it goes back to frame zero.

  • Пятница Октябрь 3, 2014 на 22:12
    Постоянная ссылка

    This script works wonderfully and helped me write a bunch of other useful scripts that I needed. Thank you so much for making it generally available!

    As a side note: I am using an older version (MoBu 2011) and I had to make the following changes before your script could work. I wanted to share in case it helps others:

    1. I needed to add the path to to sys.path, e.g. for me this is sys.path.append(‘C:\\Users\\alinen\\AppData\\Local\\Autodesk\\MB2011\\config\\Python’)

    2. I needed to change GetFrame() to GetFrame(True). Otherwise, I had a problem like Michel’s above, where the frame was not set correctly

    3. I had to change the call from FBCreateUniqueTool to CreateUniqueTool

    Thanks again, your scripts and resources are a great help,


  • Суббота Январь 10, 2015 на 13:43
    Постоянная ссылка

    This seems very interesting ! there is download text but I cant see the links to download. I am using Motion builder 2014, 64x.

  • Вторник Июль 26, 2016 на 17:31
    Постоянная ссылка

    I don’t suppose there’s an update for this for MB 2017?

    Looks like it would do exactly what I am looking for right now but the script won’t execute. I can only guess it’s out of date?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *