Проблема с ресницей
- Автор темы Eugenicsbmx
- Дата создания
стоп... кривая повторяет ВСЕ деформации века.. тоесть просто прицеплена к ней... а ресницы прикреплены к кривой... если у тебя не так, то ты что то сделал не так.
кстати тот способ которым Sagroth прикреплял кривую к самому веку - устарел.. есть способ проще...
просто выделить нужный ейдж луп, из них сделать кривые, (мейк курв фром селекшен) вроде так, мауа нет под рукой
потом последовательно присоединить их, чтоб получилась 1 кривая, потом сделать ребилд, при желании... и к этой кривой уже цеплять ресницы.
все просто история не убита, а значит кривая будет полностью повторять все деформации века...
кстати тот способ которым Sagroth прикреплял кривую к самому веку - устарел.. есть способ проще...
просто выделить нужный ейдж луп, из них сделать кривые, (мейк курв фром селекшен) вроде так, мауа нет под рукой
потом последовательно присоединить их, чтоб получилась 1 кривая, потом сделать ребилд, при желании... и к этой кривой уже цеплять ресницы.
все просто история не убита, а значит кривая будет полностью повторять все деформации века...
Сейчас даже проще выделить нужные эджи и нажать Modify>Convert>Polygon Edges to Curves
Судя по гриду на ваших картинках - модель меньше чем та, что была у меня... Поэтому значения rotate/move в скрипте надо тоже уменьшить... Как-нить так, для примера в 10 раз:
И разумеется голова вращаться не должна.
Судя по гриду на ваших картинках - модель меньше чем та, что была у меня... Поэтому значения rotate/move в скрипте надо тоже уменьшить... Как-нить так, для примера в 10 раз:
Код:
float $move = 0.002;
float $rot = 1;
for ($i = 0; $i < 100; $i++) {
select pCylinder1;
duplicate;
rotate -r (rand(-$rot, $rot)) (rand(-$rot, $rot)) (rand(-$rot, $rot));
move -r (rand(-$move, $move)) (rand(-$move, $move)) (rand(-$move, $move));
playButtonStepForward;
playButtonStepForward;
}
- Рейтинг
- 46
Извините за архиологию, но очень нужна помощь.) Вернемся к методу привязки ресниц.
Все круто все работает, ровно до тех пор, пока не начинаешь перемещать и вращать персонажа. Получается так, что кривая a1BaseWire парентится к World.При анимации, не разбираясь особо в алгоритме работы деформатора Wire, примерно понятно, что pCone1 пытается быть направленным к ней (или относительно нее). Следовательно, когда персонаж двигается в пространстве, ресницы направленны по определенному вектору к a1BaseWire (ресницы перемещаются в пространстве, а a1BaseWire остается относительно своих дефолтных значениях) . Пытался перемещать объекты a1, pCone1, a1BaseWire по разному, меняя иерархию, но кроме двойных трансформаций, это ни к чему не привело. Пытался использовать констрейны orient и aim, но так же глухо. Как этот метод реализуется на практике?
Вторая проблема при этом методе, это деформация сетки ресниц, относительно кривой на веке. Зависит это от параметров атрибутов ноды wire, обекта pCone1. Крутил их как мог, при этом dropoff ставил на «9999999999999999999» (остальные параметры были в всевозможных значениях))). Я чувствую как по чуть-чуть ломается мой мозг. Хожу по кругу)))
Существует ли на сегодня более «человеческий» способ привязки объектов? А то уже чувствую легче обычным скином примотать…
Все круто все работает, ровно до тех пор, пока не начинаешь перемещать и вращать персонажа. Получается так, что кривая a1BaseWire парентится к World.При анимации, не разбираясь особо в алгоритме работы деформатора Wire, примерно понятно, что pCone1 пытается быть направленным к ней (или относительно нее). Следовательно, когда персонаж двигается в пространстве, ресницы направленны по определенному вектору к a1BaseWire (ресницы перемещаются в пространстве, а a1BaseWire остается относительно своих дефолтных значениях) . Пытался перемещать объекты a1, pCone1, a1BaseWire по разному, меняя иерархию, но кроме двойных трансформаций, это ни к чему не привело. Пытался использовать констрейны orient и aim, но так же глухо. Как этот метод реализуется на практике?
Вторая проблема при этом методе, это деформация сетки ресниц, относительно кривой на веке. Зависит это от параметров атрибутов ноды wire, обекта pCone1. Крутил их как мог, при этом dropoff ставил на «9999999999999999999» (остальные параметры были в всевозможных значениях))). Я чувствую как по чуть-чуть ломается мой мозг. Хожу по кругу)))
Существует ли на сегодня более «человеческий» способ привязки объектов? А то уже чувствую легче обычным скином примотать…
Вложения
-
263,1 КБ Просмотров: 217
-
122,2 КБ Просмотров: 285
- Рейтинг
- 46
Ладно…постараюсь в этот раз выразиться предельно четко.
Имеем сцену temp.mb, как показано на Рис.1. Упрощенный меш «лица» face_mesh привязан к костям отвечающим за поднятие/опускания века (eyelash_01_jnt, eyelash_02_jnt) и джоинту (main_body_jnt), который всю конструкцию перемещает/поворачивает в пространстве. Создаем ресницу eyelash_mesh и помещаем ее в группу dont_touch_grp, которая будет в нулях относительно глобальных координат. Выделяем кривые на меше face_mesh, которые идут по верхнему веку. Применяем к ней команду Modify > Convert > Polygon Edges to Curve. Получаем кривую polyToCurve1, помещаем ее в группу dont_touch_grp. К объекту eyelash_mesh применяем модификатор Wire Tool. Жмем Reset Tool. Выделяем ресницу, жмем Enter, выделяем кривую – жмем Enter. Создалась нода wire1 у eyelash_mesh, параметр DropoffDistance сразу вбиваю в «9999999999999». Кривую polyToCurve1BaseWire (относительно которой будет работать/направлен модификатор(?)) кидаю так же в группу dont_touch_grp. И вот самое интересное. Практика:
1. Вращаем eyelash_01_jnt относительно оси Z (любой оси) – все отлично…ресница повторяет движение кривой.(Рис.2)
2. Переместим персонажа. Точнее развернем(так как манипуляции с translate ни к каким «багам» не приводят). Для наглядности в ту область, где явно видно воздействие вектора, который направляет eyelash_mesh относительно polyToCurve1BaseWire(?), ну или нуля глобальных координат(?). В общем совершим чудо…флипнем меш)) Рис.3. Эт явно видно, когда значения main_body_jnt.rotateY стремятся к 180*n градусам. Свой экстремум есть и у оси Z и Х.
Вопрос, как этот метод реализовать на практике? Как разорвать связь ориентации крайних точек меша eyelash_mesh по «дефолтному» вектору? Есть ли другие методы, которые позволяют ресницам быть привязанным к веку? Уточню: не к кости eyelash_02_jnt, и без блендшейпов, а зависящий именно от кривой вдоль века? Ссылки на гугл приветствуются))
Cцена temp.mb: http://depositfiles.com/files/lywfg6ldf
ЗЫ Покатигорошек, спасибо, что откликнулся, но попытки привить мне методы, которые позволяют мне действовать не столь анахронически, приводят к тем же последствиям))
Имеем сцену temp.mb, как показано на Рис.1. Упрощенный меш «лица» face_mesh привязан к костям отвечающим за поднятие/опускания века (eyelash_01_jnt, eyelash_02_jnt) и джоинту (main_body_jnt), который всю конструкцию перемещает/поворачивает в пространстве. Создаем ресницу eyelash_mesh и помещаем ее в группу dont_touch_grp, которая будет в нулях относительно глобальных координат. Выделяем кривые на меше face_mesh, которые идут по верхнему веку. Применяем к ней команду Modify > Convert > Polygon Edges to Curve. Получаем кривую polyToCurve1, помещаем ее в группу dont_touch_grp. К объекту eyelash_mesh применяем модификатор Wire Tool. Жмем Reset Tool. Выделяем ресницу, жмем Enter, выделяем кривую – жмем Enter. Создалась нода wire1 у eyelash_mesh, параметр DropoffDistance сразу вбиваю в «9999999999999». Кривую polyToCurve1BaseWire (относительно которой будет работать/направлен модификатор(?)) кидаю так же в группу dont_touch_grp. И вот самое интересное. Практика:
1. Вращаем eyelash_01_jnt относительно оси Z (любой оси) – все отлично…ресница повторяет движение кривой.(Рис.2)
2. Переместим персонажа. Точнее развернем(так как манипуляции с translate ни к каким «багам» не приводят). Для наглядности в ту область, где явно видно воздействие вектора, который направляет eyelash_mesh относительно polyToCurve1BaseWire(?), ну или нуля глобальных координат(?). В общем совершим чудо…флипнем меш)) Рис.3. Эт явно видно, когда значения main_body_jnt.rotateY стремятся к 180*n градусам. Свой экстремум есть и у оси Z и Х.
Вопрос, как этот метод реализовать на практике? Как разорвать связь ориентации крайних точек меша eyelash_mesh по «дефолтному» вектору? Есть ли другие методы, которые позволяют ресницам быть привязанным к веку? Уточню: не к кости eyelash_02_jnt, и без блендшейпов, а зависящий именно от кривой вдоль века? Ссылки на гугл приветствуются))
Cцена temp.mb: http://depositfiles.com/files/lywfg6ldf
ЗЫ Покатигорошек, спасибо, что откликнулся, но попытки привить мне методы, которые позволяют мне действовать не столь анахронически, приводят к тем же последствиям))
Вложения
-
356,3 КБ Просмотров: 285
-
424,6 КБ Просмотров: 263
-
377,6 КБ Просмотров: 243