У Кивиуса есть три любимые темы для разговора по делу: че-нить о Меле, спираль по Цыпцынскому методу и динамические кривые...
О Меле разговаривать не хотим, судя по всему... о спирале поговорили... давайте о дин. кривых, что ль? Сегодня на работе надо было сделать что-то типа ленточек или ремешков, через которые проезжает объект. Сделала. Говорю начальству, только ужасно громоздко... Он так грустно на меня посмотрел и отвечает, но ведь работает же. И напиши, говорит, шпаргалку, а то до завтра забудешь. Написала. Раз уже написано, то можно и поделиться. Типа не хвастаться, а не пропадать же добру понапрасну... :о)))
Делюсь. Открыта для критики... Не стесняйтесь, я все равно на работе. :о)))
Работаем в проекции front.
1. Общая часть
Создать вертикальный скелет, костей 6-7 - joint_dynamic
-Skeleton > Joint Tool (сверху вниз)
Создать кривую Create > Curve CV Tool с привязкой v по костям
Сделать ее динамической
-Hair > Make Selected Curves Dynamic
Установить Hair > Display > Current Position
Добавить IK Spline
-Skeleton > IK Spline Handle Tool -> выключить Auto Create Curve
-Кликнуть на start joint.
-Кликнуть на end joint.
-Кликнуть на Current Position curve.
Выделить follicle
-выделить кривую
-выделить ноду follicleShape в Attribute Editor.
-нажать кнопку Select.
В ноде follicleShape node изменить Point Lock на Base.
Выделить проезжающий сквозь ленточки объект, затем hairSystem1 -> Hair -> Make Collide
Если получилось неважно, то по хелпу лечится так:
-Увеличить Tessellation value в ноде geoConnector node.
-Увеличить значение Collide Over Sample value в закладке Collisions ноды hairSystemShape.
Создать горизонтальные кривые по количеству костей 1-ого порядка с привязкой v к костям - 1-ая точка в месте кости
(это будут кривые лофта - в группу loft_curves).
Создать кластер на 1-ой СV - cluster_loft
Создать кластер на 2-ой СV - cluster_loft_end
Создать по 2-х костному скелету от кости на динамической кривой к концу кривой в группе loft_curves.
2. Часть
1-ый способ, геморройный
вспоминаем ik-сплайн тул
Дублицировать группу loft_curves - это будут кривые от ik-сплайна - в группу joints_ik_spline
Теперь разберемся с кривыми
группа joints_ik_spline.
- создать кластер на 1-ой CV - cluster_ik_spline.
- припарентить его к соответствующей кости на скелете с динамической кривой.
группа loft_curves.
- припарентить cluster_loft к соответствующей кости на скелете с динамической кривой joint_dynamic.
- припарентить cluster_loft_end ко второй кости на соответствующем 2-х костном скелете.
З.Ы. Чем хорош этот метод... думаю, что можно создать кривые joints_ik_spline 3-его порядка, с большим количеством точек, понавесить кластеров и дополнительно анимировать получившийся лофт... мне было это не нужно, но так, для общего развития..
3. Часть
2-ой способ, менее геморройный.
вспоминаем aim_constraint
группа loft_curves.
- припарентить cluster_loft к первой кости соответствующем 2-х костном скелете.
- припарентить cluster_loft_end ко второй кости на соответствующем 2-х костном скелете.
Создать локаторы с привязкой v ко вторым костям 2-х костных скелетов.
Приконстрейнить aim_constraint-ом 1-е кости 2-х костных скелетов к соответствующим локаторам.
up vector y=1, aim vector либо х=1, либо x=-1.
Припарентить каждый 2-х костный скелет к соответствующей кости на скелете с динамической кривой joint_dynamic.
4. Часть
Окончание в любом случае.
Создать лофт по кривым группы loft_curves.
Доводка динамики и прочего остального напильником.
Всё. Кто прочел это до конца, тот герой. :о)))
О Меле разговаривать не хотим, судя по всему... о спирале поговорили... давайте о дин. кривых, что ль? Сегодня на работе надо было сделать что-то типа ленточек или ремешков, через которые проезжает объект. Сделала. Говорю начальству, только ужасно громоздко... Он так грустно на меня посмотрел и отвечает, но ведь работает же. И напиши, говорит, шпаргалку, а то до завтра забудешь. Написала. Раз уже написано, то можно и поделиться. Типа не хвастаться, а не пропадать же добру понапрасну... :о)))
Делюсь. Открыта для критики... Не стесняйтесь, я все равно на работе. :о)))
Работаем в проекции front.
1. Общая часть
Создать вертикальный скелет, костей 6-7 - joint_dynamic
-Skeleton > Joint Tool (сверху вниз)
Создать кривую Create > Curve CV Tool с привязкой v по костям
Сделать ее динамической
-Hair > Make Selected Curves Dynamic
Установить Hair > Display > Current Position
Добавить IK Spline
-Skeleton > IK Spline Handle Tool -> выключить Auto Create Curve
-Кликнуть на start joint.
-Кликнуть на end joint.
-Кликнуть на Current Position curve.
Выделить follicle
-выделить кривую
-выделить ноду follicleShape в Attribute Editor.
-нажать кнопку Select.
В ноде follicleShape node изменить Point Lock на Base.
Выделить проезжающий сквозь ленточки объект, затем hairSystem1 -> Hair -> Make Collide
Если получилось неважно, то по хелпу лечится так:
-Увеличить Tessellation value в ноде geoConnector node.
-Увеличить значение Collide Over Sample value в закладке Collisions ноды hairSystemShape.
Создать горизонтальные кривые по количеству костей 1-ого порядка с привязкой v к костям - 1-ая точка в месте кости
(это будут кривые лофта - в группу loft_curves).
Создать кластер на 1-ой СV - cluster_loft
Создать кластер на 2-ой СV - cluster_loft_end
Создать по 2-х костному скелету от кости на динамической кривой к концу кривой в группе loft_curves.
2. Часть
1-ый способ, геморройный
вспоминаем ik-сплайн тул
Дублицировать группу loft_curves - это будут кривые от ik-сплайна - в группу joints_ik_spline
Теперь разберемся с кривыми
группа joints_ik_spline.
- создать кластер на 1-ой CV - cluster_ik_spline.
- припарентить его к соответствующей кости на скелете с динамической кривой.
группа loft_curves.
- припарентить cluster_loft к соответствующей кости на скелете с динамической кривой joint_dynamic.
- припарентить cluster_loft_end ко второй кости на соответствующем 2-х костном скелете.
З.Ы. Чем хорош этот метод... думаю, что можно создать кривые joints_ik_spline 3-его порядка, с большим количеством точек, понавесить кластеров и дополнительно анимировать получившийся лофт... мне было это не нужно, но так, для общего развития..
3. Часть
2-ой способ, менее геморройный.
вспоминаем aim_constraint
группа loft_curves.
- припарентить cluster_loft к первой кости соответствующем 2-х костном скелете.
- припарентить cluster_loft_end ко второй кости на соответствующем 2-х костном скелете.
Создать локаторы с привязкой v ко вторым костям 2-х костных скелетов.
Приконстрейнить aim_constraint-ом 1-е кости 2-х костных скелетов к соответствующим локаторам.
up vector y=1, aim vector либо х=1, либо x=-1.
Припарентить каждый 2-х костный скелет к соответствующей кости на скелете с динамической кривой joint_dynamic.
4. Часть
Окончание в любом случае.
Создать лофт по кривым группы loft_curves.
Доводка динамики и прочего остального напильником.
Всё. Кто прочел это до конца, тот герой. :о)))