Опрос

Что такое, по вашему мнению, «демократия»?













Размещение

15.01.2010 11:44 Администратор
Печать PDF
Рейтинг пользователей: / 0
ХудшийЛучший 

Если вы единственный, кто будет пользоваться созданными вами сценариями, оставьте их в своем локальном каталоге scripts, и этого будет вполне достаточно. Если же вам нужно сделать сценарии доступными большому числу пользователей, вы должны выбрать схему их размещения. Следующие правила описывают один из способов размещения сценариев с целью доступа к ним широкой аудитории. В зависимости от обстоятельств, вам может понадобиться и другой метод. 1. Если работа ведется в производственной среде, где каждый пользователь может обращаться к центральному серверу, задача размещения существенно упрощается. Просто создайте на сервере совместно используемый каталог, например: \\se rver\mayaScripts В этом примере используется формат, соответствующий универсальному коду имен UNC (Universal Naming Code). Вы же будете пользоваться тем форматом пути, которого требует ваша сетевая система. Если у вас нет центрального сервера, а вместо этого каждый пользователь имеет свою собственную локальную машину, создайте на каждой машине каталог, например: c:\mayaScripts Вне зависимости от того, находится ли этот каталог на сервере или локальном жестком диске, будем обозначать его как катаяаг_а.1енариев. 1. Скопируйте готовые файлы сценариев MEL в каталог_сиенариев 3. На каждой из машин пользователей установите переменную окружения с именем MAYA_SCRIPTS_PATH и включите в нее путь к каталогу, где расположены сценарии. set MAYA_SCRIPTS_PATH=$MAYA_SCRIPTS_PATH; катапог_сщэнариев Также вы можете обновить пользовательский файл iriaya. env, чтобы он содержал установку переменной окружения. MAYA_SCRIPTS_PATH=$MAYA_SCRIPTS_PATH; каталог_сценар^Объекты Чаще всего MEL служит для создания и редактирования объектов. В этом разделе будет описан широкий спектр команд, предназначенных для работы сними. Как упоминалось ранее, все объекты Maya - это, на самом деле, узлы графа Dependency Graph, поэтому в процесс создания и использования объектов в действительности входит создание и использование узлов. К счастью, чтобы пользоваться объектом или узлом, вы не обязаны знать всех деталей его реализации. Существует огромное количество команд MEL, которые разработаны специально для обращения к объектам и не требуют знания особенностей их функционирования. Некоторые команды к тому же могут работать с множеством различных объектов. 3.4.1. ОСНОВЫ Рассмотрим основы создания объектов и манипулирования ими при помощи MEL. 1. Откройте сцену Primitives. ma. Сцена состоит из трех NURBS-примитивов: конуса, сферы и цилиндра. Получение полного списка объектов в составе сцены - очень распространенная операция. 2. Откройте редактор Script Editor. 3. Выполните следующую команду: Is; На экран будет выведен полный перечень объектов сцены. // Result: timel renderPartition renderGlobalsListl defaultLight ... Для получения списка, содержащего только формы-поверхности, выполните следующую команду: Is - type surfaceShape Результат таков: // Result: nurbsConeShapel nurbsCylinderShapel nurbsSphereShapel // Нередко вам будет нужен список текущих выделенных объектов. 4. Выделите объект nurbsConel. 5. Выполните следующую команду: Is - selection; Результат имеет вид: // Result: nurbsConel // Чтобы удалить объект, воспользуйтесь командой delete. 6. Выполните следующую команду: delete nurbsConel; Другой способ удаления текущего выделенного объекта - просто применить команду delete без аргументов. Для переименования объекта служит команда rename. 7. Выполните следующую команду: rename nurbsSpherel ball; Объект nurbsSpherel переименован в ball. Чтобы определить, существует ли объект с данным именем, воспользуйтесь командой obj Exists. 8. Выполните следующую команду: if( 'objExists ball' ) print( "ball does exist");//"Объект ball действительно существуетКаждый объект имеет конкретный тип. Для выяснения типа объекта создана команда object. Type. 9. Выполните следующую команду: objectType ball; Объект ball имеет тип transform. Это значит, что он представляет собой transform-узел. Сценарий listAll Этот сценарий иллюстрирует прием организации цикла по всем объектам сцены и выводит на экран имена, а также типы объектов. proc listAHO { print( " Nodes..." ); // "Узлы...string $nodes[] = 'Is'; for( $node in $nodes ) string SnodeType = 'objectType $node'; print (" Node: " +• $node + " (" + SnodeType + ")"); } listAHO; Сначала описана процедура listAll(). Она не принимает никаких параметров и не имеет возвращаемого значения. proc listAllO Вслед за выводом с новой строки экрана текста Nodes.. . следующим шагом является получение полного списка узлов сцены. Результат команды Is сохраняется в массиве $nodes. Обратите внимание на необходимость заключения команды Is в одинарные обратные кавычки f ) для получения возвращаемого значения, string $nodes[] = 'Is'; Далее организуется цикл по всем элементам списка. for( $node in $nodes ) { Тип каждого узла определяется с использованием команды objectType. Результат сохраняется в переменной $nodeType. string SnodeType = 'objectType $node'; Наконец, информация об узле выводится на экран. Она представляет собой результат сцепления ряда строк-литералов, а также ранее сохраненных переменных строкового типа. Перед вызовом команды print очень важно поместить все выражение в круглые скобки, print (" Node: " + $node + " С" +• $nodeType + ")"); Если'открыта сцена Primitives. та, то во время своего запуска сценарий выводит следующую информацию: Nodes... Node; time"! (time) Node: renderPartition (partition) Node: renderGlobalsListl (renderGlobalsList) Node: defaultLightListl (defaultLightList) Node: defaultShaderList"! (defaultShaderList) Node: postProcessListl (postProcessList) Node: defaultRenderUtilityListl (defaultRenderUtilityList) Node: lightListl (lightList) Node: defaultTexturelist! (defaultTextureList) Node: lambert"! (lambert) ... продолжение

Добавить комментарий


Защитный код
Обновить

Поиск

В закладку

 
 

Авторизация



Погода