Вопросница 5. Сюда скидываются все вопросы 5
- Автор темы Skif
- Дата создания
- Статус
- Закрыта.
Привет! Может есть у кого скрипт по типу этого - http://polycount.com/discussion/61998/maya-select-edges-in-crevices. Нужно, чтобы на объекте эджи, которые впуклые автоматом выбирались. Скрипт выше к сожалению не хочет работать на последней майке.
Здравствуйте. Вопрос по поводу анимации. Создал контрольку для джоинта (палец). Для контрольки создал два новых атрибута для сгибания по одной оси. После этого задал им связь через Connection Editor. После этого пытаюсь сделать анимацию ставлю ключ на первый фрейм с значениями 0,0 для каждого из атрибутов. Далее выбираю след. фрейм, ставлю значения 10;10 и ставлю ключ. В итоге значения второго ключа присваиваются к первому и у обоих атрибутов теперь значения 10;10. Как можно решить эту проблему?
Привет! Может есть у кого скрипт по типу этого - http://polycount.com/discussion/61998/maya-select-edges-in-crevices. Нужно, чтобы на объекте эджи, которые впуклые автоматом выбирались. Скрипт выше к сожалению не хочет работать на последней майке.
Пофиксил и ускорил заодно:
Код:
global proc cly_hillOrValley_fixopt(){
string $edgesPLCC[] = `polyListComponentConversion -te`;
if(!size($edgesPLCC)) return;
string $edges[] = `filterExpand -sm 32 -expand 1 $edgesPLCC`;
int $progressSize = `size( $edges ) `, $progressUpdate = 0;
string $progressWindow = "cly_hillValley_progressWindow";
if ( `window -exists $progressWindow` )
deleteUI $progressWindow;
window -titleBar 0 -resizeToFitChildren 1 $progressWindow;
columnLayout;
progressBar -maxValue $progressSize -width 500 cly_hillValley_progress;
showWindow $progressWindow;
float $THRESHOLD = 1.5; // tweak me fer precision
string $SEL[];
for ( $e in $edges ) {
if (!($progressUpdate++%100)) progressBar -edit -step 100 cly_hillValley_progress;
string $faceWingsPLCC[] = `polyListComponentConversion -tf $e`;
string $faceWings[] = `filterExpand -sm 34 -expand 1 $faceWingsPLCC`;
if (size($faceWings) < 2) continue; // fix
string $normalWingStrngA[] = `polyInfo -fn $faceWings[0]`;
string $normalWingStrngB[] = `polyInfo -fn $faceWings[1]`;
string $wingA[];
string $wingB[];
tokenize $normalWingStrngA[0] $wingA;
tokenize $normalWingStrngB[0] $wingB;
float $castWingA[];
float $castWingB[];
$castWingA[0] = $wingA[2];
$castWingA[1] = $wingA[3];
$castWingA[2] = $wingA[4];
$castWingB[0] = $wingB[2];
$castWingB[1] = $wingB[3];
$castWingB[2] = $wingB[4];
vector $a = <<$castWingA[0],$castWingA[1],$castWingA[2]>>;
vector $b = <<$castWingB[0],$castWingB[1],$castWingB[2]>>;
float $angle1 = angle ( $a, $b );
float $degrees = rad_to_deg($angle1);
if ($degrees < $THRESHOLD) continue;
float $faceCenter[] = {};
for ( $f in $faceWings ) {
string $vrtsPLCC[] = `polyListComponentConversion -tv $f`;
string $vrts[] = `filterExpand -sm 31 -expand 1 $vrtsPLCC`;
float $pos[] = {};
for ( $v in $vrts ){
float $gitPos[] = `xform -q -ws -t $v`;
$pos[0] += $gitPos[0];
$pos[1] += $gitPos[1];
$pos[2] += $gitPos[2];
}
$faceCenter[size($faceCenter)] = $pos[0] / size($vrts);
$faceCenter[size($faceCenter)] = $pos[1] / size($vrts);
$faceCenter[size($faceCenter)] = $pos[2] / size($vrts);
}
vector $facedifference = <<
($faceCenter[0] -$faceCenter[3]),
($faceCenter[1] -$faceCenter[4]),
($faceCenter[2] -$faceCenter[5])>>;
float $dotDifference = dot($a, $facedifference);
if ($dotDifference <= 0) $SEL[size($SEL)] = $e;
}
select $SEL;
deleteUI $progressWindow;
}
cly_hillOrValley_fixopt();
Последнее редактирование:
Подскажите пожалуйста. Знаю проблема популярная, но подходящего работающего решения не нашел. Не отображается текстура к объекту во вьюпорте (на остальных объектах все нормально). При рендере в ментал рей текстура отображается, а снизу появляется строка "empty or corrupted uv set map1 detected". Если сделать по новой автомэппинг на проблемном объекте, текстура во вьюпорте становится видна, но лежит уже криво. Есть ли решение данной проблемы, уж больно не хочется по новой возится с составлением UV карты?!
Всем привет! Подскажите, возможно ли после фриз трансформа определить значения каналов транслейт относительно нуля мировых координат?
Вложения
-
22,7 КБ Просмотров: 284
Всем привет! Подскажите, возможно ли после фриз трансформа определить значения каналов транслейт относительно нуля мировых координат?
А скрипт сам напиши.
Там всего ls -sl, потом цикл с getAttr и присвоением этих данных куда надо, в цикле или вне его.
- Статус
- Закрыта.