MEL or Python?, Какой язык выбрать? |
Home· Статьи · Вакансии · Чертежи · 3D Галерея · 2D Галерея · Форум · Форум Realtime | Реклама |  Конкурсы | RAR Award | Правила |
Здравствуйте, гость ( Вход | Регистрация )
MEL or Python?, Какой язык выбрать? |
26/04/2013, 22:14
Сообщение
#1
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
Здравствуйте, подскажите какой язык лучше начать осваивать, мел или питон? решил начать разбираться в скриптенге, и думаю с чего будет лучше начать, если кто знает ссылочку на полезную статью буду благодарен.
Сообщение отредактировал Light_Dip - 26/04/2013, 22:16 |
|
|
26/04/2013, 22:55
Сообщение
#2
|
|
Эксперт Группа: Пользователи Сообщений: 589 Регистрация: 05/07/2011 Пользователь №: 84 310 |
Сначала MEL потом Пайтон.
Есть уроки у гномонов по Мелу и несколько книг по мелу\пайтону, достаточно в гугле вбить. |
|
|
27/04/2013, 08:13
Сообщение
#3
|
|
Мастер Группа: Пользователи Сообщений: 1 070 Регистрация: 17/04/2007 Из: отТуда Пользователь №: 47 967 |
Советую не обращать внимание на мел вообще и сразу курить питон - время сэкономите.
Нужность мела вообще нынче сомнительна. |
|
|
27/04/2013, 10:31
Сообщение
#4
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
Сначала MEL потом Пайтон. Есть уроки у гномонов по Мелу и несколько книг по мелу\пайтону, достаточно в гугле вбить. Я конечно понимаю англ, но с кодом и так для меня тяжело, лучше бы с начала на русише, нашел вот такую книгу, вроде все подробно написано Дэвид А.Д. Гоулд Maya Полное руководство по программированию Советую не обращать внимание на мел вообще и сразу курить питон - время сэкономите. Нужность мела вообще нынче сомнительна. Можно немного подробней? в чем преимущества, может для общего понимания стоит хоть ознакомиться с мел? я так понял что мел проще в освоении? так же заметил что много удобных и полезных плагов написано именно на питоне. |
|
|
27/04/2013, 11:17
Сообщение
#5
|
|
Мастер Группа: Пользователи Сообщений: 1 070 Регистрация: 17/04/2007 Из: отТуда Пользователь №: 47 967 |
МЕЛ был когдато актуален.
Сейчас преимущества на стороне питона. Некоторые из них: 1. Скорость исполнения. 2. Удобство чтения текста ( ИМХО ) 3. ООП и все вытекающие 4. Доступ к АПИ 5. PyQt\PySide для нормальной работы с UI 6. Ну и как обычно батарейки. Это означает что питон идет с библиотекой для решения проблем разного рода. 7... ПС. Нарисовать узел мелом не получится ) Сообщение отредактировал VUX - 27/04/2013, 11:23 |
|
|
27/04/2013, 11:30
Сообщение
#6
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
МЕЛ был когдато актуален. Сейчас преимущества на стороне питона. Некоторые из них: 1. Скорость исполнения. 2. Удобство чтения текста ( ИМХО ) 3. ООП и все вытекающие 4. Доступ к АПИ 5. PyQt\PySide для нормальной работы с UI 6. Ну и как обычно батарейки. Это означает что питон идет с библиотекой для решения проблем разного рода. 7... ПС. Нарисовать узел мелом не получится ) С чего лучше начать? как я понял есть разные версии питона. |
|
|
27/04/2013, 11:43
Сообщение
#7
|
|
Мастер Группа: Пользователи Сообщений: 1 070 Регистрация: 17/04/2007 Из: отТуда Пользователь №: 47 967 |
в мае питон один - сейчас в 2014 - 2.7-версия - но это не важно.
Поищите в сети куча книг. Какую лучше я не знаю - больше методом тыка и форумами обходился. Сообщение отредактировал VUX - 27/04/2013, 11:43 |
|
|
27/04/2013, 12:16
Сообщение
#8
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
в мае питон один - сейчас в 2014 - 2.7-версия - но это не важно. Поищите в сети куча книг. Какую лучше я не знаю - больше методом тыка и форумами обходился. А как можно посмотреть выполнения кода, например как в мае мел в скрипт едиторе? есть такая возможность? было бы намного проще понимать что происходит. |
|
|
27/04/2013, 12:34
Сообщение
#9
|
|
Мастер Группа: Пользователи Сообщений: 1 472 Регистрация: 10/01/2006 Пользователь №: 20 894 |
QUOTE С чего лучше начать? как я понял есть разные версии питона. всмысле разные версии? Глобально есть питон 2.ххх и питон 3.ххх, которые немного различаются синтаксисом. Тот что встроен в маю соответствует 2,ххх (не помню уже точно, в доке можно глянуть какая именно версия.) т.е какие, скажем так питоны есть в самой мае 1. Скриптовый питон - тот который у тебя в скрипт эдиторе. Это по сути тот же МЕЛ но с питоновским синтаксисом (хотя конечно никто не запрещает тут при желании пользоваться питоновскими преимуществами которые даёт ООП). Если зайдёшь в хелп то там есть 2 доки - список команд мела и список команд питона - там практически все команды идентичны, а так же совпадают их аргументы. Т.е. если ты видишь в чъём то мел скрипте команду pointPosition с каким то списком аргументов, то с 99,9999% вероятностью ты сможешь в питоне вызвать ту же команду с тем же именем и с тем же списком аттрибутов, но с поправкой на питоновский синтаксис: мел: pointPosition -w python: pointPosition(w=True) 2. pyMel - недавно его встроили в коробку - это тоже "питон для скриптов" но заточенный под полноценное использование ООП. Разработан студией Luma http://www.luma-pictures.com/tools/pymel/docs/1.0/index.html Крутая тема, которая позволяет писать ещё более компактный код но требует понимания ООП 3. PyQT/PySide - питоносвкое апи для Qt интерфейса, более мммм.. низкоуровневое по сравнению с стандартными командами типа window, button etc. требует знания ООП и Qt. В маю (по крайней мере в 2013) не встроен, надо ставить отдельно. Автодески не могут определиться какую из реализаций положить в коробку 4. Python API - это уже область применения питона для написания плагинов. По сути питоновское апи это по большому счёту враппер для C++ апи поэтому если сильно не вдаваться в вичисления на питоне а пользоваться теми классами, которые даёт мая то плагины могут получаться не особо медленнее чем на C++ но зато они будут легко переносится между версиями и платформами без перекомпиляции. МЕЛ. Мел полюбому надо хотябы на базовом уровне освоить если собираешься что то писать под маю. Хотя питоне с какойто недавней версии полностью дублирует меловские уоманды, всё равно есть несколько объективных причин: 1. АДОВОЕ количество скриптов уже написанных на мел - насто не надо писать с нуля а достаточно допилить или перепилить чеёто готовый скрипт. 2. Мая не везде даёт писать на питоне непосредственно, это например хоткеи, маркинг меню, просто меню, контекстрые меню на полке и самое главное - экспрешены. Там везде подразумевается только мел, но на питоне тоже можно писать, но каждую строку питоновского кода прийдётся вызывать меловской командой python. Какието простые вещи проще написать сразу на мел. 3. Иногда питоновский синтаксис преподносит сюрпризы если на нём писать стандартные интерфейсы (окошки с кнопочками). Например надо чтобы при нажатии кнопки выполнилось несколько действий - считать информацию из текстового поля потом выполнить несколько комманд с использованием этой информации. Команду надо передать в виде строки и при этом правильно соблюсти питоновский синтаксис, требующий переносов строк и отступов. А в мел можно хоть весь скрипт написать в одну строку просто разделяя всё символом ";". 4. Фидбэк мая выдаёт тоже исключительно в виде мела, так что тоже жалетельно его знать чтобы понимать что она там пишет. 5. По мелу есть книжка Гоулда в которой всё расписано на очень доступном уровне (и вроде как есть русская версия). Всё что там описывается в плане майской специфики с лёгкостью переносится на питон. а по питону достаточно в гугле вбить чтонибуть типа обучение python, книга по python и т.д. Сообщение отредактировал witcher - 27/04/2013, 12:38 |
|
|
27/04/2013, 13:18
Сообщение
#10
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
Цитата С чего лучше начать? как я понял есть разные версии питона. всмысле разные версии? Глобально есть питон 2.ххх и питон 3.ххх, которые немного различаются синтаксисом. Тот что встроен в маю соответствует 2,ххх (не помню уже точно, в доке можно глянуть какая именно версия.) т.е какие, скажем так питоны есть в самой мае 1. Скриптовый питон - тот который у тебя в скрипт эдиторе. Это по сути тот же МЕЛ но с питоновским синтаксисом (хотя конечно никто не запрещает тут при желании пользоваться питоновскими преимуществами которые даёт ООП). Если зайдёшь в хелп то там есть 2 доки - список команд мела и список команд питона - там практически все команды идентичны, а так же совпадают их аргументы. Т.е. если ты видишь в чъём то мел скрипте команду pointPosition с каким то списком аргументов, то с 99,9999% вероятностью ты сможешь в питоне вызвать ту же команду с тем же именем и с тем же списком аттрибутов, но с поправкой на питоновский синтаксис: мел: pointPosition -w python: pointPosition(w=True) 2. pyMel - недавно его встроили в коробку - это тоже "питон для скриптов" но заточенный под полноценное использование ООП. Разработан студией Luma http://www.luma-pictures.com/tools/pymel/docs/1.0/index.html Крутая тема, которая позволяет писать ещё более компактный код но требует понимания ООП 3. PyQT/PySide - питоносвкое апи для Qt интерфейса, более мммм.. низкоуровневое по сравнению с стандартными командами типа window, button etc. требует знания ООП и Qt. В маю (по крайней мере в 2013) не встроен, надо ставить отдельно. Автодески не могут определиться какую из реализаций положить в коробку 4. Python API - это уже область применения питона для написания плагинов. По сути питоновское апи это по большому счёту враппер для C++ апи поэтому если сильно не вдаваться в вичисления на питоне а пользоваться теми классами, которые даёт мая то плагины могут получаться не особо медленнее чем на C++ но зато они будут легко переносится между версиями и платформами без перекомпиляции. МЕЛ. Мел полюбому надо хотябы на базовом уровне освоить если собираешься что то писать под маю. Хотя питоне с какойто недавней версии полностью дублирует меловские уоманды, всё равно есть несколько объективных причин: 1. АДОВОЕ количество скриптов уже написанных на мел - насто не надо писать с нуля а достаточно допилить или перепилить чеёто готовый скрипт. 2. Мая не везде даёт писать на питоне непосредственно, это например хоткеи, маркинг меню, просто меню, контекстрые меню на полке и самое главное - экспрешены. Там везде подразумевается только мел, но на питоне тоже можно писать, но каждую строку питоновского кода прийдётся вызывать меловской командой python. Какието простые вещи проще написать сразу на мел. 3. Иногда питоновский синтаксис преподносит сюрпризы если на нём писать стандартные интерфейсы (окошки с кнопочками). Например надо чтобы при нажатии кнопки выполнилось несколько действий - считать информацию из текстового поля потом выполнить несколько комманд с использованием этой информации. Команду надо передать в виде строки и при этом правильно соблюсти питоновский синтаксис, требующий переносов строк и отступов. А в мел можно хоть весь скрипт написать в одну строку просто разделяя всё символом ";". 4. Фидбэк мая выдаёт тоже исключительно в виде мела, так что тоже жалетельно его знать чтобы понимать что она там пишет. 5. По мелу есть книжка Гоулда в которой всё расписано на очень доступном уровне (и вроде как есть русская версия). Всё что там описывается в плане майской специфики с лёгкостью переносится на питон. а по питону достаточно в гугле вбить чтонибуть типа обучение python, книга по python и т.д. Спасибо, вы полностью ответили на те вопросы что меня волновали, нашел серию видео уроков на ютубе по питону, а книгу по мелу голда уже скачал, на первый взгляд показалась очень доступной для понимания. Начну с мела, так как бывает нужно простые задачи выполнил, типа хот кей и маркинг меню |
|
|
27/04/2013, 21:55
Сообщение
#11
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
начал пробовать, хочу написать скрипт чтоб можно было выделять переименовывать объекты и назначать материалы.
Мне очень помог брат, точней можно сказать что он это все и написал, я пытаюсь понять и сделать так как мне нужно. Вот код, не работает 4 строка, не могу понять почему, кто то может подсказать? import maya.cmds as mc for old_name, new_name in zip(mc.ls(sl=1), ['Rim_Front_L', 'Rim_Front_R', 'Rim_Back_R', 'Rim_Back_L', 'Tire_Front_L', 'Tire_Front_R', 'Tire_Back_R', 'Tire_Back_L']): mc.rename(old_name, new_name) mc.file('-import -type "mayaAscii" -ra true -mergeNamespacesOnClash false -namespace "Tire" -options "v=0;p=17;f=0" -pr "C:/Users/PUPS/Documents/maya/projects/default/MyMaterials/Tire.ma"') mc.select('Front_Tyre_L') mc.select('Front_Tyre_R') mc.select('Back_Tyre_R') mc.select('Back_Tyre_L') mc.sets('-e -forceElement Back_Tyre_LSG') в консоли майки пишет что # Error: RuntimeError: file <maya console> line 4: File not found: "-import -type "mayaAscii" -ra true -mergeNamespacesOnClash false -namespace "Tire" -options "v=0;p=17;f=0" -pr "C:/Users/PUPS/Documents/maya/projects/default/MyMaterials/Tire.ma"" # Сообщение отредактировал Light_Dip - 27/04/2013, 22:33 |
|
|
30/04/2013, 01:26
Сообщение
#12
|
|
Рыцарь форума Группа: Пользователи Сообщений: 2 473 Регистрация: 12/07/2002 Из: Днепропетровск Пользователь №: 326 |
ну и правильно ругается... ты ж ему меловскую ситему параметров подсунул... а у питона своя... посмотри хелп, по команде file для питона, как оно прописывается и всё станет на свои места... просто в данном случае он всю строку пытается интерпретировать как файл, и естественно ничего не получается..
|
|
|
30/04/2013, 02:11
Сообщение
#13
|
|
уже всё сделал Группа: Пользователи Сообщений: 2 456 Регистрация: 01/06/2005 Из: z3л3№гр@d Пользователь №: 13 838 |
http://www.codecademy.com/ru/tracks/python
для начала самое то |
|
|
30/04/2013, 13:42
Сообщение
#14
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
ну и правильно ругается... ты ж ему меловскую ситему параметров подсунул... а у питона своя... посмотри хелп, по команде file для питона, как оно прописывается и всё станет на свои места... просто в данном случае он всю строку пытается интерпретировать как файл, и естественно ничего не получается.. Дело в том что я как раз пытался вставить меловскую команду, и команда file по идеи должна была работать как мел команда, так как в начале я поставил "import maya.cmds as mc", только чет нечего из этого не вышло:( http://www.codecademy.com/ru/tracks/python для начала самое то Спасибо, мега круто!:) буду учиться. |
|
|
01/05/2013, 19:23
Сообщение
#15
|
|
Знаток Группа: Пользователи Сообщений: 288 Регистрация: 01/06/2007 Пользователь №: 53 720 |
Немного поправил, но все равно не открывает файл, хотя пишет что вроде открыло.
import maya.cmds as mc for old_name, new_name in zip(mc.ls(sl=1), ['Rim_Front_L', 'Rim_Front_R', 'Rim_Back_R', 'Rim_Back_L', 'Tire_Front_L', 'Tire_Front_R', 'Tire_Back_R', 'Tire_Back_L']): mc.rename(old_name, new_name) file('c:/Tire.ma','r') mc.select('Tire_Front_L') mc.select('Tire_Front_R', add=True) mc.select('Tire_Back_R', add=True) mc.select('Tire_Back_L', add=True) Почему не получается открыть файл? вот что выдает майка на file('c:/Tire.ma','r') file('c:/Tire.ma','r') # Result: <open file 'c:/Tire.ma', mode 'r' at 0x000000003EC3C2D8> # пробовал вставить майскую команду как: mc.file(-i "c:/Tire.ma") пишет что файл не найден. подскажите кто знает, как это побороть. Сообщение отредактировал Light_Dip - 01/05/2013, 19:53 |
|
|
Bots |
Системное сообщение
|
|
|
|
|
Текстовая версия | Сейчас: 30/03/2024 - 06:44 |