2.4 Создание пользовательских скриптов в MEL. Работа с массивами в MEL. Курс "Создание скриптов MEL в Maya"
*Lynda: Online Courses, Classes, Training, Tutorials*: https://www.lynda.com/
Теперь рассмотрим, как создавать массивы в MEL. Массив представляет собой набор переменных одного и того же типа. Если нам нужен массив, состоящее из строк, мы можем получить его одним из двух способов. Мы можем определить его как "$StringArray[]". Обратите внимание, эти квадратные скобки обозначают массив. Или же мы можем определить его и присвоить ему набор значений. Так, например, на этот раз мы создадим переменную, которая называется "$ StringArray []", со значениями "I ", "Like " и "Pie" в качестве трех элементов.
Также, мы можем сделать это и для числовых значений. Например, если массив состоит из целых чисел, то мы сможем задать его таким же способом. Или же мы бы снова могли присвоить ему отдельные элементы. Помните, здесь должна присутствовать фигурная скобка со значениями элементов, разделенных запятыми. Теперь мы можем получить доступ к отдельным элементам массива по их номеру. Нумерация элементов массива начинается с нуля. Если мы вернемся к нашему предыдущему примеру массива, то слово "I " будет иметь номер 0, под номером 1 будет идти следующее слово, а третье слово - под номером 2.
Очень важно начать нумерацию с нуля, многие люди на этом моменте ошибаются. Если бы нам нужно было напечатать каждый элемент данного массива, то у нас бы получился примерно такой пример. Давайте попробуем выполнить этот скрипт и посмотрим, как он работает в Maya. Откроем наш Script Editor, и теперь давайте создадим массив. Итак, string, затем пишем название переменной, которую мы назовем Array. Затем нам необходимы квадратные скобки, чтобы обозначить, что это массив.
Само по себе название Array не говорит о том, что это массив. Поэтому необходимо добавить квадратные скобки, которые позволят его обозначить. Затем после знака равенства добавим фигурную скобку и некоторые элементы. Пишем: I, заключаем слово в кавычки. Далее: Like, так же в кавычках. Не забываем ставить пробелы перед закрывающей кавычкой, так как они необходимы нам в самой фразе. И напоследок: Pie. Закрываем фразу фигурной скобкой, в конце ставим точку с запятой.
Этот код создает переменную, которая называется "Array", создает её как массив и добавляет в него элементы. Если бы мы захотели, то смогли бы напечатать любой элемент из этого массива. Например, мы можем ввести следующую команду: print, доллар, Array, квадратная скобка открылась, два, квадратная скобка закрылась, тем самым мы бы распечатали третий элемент. Еще раз напоминаю, что элементы нумеруются ноль, один, два, а не один, два, три. Если мы выделим эту команду и нажмем execute, то вы увидите напечатанное слово "Pie", которое является третьим элементом.
Теперь, если я захочу напечатать все эти элементы массива, я могу использовать ту же команду. Мы будем использовать круглые скобки. Поместим сюда первый элемент Array[0] со значком доллара перед ним, через плюс пишем доллар, Array[1], и прибавляем его к элементу, который у нас уже был напечатан. Убедитесь, что вы поставили круглые скобки. Должно сработать. Выполняем команду.
Итак, мы получили фразу "I like pie". С помощью операций над массивами мы можем менять отдельные элементы. Мы можем выполнять математические операции или строковые операции для всех элементов массива. Такие простые действия позволяют поменять одно из слов на другое в пределах заданного массива. Попробуем сделать это. Используем уже существующий скрипт, поменяем в нем элемент номер два, который по факту является третьим. Поменяем слово Pie на Cupcakes.
После того, как мы выполним команду, то получим фразу "I like Cupcakes". При этом мы изменили только один элемент. Итак, мы разобрали основы работы с массивами. Они могут быть очень полезны при работе со многими разделами Maya. У вас будет много разнообразных данных, количество которых сложно установить. Поэтому массивы будут отличным местом, где вы можете хранить эти данные и использовать их.
                         
                    
Информация по комментариям в разработке