
- •Теория maxScript Оглавление
- •Часть 1 2
- •Часть 1
- •Окно maxScript Listener
- •Окно maxScript Editor
- •Синтаксис
- •Управляющие конструкции
- •Пропуск проходов и принудительный выход из циклов
- •Часть 2 Функции
- •Объекты и классы в объектно-ориентированном программировании
- •Определения
- •Операции со строками
- •Операции с массивами
- •Команды 3ds max в maxScript
- •Часть 3 Создание свитков
- •События
- •Элементы интерфейса
- •Радиокнопки
- •Спиннер
- •Часть 4 Сплайны
- •Класс SplineShape
- •Методы, работающие с целым объектом Shape
- •Методы, работающие со сплайнами объекта Shape
- •Методы, работающие с сегментами сплайнов объекта Shape
- •Методы, работающие с вершинами сплайнов объекта Shape
- •Часть 5 Простейшие диалоговые окна
- •If queryBox “Хотите продолжить?” beep:false then ... Некоторые из методов работы с объектами
- •Характерные точки объектов
- •Системы координат
- •Координатные сетки
- •Определение угла между двумя векторами
- •Представление ориентации при помощи кватернионов (quaternions)
- •Создание вспомогательных объектов-пустышек Dummy
- •Изменение общих параметров анимации
- •Анимация вершин сплайнов
- •Примеры контроллеров анимации path constraint и link constraint
- •Методы print и format
Операции с массивами
Операция Описание
<collection> as array Конвертирует коллекцию в массив
<array>.count Число элементов в массиве (Целое, можно изменять)
<array>[integer] Возвращает элемент массива. Номера начинаются с 1.
<array>[integer] = <value> Заносит значение в элемент массива, увеличивая число элементов по необходимости
<array> + <collection> Создает новый массив из первого и второго аргументов
Примеры: a=#(1,2,3,4); join a #(5,6,7,8)
(cameras as array) + lights
Метод Описание
append <array> <value> Добавляет величину к массиву, при необходимости увеличивая его размер
copy <array> [#noMap] Создает копию всех элементов массива. Возвращает значение ОК. Если задан параметр#noMap, создается только копия переменной массива, которая ссылается на элементы исходного массива.
deleteItem <array><number> Стирает элемент массива, уменьшая его размер на 1
join <array> <collection> Присоединяет все элементы второго аргумента к первому
sort <array> Сортирует элементы массива по возрастанию. (Все элементы должны быть одного типа)
findItem <array> <value> Ищет элемент массива, равный заданной величине и возвращает номер, первого такого элемента или ноль (zero), если элемент не найден.
insertItem <value> <array> <integer> – Вставляет значение в элемент с указанным номером, при необходимости увеличивая размер массива
qsort <array> <function> [start: integer] [end: integer] [args] – Сортирует массив, используя заданную пользователем функцию для сравнения двух элементов. У этой функции необходимо определить два аргумента на входе, а возвращать она должна целое число меньше нуля, если первый аргумент меньше второго, больше нуля, если наоборот и 0, если они равны. Если не задан начальный и конечный номер, массив сортируется целиком.
Пример: следующий скрипт создает 10 случайных трехмерных координат, а потом сортирует их в зависимости от расстояния до точки [0,0,0]:
positions=for i=1 to 10 collect (random [0,0,0] [100,100,0])
fn compareFN v1 v2 =
(
local d=(length v1)-(length v2)
case of
(
(d<0.): -1
(d>0.): 1
default: 0
)
)
qsort positions compareFN
for p in positions do print p
amin (<array> | {value}) Возвращает минимальное значение из элементов массива или набора величин. Если в массиве нет элементов или набор величин не задан, возвращается значение undefined. Примеры:myMin=amin #(5,1,4,2,8)
myMin1=amin 5 1 4 2 8
amax (<array> | {value}) Возвращает максимальное значение из элементов массива или набора величин. Если в массиве нет элементов или набор величин не задан, возвращается значение undefined
Команды 3ds max в maxScript
MAXScript позволяет запускать команды меню и панели инструментов 3ds max. Перед командой пишется ключевое слово “max”. Например:
max file open
max unhide all
max quick render
max time ? -- показать все команды, связанные со временем
max sel ? -- показать все команды, в которых есть подстрока ‘sel’
max ? -- показать все команды (их очень много)
Ниже приведен список некоторых часто выполняемых команд и их описание.
Команда Описание
max ? Вывести все команды в Listener
max delete Стереть выделенные объекты или подобъекты
max file new Отобразить диалоговое окно создания нового файла
max file open Отобразить диалоговое окно открытия файла
max file save Сохранить файл
max move Активировать режим Select and Move
max properties Отобразить диалоговое окно свойств объекта
max quick render Запустить быструю визуализацию
max redo Вернуть отмененное действие
max reset file Создать пустую сцену
max rotate Активировать режим Select and Rotate
max select Активировать режим Select
max select all Выделить все объекты
max time end Установить ползунок шкалы времени в конечную точку
max time start Установить ползунок шкалы времени в начальную точку
max undo Отменить действие
max unfreeze all “Разморозить” все объекты
max unhide all Показать все скрытые объекты
max vpt front Сделать активный видовой экран проекцией Спереди
max zoomext sel Активировать режим Zoom Extents Selected