Render.ru

Смещение объекта-потомка относительно перемещения родителя.

3rr0r

Знаток
Рейтинг
71
#1
Задача, чтобы при перемещении/вращении/масштабировании объекта-родителя объект-потомок вел себя адекватно.
Все бы было хорошо, но система иерархии получилась довольно сложная. Имеется: объект-родитель, объект-потомок (полигональный объект, к которому применены пачка деформаторов, система костей с IK сплайном, сплайн анимирован динамикой волоса, объект-потомок привязан к костям кожей/skin). У объекта-родителя созданы driver keys для управления деформаторами на объекте-потомке.
Если припэрэнтить HairSystemFollicles к объекту-родителю или объекту-потомку, то при перемещении происходит смещение полигонального объекта = 2*смещение_родителя. И это понятно, объект привязан костями и при перемещении костей перемещение удваивается, но как это решить?
Я, возможно, ошибся, когда создавал объект и вешал на него деформаторы не сделав Freeze Transformation, но, кажется, дело не в этом.
Отключение Inherit Transformation у объекта листа деформирует его сильно.
Если не понятно, что я делаю, то я бы прикрепил сцену, но не знаю, куда её тут прикреплять...
 

3rr0r

Знаток
Рейтинг
71
#2
Ну да, волосы можно не цеплять, а просто повесить на потомка кости и пошевелить родителя. Кожа поедет дальше :(
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#3
хм.. не совсем понятна структура и что в итоге хочется получить.. ты просто опиши что нужно в финале.. может ты вообще не так делаешь?
 

3rr0r

Знаток
Рейтинг
71
#4
Есть цветок. У него лепестки. Лепестки хочу сделать волосами, чтоб когда цветок шевелишь, то лепестки болтались соответствующе. У цветка есть риг для раскрытия бутона и соответствующих статических деформаций лепестков (сгибания, шум). Иерархия такая(сверху вниз):
Bud_handle(главный управляющий элемент бутона) -> leaf_handle_## (хэндлы лепестков) -> leaf_## (лепестки) -> input deformer set (на входе у каждого лепестка набор деформаторов для искажений).
Создал бутон так: смоделил один простой лист, нафигачил на него деформаторов, и всё припэрэнтил к управляющему кубу с соотв перегрузкой его отображения (то есть сделал из него bounding box только для управления листом). У этого куба-родителя с помощью driven key создал несколько доп атрибутов для управления деформаторами. Потом из одного сриганного листа сделал бутон и создал атрибуты красивго его раскрытия.
Вот так, в краце. Из-за этого косяка не могу сдвинуть свой мега-проект дальше :)
Может я и не правильно что-то сделал изначально. Можно меня поправить и я переделаю.
 

3rr0r

Знаток
Рейтинг
71
#5
Так, я, кажется, вкурил что к чему. Надо немного времени для того, чтобы удостовериться. Как разберусь - напишу
 

3rr0r

Знаток
Рейтинг
71
#6
Итак, свершилось. Я разобрался. Для анналов пишу как делать правильно, если вы хотите сделать объект, которым нужно управлять одновременно деформаторами и чтобы он считался динамикой волоса (или просто костями управлялся).
Создаем объект (не забываем сделать freeze transformations), цепляем на него нужные деформаторы (я у них на всякий случай развернул локальные оси в соотв с мировыми), вставляем скелет, привязываем сеть к костям (конечно же, skin будет на самом верху input'ов, деформаторы под ним), костями можете управлять каким угодно способом (у меня сплайн + dynamic curve). Теперь пэрэнтим к управляющему объекту (важно!) кости, hairSystemFollicles (у меня), ikHandle, hairSystem (чтоб не болталась вне иерархии), но не сам объект и не hairSystemOutputCurves. Деформаторы, также, не пэрэнтить к управляющему объекту.
Вот, собственно, и всё. Немного удручает мысль, что деформаторы и объект остаются все иерархии управляющего объекта... Но деформаторы просто скрыть и они не будут глаза мозолить, но всё же.
Надеюсь, кому-нть пригодится.
 
Сверху