Читайте также:
|
|
Поскольку MAXScript предназначен для работы с объектами, составляющими сцену, логично иметь возможность работы с именами этих объектов и, соответственно, иметь литералы, обозначающие имена объектов. Для этого записывается имя объекта, то самое, которое появляется в списке при выборе объекта в 3ds max, а к нему слева приписывается знак $. Например
$box01
Поскольку объекты часто объединяются в иерархии, для их обозначения применяются такие литералы
$man/torso/hand
то есть данным литералом поименован объект hand, который является дочерним по отношению к объекту torso, который в свою очередь происходит от объекта man.
С помощью литералов имен объектов можно выбрать и целую группу объектов с похожими именами. Для этого используются символы * и?. Например литерал
$box*
обозначает все объекты, имена которых начинаются с box. При этом звездочку можно ставить не только в конце, но и в любом месте литерала и даже в нескольких местах. Например, такая строка
$*box*
именует все объекты, в имени которых сочетание букв box находится в любом месте имени. Очень удобно использовать символ * при работе с иерархиями объектов. Например, литерал
$man/*
выберет всех прямых потомков объекта man.
Если Вам надо выбрать не только прямых, но всех прочих потомков какого-либо объекта на всех уровнях иерархии, то для этого используют такую запись
$man/…/*
или, что то же самое
$man…*
При этом если надо найти всех потомков, чьи имена начинаются, например, на букву h, то можно написать
$man…h*
Разница между символами * и? следующая. Если символ * заменяет любую группу символов, то? любой одиночный символ. Представим себе сцену, в которой содержатся три объекта: box1, box2 и box16. В этом случае скрипт
hide box*
скроет все объекты сцены, а
hide box?
только box1 и box2.
кроме того, существует и один специальный литерал - $. Он означает все выбранные объекты сцены. Например
hide $
скроет все выбранные в данный момент объекты. Однако эту возможность следует использовать с осторожностью, так как в случае, если в сцене нет выбранных объектов, такой скрипт выдаст ошибку. Для работы с выделенными объектами лучше использовать переменную selection. Например
hide selection
выполнит ту же самую работу аккуратнее.
В именах объектов могут использоваться пробелы или специальные символы. В таком случае для написания подобных имен, как и для имен переменных, используются одинарные кавычки. Например
$’Snow man’
При этом в число символов, защищаемых кавычками, не входят * и?. Поэтому если Вы хотите именовать объекты, в имени которых содержатся эти символы, используйте обратный слеш. Например, имя объекта konjak*** запишется так
$’konjak\*\*\*’
Символ пробела, защищаемый кавычками, может быть заменен символом подчеркивания “_”. Например, приведенные ниже литералы обозначают имя одного и того же объекта
$’Snow Man’
$Snow_Man
Литералы точек в двумерном и трехмерном пространстве
Точка с двумя координатами записывается примерно так
[ 2.8, 4.2 ]
а с тремя аналогично
[ 3.1, 5.0, 6.24 ]
Естественно, что сначала записывается координата x, затем y, а потом, если есть z. В качестве координат необязательно должны быть числа, могут быть и выражения
[ x, y * 2 + 4.5, z / 3.14 ]
Дата добавления: 2015-10-31; просмотров: 129 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Выделение памяти и уборка мусора | | | Литералы массивов |