Внесение элемента случайности

С помощью метода random в MAXScript можно сформировать случайные значения следующих типов данных: integer, float, color, quat, eulerAngles, angleAxis, time, Point2 и Point3. Эти случайные значения можно использовать для изменения любого свойства, имеющего заданный тип данных. Ниже приведен простой пример применения метода random.

 

 


Глава 6

for i = 0 to 5 do

(

s = sphere pos: [i*40, 0, 0]

s.radius = random 10.0 30.0

)

Метод random дает произвольные значения. Его синтаксис следующий: random (наименьшее значение) (наибольшее значение)

Метод random возвращает случайное значение, которое находится в промежутке между минимальным и максимальным значениями, указанными при вызове данного метода. В приведенном выше примере радиус каждой сферы получает случайное значение в пределах от 10, 0 до 30,0. Если в качестве аргументов метода random указываются числовые значения с плавающей точкой, возвращаемое случайное значение также будет числом с плавающей точкой. Если же в качестве аргументов указываются целочисленные значения s.radius = random 10 30,

то возвращаемое случайное значение будет целым числом (в данном примере это ряд случайных значений 25, 27, 35 и т.д.)

Метод random реализован достаточно гибко, и если передать ему значения типа Point 3, то с его помощью можно внести случайный элемент в положение, цвет и прочие свойства объектов. Так, для произвольного расположения сфер из упо­минавшегося выше примера можно написать следующий фрагмент кода:

for i = 0 to 5 do

(

s = sphere()

s.pos = random [0.0, 0.0, 10.0] [25.0, 30.0, 100.0]

)

Метод random может полностью воспринимать в качестве аргумента значение типа Point3. В приведенном выше фрагменте кода положение сфер по оси X из­меняется произвольно в пределах от 0, 0 до 25, 0, по оси Y — в пределах от 0, 0 до 30, 0 и по оси Z — в пределах от 10,0 до 100,0.

Допустим, что в начале сценария имеется следующая строка кода:

s.pos.x = random 0.0 10.0.

При ее выполнении получается случайное значение в пределах от 0,0 до 10,0. Если перезапустить 3dsMax и сразу же выполнить данный сценарий без каких-либо других функций 3dsMax, указанная строка кода даст то же самое "случайное" значение. Но при каждом последующем выполнении данного сценария в том же самом сеансе работы в 3dsMax это значение будет иным.

Внутри метода random используется некоторое начальное случайное значение. Это значение служит в качестве отправной точки для выполнения внутренней про­цедуры формирования случайных чисел. При запуске 3dsMax всегда используется одно и то же начальное случайное значение. Поэтому метод random формирует одну и ту же последовательность "случайных" значений всякий раз, когда он вызывается. Именно по этой причине метод random называется псевдослучайным. Если такой режим формирования случайных значений вас не устраивает, измените начальное случайное значение с помощью метода seed следующим образом:


Работа с объектами в MAXScript

seed <number>

-- где <number> - любое целое число

-- или же число с плавающей точкой

Этот метод может быть связан с функцией NewSeed (Новое начальное случайное значение) таких элементов 3dsMax, как вспомогательный объект SphereGizmo.

Заключение

В этой главе вы научились делать много полезных вещей средствами MAXScript. Сначала вы научились применять модификаторы, а затем создавать источники света и камеры и манипулировать ими, а также создавать материалы и назначать их для объектов сцены. И наконец вы научились управлять средством визуализации по сценарию, организовывать в сценарии обратный вызов и формировать случайные значения с помощью метода random.

Используя инструментальные средства, освоенные в главах этой книги, и научившись пользоваться иерархией классов по справочному руководству MAXScript, мы можете теперь приступить к созданию собственных сценариев.


Приложение

В этом приложении представлен дополнительный материал по MAXScript По мере приобретения опыта программирования на языке MAXScript и написания все более сложных сценариев у вас может возникнуть потребность в инструментальных средствах, представленных в данном приложении. Если же вы только начинаете изучать MAXScript этот дополнительный материал принесет вам пользу лишь после того, как вы накопите некоторый опыт программирования в MAXScript

Приложение