Глава6. Редактирование и внутренняя и сетка Bryce



В ЭТОЙ ГЛАВЕ


В чем суть процесса редактирования? Редактирование представляет собой точную настройку. Именно в этом процессе все объекты настраиваются или иным образом перемещаются в нужное положение и принимают требуемый вид. Чтобы понять, что происходит в процессе редактирования, необходимо мыслить одной из следующих основных категорий: Все перечисленные выше вопросы будут рассмотрены в этой главе, посвященной редактированию объектов в Вгусе.
Приведение сцены в движение, или ее анимация также имеет отношение к редактированию, однако обсуждение этого вопроса мы отложим до глав, посвященных анимации (главы 14 и 15), а в остальных речь пойдет об особых видах анимации (местности, неба и материалов).
Палитра редактирования объектов (Edit Palette) является именно тем местом, где производится большая часть действий над объектами, В ней имеются восемь основных элементов управления. Все они показаны на рис. 6.1. Элементы редактирования Edit Materials (Редактировать материалы) и Edit Terrain/Object (Редактировать местность или объект) рассматриваются в других главах. А в этой главе основное внимание уделяется следующим элементам управления: Resize (Изменить размер), Rotate (Повернуть), Reposition (Изменить положение), Align (Выровнять), Randomize (Произвольно распределить) и Object Conversion (Преобразование объекта).

Рисунок 6.1 Палитра редактирования объектов


Структура, положенная в основу мира Вrусе


После того как объект будет выделен, появляется возможность что-то с ним сделать. В частности, можно изменить его размер, положение, атрибуты или ориентацию в создаваемом мире. Именно для этого и предназначены элементы управления Resize, Rotate и Reposition. Каждый из них будет рассмотрен по очереди, однако прежде мы обсудим мир Вгусе, или пространство xyz и положенную в его основу сетку.

Оси XYZ


Рассмотрим вкратце пространство xyz- Вспомните, что оно обсуждалось в конце 2-й славы. Три измерения этого пространства могут быть обозначены соответственно мировым пространством (World Space), пространством объектов (Object Space) и пространством камеры (Camera Space). Мировое пространство определяется как абсолютное: х — это измерение в направлении с востока на запад, у — это измерение в направлении сверху вниз, z — это измерение в направлении с севера на юг. Пространство объектов определяется относительно объекта и его размеров: ширины (х), высоты (у) и глубины (z). А пространство камеры определяется субъективно благодаря изменению точки наблюдения сиены: ось х направлена слева направо, ось у — сверху вниз, а ось z — спереди назад. Что касается редактирования в Вгусе, то в данном случае дело приходится иметь со всеми тремя перечисленными выше разновидностями пространства xyz.

Редактирование в мировом пространстве, пространстве объектов и в пространстве камеры


Для изменения размера, положения или вращения объектов можно работать в любом из упомянутых выше пространств Вгусе, В зависимости от того, в каком пространстве приходится работать с объектом, он будет изменяться несколько иначе. А как можно узнать, в каком пространстве находишься? Во всплывающем меню каждого из элементов управления изменением размера, положения или вращения объектов имеются пункты для выбора конкретного пространства (рис. 6.2). Переход между тремя разновидностями пространства Вгусе осуществляется по принципу: "один за всех и все за одного". В частности, переход в другое пространство в одном меню, скажем, в меню Resize, отражается и в других меню.

Рисунок 6.2 Всплывающие меню элементов управления Resize, Rotate и Reposition


Мировое пространство


Если выбрано мировое пространство, тогда настройка объекта осуществляется вдоль осей х, у и z мира Вгусе.
Если объект не выровнен по этим осям, то при изменении его размера по оси х будет создаваться такое впечатление, будто объект растягивает или сжимает некая внешняя сила, действующая по оси х, независимо от ориентации объекта. Это же справедливо и для вращения объекта, А в результате изменения положения объекта он перемещается только в направлении на север, юг, восток, запад, вверх или вниз независимо от ориентации объекта в пространстве.
Каркас представляет собой в мировом пространстве ограничивающий объем, измерения которого всегда совпадают с осями х, у и z мирового пространства (рис 6.3а).

Пространство объектов


Если выбрано пространство объектов, тогда выделенный объект преобразуется в зависимости от положения собственных осей х, у и z. Главное преимущество работы в пространстве объектов состоит в том, что объект, который так или иначе уже размещен и повернут, можно сделать "шире", не теряя целостности его формы (что обычно происходит с объектом, когда он делается "шире" в мировом пространстве).
На рис. 6.3б показано, как ограничивающий объем точно совпадает в пространстве объектов с границами объекта. Подобно хорошо подогнанному костюму, ограничивающий объем пространства объектов следует за объектом.

Рисунок 6.3 Сравнение ограничивающих каркасных объемов; а). В мировом пространстве; б). В пространстве объектов; в). В пространстве камеры


Пространство камеры


Если выбрано пространство камеры, преобразования объекта происходят относительно положения камеры. Поэтому независимо от ориентации объекта и положения осей х, у и z мирового пространства увеличение объекта по оси х в пространстве камеры на самом деле будет происходить слева направо относительно точки его наблюдения. На рис. б.Зв обратите внимание на то, как объект выровнен по краям окна сцены. При изменении размера или положения выделенного объекта в пространстве камеры ось х проходит слева направо, ось у — сверху вниз, а ось z — спереди назад относительно точки наблюдения сцены. При вращении объектов в пространстве камеры оси вращения располагаются параллельно осям камеры. Выбор объекта и его перемещение в другое место происходит в пространстве камеры (если при этом не нажаты клавиши ограничения, перемещение объекта будет ограничено мировым пространством). Это справедливо еще с версии Вгусе 1.
На рис. 6.4. показан один и тот же куб, перемещенный с помощью мыши в разные углы сцены. При этом ограничивающий каркас не обращен прямо в камеру подобно центру, объекта. Иными словами, ось z мирового пространства не направлена в камеру, а остается параллельной оси z, проходящей через камеру.
Попробуйте сделать следующее: откройте файл сцены MOVE AND CONSTRAIN из сопровождающего книгу CD-ROM. Воспользуйтесь меню одного из трех элементов изменения вида объекта для перехода в пространство камеры. Перетащите куб в разные углы сцены с помощью мыши. Обратите внимание на то, как изменяется перспектива ограничивающего куб объема в каждом его положении.

Рисунок 6.4 В центре показан куб, приведенный на рис 6.3в. А вокруг него приведены изображения того же самого куба, перемещенного в разные части сцены в пространстве камеры


Сетка


Внутри мира Вгусе имеется невидимая сетка. К ней можно обратиться по команде Snap to Grid (Привязать к сетке), вызываемой из всплывающего меню Alignment (Выравнивание). Что собой представляет сетка? В Вгусе отсутствует команда отображения сетки, хотя она и является структурой, положенной в основу мира Вгусе, причем многие элементы управления редактированием действуют относительно сетки. Точки сетки показаны на рис. 6.5. Когда во внимание принимается наличие сетки, это позволяет более эффективно работать в Вгусе.

Рисунок 6.5 Внутренняя сетка Вгусе


Единицы измерения сетки отличаются от единиц измерения, принятых в нашем мире: дюймов, пунктов, миль, километров и т.п. Вгусе — это мир в себе, и поэтому Совет по единым мерам и единицам измерения в мире Вгусе разработал особые единицы измерения, исходя из внутренней логики этого мира и учитывая удобство их применения. Сетка и единицы измерения соответствуют размерам объектов при их появлении в мире Вгусе. Это так называемые единицы Вгусе или сокращенно В. Символ В, обозначающий единицы измерения в Вгусе, можно увидеть в некоторых диалоговых окнах: Object Attributes, 3D Transform, Replicate. В связи с тем что эти единицы измерения отображаются на каждой оси, они описывают линейный размер объекта (и размер вообще) в данном измерении. В реальном мире это соответствует длине n сантиметров, а не объему n кубических сантиметров.
Примитив в Вгусе, при создании, размещается во вполне определенном месте. Оно называется единичным элементом, которым обозначаются размер и ориентация. К нему объекты привязываются при вызове команды Unity с помощью соответствующего клавиатурного эквивалента. (Принцип действия команды Unity будет рассмотрен далее в этой главе.) На рис. 6.6 показаны единичный элемент и точки сетки, его составляющие. При создании местности этот объект появляется в Вгусе с размером, в четыре раза превышающим размер единичного элемента по ширине и глубине. А вот по высоте его размер составляет один единичный элемент. При создании бесконечной плоскости ее каркас оказывается в четыре раза больше размера местности. Несмотря на то что каркасы бесконечных плоскостей в 16 раз больше размера единичного элемента, этот размер буквально не соблюдается, поскольку у бесконечных плоскостей во время визуализации он оказывается бесконечным. На рис. 6.7 приведены для сравнения размеры единичного элемента, местности и каркаса бесконечной плоскости в пространстве Вгусе.

Рисунок 6.6 Единичный элемент и точки сетки, которые определяют часть пространства, занимаемою единичным элементом


Рисунок 6.7 Сравнение размеров единичного элемента, местности и каркаса бесконечной плоскости


Единичный элемент является основной единицей измерения сетки в частности и Вгусе вообще. Еще одной важной единицей .измерения является единичный шаг — расстояние, на которое перемещается объект при нажатии одной из клавиш стрелок на клавиатуре компьютера. В одном единичном элементе содержится четыре единичных шага. (Еще в версии Вгусе 2 единичный шаг и шаг сетки были одинаковы. Однако начиная с версии Вгусе 3D, шаг сетки был увеличен и теперь равен единичному элементу). Для более точной настройки имеется шаг помельче, определяющий расстояние, на которое осуществляется пошаговое перемещение объектов при одновременно нажатых клавишах стрелок и модифицирующей клавиши Option (в Macintosh) или Alt (в Windows). Поэтому далее эта единица измерения будет называться модифицированным единичным Option/Alt-шагом. В одном единичном шаге содержится 64 модифицированных единичных Option/Alt-шага, тогда как в одном шаге сетки содержится четыре единичных шага. Несмотря на то что единицы измерения пространства в Вгусе рассматриваются здесь с точки зрения пошагового перемещения в нем, сам процесс и методы пошагового перемещения описываются далее в этой главе.
Числовые значения каждой из указанных выше единиц измерения приведены ниже, а пространственное их соотношение показано на рис. 6.8.
Единица Вrусе = .01
Единичный шаг = 5.12
Единичный элемент/шаг сетки = 20.48
8 единиц Вгусе = 1 модифицированный единичный Option/Alt-шаг
64 модифицированных единичных Option/Alt-шага = 1 единичный шаг
4 единичных шага = 1 единичный элемент/шаг сетки

Рисунок 6.8 Единицы измерения сетки в Вгусе: на один единичный элемент/шаг сетки приходится четыре единичных шага, а ширина местности составляет четыре единичных элемента


В таких пропорциях не больше странного, чем в 12 дюймах в одном футе, 36 дюймах в одном ярде и 5280 футах в одной миле. Если эти единицы измерения существуют в данном мире, значит, в этом есть известный смысл. По крайней мере, к ним можно привыкнуть. Приведенные выше соотношения выражены ниже в единицах Вгусе:
1 единица Вгусе = 0.01 В
1 модифицированный единичный Option/Alt-шаг = 0.08 В
1 единичный шаг = 5.12 В 1 единичный элемент/шаг сетки = 20.48 В
В связи с тем что Вгусе — это мир единиц и нулей, такая его особенность выражается в числовом обозначении единиц измерения в виде следующего числового ряда: 1, 2, 4, 8, 16, 32, 128 и т.д. По принятому в Вгусе соглашению десятичная точка в единицах Вгусе располагается в другом месте, поэтому число 2048 превращается в число 20.48. Это связано с тем, что числовое значение единицы Вгусе равно 0.01В.
Мы еще вернемся к приведенным выше стандартным единицам измерения при рассмотрении других элементов управления редактированием далее в этой главе.

Редактирование одного объекта: изменение размера, изменение положения, вращение, переворачивание, выравнивание объекта


А теперь, когда рассмотрены принятые в Вгусе единицы измерения пространства, можно перейти собственно к элементам управления редактированием. Прежде всего, рассмотрим те элементы управления, которые изменяют атрибуты одного объекта. Как следует из рис. 6.9» все они находятся в левой части палитры редактирования объектов, не считая крайних элементов управления, которые рассматриваются в других главах. Это три элемента управления, начинающиеся на букву R: Resize, Rotate и Reposition. Они позволяют работать с одним объектом. Разумеется, они могут быть использованы и для работы с несколькими объектами, однако в отличие от элементов управления, расположенных справа от них в рассматриваемой здесь палитре, они не требуют выделения нескольких объектов для выполнения операций редактирования. Эти элементы управления позволяют редактировать свойства, составляющие матрицу объекта (рассмотренную в главе 4).

Рисунок 6.9 Палитра редактирования объектов, разделенная на логически сгруппированные элементы управления


Объект может быть изменен следующими четырьмя способами: Несмотря на то что элементы управления Resize, Rotate и Reposition представлены в палитре редактирования объектов слева направо, сначала будет рассмотрен элемент управления Reposition, поскольку принципы, используемые для изменения положения объекта, распространяются и на изменение размера объекта.

Изменение положения объектов в Вгусе


Первым и самым основным способом редактирования объекта является изменение его положения. Объекты могут быть перемещены на сцене следующими четырьмя способами:
Непосредственное перетаскивание объекта с помощью клавиш ограничения


Несмотря на то что в большинстве графических программ для ограничения перемещения курсора используется клавиша Shift, данная операция может быть осуществлена только в двух направлениях — по горизонтали и по вертикали, если смотреть прямо на экран монитора. А поскольку Вгусе является трехмерной графической программой, в ней перемещение объектов ограничивается не одной, а тремя следующими клавишами в каждом измерении: Чтобы добиться идеального перемещения вдоль заданной оси, следует непременно нажать клавишу ограничения перед тем, как начать перетаскивание. В противном случае ограничение перемещения будет начато не с той точки, в которой объект находился в тот момент, когда было начато его перетаскивание. В итоге ограничение проявится не сразу. Например, если начать перемещение объекта вдоль оси х, а затем ограничить его движение некоторое время спустя, объект может слишком далеко отклониться за это время от начального положения вверх или вниз. В этих случаях для ограничения перемещения объектов в Вгусе выбирается ряд произвольных уровней вдоль сетки, поэтому ограничение перемещения следует непременно вводить с самого начала.
К сожалению, эти меры предосторожности трудно соблюсти при использовании одной из комбинаций клавиш, в которые входит клавиша Control (в Macintosh) или Ctrl (в Windows). Напомним, что если щелкнуть внутри сцены, удерживая нажатой клавишу Control/Ctrl, тогда появится контекстное меню со списком команд выделения. Поэтому клавишу ограничения следует нажимать сразу же после выполнения щелчка на объекте, чтобы свести к минимуму самопроизвольное его перемещение.
При нажатии клавиши ограничения курсор изменяет свой вид на двойную стрелку. После этого объект будет перемещаться в режиме перетаскивания только по одной заданной оси в мировом пространстве.

Элемент управления Reposition


Подобно непосредственному перетаскиванию объекта, элемент управления Reposition дает возможность перемещать объект вдоль трех осей. Однако ограничивающие клавиши в данном случае отсутствуют, поскольку перемещение само по себе уже ограничено. Элемент управления Reposition особенно подходит для перемещения небольших объектов, положение которых затрудняет их перемещение. Аналогично остальным элементам управления из рассматриваемой здесь группы, Reposition позволяет перемещать объект вдоль одной из осей, скажем, оси х, мирового пространства, пространства объектов или пространства камеры.
Для перемещения объекта вдоль оси х достаточно потянуть элемент управления Reposition за любой конец его рукоятки, соответствующей оси х (В руководстве по программе рукоятки на обоих концах каждой оси по не совсем понятной причине имеют разные наименования, хотя результат получается одним и темже независимо от того, какую из них потянуть.) Перемещение объекта по двум другим осям осуществляется аналогичным образом. Независимо от конкретной оси перемещение объекта по горизонтали приводит к изменению его положения. В частности, перемещение объекта вправо позволяет скорректировать его положение в положительном направлении, а перемещение влево — в отрицательном.
В связи с тем, что клавиши ограничения, которые можно было бы применять совместно с элементом управления Reposition, отсутствуют, вместо них возможно использование модифицирующей клавиши (не упомянутой в руководстве по программе). Для уменьшения скорости перемещения объекта приблизительно в 10 раз следует нажать клавишу Option/Alt, потянув одновременно рассматриваемый элемент управления. Такой способ оказывается весьма полезным для точного расположения объекта.

Изменение положения объекта в мировом пространстве, пространстве объектов и пространстве камеры


В каком же их трех пространств Вгусе следует работать при изменении положения объекта? Для начала можно попробовать непосредственное перетаскивание выделенного объекта в пространстве камеры (если при этом не нажата одна из клавиш ограничения, осуществляется переход в мировое пространство). Таким образом, объект можно перетаскивать вверх, вниз, влево или вправо относительно ориентации камеры.
Если задействованы клавиши пошагового перемещения объектов, тогда работать приходится в мировом пространстве, где объект перемещается в направлении на север, юг, восток, запад либо выше или ниже по высоте.
При использовании элемента управления Reposition объекты перемещаются в том пространстве, которое выбрано во всплывающем меню этого и двух других элементов управления из рассматриваемой здесь группы.

Упражнения

Для анализа отличий в перемещении в трех разных пространствах выполните следующее упражнение:
  1. Откройте файл сцены MOVE AND CONSTRAIN из сопровождающего книгу CD-ROM. В этой сцене объект повернут таким образом, что с осями мирового пространства не совпадают ни его оси, ни ориентация камеры.
  2. Выберите пункт World Space из всплывающего меню одного из элементов управления Resize, Rotate или Reposition. Объем, ограничивающий объект, изменяет свое положение, выравниваясь в мировом пространстве. Потяните разные рукоятки элемента управления Reposition и понаблюдайте за тем, как куб перемещается вдоль линий сетки расположенной внизу на плоскости земли.
  3. Выберите из всплывающего меню пункт Object Space Обратите внимание на то, что ограничивающий объем изменяет свое положение, выравниваясь по объекту. (Сцена должна иметь подобный вид, когда она открывается в первый раз.) Опять потяните рукоятки элемента управления Reposition. На сей раз обратите внимание на то, как куб перемещается вдоль одной из своих внутренних осей независимо от положения сетки на плоскости земли или ориентации камеры. Ради интереса попробуйте потянуть этот элемент управления, удерживая нажатой клавишу Option/Alt. Движение замедляется, не так ли?
  4. Выберите из всплывающего меню пункт Camera Space. Ограничивающий объем опять изменяет свое положение. Его края располагаются параллельно рамке сцены, а куб виден в перспективе. Воспользуйтесь элементом управления Reposition для перемещения куба, обратив внимание на то, что если потянуть в этом элементе управления рукоятки осей х и у, куб будет перемещаться по горизонтали и по вертикали. А если потянуть рукоятку оси z, куб приближается или удаляется.
Попутно следует обратить внимание на несколько неожиданное свойство пространства камеры. Прежде всего, воспользуйтесь командой File>Revert to Saved, чтобы снова выровнять куб по центру рабочего окна. Перейдите в пространство камеры. А теперь потяните элемент управления Banking (Крен), чтобы повернуть камеру вокруг оси z- Обратите внимание на то, что ограничивающий куб объем все еще располагается параллельно краям экрана. А теперь попробуйте потянуть рукоятки осей х и у в элементе управления Reposition. Куб не перемещается параллельно краям сцены. А при вращении камеры вокруг оси z пространство камеры не поворачивается вместе с ней. Такая ситуация возникает очень редко, однако о подобной особенности полезно знать.
Измените положение камеры с помощью шарового манипулятора и попробуйте повторить приведенное выше упражнение.
При переходе из мирового пространства в пространство объектов, а затем в пространство камеры действие элемента управления Reposition изменяется. Поэтому для возврата камеры в исходное положение следует щелкнуть на элементе запоминания Default View.
В следующем упражнении предоставляется возможность попрактиковаться в перемещении объекта методом его непосредственного перетаскивания вместо применения элемента управления Reposition. В этом случае выбранная разновидность пространства не оказывает влияния на перемещение объекта.
  1. Убедитесь в том, что выбрано пространство камеры. Разместите куб вровень с рукояткой оси х элемента управления Reposition. А теперь воспользуйтесь мышью для перемещения куба из стороны в сторону. Перемещение происходит совершенно одинаково, не так ли?
  2. Перейдите в мировое пространство и воспользуйтесь мышью для перетаскивания куба по сцене. Как видно, это перемещение ничем не отличается от перетаскивания куба в пространстве камеры.
  3. Нажмите клавишу Control или комбинацию клавиш Ctrl+Alt (чтобы ограничить перемещение по оси х) и перетащите куб. (Напомним, что поскольку в результате выполнения щелчка при одновременно на-жатой клавише Control/Ctrl вызывается контекстное меню, необходимо начать перетаскивание, а затем сразу же нажать клавишу ограничения.) Обратите внимание на то, что при перемещении куб сохраняет ту же ориентацию, что и ограничивающий его объем.
Из предыдущего можно сделать два следующих вывода: при непосредственном перетаскивании объекта с помощью мыши он всегда перемещается в пространстве камеры, а если одновременно нажать и клавишу ограничения, он всегда перемещается в мировом пространстве.

Перемещение с трудом поддающихся перемещению объектов


Если в виде сбоку или спереди требуется переместить некий плоский объект, в частности, плоскость земли, квадрат, диск, бесконечную плоскость или бесконечную пластину, то здесь могут возникнуть некоторые затруднения. Эти объекты трудно выделить под таким углом зрения, поскольку Вгусе "видит" объекты благодаря трассировке лучей. Иными словами, почти все лучи проходят над и под плоскими объектами, поэтому Вгусе трудно различить их под таким углом зрения (рис. 6.10а). Однако в некоторых случаях сцену приходится наблюдать сверху или сбоку для ее корректировки. Для перемещения с трудом поддающихся этой манипуляции объектов имеются две возможности. Первая из них состоит в применении элемента управления Reposition. После выделения объекта он будет перемещен в любом направлении, в котором удастся потянуть элемент управления Reposition. Вторая возможность — непосредственное перетаскивание объекта на сцене Вгусе. Это еще один способ полного управления плоским объектом.

Способ перемещения с трудом поддающихся перемещению объектов

  1. Создайте небольшую сферу в качестве вспомогательного средства перемещения (рис. 6.106).
  2. Выделите плоский объект (в данном случае плоскость земли) и сферу следующим образом: выделите плоскость земли с помощью всплывающего меню Select by Kind (Выделение по типу объекта), вызываемого в палитре выделения объектов (Selection Palette). Далее нажмите клавишу Shift и выделите сферу, непосредственно щелкнув на ней.
  3. Когда оба объекта окажутся выделенными, перетащите сферу. Плоский объект последует за сферой (рис. 10.6.в). Разместите плоский объект в любом удобном месте. После того как сфера окажется ненужной, удалите ее.
Рисунок 6.10 Способ перемещения плоского объекта с помощью вспомогательного объекта а). Плоский объект; б). Создание сферы; в). Перемещение сферы вместе с плоским объектом


Теперь от читателя не ускользнет ни один объект, который не желает перемещаться!

Пошаговое перемещение объектов

Для перемещения выделенных объектов могут быть использованы клавиши стрелок. Они уже были представлены при рассмотрении сетки. В частности, при нажатии любой из клавиш стрелок объект будет перемешаться с небольшим шагом, равным одной четвертой шага сетки, что составляет единичный шаг. Это отнюдь не означает, что объекты перемещаются по сетке. Напротив, они перемещаются на расстояние, кратное шагу сетки. Разумеется, если объект уже выровнен по сетке, он будет оставаться там во время своего перемещения.
Для перемещения объектов на один единичный шаг клавиши стрелок, а также клавиши Page Up и Page Down могут быть использованы следующим образом: На рис. 6.11 показана ориентация клавиш стрелок в мировом пространстве Вгусе. Наиболее понятным их действие становится в виде сверху, где эти клавиши, в соответствии с обозначением стрелок на них, позволяют перемещать объекты вперед, назад, влево и вправо. В связи с тем что угол наклона камеры устанавливается по умолчанию по диагонали к осям х и z, иногда можно спутать комбинации клавиш стрелок вправо и влево, а также вверх и вниз. При просмотре сиены ? виде сбоку пользоваться клавишами стрелок непросто, поскольку в этом случае объекты перемещаются в противоположном направлении по сравнению с тем что указано на клавишах. Таким образом, в любом виде клавиши стрелок указывают то направление, в котором объекты будут перемещаться в мировом пространстве Вгусе при нажатии той или иной клавиши. Действие клавиш стрелок фиксировано в мировом пространстве Вгусе. Они не перемещают объекты как-то иначе в пространстве объектов или в пространстве камеры.
А теперь рассмотрим более подробно различные варианты определения расстояния, покрываемого при перемещении объекта на один шаг с помощью клавиши стрелки.

Рисунок 6.11 Пространство Вгусе и ориентация клавиш стрелок: а). Режиссерский вид (клавиша -); б). Вид камеры (клавиша 1); в). Вид сверху (клавиша 2); г). Вид снизу; д). Вид справа (клавиша 3); е). Вид слева; ж). Вид спереди (клавиша 4); з). Вид сзади.


Применение модифицирующих клавиш

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

Модифицированный Shift-шаг 2 единичных шага (1/2 шага сетки/единичного элемента)
Простой шаг 1 единичный шаг (1/4 шага сетки/единичного элемента)
Модифицированный Option+Shift/Alt+-Shift-шаг 1/2 единичного шага (1/8 шага сетки/единичного элемента)
Модифицированный Option/Alt-шаг 1/64 единичного шага (1/256 шага сетки/единичного элемента)

Таким образом, клавиша Shift увеличивает модифицированный шаг, а комбинация клавиш Option/Alt уменьшает его, тогда как комбинация клавиш Option/ Alt и Shift делает модифицированный шаг чуть больше самого мелкого шага, выполняемого только с помощью комбинации клавиш Option/Alt. На рис. 6.12 показаны относительные размеры единичных шагов, которые обозначены для каждой из указанных выше комбинаций клавиш.

Рисунок 6.12 Расстояния, которые объект покрывает при использовании модифицирующих клавиш вместе с клавишами стрелок для пошагового перемещения объектов


Упражнения для освоения пошагового перемещения объектов

Если упражнение по освоению комбинаций клавиш в режиме Flyaround, приведенное в главе 3, показалось читателю весьма интересным, тогда ниже ему предстоит дополнительная практика в том же духе. Это даст возможность освоить все комбинации клавиш Control, Command, Option, Ctrl, Alt, Shift. Итак, принимайтесь за следующее упражнение:
  1. Начните с основных клавиш стрелок для пошагового перемещения объектов. Если вам еще не приходилось перемещать объекты подобным образом, тогда это следует сделать сейчас. Создайте объект и переместите его в том или ином направлении с помощью клавиш стрелок, а также клавиш Page Up и Page Down. После небольшой практики обнаруживается, что клавиши стрелок нажимаются для перемещения объектов в определенном направлении в соответствующем виде совершенно интуитивно, хотя в виде сбоку их все еще можно перепутать.
  2. Выполните пошаговое перемещение, увеличив шаг. Нажмите клавишу Shift, воспользуйтесь клавишами для пошагового перемещения, обратив внимание на то, что объекты перемещаются вдвое дальше, чем прежде.
  3. Выполните пошаговое перемещение, уменьшив шаг. Нажмите комбинацию клавиш Shift и Option/Alt, обратив внимание на то, что объекты перемещаются на расстояние, равное половине единичного шага.
  4. Выполните пошаговое перемещение, уменьшив шаг до самого мелкого. Нажмите клавишу Option/All одновременно с клавишами стрелок. Прежде чем станут заметны существенные изменения в положении объекта на экране, эту комбинацию клавиш придется нажать несколько раз.
Изменение размера объекта


С помощью элементов управления изменением размера можно превратить исходные симметричные объекты (в частности, куб или пирамиду) в объекты совершенно иной формы. Это дают понять "предварительно обработанные" сжатые и растянутые формы, которые можно обнаружить в палитре создания объектов (Create Palette). После изменения формы исходного объекта существенно расширяются возможности моделирования объектов. В частности, благодаря изменению размера, кубический примитив может быть превращен в плоскую доску, квадратную плитку или прямоугольный кирпич. Цилиндр может стать колонной, крошечной трубкой, едва ли не отрезком нити либо плоской монетой. А сплюснутая пирамида превращается в флаг. Такую гибкость в изменении формы объектов обеспечивает элемент управления изменением размера объекта (Resize). На рис. 6.13 показано несколько объектов, созданных из примитивов с помощью элемента управления Resize.
Уменьшение или увеличение размера объектов может быть осуществлено равномерно либо только по одной оси. Для изменения размера выделенного объекта можно в равной степени воспользоваться его управляющими маркерами и элементом управления Resize.

Рисунок 6.13 Исключительно простая сцена, в которой все объекты созданы из примитивов


Элемент управления Resize позволяет растянуть или сжать объект. Для этого достаточно поместить указатель мыши на данном элементе управления и выполнить перетаскивание, потянув его до получения требуемого размера, после чего следует отпустить кнопку мыши. В зависимости от того, в каком направлении потянуть данный элемент управления, объекты растягиваются или сжимаются. При размещении указателя мыши над разными частями данного элемента управления предоставляются два вида обратной связи, которые сообщают о том, каким образом будет изменен размер объекта. Во-первых, изменяется собственно элемент управления объектом. А во-вторых, изменяется курсор, принимая одну из четырех возможных форм. Когда указатель мыши находится над центром объекта, появляется курсор равномерного изменения размера объекта. В этом случае объект равномерно увеличивается. Если же позиционировать курсор над любым краем рассматриваемого элемента управления, тогда появится курсор, указывающий ось, по которой будет произведено изменение размера объекта: х, у или z.
Для увеличения размера объекта следует потянуть рассматриваемый элемент управления вправо, а для уменьшения — влево. Это же справедливо и для изменения размера объекта по любой оси, который может быть увеличен в любом направлении.
Так, размер обычного куба, приведенного на рис. 6.14, изменен по оси х. В этом случае куб вытягивается наружу в одном направлении, определяемом выбранной стороной. Таким образом, если потянуть рассматриваемый элемент управления вправо, куб увеличится соответственно.

Рисунок 6.14 Увеличение куба по оси х


То же самое происходит, если непосредственно потянуть управляющие маркеры изменения размера выделенного объекта. При этом курсор изменяет свой вид, указывая на ту ось, по которой происходит изменение размера объекта. Обратите внимание на маркеры в виде небольших кубиков на каждом конце элемента управления Resize, которые совпадают с формой и положением управляющих маркеров в ограничивающем объект объеме. (Такая согласованность маркеров в компоновке интерфейса весьма уместна!) Размер объекта здесь увеличивается или уменьшается в направлении, определяемом выбранной стороной и соответствующим маркером. Проще говоря, если не трогать тот или иной край, он остается на месте.
Если потянуть элемент управления Resize из центра, аналогично увеличивается или уменьшается объект. Однако в связи с отсутствием соответствующего управляющего маркера в центре объекта непосредственное изменение размера объекта в данном случае осуществляется несколько иначе. Для равномерного изменения размера объекта следует потянуть любой из угловых маркеров ограничивающего объект объема. Хотя вместо увеличения размера объекта из центра происходит его увеличение в направлении того угла, из которого было начато перетаскивание. Куб, приведенный на рис. 6.15, был пропорционально увеличен в результате перетаскивания из левого верхнего угла. В изображении, показывающем этот процесс в три этапа, противоположный правый нижний угол остается на месте. Таким образом, куб увеличивается влево.

Рисунок 6.15 Пропорциональное изменение размера объекта в результате его непосредственного перетаскивания: объект увеличивается в направлении того угла, из которого было начато перетаскивание, а противоположный его угол остается на месте


Применение модифицирующих клавиш при изменении размера объекта


А что требуется для того, чтобы увеличить объект из центра в обоих направлениях по определенной оси. Для этого необходимо воспользоваться модифицирующей клавишей. В этом разделе можно будет ознакомиться со множеством вариантов применения модифицирующих клавиш для изменения размера объекта тем или иным образом.
В данном разделе ради простоты изложения различных вариантов применения модифицирующих клавиш термин "увеличение" означает увеличение или уменьшение размера объекта. Кроме того, здесь используются термины "фиксированная точка" и "точка захвата". Фиксированная точка — это часть объекта, которая остается на месте, причем объект увеличивается или уменьшается из данной точки. А точка захвата - это точка объекта, из которой осуществляется его перетаскивание. Если нажать клавишу Control или комбинацию клавиш Ctrl+Alt перед тем как щелкнуть на любом управляющем маркере, размер объекта будет снова изменяться на величину единичного элемента.
Итак, подведем итоги. Все модифицирующие клавиши, которые находятся в нижнем ряду клавиатуры (Command, Option, Control в Macintosh или Ctrl, Alt и комбинация клавиш Ctrl+Alt в Windows) видоизменяют операцию изменения размера объекта, а также фиксированную точку, из которой происходит его увеличение или уменьшение. Для справки: фиксированная точка представляет собой остающуюся на месте часть объекта, а точка захвата — ту его точку, из которой происходит перетаскивание.
При стандартном подходе (без применения модифицирующих клавиш) объект увеличивается в направлении точки захвата, а фиксированная точка остается противоположной ей.
При использовании клавиши Option/Alt фиксированная точка оказывается в центре, а объект увеличивается с обеих (либо со всех) сторон.
При использовании клавиши Cmd/Ctrl фиксированная точка оказывается с противоположной стороны, а точка захвата занимает место фиксированной точки, оставаясь в том же положении при увеличении объекта в направлении противоположной стороны.
При использовании комбинации клавиш Control/ Ctrl+Alt объект увеличивается равномерно в направлении точки захвата, а фиксированная точка оказывается противоположной точке захвата, оставаясь при этом на месте.
При использовании клавиши Shift увеличение объекта ограничивается 50%, а его уменьшение — сначала 50%, а затем 0.10 единиц Вгусе.

Способ пошагового изменения размера объекта


Для создания составного объекта выполните следующие пункты (рис. 6.17):
  1. Создайте куб и пирамиду (рис. 6.17а).
  2. Воспользуйтесь элементом управления Resize, потянув его влево по оси z и одновременно удерживая нажатой клавишу Shift, чтобы наполовину уменьшить размер куба в глубину (рис. 6.17б).
  3. Выделите пирамиду. Измените ее размер наполовину. Как следует из рис. 6.17в, она точно совпадает по размеру с кубом, и поэтому ее не нужно подгонять на глаз.
  4. Пирамида все еще должна быть выделена. Нажмите клавишу Page Up четыре раза, чтобы разместить пирамиду на кубе. Как видите, это делается довольно просто (рис. 6.17г).
  5. Дополнительное упражнение. Сделайте пирамиду более плоской, потянув верхнюю рукоятку оси у элемента управления Resize при одновременно нажатой клавише Shift. Затем сгруппируйте оба объекта (рис. 6.17д и е).
Рисунок 6.17 Получение составного объекта из куба и пирамиды: а). Создание куба и пирамиды; б). Изменение размера куба; в}. Изменение размера пирамиды; г). Пошаговое перемещение пирамиды вверх; д). Уменьшение пирамиды по высоте; е). Группирование объектов

Безусловно, можно было бы выделить оба объекта и изменить их размер одновременно. Однако все дело в том, что изменение размера объектов связано с их внутренней сеточной структурой. В частности, когда возникает блестящая мысль добавить новый объект к уже существующему, следует знать все имеющиеся возможности изменения размера объектов.

Применение клавиш умножения и деления


Существуют комбинации клавиш для пропорционального увеличения или уменьшения объектов. В самом деле, если требуется уменьшить исходный размер объекта на 25% по всем трем осям, тогда эти клавиши оказываются весьма кстати. В частности, для увеличения размера объекта в два раза следует нажать клавишу умножения (*), а для уменьшения размера объекта наполовину — клавишу деления (/). Если же нажать клавишу деления два раза, тогда размер объекта уменьшится в четыре раза. Клавиши умножения и деления находятся в верхнем ряду обычной клавиатуры либо дополнительной числовой. (При нажатии клавиши умножения на обычной клавиатуре непременно нажмите одновременно с ней клавишу Shift. В противном случае будет ошибочно введена цифра 8 и произойдет переход к виду камеры.)

Переворачивание объектов


Команды переворачивания объектов (Flip) выбираются из всплывающего меню элемента управления Resize. В результате выполнения любой из данных команд объект переворачивается относительно заданной оси. На рис. 6.18 показаны результаты переворачивания объекта относительно осей х, у и z.
При переворачивании относительно оси X ориентация объекта относительно оси восток-запад изменяется на обратную — та его часть, которая раньше была обращена на восток, теперь направлена на запад. Несмотря на то что ориентация тех частей объекта, которые обращены вверх и вниз, остается без изменения, объект переворачивается. На рис. 6.18б — д обратите внимание на то, что буквы и цифры читаются неверно, поскольку они перевернуты.
При переворачивании относительно оси Z меняется на обратную ориентация объекта относительно оси север-юг, а в результате переворачивания относительно оси Y это происходит по вертикали.
Почему команды переворачивания объекта находятся во всплывающем меню элемента управления Resize? Объяснение этому следует искать в диалоговом окне Object Attributes. Ведь в результате переворачивания в сущности изменяется не размер объекта, а его ориентация. По сравнению с обычным объектом все числовые значения размеров перевернутого объекта оказываются отрицательными. В отличие от смещения и угла поворота, размеры объекта могут быть положительными либо отрицательными. Из этого следует, что если все размеры объекта положительны, значит, это обычный объект, а если отрицательны, тогда это перевернутое зеркальное отображение исходного объекта. Хотя и у этого правила имеется исключение. Как следует из числовых значений, приведенных на рис. 6.18д, в результате двойного переворачивания объекта его размеры оказываются положительными. Как тут не вспомнить старое правило: минус на минус дает плюс.

Рисунок 6.18 Переворачивание местности: а). До переворачивания; 6). Переворачивание относительно оси X; в). Переворачивание относительно оси Y; г). Переворачивание относительно оси Z; д). Переворачивание относительно осей Y и Z

Когда используется переворачивание


Переворачивание вполне пригодно для расположения объектов таким образом, чтобы они были обращены в определенном направлении. И это совершенно очевидно. Однако переворачивание оказывается весьма полезным и при создании более сложных объектов из целого ряда примитивов. Итак, для переворачивания объекта выполните следующее:
  1. Нажмите комбинацию клавиш Cmd+D (в Macintosh) или Ctrl+D (в Windows), чтобы сдублировать объект.
  2. Выберите соответствующую команду переворачивания. Копия объекта окажется перевернутой.
А что если требуется перевернуть объект при точном его выравнивании или изменении его размера? Для создания стрелок осей х, у и z, приведенных на рис. 6.19, был соответственно изменен кубический примитивный объект. После этого была создана пирамида, которая затем была размещена на одном конце параллелепипеда и сплющена до требуемой формы. После создания одной стрелки можно было бы приступить к созданию другой. Но есть ли смысл повторять все предыдущие операции превращения примитивных объектов в стрелку? Конечно, нет. Поэтому пирамида была скопирована, вставлена, перевернута на другом конце сплющенного куба.

Рисунок 6.19 Стрелки осей, созданные с помощью команды переворачивания


Изменение размера объекта в мировом пространстве, пространстве объектов и пространстве камеры


Значение возможности изменять размер объекта в пространстве объектов, а не в мировом пространстве трудно переоценить. Это одно из тех новшеств в Вгусе, которые вызвали бурный поток благодарностей и безудержную радость пользователей. Если читатель еще не разделяет всеобщей радости, тогда у него есть возможность попрактиковаться в изменении размера объекта, чтобы оценить упомянутое выше свойство по достоинству.

Упражнение

Откройте тот же самый файл, который был использован в упражнениях по изменению положения объекта: MOVE AND CONSTRAIN. А если он уже открыт, выполните команду File>Revert to Saved.
  1. Перейдите в мировое пространство. В этом случае ограничивающий объем выровнен в мировом пространстве независимо от ориентации объекта. Это первый ключ к разгадке искажения куба при изменении его размера по оси х. Выполните изменение размера куба по оси х, потянув вправо рукоятку оси х элемента управления Resize. В итоге куб искажается. Отмените эту операцию. Попробуйте сделать то же самое, перетащив управляющий маркер вдоль оси х. Отмените эту операцию. (Выполняйте отмену после каждого перемещения.)
  2. Перейдите в пространство объектов. Ориентация ограничивающего объема изменяется и теперь полностью совпадает с ориентацией объекта. Это первый намек на то, что изменение размера в данном случае будет происходить иначе. Выполните опять изменение размера куба по оси х, воспользовавшись элементом управления Resize. Отмените эту операцию. А теперь попробуйте применить способ непосредственного перетаскивания к ограничивающему объект объему.
    Обратите внимание на то, что размер объекта увеличивается по ширине несмотря на то что он поворачивается. Попробуйте сделать то же самое по остальным осям. Выполняйте отмену после каждого перемещения.
  3. А теперь попробуйте перейти в пространство камеры. Каркас объекта в данном случае выровнен по краям окна сцены. Для изменения размера объекта попробуйте воспользоваться элементом управления Resize, а также методом непосредственного перетаскивания управляющих маркеров по всем трем осям. Изменение размера происходит относительно точки наблюдения. Попробуйте изменить размер объекта, скажем, по оси х, затем измените положение камеры, после чего опять измените размер объекта по оси х. Таким образом, пространство камеры позволяет изменять размер объекта совершенно субъективно.
Что же все это означает?


Отличия в происходящем при изменении размера объекта в мировом пространстве и в пространстве объектов разительны.
В мировом пространстве изменение объекта происходит снаружи, что приводит к растягиванию или вытягиванию объекта вдоль конкретной оси. При воздействии на объект вдоль оси х совершенно не принимается во внимание ориентация объекта. А в пространстве объектов изменение размера объекта происходит внутри самого объекта, не нарушая целостности его формы. Указанные выше отличия приведены на рис 6.20. На рис. 6.20а воздействие на объект в мировом пространстве вдоль оси у как бы придавливает конус вращения. А на рис. 6.20б конус вращения уменьшается по оси у.
Рисунок 6.20 Изменение размера объекта по оси у. а). В мировом пространстве; б). В пространстве объектов


Размещать и вращать объект, корректировать его размер, затем снова вращать и изменять размер можно совершенно интуитивно. Однако в большинстве случаев для дополнительного изменения размера объекта, если он вообще был повернут, приходится работать в пространстве объектов.
Тем не менее, возможны и такие случаи, когда искажение формы объекта в мировом пространстве оказывается желательным. В частности, для придания объекту требуемой формы его можно повернуть, а затем растянуть или сжать в любом из трех измерений. Так, пирамида может быть принудительно повернута под нужным углом, конус без основания может служить отличным источником наклонных лучей света, а в результате правильного применения элементов управления вращением можно добиться видов местности с нависшими краями. Более подробно об образовании нависших краев местности будет сказано в главе 16.
А что произойдет, если подвергнуть объект жестокому испытанию, изменив его размер в пространстве объектов и в мировом пространстве? В этом нет ничего страшного, поскольку в диалоговом окне Object Attributes имеется команда, которая позволяет исправить положение Для этого следует выделить объект с нарушенной формой и щелкнуть на пиктограмме А (либо нажать комбинацию клавиш Cmd+Option+E/Ctrl+AIt+E), чтобы вызвать упомянутое выше диалоговое окно. Затем необходимо щелкнуть на треугольной кнопке, расположенной рядом с меткой Absolute Coordinates (Абсолютные координаты), чтобы вызвать всплывающее меню. В нижней части этого меню находится команда Remove Shear (Устранить сдвиг). Щелкните на этой команде, а затем на кнопке с отметкой, чтобы выйти из диалогового окна Object Attributes. В итоге объект выйдет из неестественного состояния и опять примет свой исходный вид.
А что, собственно, здесь было сделано? Что это за сдвиг? Сдвигом в физике называют силу, которая прикладывается х объекту наискось, что приводит к деформации внутренних осей последнего. В сдвинутом объекте оси не ортогональны, т.е. они уже не находятся под прямым углом друг к другу. Подобная деформация не произойдет, если преобразование объекта всегда будет выполняться в пространстве объектов. Однако если начать преобразования в мировом пространстве или в пространстве камеры, тогда существует риск внести в объект сдвиг (что, возможно, как раз и требуется).
На рис. 6.21а показан один из сдвинутых конусов, приведенных на рис. 6.20. Чтобы вернуть ему исходную, не сдвинутую форму (т.е. восстановить ортогональность его осей), прежде всего следует щелкнуть на пиктограмме А для вызова диалогового окна Object Attributes. На рис. 6.21б показано, каким образом выбирается команда Remove Shear, а результат ее применения приведен на рис. 6.21 в. Если открыть диалоговое окно Object Attributes еще раз, тогда окажется, что числовые значения во всех его полях нисколько не изменились. Иными словами, объект сохраняет свои общие размеры и ориентацию.

Рисунок 6.21 Устранение сдвига объекта: а). Сдвинутый объект; б). Вид диалогового окна Object Attributes со всплывающим меню Coordinates и выбранной командой Remove Shear; в). Объект без сдвига


Вращение


Элемент управления вращением (Rotate) находится в центре палитры редактирования объектов. Он имеет довольно интригующий вид оплетенного кольцами кубического ядра. Вращение, как правило, осуществляется вокруг определенной оси, преимущественно — точки начала отсчета объекта, которая по умолчанию находится в его центре. Ось можно рассматривать в качестве веретена, пронизывающего объект (рис. 6.22). Вокруг этого веретена или оси он и вращается. Как упоминалось в главах 3 и 4, точка начала отсчета может быть удалена из центра объекта. Это дает возможность сместить ось вращения относительно центра объекта или вообще переместить ее за пределы последнего. Элемент управления Rotation, который не имеет никакого отношения к единицам измерения шага сетки, является единственным среди элементов управления редактированием объектов.

Рисунок 6.22 Каждая ось может быть отображена в виде веретена


Прелесть Вгусе состоит в том, что завершать изменение размера объекта перед его вращением отнюдь не обязательно. Благодаря возможности работать в пространстве объектов можно свободно переходить от изменения размера к вращению объектов с помощью элементов управления Resize и Rotate. Поэтому клавиатурные эквиваленты для команд вращения объекта отсутствуют, хотя модифицирующие клавиши при этом все же используются.

Непосредственное вращение


Поместите указатель мыши над управляющим маркером выделенного объекта. При нажатии клавиши Command (в Macintosh) или Ctrl (в Windows) курсор изменяет свой вид на небольшую дугу вращения. Если теперь потянуть маркер, объект повернется. Непременно нажмите клавишу Command/Ctrl, прежде чем потянуть маркер. (Между прочим, это предостережение аналогично тому, что было приведено выше в отношении изменения размера объекта.)
Каким же образом объект будет вращаться? Это зависит от того, какой управляющий маркер потянуть. Если потянуть один из лицевых управляющих маркеров, тогда объект будет вращаться вокруг одной из осей х, у или z. Потянув один из угловых маркеров, вращение будет выполнено в произвольном направлении. При попытке каким-то образом выполнить перетаскивание по прямой линии вверх (хотя курсор при этом исчезает, а вместе с ним пропадают всякие визуальные ориентиры), объект будет вращаться вокруг одной оси. Но поскольку это движение выполняется без всяких визуальных ориентиров, оно не может быть осуществлено по прямой линии вручную, и поэтому объект начнет раскачиваться и вертеться.
Элемент управления Rotate


Принцип действия элемента управления Rotate из палитры редактирования объектов аналогичен методу непосредственного вращения, только вместо захвата и перетаскивания управляющего маркера в данном случае для вращения объекта приходится тянуть рукоятку конкретной оси данного элемента управления. Подобно другим элементам управления в палитре редактирования объектов, которые имеют отношение к осям х, у и z, курсор в данном случае указывает, вокруг какой оси предстоит вращать объект. В элементе управления Rotate отсутствует эквивалент непосредственного перетаскивания углового маркера для вращения объекта в произвольном направлении.
Подобно изменению размера, вращение объекта осуществляется путем перетаскивания влево или вправо. В зависимости от того, в каком направлении объект обращен, а также от перспективы камеры направление вращения может оказаться совершенно не интуитивным. На рис. 6.23а показано вращение по часовой стрелке вокруг каждой оси при перетаскивании вправо (безусловно, это удобно для тех, кто лучше владеет правой рукой, а вот левшам придется поискать преимущества в другом месте интерфейса Вгусе). Направление вращения по часовой стрелке определяется положением камеры. В частности, вращение вокруг оси z осуществляется по часовой стрелке, если смотреть на нее спереди, как показано на рис. 6.23а. С другой стороны, на рис. 6.23б это же вращение показано сзади, т.е. практически из устанавливаемого по умолчанию вида камеры. Если смотреть в перспективе, тогда вращение вокруг оси z осуществляется против часовой стрелки. Это может озадачить тех, кто пытается установить смысловую связь между перемещением объекта и перетаскиванием.

Клавиши ограничения


В Вгусе имеются клавиши, ограничивающие вращение с определенным шагом. В частности, если нажать клавишу Shift при выполнении вращения объекта, он будет вращаться с шагом в 45°.
Рисунок 6.23 Вращение объекта: а). По часовой стрелке, если смотреть спереди; 6). То же самое вращение по часовой стрелке, если смотреть в устанавливаемом по умолчанию виде камеры


При нажатии клавиши Option (в Macintosh) или Alt (в Windows) можно добиться более верных, контролируемых движений для точной настройки вращения объекта. В тех случаях, когда необходимо точно расположить объект, клавиша Option/Alt оказывает существенную помощь в изменении положения объекта при его вращении. Этот способ пригоден для вращения объекта с помощью элемента управления Rotate, а кроме того, методом перетаскивания при одновременно нажатой клавише Cmd/Ctrl.

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

Вращение в мировом пространстве, пространстве объектов и пространстве камеры


Подобно элементам управления Reposition и Resize, элемент управления Rotate действует по-разному в зависимости от используемого пространства. В частности, объект может вращаться вокруг оси х мирового пространства, собственной оси х или даже оси х камеры.

Упражнение
Для практики попробуйте воспользоваться тем же самым файлом MOVE AND CONSTRAIN, который был использован в упражнении с изменением размера объекта.
  1. Перейдите в мировое пространство. Выполните вращение вокруг оси г, воспользовавшись элементом управления Rotate и потянув его вправо. Отмените эту операцию. Затем найдите ось z в ограничивающем объект объеме. Нажмите клавишу Cmd/ Ctrl и выполните перетаскивание вправо. Попробуйте выполнить аналогичную операцию относительно других осей. (Выполняйте отмену после каждого перемещения.)
  2. Перейдите в пространство объектов. Обратите внимание на то, как изменяется ориентация отраничи-вающего объема. Теперь она полностью совпадает с ориентацией объекта. Поверните его, воспользовавшись элементом управления Rotate либо методом непосредственного перетаскивания управляющих маркеров при одновременно нажатой клавише Cmd/Ctrl.
    Измените перспективу камеры в пространстве объектов. Выполните вращение вокруг оси х, обратив внимание на то, как вращение по часовой стрелке превращается во вращение против часовой стрелки, если смотреть на него с другой стороны. При этом вращение объекта не претерпевает никаких изменений, меняется лишь точка наблюдения.
  3. Перейдите в пространство камеры. Попробуйте выполнить вращение, воспользовавшись элементом управления Rotate либо непосредственным перетаскиванием управляющего маркера вдоль оси х при одновременно нажатой клавише Cmd/Ctrl.
С другой стороны, можно посмотреть, как вращение вокруг одной конкретной оси изменяется в зависимости от того, в каком пространстве это происходит.

ЗАКЛЮЧИТЕЛЬНОЕ ПРИМЕЧАНИЕ
Здесь следовало бы также уделить некоторое внимание вращению в связи с перемещением точки начала отсчета из устанавливаемого по умолчанию положения в центре объекта. Но поскольку этот вопрос более уместно рассматривать в контексте анимации, его обсуждение будет отложено до главы 15.

Диалоговое окно 3D Transformations и другие диалоговые окна


В главе 4 были впервые представлены свойства объектов и положенная в их основу матрица объекта. Три рассмотренных выше элемента управления (Resize, Rotate и Reposition) имеют непосредственное отношение к матрице объекта, и поэтому они связаны друг с другом. Для редактирования объектов имеется еще одно диалоговое окно, в котором вместо щелчков, перетаскивания и клавиш ограничения используются поля для ввода числовых значений. Во всплывающем меню каждого из трех элементов управления редактированием объектов имеется пункт 3D Transformations (Трехмерные преобразования). Данный пункт выбирается для открытия диалогового окна 3D Transformations. В этом разделе будут рассмотрены вопросы редактирования объектов в Вгусе с использованием числовых значений в диалоговом окне 3D Transformations.
Но прежде будет дан краткий обзор взаимосвязи рассмотренных выше элементов управления редактированием объектов и двух диалоговых окон.
В обоих диалоговых окнах Object Attributes и 3D Transformations имеются поля Position/Offset (Положение/Смещение), Rotation (Вращение) и Size (Размер), которые соответствуют трем рассмотренным выше элементам управления редактированием объектов. Взаимосвязь между двумя указанными выше диалоговыми окнами и элементами управления из палитры редактирования объектов приведена на рис. 6.24. (В дальнейшем предполагается, что в диалоговом окне Object Attributes числовые значения вводятся в полях Absolute Coordinates (Абсолютные координаты), а значения в полях Definition Coordinates (Координаты определения) подчиняются несколько иным правилам и будут рассмотрены отдельно.)

Рисунок 6.24 Взаимосвязь между диалоговыми окнами Object Attributes, 3D Transformations и тремя элементами управления из палитры редактирования объектов
Каждое из диалоговых окон Object Attributes и 3D Transformations действует несколько иначе. В частности, в полях диалогового окна Object Attributes числовые значения выражаются в абсолютных координатах.
Если требуется знать тип объекта, его размер, угол поворота и смешение относительно центра мировмя координат в конкретных единицах Вгусе, тогда следует обратиться к диалоговому окну Object Attributes.
В полях диалогового окна 3D Transformations указываются числовые значения относительных координат. Когда требуется изменить объект, в диалоговом окне 3D Transformations вводится относительное числовое значение для определения величины его изменения. Трехмерные преобразования начинаются в месте расположения объекта в данный момент. При этом смещение объекта выражается в единицах Вгусе (В), вращение — в градусах, а изменение размера в процентах. Диалоговое окно 3D Transformations всегда открывается с двумя первыми пустыми рядами полей, тогда как в полях третьего ряда устанавливается размер 100% Таково положение вещей, причем числовые значения, вводимые в указанных выше полях, будут вносить изменения в объект относительно его предыдущего состояния.
Обращение к двум указанным выше диалоговым окнам осуществляется в зависимости от того, что требуется сделать. В частности, если необходимо увеличить или повернуть объект на некоторую величину, тогда следует обратиться к диалоговому окну 3D Transformations. А если нужно указать конкретный размер объекта (скажем, того же размера, что и другой объект на сцене), тогда следует обратиться к диалоговому окну Object Attributes, чтобы ввести точное числовое значение.
Оба упомянутых выше диалоговых окна могут быть использованы и в следующем весьма удобном специальном приеме: одновременном изменении размера в двух измерениях либо в тесно связанном с ним уменьшении объекта в двух измерениях и одновременном его увеличении в третьем измерении. На рис. 6.25 показаны три цилиндра. Первый из них представлен для справки в качестве основного размера, равного единичному элементу. Средний цилиндр увеличен по оси у. (В этом случае удобнее всего начать с изменения размера вручную, чтобы определиться с осями.) Рядом с этим цилиндром показаны соответствующие значения в полях диалогового окна Object Attributes. Размер третьего цилиндра изменен в диалоговом окне Object Attributes. При этом сокращена площадь основания цилиндра по осям х и ;. а его высота (или длина, поскольку он теперь лежит) увеличена по оси y. Оба указанных выше процесса происходят одновременно. Для получения тек же самых результатов можно воспользоваться любым из рассмотренных выше диалоговых окон. В частности, в диалоговом окне 3D Transformations следует ввести значение 75% в обоих полях координат х и z и значение 130% в поле координаты y.

Рисунок 6.25 Изменение размера цилиндра по двум осям с помощью полей Size диалогового окна Object Attributes: а). Цилиндр размером в единичный элемент; 6). Цилиндр, увеличенный по оси у в результате ввода соответствующего числового значения в диалоговом окне; в). Новые значения, введенные в полях Size для уменьшения цилиндра по двум осям и увеличения по третьей оси


Диалоговые окна Object Attributes, 3D Transformations и мировое пространство, пространство объектов и пространство камеры


Каким же образом разные виды пространства в Вгусе отражаются на каждом из значений, устанавливаемых в указанных выше диалоговых окнах?
В диалоговом окне Object Attributes значение, устанавливаемое в поле Position, всегда рассчитывается в абсолютных координатах мирового пространства. (Как же еще можно измерить расстояние от объекта до центра мира?) А в диалоговом окне 3D Transformations значение, устанавливаемое в поле Offset, является относительным и используется при изменении положения объекта. В этом случае объект перемещается на n единиц из своего предыдущего положения. Но происходит ли это перемещение на основании собственных координат объекта, т.е. в пространстве объектов? Нет, не происходит. Объект перемещается в соответствии с его ориентацией в мировом пространстве.

Функция Диалоговое окно Object Attributes Диалоговое окно 3D Transformations
Смещение Мировое пространство Мировое пространство
Вращение Мировое пространство Мировое пространство
Размер Пространство объектов Пространство объектов


Все это имело смысл обстоятельно пояснить для тех, кто раньше пользовался версией Вгусе 2, где преобразования смещением (Offset Transformations) происходили в Macintosh и Windows по-разному. Это несоответствие версий Вгусе на обеих платформах было искусно устранено первоклассной группой разработчиков Вгусе.

Координаты определения


А теперь настало время рассмотреть и обратную сторону диалогового окна Object Attributes: панель Definition Coordinates (Координаты определения), доступ к которой осуществляется из всплывающего меню, расположенного в нижней половине закладки General Object Attributes (см. рис. 4.18). Числовые значения, вводимые в полях панели Definition Coordinates, описывают объект относительно его собственных осей, центра вращения и внешних границ. Чтобы уяснить, что под этим подразумевается, выполните следующее упражнение:
  1. Откройте файл DEFINITION COORDINATES на сопровождающем книгу CD-ROM. Он содержит обыкновенный куб, созданный в центре мирового пространства и находящийся в устанавливаемом по умолчанию положении. В связи с тем что включен режим Show Origin Handle (Показать маркер начала отсчета), в центре куба должна быть видна небольшая зеленая точка. В качестве системы отсчета в данном случае выбрано пространство объектов (рис. 6.26). Щелкните на кнопке Edit, расположенной в верхней части экрана, чтобы перейти к палитре редактирования объектов.

    Рисунок 6.26 Вновь созданный куб, который служит в качестве отправной точки для упражнения с координатами определения

  2. Щелкните на пиктограмме А, чтобы открыть диалоговое окно Object Attributes, и поместите указатель мыши над меткой Absolute Coordinates. Выберите из всплывающего меню пункт Definition Coordinates. Обратите внимание на то, что поля в верхнем ряду Origin панели Definition Coordinates недоступны, поэтому числовые значения можно вводить только в полях Position. Это связано с тем, что в пространстве определения координат точка начала отсчета объекта фиксирована, а положение центра объекта определяется направлением и расстоянием до нее. Перейдите к полю координаты у в ряду Position и введите значение 20.48, а затем закройте данное диалоговое окно. В итоге куб переместится вверх, однако точка начала отсчета останется на прежнем месте (рис. 6.27). Воспользуйтесь элементом управления Rotate, чтобы попытаться повернуть куб вокруг нескольких осей. При этом куб перемещается в пространстве, вращаясь вокруг точки начала отсчета. Выберите команду Unrotate (Отменить вращение) из меню Rotate Options, чтобы вернуть куб в его исходное положение.

    Рисунок 6.27 Корректировка положения куба: а). Ввод чисел в полях панели Definition Coordinates; б). Результат: куб перемещается на 20.48 единиц вдоль оси у в сторону от точки начала отсчета

  3. Откройте диалоговое окно Object Attributes еще раз и вызовите панель Definition Coordinates. (Нетрудно заметить, что панель Definition Coordinates приходится всякий раз выбирать из диалогового окна Object Attributes» поскольку в Вгусе предполагается, что пользователь, как правило, работает с объектом, а не переопределяет его основные координаты.) А теперь перейдите к полю координаты z в ряду Rotate и введите значение 45. Закройте данное диалоговое окно. Обратите внимание на два следующих изменения: куб повернут вокруг своего центра, а не точки начала отсчета, а кроме того, он сжат (рис. 6.28а и б).
    Таким образом, с помощью панели Definition Coordinates можно избавиться от тирании точки начала отсчета и независимо от ее местоположения повернуть объект вокруг одной из его внутренних осей. Но что же произошло с размером куба? Ведь координаты его размера не изменились (сравните значения в полях Size на рис. 6.27а и 6.28а). Чтобы найти ключ к разгадке этого явления, создайте еще один куб и поместите его рядом с первым. Выделите первый куб, обратив внимание на ограничивающий его объем: его размер такой же, как и у только что созданного куба (рис. 6.28в). При использовании координат определения для вращения объекта он остается в границах, определяемых размерами, указанными в полях Size, поэтому он должен сжаться, чтобы не выйти за пределы ограничивающего его объема. Однако если изменить размер ограничивающего объема, повернутый объект соответственно впишется в этот объем. Если же вращать объект с шагом 90°, постоянно ориентируя в другом направлении, подобная ситуация со сжатием объекта в ограничивающем его объеме вряд ли возникнет.

    Рисунок 6.28 Применение панели Definition Coordinates для вращения куба: а). Панель Definition Coordinates; б). Результат; в). Новый куб со стороной 20.48 единиц Вгусе, полученный для сравнения

  4. Убедитесь в том, что исходный куб выделен. Откройте диалоговое окно Object Attributes и откройте панель Definition Coordinates. Перейдите к полю координаты х в ряду Size и введите значение 30, а затем закройте данное диалоговое окно. В итоге ограничивающий объем станет шире и соответственно расширится находящийся внутри него куб (рис. 6.29).

    Рисунок 6.29 Увеличение повернутого куба по оси х
Применение координат определения для задания размера, угла поворота или положения объекта позволяет переопределить основную взаимосвязь последнего с пространством объектов. В этом случае переопределяются основные параметры объекта, и тем самым указывается на то, что установленное при его создании состояние будет служить в качестве отправной точки при выполнении последующих операций над ним. Это соображение имеет весьма важное значение при вызове команды Unity, которая будет рассмотрена через несколько разделов в данной главе.

Числовые значения, вводимые в полях


Теперь, когда рассмотрены функции обоих упомянутых выше диалоговых окон, а также влияние разных видов пространства в Вгусе на свойства объекта, обратимся к некоторым особым способам изменения числовых значений в полях этих диалоговых окон.
Безусловно, можно щелкнуть в конкретном поле ввода числового значения и просто ввести требуемое значение. Существует и другой более сложный способ: нажимать клавишу табуляции до тех пор, пока не будет выбрано конкретное поле, а затем ввести требуемое значение. Однако существует еще один способ, в котором используются клавиши стрелок вверх и вниз, а также модифицирующие клавиши.
Клавиши стрелок вверх и вниз могут быть использованы для увеличения или уменьшения числовых значений. При нажатии их вместе с некоторыми модифицирующими клавишами числовые значения увеличиваются или уменьшаются самыми разными способами. Поэтому разделим их на логические группы, исходя из того факта, что во всех полях ввода числовые значения задаются в следующих трех единицах измерения: единицах Вгусе, градусах и процентах.
Прежде всего единицы Вгусе используются для описания положения либо смещения или указания размера объекта в обоих диалоговых окнах 3D Transformations и Object Attributes, а также для задания размера в диалоговом окне Object Attributes.
Далее градусы (°) используются для описания угла поворота во всех соответствующих полях.
И, наконец, проценты (%) используются в диалоговых окнах 3D Transformations и Multi-Replicate (Многократное тиражирование) для относительного изменения размера.

Изменение числовых значений в единицах Вгусе


К модифицирующим клавишам, применяемым в простейших комбинациях, чаще всего встречающихся в Вгусе, относятся клавиша Shift, применяемая для увеличения или уменьшения числа на 10, а также клавиши Option/Ctrl+Alt, используемые для изменения числового значения на 0.1. Модифицирующие клавиши, применяемые вместе с клавишами стрелок вверх и вниз в полях Origin/Position диалогового окна Object Attributes, перечислены в табл. 6.1. Ниже будет показано, что то же самое относится и к другим единицам измерения, а в главе 9 можно обнаружить, что эти комбинации клавиш действуют и в лаборатории материалов (Material Lab).

Модифицирующая клавиша в Macintosh Модифицирующая клавиша в Windows Как изменяет числовые значения Числовой результат
{Отправная точка}     20.48
Без применения модифицирующих клавиш   Увеличение/уменьшение на 1 21.48
Option Ctrl+Alt Увеличение на 0.1 20.58
Shift Shift Увеличение на 10 30.48


Как упоминалось ранее в этой главе, числовые значения выражаются в единицах Вгусе в виде следующего ряда чисел в степени 2: 1,2, 4, 8, 16, 32, 64, 128, 256 и т.д. В связи с этим существует еще один ряд комбинаций модифицирующих клавиш и клавиш стрелок вверх и вниз, в которых используется клавиша Cmd/Ctrl. Эти комбинации клавиш позволяют изменять числа кратно степени 2. Они перечислены в табл. 6.2. и применяются в полях Size диалогового окна Object Attributes, а также в полях Offset диалоговых окон 3D Transformations и Multi-Replicate.
Как же разобраться во всех этих единицах измерения и комбинациях клавиш? А вот как: клавиши стрелок вверх и вниз увеличивают и уменьшают числовые значения (это относится ко всем диалоговым окнам в Вгусе). Клавиши Option и Shift позволяют более точно изменять числовые значения с помощью клавиш стрелок вверх и вниз. (К сожалению, в Windows клавиша Alt для этого отдельно не используется, а вместо нее применяется комбинация клавиш Ctrl+Alt, которая несколько нарушает стройность общей картины применения модифицирующих клавиш для изменения числовых значений.) Но поскольку клавиши стрелок применяются при перемещении объектов в окне сцены Вгусе и при изменении числовых значений в полях, для них существует еще один уровень модификации. Что касается единиц Вгусе, то нажимая клавишу Cmd/Ctrl, можно имитировать движения, которые происходят при перемещении на единичный шаг. Аналогично, нажимая клавишу Cmd/Ctrl одновременно с клавишей Option/Alt для имитации перемещения на модифицированный единичный Option/Alt-шаг, можно увеличивать или уменьшать числовые значения на этот шаг. Это же относится и к нажатию клавиши Cmd/Ctrl одновременно с комбинацией клавиш Option+Shift/Alt+Shift для изменения числовых значений на модифицированный единичный Option+Shift/Alt+ Shift-шаг. Таким образом, при использовании клавиши Cmd/Ctrl в приведенных выше последовательностях числовые значения изменяются с тем же самым шагом, т.е. клавиша Cmd/ Ctrl вызывает изменение числовых значений на простой или модифицированный единичный шаг, а не на десятки, единицы или десятые доли единицы (за исключением комбинации клавиш Ctrl+Alt).

Изменение числовых значений в градусах и процентах


Для изменения числовых значений в градусах с шагом в 10° используется клавиша Shift, а для более точного указания угла поворота в десятых долях градуса используются клавиши Option/Ctrl+Alt. В итоге комбинации клавиш получаются в данном случае аналогичными приведенным в табл. 6.1. По счастью, они же используются и для изменения числовых значений, указываемых в процентах в полях Size диалоговых окон 3D Transformations и Multi-Replicate.

Таблица 6.2. Корректировка числовых значений в полях Size диалогового окна Object Attributes, а также в полях Offset диалоговых окон 3D Transformations и Multi-Replicate. Соответствующий единичный шаг показан в скобках
Модифицирующая клавиша в Macintosh Модифицирующая клавиша в Windows Как изменяет числовые значения Числовой результат
{Отправная точка}     20.48
Без применения модифицирующих клавиш   Увеличение/уменьшение на 1 21.48
Option Отсутствует Увеличение на 0.1 20.58
Shift Shift Увеличение на 10 30.48
Command Ctrl Увеличение на 5.12 (единичный шаг) 25.6
Command+Option Ctrl+Alt Увеличение на 0.8 (модифицированный единичный Option/Alt-шаг) 20.56
Command+Shift Ctrl+Shift Увеличение на 10.24 (модифицированный единичный Shift-шаг) 30.72
Command+Option+Shift Ctrl+Alt+Shift Увеличение на 2.56 (модифицированный единичный Option+Shift/Alt+Shift-шаг) 23.04


Команды копирования вставки матрицы объекта и прочие команды


Команды Copy Matrix (Копировать матрицу) и Paste Matrix (Вставить матрицу) отлично подходят для корректировки размера, положения и угла поворота объекта в том случае, если требуется разместить один объект в другом, установить один объект в близком соответствии с ориентацией другого либо заменить один объект другим. Эти команды уже рассматривались в главе 4 вместе с матрицей объекта, однако их стоит здесь упомянуть, поскольку они используются в режиме редактирования объектов.
Другое подмножество элементов управления матрицей объекта в диалоговом окне 3D Transformations будет описано далее в этой главе. А команды тиражирования (Replicate) рассматриваются в качестве специализированных команд трехмерного преобразования. Являясь частью процесса перехода от одного объекта ко многим, они будут рассмотрены в разделе, специально посвященном этому предмету. А до тех пор будем рассматривать вопросы, касающиеся редактирования в Вгусе одного объекта.

Камера в качестве объекта


Здесь уже неоднократно упоминалось, что после внедрения анимации в версии Вгусе 3D камера получила статус объекта. Это дало возможность выделять камеру и выполнять над ней большинство преобразований, предназначенных для объектов. Поэтому обратимся к более подробному рассмотрению "объектного" характера камеры, а также ряда случаев отклонения камеры от своего объектного характера.
Разновидности команды Undo и команда Unity


До сих пор рассматривалось изменение положения, размера и вращение объекта. Обращение к разным элементам управления для перемещения объекта в нужное положение неизбежно приводит к искажению объекта. И тогда слишком поздно осознается тот факт, что прекрасно выровненный объект оказывается сильно искаженным. Как же вернуться к прежнему его выравниванию?
Для этого всегда Имеется команда Undo (или ком бинация клавиш Cmd+Z (в Macintosh) либо Ctrl+Z (в Windows)). Это самый простой вариант, принятие которого в Macintosh и Windows заслужило вечную благодарность пользователей!
Чаще всего обращаться к команде Undo приходится после изменения размера или вращения объекта, когда становится очевидно, что эти операции следовало выполнить в пространстве объектов, однако по неизвестной причине они были произведены в мировом пространстве. В этом случае следует отменить эти операции, перейти в пространство объектов и повторить их снова.
Если же объект искажен в результате выполнения нескольких действий, тогда исправить положение будет труднее в силу ограничения на один уровень отмены. Тем не менее, во всплывающем меню каждого из трех элементов управления редактированием объектов (Resize, Rotate и Reposition) имеются команды отмены действия этого конкретного элемента управления. В частности, для отмены действия элемента управления Resize существует команда UnResize, элемента управления Rotate — команда UnRotate и элемента управления Reposition — команда UnReposition. Таким образом, после настройки угла поворота объекта можно отменить эту операцию и начать все сначала, не прибегая к изменению размера последнего. (Команда Undo Reposition избыточна, поскольку существует аналогичная ей команда Snap to World Center (Привязать к центру мира), которую можно найти во всплывающем меню, вызываемом справа под всплывающим меню Alignment. Так что пользоваться можно любой из этих команд.)
Для полноты картины следует указать и на команду Unity (Приведение к единичному размеру). Команда Unity позволяет вернуться к исходной форме, размеру и выравниванию объекта по сетке. Ее применение аналогично выбору обеих команд Undo Resize и Undo Rotate.
Команда Unity используется двояким образом. В первом случае следует нажать клавишу Control (в Macintosh, а не комбинацию клавиш Command+Option, как сказано в руководстве по версии Вгусе 4) или комбинацию клавиш Ctrl+Alt (в Windows), а затем щелкнуть на одном из управляющих маркеров объекта. При позиционировании курсора мыши над управляющим маркером курсор должен изменить свой вид на небольшую единицу в рамке, прежде чем на этом маркере будет выполнен щелчок. Во втором случае нажимается клавиша =. Будьте внимательны чтобы ввести знак Ш на стандартной клавиатуре, следует одновременно нажать клавишу Shift. Это аналогично команде Zoom In (Сделать изображение крупнее). А для вызова команды Unity следует просто нажать клавишу ~. Если же клавиша = будет нажата случайно, то для отмены команды Unity можно воспользоваться комбинацией клавиш Cmd+Z или Ctrl+Z.
Прежде чем переходить к более подробному изложению принципа действия команды Unity, приведем небольшую историческую справку. В программном обеспечении в частности и в обществе вообще иногда возникает противоречие между провозглашаемыми принципами и тем, что происходит в повседневной жизни. Иными словами, авторитетные специалисты по Вгусе заявляют, что команда Unity действует одним образом, тогда как на самом деле еще со времен первого президентского срока Клинтона она действовала совершенно иным образом.
Вот что сказано по поводу единичного размера (Unity) на странице 299 руководства по версии Вгусе 4: "Единичный размер — это основной размер всех примитивных объектов, создаваемых в Вгусе. Единичный размер всегда равен 2048 х 2048 х 2048 единиц." В самом деле, размер основных примитивов (куба, сферы, пирамиды, цилиндра, конуса, тора) всегда равен этому единичному размеру (если допустить, что авторы руководства имели в виду размер 20.48 х 20.48 х 20.48 единиц). Если сделать небольшой кирпич из куба, а затем вызвать команду Unity, он уже не будет кирпичом, а станет снова кубом, поскольку этот объект возвращается к размеру, определяемому единичным элементом (20.48 х 20.48 х 20.48 единиц).
Так где же здесь противоречие? Оно существовало до версии Вгусе 3D, когда при вызове команды Unity для применения к растянутому, сжатому или иным образом видоизмененному примитивному объекту последний быстро возвращался в состояние примитивного объекта. Таким образом, растянутый куб превращался в идеальный куб, а другие объекты (в частности, торы, параллелепипеды и диски) превращались в странные разновидности своих форм. Приведение местности к единичному размеру приводило к тому, что она превращалась в куб вместо стандартной местности, занимающей 16 шагов сетки. Однако начиная с версии Вгусе 3D» при выборе команды Unity объекты возвращались к той форме, в которой они появлялись в мире Вгусе, будь то растянутая, сжатая или иным образом видоизмененная форма объекта.
Из всего изложенного выше можно сделать вывод о том, что единичный размер все еще существует в Вгусе в виде некоего прекрасного идеала, а шаг сетки определяется размерами единичного элемента, причем большая часть примитивов создается, исходя из этого размера. Однако команда Unity уже не приводит все объекты к единичному размеру. Более того, действие команды Unity стало носить относительный характер.
Поэтому если не устраивает тот факт, что принцип действия команды Unity основан на единичном размере в 20.48 единиц, его можно изменить!
Вот что под этим подразумевается: создайте куб. Увеличьте, растяните или поверните, одним словом, деформируйте его. Если он все еще выделен, нажмите клавишу =. Как и предполагалось, он опять превращается в идеальный куб. Однако в данном случае требуется не идеальная форма, а деформированный ее вариант. Поэтому нажмите комбинацию клавиш Cmd+Z/ Ctrl+Z, чтобы вернуться к видоизмененному кубу. Объект все еще остается выделенным, поэтому щелкните на пиктограмме А (или нажмите комбинацию клавиш Cmd+Option+E/Ctrl+Alt+E), чтобы вызвать диалоговое окно Object Attributes. Щелкните на кнопке, расположенной рядом с меткой Absolute Coordinates, и тогда появится всплывающее меню (рис. 6.30). Выберите из этого меню команду Set As Unity (Установить в качестве единичного размера), с тем чтобы рядом с ней появилась отметка. С этого момента, что бы ни происходило с объектом, щелчок на кнопке Unity позволит вернуться к его первоначально измененной форме и размеру. Таким образом, команда Unity переопределена! Аналогично, если изменить параметры объекта с помощью панели Definition Coordinates, это приведет к переопределению единичного состояния Unity данного объекта.

Рисунок 6.30 Команда Set As Unity, доступ к которой осуществляется из всплывающего меню Absolute/ Definition Coordinates в диалоговом окне Object Attributes .


Эта новая разновидность команды Unity сохраняет свое действие независимо от того, какие действия выполняются над объектом. Многократные копии объекта также наследуют новое состояние Unity данного объекта. Даже если преобразовать объект в другой тип (с помощью элемента управления Object Conversion, описываемого в следующем разделе), в новом варианте сохранится данное нестандартное состояние Unity исходного объекта.
А вот еще одна старая история: в версии 1 палитра редактирования объектов содержала кнопку для вызова команды Unity, и те, кто пользуется с тех пор Вгусе, все еще интуитивно пытаются щелкнуть на кнопке Unity. Разумеется, это удобнее, чем щелкнуть на управляющем маркере объекта, удерживая нажатой клавишу Control или комбинацию клавиш Ctrl+Alt, либо нажать клавишу =, а кроме того, это напоминает об ушедших молодых годах.

Последнее средство


И последней возможностью исправить положение является команда Revert to Saved (Вернуться к сохраненному состоянию), выбираемая из меню File. Ею можно воспользоваться для отмены всех операций, выполненных в данном сеансе работы в Вгусе (либо с момента последнего сохранения сцены), и возврата к исходному состоянию сцены. Если при этом требуется сохранить некоторые элементы сцены, тогда необходимо их выделить и скопировать. После возврата к сохраненному состоянию эти элементы можно вставить в сцену и таким образом вернуть их на место.
Если же сцена не была сохранена и теперь безнадежно испорчена, тогда единственное, что можно посоветовать в подобном случае, это воспользоваться самыми яркими средствами языка с богатыми, оригинальными метафорами, чтобы выразить все свое разочарование по этому поводу.

Изменение типа объекта


В этом разделе представлено средство, которое имеет все основания быть оцененным по достоинству — элемент управления Object Conversion (Преобразование объекта). Данный элемент управления представляет собой быстрый способ изменения типа объекта в Вгусе. Он находится в правом верхнем углу палитры редактирования объектов в виде двойной стрелки, благодаря которой вызывается всплывающая палитра. В частности, если выбрана сфера, с помощью этого элемента управления ее можно преобразовать в тор, куб, источник света или местность. Таким образом, любой объект может быть преобразован к типу другого объекта. При этом изменяется лишь основная форма объекта, а его положение, ориентация, размер наследуются от исходного. Это дает возможность разместить объект как следует во время работы над одной частью мира Вгусе, а затем сдублировать, воспользовавшись комбинацией клавиш Cmd+D/Ctrl+D (о дублировании будет сказано несколько ниже), и далее изменить его копию на другой тип. После этого достаточно нажать несколько раз на клавиши стрелок, и новый объект окажется в нужном месте.
Элемент управления Object Conversion является весьма удобным инструментом. Начав им пользоваться, просто удивляешься, почему этого не было сделано раньше. В приведенном ниже способе дублирования объектов представлено и их преобразование, так что у читателя еще будет возможность стать приверженцем этого способа, если он им уже не стал.
Примечание: если требуется найти возможность преобразовать некоторый объект в объект Easter Egg (Пасхальное яйцо), состоящий из круглого источника параллельного света и бесконечных пластин, то элемент управления Object Conversion вряд ли в этом поможет. Каждый из указанных выше объектов может быть преобразован к другому примитивному типу, но не иначе. Для создания бесконечной пластины или круглого источника параллельного света придется воспользоваться командой Copy Matrix, а затем командой Paste Matrix, чтобы разместить объект требуемым образом. Если источник света необходимо получить путем преобразования другого источника света, тогда придется снова устанавливать вручную все параметры настройки нового круглого источника параллельного света.

Применение элемента управления Edit Terrain/Object на примере редактирования тора


Прежде чем переходить к процессу редактирования нескольких объектов, рассмотрим элемент управления, который находится в правой части палитры редактирования объектов, Edit Terrain/Object, на примере редактирования тора. (Редактирование других объектов с помощью элемента управления Edit Terrain/Object рассматривается в других главах.)
Что собой представляет тор? Это замкнутая кольцом труба. Каким же образом можно настроить размер и форму тора? Разумеется, для этого существует обычный элемент управления Resize, позволяющий настраивать размер объекта по высоте, ширине и глубине. Однако данный объект является трубой. Поэтому для настройки ширины трубы используется редактор тора (Torus Editor).
Доступ к редакторам специальных объектов осуществляется самыми разными способами. Эти способы относятся ко всем типам объектов, для которых имеются специальные редакторы. В частности, если объект выделен, тогда можно щелкнуть на элементе управления Edit Terrain/Object либо щелкнуть на пиктограмме Е, расположенной рядом с объектом. С другой стороны, можно выбрать из меню Objects команду Edit Object либо воспользоваться ее клавиатурным эквивалентом Cmd+E/Ctrl+E. Любой из указанных выше способов подходит для редактирования выделенного тора с помощью редактора тора.
Как же с ним работать? Для изменения радиуса трубы достаточно щелкнуть где-нибудь рядом с тором и выполнить перетаскивание влево или вправо (рис. 6.31). При перетаскивании вправо радиус увеличивается, а при перетаскивании влево — уменьшается. Чтобы принять внесенные изменения, следует щелкнуть на кнопке с отметкой. Для редактирования тора можно также воспользоваться рядом следующих комбинаций клавиш с использованием модифицирующих клавиш:
Рисунок 6.31 Редактор тора


Между прочим, в руководстве по версии Вгусе 4 приведено описание свойств редактора тора, которые уже давно отсутствуют. В частности, при упоминании о вращении тора имеется в виду редактор тора версии Вгусе 2, который выглядел так, как показано на рис. 6.32, и в котором каркас тора на самом деле вращался лишь ради интереса. Кроме того, в руководстве упоминается старый способ выхода из редактора тора с принятием внесенных изменений в результате щелчка за пределами тора. В Вгусе 4 выход из редактора тора осуществляется обычным образом, т.е. щелчком на кнопке с отметкой или нажатием клавиши Return/Enter.

Рисунок 6.32 Вид редактора тора в версии Вгусе 2 с вращающимся тором


В области вывода текста (или строке состояния) в палитре управления (Control Palette) отображаются цифры, соответствующие толщине трубы. Эти цифры указывают толщину трубы в пределах от 0 до 1024 единиц, а по умолчанию устанавливается толщина 256 единиц. Как правило, вряд ли требуется увеличивать толщину трубы свыше 512 единиц, поскольку это может привести к полному закрытию отверстия тора (рис. 6.33). Хотя указав значения в пределах от 512 до 1024 единиц, можно добиться интересных эффектов. Тем не менее, при значениях свыше 512 единиц полость внутри тора начинает увеличиваться (рис. 6.34).
Рисунок 6.33 Тор радиусом 512 единиц: а). Каркасное представление; 6). Визуализированный вид


Если поразмыслить над приведенным выше эффектом, то он дает возможность быстро создать полый шар. Как правило, для этого требуется вложение отрицательной сферы внутри положительной несколько большего размера, после чего обе сферы следует сгруппировать для образования булевского объекта (более подробно этот процесс будет рассмотрен в следующей главе). Как показано на рис. 6.35, после визуализации такого тора (здесь к обоим объектам был применен материал стекла с высокой отражательной способностью) его практически невозможно отличить от булевского шара. Единственный его недостаток состоит в том, что в конечном счете посредине тора может получиться мелкое пятно. Это след от "пупка" в центре тора, образовавшийся в месте перекрытия обеих сторон трубы.

Рисунок 6.34 Примеры торов радиусом 512 и более единиц


Рисунок 6.35 Два полых шара: а}.Тор радиусом 1000 единиц (обратите внимание на мелкое пятно в его центре); 6). Булевский объект, созданный путем вложения отрицательной сферы внутри положительной несколько большего размера с последующим их группированием


Подобно редактированию других объектов, для изменения числовых значений в данном случае могут быть использованы комбинации клавиш стрелок и модифицирующих клавиш. В частности, клавиши стрелок вверх и вниз увеличивают и уменьшают числовое значение на 1. Совместно с клавишей Option (только в Macintosh, а в Windows соответствующий эквивалент отсутствует) клавиши стрелок вверх и вниз увеличивают и уменьшают числовое значение на 0.1, а вместе с клавишей Shift — на 10.
А что, собственно, означают числовые значения для тора? Они обозначают толщину трубы тора в единицах Вгусе. Однако в отличие от диалогового окна Object Attributes в редакторе тора числовые значения указываются в единицах Вгусе без сдвига на два десятичных разряда. В частности, числовому значению 256 в редакторе тора соответствует числовое значение 2.56 в диалоговом окне Object Attributes. Означает ли это, что размер в 256 единиц, установленный в редакторе тора, равен размеру диска в 2.56 единиц Вгусе, установленному в диалоговом окне Object Attributes? He совсем. Для того чтобы точно соответствовать ширине трубы тора, определяемой устанавливаемой по умолчанию толщиной трубы тора в 256 единиц, потребуется диск в два раза большего размера, т.е.. 5.12 единиц Вгусе. Ведь числовое значение 256 единиц, устанавливаемое по умолчанию в редакторе тора, не полностью соответствует ширине трубы тора. Это лишь радиус, или расстояние от центра трубы до ее края или половина ширины трубы тора.
На рис. 6.36 показано соотношение всех числовых значений размеров тора. Это вид в разрезе тора радиусом 512 единиц. Общий размер данного объекта составляет 20.48 единиц (т.е. единичный элемент), а каждая труба составляет половину ширины объекта, или 10.24 единиц. Радиус трубы представляет собой расстояние от ее центра до края и равен 512 единицам.

Рисунок 6.36 Вид тора в разрезе со всеми его размерами


У четырех торов, приведенных на рис. 6.37, установлены разные параметры в редакторе тора, хотя их внешние размеры соответствуют вновь созданному объекту (единичного размера). Радиус верхнего тора равен 512 единицам (аналогично описанному выше тору), а радиусы остальных торов последовательно сокращены на 25%. В правом столбце показаны диски эквивалентного размера с указанием конкретных размеров.

Рисунок 6.37 Вид сверху и в разрезе торов разного радиуса, но с одними и теми же размерами. В левом столбце показано каркасное i представление торов, в центральном столбце - визуализированный вид торов с выделенным поперечным сечением трубы, а в правом столбце -диски, размеры которых соответствуют поперечному сечению и радиусу трубы


К чему все эти числовые выкладки? Даже если читатель и несилен в математике, ему все же полезно знать, какого размера должен быть сделан тор, чтобы соответствовать той или иной форме.
Что если, например, требуется создать полый цилиндр с закругленным сверху краем? Для этого один цилиндр обычно вычитается из другого (более подробно булевские операции будут рассмотрены в главе 7), а закругленный край образуется с помощью тора, размещаемого поверх этих цилиндров. Существует ли помимо оценки на глаз иной, более точный способ определения числового значения размера тора, чтобы он идеально совпадал с полым цилиндром?
Прежде всего существует внешний размер цилиндра. Данный размер для тора и цилиндра одинаков, поскольку это единичный размер, равный 20.48 единицам. В данном примере создается тор, который имеет следующие исходные размеры: X = 20.48, Y == 20.48, Z = 5.12. Далее он поворачивается на 90° вокруг оси х, чтобы положить его плашмя.
Следующий вопрос: насколько широким должен быть выступ? Его ширина определяется размером цилиндра, вычитаемого из наружного цилиндра, а также радиусом трубы тора. Таким образом, получаются следующие размеры:
Наружный цилиндр = [На выбор]
Ширина выступа — [На выбор]
Наружный цилиндр — 2 х (Ширина выступа) = Размер внутреннего цилиндра
1/2 х (Ширина выступа) = Радиус тора
Если выбрать выступ шириной 1.28 единиц, тогда наружный цилиндр будет приведен к единичному размеру:
Наружный цилиндр = 20.48
20.48 - 2 х (1.28) или 20.28 — 2.56 = 17.92 (Размер внутреннего цилиндра)
1/2 X (1.28) или 0.64 либо 64 = Радиус тора
На рис. 6.38 показана чашка, полученная с учетом приведенных выше размеров. Здесь также показана скоба, полученная из тора стандартного размера и радиуса (256 единиц) и двух цилиндров, размер которых в два раза больше радиуса тора и составляет 512 единиц, причем тор наполовину срезан с помощью булевской операции.

Рисунок 6.38 Торы, применяемые в верхней части чашки и скобы. В каждом случае правильный расчет радиуса тора позволяет добиться точного его совпадения е остальной частью объекта


Строго придерживаться размеров в двоичном формате отнюдь не обязательно. Тем не менее, это позволяет использовать клавиши пошагового перемещения для более точного выравнивания объектов, поскольку все они привязаны к внутренней сетке Вгусе.
Следует также иметь в виду, что пределы изменения радиуса тора 0 — 1024 единиц фиксированы. В частности, если удвоить внешние размеры тора, например, с 20.48 до 40.96 единиц, это не при ведет к удвоению пределов изменения радиуса до 2048 единиц. Максимальный размер радиуса тора ограничивается величиной 1024 единицы. Размеры тора рассчитываются на основании единичного размера, относительно которого тор может быть увеличен или уменьшен. Из этого следует вполне очевидный вывод: если требуется выполнить математически точное выравнивание тора по цилиндру или другим объектам, это следует делать при единичном размере. А по завершении выравнивания можно сгруппировать объекты и изменить их размер в целом.

Переход от одного объекта ко многим: дублирование и тиражирование объектов


До сих пор рассмотрение средств и способов редактирования объектов ограничивалось элементами управления редактированием, которые применяются к одному объекту. Безусловно, можно повернуть или изменить размер и нескольких объектов. В Вгусе операция редактирования выполняется одновременно над каждым объектом. Если выделить несколько объектов и повернуть их, это будет похоже на балет вращающихся синхронно объектов. (В версии Вгусе 2 для Windows такое поведение объектов, увы, не наблюдалось, поэтому в предыдущем издании этой книги было уделено много внимания данному несоответствию версий Biyce. Что же касается версии Вгусе 3D, это несоответствие на обеих платформах было устранено.) Первый шаг, который следует сделать для перехода от одного ко многим объектам, состоит в дублировании или тиражировании существующего объекта. После того как будет получено несколько объектов, появляется множество вариантов редактирования, которые могут быть выбраны для работы с несколькими объектами.

Дублирование объектов


Для дублирования объектов в Вгусе имеется соответствующая команда. Разумеется, она находится в меню Edit и называется Duplicate. Ее клавиатурным эквивалентом является комбинация клавиш Cmd+D (в Macintosh) или Ctrl+D (в Windows). Команда Duplicate создает копию выделенного объекта прямо на месте, причем вновь полученная копия остается выделенной. Из этого положения можно осуществить пошаговое перемещение объекта в новое место (нажав комбинацию клавиш Cmd+D/Ctrl+D, а затем клавишу пошагового перемещения).
Используя комбинацию клавиш дублирования и пошагового перемещения объектов, в Вгусе можно создать все что угодно, например, стену, выложенную из кирпичей (рис 6.39). К этому способу построения объектов в Вгусе средствами массового производства мы еще вернемся. Однако прежде рассмотрим ремесленный способ построения башни с помощью команды Duplicate.

Рисунок 6.39 Кирпичная стена, построенная методом дублирования и пошагового перемещения объектов


Способ дублирования объектов


В рассматриваемом здесь способе построения башни создается только один объект с помощью палитры создания объектов (Create Palette). А все остальные объекты получаются в результате дублирования и преобразования единственного объекта. Несмотря на это данный способ сочетает в себе также ряд принципов, рассмотренных ранее в этой главе.
  1. Создайте новую сцену. Далее создайте цилиндр, а затем опустите его на землю, щелкнув на треугольной кнопке (рис. 6.40а), если в области глобальных параметров (Preferences) установлен режим создания объекта в пределах выбранного вида (Create object within view). Сделайте цилиндр длиннее, увеличив его по оси jr. Для удвоения высоты цилиндра во время перетаскивания вдоль оси у нажмите клавишу Shift. Таким образом, при последующем перетаскивании высота цилиндра увеличится вдвое (рис. 6.40б).

    Рисунок 6.40 Создание Цилиндра: а). Созданный Цилиндр; 6). Цилиндр с измененным размером


  2. Создайте новый объект из полученного выше объекта. Сдублируйте цилиндр, выбрав команду Edit> Duplicate либо нажав комбинацию клавиш Cmd+D (в Macintosh) или Ctrl+D (в Windows). Затем преобразуйте этот объект в конус, выбрав пиктограмму конуса в элементе управления Object Conversion (рис 6.41а), Полученный результат приведен на рис. 6.41б.

    Рисунок 6.41 Превращение сдублированного цилиндра в конус а). До превращения; б). После выбора пиктограммы конуса в элементе управления Objeсt conversion


  3. Приведите конус к единичному размеру, нажав клавишу а либо щелкнув при одновременно нажатой комбинации клавиш Control/Ctrl+Alt на одном из маркеров ограничивающего объема (рис. 6.42а). Переместите конус вверх, нажав клавишу пошагового перемещения Page Up несколько раз (рис. 6.42б)

    Рисунок 6.42 Формирование конуса: а). Приведение конусах единичному размеру; б). Шаговое перемещение конуса вверх


  4. Переверните конус вверх дном, выбрав команду Flip Y из всплывающего меню Resize. Полученный результат приведен на рис. 6.436. Затем равномерно увеличьте конус, воспользовавшись элементом управления Resize (рис. 6.43в). Чтобы придать конусу более сплющенный вид, уменьшите его размер по оси у. Для этого захватите управляющий маркер оси у, расположенный на основании конуса, и потяните его влево, чтобы уменьшить конус (рис. б.43г).

    Рисунок 6.43 Манипулирование конусом: а). Выбор команды Flip; б).Результат переворачивания конуса; в)Равномерное увеличение конуса; г). Уменьшение конуса по оси у


  5. Сделайте этот объект более длинным, увеличив его размер по оси y. Увеличение следует выполнять от центра, используя клавишу Option/Alt (рис. 6.44в).

    Рисунок 6.44 Преобразование конуса в цилиндр: а) Сдублированный конус; б). Конус, преобразованный в цилиндр; в). Цилиндр, увеличенный по оси у


  6. А теперь необходимо создать крышу. Для этого потребуется еще один конус. Сдублируйте новый цилиндр и преобразуйте его в конус (рис. 6.45а и б). Вспомните, что этот цилиндр был получен из перевернутого конуса, поэтому в Вгусе он считается перевернутым вверх дном. Выберите команду Flip Y для изменения ориентации этого объекта (рис. 6.45в). Переместите конус вниз. Для ограничения перемещения по оси у нажмите клавишу Option/Alt, прежде чем перемещать конус вниз.

    Рисунок 6.45 Обратное преобразование цилиндра в конус а) Сдублированный цилиндр, перемещенный с небольшим шагом вверх; б). Цилиндр, преобразованный в конус в). Перевернутый конус


  7. Увеличьте немного конус, чтобы он нависал над остальной частью конструкции. Потяните нижний край конуса вверх, изменив его размер по оси (рис. 6.46а и б).

    Рисунок 6.46 Формирование верхнего конуса а). Увеличенный конус; б). Конус, уменьшенный по оси у


  8. Нижний цилиндр и остальная часть башни выглядят в основном виде слишком непропорционально Поэтому нижний цилиндр следует сделать немного толще. Для этого можно воспользоваться трехмерными преобразованиями, которые позволяют увеличивать размер объекта одновременно пo двум осям.. В данном случае необходимо также увеличить размер объекта по вертикальной оси. Полученный в итоге каркас приведен на рис. 6.47а. Далее необходимо выполнить визуализацию полученного объекта. Завершенный визуализированный вид баш ни приведен на рис. 6.47.

    Рисунок 6.47 Завершенная башня: а). Завершенный каркасный вид: 6). Завершенный визуализированный вид
Возможно, полученный результат м далек от совершенства. однако для начала он выглядит неплохо. Важнее всего тот факт, что все объекты в данной конструкции выровнены друг относительно друга и по центру относительно осей x и z. Для создания башни пиктограмма Create была использована только один раз, а для дублирования, преобразования, переворачивания, изменения размера или иной отделки всех остальных частей башни были использованы элементы управления редактированием объектов.
Только представьте себе на мгновение весь объем работы, который пришлось бы проделать, если бы каждый объект, составляющий башню, пришлось создавать из палитры создания объектов. При этом каждый объект пришлось бы выравнивать относительно других объектов. Однако чем больше отдельных объектов располагается вдоль одной вертикальной оси, тем больше вероятность их неточного совмещения при каждой последующей попытке выровнять новые объекты. Примененный здесь способ полностью исключает неточное совмещение объектов.

Однократное тиражирование объектов


Вспомните, что рассмотренная выше кирпичная стена была создана методом дублирования и пошагового перемещения объектов. Этот процесс может быть автоматизирован в Вгусе с помощью команд тиражирования (Replicate). Тиражирование представляет собой определенное сочетание дублирования и трехмерного преобразования. При этом Вгусе запоминает значения последнего преобразования (изменение положения, размера или вращения). При выборе команды Replicate в Вгусе выполняется дублирование объекта и повторяются последние его преобразования (изменение положения, размера или вращение объекта).
Таким образом, после первого дублирования и пошагового перемещения объекта для повторения этих действий можно воспользоваться командой Replicate. На самом деле объект можно даже не дублировать, поскольку в Вгусе фиксируются параметры последнего трехмерного преобразования, и вместо дублирования объекта на месте осуществляется его тиражирование в новое место с учетом изменения размера.

Упражнение
  1. Создайте объект.
  2. Используя средства непосредственного редактирования объектов, измените его положение, размер или угол поворота. Непременно проследите за тем, чтобы изменение размера объекта было едва заметным, а не существенным.
  3. Выберите команду Edit> Replicate или нажмите комбинацию клавиш Option+D (в Macintosh) либо Alt+D (в Windows).
  4. Продолжайте нажимать комбинацию клавиш Option+D/Alt+D, наблюдая за тем, как образуется новая форма.
А теперь попробуйте повторить приведенную выше процедуру, однако на сей раз перемещения должны быть чрезвычайно мелкими. Затем повторите этот процесс еще раз, увеличив перемещения. В качестве дополнительного упражнения выделите все полученные таким образом объекты, а затем воспользуйтесь элементом управления Object Conversion для их превращения в примитив другого типа.

Многократное тиражирование


Команда Multi-Replicate (Многократное тиражирование) аналогична команде Replicate, за исключением того, что она предоставляет доступ к диалоговому окну (рис. 6.48). Для доступа к этому окну следует выбрать команду Edit> Multi-Replicate либо нажать комбинацию клавиш Option+Shift+D (в Macintosh, а не Command+ Shift+D, как сказано в руководстве по Вгусе, хотя в краткой справочной таблице указана правильная комбинация клавиш) либо Alt+Shift+D (в Windows). Вместо того чтобы принять последние трехмерные преобразования, выполненные над выделенным объектом, можно непосредственно ввести соответствующие числовые значения в диалоговом окне Multi-Replicate, которое может служить удобным средством оперативного реагирования на слепой подход по принципу невмешательства, применяемый при выполнении простой команды Replicate. Оно весьма похоже на диалоговое окно 3D Transformations и содержит лишь два дополнения; поле Quantity (Количество) и флажок Scale Translation (Преобразование масштаба). Поле Quantity не требует пояснений — оно определяет, сколько раз объект должен быть тиражирован. А вот функции флажка Scale Translation сложнее, и поэтому они требуют дополнительных пояснений.

Рисунок 6.48 Диалоговое окно Multi-Replicate


Если выделенный объект был перемещен, повернут или изменен по размеру перед доступом к диалоговому окну Multi-Replicate, в нем будут отображены числовое значения последнего преобразования объекта. Если же просто щелкнуть на кнопке с отметкой или нажать клавишу Return/Enter, объект будет тиражирован аналогично выбору команды Edit>Replicate. Команда Replicate выполняет тиражирование слепым методом, а команда Multi-Replicate позволяет видеть и определять с помощью соответствующего диалогового окна происходящие изменения. Обе команды выполняют дублирование и преобразование объектов в соответствии с числовыми значениями, указанными в диалоговом окне Multi-Replicate, за одним исключением: команда Replicate всегда выполняется только один раз независимо от значения, установленного в поле Quantity. И в этом отношении в руководстве по версии Вгусе 4 приведены устаревшие сведения, которые не следует принимать во внимание: "Значение, введенное в поле Quantity, этого диалогового окна позволяет установить число копий, создаваемых при использовании команды Replicate." Это справедливо лишь для версии Вгусе2, но не для последующих версий.
Числовые значения в полях диалогового окна Multi-Replicate могут быть скорректированы с помощью клавиш стрелок таким же образом, как это делается в диалоговом окне 3D Transformations, рассмотренном ранее в этой главе. Соответствующие комбинации клавиш приведены в табл. 6.1 и 6.2. При этом числовые значения в поле Offset могут изменяться в пределах от -99999 до 99999, в поле Rotate — от -999 до 999, а в поле Size — от 0 до 9999. Следует заметить, что клавиши стрелок действуют даже в поле Quantity, где числовые значения ограничиваются пределом 999.
Упомянутая выше кирпичная стена служит достаточно простым, весьма утилитарным примером принципа действия команды Replicate. Для того чтобы указать требуемое число объектов, расстояние между ними, число объектов, располагаемых в горизонтальном ряду и прочее, следует ввести соответствующие значения в диалоговом окне Multi-Replicate. Как видите, это похоже на массовое производство!
Флажок Scale Translation выполняет специальную функцию масштабирования и смещения по одной и той же оси. Если флажок Scale Translation установлен, изменение размера осуществляется вместе со смещением объекта и дает общий эффект. Рассмотрим сначала принцип действия этой функции, а затем приведем некоторые присущие ей исключения.
На рис. 6.49а показаны отличия между простейшим смещением, таким же смещением, но с масштабированием, а также смещением с масштабированием при установленном флажке Scale Translation. Исходный куб уменьшен на 90% своего единичного размера. Затем в каждом отдельном случае он был смещен с помощью команды Multi-Replicate по оси х на величину 20.48 единиц (т.е. на единичный элемент). В верхнем ряду масштабирование отсутствует. Во втором ряду куб был масштабирован на 90% по каждой оси, но при сброшенном флажке Scale Translation. В третьем ряду было сделано то же самое, но при установленном флажке Scale Translation. Обратите внимание на то, как в двух верхних рядах объекты располагаются сходным образом вдоль оси х А в нижнем ряду смешение уменьшается при уменьшении каждого последующего куба.
Далее в процесс тиражирования введено вращение. На рис. 6.49а и б каждый куб был повернут на один и тот же угол по трем осям: X = 5°, Y = 10°, Z = 5°.

Рисунок 6.49 Действие команды Multi-Replicate при установленном и сброшенном флажке Scale Translation: а). Многократное тиражирование объекта по оси х без вращения; б). Многократное тиражирование объекта по оси х с вращением тиражируемого объекта В нижнем ряду кубов в обоих случаях используется функция Scale Translation


Как видно, значения вращения невелики, и поэтому дуговой эффект проявляется при вводе множества объектов, каждый из которых немного поворачивается. По мере разворачивания общей картины вращение становится чрезмерным, а возникающий рисунок получается более беспорядочным.
На рис. 6.50 показано абстрактное изображение, сформированное благодаря изменению при прочих равных положительных и отрицательных числовых значений в полях Offset и Rotate. В итоге получаются четыре разные нити, которые распространяются в четырех разных направлениях. В папке Repcication, находящейся в папке данной главы на сопровождающем книгу CD-ROM, имеются файлы с многочисленными примерами изображений, содержащих тиражируемые объекты. Более подробно многократное тиражирование будет рассмотрено в следующей главе при обсуждении вопросов создания множества объектов.

Рисунок 6.50 Абстрактное изображение, состоящее из четырех нитей распространяющихся в четырех разных направлениях, и сформированное благодаря тиражированию и изменению при прочих равных положительных и отрицательных числовых значений


Изменение нескольких объектов


Теперь, когда на сцене имеется несколько объектов, в палитре редактирования объектов предоставляются следующие два элемента управления для работы со множеством объектов: Align (Выровнять) и Randomize (Произвольно распределить). Как следует из наименований этих элементов управления, они дополняют друг друга: один из них группирует объекты в определенном месте в организованном порядке, а другой обеспечивает быстрый способ произвольного их распределения на сцене. И в том, и в другом случае необходимо иметь два и более выделенных объектов.
Для того чтобы принцип организации палитры редактирования объектов стал более понятным, рассмотрим ее под следующим углом зрения. Элемент управления Reposition находится ближе всего к элементам управления группированием и распределением объектов. Несмотря на то что элемент управления Reposition рассматривался в этой главе первым, он занимает центральное положение между элементами управления изменением размера и вращением и элементами управления группированием и распределением объектов. И это не случайно, поскольку элементы управления Align и Randomize представляют собой специализированные элементы управления Reposition.
При последующем рассмотрении элементов управления Align и Randomize будет также описана команда Group, поскольку группа состоит из нескольких объектов.

Выравнивание


Выравнивание позволяет точно выстроить два и более объектов вдоль указанной оси. Элемент управления Align содержит регулятор для каждой из осей х, у и z в виде стержня с тремя сферами в центре и по краям. Сфера, расположенная в центре, выравнивает центры всех объектов в одном месте (рис. 6.51). Подобно другим элементам управления, представленным в виде пиктограммы, элемент управления Align содержит всплывающее меню с дополнительными параметрами. Все это позволяет "привязывать" объект к определенным фиксированным местам, которые будут рассмотрены ниже. В нижней части всплывающего меню находится новый для Вгусе 4 пункт, который дает пользователю возможность определить общий режим выравнивания.

Рисунок 6.51 Элемент управления Align


А что, собственно, означает выравнивание по оси или вдоль оси, например, по оси х7 Выравнивание по оси х означает перемещение объектов по этой оси для их окончательного выравнивания относительно друг друга. На рис. 6.52 показан процесс выравнивания по оси х. В каждом из трех случаев объекты перемещаются по оси х в общую точку на этой оси. Здесь они занимают общее положение, определяемое смещением по оси х (Offset X). (Если объекты имеют один и тот же размер, то при выравнивании по оси х у них оказываются одни и те же числовые значения в поле Offset X диалогового окна Object Attributes.) При выравнивании влево по оси х (Align X Left) объекты перемещаются в общую точку влево по оси х (рис. 6.52а). При выравнивании по центру вдоль оси х (Align X Center) объекты перемещаются в обоих направлениях вдоль оси х, достигая общей точки в центре (рис. 6.526). При выравнивании вправо по оси х (Align X Right) объекты перемещаются в общую точку вправо по оси х (рис. 6.52в).

Рисунок 6.52 В результате выравнивания по оси х объекты перемещаются в общую точку вдоль этой оси: а). Выравнивание влево по оси х; 6). Выравнивание по центру вдоль оси х; в). Выравнивание вправо по оси x


Обдумывая выбор оси для выравнивания, необходимо принять во внимание следующее соображение: как правило, все должно быть выровнено по горизонтали либо по вертикали. В частности, если требуется, чтобы все объекты находились на одной и той же горизонтальной плоскости, они должны быть перемещены по вертикали ( вдоль оси у) до тех пор, пока не достигнут общей точки. Если же объекты требуется расположить друг над другом по вертикали, их необходимо выровнять по двум горизонтальным осям х и z.
При выравнивании объектов они перемещаются вдоль оси в общую точку. Каким же образом определяется общая точка? Мы рады сообщить, что с момента выхода в свет предыдущего издания этой книги процесс выравнивания в Вгусе был усовершенствован. Версии Вгусе 2 для Macintosh и Windows совершенно по-разному реагировали на команды выравнивания. А кроме того, это просто выводило из строя версию для Macintosh. С тех пор под виртуальным мостом Вгусе протекло много воды, и теперь выравнивание в версиях Вгусе для Macintosh и Windows выполняется согласованно.
Каким же образом это противоречие было разрешено? Одним словом, в версии Вгусе 3D верх одержал вариант выравнивания, принятый в версии Вгусе 2 для Macintosh. А затем в версии Вгусе 4 в качестве дополнения был введен вариант предыдущего способа выравнивания, принятого в версии для Windows. Используемый по умолчанию способ выравнивания действует следующим образом: если требуется выровнять все Align Left X (Выровнять влево во оси X) точка привязки остается на месте, а остальные объекты перемешаются вдоль оси х таким образом, чтобы их левые стороны оказались выровненными по левой стороне точки привязки. А как обозначить объект в качестве точки привязки? Очень просто. Для этого достаточно его сначала выделить, а затем ввести в область выделения остальные объекты, подлежащие выравниванию.
Выравнивание по точкам привязки отдаленно связано с методом выравнивания, который применялся в версии Вгусе 2 для Windows. В этой уже давно выпушенной версии общей точкой для выравнивания объектов служил один объект, однако он всегда был самым первым по времени выделения. Это приводило к известным затруднениям в том случае, если ряд объектов требовалось выровнять по самому последнему по времени выделения объекту. Для этого приходилось прибегать ко всевозможным приемам быстрого старения точки привязки, например, к вырезанию требуемой точки привязки и вставки обратно на том же самом месте. В этом смысле новый принцип выравнивания является несомненным усовершенствованием.
А теперь, после предварительных замечаний, обратимся к более углубленному рассмотрению способов выравнивания на реальных примерах.

Выравнивание по центру


Когда же требуется выравнивание объектов по центру? Потребность в этом возникает в том случае, когда имеются круглые объекты, у которых должен быть общий центр.
На рис. 6.56 показаны два объекта: конус и цилиндр. При создании этих объектов они оказываются уже выровненными (рис. 6.56а). Допустим, что требуется изменить размер этих объектов, а затем выровнять их для образования цилиндрической башни с конической крышей. Если выровнять все (используя сферическую кнопку в центре элемента управления Align), тогда получится результат, приведенный на рис. 6.566. Однако такое решение не годится, поскольку эти объекты должны остаться выровненными по центру вдоль осей х и z (т.е. горизонтальных осей) и размешены в разных местах на оси у (вертикальной оси) (рис. 6.56в).

СОВЕТ
При выравнивании объектов по центру следует перейти к виду сверху, чтобы убедиться в том, что все выровнено надлежащим образом (рис. 6.56г). С другом стороны, в зависимости от относительного размера объектов в данном виде можно установить режим каркасного представления вида сверху в окне Nano Preview.

Рисунок 6.53 Выравнивание в пределах ограничивающего объема


Рисунок 6.54 Выбор команды Anchor-Based Aligning из меню Align Options


Рисунок 6.55 Варианты выравнивания с помощью команды Anchor-Based Aligning. Большая сфера в центре служит в качестве точки привязки


Рисунок 6.56 Выравнивание конуса и цилиндра: а). Основной вид цилиндра и конуса после их создания; б). Основной вид цилиндра и конуса после изменения их размера и выравнивания; в). Вид конуса и цилиндра сбоку после изменения их положения; г). Цилиндр и конус, выровненные по центру вдоль обеих осей х и z


Выравнивание по краю


Выравнивание по краю, как правило, применяется при наличии объектов квадратной формы: кубов, параллелепипедов и пирамид (поскольку у пирамид имеется квадратное основание).
Ниже приведено упражнение по выравниванию ряда мелких кубов вдоль вытянутого по горизонтали крупного куба. При этом мелкие кубы превращаются в нечто, напоминающее бойницы в стене замка или крепости. Выполните следующие пункты упражнения (предварительно убедившись в том, что режим Anchor-Based Aligning выключен):
  1. Создайте один куб. Сократите его наполовину, нажав клавишу деления (/). Создайте еще один куб и увеличьте его из центра по оси х, удерживая нажатой клавишу Option/Alt. Вид сверху полученных кубов приведен на рис. 6.57а.
  2. А теперь необходимо выполнить выравнивание. Непременно перейдите к виду сверху. Выделите оба объекта. Выравнивание кубов по двум краям выполняется в два этапа. Так, для выравнивания кубов по левому краю щелкните на элементе управления Align X Left (рис. 6.576).
  3. Далее необходимо выровнять оба объекта по переднему краю. Для этого щелкните на элементе управления Align Z Front (рис. 6.57в).
  4. Дополнительное упражнение: завершите стену с бойницами. Верхний куб выровнен по двум наружным краям стены. А теперь, когда куб и стена выровнены, можно без труда сдублировать верхний (мелкий) куб вдоль верхнего края стены. Для этого выделите мелкий куб, а затем сдублируйте его и переместите на четыре единичных шага с помощью клавиши стрелки вправо. Повторите эту операцию, чтобы завершить стену (рис. 6.57г). Разумеется, для завершения стены необходимо также скорректировать положение бойниц по вертикали относительно стены и соответственно увеличить высоту стены. Завершенный вид стены сверху приведен на рис.6.57д.
Рисунок 6.57 Выравнивание по краям: а). Вид обоих кубов сверху после первоначального изменения их размера; б). Вид сверху после выполнения команды Align X Left; в). Вид сверху после выполнения команды Align Z Front; г). Вид сверху после тиражирования мелкого куба; д). Вид спереди после корректировки высоты и размера стены с бойницами


Выравнивание по краю


Во всплывающем меню, вызываемом под элементом управления Align, имеется ряд команд привязки объектов. Они применяются как к одному, так и ко многим выделенным объектам.
Иногда при опускании объекта на следующий, находящийся ниже объект действие команды Snap to Land может показаться необычным, однако этому есть свое объяснение. В частности, если верхний объект не полностью находится над нижним объектом, он опусштся на следующий находящийся ниже объект (или землю). Как же определяется место, где опускающийся объект останавливается? Предположительно, объект остановится на первом объекте, находящемся непосредственно под его управляющим маркером оси у (рис. 6.59). В верхнем ряду на рис. 6.59 куб показан до его привязки к земле. В каждом изображении верхнего ряда куб находится в несколько ином положении, а в нижнем ряду куб показан после опускания. Обратите внимание на пунктирную линию, идущую от маркера оси у. Она показывает место, на которое куб непосредственно опускается.
Рисунок 6.58 Множество объектов: а). В воздухе; б). После опускания на местность и расположенные ниже объекты


Рисунок 6.59 Применение команды Snap to Land к объекту, находящемуся над неровной поверхностью. Верхний ряд положение куба до опускания, причем от его маркера оси упрямо вниз проведена пунктирная линия; нижний ряд результат выполнения команды Snap to Land


А что если опускающийся объект повернут и его маркер оси у не находится в самом низу? На рис .6.60 показано, что опорной точкой привязки к земле на самом деле является маркер ограничивающего объект объема в мировом пространстве, а маркер оси у самого объекта в данном случае во внимание не принимается. На этом рисунке куб показан до и после опускания аналогично рис. 6.59, однако помимо пунктирных линий, исходящих из самого объекта, для сравнения дополнительно показаны пунктирные линии, исходящие из ограничивающего этот объект объема в мировом пространстве.

Рисунок 6.60 Привязка повернутого объекта к земле. Верхний ряд: положение куба над неровной поверхностью; нижний ряд: положение куба после применения команды Snap to Land


В версии Вгусе 2 несколько объектов, которые образуют проекцию окружности на земле (конус, цилиндр, тор), с трудом допускали опускание на них других объектов. В версии Вгусе 3D (и разумеется, в Вгусе 4) этот недостаток, в основном, был исправлен, хотя тор, повернутый таким образом, чтобы лечь плашмя на землю, не допускает опускание на него каких-либо объектов. Как поясняется в приведенном ниже совете, особый случай в этом отношении представляет также конус.

СОВЕТ
Для надежного выполнения команды Snap to Land следует непременно выровнять управляющие маркеры обоих объектов, принимающих участие в данной операции. Для этого выделите опускаемый объект, а также объект, на который осуществляется опускание, и щелкните на элементах управления Align Z Center и Align X Center. О непоследовательности выполнения данной команды необходимо сделать следующее предупреждение: если объект опускается на вершину конуса, и маркеры оси у обоих объектов выровнены, объект не сможет быть опущен на конус. Чтобы обойти это затруднение, достаточно сместить немного опускаемый объект по оси х или z, в частности, на один единичный модифицированный Option/Alt-шаг.

И еще одна уловка, связанная с командой Snap to Land: если опускаемый объект находится ниже уровня земли, он будет перемещен вверх. Все это хорошо, однако дело несколько усложняется, если опускаемый объект оказывается ниже другого объекта, который, в свою очередь, находится ниже плоскости земли. Не верьте всему, что написано по этому поводу на стр. 316 руководства по Вгусе 4! Там сказано, что нижний объект переместится вверх вплоть до касания верхнего объекта. На самом же деле нижний объект перемещается вплоть до выравнивания с верхним объектом. Весь этот процесс показан на рис. 6.61.

Рисунок 6.61 Применение команды Snap to Land к объектам, находящимся ниже плоскости земли в теории и на практике: а). Куб и пирамида, находящиеся ниже плоскости земли, причем пирамида выделена; б). Вот что должно произойти с пирамидой в результате ее привязки к земле согласно руководству по Вгусе 4; в). А вот что происходит на самом деле


Произвольное распределение объектов


Теперь, когда все объекты выровнены и находятся на своих местах, рассмотрим противоположный процесс — произвольное их распределение. В результате произвольного распределения выделенные объекты рассеиваются по сцене. При этом изменяются их местоположение, размер и угол поворота. Несмотря на то что произвольное распределение является совершенно случайным процессом, в Вгусе предоставляется восемь вариантов управления этим беспорядочным процессом.
Элемент управления Randomize состоит из трех частей (рис, 6.62). В частности, пиктограмма Randomize Mode Selector (Выбор режима произвольного распределения) и всплывающее меню Randomize Options (Варианты произвольного распределения) тесно связаны друг с другом. Если во всплывающем меню приведено словесное описание возможных изменений, то пиктограмма выбора режима произвольного распределения дает наглядное представление об этом процессе. Они как бы отвечают на вопрос: "Каким образом происходит произвольное распределение объектов?" После принятия решения о том, как следует выполнить произвольное распределение, этот процесс приводится в действие с помощью третьей составляющей элемента управления Randomize — кнопки Randomize Amount (Величина произвольного распределения).

Рисунок 6.62 Элемент управления Randomize и его составляющие


Варианты произвольного распределения


Несмотря на то что в меню Randomize Options перечислено восемь возможных вариантов произвольного распределения, тем не менее, за этим списком скрывается тот факт, что для произвольного распределения на самом деле имеется лишь пять возможных вариантов, поскольку из определенного сочетания пяти исходных вариантов дополнительно получается еще три варианта произвольного распределения. Общим для всех вариантов произвольного распределения является рассеяние (Disperse), поскольку оно входит в каждый вариант. Можно сказать, что рассеяние не возможная, а обязательная составляющая произвольного распределения. В результате рассеяния все выделенные объекты перемещаются в произвольном направлении. А дополнительные составляющие произвольного распределения позволяют немного изменить размер или угол поворота каждого рассеиваемого объекта. Все три составляющие действуют аналогично трем рассмотренным выше элементам управления Resize, Rotate и Reposition.
Однако прежде всего необходимо сделать выбор между рассеянием объектов в двухмерном пространстве, т.е. на ровной горизонтальной плоскости, либо в трехмерном пространстве, где они могут быть распределены по высоте.
После того как выбор будет сделан, необходимо решить, какой из следующих основных видов рассеяния требуется выполнить:
Все четыре указанных выше вида рассеяния могут быть выполнены в двухмерном или трехмерном пространстве, что в итоге и составляет восемь вариантов произвольного распределения. Эти варианты могут быть выбраны непосредственно из всплывающего меню либо по очереди с помощью пиктограммы Randomize Mode Selector. В последнем случае они выбираются по очереди как щелчком, так и перетаскиванием.

Варианты произвольного распределения


Чтобы начать процесс произвольного распределения, следует выполнить перетаскивание элемента управления Randomize Amount. При этом объекты перемещаются из своего исходного положения в новое, произвольно выбираемое положение. Чем больше выполняется перетаскивание, тем дальше объекты перемещаются, и наоборот, чем меньше выполняется перетаскивание, тем ближе происходит перемещение. Если отпустить кнопку мыши, а затем начать перетаскивание снова, объекты будут перемещаться в других направлениях, причем вернуться к прежнему направлению рассеяния после отпускания кнопки мыши уже нельзя. Разумеется, эту операцию можно отменить с помощью комбинации клавиш Cmd+Z/Ctrf+Z. Тем не менее, в процессе произвольного распределения объектов в разных направлениях можно остановиться на мгновение, не отпуская кнопку мыши, и посмотреть, правильно ли выбрано направление рассеяния объектов. Хотя неоднократные попытки вернуться к рассеянию объектов в прежнем направлении, как правило, ни к чему не приводят. В версии Вгусе 2 для Macintosh можно было просто щелкнуть на элементе управления Randomize Amount, чтобы расширить рассеяние на требуемую величину. А в последующих версиях Вгусе, в том числе и в Вгусе 4, принято обязательное перетаскивание, введенное в версии Вгусе 2 для Windows — выполнение одного только щелчка теперь уже ничего не дает.

Дополнительные замечания по поводу выбора вариантов произвольного распределения


Теперь произвольное изменение размера происходит равномерно. В версии Вгусе 2 произвольное изменение размера происходило с соблюдением пропорций, так что группа сфер, например, становилась по-разному сжатой, растянутой и т.д. Теперь же они остаются по-прежнему идеально круглыми.
Произвольное изменение размера происходит в пространстве объектов. В версии В гусе 2 возникали затруднения при попытке осуществить произвольное изменение размера после произвольного вращения, поскольку изменение размера происходило в мировом пространстве. Идеальные конусы и цилиндры вытягивались, принимая причудливую форму, поскольку изменение размера осуществлялось по осям мирового пространства, а не по их собственным осям. Теперь этого уже не происходит, причем рассеяние объектов может происходить в любом порядке: с изменением их размера либо с их вращением.
Вместе с произвольным распределением объектов может быть использовано их выравнивание. В результате вращения и изменения размера объектов в двухмерном пространстве они смещаются относительно двухмерной плоскости. Здесь на объекты оказывает влияние мировое пространство, а также пространство объектов, поскольку в данном случае происходит не только перемещение последних в пространстве объектов, но и незначительное изменение положения двухмерной горизонтальной плоскости, вдоль которой объект перемещается в пространстве вследствие вращения. Чем больше выполняется перетаскивание, тем более крайнюю форму принимают рассеяние и вращение.
На рис. 6.63 показан вид сбоку двухмерного рассеяния с изменением размера (2D Disperse/Size) (рис. 6.63а), двухмерного рассеяния с вращением (2D Disperse/Rotate) (рис. 6.636), трехмерного рассеяния с изменением размера (3D Disperse/Size) ((рис. 6.63в) и трехмерного рассеяния с вращением (3D Disperse/Rotate) (рис. 6.63г). Несмотря на незначительное смещение по вертикали при двухмерном рассеянии, оно не принимает столь крайнюю форму, как при трехмерном рассеянии.
Безусловно, всякий раз, когда требуется вернуть объекты на горизонтальную плоскость, достаточно щелкнуть на элементе управления Align Y, чтобы выровнять все объекты на одном и том же уровне. На самом деле к выравниванию можно прибегнуть на любом этапе произвольного распределения объектов, чтобы каким-то образом ввести этот процесс в определенные контролируемые рамки.
Допустим, что требуется создать сцену, заполненную пузырьками в стиле телевизионных музыкальных программ с участием джаз-оркестра Лоуренса Уэлка (Lawrence Welk). Если требуется, чтобы пузырьки летали по коридору, их следует сначала рассеять по всему пространству, а затем выровнять по оси у и любой из двух других осей. После выравнивания следует немного сместить пузырьки, применив к ним трехмерное рассеяние.

Рисунок 6.63 Вид сбоку рассеяния в двухмерном и трехмерном пространстве: а). Двухмерное рассеяние с изменением; б). Двухмерное рассеяние с вращением; в). Трехмерное рассеяние с изменением размера; г). Трехмерное рассеяние с вращением


Способы произвольного распределения объектов


Ниже приведены некоторые способы разброса двух разных видов пузырьков.

Сцена в стиле телевизионных музыкальных программ с участием джаз-оркестра Лоуренса Уэлка


  1. Создайте файл новой сцены. Выделите плоскость земли и удалите ее. Создайте сферу. Создайте множество сфер непосредственно либо путем дублирования (используя комбинацию клавиш Cmd+D (в Macintosh) либо Ctrl+D (в Windows)). Для начала будет достаточно 10—12 сфер (рис. 6.64а)
  2. Выделите все сферы, используя пиктограмму Sphere Select, расположенную в нижней части палитры выделения объектов (Select Palette).
  3. Выполните произвольное распределение сфер, выбрав команду меню 3D Disperse и выполнив перетаскивание вправо элемента управления Randomize Mode Selection (рис. 6.64б).
    Рисунок 6.64 Произвольное распределение сфер: а). Создание множества сфер; б). Выделение и рассеяние всех сфер
  4. А теперь создайте дополнительные сферы разного размера, сдублировав уже существующую совокупность сфер (с помощью комбинации клавиш Cmd+D/Ctrl+D или команды Edit>Duplicate). Таким образом, получается новая совокупность выделенных сфер. Назначьте ее в качестве другого семейства объектов. Измените цвет этого семейства (рис. 6.65а).
  5. Равномерно уменьшите размер сфер, воспользовавшись элементом управления Resize (ряс 6.656). Затем выполните перетаскивание элемента управления Randomize, чтобы изменить положение сфер (рис. б.бЗв). Если при выполнении щелчка на кнопке Randomize Amount все сферы исчезают из виду, начните все сначала, выбрав команду Snap to World Center из всплывающего меню Alignment. А после этого выполните произвольное распределение сфер.
  6. Если требуется создать третью совокупность сфер другого размера, тогда повторите приведенный выше процесс: сдублируйте сферы, выберите новый цвет семейства или каркасного представления (рис. 6.66а), воспользуйтесь элементом управления Resize, и, наконец, выполните произвольное распределение сфер (рис. 6.666). Все сферы одного размера могут быть выделены в любой момент с помощью команды меню Select by Family (Выделить по семейству). Полностью визуализированная сцена приведена на рис, 6.66в.
Рисунок 6.65 Дублирование и равномерное изменение размера совокупности сфер: а). Назначение нового семейства для сдублированной совокупности сфер; 6). Изменение размера новых сфер; в). Рассеяние новых сфер


Рисунок 6.66 Трехкратное повторение процесса произвольного распределения сфер: а). Назначение уникального семейства для новой совокупности сфер; 6). Изменение размера и рассеяние новых сфер; в). Окончательная визуализация сцены


СОВЕТ
Если в группу произвольно распределенных объектов требуется ввести дополнительные совокупности объектов, это может быть сделано следующим простейшим способом: сдублируйте объекты, сгруппируйте их, поверните полученную группу, чтобы изменить ее положение, а затем расформируйте (более подробно группы объектов рассматриваются далее в этой главе).

Разброс конфетти


До сих пор при произвольном распределении объектов использовалось одно лишь рассеяние. А теперь можно попытаться изменить размер и угол поворота объектов. Причина, по которой вращение не подходит к произвольно распределенным сферам, кроется в их сферической форме, поскольку вращение не оказывает на них никакого влияния. Если же преобразовать этот объект к другому типу, тогда вращение будет оказывать на него влияние.
  1. Выделите все сферы. Выберите пиктограмму двухмерного квадратного объекта с помощью элемента управления Object Conversion (рис. 6.67а). В итоге все сферы превращаются в квадратные кусочки конфетти, причем все они ориентированы одинаково. Как следует из рис 6.67б, получается весьма нереальный эффект.
    Рисунок 6.67 Процесс получения конфетти: а). Превращение сфер в квадраты; б). Получаемые в итоге плоские квадраты

  2. Выполните произвольное распределение полученных выше объектов с помощью команды 3D Disperse/Rotate. Вот и все! С Новым Годом! (рис. 6.68а). Возможно, конфетти получились слишком большими, поэтому уменьшите их размер, воспользовавшись элементом управления Resize. Несмотря на то что все конфетти повернуты произвольным образом, они могут все еще иметь слишком плоский вид. Чтобы исправить это положение, поверните все объекты вокруг одной оси, чтобы их лучше было видно. На рис. 6.68б и в показано каркасное представление и окончательная визуализация этой сцены. (В данном случае был изменен материал конфетти, чтобы несколько изменить их серый цвет, унаследованный от пузырьков, а для большей четкости изображения были выключены атмосферные эффекты.)
  3. А теперь можно немного усложнить сцену. Выделите одно из семейств каркасов. Из квадратных конфетти можно сделать круглые "перфорированные" конфетти, превратив эти объекты в двухмерные диски с помощью элемента управления Object Conversion (рис. 6.69а). На рис. 6.69б показан визуализированный результат этого преобразования (с учетом дополнительного изменения их размера), а на рис. 6.69в та же самая сцена показана с дополнительным вращением всех объектов.
  4. Итак, сцена с разбросанными конфетти завершена, сохраните ее, выбрав команду меню File>Save As и назвав эту сцену "Confetti".

Рисунок 6.68 Создание сцены с разбросанными конфетти: а). Произвольно распределенные квадраты; б). Квадраты, повернутые вокруг одной оси; в). Визуализированный результат

Рисунок 6.69 Усложнение сцены с разбросанными конфетти: а). После превращения некоторых квадратов в окружности; б). Визуализированный результат; в). Все визуализированные обьекты повернуты

Колонны пузырьков


Попробуем теперь внести незначительное выравнивание в процесс произвольного распределения объектов, заставив, например, пузырьки перемещаться узкой колонной.
  1. Откройте снова файл сцены, заполненной пузырьками в стиле телевизионных музыкальных программ с участием джаз-оркестра Лоурейса Уэлка.
  2. Выделите все сферы. Выровняйте их по вертикали, с тем чтобы все они оказались на одной и той же горизонтальной плоскости. Щелкните на одном из элементов управления Align Y. На рис. 6.70а данная сцена показана до выравнивания, на рис. 6.706 — после выравнивания, а на рис. 6.70в — после перемещения плоскости выравнивания пузырьков в центр с помощью клавиш стрелок.
  3. А теперь выровняйте объекты по горизонтальной оси, шелкну и на элементе управления Align X Center или Align Z Center. На рис. 6.71 выбран элемент управления Align X Center. Затем поверните немного камеру, чтобы в поле зрения оказалось больше пузырьков.
  4. После некоторого анализа полученной сцены пузырьки кажутся немного увеличенными, а кроме того, их недостаточно много на сцене. Поэтому уменьшите сначала их размер наполовину (нажав клавишу / либо воспользовавшись элементом управления Resize и клавишей ограничения Shift) (рис. 6.716). Затем сдублируйте и переместите пузырьки на незначительное расстояние вдоль оси t (либо вдоль другой оси, если выравнивание было выполнено иначе). Полученный результат приведен на рис. 6.71 в. Теперь имеется множество сфер разного размера, выстроенных в одну колонну.
  5. Выделите все сферы. Выберите режим трехмерного рассеяния (3D Dispersion). Выполните незначительное перетаскивание элемента управления Randomize. При этом сферы выстраиваются в нечто, приближенно напоминающее колонну, но с незначительным отклонением от общего направления, как это обычно и бывает с пузырьками. Визуализированы и результат произвольною распределения пузырьков приведен на рис. 6,72.
  6. Назначьте пузырькам подходящий материал. (Пример назначения материала для пузырьков приведен в папке Chapter 6 на сопровождающем книгу CD-ROM.)

Метод многократного произвольного распределения с промежуточным выравниванием объектов отлично подходит для достижения контролируемого беспорядочного расположения объектов.

Рисунок 6.70 Выравнивание пузырьков: а). Выделение всех пузырьков; 6). Применение элемента управления Align Y Center; в). Перемещение пузырьков вниз


Рисунок 6.71 Дополнительное выравнивание: а). Выравнивание по оси z, б). Уменьшение объектов наполовину; в). Дублирование и перемещение объектов вдоль оси z


Группирование объектов


Группа (Group) представляет собой своего рода гибрид типа объекта и операции редактирования. Если представить себе объекты в качестве имен существительных, а операции редактирования в качестве глаголов, то группа сочетает в себе и то, и другое. Как только будет выделена совокупность объектов (операция редактирования или глагол), они превращаются в группу (объект или имя существительное). Будучи гибридом, группа выбирается из меню Objects и перечислена во всплывающем меню Selection в палитре выделения объектов. В этой главе группа будет рассмотрена с точки зрения операции редактирования или глагола, а с точки зрения объекта или имени существительного она будет рассмотрена в следующей главе, посвященной составным сложным объектам и булевским операциям над ними.

Рисунок 6.72 Завершение сцены с перемещающимися узкой колонной пузырьками: а). Незначительное перемещение пузырьков в режиме трехмерного рассеяния; б). Визуализированный результат


Прежде всего мы рассмотрим одну из основных операций редактирования — группирование объектов, которое выполняется довольно просто. Если выделены два или более объектов, тогда в области элементов управления редактированием объектов (Edit Objects) появляется пиктограмма G. Для группирования объектов следует щелкнуть на пиктограмме G (выбрать команду Object>Group либо нажать комбинацию клавиш Cmd+G/Ctrl+G). В дополнение к группированию существует возможность расформирования группы объектов. При наличии группы в указанной выше области отображается пиктограмма U. Для расформирования группы достаточно щелкнуть на пиктограмме U, выбрать команду Object>Ungroup либо нажать комбинацию клавиш Cmd+U/Ctrl+U.
Что же происходит в результате группирования или расформирования совокупности объектов? После группирования они уже действуют не в качестве отдельных объектов, а как единый объект. Любая операция редактирования, выполняемая над одним объектом, может быть выполнена и над группой. В частности, можно изменить размер и ориентацию группы, а также опустить или приземлить ее. Это дает возможность неоднократно переходить от сгруппированных объектов к расформированным множествам выделенных объектов для выполнения над ними самых разных действий.

Применение групп


Группы в Вгусе выполняют три основных функции.
Первая функция группы служит в качестве дополнения рассматривавшейся выше операции объединения выделенных объектов в один объект в целях редактирования. Данный вид группирования, перемежающегося с операциями редактирования, более подробно будет рассмотрен в этой главе.
Остальные две функции группы служат для преобразования совокупности объектов в один объект. Во-первых, это дает возможность хранить однотипные объекты вместе, особенно в том случае, если требуется продолжить редактирование этих объектов как единого целого. Если ряд примитивов составляет единое целое (в частности, модель башни, как в упражнении с элементами управления редактированием объектов, приведенном ранее в этой главе), группирование объектов позволяет хранить их вместе.
Во-вторых, группирование используется вместе с булевскими операциями. В частности, для выполнения булевских операций в Вгусе объекты должны быть сгруппированы. Обе указанных выше функции групп будут рассмотрены далее в главе 7.

Способ создания стойбища из сгруппированных конусов


Иногда в процессе корректировки геометрической формы сцены и расположения объектов в режиме редактирования возникает потребность предварительно сгруппировать совокупность объектов для выполнения разного рода операций изменения размера или вращения, оказывающих влияние на объекты в целом. Приведенный ниже способ позволяет создать из конусов стойбище. При этом группирование применяется для вращения ряда объектов определенным образом. Кроме того, в данном способе применяются многие другие элементы управления редактированием объектов, которые пояснялись ранее в этой главе. Таким образом, у читателя появляется отличная возможность применить на практике все вместе взятые элементы управления редактированием объектов.
  1. Откройте файл сцены CONE CAMPGROUND START в папке Edit Chapter на сопровождающем книгу CD-ROM (рис. 6.73а)
  2. Создайте несколько конусов, щелкнув, например, 18 раз на пиктограмме Create Cone. Для создания 17 дополнительных конусов можно воспользоваться командой Multi-Replicate (рис. 6.73б).
  3. Выполните рассеяние конусов. Для этого выделите все конусы, используя пиктограмму Select Cone, и выберите пункт 2D Disperse из всплывающего меню Randomize, а затем выполните перетаскивание элемента управления Randomize Cone для рассеяния конусов (рис. 6.73в).
    Рисунок 6.73 Создание стойбища из конусов: а). Начальная сцена; б). Сцена со множеством конусов; в). Сцена с рассеянными конусами

  4. Конусы получились слишком большими, поэтому уменьшите их наполовину. Их размер может быть изменен следующими тремя способами: в результате нажатия клавиши /, открытия диалогового окна 3D Transformations и ввода значения 50% во всех трех полях Size, а также в результате применения элемента управления Resize вместе с ограничивающей клавишей Shift (рис. 6.74а).
  5. Сдублируйте и распределите дополнительную совокупность конусов. Для этого выберите команду Edit>Duplicate (или нажмите комбинацию клавиш Cmd+D/Ctrl+D), а затем выполните перетаскивание элемента управления Randomize (рис. 6.74б).
    Рисунок 6.74 Редактирование конусов: а). Изменение размера конусов; б). Дублирование и рассеяние дополнительных конусов

  6. Выделите все конусы, щелкнув на пиктограмме Select Cones. Сгруппируйте конусы, щелкнув на пиктограмме G либо выбрав команду Objects>Group Objects.
  7. В виде сбоку (приведенном на рис. 6.75а) обратите внимание на то, что конусы находятся на горизонтальной плоскости. Вернитесь к виду камеры и перейдите в пространство камеры. Поверните группу вокруг оси х таким образом, чтобы ближние конусу стали ниже, а дальние конусы — больше, постепенно уменьшаясь по мере приближения к переднему плану сцены (рис 6.75б).
    Рисунок 6.75 Вращение группы: а). Вид группы сбоку, приведенный для справки; б). Группа, повернутая вокруг оси х в пространстве камеры

  8. А теперь настало время выровнять отдельные конусы таким образом, чтобы избавиться от их наклоненного вида. Сначала расформируйте группу, щелкнув на пиктограмме U. При этом все объекты оказываются выделенными, однако любые операции редактирования будут выполняться над каждым объектом в отдельности. Затем выберите команду UnRotate из всплывающего меню элемента управления Rotate (рис. 6.76а).
    С другой стороны, можно изменить на 0° угол поворота выделенных конусов по всем трем осям в диалоговом окне Object Attributes. На рис. 6.76б показан вид диалогового окна Object Attributes до отмены вращения. Кроме того, в диалоговом окне 3D Transformations можно ввести величину, до которой следует отменить вращение. (В данном случае сделать это будет непросто, тем не менее, мы упомянули здесь о такой возможности, поскольку в некоторых случаях это оказывается удобным.) Результат отмены вращения приведен на рис. 6.76в.
    Рисунок 6.76 Отмена вращения отдельных конусов: а). Выбор команды Unrotate; б). Ввод числовых значений для все еще повернутых конусов в диалоговом окне Object Attributes; в). Полученный результат

  9. Назначьте для полученных выше объектов подходящие материалы. Если конусы все еще выделены. тогда придайте им потусторонний вид, выбрав соответствующий материал из библиотеки предварительно заданных материалов (Materials Preset library). Щелкните на кнопке с треугольником для доступа к предварительно заданным материалам и выберите материал Lit Rays (Световые лучи) из категории Complex f/x (Сложные специальные эффекты) (рис. 6.77а). Щелкните на кнопке с отметкой, чтобы вернуться к сцене. Затем выделите плоскость земли и местность. (В меню Edit для этого имеется команда обратного выделения, а кроме того, для обратного выделения объектов можно воспользоваться комбинацией клавиш Cmd+Shift+A (в Macintosh) либо Ctrl+Shift+A (в Windows)). Вернитесь в библиотеку предварительно заданных материалов и выберите материал Shaman Cliffs (Эрозионные столбы, или "шаманы") в категории Planes & Terrains (Плоскости и виды местности) (рис. 6.776) либо любой другой предварительно заданный материал, имеющий фантастический вид. Щелкните на кнопке с отметкой, чтобы принять выбор материала, а затем выполните визуализацию сцены. Завершенный визуализированный вид сцены приведен на рис. 6.78.

Рисунок 6.77 Выбор предварительно заданных материалов для объектов: а). Материал для конуса; б). Материал для земли и местности

Рисунок 6.78 Завершенный визуализированный вид сцены

Группы и команда Unity


А что произойдет, если применить команду Unity к сгруппированному объекту? В версии Вгусе 2 ответ на этот вопрос был бы неутешительным: каждый объект в группе был бы приведен к единичному размеру, что превратило бы изящно построенный составной объект в бесформенную массу. В версии Вгусе 3D, а значит, и в Вгусе 4, результат будет более утешительным. Во время группирования ряда объектов состояние Unity автоматически определяется для всей группы в целом. Это аналогично применению команды Set as Unity непосредственно после щелчка на пиктограмме G. Если теперь изменить форму или размер группы, то в результате нажатия кнопки = группа вернется в свое исходное состояние, при условии, конечно, что над группой не были выполнены некоторые преобразования с последующим применением команды Set as Unity. В последнем случае команда Unity восстановит состояние группы, установленное после ее преобразования.
Итак, читателя можно поздравить с тем, что ему уже известны все нюансы редактирования объектов. Тем не менее, эта тема будет продолжена при рассмотрении редактирования составных объектов и групп в следующей главе.
Hosted by uCoz