Render.ru

Надеюсь на помощь знающих

Shtuka-tur

Пользователь сайта
Рейтинг
2
#1
Надеюсь на помощь знающих. Не так давно начал изучать Maya 7, делаю я это с помощью одной из многочисленных книг, в которой материал подается на примере построения помещения с мебелью и различными архитектурными деталями. Достаточно долгое время все шло хорошо, но вдруг теперь уже и не вспомнить, что это был за вдруг, начались проблемы с Extrude кривой профиля по кривой пути. Выражалось это в том, что вытягиваемая поверхность никак не хотела приобретать нужную форму. На форуме этот вопрос уже ранее обсуждался, но решения как я понял, так и не нашлось. Я решал его перетаскиванием точек в нужные места. Но на этом мои проблемы не кончились, так как произошел еще один «вдруг». Теперь конкретно в этой сцене я не могу ни создать объект, ни дублировать его, точнее сказать все создается и дублируется только ни в одном виде вновь созданные объекты не видно. Их можно перемещать, масштабировать, но не возможно увидеть результат. И если проблемы с Extrude у меня теперь в любой сцене Maya, то невидимые объекты только в конкретной сцене. И эта проблема обсуждалась, тогда Greef помогло «Edit -> dubliucate special (там, в опциях поставить dublicate input graph)». Но у меня в Edit нет dubliucate special, есть просто dubliucate и там, в опциях я ставил галочку напротив dublicate input graph, но это не помогло. Пожалуйста, посмотрите мою сцену, лежать в течение 30 дней она будет на WebFile.ru № 2121375.
 

tadpole

Знаток
Рейтинг
24
#2
укструд и остальные операции работают нормально в этой сцене.
попробуй удалить папку майя 7 из моих докумкнтов..
 

Shtuka-tur

Пользователь сайта
Рейтинг
2
#3
Спасибо tadpole, удаление папки maya помогло, но только с dublicate. Проблема с Extrude остались. Вот как это выглядит у меня
 

Вложения

Shtuka-tur

Пользователь сайта
Рейтинг
2
#4
А я вот что еще у себя нашел. После применения extrude к двум кривым, дополнительно с поверхностью, появляется окружность с двумя точками, перемещая которые с созданной поверхностью можно таких чудес натворить. Я так понимаю мои проблемы из-за этого. Похоже, я, что-то включил, как вернуть extrude в нормальный режим?
 

Вложения

Dark™

Модератор форума
Команда форума
Рейтинг
431
#5
Shtuka-tur, это никакой не "вдруг". То, что создает extrude, имеет начало и конец. Начальная позиция вершин задается четко по нормали профиля, финальная позиция просто замыкается с начальной. Поэтому сделай поли модель на половине пути, скопируй, отзеркаль и тп, сделай merge.
Настройки скидываются череp Edit -> Reset Settings.
 

Shtuka-tur

Пользователь сайта
Рейтинг
2
#6
Я понимаю, что можно получить то, что мне нужно разными путями, но проблема для меня состоит в том, что раньше вытянуть замкнутую кривую профиль по замкнутой кривой пути получалось с предсказуемым результатом. Теперь это неполучается (вытягиваемая поверхность не совпадает даже с кривой пути) и это меня нервирует т.к. применять extrude возможно придется и для более сложных объектов, а получать непредсказуемый результат в таких случаях совсем не хочется. Моя Maya как мне кажется, немножко больна, а как ее полечить я не знаю. Пробовал переустанавливать, не помогло.
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#8
Надо сначала искать проблему в себе, а потом уже майю винить =)
 

Hasan Akniyev

Активный участник
Рейтинг
11
#9
Надо сначала искать проблему в себе, а потом уже майю винить =)
ИМХО все таки надо винить майю, потому что если существует решение, оно наверняка давно было бы всем известно.
Я решил эту проблему, правда далеко не полностью, написанием скрипта, который экструдит кривую по пути, расположенному в плоскости, параллельной xOz. Кривая пути должна быть первой степени. Скрипт простой, но если кому нужно могу выложить)
 

Вложения

Shtuka-tur

Пользователь сайта
Рейтинг
2
#10
Спасибо Fabis, поиском я пользовался и нашел несколько тем, о чем писал выше, конкретно эту тему не просматривал. Результата, к моему сожалению нет. Делал, как написано 2 раза rebuild curve на путь, путь из прямоугольной кривой превращался в овал, что мне не нужно или я опять делаю что-то не так. Центр трансформаций я устанавливал, как написано в уроке из книги в точку профиля, которая должна скользить по пути. Смещение центра трансформаций в геометрический центр профиля лишь смещает ксячную поверхность немного в сторону.
RGBam я и не думал Майю в чем либо винить наоборот чем больше я ее узнавал тем больше она мне нравилась. Моя Maya больна из-за моих кривых ручек и слепеньких глазок. Жаль, что осознание этого ничего не меняет с extrude.
Hasan скрипт нужен только по подробней что куда ложить и где чего писать.
В моей сцене есть объект, вытянутый с помощью extrude под названием CrownMolding. Тогда все получалось без проблем. А вот что получается после переустановки Maya, зачистки реестра и удаления файлов в которых как мне казалось, могли сохраняться какие либо настройки Maya. При первом запуске создаю замкнутую кривую с 4 прямыми углами и по ней тяну замкнутую кривую типа треугольник с центром трансформации в точке скользящей по пути.
 

Вложения

Dark™

Модератор форума
Команда форума
Рейтинг
431
#11
Извиняюсь, никогда не сталкивался с подобной проблемой. Ща повторил, проблема имеет место быть
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#12


Решил эту проблему, просто вставив 1 узел. Пока не знаю из-за чего так происходит
 

Hasan Akniyev

Активный участник
Рейтинг
11
#14
Скрипт правда очень ограничен в возможностях, но все таки может быть полезен)
Надо запихнуть этот скрипт на полку(Shelf), выделить профиль, затем путь, потом нажать на кнопку шелфа.

Ограничения:
путь - кривая первого уровня (Linear), лежит в плоскости параллельной xOz.
Профиль иногда приходится поворачивать, чтобы добиться результата)
Не сохраняется Constraction history

Код:
{
string $obj[] = `ls -sl`;
if (size($obj)==2)
{
vector $pn = <<0, 1, 0>>;

int $cv;
vector $vtx[], $vtn[], $egx[];
$cv = `getAttr ($obj[1]+".spans")`+1;

int $i;
float $ofs = 200;

for ($i=0; $i<$cv; $i++)
{
	$vtx[$i] = `pointPosition -w ($obj[1]+".cv["+$i+"]")`;
}

for ($i=0; $i<$cv-1; $i++)
{
	vector $eg = $vtx[$i+1]-$vtx[$i];
	vector $egn = `cross $eg $pn`;
	float $len = `mag $egn`;
	$egn = <<($egn.x/$len),($egn.y/$len),($egn.z/$len)>>;
	$egx[$i] = $egn;
}

$vtn[0] = $egx[0];
$vtn[$cv-1] = $egx[$cv-2];

for ($i=0; $i<$cv-2; $i++)
{
	vector $e1 = $egx[$i] + $egx[$i+1];
	vector $vx = $e1/mag($e1);
	$vtn[$i+1]=$vx; 
}

for ($i=1; $i<$cv-1; $i++)
{
	vector $v = $vtn[$i];
	vector $e = $egx[$i];
	float $len = 1/($v.x*$e.x+$v.y*$e.y+$v.z*$e.z);
	$vtn[$i]=$vtn[$i]*$len;	
} 
string $profs[];

vector $piv = `getAttr ($obj[0]+".rotatePivot")`;

for ($i=0; $i<$cv; $i++)
{
	$vc = $vtx[$i];
	$vn = $vtn[$i];
	float $rot[] = `angleBetween -euler -v1 1 0 0 -v2 ($vn.x)($vn.y)($vn.z)`;
	//print $rot; print "\n";
	string $dup[] = `instance $obj[0]`;
	$profs[$i]=$dup[0];
	rotate -r ($rot[0])($rot[1])($rot[2]) $dup;
	move ($vc.x-$piv.x) ($vc.y-$piv.y) ($vc.z-$piv.z) $dup;
	float $sc = `mag $vn`;
	scale -r ($sc) 1 ($sc) $dup;
} 

int $j=0;
select $profs;
loft -ch 0 -u 1 -c 0 -ar 1 -d 1 -ss 1 -rn 0 -po 0 -rsn true $profs;


delete $profs;
}
}
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#16
Я же показал, думал объяснять не придется. Проблемы начинают возникать там, где указанный угол больше 90 град. Если провести испытания, то можно увидеть, что после превышения 90 град плоскость ребер начинает вращаться, уменьшая угол, все это нарушает в итоге последующие построения. Наверное это так
 

Shtuka-tur

Пользователь сайта
Рейтинг
2
#17
Hasan я скопировал текст твоего скрипта, вставил в нижнюю часть Script Editor, затем выделил весь текст и средней кнопкой перетащил на полку, появилась иконка mel. Выделил профиль, затем путь нажал на mel, ничего не произошло кроме надписи внизу Error: Division by zero. Я что-то сделал не так?
RGDam у меня замкнутая кривая с углами 90 градусов мне может помочь вставка 1 узла? Если да то куда его вставить и как? (офицеры молчать!!!)
 

Вложения

Dark™

Модератор форума
Команда форума
Рейтинг
431
#18


Вот такой путь сделай. Там начало и конец в одной точке сходятся
 

Hasan Akniyev

Активный участник
Рейтинг
11
#19
Хм... у меня все работает. Маловероятно, но может это из за того что версия майки старая....)
также проверь весь ли скрипт ты скопировал, может кусочек пропустил)

PS Выложи свою сцену, я посмотрю
 

Вложения

Shtuka-tur

Пользователь сайта
Рейтинг
2
#20
Оле-оле-оле-оле-оле RGBam чемпион!!! Большое тебе 3D спасибо!!! А я уже и вправду стал задумываться, что со мною не все в порядке, да и ручки как-то заметно криветь стали. Вставка доп узла и вправду помогла.
Hasan тебе то же большое спасибо ты первый кто вселил в меня надежду, что со мною возможно все в порядке, а так же смог посеять зерно сомнения в разум RGBam! Если скрипт в твоем сообщении выложен полностью, то и скопировал я его полностью. А в Script Editor я выделял текст Ctrl+A. Но если тебе хочется разобраться, в чем дело напиши, я выложу свою сцену. Ну а лично я пока до скриптов не дорос и найденное решение с доп узлом меня вполне устраивает.
Однажды я то же стану таким же умным как вы (мечта ха-ха))))!
Всем удачи!
 
Сверху