Render.ru

Риг. Проблемы с предплечьем

BELLinSKY

Активный участник
Рейтинг
5
#1
http://81.9.6.4/books/show_book.php?book_id=4&start=2 - вот страничка урока по ригу. Там примерно в середине описывается зависимость некой вспомогательной косточки в предплечьи, которая подхватывает вращение (X) ладони с коэф. 0.3
Отличная штука, все сделал (только я нод использовал, а не экспрешн). Но есть один баг, который делает всю эту затею неюзабельной. Если просто поставить IK так, чтобы рука согнулась вперед под 90 градусов в локте и повернуть соответствующим образом кисть, то есть момент, при котором эта вспомогательная кость прокручивается мгновенно на 180 градусов.
Я провозился полдня пытаясь сделать разные обходы - ну я в майке новичок, не обессудьте.
Вопрос с следующем: оставить это на какой-то канал в манипуляторе для ручной "подкрутки" и не морочить себе голову? Или все-таки есть простое и элегантное решение по автоматизации подобной задачи?
Спасибо.
Жду с нетерпением =)
 

BELLinSKY

Активный участник
Рейтинг
5
#2
Понятно =) судя по
- массе уроков, где эта лажа присутствует
- нулю ответов на вопрос
- куче сетапов (весьма продвинутых), где эти "твисты" в отдельный канал вынесены
не так уж много людей знают как одолеть "схлопывание" (складывание) осей вращения =)

Ну ничего, разобрался =) "а ларчик просто открывался" ©
 

Denzil

Мастер
Рейтинг
353
#3
проблема решаема.
аим констрейн тебе в помощь. экспрешенами это не решить, даже нормально выставив ротейшен ордер.
 

Denzil

Мастер
Рейтинг
353
#5
Объяснять долго. Пример (не идеальный, но демонстрационный) - в аттаче (переименуй в rar).
Вес докрутки регулируется
L_Arm W0 и Locator1 W1, в сцене они по 1, соответственно 50 процентов вращения.
 

xeash

Активный участник
Рейтинг
12
#6
Да сколько же этот сетап будет людей мучить?
Вообщем, глянул его...
Самое быстрое лечение для твоей проблемы
В коде экспрешшна
Если у него там будет:
R_ForeArm_Twist.rotateX=R_Hand.rotateX*0.3;
То чтобы не было глюка нужно:
R_ForeArm_Twist.rotateX=R_Hand_locator.rotateX*0.3;
P.S. В этом сетапе много чего такого... не ориентируйся на него,ищи другие источники информации по риггингу,удачи ;)
 

BELLinSKY

Активный участник
Рейтинг
5
#7
Это метод я опробовал. Скручивания, о котором я говорил нет, но Twist себя ведет несколько неправильно... непредсказуемо...
Например при наклонах ладони вверх-вниз - он прокручивается. А при небольших уклонах вправо-влево он несколько отворачивается в противоположную сторону. Это не вариант.
В итоге пришел-таки к конструкции дополнительного локатора, на который смотрит ладонь. Все работает хорошо, но в разумных пределах. Ладонь нормального человека (считаем что он стоит в Т-позе) не может отклониться назад больше, чем на 40-45 градусов и вперед на 10-15. Вот в этих пределах ничего не скручивается и не глючит.
 

xeash

Активный участник
Рейтинг
12
#8
Это метод я опробовал. Скручивания, о котором я говорил нет, но Twist себя ведет несколько неправильно... непредсказуемо...
Например при наклонах ладони вверх-вниз - он прокручивается. А при небольших уклонах вправо-влево он несколько отворачивается в противоположную сторону. Это не вариант.
Странно у меня ничего подобного не происходит о_О
При
R_ForeArm_Twist.rotateX=R_Hand.rotateX*0.3; происходит
При
R_ForeArm_Twist.rotateX=R_Hand_locator.rotateX*0.3; нет
Может уменьшить коэффицент "скручивания"?
В итоге пришел-таки к конструкции дополнительного локатора, на который смотрит ладонь. Все работает хорошо, но в разумных пределах. Ладонь нормального человека (считаем что он стоит в Т-позе) не может отклониться назад больше, чем на 40-45 градусов и вперед на 10-15. Вот в этих пределах ничего не скручивается и не глючит.
Можешь выложить сцену где подобный сетап, по словам не совсем понятно что ты сделал,просто интересно)
P.S.Можно убрать все лишнее просто пример на одних костях
 

xeash

Активный участник
Рейтинг
12
#11
Хм...спасибо изучу на досуге..
Так глянул, для еще большой минимизации нежелательных поворотов я бы на локаторе руки Rotation Order поставил бы, например xzy, а то сейчас
при например Y=-90 невозможно согнуть руку меняя значение поворота только 1ой оси(на анимиционную кривую это тоже будет влиять)
 

BELLinSKY

Активный участник
Рейтинг
5
#12
Разумный совет, но он "одно лечит - другое калечит". Если я выберу xzy, то ситуация перейдет "наверх": при повороте Z=90 будет то же самое. А это довольно стандартная позиция.
 

xeash

Активный участник
Рейтинг
12
#13
Универсального способа победить gimbal lock нет, такова система вычисления вращения по Элейру, выбери то что тебе удобнее,как аниматору...
Я исходил из частоты использования поворотов(как движений кисти), Y -наиболее редкое движение, с Z и X выбери сам что ты хочешь чтобы вычислялось в 1ую очередь;)
 

BELLinSKY

Активный участник
Рейтинг
5
#14
Ок =) пока меня вторая схема (пост #10) устраивает. Спасибо за помощь и советы!
 
Сверху