Render.ru

Локальные и сетевые пути к скриптам.

Рейтинг
137
#1
Ребята, привет. Есть переменная среды MAYA_APP_DIR, которая указывает майе, где ей брать префы. Кастомная папка. Там есть файл Maya.env, в котором по идее правильно описаны пути, где майе смотреть скрипты, которые лежат где-нибудь еще, кроме как в кастомных префах. Пишу:
MAYA_SCRIPT_PATH = //server-3d/Project/lib/setup/maya/maya_scripts_rfm4;

Окей, но тогда мои скрипты не грузятся нифига. Даже так:
MAYA_SCRIPT_PATH = //server-3d/Project/lib/setup/maya/maya_scripts_rfm4;$MAYA_APP_DIR/scripts;$MAYA_APP_DIR/2013-x64/scripts

Как ни крутил, ни вертел, мои скрипты грузятся только тогда, когда нет сетевого пути или вообще нет этой строчки.

Вопрос: помогите пожалуйста сказать майе, чтобы она подгружала как скрипты из моей кастомной папки, где лежат префы со скриптами, так и вот эти дополнительные сетевые скрипты.

Я уже и так, и сяк и наперекосяк делал, ну не хочет она подгружать мне и то, и то. :-(
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#2
getenv "MAYA_SCRIPT_PATH" выводит новые пути? Если да, то, возможно, ошибка в скрипте или они вместе несовместимы.
 
Рейтинг
137
#6
Так называется сервер, ничего не поделаешь. И повторюсь: скрипты с сервера работают. И мои скрипты работают, если убрать строчку MAYA_SCRIPT_PATH вообще. Но вместе они работать отказываются. Если прописать все вместе, то грузятся только серверные скрипты. Значит дело не в путях, получается?
 
Рейтинг
137
#7
Вот попробовал еще перенести сетевые скрипты себе на машину и написал:
MAYA_SCRIPT_PATH = $MAYA_APP_DIR/scripts;$MAYA_APP_DIR/2013-x64/scripts;$MAYA_APP_DIR/2013-x64/scripts_Work

Таким образом не грузится вообще ничего. Если прописать:
MAYA_SCRIPT_PATH = $MAYA_APP_DIR/2013-x64/scripts_Work
то рабочие скрипты грузятся.

Если прописать:
MAYA_SCRIPT_PATH = $MAYA_APP_DIR/scripts;$MAYA_APP_DIR/2013-x64/scripts
то мои скрипты не грузятся.

Сейчас убрал строчку вообще и не загрузилось ничего. У меня фрустрация.

По запросу выдается такой список:
Код:
getenv "MAYA_SCRIPT_PATH";
// Result: //server-3d/Project/default/scripts;
//server-3d/Project/lib/setup/maya/maya_scripts_rfm4;
D:/Dropbox/MayaFolder/MayaPrefs/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/2013-x64/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/2013-x64/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/2013-x64/presets;
D:/Dropbox/MayaFolder/MayaPrefs/2013-x64/prefs/shelves;
D:/Dropbox/MayaFolder/MayaPrefs/2013-x64/prefs/markingMenus;
D:/Dropbox/MayaFolder/MayaPrefs/2013-x64/prefs/scripts;
C:/Program Files/Autodesk/Maya2013/scripts;
C:/Program Files/Autodesk/Maya2013/scripts/startup;
C:/Program Files/Autodesk/Maya2013/scripts/others;
C:/Program Files/Autodesk/Maya2013/scripts/AETemplates;
C:/Program Files/Autodesk/Maya2013/scripts/unsupported;
C:/Program Files/Autodesk/Maya2013/scripts/paintEffects;
C:/Program Files/Autodesk/Maya2013/scripts/fluidEffects;
C:/Program Files/Autodesk/Maya2013/scripts/hair;
C:/Program Files/Autodesk/Maya2013/scripts/cloth;
C:/Program Files/Autodesk/Maya2013/scripts/live;
C:/Program Files/Autodesk/Maya2013/scripts/fur;
C:/Program Files/Autodesk/Maya2013/scripts/muscle;
C:/Program Files/Autodesk/Maya2013/scripts/FBX;
C:/Program Files/Autodesk/Maya2013/scripts/mayaHIK;
D:/Dropbox/MayaFolder/MayaPrefs/addons/CPS/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/JS_Multilayers_v1.0/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/JS_Normalmapper_1.2.2/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/MentalCore2013/scripts;
C:/Program Files (x86)/dRaster/NEX/2013-x64/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/NinjaDojo_GrandMaster_v5.3/scripts;
C:/Program Files/Pixar/RenderManStudio-4.0-maya2013/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/MayaBonusTools2013/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/feTools_2013_x64/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/HoudiniHotOceanToolkit_2013/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/iDisplace_v0.5.0/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/LightStorm3D_Scripts/lsCreateTube_2.000/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/LightStorm3D_Scripts/lsCreateWire_2.000/scripts;
C:/Program Files/Autodesk/Maya2013/mentalray/scripts/AETemplates;
C:/Program Files/Autodesk/Maya2013/mentalray/scripts/mentalray;
C:/Program Files/Autodesk/Maya2013/mentalray/scripts/unsupported;
C:/Program Files/Autodesk/Maya2013/mentalray/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/mix8layer/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/shaderMonger_v2.0/scripts;
C:/Program Files/JoeAlter/shaveHaircut/maya2013/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/spPaint3d_2011.1/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/uvlayout_Bridge_v2.08/scripts;
D:/Dropbox/MayaFolder/MayaPrefs/addons/wizControllers_v1.0.0/scripts //
Делаю вывод, что символов, препятствующих исполнению скриптов нет, т.к. по сети скрипты работают на "ура". Сейчас удалил рабочие скрипты со своей машины, т.к. надо будет докопаться, почему они не запускаются вместе и почему сейчас не запустились мои скрипты, когда я удалил строчку вообще.
 

Leontij

Пользователь сайта
Рейтинг
4
#8
По совету одного умного человека я maya.env сделал пустым (т.е. размером 0 байт), а майку запускаю через bat-файл, в котором все нужные переменные среды (MAYA_PLUG_IN_PATH, MAYA_SCRIPT_PATH, PYTHONPATH и прочая-прочая) смотрят на сервер. Это позволило создать единый легко управляемый майский environment для любого компа на студии.

Ваш батник может быть таким:
set MAYA_APP_DIR=//server-3d/Project/lib/setup/maya/maya_scripts_rfm4
set MAYA_SCRIPT_PATH=%MAYA_APP_DIR%/scripts;%MAYA_APP_DIR%/2013-x64/scripts
start maya.exe

Кстати, совсем не удивлюсь, если "server-3d" -- таки плохое имя. Надо проверять.

Хотя у нас на студии спокойно работают плагины, в пути к которым есть папки и с "-", и с цифрами и с точками... Но плагины -- не скрипты. В путях к которым цифры есть, а минусов-точек нет...
 

Puppet

Активный участник
Рейтинг
19
#9
Какая у вас ОС?
Вы смешали синтаксис Unix и Windows систем.

Если у вас Linux или Mac, то должно быть как то так:
MAYA_SCRIPT_PATH = $MAYA_SCRIPT_PATH://server-3d/Project/lib/setup/maya/maya_scripts_rfm4

Если Windows, то так:
MAYA_SCRIPT_PATH = %MAYA_SCRIPT_PATH%;\\server-3d\Project\lib\setup\maya\maya_scripts_rfm4
 
Рейтинг
137
#10
Спасибо, но проблема решилась тем, что нужно было в maya.env в переменной MAYA_SCRIPT_PATH сначала прописать путь к локальным скриптам, которые лежат в папке 2013(2014) майи, а потом уже указывать путь к серваку. Таким образом, майя после инициализации общего файла userSetup.mel сначала ищет файл userSetup.mel, который лежит в локальной папке 2013(2014) майи (а значит и выполняет скрипты, которые там прописаны). В противном случае она сразу шла на сервак и выполняла сервачный userSetup.mel, в котором моих скриптов, конечно же, не было.
 

Puppet

Активный участник
Рейтинг
19
#11
Ну в моем варианте как раз так и есть. Берется стандартная переменная (все что по дефолту в мае прописано) и к ней добавляется ваш путь.
Не тестил, но должно работать. Сам я тоже батниками пользуюсь
 

Leontij

Пользователь сайта
Рейтинг
4
#12
Уважаемый Puppet

Вы правы: я действительно перепутал синтаксис: батник написан под Windows, а путь, откуда я copy-paste-ом взял path, был из maya.env... В моем батнике все правильно.
 

Puppet

Активный участник
Рейтинг
19
#13
У вас на первый взгляд все правильно. Я же адресовал свое сообщение про синтаксис топик стартеру.
 

Leontij

Пользователь сайта
Рейтинг
4
#14
Уважаемый Puppet

bat-файл все-таки требует backslashes: так что и я ошибся...
 
Рейтинг
47
#16
Господа, а можно ли как-то в Bat или maya.env файле, переменным задавать папку так, что бы учитывались все вложенные в нее папки?
То есть, пишем в Бат файле:
set MAYA_SCRIPT_PATH=*\*\*\*\2013-x64\scripts\и тут пару технических символов
И в папке scripts, создаем еще несколько myScripts, otherScripts, oldScripts. Что бы не приходилось в Батнике вписывать все эти пути в строчку, через точку с запятой, присваивая их MAYA_SCRIPT_PATH.
Есть ли такая возможность?
 

Лексей

Активный участник
Рейтинг
8
#17
Я так и не нашел такой возможности. Приходится через точку с запятой.

Если окажется, что можно, дайте знать, самому интересно.
 
Сверху