
- •С чего начать
- •Переменные и присвоение им значений
- •Области видимости
- •Настойчивые переменные
- •Изменяемый тип переменных
- •Присвоение значения по ссылке
- •Выделение памяти и уборка мусора
- •Имена переменных
- •Литералы
- •Числовые литералы
- •Строковые литералы
- •Литералы времени
- •Литералы имен объектов
- •Литералы точек в двумерном и трехмерном пространстве
- •Литералы массивов
- •Выражения
- •Простые выражения
- •Математические выражения
- •Порядок выполнения операций в математических выражениях
- •Полиморфизм
- •Выражения сравнения
- •Логические операции
- •Сокращенное выполнение логических выражений
- •Позиционированные и именованные параметры
- •Приоритет вызова функций
- •Написание вызова функции в несколько строк
- •Другой способ вызова функций
- •Контекстные выражения
- •Комментарии
- •Обращение из одного скрипта к другим
- •Управление порядком выполнения операторов
- •Пропуск выполнения цикла
- •Собственная обработка ошибок
- •Оформление функций
- •Переменная, содержащая функцию
- •Параметры функций
- •Принудительное завершение функции
- •Определение структур
- •Создание функций, локальных внутри структуры
- •Базовые классы maxScript Класс Value
- •Операторы
- •Литералы
- •Операторы
- •Свойства
- •Операторы
- •Точка в трехмерном пространстве
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Литерал
- •Конструкторы
- •Свойства
- •Произвольный поворот
- •Литералы
- •Конструкторы
- •Операторы
- •Свойства
- •Углы Эйлера
- •Операторы
- •Свойства
- •Прямоугольник
- •Литералы
- •Конструкторы
- •Свойства
- •Операторы
- •Функция
- •Массив_чисел
- •Вспомогательные методы Функция
- •Функция
- •Можно открыть зашифрованный файл, используя функцию
- •Свойства
- •Свойства
- •Особенности работы с ключами анимации
- •Массив параметров
- •Конструкторы
- •Свойства
- •Операторы
- •Множества
- •Шаблонные группы
- •Свойства
- •Операторы
- •Функции для работы с группами
- •Наборы объектов
- •Конструкторы
- •Свойства
- •Операторы
- •Функции, работающие с наборами
- •Дополнительные сведения
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Литералы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Конструкторы
- •Свойства
- •Операторы
- •Прочие функции
- •Скрипт-утилиты
- •Панель скрипт-утилиты
- •Составные части тела свитка
- •Создание перемещаемых окон
- •Видимость локальных переменных, структур, функций и компонент интерфейса из кода свитка
- •Доступ к локальным переменным и прочим элементам утилит и свитков из внешнего кода
- •Компоненты пользовательского интерфейса
- •Название_компонента Имя_переменной Символьная_строка
- •Общие свойства компонентов пользовательского интерфейса
- •Общие параметры компонентов пользовательского интерфейса
- •Типы компонентов пользовательского интерфейса Для примера рассмотрим утилиту, использующую все возможные компоненты пользовательского интерфейса
- •Битовая карта
- •Параметры
- •Свойства
- •События
- •Параметры
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Выпадающий список
- •Параметры
- •Свойства
- •События
- •Свойства
- •События
- •Кнопка выбора текстурной карты
- •Параметры
- •Свойства
- •События
- •Кнопка выбора материала
- •Параметры
- •Свойства
- •События
- •Список с возможностью множественного выбора
- •Параметры
- •Свойства
- •События
- •Кнопка выбора объекта
- •Параметры
- •Свойства
- •События
- •Задатчик
- •Параметры
- •Свойства
- •События
- •Параметры
- •Свойства
- •События
- •Кнопки с картинками
- •Скрипт контекстного меню
- •Тело контекстного меню
- •Пункт меню
- •Разделитель
- •Подменю
- •Макро скрипты
- •Создание файлов с иконками
- •Средства работы с мышью
- •Остановить работу средства можно вызовом функции
- •Правила оформления средств работы с мышью
- •События
- •Скрипт плугины
- •Правила построения скрипт-плугина
- •Внесение изменений в плугин
- •Урок 1. Твердые тела
- •Создание набора твердых тел
- •Добавление тел к набору
Шаблонные группы
Объекты, имена которых удовлетворяет какому-либо правилу, так же могут рассматриваться как картированные множества. Обращение сразу ко многим объектам по имени осуществляется с применением служебных символов * и ? и описано в главе о литералах имен объектов. Например, запись
$Box*
означает все объекты, имена которых начинаются с Box.
Свойства
MAXScript предоставляет доступ к следующим свойствам объектов, заданных шаблоном имени. Свойства
Шаблонная_группа.center
Шаблонная_группа.max
Шаблонная_группа.min
возвращают точку в трехмерном пространстве с координатами центра и крайних точек габаритного контейнера всех объектов, входящих в группу. Количество объектов в группе можно получить с помощью свойства
Шаблонная_группа.count
Все свойства предназначены только для чтения.
Операторы
Операция индексирования
Шаблонная_группа [ Целое_число ]
позволяет получить ссылку на объект, входящий в группу под указанным порядковым номером. Группу можно преобразовать в массив с помощью операции преобразования типа
Шаблонная_группа as array
Функции для работы с группами
С шаблонными группами могут работать все картированные функции и команды 3ds max. Например, для управления выделением объектов можно применять следующие функции
select Шаблонная_группа
выделит все объекты, входящие в группу. Чтобы добавить объекты к уже выделенным, применяется функция
selectMore Шаблонная_группа
А отменить выделение объектов можно с помощью функции
deselect Шаблонная_группа
Наборы объектов
Наборы объектов предоставляют доступ к объектам 3ds max по категориям. Все “конструкторы” для таких наборов являются зарезервированными глобальными переменными
Конструкторы
Глобальные переменные, представляющие собой все возможные наборы объектов сцены, сведены в таблицу
Название переменной |
Описание |
objects |
все объекты сцены |
geometry |
стандартные геометрические объекты |
lights |
источники света |
cameras |
камеры |
helpers |
вспомогательные объекты |
shapes |
сплайны и NURBS-кривые |
spacewarps |
объемные деформации |
systems |
системы объектов |
selection |
выделенные объекты |
Свойства
Свойства наборов доступны только для чтения. Свойства
Набор объектов.center
Набор_объектов.max
Набор_объектов.min
возвращают точку в трехмерном пространстве, представляющую центр и крайние точки габаритного контейнера всех объектов, входящих в набор. Число объектов в наборе можно получить с помощью свойства
Набор_объектов. count
Операторы
Индексирование набора
Набор_объектов [ Целое_число ]
применяется для получения объекта, входящего в набор под порядковым номером, заданным числом в квадратных скобках. Нумерация объектов начинается с единицы.
Получить массив, содержащий ссылки на все объекты набора, можно с помощью операции преобразования типа
Набор_объектов as array
Функции, работающие с наборами
Функция
clearSelection ( )
снимает со всех выделенных объектов признак выделения. Набор selection после вызова данной функции становится пуст. Чтобы получить все выделенные объекты в виде массива, используется функция
getCurrentSelection ( )
Фактически обращение к ней эквивалентно следующему скрипту
selection as array
но, при большом количестве объектов в сцене, функция работает значительно быстрее.