LINUX.ORG.RU

Как решить проблему с ограничениями костей (Child Of), (Stretch To) в Blender

 ,


0

1

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

При изменение размера в edit mode все кости у которых есть ограничение (Child Of), (Stretch To) Полностью сбивается Координаты и размер, и приходится их удалять и ставить заново и таких костей более 100 штук. https://cdn.discordapp.com/attachments/412676206320680981/428967136539705344/... http://static2.keep4u.ru/2018/08/01/wer541e42995eeff39c.jpg

Есть ли у кого нибудь решение данной проблемы, совет, туториал, Плагины?

Я уже спрашивал на всех форумах. Да я уже был на сайте документаций блендера и там я не нашел нечего об этой ошибке. Чужой риг не подойдет так как я уже сделала свой и осталось только решить эту проблему.



Последнее исправление: zeni1agent (всего исправлений: 1)

Поправь меня, если я не так понял - ты в режиме РЕДАКТИРОВАНИЯ изменяешь размеры и хочешь, чтобы в режиме позы всё было по прежнему? Ты перепутал. То что в режиме редактирования изменяется - становится базовой моделью, а не наоборот.

Deleted
()
Ответ на: комментарий от Deleted

Я изменяю размер в режиме редактирования и я хочу что бы когда я перехожу в режиме позы то кость была такого же размера как и та кость которую я изменил ((((только что в режиме редактирования))) Но вместо этого она искажается становится меньше чем надо или больше. а если установлен Child Of то вообще улетает куда то в сторону пока я не нажму в случае с Child Of это Set inversion а в случае Stretch To то reset на гифке все наглядно показано https://cdn.discordapp.com/attachments/412676206320680981/428967136539705344/...

zeni1agent
() автор топика
Ответ на: комментарий от zeni1agent

А, не разглядел. Извини. Что-то я в толк не возьму, от чего это. Можешь файл выложить? А то гифка мельтешит, да и всей структуры не понять.

Deleted
()
Ответ на: комментарий от Deleted

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

Deleted
()
Ответ на: комментарий от Deleted

Это не совсем так

Я взял и создал 3 кости после назначил каждой кости Stretch To но когда я перешел в режим edit mode и уменьшил любую из костей и перешел в режим поз то она деформировалась. Обычно это решается кнопкой reset но если таких костей несколько то все ломается и приходится удалять Stretch To и ставить его заново. Но таких костей у меня больше 100 и каждый раз этим заниматься просто невозможно.

zeni1agent
() автор топика
Ответ на: Это не совсем так от zeni1agent

Кто кому стречается? Может ты циклическую зависимость там делаешь? Не выкладываешь пример, ну сиди мучайся, что я тебе, Ванга какаянить? Я понимаю, что проблема в том как ты это делаешь, но что ты делаешь конкретно - ты мне увидеть не даёшь. Зачем тбе стреч в этом месте? Почему не хватает IK и ограничений на кости и растяжения кости? Не можешь внятно сформулировать вопрос, пример не выкладываешь, вот и молчат все.

Deleted
()
Ответ на: комментарий от Deleted

Прошу прощения если показался грубым

Проблема не в том что я не хочу выложить пример. А в том что не понимаю зачем если я делаю довольно элементарную процедуру в которой нашел очень неприятную ошибку. Но ладно так и быть выложу только не понимаю зачем.

Подробное видео https://dropmefiles.com/d4BVe Файл блендер https://dropmefiles.com/TjG2D

zeni1agent
() автор топика

Всё правильно, все манипуляции в Edit Mode почти всегда ломают анимации, потому что пространство поз строится относительно референсной

Есть ли у кого нибудь решение данной проблемы, совет, туториал, Плагины?

Делаешь новую ref позу в Pose Mode. Применяешь модификатор арматуры у меша. У арматуры в pose mode выбрать все кости, Пробел --> Apply visual transforms to pose (в последних блендерах работает автодополнение при вводе), Пробел --> Apply pose as rest pose. Добавляешь модификатор арматуры меша снова.

xDShot ★★★★★
()

Child Of считаю ниочем, всегда у меня криво работал. Я для этого создавал клоны нужных костей, но менял родителя. Оригиналам добавлял Copy Transforms с клонами в качестве целей.

xDShot ★★★★★
()
Ответ на: Прошу прощения если показался грубым от zeni1agent

Ну и я прошу прощения. Партизаны замучили :)

Так. Интересная штука. Змея или червяк? :)

Блендер тут работает корректно относительно того, что ты делаешь. Стреч растягивает относительно положения кости в пространстве объекта. Изменилось положение кости, изменился её размер - изменилось локальное пространство кости и направление растяжения. Тут я был не прав, да.

Про Child of - была косточка bone2 потомком bone1 и была её задница привязана к носу родителя, но Child of не имеет параметра «connected», есть только «установить инверсию» и «снять инверсию» - таким образом ты устанавливаешь место, к которому будет привязан потомок относительно родителя. и обрати внимание - если сбросить инверсию, то попа bone2 привяжется не относительно носа bone1, а относительно её начала. именно там располагается центр оси bone1 и относительно него привязывается кость (в отличие от встроенного родителя). И оффсет вносится в поле «длина в состоянии покоя».

Чтобы исправить положение придётся пробежаться по косточкам, другого способа просто быть не может (при всём многообразии и сложности применения этик констрейнтов). Хочется быстрее? напиши скриптик, по всем костям (или по выделенным) арматуры пробежаться и сбросить оффсеты в констрейнтах.

Deleted
()
Ответ на: комментарий от Deleted

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

Может есть какие то плагины Ну или какие то хитрости благодаря которым решается данная проблема Я изучал rigify и пытался понять как создать generate rig https://en.blender.org/index.php/Extensions:2.6/Py/Scripts/Rigging/Rigify запихнуть каждую кость в сегмент и уже там менять размер после чего развернуть его http://static2.keep4u.ru/2018/08/10/KKKca529d501a1819b0.png но так нечего и не получилось У меня нет не каких навыков в написание скрипта Надеюсь объяснил понятно.

zeni1agent
() автор топика
Ответ на: комментарий от Deleted

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

zeni1agent
() автор топика
Ответ на: комментарий от zeni1agent

Что я тебе могу подсказать по данной проблеме? Всё что я сам знаю - беру из видео, статей и блендероских вики. На форумах blendernation спроси. там монстры сидят. Но изложи им что ты хочешь делать, руку, ногу, или что? и почему тебе это надо сделать именно так. И спроси как лучше.

Deleted
()
Ответ на: комментарий от zeni1agent

а если установлен Child Of то вообще улетает куда то в сторону

There are two ways that I know of to make something stretch. One is to just set an ik chain on the bone you want to stretch to, and changing the bone that actually stretches to alow stretch.

2nd way is to use a stretch-to constraint. The basic difference is one increases scale to accomadate the stretching, the other increases length but decreases in volume. What you might actually need is probably to preserve volume while increasing length. This would take some more tricky parenting than I have time to dive into right now.

я хочу что бы когда я перехожу в режиме позы то кость была такого же размера как и та кость которую я изменил ((((только что в режиме редактирования))) Но вместо этого она искажается становится меньше чем надо или больше

Ты хочешь чтобы изменения одной кости экстраполировались на остальные? Это родитель или потомок?

Я бы почитал сперва про этот Child Of, прежде чем учиться по туторам https://docs.blender.org/manual/ru/dev/rigging/constraints/relationship/child...

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

При изменение размера в edit mode все кости у которых есть ограничение (Child Of), (Stretch To) Полностью сбивается Координаты и размер,

Кажется мне, что ты делаешь это неправильно, поэтому и решения не находишь. Что если изменить размеры костей до применения этих ограничителей (constraints)?

При изменении размера сбиваются точки привязки. Больше похоже на то, что потомки привязываются не к родителю, а к месту его расположения. Изменяешь размер — и родитель уже вне своего прежнего расположения.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

А мне нужно что бы я мог его подстроить по размеру к любой своей модели но и за того что constraints (Child Of), (Stretch To) ведет себя неадекватно я этого не могу сделать

вот вся подробная инфа если хочешь сможешь проверить сам

видео https://dropmefiles.com/d4BVe файл https://dropmefiles.com/TjG2D

Я делал риг по туториалам этого автора https://www.youtube.com/watch?v=863YV9aR1Uk&t=1618s

zeni1agent
() автор топика

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

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

Deleted
()

Вот тебе пример рига без констрейнтов. Ты это пытался сделать? https://yadi.sk/d/L6TupnrT3a8NGg

А про Child of - я вообще не понял что ты пытался сделать? Есть встроенная функция для костей. констрейнтом в данном случае можно пользоваться, чтобы привязать кость к внешнему объекту. Именно поэтому привязывается так. Именно поэтому оно тебе не особо подходит.

Deleted
()
Ответ на: комментарий от Deleted

Большое тебе спасибо

Child of я использую для того что бы включать и отключать привязку кости с помощью ползунков с использованием драйвера.

zeni1agent
() автор топика
Ответ на: Большое тебе спасибо от zeni1agent

Тебе не обязательно отключать привязку. Тебе достаточно отключать влияние родителя по одной, или по всем осям с помощью тех же драйверов. Ты даже можешь настроить драйвер по одной оси и скопировать его на остальные оси и действия. Это не так долго и сложно, как вручную лопатить каждую.

Deleted
()
Ответ на: комментарий от Deleted

Тебе не обязательно отключать привязку. Тебе достаточно отключать влияние родителя по одной, или по всем осям с помощью тех же драйверов. Ты даже можешь настроить драйвер по одной оси и скопировать его на остальные оси и действия. Это не так долго и сложно, как вручную лопатить каждую.

Возможно я чего то не знаю. но разве привязку можно отключить я только знаю то что можно удалить ее или отключить Connected Inherit и Location http://static2.keep4u.ru/2018/08/11/tyttf5c29bacb17f98ac.jpg

zeni1agent
() автор топика
Ответ на: комментарий от zeni1agent

Ой. я тебя немного запутал. По каждой отдельной оси нельзя. Можно только повесить драйвер (в режиме позы) на «inherit rotation» и «inherit scale». Таким образом ты сможешь отключить влияние родителя на потомка. Но это логическое значение, нельзя степень влияния регулировать, только вкл/выкл. Подзабыл, ввёл тебя в заблуждение.

Deleted
()
Ответ на: комментарий от Deleted

Ключевой в копировании поворота - галочка «со смещением» и локальное пространство. Можешь редактировать скелет и пробовать снова. где бы ни была кость, какого размера, она всё равно будет привязана к концу кости и повёрнута на свой градус относительно родителя повёрнутого на свой.

Deleted
()
Ответ на: комментарий от Deleted

смещение вроде не помогло и да я ставил локальное пространство

Или я что то сделал не так можешь прислать блендер файл?

zeni1agent
() автор топика
Ответ на: комментарий от zeni1agent

С тебя полноформатный мульт про добро :)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.