Материалы
Камеры
Управление камерами осуществляется в MAXScript достаточно просто. Ниже приведены некоторые конструкторы для свободных и нацеленных камер:
targetCamera()
freeCamera()
Для создания нацеленной камеры выполните следующее упражнение.
1. Продолжите работу с предыдущим примером сценария. Вместо того чтобы удалять вручную все объекты со сцены всякий раз, когда выполняется сценарий, вам предстоит организовать их удаление автоматически. Введите следующую строку кода в самом начале своего сценария:
delete $*
2. Введите следующую строку кода в самом конце сценария:
tobj = targetObject pos: [7,15,31]
В этой строке создается целевой объект для нацеленной камеры.
У данного объекта, выполняющего роль цели камеры, отсутствуют собственные свойства.
3. Создайте нацеленную камеру и укажите ее цель:
tc = targetCamera pos:[0,0, 40.0] target: tobj
4. Когда камера перемещается, она остается постоянно направленной на цель.
Введите в окне приемника команд следующую строку кода:
move tc [-121,-166,60]
Камера постоянно направлена на цель.
Работа с объектами в MAXScript
Для того чтобы назначить текущее видовое окно для камеры, выполните следующее упражнение.
1. Активизируйте окно вида в перспективе, выделив в этом окне любой находящийся на сцене объект. Введите в свой сценарий следующую строку кода: viewport.setcamera tc
2. Активизируйте безопасные кадры в этом видовом окне, введя следующую строку кода:
max safeframe toggle
А теперь сохраните сценарий в файле, поскольку вам еще предстоит вернуться к нему.
Средствами MAXScript можно получить доступ к редактору материалов, а также к отдельным материалам, применяемым к объектам. В частности, для доступа к материалу, назначенному для объекта, служит свойство .material или .mat:
<node>.material
<node>.mat
А для доступа к материалу в редакторе материалов служит виртуальный массив meditMaterials. Этот массив организуется в 3dsMax автоматически и индексируется номерами соответствующих позиций образцов в редакторе материалов, например:
meditmaterials[3]
При выполнении этой строки кода возвращается материал, находящийся на третьей позиции образца в редакторе материалов.
Глава 6
Предупреждение - Массив MeditMaterials состоит только из 24 элементов, поэтому будьте внимательны, чтобы не выйти за пределы этого массива во время его индексации. Так, обращение meditMaterials[25] к данному массиву приведет к ошибке.
Материалы можно создавать, как отдельные объекты, и назначать их для объектов сцены. Каждый тип материала имеет свой конструктор. Например, конструктор стандартного материала имеет следующий вид:
standard()
Как только стандартный материал создан, его карты становятся доступными
в виде свойств данного материала:
sm = standard()
sm.diffusemap
Разные виды карт можно также создавать, как отдельные объекты, и назначать их для отдельных каналов проецирования:
ch = checker()
sm.diffusemap = ch
Для отображения карты в видовом окне служит метод showTextureMap: showTextureMap sm ch on
В этой строке кода активизируется режим отображения карты клетчатого рисунка ch в материале sm.