3.4 Создание интерфейсов в MEL. Добавляем слайдеры. Курс "Создание скриптов MEL в Maya"
*Lynda: Online Courses, Classes, Training, Tutorials*: https://www.lynda.com/
Теперь мы знаем, как можно сделать простое окно с кнопкой, которая позволяет создавать какой-либо объект. Но, как правило, мы хотим немного больше интерактивности в наших пользовательских интерфейсах. Мы хотели бы иметь возможность вводить нужные нам числа или создавать слайдеры. Итак, сейчас мы научимся добавлять некоторые слайдеры в наш интерфейс. Для этого мы загрузим скрипт, с которым мы уже работали до этого. Это очень простой скрипт, он открывает окно с кнопкой, которая создает цилиндр с шариком.
Итак, мы хотим добавить слайдеры , с помощью которых мы сможем регулировать значения параметров создаваемых объектов. Для этого нам нужно добавить так называемую группу слайдеров. Существует два типа слайдеров. Это зависит от того, какие числовые значения вы хотите использовать. Мы можем работать с floatSliderGrp для переменных с дробными значениями или intSliderGrp для целых чисел. Начнем с первой группы, которая называется floatSliderGrp.
Слова Slider и Grp пишутся с заглавной буквы. Далее, нам необходимо ввести слово label, который даёт пользователю понять, для какого именно параметра используется данный слайдер. Итак, мы назовем его Radius, заключив это слово в кавычки. Далее нам необходимо определить, хотим ли мы просто слайдер или слайдер, в который мы можем вводить нужное нам значение. Обычно я использую второй вариант. Далее мы печатаем слово Field (поле), вслед за ним true.
Это позволит пользователю вводить числа слева от ползунка. Далее нам необходимо дать слайдеру название. Мы просто назовем этот слайдер radiusSlider. Главное, чтобы название было уникальным и не повторяющимся в данной процедуре. Теперь, мы можем увидеть его в окне. Нам осталось выделить команду и нажать «выполнить». Итак, мы создали слайдер, который называется radius.
Здесь у нас расположено поле ввода. И далее идет непосредственно ползунок для определения радиуса. Мы имеем возможность перемещать его вперед и назад — делать значения больше или меньше, или мы можем ввести их в это поле. Есть ряд и других вариантов для floatSliderGrp. Мы можем задать минимальные и максимальные значения, есть множество различных вариантов управления этими слайдерами. Однако сейчас мы разберем лишь самые основные из них. После этого нам нужно принять это значение и использовать его в процедуре.
Ранее мы уже создали процедуру, рядом с ней стоят круглые скобки, в которые мы могли помещать значения. Для этого нам нужно было ввести сюда необходимые числа. Однако сейчас мы будем работать по-другому. Нам нужно сделать так, чтобы команда ссылалась на слайдер автоматически. Для этого мы создаем новую переменную. Пишем: float $rad, что означает радиус, далее ставим знак равенства. Следующий момент самый важный.
Переменная будет равняться результату команды, которая обозначается как floatSliderGrp. Но вместо того, чтобы создать слайдер, мы сделаем запрос к уже имеющемуся. Пишем далее: - q, -value название слайдера в кавычках radiusSlider. Тип переменной у нас будет float.
Далее, мы заключаем команду в обратные кавычки. Это позволяет присвоить переменной значение возвращаемое командой. Кавычка находится в левой верхней части клавиатуры (с буквой ё на русской раскладке). Это не стандартная одинарная кавычка, она отличается от двойной. Она идет в противоположном направлении. Поэтому нам нужны обратные кавычки в начале и в конце этой команды. Так что теперь, если мы хотим, мы можем взять значение радиуса и использовать его для создания нашего цилиндра, для чего напишем здесь $rad.
Итак, теперь это значение радиуса будет использоваться в floatSliderGrp. Посмотрим на то, как это работает. Теперь мы имеем радиус, который можем сами определять. Например, попробуем задать для нашего цилиндра радиус 10. Мы получили объект с большим радиусом, цилиндр выглядит крупным. Если вы посмотрите в Channel Box настройки для цилиндра, то вы увидите, что значение радиуса здесь показывается такое же, какое мы с вами установили, и он равен 10.1...
                         
                    
Информация по комментариям в разработке