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. Нам же осталось только привести готовую картинку: