global proc exportJot(string $_filename)

{

string $list[] = ' Is -si';

string $item;

for($item in $list)

{

select -hi -r ($item);

string $hi[] = 'Is -si'; string $it;

print (“EXPORTING:\n”); string Sfilename = $_filename; int $FP = fopen (Sfilename, “w");

for($it in $hi)

{

string Stype = 'nodeType ($it)'; if($type == “mesh”)

{

fprint $FP “#jot\n\nTEXBODY \t{\n”;

fprint $FP (“\tname \t”+$item+”.”+””+$it+”(celia) \n”);

// code for WTM

fprint $FP “\txform \t£{1 0 0 0 }[0 1 0 0 }{0 0 1 0 }{0 0 0 1 }}\n”;

fprint $FP “\tmesh_data £ \n\t\tl_MESH { \n”;

fprint $FP “\t\t\tvertices {

int $nv[] = ' polyEvaluate -v $it';

int $nf[] = 'polyEvaluate -f $it';

int $ii,$jj; string $varr=””; for($ii=0;$ii<$nv[0];$ii++)

{

float $vt[] = ’xform -q -ws -t ($it+”.vtx[“+$ii+”]”)'; $varr+=”{“+$vt[0]+ “ "+$vt[1]+ “ “+$vt[2]+

}

fprint $FP ($varr); fprint $FP “}} \n”;

fprint $FP “\t\t\tfaces \t[ string $farr=””; for($ii=0;$ii<$nf[0];$ii++)

С

string $face[] = 'polylnfo -fv ($it+".f[“+$ii+”]”)‘; string $buf[];

int $nn=tokenize($face[0], “ $buf);

$farr+=”£“;

for($jj=2; $jj<$nn-1; $jj++) $farr+= $buf[$jj]+”

$farr+=”}”;

}

fprint $FP ($farr); fprint $FP "}} \n”;

fprint $FP “\t\t\t} } \n\t} \nCREATE \t{ fprint $FP ($item+”.”+$it+”(celia)\n\t} “);

}

J

fclose ($FP);

}

}

Как видно из текста скрипта, чтобы не заморачиваться с триангуляцией сцены, мы будем выводить исключительно полигональные объекты - помните об этом. Тэ-э-экс, где там наша многострадальная овечка? Создаем новую сцену, импортируем овцу. Чтобы не очень много ждать в процессе экспорта, оставляем от бедного животного одну голову, переводим в сабдивы, а затем сразу же переводим в обратно в полигоны - Modify => Convert => Subdiv to polygon. Объявляем в MAYA наш скрипт, вызываем его на выполнение командой в Script Editor:

export Jot (“sheep, jot”); и получаем файл sheep, jot. Все, что нам осталось сделать - запустить Jot и насладиться результатом:

Как говорится в только что придуманой мною поговорке, овечья голова - это еще не вся овца. Что не дает нам экспортировать всю модель? Излишняя медлительность скрипта, который вынужден обходить три с половиной тысячи вертексов. Такова природа вещей писать скрипты на MEL’e легко и весело, а выполнять тяжело и грустно, поскольку они интерпретируются и выполняются заведомо медленнее откомпилированного оптимизированного кода на C++ - и потому хотя и годятся для экспорта больших и сложных моделей, но с большой натяжкой. Дело мастера боится: закатываем рукава и пишем плагин, который будет делать все то же самое, что и наш замечательный скрипт, но в десятки раз быстрее. Если с программированием на C++ и использованием MAYAAPI у вас туговато - используем план Б и загружаем с диска готовый плагин (в качестве приглашенного программиста выступил Вячеслав Богданов). Для совсем ленивых я записал на диск полностью готовую к экспорту сцену - sheep_jot.ma. Нам же осталось только привести готовую картинку:


⇐ вернуться назад | | далее ⇒