воскресенье, 27 ноября 2016 г.

Урок скрипта mcjAutoLimb2014: бегство со школы на велосипеде

Введение



Этот урок - пример использования скрипта mcjAutoLimb 2014, попутно объясним, что это такое, что он пытается сделать и чего он не может сделать.
В этой версии скрипта добавлен "Pole vector" или "Pole" для краткости.

Ситуация



Мы начинаем с кадра № 0 в таймлайне

Victoria 6 еще не анимирована

Создадим красный шарик и поместим его рядом с левой стопой Виктории

выбираем красный шарик, потом зажимаем клавишу CTRL и добавляем к выбранному левую стопу Виктории

смотрим вкладку Scene и убеждаемся, что красный шарик и стопа действительно выбраны



запускаем скрипт mcjAutoLimb2014



Мы видим, что AutoLimb понимает наше намерение переместить стопу (лодыжку) на место красного шара

и AutoLimb создал нечто под названием pole на левой голени

Понятие "poles" проще понять, когда ваша фигура движется по кругу

Закрываем скрипт mcjAutoLimb2014

посмотрите на сцене null node под названием Victoria 6_pole_lShin



представьте, что колено левой ноги находится на вершине стрелы, что стрелка указывает прямо вперед

узел pole -это способ для mcjAutoLimb понять, как нога должна был изначально поставлена.

Сообщение в Scene Tab, что pole левого колена parented (имеет родительскую связь) с тазом,
для фигур Generation 3 он будет parented (иметь родительскую связь) к lButtock,

так что если бы Виктория повернулась вокруг, узел pole все равно будет где-то перед ее левой ногой

Для создания езды Виктории на велосипеде или автомобиле, Вы можете re-parent (пересоздать родительскую связь) узла pole на велосипеде или автомобиле и получить хорошие результаты

Ладно вернемся к анимации.

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

В это AutoLimb не создать узла pole, он заметил присутствие старого узла pole и повторно использует его

В AutoLimb мы выбираем "Current frame Only" (в любом случае target - красный шарик еще не анимарован) и кликаем кнопку "do it"



Он заработал!

узел стопы (лодыжка) переехала на место красный шарика

есть бесконечное число путей для AutoLimb добраться до этой цели

но узел pole диктовал, что колено - вершина стрелы впереди, так мы получаем эту уникальную позу

что будет, если мы выйдем из mcjAutoLimb, передвинем узел pole на 3 метрах левее опять вернемся в mcjAutoLimb, и нажмем кнопку do-it?



стопа остается на месте, но нога немного повернулась, и колено указывает на новую позицию

Примечание : когда мы перемещаем узел, мы создаем ключевые кадры анимации
так что, если я двигаться pole в кадр и перемещаю  его в 30-м кадре, а потом использую mcjAutoLimb 

и стопа следующая за красный шариком, тогда ноги будут крутить по анимации!

Как все это произошло и почему иногда это не срабатывает

При нажатии на кнопку, Autolimb выполняет следующие действия

1 - измеряет расстояние D между тазобедренным суставом и красным шариком
2 - делает около 10 попыток согнуть/разогнуть колено до тех пор, пока длина ноги равна D

если target - красный мяч слишком далеко, это не сработает
если лимиты на вращение колена слишком малы, тоже не удастся

поэтому важно, чтобы держать узел target в досягаемости стопы на протяжении всей анимации

убедитесь, что Bend limits голени настроены, по-умолчанию ... около -11 градусов до 150 градусов

на самом деле -11 градусов Bend limit может вызвать проблемы

по причине: когда нога чрезвычайно вытянута, чтобы достичь target

сгибания колена на -11 градусов или на 11 градусов удовлетворяют требованию длины ноги


AutoLimb может выбрать -11 углом градусов, что выглядит некрасиво, а не 11 градусов, что выглядит хорошо

Иногда я ставлю нижний Bend limit на 3 градуса, но AutoLimb  -11 градусов не пробовал никогда

3 - После того как нога правильной длины, Autolimb "точками" ноги через target  тазобедренный сустав

если ограничения не позволяют  повернуть кость бедра, то эта поза не получится
поэтому важно, удерживать target в пределах лимитов бедренной кости

или как я иногда делаю: установить limits Off на вращениях бедра

или если фигура имеет суставом ягодицы (фигуры Generation 3), я устанавливаю сустав так, чтобы тот"помогал" AutoLimb достичь своей цели

4 - Autolimb поворачивает ногу так, что  "точки" колена через текущий узел Pole размещаются
это делается в основном с помощью "Twist" бедра, но Bend и Side-Side тоже вносят свою лепту

если ограничения на бедре поворота кости не позволяют, эта поза не получится

если кто-то разместил узел pole в странном месте, поза будет выглядеть странно

Одно последнее Примечание: autoLimb не решает вопросы направления стопы


(в недавнем интервью  autoLimb признался, что это "может казаться ленивым, но, что есть то есть" )


AutoLimb даже не смотрите на направление стопы, только с его позиции

так что если нога согнута под 45 градусов или даже анимирована, ничто не изменится.

Мы позаботимся вопросы направления стопы с помощью скриптов: mcjKeepOrient или mcjHoldOn

Разве что ... на самом деле, мы не трогали эту тему, но autoLimb также может решить вопрос пальцы-к-target.

Если выбрать "targeter" на пальцы ног, вместо стопы, autoLimb перенесет пальцы до target -позиции красного шарика.

В этом случае, предварительно существующей позе стопы или стопы-позы-анимации будет иметь последствия.
Советы,

The advice is,просто убедитесь, что стопы движутся так, как вы хотите, прежде чем использовать autoLimb,это может включать удаление всей анимации стоп.



Побег из школы на велосипеде

Красивый велосипед Эми, который может появится  на моем сайте бесплатно, а может и нет.



Сначала я анимировал как велосипед движется по пути

я сделал это, используя стандартные ключевые кадры с высоты птичьего полета,
плюс скрипты: mcjSetInterpolation и mcjCycleFilter



далее я использовал (уже не существующий) скрипт mcjPedal, который вращает педали со скоростью велосипеда

в кадре 0 таймлайна ( всегда лучше работать в кадре 0 )

я parent (установил родительскую связь) Виктории к узлу мастера велосипеда



расположил ноги на педалях

и опустил Викторию так, что одина из ее полностью вытянутых ног прикасалась к самой низкой педали

чтобы избежать проблем, я немного согнул колени так, чтобы autoLimb не трудностей в достижении своих целей



далее

если найдется старый узел pole на правой ноге, я его удалю

если существует узел target на правой ноге я его удалю

таким образом autoLimb не будет использовать старые остатки от предыдущих анимаций

я выбираю Right Foot ( который проходит через педаль в настоящее время)

и запускаю autoLimb

я не упомянул еще, (но я конечно же в инструкции), но так узел target не был выбран, без красный шара

autoLimb автоматически создает null node по имени () и устанавливает на очень четкую позицию узел Right Foot

и он создал узел pole для правого колена, как и ожидалось



выхожу из AutoLimb-а и двигаю target вверх

около 2 дюйма выше правой педали



я выбираю узел target - right foot,

устанавливаю "current frame as the range to process", нажмите на клавишу Doit

сделать, настроить и повторять до удовлетворения

обратите внимание, что вы можете использовать mcjParent для перемещения узла target обратно в точное положение узла стопы




как мы видим autoLimb не может сделать любую работу на стопах и положении педалей

Давайте решим, что Victoria всегда делает невероятные усилия, чтобы всегда держать ступни горизонтально



мы еще не готовы

ее колени ударяются об руль велосипеда и стопы за пределами своих bend limits (лимитов сгиба)

но у нас есть драгоценный маркер стопы

мы создадим один для левой ноги, выбрав левую ногу, запуск autoLimb, выход autoLimb

мы исправили положение бедра и верхней части тела ...

здесь много настроек, но с помощью mcjAutoLimb, mcjHands мы дойдем до этого


скрипт, который поворачивает колеса, во время движенич велосипеда потом будет размещен здесь

BIKIN2DIVXAU.AVI



далее я делал вращение педалей

обратите внимание, что если велосипед движется с довольно постоянной скоростью, вы могли бы просто ключевой кадр в кадре № 0, вращение колеса на 0 градусов
и 13783 вращений колеса в кадре № 900 потом использовать mcjSetInterpolation установить "Linear interpolation" что дает вам
38 поворотов колеса за 30 секунд анимация при постоянной скорости вращения

задняя звездочка велосипеда имеет диаметр 8.9 cm

передняя звездочка имеет диаметр 18.8 cm

так что педали должны вращаться примерно половину частоты вращения колес

это тоже будет включено в скрипт



в этом случае педали крутятся на 6625 градус на протяжении 900 кадров

с 2 ключевыми кадрами и mcjSetInterpolation мы можем получить достоверные результаты

Теперь мы parent (установим родительскую связь) каждый target стоп на соответствующие педали

убедитесь, что узлы target не анимированы



теперь педали должны оставаться в горизонтальном положении, когда они вращаются

как мы это сделаем?

помните, что велосипед катится не по прямой, в этом случае мы могли бы использовать mcjKeepOrient на 900-м кадре

вместо этого мы будем использовать mcjHoldOn

mcjHoldOn сохраняет ориентацию на что-то (руку, например) постоянно, относительно другого объекта (чужого плечо, например)

это работает, даже если одна или две фигуры перемещаются

поэтому в нашем случае, во время вращений, мы сделаем так, что направление педалей будет оставаться на одном уровне, по отношению к велосипеду!



ncb9 - педаль, ncb3 - рама велосипеда, так что педаль будет сохранять свое положение на велосипеде

повторяю эту процедуру для другой педали

Тогда пришло время использовать mcjAutoLimb!

выберите узел target для Right Foot, (который сейчас все время размещен над правой педали)
выберите Right Foot

autoLimb создаст узел pole где-то перед правым коленом

этот узел pole parented (имеет родительскую связь) к Right Leg поэтому он будет следовать за нами при езде на велосипеде

и мы обработаем 900 кадров в один "do it" клик

И здесь у нас проблема, которая является источником этого урока

в кадре №450 левая стопа отошла!



проблема решена!

решение .... отключить все лимиты на вращениях бедер!!!

мы близки к завершению



так что теперь ноги неукоснительно следуют за target-ами стоп

но стопы не сидят на педалях

как мы это решим?

да! мы используем mcjHoldOn

выберите правую педаль, выберите правую стопу, выполните mcjHoldOn на весь спектр анимации

повторить для другой ноги



Итак, все на этом! :)

равностороннее изображение фона от Alexandre Duret-Lutz на Flickr

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.