Перейти к контенту

Моделирование в Maya


Qbik

  

95 голосов

  1. 1. Нужна ли отдельная тема "Анимирование в Maya"?

    • Да
      74
    • Нет
      10
    • Затрудняюсь ответить
      11


Рекомендуемые сообщения

Всем привет.

Подскажите плиз, открываю в Maya2011x64 Winx64 : bar_rostok_terrain_3.object...об ёмом 15,9мб, нечего не делая експортю в bar_rostok_terrain_5.object, и обём становица...7,3мб. такойже прикол и с другим файлом лога нет. ActorEditor, и LevelEditor открывает итот и етот фаил, в чём это отразится и как с ётим бороться.

 

Поделиться этим сообщением


Ссылка на сообщение
vadyan

Добрый вечер(день) я по поводу скрипта xr_tools.mel, установив maya2014 до этого стояла maya2011 всё было нормально, теперь при запуске скрипта выдаёт ету ошибку

 

// Error: file: C:/Users/Andrey/Documents/maya/scripts/xr_tools.mel line 2651: Cannot find procedure "sizeComponents". // 

// Error: file: C:/Users/Andrey/Documents/maya/scripts/xr_tools.mel line 2520: Cannot find procedure "sizeComponents". //
 
также и при выдилении: обекта, полигона...и неработает скрипт "delete unused nodes", "аssign duble shading nodes" остальными пока не пользовался, подскажыте что это за ошыбка и, как с этим бороться? 

 

Поделиться этим сообщением


Ссылка на сообщение

 vadyan

День добрый, да версия сэтой ссылки, я конечьно  в написании скриптов не силён(0) но этот код есть толко в версии 1.0 находится он в

/////////////

// NAT_HUD //

global proc natHUDenableAll()

{

if (`headsUpDisplay -q -ex natHUDprojectName`)

headsUpDisplay -rem natHUDprojectName;

if (`headsUpDisplay -q -ex natHUDsceneName`)

headsUpDisplay -rem natHUDsceneName;

if (`headsUpDisplay -q -ex natHUDselection`)

headsUpDisplay -rem natHUDselection;

if (`headsUpDisplay -q -ex natHUDdistance`)

headsUpDisplay -rem natHUDdistance;

natHUDprojectName;

natHUDsceneName;

natHUDselection;

natHUDdistance;

natHUDupdateOptionVars;

}

global proc natHUDdisableAll()

{

if (`headsUpDisplay -q -ex natHUDprojectName`)

headsUpDisplay -rem natHUDprojectName;

if (`headsUpDisplay -q -ex natHUDsceneName`)

headsUpDisplay -rem natHUDsceneName;

if (`headsUpDisplay -q -ex natHUDselection`)

headsUpDisplay -rem natHUDselection;

if (`headsUpDisplay -q -ex natHUDdistance`)

headsUpDisplay -rem natHUDdistance;

natHUDupdateOptionVars;

}

global proc natHUDupdateOptionVars()

{

optionVar -iv natHUDprojectNameEnable `headsUpDisplay -q -ex natHUDprojectName`;

optionVar -iv natHUDsceneNameEnable `headsUpDisplay -q -ex natHUDsceneName`;

optionVar -iv natHUDselectionEnable `headsUpDisplay -q -ex natHUDselection`;

optionVar -iv natHUDdistanceEnable `headsUpDisplay -q -ex natHUDdistance`;

/*

optionVar -q natHUDprojectNameEnable;

optionVar -q natHUDsceneNameEnable;

optionVar -q natHUDselectionEnable;

optionVar -q natHUDdistanceEnable;

*/

}

global proc natHUDstartup()

{

if (`optionVar -q natHUDprojectNameEnable`)

natHUDprojectName;

if (`optionVar -q natHUDsceneNameEnable`)

natHUDsceneName;

if (`optionVar -q natHUDselectionEnable`)

natHUDselection;

if (`optionVar -q natHUDdistanceEnable`)

natHUDdistance;

}

global proc natHUDmenuCheckBoxesUpdate()

{

string $menu = `setParent -q -m`;

string $items[] = `menu -q -ia $menu`;

string $item;

for ($item in $items)

{

//$item = $items[0];

if (`menuItem -q -d $item`)

continue;

string $label = `menuItem -q -l $item`;

if ($label == "Project name")

menuItem -e -cb (`optionVar -q natHUDprojectNameEnable`) $item;

if ($label == "Scene name")

menuItem -e -cb (`optionVar -q natHUDsceneNameEnable`) $item;

if ($label == "Selection names")

menuItem -e -cb (`optionVar -q natHUDselectionEnable`) $item;

if ($label == "Distance measure")

menuItem -e -cb (`optionVar -q natHUDdistanceEnable`) $item;

}

}

//headsUpDisplayRemoveAll

global proc natHUDsceneName()

{

if (`headsUpDisplay -q -ex natHUDsceneName`)

headsUpDisplay -rem natHUDsceneName;

//закоментировал проверки загружен ли скрипт

//else

headsUpDisplay -s 5 -b (`headsUpDisplay -nfb 5`)

-l "Scene path:" -c "natHUDsceneNameCommand" -ev "SceneOpened" natHUDsceneName;

}

global proc string natHUDsceneNameCommand()

{

string $res = toNativePath(substituteAllString(`file -q -sn`, `workspace -q -fullName`, ""));

//$time = " The current time is: 18:34:11,41\nEnter the new time: ";

string $time = `system "time"`;

string $array[] = stringToStringArray($time, ":,");

//print $array

$time = `substring $array[1] 2 3` + ":" + $array[2];

//print $time;

if ($res == "")

$res = "...";

$res += (" " + $time);

return $res;

}

global proc natHUDprojectName()

{

if (`headsUpDisplay -q -ex natHUDprojectName`)

headsUpDisplay -rem natHUDprojectName;

//закоментировал проверки загружен ли скрипт

//else

headsUpDisplay -s 5 -b (`headsUpDisplay -nfb 5`)

-l "Project path:" -c "toNativePath(`workspace -q -fullName`)" -ev SceneOpened natHUDprojectName;

}

global proc natHUDdistance()

{

if (`headsUpDisplay -q -ex natHUDdistance`)

headsUpDisplay -rem natHUDdistance;

//закоментировал проверки загружен ли скрипт

//else

headsUpDisplay -s 0 -block (`headsUpDisplay -nfb 0`)

-label "Distance:" -c "natHUDdistanceCommand" -ev "SelectionChanged" -nodeChanges "attributeChange" natHUDdistance;

}

global proc string natHUDdistanceCommand()

{

//setting up number of digits for output values

float $distPrecision = 2; //edge and curve length, vertices distance

float $anglePrecision = 2; //face normal angle

int $sizeComponents = sizeComponents(`ls -sl`);

if ($sizeComponents > 1000)

return "too much selected...";

global string $gDistanceHUDlastSelected;

string $lastSelectedObject = $gDistanceHUDlastSelected;

string $sel[] = `ls -sl -fl`;

$gDistanceHUDlastSelected = $sel[0];

if (`size $sel` == 0)

return "...";

float $distance = 0.0;

float $v1[3];

float $v2[3];

float $edgeFloat[];

vector $edgeVector;

string $vertices[] = `filterExpand -sm 31`;

string $edges[] = `filterExpand -sm 32`;

string $faces[] = `filterExpand -sm 34`;

 

if (`size $vertices` > 0)

{

headsUpDisplay -e -label "Distance:" natHUDdistance;

if (`size $vertices` == 2)

{

$v1 = `pointPosition $vertices[0]`;

$v2 = `pointPosition $vertices[1]`;

for ($i = 0; $i < 3; $i++)

$edgeFloat[$i] = $v1[$i] - $v2[$i];

$edgeVector = $edgeFloat;

$distance = `mag $edgeVector`;

string $res = strToFloat ($distance, $distPrecision);

return $res;

}

else

return "...";

}

else if (`size $edges` > 0)

{

for ($thisEdge in $edges)

{

$attached = `polyListComponentConversion -ff -fe -fuv -fvf -tv $thisEdge`;

$vertices = `filterExpand -sm 31 $attached`;

$v1 = `pointPosition $vertices[0]`;

$v2 = `pointPosition $vertices[1]`;

for ($i = 0; $i < 3; $i++)

$edgeFloat[$i] = $v1[$i] - $v2[$i];

$edgeVector = $edgeFloat;

 

$tmpEdgeLength = `mag $edgeVector`;

$distance += $tmpEdgeLength;

}

headsUpDisplay -e -label "Edges Length:" natHUDdistance;

string $res = strToFloat ($distance, $distPrecision);

return $res;

}

else if (`size $faces` > 0)

{

headsUpDisplay -e -label "Face angle XYZ:" natHUDdistance;

if (`size $faces` == 1)

{

string $info[] = `polyInfo -fn $faces[0]`;

string $infoSep[] = stringToStringArray($info[0], " ");

float $normal[];

$normal[0] = $infoSep[2];

$normal[1] = $infoSep[3];

$normal[2] = $infoSep[4];

vector $vector = $normal;

float $angleX = rad_to_deg(`angle $vector <<1,0,0>>`);

float $angleY = rad_to_deg(`angle $vector <<0,1,0>>`);

float $angleZ = rad_to_deg(`angle $vector <<0,0,1>>`);

return (strToFloat ($angleX,$anglePrecision) + " " + strToFloat ($angleY,$anglePrecision) + " " + strToFloat ($angleZ,$anglePrecision));

}

else

return "...";

}

else

{

if (stringArrayToString(`ls -sl -o`, " ") != stringArrayToString(`ls -sl`, " "))

{

headsUpDisplay -e -label "Distance:" natHUDdistance;

return "...";

}

global float $gLastCalculatedCurveLength;

string $shapes[] = `listRelatives -f -ni -s $sel[0]`;

int $isCurve = 0;

if (`size $sel` == 1 && `size $shapes` > 0)

if (`nodeType($shapes[0])` == "nurbsCurve")

$isCurve = 1;

if ($lastSelectedObject == $sel[0] && $isCurve)

return $gLastCalculatedCurveLength;

else

{

//print $isCurve

if ($isCurve)

{

$distance = arclen ($shapes[0]);

undo;

headsUpDisplay -e -label "Curve Length:" natHUDdistance;

string $res = strToFloat ($distance, $distPrecision);

$gLastCalculatedCurveLength = $res;

return $res;

}

else

{

headsUpDisplay -e -label "Distance:" natHUDdistance;

string $objects[] = `ls -sl -o -type transform`;

if (`size $objects` != 2)

return "...";

else

{

float $distance = twoObjectsDistance($objects[0], $objects[1]);

string $res = strToFloat ($distance, $distPrecision);

return $res;

}

}

}

}

return "...";

}

global proc natHUDselection()

{

if (`headsUpDisplay -q -ex natHUDselection`)

headsUpDisplay -rem natHUDselection;

//закоментировал проверки загружен ли скрипт

//else

headsUpDisplay -s 0 -block (`headsUpDisplay -nfb 0`)

-l "Selection:" -c "natHUDselectionCommand" -ev "SelectionChanged" -nodeChanges "attributeChange" -dp 4 natHUDselection;

}

 

global proc string natHUDselectionCommand()

{

 

int $sizeComponents = sizeComponents(`ls -sl`);

if ($sizeComponents > 1000)

return ($sizeComponents + " items selected.");

 

$sel = `ls -sl -fl`;

$selSize = size($sel);

string $selectionSize = " " + $selSize;

if (!$selSize)

{

return "...";

}

else

{

if ($selSize > 2)

{

string $briefSel = "";

$briefSel = $sel[0] + " ... " + $sel[$selSize-1] + $selectionSize;

return $briefSel;

}

$res = stringArrayToString ($sel, " ") + $selectionSize;

return $res;

}

}

//UTILS

global proc string strToFloat (float $inputFloat, int $decimalPrecision)

{

string $res = "";

if ($inputFloat<0 && $inputFloat>-1)

$res = "-";

int $int = $inputFloat;

$res = $res + $int + ".";

$inputFloat = abs($inputFloat-$int);

$inputFloat *= `pow 10 $decimalPrecision`;

$int = abs($inputFloat);

return ($res + $int);

}

global proc int sizeComponents(string $items[])

{

//string $items[] = `ls -sl`;

//sizeComponents(`ls -sl`);

int $itemsCount = 0;

for ($item in $items)

{

//$item = $items[0];

string $buffer[] = {};

tokenize $item "[:]" $buffer;

//print $buffer

if (`size $buffer` < 3)

{

$itemsCount++;

continue;

}

int $match1 = `gmatch $buffer[1] "[0-9]*"`;

int $match2 = `gmatch $buffer[2] "[0-9]*"`;

if (!$match1 || !$match2)

continue;

//print $buffer

int $begin = $buffer[1];

int $end = $buffer[2];

int $count = $end - $begin + 1;

$itemsCount += $count;

}

return $itemsCount;

}

global proc string one(string $array[])

{

if (`size $array` > 0)

return $array[0];

else

return "";

}

global proc float twoObjectsDistance (string $object1, string $object2)

{

float $p1[] = `xform -q -ws -t $object1`;

float $p2[] = `xform -q -ws -t $object2`;

float $distance = sqrt(pow(($p1[0] - $p2[0]), 2) + pow(($p1[1] - $p2[1]), 2) + pow(($p1[2] - $p2[2]), 2));

return $distance;

}

// NAT HUD AND //

/////////////////

 

 

ито немного по другому выглядит, а в версиях 1.1 и 1.2 он отсуствует 

////////////////////////

//// NAT HUD START /////

global proc natHUDdistance()

{

if (`headsUpDisplay -q -ex natHUDdistance`)

headsUpDisplay -rem natHUDdistance;

else

headsUpDisplay -s 0 -block (`headsUpDisplay -nfb 0`)

-label "Distance:" -c "natHUDdistanceCommand" -ev "SelectionChanged" -nodeChanges "attributeChange" natHUDdistance;

}

 

global proc string natHUDdistanceCommand()

{

//setting up number of digits for output values

float $distPrecision = 2; //edge and curve length, vertices distance

float $anglePrecision = 2; //face normal angle

int $sizeComponents = sizeComponents(`ls -sl`);

if ($sizeComponents > 1000)

return "too much selected...";

global string $gDistanceHUDlastSelected;

string $lastSelectedObject = $gDistanceHUDlastSelected;

string $sel[] = `ls -sl -fl`;

$gDistanceHUDlastSelected = $sel[0];

if (`size $sel` == 0)

return "...";

float $distance = 0.0;

float $v1[3];

float $v2[3];

float $edgeFloat[];

vector $edgeVector;

string $vertices[] = `filterExpand -sm 31`;

string $edges[] = `filterExpand -sm 32`;

string $faces[] = `filterExpand -sm 34`;

 

if (`size $vertices` > 0)

{

headsUpDisplay -e -label "Distance:" natHUDdistance;

if (`size $vertices` == 2)

{

$v1 = `pointPosition $vertices[0]`;

$v2 = `pointPosition $vertices[1]`;

for ($i = 0; $i < 3; $i++)

$edgeFloat[$i] = $v1[$i] - $v2[$i];

$edgeVector = $edgeFloat;

$distance = `mag $edgeVector`;

string $res = strToFloat ($distance, $distPrecision);

return $res;

}

else

return "...";

}

else if (`size $edges` > 0)

{

for ($thisEdge in $edges)

{

$attached = `polyListComponentConversion -ff -fe -fuv -fvf -tv $thisEdge`;

$vertices = `filterExpand -sm 31 $attached`;

$v1 = `pointPosition $vertices[0]`;

$v2 = `pointPosition $vertices[1]`;

for ($i = 0; $i < 3; $i++)

$edgeFloat[$i] = $v1[$i] - $v2[$i];

$edgeVector = $edgeFloat;

 

$tmpEdgeLength = `mag $edgeVector`;

$distance += $tmpEdgeLength;

}

headsUpDisplay -e -label "Edges Length:" natHUDdistance;

string $res = strToFloat ($distance, $distPrecision);

return $res;

}

else if (`size $faces` > 0)

{

headsUpDisplay -e -label "Face angle XYZ:" natHUDdistance;

if (`size $faces` == 1)

{

string $info[] = `polyInfo -fn $faces[0]`;

string $infoSep[] = stringToStringArray($info[0], " ");

float $normal[];

$normal[0] = $infoSep[2];

$normal[1] = $infoSep[3];

$normal[2] = $infoSep[4];

vector $vector = $normal;

float $angleX = rad_to_deg(`angle $vector <<1,0,0>>`);

float $angleY = rad_to_deg(`angle $vector <<0,1,0>>`);

float $angleZ = rad_to_deg(`angle $vector <<0,0,1>>`);

return (strToFloat ($angleX,$anglePrecision) + " " + strToFloat ($angleY,$anglePrecision) + " " + strToFloat ($angleZ,$anglePrecision));

}

else

return "...";

}

else

{

if (stringArrayToString(`ls -sl -o`, " ") != stringArrayToString(`ls -sl`, " "))

{

headsUpDisplay -e -label "Distance:" natHUDdistance;

return "...";

}

global float $gLastCalculatedCurveLength;

string $shapes[] = `listRelatives -f -ni -s $sel[0]`;

int $isCurve = 0;

if (`size $sel` == 1 && `size $shapes` > 0)

if (`nodeType($shapes[0])` == "nurbsCurve")

$isCurve = 1;

if ($lastSelectedObject == $sel[0] && $isCurve)

return $gLastCalculatedCurveLength;

else

{

//print $isCurve

if ($isCurve)

{

$distance = arclen ($shapes[0]);

undo;

headsUpDisplay -e -label "Curve Length:" natHUDdistance;

string $res = strToFloat ($distance, $distPrecision);

$gLastCalculatedCurveLength = $res;

return $res;

}

else

{

headsUpDisplay -e -label "Distance:" natHUDdistance;

string $objects[] = `ls -sl -o -type transform`;

if (`size $objects` != 2)

return "...";

else

{

float $distance = twoObjectsDistance($objects[0], $objects[1]);

string $res = strToFloat ($distance, $distPrecision);

return $res;

}

}

}

}

return "...";

}

 

global proc natHUDselection()

{

if (`headsUpDisplay -q -ex natHUDselection`)

headsUpDisplay -rem natHUDselection;

else

headsUpDisplay -s 0 -block (`headsUpDisplay -nfb 0`)

-l "Selection:" -c "natHUDselectionCommand" -ev "SelectionChanged" -nodeChanges "attributeChange" -dp 4 natHUDselection;

}

 

global proc string natHUDselectionCommand()

{

 

int $sizeComponents = sizeComponents(`ls -sl`);

if ($sizeComponents > 1000)

return ($sizeComponents + " items selected.");

 

$sel = `ls -sl -fl`;

$selSize = size($sel);

string $selectionSize = " " + $selSize;

if (!$selSize)

{

return "...";

}

else

{

if ($selSize > 2)

{

string $briefSel = "";

$briefSel = $sel[0] + " ... " + $sel[$selSize-1] + $selectionSize;

return $briefSel;

}

$res = stringArrayToString ($sel, " ") + $selectionSize;

return $res;

}

}

 

global proc string strToFloat (float $inputFloat, int $decimalPrecision)

{

string $res = "";

if ($inputFloat<0 && $inputFloat>-1)

$res = "-";

int $int = $inputFloat;

$res = $res + $int + ".";

$inputFloat = abs($inputFloat-$int);

$inputFloat *= `pow 10 $decimalPrecision`;

$int = abs($inputFloat);

return ($res + $int);

}

 

//

//Define a procedure that returns a value to be used by the Heads Up Display

//

global proc float[] objectPosition ()

{

string $selectedNodes[] = `selectedNodes`;

float $position[3];

if (size($selectedNodes) > 0)

{

string $mainObject = $selectedNodes[ (size($selectedNodes) - 1) ];

$position[0] = `getAttr $mainObject.translateX`;

$position[1] = `getAttr $mainObject.translateY`;

$position[2] = `getAttr $mainObject.translateZ`;

}

else

{

$position[0] = 0;

$position[1] = 0;

$position[2] = 0;

}

return $position;

}

 

natHUDselection;

natHUDdistance;

/// NAT HUD END ////

////////////////////

 

maya2014sp4 вот последние строки после загруски скрипта и сцены атакже попытки выделить полигона, верекса и линий

/// SCRIPT ALL AND ///

//////////////////////;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

// Warning: line 544: Plug-in, "xrayMaya_material", is not loaded. //

// Warning: line 545: Plug-in, "xrayMaya_export", is not loaded. //

plugins xrayMaya_material, xrayMaya_export unloads

xrayMayaTools: already loaded

XRay settings: initialized

file -f -options "v=0;p=17;f=0" -typ "mayaAscii" -o "H:/C/rawdata/objects/levels/working_village/working_village_road.ma";addRecentFile("H:/C/rawdata/objects/levels/working_village/working_village_road.ma", "mayaAscii");

// File read in 2 seconds. //

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

select -r polySurface2113 ;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

select -r polySurface2113.f[1026] ;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

select -d polySurface2113.f[1026] ;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

select -r polySurface2113.vtx[821] polySurface2113.vtx[823:824] polySurface2113.vtx[827:828] polySurface2113.vtx[830:831] polySurface2113.vtx[962:964] polySurface2113.vtx[966:977] ;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

select -d polySurface2113.vtx[821] polySurface2113.vtx[823:824] polySurface2113.vtx[827:828] polySurface2113.vtx[830:831] polySurface2113.vtx[962:964] polySurface2113.vtx[966:977] polySurface2113.f[1026] ;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

select -r polySurface2113.e[442:446] polySurface2113.e[541:546] polySurface2113.e[552] polySurface2113.e[831:832] polySurface2113.e[840:845] polySurface2113.e[847] polySurface2113.e[861:864] polySurface2113.e[873:877] polySurface2113.e[997:1000] polySurface2113.e[1003:1004] polySurface2113.e[1791:1792] polySurface2113.e[1802:1839] polySurface2113.e[2200:2220] polySurface2113.e[2222:2235] polySurface2113.e[2237:2238] polySurface2113.e[2240] polySurface2113.e[2242] polySurface2113.e[2282:2323] ;

// Error: line 2651: Cannot find procedure "sizeComponents". //

// Error: line 2520: Cannot find procedure "sizeComponents". //

 

 

Поделиться этим сообщением


Ссылка на сообщение
online_circle.png   vadyan

Отличьная подборка скриптов! Пока полёт нармальный, правда всё не перепробывал. Но ошибка о которой писал пропала.

Поделиться этим сообщением


Ссылка на сообщение

Всем привет. Подскажите, как выровнять пивот относительно сетки (не модели). Работаю в Maya 2012 делал Mesh_separate, и майка повисла потом всё, попустило, А теперь какой проект не открою, а пивот наклонён и повёрнут относительно оси Y. Подскажите неохота переустанавливать maya заново. Сцены проверял на версии 2014, там всё нормально. 

Поделиться этим сообщением


Ссылка на сообщение

 

vadyan, спасибо помогло,  удалил файл userPrefs в папке документы…, и пивот развернулся в исходное положение.

Поделиться этим сообщением


Ссылка на сообщение

vadyanустановил обновленный пак XrayToolMaya v1.6 на maya2012х32bit как в редми c:\XrayToolMaya\.. в userSetup.mel написал,  source "C:/XrayToolMaya/scripts/XrayToolBuildGUI.mel", при запуске maya нет ни какой иконки… или не нахожу, но в скрипт идиторе в логе пишет

// Error: //

// Error: Syntax error //

file -f -new;

// untitled //.... не подскажешь что не так делаю, и как лечить.

Может кто другой сталкивался?

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...