Начинать знакомство с MAXScript проще всего через инструмент Macro Recorder. Он записывает действия пользователя как команды скрипта и выводит их в верхнюю (розовую) область окна MAXScript Listener. Включить Macro Recorder можно из падающего меню MAXScript/Macro Recorder или через меню MacroRecorder в окне MAXScript Listener (нажмите F11, чтобы его открыть). Включите Recorder, откройте Listener, создайте несколько объектов, изменяйте выделение, параметры объектов и смотрите, как происходит запись. К сожалению, далеко не все действия пользователя можно записать, поэтому данный инструмент используется в основном для общего ознакомления с MAXScript или когда в хелпе не нашлось подсказки и есть надежда, что Recorder подскажет нужную команду. Надежда эта сбывается крайне редко, так что отключите Macro Recorder и продолжим.
В нижней (белой) области Listener можно построчно вводить свои собственные команды и выполнять их, т.е. получается как бы Recorder наоборот. Чтобы выполнить текущую строку – поместите курсор в конец строки и нажмите Enter. Чтобы выполнить несколько строк – выделите их и нажмите Shift+Enter. 3ds max будет печатать в Listener результаты выполнения скриптов синим цветом и сообщения об ошибках красным. Если потребуется стереть все содержимое белой или розовой области MAXScript Listener, щелкните на ней и нажмите Ctrl+D. Ну вот, научились работать с Listener, самое время учиться писать в нем простейшие скрипты.
Создание ящика (вообще говоря по-русски этот объект называется прямоугольный параллелепипед, ну да ладно :-D)
Геометрический объект ящик создается командой box(). Пустые скобки означают, что параметры объекта будут устанавливаться по умолчанию.
Чтобы потом легче было обратиться к этому объекту, лучше сразу записать его в переменную: mybox=box()
Если нужно задать свои параметры - скобки не нужны, а писать нужно так:
mybox=box length:20 width:20 height:20
Чтобы изменить любое свойство объекта, в том числе и параметры, необходимо обратиться к его переменной. Например, к высоте: mybox.height=50
Свойство | Описание | Примеры |
name | имя объекта | mybox.name=”BlueBox” |
wireColor | цвет объекта | mybox.wireColor=blue |
  |   | mybox.wireColor=(color 255 0 255) |
pos | координаты X,Y,Z | mybox.pos=[0,-75,0] |
scale | масштаб | mybox.scale=[0.5,0.5,0.5] --УМЕНЬШИТЬ НАПОЛОВИНУ ОТ ИСХОДНОГО МАСШТАБА ПО ВСЕМ ОСЯМ |
  |   | mybox.scale=[1,3,2] --ИСХОДНЫЙ МАСШТАБ ПО ОСИ X, ПО Y УВЕЛИЧЕННЫЙ В ТРИ РАЗА, ПО Z В ДВА |
length | длина | mybox.length=50 |
width | ширина | mybox.width=50 |
height | высота | mybox.height=50 |
  |   |   |
  | число сегментов: |   |
lengthsegs | по длине | mybox.lengthsegs=10 |
widthsegs | по ширине | mybox.widthsegs=20 |
heightsegs | по высоте | mybox.heightsegs=30 |
  |   |   |
mapCoords | проекционные координаты | mybox.mapCoords=true --ВКЛЮЧИТЬ |
  |   | mybox.mapCoords=false --ВЫКЛЮЧИТЬ |
Трансформация | Описание | Примеры |
move | перемещение | move mybox [10,0,0] --СДВИНУТЬ НА 10 ВДОЛЬ ОСИ X |
rotate | поворот | rot_box=eulerangles 0 30 0 |
  |   | rotate mybox rot_box --ПОВЕРНУТЬ НА 30° ВОКРУГ ЛОКАЛЬНОЙ ОСИ Y |
scale | масштабирование | scale mybox [10,20,30] --УВЕЛИЧИТЬ ТЕКУЩИЙ МАСШТАБ ПО ОСИ X В 10, ПО Y В 20, А ПО Z В 30 РАЗ |
Формат времени | Единицы измерения времени |
2.5s | 2.5 секунды |
20f | 20 кадров |
4800t | 4800 тиков = 1 секунда |
1m3s5f | 1 минута, 3 секунды, 5 кадров |
1:15:5 | SMPTE: 1 минута, 15 секунд, 5 кадров |