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

Моделирование в 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

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

 

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

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

Да. Такая функция есть, но она завязана на скрипты в майе. Как сие проделать сам до конца не понял. Есть корявые наброски. Вся соль в том что в майе идет контролируемый полигонаж по интенсивности цвета. Для меня эт пока из разряда высшего пилотажа.

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

 

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

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

Мужики, подскажите плиз, файлы анимации omf можно как-то править?

В ридми конвертера бардака, написано, как из omf в skl/skls конвертнуть.,

Но макс не понимает этот формат...

Подскажите, как быть в данной ситуации...

Жизнью в России довольны две категории людей: те, кто не в курсе и те, кто в доле.
Ссылка на комментарий

Если перед началом работы в майе, настройки нового проекта не были сохранены, то единицы измерения будут слетать на дефолтные. (кроме единиц uv-координат)

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

 

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

Ссылка на комментарий
В майке 8.5 они сразу открываются.

Потом перекидывать в макс.

Это конечно очень удобно, но у меня щас нет возможности скачать майю...

Есть другой вариант?

Или может кто-то сможет конвертнуть omf-файлы через майку, (для дальнейшего импорта в мах) и выложить одним архивом?

Был бы очень признателен... :)

Жизнью в России довольны две категории людей: те, кто не в курсе и те, кто в доле.
Ссылка на комментарий
2: Импортируем бутылку водки для того чтобы иметь представление о масштабе

:blink: Зачем так сложно-то? :)

Идем в меню Customize->Units Setup... и там устанавливаем Display и System Units как Metric

0f7d155e5fbat.jpg

Все, теперь создаваемые объекты будут в реальных размерах. Также можно настроить сетку Customize->Grid & Snap Settings->Home Grid

3d4d67d7546et.jpg

Где:

Grid Spacing - Шаг сетки

Major Lines every Nth Grid Line - Кол-во делений между "основными" линиями (имеют другой цвет чтоб проще считать было :) )

Invalid face found. Removed.

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

Ну это конечно правильный вариант :) Но абстрактные вещи лично мне удобнее моим способом делать.

 

ЗЫ: Можно твой пост в шапку закинуть?

ЗЫЫ: Если ещё советы есть, буду рад выслушать.

fb7cc3b532fce476a6e240310ebdb5fa.jpg

 

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

Я импортировал в Майю ogf-модель. Нужно было подогнать по месту кое-что. Теперь вот надо обратно экспортироватьв СДК, чтобы уже эта модель стояла там, где надо. Как это сделать? Что нужно выбирать из этого:

 

http://i071.radikal.ru/0903/9d/f894db689a5c.jpg

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

у тебя что за огф была? , в огф обычно есть кости, эсли кости были, то импортируй обратно как скин обжэкт(если ты нормально кожу обратно приделал), если была цель избавится от костей, то как простой обжект. Трудно сказать не зная о чем идёт речь.

СВОБОДА - АНАРХИЯ

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

Это дверь. Я импортировал ее в Майю. Чтобы сделать проем под дверь точный. Потом подумал, что если экспортировать ее обратно в СДК, то тогда при постановке ее на уровень, она встанет уже точно на место. Вопрос в том, что надо сделать, чтобы экспортировать эту дверь обратно и сохранить все свойства открываемой двери.

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

Не совсем. Огф модели, как правило, идут в спавн секции сдк. так что, в любом разе в сдк придется со спавном поковыряться

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

 

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

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

Подскажите пожалуйста, как в Maya наложить текстуру на отдельные face? Т.е. имеется отдельный объект - дорога, но она одновременно является частью обоих терреинов. Как мне отдельно её закрасить в цвет асфальта?

Ушёл за периметр....

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

Boooz,

Что значит "частью обоих террейнов"? Террейн на уровне должен быть один. Дорога может быть частью террейна. Для того, чтобы присвоить дороге нужный материал. Надо выделить полигоны дороги и присвоить им необходимое. Ты прочитай статьи об этом. Ведь в шапке темы это есть.

Кто весел - тот смеется, кто хочет - тот добьется, кто ищет - тот всегда найдет!

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

Да я выражаюсь образно.

Терреинами на конкретной сцене я называю части, окружающие дорогу. Ну да ладно, пост удалить можно - легче заново сделать.

Ушёл за периметр....

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

Boooz,

 

Не красить, а накладывать материал с текстурой. Если террейн собран в один меш, то ручками выделяем фэйсы и накладываем нужное.

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

 

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

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

Если все склеенно в один меш, то выделяя фейсы, накладываем материалы, так? То тогда потом когда будем накладывать срендеренную текстуру, и если она криво встанет, то что тогда? В "Дополнение к статье" описан пример выравнивания текстуры по полигонам, а как поступить в нашем случае?

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

andrei636,

Ровно так же как в статье. просто когда накладываем материал с срендеренной текстурой, все мелкие детали оставляем на последок. Начинать нужно с самого большого элемента. ч\б подогнать границы

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

 

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

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

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

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

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

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

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

Войти

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

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

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