3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Reply to this topicStart new topic
> MEL or Python?, Какой язык выбрать?
Light_Dip
сообщение 26/04/2013, 22:14
Сообщение #1


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 288
Регистрация: 01/06/2007
Пользователь №: 53 720



Здравствуйте, подскажите какой язык лучше начать осваивать, мел или питон? решил начать разбираться в скриптенге, и думаю с чего будет лучше начать, если кто знает ссылочку на полезную статью буду благодарен.

Сообщение отредактировал Light_Dip - 26/04/2013, 22:16
Go to the top of the page
 
+Quote Post
Jbond
сообщение 26/04/2013, 22:55
Сообщение #2


Эксперт
Иконка группы

Группа: Пользователи
Сообщений: 589
Регистрация: 05/07/2011
Пользователь №: 84 310



Сначала MEL потом Пайтон.
Есть уроки у гномонов по Мелу и несколько книг по мелу\пайтону, достаточно в гугле вбить.
Go to the top of the page
 
+Quote Post
VUX
сообщение 27/04/2013, 08:13
Сообщение #3


Мастер
Иконка группы

Группа: Пользователи
Сообщений: 1 068
Регистрация: 17/04/2007
Из: отТуда
Пользователь №: 47 967



Советую не обращать внимание на мел вообще и сразу курить питон - время сэкономите.
Нужность мела вообще нынче сомнительна.
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 27/04/2013, 10:31
Сообщение #4


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 288
Регистрация: 01/06/2007
Пользователь №: 53 720



Цитата(Jbond @ 26/04/2013, 22:55) *
Сначала MEL потом Пайтон.
Есть уроки у гномонов по Мелу и несколько книг по мелу\пайтону, достаточно в гугле вбить.

Я конечно понимаю англ, но с кодом и так для меня тяжело, лучше бы с начала на русише, нашел вот такую книгу, вроде все подробно написано Дэвид А.Д. Гоулд Maya Полное руководство по программированию

Цитата(VUX @ 27/04/2013, 08:13) *
Советую не обращать внимание на мел вообще и сразу курить питон - время сэкономите.
Нужность мела вообще нынче сомнительна.

Можно немного подробней? в чем преимущества, может для общего понимания стоит хоть ознакомиться с мел? я так понял что мел проще в освоении?
так же заметил что много удобных и полезных плагов написано именно на питоне.
Go to the top of the page
 
+Quote Post
VUX
сообщение 27/04/2013, 11:17
Сообщение #5


Мастер
Иконка группы

Группа: Пользователи
Сообщений: 1 068
Регистрация: 17/04/2007
Из: отТуда
Пользователь №: 47 967



МЕЛ был когдато актуален.
Сейчас преимущества на стороне питона. Некоторые из них:
1. Скорость исполнения.
2. Удобство чтения текста ( ИМХО )
3. ООП и все вытекающие
4. Доступ к АПИ
5. PyQt\PySide для нормальной работы с UI
6. Ну и как обычно батарейки. Это означает что питон идет с библиотекой для решения проблем разного рода.
7...

ПС. Нарисовать узел мелом не получится )

Сообщение отредактировал VUX - 27/04/2013, 11:23
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 27/04/2013, 11:30
Сообщение #6


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 288
Регистрация: 01/06/2007
Пользователь №: 53 720



Цитата(VUX @ 27/04/2013, 11:17) *
МЕЛ был когдато актуален.
Сейчас преимущества на стороне питона. Некоторые из них:
1. Скорость исполнения.
2. Удобство чтения текста ( ИМХО )
3. ООП и все вытекающие
4. Доступ к АПИ
5. PyQt\PySide для нормальной работы с UI
6. Ну и как обычно батарейки. Это означает что питон идет с библиотекой для решения проблем разного рода.
7...

ПС. Нарисовать узел мелом не получится )

С чего лучше начать? как я понял есть разные версии питона.
Go to the top of the page
 
+Quote Post
VUX
сообщение 27/04/2013, 11:43
Сообщение #7


Мастер
Иконка группы

Группа: Пользователи
Сообщений: 1 068
Регистрация: 17/04/2007
Из: отТуда
Пользователь №: 47 967



в мае питон один - сейчас в 2014 - 2.7-версия - но это не важно.
Поищите в сети куча книг. Какую лучше я не знаю - больше методом тыка и форумами обходился.

Сообщение отредактировал VUX - 27/04/2013, 11:43
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 27/04/2013, 12:16
Сообщение #8


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 288
Регистрация: 01/06/2007
Пользователь №: 53 720



Цитата(VUX @ 27/04/2013, 11:43) *
в мае питон один - сейчас в 2014 - 2.7-версия - но это не важно.
Поищите в сети куча книг. Какую лучше я не знаю - больше методом тыка и форумами обходился.

А как можно посмотреть выполнения кода, например как в мае мел в скрипт едиторе? есть такая возможность? было бы намного проще понимать что происходит.
Go to the top of the page
 
+Quote Post
witcher
сообщение 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
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 27/04/2013, 13:18
Сообщение #10


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 288
Регистрация: 01/06/2007
Пользователь №: 53 720



Цитата(witcher @ 27/04/2013, 12:34) *
Цитата
С чего лучше начать? как я понял есть разные версии питона.

всмысле разные версии? Глобально есть питон 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 и т.д.

Спасибо, вы полностью ответили на те вопросы что меня волновали, нашел серию видео уроков на ютубе по питону, а книгу по мелу голда уже скачал, на первый взгляд показалась очень доступной для понимания.
Начну с мела, так как бывает нужно простые задачи выполнил, типа хот кей и маркинг меню
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 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
Go to the top of the page
 
+Quote Post
svv3d
сообщение 30/04/2013, 01:26
Сообщение #12


Рыцарь форума
Иконка группы

Группа: Пользователи
Сообщений: 2 473
Регистрация: 12/07/2002
Из: Днепропетровск
Пользователь №: 326



ну и правильно ругается... ты ж ему меловскую ситему параметров подсунул... а у питона своя... посмотри хелп, по команде file для питона, как оно прописывается и всё станет на свои места... просто в данном случае он всю строку пытается интерпретировать как файл, и естественно ничего не получается..
Go to the top of the page
 
+Quote Post
Jahman
сообщение 30/04/2013, 02:11
Сообщение #13


уже всё сделал
Иконка группы

Группа: Пользователи
Сообщений: 2 382
Регистрация: 01/06/2005
Из: z3л3№гр@d
Пользователь №: 13 838



http://www.codecademy.com/ru/tracks/python
для начала самое то
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 30/04/2013, 13:42
Сообщение #14


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 288
Регистрация: 01/06/2007
Пользователь №: 53 720



Цитата(svv3d @ 30/04/2013, 01:26) *
ну и правильно ругается... ты ж ему меловскую ситему параметров подсунул... а у питона своя... посмотри хелп, по команде file для питона, как оно прописывается и всё станет на свои места... просто в данном случае он всю строку пытается интерпретировать как файл, и естественно ничего не получается..

Дело в том что я как раз пытался вставить меловскую команду, и команда file по идеи должна была работать как мел команда, так как в начале я поставил "import maya.cmds as mc", только чет нечего из этого не вышло:(

Цитата(Jahman @ 30/04/2013, 02:11) *
http://www.codecademy.com/ru/tracks/python
для начала самое то

Спасибо, мега круто!:) буду учиться.
Go to the top of the page
 
+Quote Post
Light_Dip
сообщение 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")
пишет что файл не найден.sad.gif подскажите кто знает, как это побороть.

Сообщение отредактировал Light_Dip - 01/05/2013, 19:53
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






2 страниц V   1 2 >
Fast ReplyReply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 21/09/2019 - 01:27