Render.ru

Весовая раскраска...

Vad Иванов

Активный участник
Рейтинг
11
#1
У кого есть опыт в раскрашивании весов сетки, помогите! Раскрашиваею сетку в окрестности каждого сустава. Сначала все нормально, затем происходит хаотичная деформация сетки в непредсказуемых местах . Опять по кругу: исправляю, затем сново на каком- то суставе все ломается. Раскрашивал модель для разных позиций до получения приемлемого результата. И почему-то участок сетки раскрашивается совсем удаленным суставом (сустав шеи раскрашивает заднюю лапу собаки по дефолту). Подскажите, пожалйста какие есть нюансы?. И как можно привести значение раскраски всей сетки к 0?
 

xeash

Активный участник
Рейтинг
12
#2
поищи на highend3d скриптик который показывает вертексы на которые влияет кость(не помню как называется,может поможет))...В компонент едиторе можно обнулять веса сразу для группы вертексов по отношению к кости...Но чтобы значение раскраски всей сетки было 0??? тогда тебе надо будет денормализовать веса...короче сам понимаешь. Попробуй использовать Hold для jointов, также помогает менять значение весов вручную...через тот же компонент едитор например
 

Denzil

Мастер
Рейтинг
353
#3
И как можно привести значение раскраски всей сетки к 0?
Paint weight Tools -> select любая кость -> Remove - "0" -> Flood

А так в работе поможет:
- Normalize weights (on)
- Prune small weights (0.1 - 0.05)
- Maintain max Influences (off)

Вся доп инфа доступна по F1

Успехов!
 

xeash

Активный участник
Рейтинг
12
#4
Я -то подумал про то чтобы привести значение значение ВЕСОВ ВСЕХ ДЖОИНТОВ К 0...все.. разучился читать :(
 

Vad Иванов

Активный участник
Рейтинг
11
#5
Проблема не снялась. Поставил значения, как было посоветано+ перерыл мануал, там у них все хорошо. Из Paint Skin Weights Tool раскрашиваю сетку (уже 5 дней парюсь), применил тип Scale . Вначале, до принятия положения объектом, убирал влияние удаленных костей на участки сетки (шея vs задняя часть собаки)-value=0. Затем - позы собаки, и более тонко раскрашивал окрестности костей сетки до нормального результата. Заметил два исхода (от настроек): все нормально до последней кости, потом с нее идет бешенное value=0.86-1 влияние на почти всю поверхность модели. Причем она (кость) в данном влиянии не нужна. Второй исход: раскрасил потомка, возращаюсь обратно к предку (через Paint Skin Weights Tool ) и предок, только что раскрашенный, опять в полном хаосе. В мануале говорят, что Майка, при выставлении весов, автоматически учитывает потомственные связи. Менял настройки в Smooth Bind- все одно: ранее раскрашенные участки майка сама раскрашивала. В мануале пишут, что если ослабить вес от одной кости, то это компенсирует следующая по ирархии. Как это влияние отключить- так и не нашел. "Замораживал" -HOLD, все нормально до последней кости. Веса от нее выставляются сами =1, если пробовать ослабить их, сетка просто проваливается. Да и удалял "мусор"- Prune small weights (0.1 - 0.05). Засада какая! Может у меня чего не так работает? Но на 2 компах такое...HELP!!! Нужно доделывать срочно!
 

xeash

Активный участник
Рейтинг
12
#6
global proc tglSkinHold()
{
if(`window -exists tglSkinHold_ui`)
deleteUI tglSkinHold_ui;

window -t "Toggle Skin Holds" tglSkinHold_ui;
columnLayout -adj 1;
button -l "Hold ON" -c ("tglSkinHold_tgl 1");
button -l "Hold OFF" -c ("tglSkinHold_tgl 0");
showWindow tglSkinHold_ui;
}

global proc tglSkinHold_tgl(int $onOff)
{
string $sel[] = `ls -sl`;
if(`size($sel)` < 1)
error("tglSkinHold_tgl :: Select a bound surface and run");

for ($each in $sel)
{
string $skinClus = `findRelatedSkinCluster $each`;
if(`size($sel)` < 1)
{
warning("tglSkinHold_tgl :: No skinCluster found on: "+$each);
continue;
}

string $infs[] = `skinCluster -q -inf $skinClus`;
for ($j = 0; $j < size($infs) ;$j++)
setAttr ($infs[$j]+".liw") $onOff;

}
}

Попробуй этот скрипт, просто инициализируй его через tglSkinHold; выделяешь свою заскинненую поверхность и он поставит все веса на HOLD...
Я не знаю как ты там скинишь но у меня никогда такой проблемы не возникало=)
Выложи скриншот персонажа со скелетом, с проблемными участками...может это поможет
 

Vad Иванов

Активный участник
Рейтинг
11
#7
Большое спасибо за скрипт. Просто раньше не занимался объектами живой природы. Вроде решил проблему. Просто заморозил все через HOLD. А самый верхий по иерархии узел не трогал (он окрасил почти всю сетку). Да он и не учавствует. Если его трогать, то все порушится. Убрал влияние левой части на правую. Начал раскрашивать в разных положениях модель. Есть труднодоступные места, неучавствующие в деформации сетки, но окрашенные. Буду сбрасывать их в "0" через скрипт. Вершин много и костей достаточно- буду заряжать комп на ночь. Чувствую, что по- деревянному сделал, но первый блин....Еще раз спасибо за помощь!
 

xeash

Активный участник
Рейтинг
12
#8
Не за что=) только это не мой скрипт...его написал Paul Thuriot..кстати советую на будущее
залезь на highend3d.com и скачай скрипт для скиннига (что-то наподобие Skinny)....с помощью таких скриптов много чего полезного делать..редактировать веса вершин (как Weight Table в макс),
блокировать изменение весов ну и т.д. все с интерфейсом конечно...Удачи!!!
 

YO!

Активный участник
Рейтинг
5
#10
еще бывает неаккуратно выделяют кости и шкурку перед сетапом.. это лучше делать в hupergraf-е
а то когда оснастка в кластер попадает - добавляетcя трудностей..
hold как выше писали + по возможности не убавлять веса, а добавлять где их нехватает
 

xeash

Активный участник
Рейтинг
12
#11
хм.. когда начинают скинит лишние( обычно последние в иеарархии) джоинты меня убивает больше=)
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#12
уххх... понаписали :)
я лично делаю вот как..
ну во первых саму модель - фриз трансформ
у иерархии костей,ориент...
потом применяю смус скин НО макс инфлюенс = 1.
что означает что на одну точку будет влиять всего одна кость.
затем используя скрипт найденный мной на просторах интернета Skinning Tools
при помощи его я грубо раскрашиваю влияние костей (включен реплейс = 1)
потом все при помощи все того же скрипта холдятся все кости,
затем Скин - едит смус скин - сет макс инфлюенс ставим значение в соответствии с тем сколько костей должно влиять на одну точку (обычно ставлю 3.) при этом внизу появится предупреждение что мол они ведь все захолдены... это то чно надо..
дальше выбираю 2 кости, к примеру плечо и предплечье, анхолд их.. потом при помощи кисточки смус (из скрипта.) просто сглаживаю переход между этими костями... иногда проверяя как ведёт себя сетка при сгибах.. (сгибы тоже находятся в самом скрипте.. ) и так попарно прохожу по всем костям.. в некоторых частях анхолд не 2 костей а 3.. ну и просто смус...
раскрасив одну половинку я делаю миррор (опять же из скрит=пта -потому что он не такой глючный как стандартный..) ну а потом анхолд ол.. и прюне ммол вейт (и опять же из скрипта.) ну в принципе все...
кстати все инструменты для разрисовки (включаю повороты костей с возможностью установки ключей и удаления их же, миррор, и тд..) находятся в одном и том же интерфейсе скрипта...
пробую прикрепить скрипт.. не знаю получится ли..
запускать при помощи команды skinningTools
скрипт - для свободного юзания.. поэтому это не варез.. :)
 

xeash

Активный участник
Рейтинг
12
#14
О_о кто же здесь=)
Насчет Skinning Tools, сам написал?=)
я так понял взял с хайэнд3д;)
у меня похожая техника...скрипт выше делает тот самый холд о котором ты говоришь (эт не мой я для примера просто привел)
в основном дальше все зависит от технике риггинга(фрагментный, цельный(для мокап и игрушек чаще)) и от детализации модели..Стараюсь как можно меньше юзать смус тулзу, все скейлом, реплайсом и аддом=) Здесь стоит заметит, что особенно при фрамгентном риггинге необходимо написать скриптег который бы НЕ выделял те джоинты которые помеченные например словом "End", для того чтобы затем сделать смус биндинг на "Selected Joints" и не огребсти потом проблем при риггинге(Это особенно актуально когда у вас куча джоинтов в различных иерархиях ). При сложной системе воздействий на деформацию сетки, да и вообще всегда нужно создавать тестовую анимацию с наиболее экстремальными позициями скелета, чтобы тестить риг не выходя из режима паинтинга весов(тут можно нафиг отключить интерфейс и юзать хоткей "k" например для теста)...
Если все-таки не удалось получить нужные деформации тут есть несколько путей:
1) добавление дополнительного джоинта через Адд инфлуенс(не забудьте включить вейт лок чтоб не огребсти проблем=))
2)добавлении серии джоинтов для твиста например и управление ими через утилити ноды,констрейнты и другое...
3) добавления деформеров типа латтис,скулпт...что с ними делать дальше думаю понятно
4)добавлении иерархии джоинтов в проблемной области и управление ею через сплайнИК, а кривая скинится костями в этой проблемной области
5)объекты влияния(полигональные или нурбс) с включением использования компонентов скинкластеры...замедляет инициализацию скина когда их много, зато они во-первых будут хранить объем в отличие от джоинтов..во-вторых могут быть полезны при настройке болле сложных эффектов..существует вариант когда вместо джоинтов биндятся только объекты влияния
6)ну канешна блендшейпы=) кстати не реккомнедую очень сильно замедляют скин при большом количестве ( или большой плотности сетки), лучше использоват для такого полного контроля Pose Space Deformer....
... и так далее
Ну вот основное..канеш все зависит от задач и от ограничений на скинниг(в особенности эта касается скиннига для геймдева), но думаю эти советы имеют право жить=)
З.Ы. где-то у меня лежал скриптик который хранил скин мапс не на основе Uv координат на основе координат вершин в пространстве...скиниинг тулз(твой) делает что-то подобное???:)
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#15
это не мой скининг тулс.. я же написал что нашол этот скрипт на просторах интернета...
а вобще про сохранения весов и и всяких манипуляций со скином, и не только у меня стоит коллекция скриптов от 0-1
туда входят скрипты для моделинга, скининга, разверток, текстуринга, да и ещё много чего.. (кстати приятная штука коррект бленд шейп. (выделаешь кость.. поворачиваешь на критический угол.. жмёшь.. подправляешь сетку. снова жмешь и все.. готовый блед таргет и дривен кей уже настроен) короче рекомендую)
http://www.cgtalk.ru/forum/showthread.php?t=18247
вот эти скрипты
отличные скриптики.. но вот только на хот кеи многое повешано..
ничего привыкнуть можно. :)
сам я не скриптописец.
к игродел отношения не имею.. так что не знаю.. может там и есть ньюансы.
 

xeash

Активный участник
Рейтинг
12
#16
А я вот не рекомендую коррект блендшейп..как я уже говорил он есть много памяти и что ведет к медленному ригу + в местах где векторов смешивания больше чем 1 (типа плеч) ведет к некорректным деформация..PSD более новоя и продвинутая технология: хранит не все точки а только те которые сместились (т.е. выбираешь), хранит т.е. оффсет вертексов относительно джоинта(!) + можно настраивать смешивание векторов деформаций в таких проблемных местах как я уже говорил например, плечо=)
З.Ы. спасибо за ссылки..блин почему на рендер ру нет разделения хотя бы стики тем в Майском форуме например про риггинг или про скинниг..туда бы и выкладывали ссылки все и вообще все интересное на тему..тогда бы заходил сюда не только чтоб спросить, поговорить, но и узнать что-то новое,имхо...
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#17
я так то про скрипт говорил коррект бленд шейп.. ну если уж пошла такая свичтопляска то лучше вообще без этих извращений.. сgмускул рулит ;)
подробнее про PSD.. спасибо
 

xeash

Активный участник
Рейтинг
12
#18
Который от Judd Simantov из Naugthy Dog? да он довольно быстрый(так скомпилен на Си), но сам Judd уже который год ломает голову над тем как сделать deformer для мускула,который бы поддерживал скольжение кожи по мускулам=) пока с точки зрения такого deformera плагин от Michael Comet точно вне конкуренции...(ибо держит все что только нужно)...думаю вообще тему про мускульный риггинг затевать не есть хорошо ибо он добавляет в 2 раза больше работы по скиннингу (в этой теме это звучит хардкорно)...даже рассматривать через скулпт деформер тоже думаю пока не время...здесь)))
 

Skif

Администратор 3D галереи
Команда форума
Рейтинг
584
#19
да нет.. я про COMET_DiGiTAL_CMUSCLE_SYSTEM и скольжение и всё что нужно. :)
хотя да. проблемы там тож есть. работы много.. зато результат приятный
 

xeash

Активный участник
Рейтинг
12
#20
прошу тогда не путать cgMuscle и cMuscle=)

На сегодняшний день есть техники настройки кожный деформаций позволяющие достичь более впечатляющих результатов чем даже cMuscle...конечно они более требовательные к системным ресурсам и их сложнее настроить...основная идея в том что используется вовсе не deformer а solver...т.е. получаются не только более качественные результаты но и более точные...в противовес так сказать нереалистичному(т.е. не учитывающему физические законы) cMuscle deformer'у...но из деформеров он канеш самый лучший=)
 
Сверху