
- •С чего начать
- •Переменные и присвоение им значений
- •Области видимости
- •Настойчивые переменные
- •Изменяемый тип переменных
- •Присвоение значения по ссылке
- •Выделение памяти и уборка мусора
- •Имена переменных
- •Литералы
- •Числовые литералы
- •Строковые литералы
- •Литералы времени
- •Литералы имен объектов
- •Литералы точек в двумерном и трехмерном пространстве
- •Литералы массивов
- •Выражения
- •Простые выражения
- •Математические выражения
- •Порядок выполнения операций в математических выражениях
- •Полиморфизм
- •Выражения сравнения
- •Логические операции
- •Сокращенное выполнение логических выражений
- •Позиционированные и именованные параметры
- •Приоритет вызова функций
- •Написание вызова функции в несколько строк
- •Другой способ вызова функций
- •Контекстные выражения
- •Комментарии
- •Обращение из одного скрипта к другим
- •Управление порядком выполнения операторов
- •Пропуск выполнения цикла
- •Собственная обработка ошибок
- •Оформление функций
- •Переменная, содержащая функцию
- •Параметры функций
- •Принудительное завершение функции
- •Определение структур
- •Создание функций, локальных внутри структуры
- •Базовые классы maxScript Класс Value
- •Операторы
- •Литералы
- •Операторы
- •Свойства
- •Операторы
- •Точка в трехмерном пространстве
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Литерал
- •Конструкторы
- •Свойства
- •Произвольный поворот
- •Литералы
- •Конструкторы
- •Операторы
- •Свойства
- •Углы Эйлера
- •Операторы
- •Свойства
- •Прямоугольник
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Функция
- •Массив_чисел
- •Вспомогательные методы Функция
- •Функция
- •Можно открыть зашифрованный файл, используя функцию
- •Свойства
- •Свойства
- •Особенности работы с ключами анимации
- •Массив параметров
- •Конструкторы
- •Свойства
- •Операторы
- •Множества
- •Шаблонные группы
- •Свойства
- •Операторы
- •Функции для работы с группами
- •Наборы объектов
- •Конструкторы
- •Свойства
- •Операторы
- •Функции, работающие с наборами
- •Дополнительные сведения
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Литералы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Скрипт-утилиты
- •Панель скрипт-утилиты
- •Составные части тела свитка
- •Создание перемещаемых окон
- •Видимость локальных переменных, структур, функций и компонент интерфейса из кода свитка
- •Доступ к локальным переменным и прочим элементам утилит и свитков из внешнего кода
- •Компоненты пользовательского интерфейса
- •Название_компонента Имя_переменной Символьная_строка
- •Общие свойства компонентов пользовательского интерфейса
- •Общие параметры компонентов пользовательского интерфейса
- •Типы компонентов пользовательского интерфейса Для примера рассмотрим утилиту, использующую все возможные компоненты пользовательского интерфейса
- •Битовая карта
- •Параметры
- •Свойства
- •События
- •Параметры
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Выпадающий список
- •Параметры
- •Свойства
- •События
- •Свойства
- •События
- •Кнопка выбора текстурной карты
- •Параметры
- •Свойства
- •События
- •Кнопка выбора материала
- •Параметры
- •Свойства
- •События
- •Список с возможностью множественного выбора
- •Параметры
- •Свойства
- •События
- •Кнопка выбора объекта
- •Параметры
- •Свойства
- •События
- •Задатчик
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Кнопки с картинками
- •Скрипт контекстного меню
- •Тело контекстного меню
- •Пункт меню
- •Разделитель
- •Подменю
- •Макро скрипты
- •Создание файлов с иконками
- •Средства работы с мышью
- •Остановить работу средства можно вызовом функции
- •Правила оформления средств работы с мышью
- •События
- •Скрипт плугины
- •Правила построения скрипт-плугина
- •Внесение изменений в плугин
- •Урок 1. Твердые тела
- •Создание набора твердых тел
- •Добавление тел к набору
С чего начать
MAXScript - язык программирования, предназначенный, главным образом, для реализации потребностей, которые возникли у пользователя, но которых пока нет в текущей версии 3D Studio Max, или они есть, но реализованы не так, как хотелось бы. Самые простые знания и навыки в работе с ним можно получить, работая с окном интерпретатора MAXScript (MAXScript Listener). Для этого в главном меню 3ds max выберем пункт “MAXScript”, а в появившемся меню – пункт “MAXScript Listener … F11”
На экране появится примерно такое окно
это
и
есть
интерпретатор.
Если
в
нем
набрать
любую
конструкцию
языка
и
нажать
клавишу
Enter,
то
она
(конструкция,
конечно,
а
не
клавиша)
немедленно
выполнится,
а
результат
ее
выполнения
выведется
в
это
же
окно,
но
синим
цветом.
Доступ
к
окну
интерпретатора
можно
получить
так
же,
выбрав
закладку
Utilites
и
нажав
в
ней
кнопку
MAXScript.
Откроется
свиток,
в котором надо нажать кнопку Open Listener.
Однако работать с окном интерпретатора довольно неудобно. Если Ваша программа состоит из большого числа строк, то в ней не мудрено допустить ошибку, а для ее исправления надо снова вводить всю программу. Кроме того, придумав прекрасную программу, Вы, наверное, захотите воспользоваться ей неоднократно. Глупо было бы записывать ее на бумажку и при надобности вводить ее каждый раз заново. Разумеется, MAXScript имеет средства для сохранения и загрузки программ. Более того, с его помощью можно дорабатывать пользовательский интерфейс 3ds max, но об этом далее. Пока воспользуемся меню окна интерпретатора. Выберем пункт File, а в открывшемся меню пункт New Script
(по сложившейся традиции, программа на MAXScript называется скрипт). Появится окно, напоминающее текстовый редактор Notepad.
В нем можно набрать любой сложности скрипт, и сохранить его в файл. Традиционное расширение для файлов, содержащих скрипты – ms. В меню File редактора скриптов, кроме обычных New, Open, Close, Save и Save As, есть пункт “Evaluate All Ctrl-E”.
Выбрав его, Вы выполните скрипт, содержащийся в редакторе.
Нетрудно догадаться, что пункты Open Script и Run Script из меню File окна интерпретатора, служат для того, чтобы открыть имеющийся скрипт или выполнить его.
Впрочем, если хотите, можно набирать текст скрипта например в Notepad или подобном редакторе. Этих средств программирования вполне хватит для написания скриптов любой сложности.
Как и всякий язык, MAXScript имеет свою грамматику, которую и начнем изучать с операции присвоения значений переменным.
Переменные и присвоение им значений
Оператор присваивания в MaxScript имеет примерно такой вид:
x = 145.2
Все просто. Слева имя переменной, справа то значение, которое ей присваивается. Разумеется, в качестве значения может выступать не только действительное число, но и любое, принятое в MAXScript, значение. Например, точка в трехмерном или двумерном пространстве, объект (сфера, параллелепипед, пирамида и т.д.) и прочее, на чем подробно остановимся далее. Кроме того, справа может быть имя другой переменной, или выражение, составленное из переменных, констант, и прочее. Например:
x = y
z = ( 2.0 * x + c) / 2.5
Можно ставить несколько операторов присваивания подряд
x = y = z = 3.62
Слева от знака присваивания может быть не просто переменная, а элемент массива, например, так:
x[21] = 3.14 * R
Или свойство объекта, вот так:
box.height = box.width
О массивах и свойствах поговорим подробно потом, а теперь остановимся на областях видимости.