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

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


  

95 голосов

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

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


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

Всё что связано с Autodesk Maya обсуждаем здесь

========================================================

RWNjiOt.png

 

(составлено 

break):

В: Где скачать обновления Майи?
О: На оф. сайте Autodesk: http://usa.autodesk.com/adsk/servlet/ps/dl/index?siteID=123112&id=2334435&linkID=9242259
----
В: Где взять плагины для работы со Сталкер-форматами?
О: Официальные для ТЧ - здесь: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=437
Официальные для ЧН/ЗП - здесь: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=436
Плагин bardak'а здесь: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=454
Обновляемые плагины для последних версий Maya лежат (2014) здесь.
----
В: Как установить плагины?
О: Официальные:
1) Скопировать xrayMaya_export.dll и xrayMaya_material.dll в $MAYA/bin/plug-ins
2) Скопировать BugTrap.dll и xray_path.ltx в $MAYA/bin
Бардаковские:
0) Смотри readme
----
В: Чем отличаются "официальные" плагины от плагина бардака?
О: Официальные плагины разработаны GSC. Могут экспортировать геометрию, скелетную анимацию (.skl) и
анимацию камеры (.anm). Импортера нет. Есть сборки до Maya 2010 включительно, но только под win32.
В комплекте с ними идет набор MEL-скриптов:
1) AEXRayMtlTemplate.mel создает дополнительные контролы для ноды XRayMtl в редакторе атрибутов.
Без него вы не увидите свитка hardware texturing и назначенная в color текстура останется "размытой".
2) exportXRayCameramоtionAdvance.mel - множественный экспорт анимации камеры (.anm)
3) exportXRayObjectAdvance.mel - множественный экспорт статических объектов (.object)
4) exportXRaySkinMotionAdvance.mel - массовый экспорт скелетной анимации (.skl)
5) exportXRaySkinObjectAdvance.mel - массовый экспорт скелетных объектов (.object)
6) XRayShaders.mel - менюшка для назначения engine/compiler shader'ов и game material'ов.
Часть этих скриптов вызывает функции пысовского экспортера и бесполезна для бардаковского плага.
 
Плагин бардака поддерживает импорт .ogf, .dm, .object, .omf, .skl, .skls и экспорт .object, .skl.
Экспортера .anm нет. Сборки под Maya 8.5-2014, включая x64 версии. Совместим с официальными плагинами
и XRay-материалом. Исходный код полностью открыт: https://bitbucket.org/stalker/xray_re-tools/src
(Квалифицированные кодеры - давайте конпелировать в месте!)
При всех достоинствах бардаковского плагина, имеются и недоработки:
1) нерешенная проблема со сглаживанием .object'ов формата ЗП
2) отсутствие экспорта анимации камеры в формат .anm
3) невозможно экспортировать клипы из TraX Editor'а
----
В: Я максист, хде xform в Майе?
О: Modify->freeze transforms, reset transforms

xr_startup_scene_init.mel
Устанавливает рабочие единицы и плоскости отсечки под Сталкера.

global proc xr_startup_scene_init() {
///
// Установка рабочих единиц
//
currentUnit -linear "meter" -time "ntsc";
///
// Установка плоскостей отсечки
//
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 perspShape;
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 topShape;
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 frontShape;
viewClipPlane -nearClipPlane 0.01 -farClipPlane 1000 sideShape;print "XRay settings: initialized\n";xr_startup_plugin_loader();
}
 

xr_startup_plugin_loader.mel
Загружает и добавляет в автозагрузку xrayMayaTools.mll. Если версия Maya <= 2010, то дополнительно
пытается загрузить и убрать из автозагрузки xrayMaya_export.mll, а также выгрузить и убрать из
автозагрузки xrayMaya_material.mll (как рекомендовал bardak).


global proc xr_startup_plugin_loader() {
string $xray_maya_tools_path = `getenv MAYA_LOCATION`
         + "/bin/plug-ins/xrayMayaTools.mll";
string $xray_maya_material_path = `getenv MAYA_LOCATION`
         + "/bin/plug-ins/xrayMaya_material.mll";
string $xray_maya_export_path = `getenv MAYA_LOCATION`
         + "/bin/plug-ins/xrayMaya_export.mll";
///
// XRay Maya tools
//
if (!(`filetest -s $xray_maya_tools_path`)) {
  print "xrayMayaTools: plug-in not found\n";
} else if (`pluginInfo -q -loaded xrayMayaTools`) {
  print "xrayMayaTools: already loaded\n";
} else {
  loadPlugin xrayMayaTools;
  pluginInfo -e -autoload true xrayMayaTools;
  print ((`pluginInfo -q -loaded xrayMayaTools`)
    ? "xrayMayaTools: loaded\n"
    : "xrayMayaTools: not loaded\n");
}
///
// Официальные плагины
//
if (`about -apiVersion` <= 201000) {
  ///
  // Принудительная выгрузка material-плагина во избежание конфликта с xrayMayaTools
  //
  if (!(`filetest -s $xray_maya_material_path`)) {
   print "xrayMaya_material: plug-in not found, it's OK\n";
  } else if (`pluginInfo -q -loaded xrayMaya_material`) {
   unloadPlugin -force xrayMaya_material;
   pluginInfo -e -autoload false xrayMaya_material;
   print "xrayMaya_material: successfully unloaded\n";
  }
  ///
  // Загрузка экспортера
  //
  if (!(`filetest -s $xray_maya_export_path`)) {
   print "xrayMaya_export: plug-in not found\n";
  } else if (`pluginInfo -q -loaded xrayMaya_export`) {
   print "xrayMaya_export: already loaded\n";
  } else {
   loadPlugin xrayMaya_export;
   // убираем из автозагрузки во избежание конфликта
   pluginInfo -e -autoload false xrayMaya_export;
   print ((`pluginInfo -q -loaded xrayMaya_export`)
     ? "xrayMaya_export: loaded\n"
     : "xrayMaya_export: not loaded\n");
  }
}
print "XRay plug-ins: successfully loaded\n";
}
 

xr_object_export.mel
Переписанный ПЫСовский скрипт для множественного экспорта объектов. Для 2012 и выше.

global proc xr_object_export() {
if (size(`ls -sl`) == 0) {
  confirmDialog -title "Error"
     -message "Nothing selected!"
     -button "OK" -defaultButton "OK"
     -icon "warning";
  error "Nothing selected";
}
$response = `confirmDialog -title "Confirm action"
       -message "Are you sure to export all selected objects?"
       -button "Yes" -button "No" -defaultButton "Yes"
       -cancelButton "No" -dismissString "No"
       -icon "question"`;
if ($response == "Yes") {
  string $exported_objects[] = `ls -sl`;
  print ("Selected: \n");
  print $exported_objects;
  print "\n";
  print ("Export:\n");
  int $i = 0;
  string $export_dir[] = `fileDialog2 -caption "Export selection"
           -fileMode 3
           -okCaption "OK"
           -cancelCaption "Cancel"`;
  if ($export_dir[0] == "") {
   error "Export canceled\n";
  } else if ($export_dir[0] != "Cancel") {
   for ($i; $i < size($exported_objects); $i++) {
    select $exported_objects[$i];
    //polyTriangulate -name $exported_objects;
    string $name = $export_dir[0] + "/" + $exported_objects[$i];
    file -exportSelected -type "X-Ray object" $name;
    print ($name + ".object\n");
   }
  }
  print ("Summary: " + size($exported_objects) + " file(s) exported" + "\n");
  // FIXME: undo
} else if ($response == "No") {
  error "Export canceled\n";
}
}

AEXRayMtlTemplate.mel
О нем вы читали выше.


//AEXRayMtlTemplate.melglobal proc AEXRayMtlTemplate( string $nodeName ) {
AEswatchDisplay $nodeName;
editorTemplate -beginScrollLayout;editorTemplate -beginLayout "Common Material Attributes" -cl off;
  editorTemplate -addControl "color";
  editorTemplate -addControl "transparency";
  editorTemplate -addControl "incandescence";
editorTemplate -endLayout;editorTemplate -beginLayout "Hardware Texturing" -cl off;
AEhardwareTextureTemplate $nodeName
  ("color transparency incandescence");
editorTemplate -endLayout;editorTemplate -beginLayout "X-Ray Material Attributes" -cl off;
  editorTemplate -addControl "xrayDoubleSide";
  editorTemplate -addControl "xrayEngineShader";
  editorTemplate -addControl "xrayCompilerShader";
  editorTemplate -addControl "xrayGameMaterial";
editorTemplate -endLayout;editorTemplate -addExtraControls;
editorTemplate -endScrollLayout;
}
 

Поправленный скрипт Страховида - boolean и деформер полигональной поверхности (http://www.amk-team.ru/forum/index.php?showtopic=5422&p=734386)

global proc strah_deform_n_cut() {string $dfc_window = `window -title "Strahovid" -menuBar true`;menu -label "Edit";
  menuItem -label "Undo" -command "Undo";
  menuItem -label "Redo" -command "Redo";
columnLayout;menu -label "Help" -helpMenu true;
  menuItem -label "Discussion"
    -command "showHelp -absolute \"http:\/\/www.amk-team.ru\/forum\/index.php?showtopic=5422\""
    ;
columnLayout;scrollLayout scrollLayout;
  columnLayout -adjustableColumn true;
   frameLayout -label "Deform & cut tool" -borderStyle "in";
    columnLayout -adjustableColumn true;
     floatSliderGrp -label "Vertex offset X: "
         -field 1 -value 0.1 -min 0 -max 0.5 -step 0.01 X;
     floatSliderGrp -label "Vertex offset Y: "
         -field 1 -value 0.1 -min 0 -max 0.5 -step 0.01 Y;
     floatSliderGrp -label "Vertex offset Z: "
         -field 1 -value 0.1 -min 0 -max 0.5 -step 0.01 Z;
    setParent ..;    columnLayout -adjustableColumn true;
     button -w 174 -h 26 -label "Deform" -command "dfc_deform";
     button -w 174 -h 26 -label "Cut" -command "dfc_cut";
     button -w 174 -h 26 -label "Close" -command ("deleteUI -window " + $dfc_window);
    setParent ..;showWindow $dfc_window;
}//////////////////////////////////////////////////////////////////////////
proc dfc_deform() {
string $list[] = `ls -sl -fl`;
string $item;
float $mX = `floatSliderGrp -q -v X`;
float $mY = `floatSliderGrp -q -v Y`;
float $mZ = `floatSliderGrp -q -v Z`;
for($item in $list) {
  move -r (rand(-$mX,$mX)) (rand(-$mY,$mY)) (rand(-$mZ,$mZ)) $item;
}
}//////////////////////////////////////////////////////////////////////////
proc dfc_cut() {
string $o1[] = `ls -sl`;
string $ob1 = $o1[0];
string $ob2 = $o1[1];
string $o2[] = `duplicate $o1`;
string $o5[] = `duplicate $ob1`;
string $ob3 = $o2[0];
string $ob4 = $o2[1];
polyNormal $ob3;
string $rez1[] = `polyBoolOp -op 3 $ob1 $ob2`;
string $rez2[] = `polyBoolOp -op 3 $ob3 $ob4`;
xform -cp $rez1 $rez2 $o5;
select $o5;
}
 

xr_tools.mel
Меню для вызова вышеуказанных скриптов.



global proc xr_tools() {global string $gMainWindow;
setParent $gMainWindow;menu -l "X-Ray Tools" -p MayaWindow -tearOff true xr_tools;menuItem -label "Apply XRay settings"
   -annotation "Apply XRay settings"
   -command "xr_startup_scene_init"
   xr_startup_scene_init;menuItem -divider true;menuItem -label "Multiple export"
   -subMenu true
   -tearOff true
   ;menuItem -label "Export objects"
   -annotation "Export selected objects"
   -command "xr_object_export"
   xr_object_export;setParent -m ..;//////////////////////////////////////////////////////////////////////////
menuItem -label "XRay material..."
   -subMenu true
   -tearOff true
   ;
menuItem -divider true;////
// Удаление неиспользуемых Shading nodes. Сюда вынесено лишь для удобства.
//
menuItem -label "Delete unused shading nodes"
   -command "MLdeleteUnused"
   MLdeleteUnused;setParent -m ..;///////////////////////////////////////////////////////
menuItem -divider true;menuItem -label "About..."
   -subMenu true
   ;menuItem -label "Discussion"
   -command "showHelp -absolute \"http:\/\/www.amk-team.ru\/forum\/index.php?showtopic=5422\""
   ;   setParent -m ..;
}
 

userSetup.mel
Пользовательские установки. Здесь - подгрузка скриптов.



///
// Инициализация UI
//
evalDeferred -lowestPriority xr_tools;
///
// xr_startup_scene_init.mel выполняется каждый раз при создании новой сцены,
// в т.ч. сразу после загрузки Maya. Раскомментируйте, если нужно.
//
//scriptJob -event NewSceneOpened xr_startup_scene_init;
 

 

http://rusfolder.com/37228626

 

Ссылка на актуальную версию скрипта XrayToolMaya

 

В: Как правильно сообщать об ошибках?
О: 1) Сообщите версию Майи и  используемых плагинов.
2) Подробно опишите свои действия и цель этих действий.
3) Приведите лог из окна вывода (output window) и редактора скриптов (script editor).
4) В тяжелых случаях не помещает выложить сцену.
----
В: Пытаюсь экспортировать скелетную анимацию пысовским плагом, но он выдает ошибку:
XR-Error: Can't export animation with FPS!=30.f
XR-Error: Export failed.
О: В XRay принята частота 30 кадров в секунду. Измените настройки: http://images.gameru.net/image/direct/401a3efaa2.png

 

Изменено пользователем vadyan
  • Нравится 1
  • Полезно 1

Захоти тихо, проси мало, уходи быстро.

 

Заходи не бойся - уходя не плачь

Ссылка на комментарий

Да куда уж подробнее? 

В общем так. Раньше я тоже страдал этим способом и заметил, что кисть инструмента скульпт_геометри_тула имеет свои пределы по радиусу. Поэтому если делать террейн таким способом нужно увеличивать кол-во полигонов, чтобы кисть их "захватывала". Но это приведёт к тому, что меш получится слишком сложный. Вот поэтому я решил пользоваться скейл_тулом, попросту говоря ирать с размером самого меша, подстраивая его под скульпт. Ну а после всех манипуляций восстановить размеры меша открыв ченл_бокс и вписАть в поля скейла по осям единицы.

 

-------------------------------------

P.S.: Рекомендую обратить внимание на вот этот пост  http://www.amk-team.ru/forum/index.php?showtopic=5422&p=774036

Под спойлером ссылка на оригинальную тему. Удачи.

Изменено пользователем Страховид

Обещаю, что никого в ответ минусить не стану) Чмоки)))

Ссылка на комментарий

@vadyan,  посмотрел скрипт, оформлено красиво, но как пользоваться совершенно не догнал, особенно материал_тул загнал в тупик. В чём преимущества перед обычным способом назначсения материала и прочего? Напиши описание команд.

И по отер_тулзам тоже не плохо было бы описание.

Обещаю, что никого в ответ минусить не стану) Чмоки)))

Ссылка на комментарий

Народ еще вопрос, какой материал преминять к no sun моделе (защищает террайн от просветов солнечного света)

 

Создаю в ручную подгоняю куб к террайну хотя думаю что есть способ полегче, правда он нигде не написан...

Ссылка на комментарий

Описание скрипта :

 

Export static meshes - переписаный пысовский скрипт для массового экспорта статических моделей.


Load Xrey plugin - загрузка плагина Xrey.
Apply scene setting - применение настроек камер (отчечки), настройка сетки, кадров анимации 30 fps.

 

 

1 - (Update name material) обновляет имя выделеного обьекта в поле SHAPE.

2 - (Assign material to shape) Назначает материал на выделеные обьекты (полигоны) исходя из того что было выбрано выше в меню.
Описание пунктов :

Не выделено ни MATERIAL НИ SHAPE - назначается материал с именем что было в поле MATERIAL, имя шейпа (обьекта)переименовываетсяв то что было в поле SHAPE.

Выделен пункт MATERIAL , не выделен SHAPE - назначается материал с именем что было в поле SHAPE, обьект переименовывается так же.

Выделен пункт MATERIAL, SHAPE - создается материал из названия обьекта. Имя обьекта не изменяется.

Выделен пункт SHAPE, не выделен MATERIAL - создается материал из названия того что было в поле MATERIAL (единственный варант когда можно выделять полигоны и назначать на них сразу материал с определённым именем), удобно при создании новых обьектов и назначении материалов, дабы не запутаться в названиях.
Допустим моделируем дом с комнатами, выделили полигоны потолка, в поле MATERIAL пропиали название potolok , автоматически будет создан матриал с таим именем и назначен на выбранные полигоны, как бы проще потом назначать текстуры если материалы уже прописаны по названиям.

После назначения текстур желательно выполнить скрипт обьеденения материалов (5 пункт), он так же переименовывает материалы по назначеным текстурам. В сдк проще будет настраивать. Он так же переименовывает шейдер группы.

3 - create nodes material - создает доп ноды для материала что бы нормально было видно текстуру (если честно хз зачем оно нужно, и так нормально, перенёс в пак так как есть в шапке этот скрипт, у меня так и на заработал, вернее разныцы не увидел что сним что без, кто отипишет с подробностями буду благодарен).

4 - Delete unused nodes - удалаяет неиспользуемые в сцене ноды материалов (текстуры, шейдера и тд тп что относится к материалам.)

5 - Assign duble shading nodes - новый скрипт который проверяет текстуры и при наличии одинаковых обьеденяет в один (допустим импортировали в майку целую локацию, при разборке локации было создано очень много обьектов, сотни а то и более, при импортировании обьектов в них попадается много одинаковых материалов, текстур) дабы не настраивать это огромное количество и не тратить кучу времени на обьеденение материалов в один, скрипт как раз и обьеденяет их по текстуре.
ПС терраин и другие обьекты (модели нпс и тп) в которых используются разные материалы но одинаковая текстура нужно сохранять заранее.

 

 

TOOLS BY STRAHOVID - деформер и "резчик" (булеан) от Страховид.

Random UV TOOLBOX - рандомное назначение UV координат для разных обьектов, может быть применено при редактировании UV обьектов типо листься дерева, крипичи, и прочие текстуры с тайлингом.

XRAY transparancy - делает выделный обьект(ы) полупрозрачными.

FBPolyPlanarize - описание вот тут http://www.creativecrash.com/maya/script/fbpolyplanarize , относително полезная тулза.

Lattice tool - описание тут - http://www.creativecrash.com/maya/script/lattice-tool--2 , видео работы скрипта там же прилагается.

 

Изменено пользователем vadyan
  • Нравится 1
Ссылка на комментарий

Народ еще вопрос, какой материал преминять к no sun моделе (защищает террайн от просветов солнечного света)

 

Создаю в ручную подгоняю куб к террайну хотя думаю что есть способ полегче, правда он нигде не написан...

Стандартный.

Выдавить ребра по краю террейна, подрезать, оптимизировать.

Ссылка на комментарий

Подправил скрипт, переписал экпорт моделей и загрузку плагинов, адаптировал к старым версиям, проверял на 2010 и 2014 версиях, все функции нормально работают на версиях 2012-2014.

Скрин 2014.

Скрин 2010.

Скачать.

Вызывается так же как предыдущая версия. Описание скриптов тут.

Изменено пользователем vadyan
  • Нравится 3
Ссылка на комментарий

vadyan, отличный сборник скриптов, удобно всё сделано! Тестировал у себя на 2012 майке, всё работает кроме двух скриптов, первый особенно позарез как нужен.

Assign duble shading nodes - при нажатии на кнопку, выскакивает ошибка:

// Error: Cannot find procedure "stringArrayFind". //

Lattice tool - также ошибка при нажатии

// Error: Cannot find procedure "mainProc". //

Не подскажешь вчём причина ошибки?

Изменено пользователем VEX
Cоветы,по какому либо делу стоит давать только тогда, когда умеешь делать это дело лучше того, кого пытаешься наставлять.
Ссылка на комментарий

Попробуй убрать свои скрипты если есть таковые это для начала, по второй ошибке создай новую сцену и проверь еще раз, возможно на работу скрипта влияет история работы с обьектом (скрипт то не мой, я его прост добавил в пак), вариант второй (наверняка) загрузи скрипт в скрипт эдитор и выполни, возможно из за того что вызывается извне как бы где то что то пропустил по вызовам скриптов.

 

Если второй вариант проканает нормально то весь скрипт вынеси в панель вверху. Надеюсь знаеш как )

 

 

Поставил на вирт машину maya 2012 спец что бы проверить работоспособность - описанных выше ошибок нет, ВСЁ работает !

Проверяй у себя что там настроено или криво стало.

 

Обьедените с пред постом плиз.

Изменено пользователем Cyclone
Ссылка на комментарий

,  лови http://yadi.sk/d/uHbBoxTh8MIb5

Надеюсь, знаешь как устанавливать.

Обещаю, что никого в ответ минусить не стану) Чмоки)))

Ссылка на комментарий

dok Ну если только кто-то для себя лично компилил

 

Чуть грамотнее, пожалуйста.

ColR_iT

Изменено пользователем ColR_iT
Ссылка на комментарий

Доброго времени суток. Интересует вопрос анимирования оружия в Maya. Как подготавливать модель к анимированию и сам процесс. По теме полазил но не встретилось ничего :(

Ссылка на комментарий

Туториал который бы охватывал все пункты не существует, там от теории до анимации.

Вот пара каналов с ютуб. Часть охватывает часть нет.

Так как работаю я в мая то и туторы по ней, по макс вроде и так навалом. Гугл тебе всё найдет ).

http://www.youtube.com/user/dadudda#g/p

Изменено пользователем vadyan
Ссылка на комментарий

Подскажите пожалуйста, как включить функцию, чтобы анимация было выбрала только на одной кости, а не на всех? А то я хочу удалить кадр одной кости, а удаляются все. В милке эта функция называется Operate on selected joints Only. А в майе не могу найти...

GiVcHiK.gif

 

 

Ссылка на комментарий

Подскажите, как в Майке выбрать несколько объектов, полигонов не по одному материалу а по нескольким? Если в ней это возможно...

Выделяю в Hypershade несколько нужных материалов -> Select Objects in initial ShadingGroup, выделяется только один, на котором был курсор мыши...

h-264.jpg

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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