8. Выделите поверхность шубы на уровне подобъекта Surface (Поверхность) и установите для нее идентификатор материала, равный 1. Как это сделать, было описано выше в п. 6 упражнения по созданию шапки Деда Мороза. Затем выделите поверхность оторочки вместе с поверхностью закругления на ее торце и назначьте им идентификатор материала, равный 2. Сохраните файл с инкрементированием имени. Сравните шубу, которая получилась у вас, с той, что имеется в файле Ded Moroz.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
9. Займемся рукавами. Один рукав шубы (скажем, правый) смоделируем методом U-лофтинга, а второй создадим как копию первого. Для моделирования рукава подготовьте набор опорных кривых. С этой целью нарисуйте на виде слева стандартный сплайн-эллипс и превратите его в NURBS-объект. Расположите эллипс вблизи плеча шубы. Создайте необходимое количество копий эллипса, должным образом масштабируйте и разместите их в виде каркаса рукава. На рис. 10.41 показано примерное расположение исходной кривой и восьми ее копий, подготовленных для моделирования рукава с широким меховым обшлагом на конце. Кривые 2 и 3 помещены в средней части рукава с целью создания сегментации поверхности в районе локтевого сгиба, необходимой для плавного изгиба рукава при последующей скелетной деформации.
10. Примените к кривым инструмент Create U-Loft Surface (Создать поверхность методом U-лофтинга), но в два приема, чтобы к плечевой части рукава и меховому обшлагу на его конце можно было впоследствии применить два разных материала. Сначала выполните лофтинг кривых, обозначенных на рис. 10.41 цифрами 1-4. Щелкните правой кнопкой мыши для завершения лофтинга первой части поверхности. Не забывайте о том, что может потребоваться перевернуть нормаль создаваемой поверхности, установив флажок Flip Normals (Перевернуть нормали) в самом низу свитка U Loft Surface (Поверхность U-лофтинга). Затем выполните лофтинг кривых 4-9. В заключение щелкните в окне проекции правой кнопкой мыши, чтобы закончить лофтинг рукава, и еще раз, чтобы выйти из режима U-лофтинга. Рукав готов, как показано на рис. 10.42, но чтобы «пришить» его к шубе, необходимо включить все Подобъекты этого NURBS-объекта в состав объекта Shuba. С этой целью перейдите на уровень выделения объекта NURBS Surface (NURBS-поверхность) и выделите объект Shuba. Щелкните на кнопке Attach (Присоединить), которая зафиксируется и подсветится желтым цветом, а затем щелкните на поверхности рукава. И эта поверхность, и опорные кривые будут включены в состав объекта Shuba в качестве подобъектов.
11. Выделите поочередно поверхности плечевой части рукава и обшлага на уровне подобъекта Surface (Поверхность) и установите для первой из них идентификатор материала, равный 1, а для второй — 2, как это было описано в п. 6 предыдущего упражнения по созданию шапки.
12. Чтобы «пришить» рукав, необходимо сначала спроецировать ближнюю к плечу опорную кривую, обозначенную на рис. 10.41 цифрой 1, на поверхность шубы, используя инструмент Create Vector Projected Curve (Создать проекцию кривой по вектору). С помощью этого инструмента строится проекция выбранной кривой на заданную поверхность в направлении, перпендикулярном плоскости активного окна проекции. Для облегчения процедуры активизируйте уровень выделения подобъекта Surface (Поверхность), выделите две поверхности рукава и скройте их от просмотра, щелкнув на кнопке Hide (Скрыть) в свитке Surface Common (Поверхность в целом). Затем переключитесь на уровень выделения подобъекта Curve (Кривая), выделите все кривые, кроме той, которая ближе всех к плечу, и скройте их, щелкнув на кнопке Hide (Скрыть) в свитке Curve Common (Кривая в целом).
14. Сейчас мы должны вырезать в шубе дырку по контуру спроецированной кривой. Поверните плоскость проекции, чтобы лучше видеть зависимую спроецированную кривую, и выделите эту кривую на уровне подобъекта Curve (Кривая). Прокрутите область свитков командной панели вверх, чтобы видеть свиток Vector Projected Curve (Кривая-проекция по вектору), и установите в этом свитке флажок Trim (Обрезка). Фрагмент поверхности, ограниченный спроецированной кривой, должен исчезнуть, как показано на рис. 10.44. Иногда после такой операции исчезает не фрагмент поверхности, ограниченный спроецированной кривой, а, наоборот, вся поверхность за пределами контура кривой. Остается только ограниченная кривой заплатка. Для исправления такой ситуации нужно установить еще и флажок Flip Trim (Перевернуть обрезку).
15. Восстановите видимость всех опорных кривых рукава, щелкнув на уровне подобъекта Curve (Кривая) на кнопке Unhide All (Сделать видимыми все). Затем восстановите видимость и поверхностей рукава, щелкнув на аналогичной кнопке, но уже на уровне выделения подобъекта Surface (Поверхность). Чтобы «пришить» рукав к шубе, достаточно всего лишь включить кривую, спроецированную на поверхность шубы, в состав опорных кривых поверхности рукава. Выделите часть поверхности, ближайшую к плечу. Она приобретет красный цвет, а на командной панели появится свиток U Loft Surface (Поверхность U-лофтинга). В верхней части этого свитка имеется список U Curves (U-кривые), в котором перечислены все опорные кривые выделенной поверхности, созданной методом U-лофтинга, в том порядке, в каком они выбирались в процессе создания поверхности. Простое изменение порядка следования кривых в списке приводит к полной перестройке поверхности лофтинга, но мы с этим экспериментировать не будем. Если вы выполняли лофтинг, выделяя кривые в порядке от плеча к концу рукава, то в верхней строке списка будет имя кривой, ближайшей к плечу. Предположим, что эта кривая обозначена в списке как CV Curve 09 (CV-кривая09), хотя у вас это имя может быть и другим. Наша задача — поместить наверх списка кривую, созданную методом проецирования, чтобы она стала первой опорной кривой тела лофтинга. Вставка новой кривой в список опорных производится всегда непосредственно над выделенной кривой. Выделите верхнюю строку списка опорных кривых. В окнах проекций соответствующая кривая окрасится синим цветом. Убедитесь, что это самая ближняя к плечу кривая. Щелкните в нижней части свитка на кнопке Insert (Вставить), затем переместите курсор в окно проекции и щелкните на спроецированной зависимой кривой. Имя кривой, скажем, Vector Projected Curve 01 (Кривая 01-проекция по вектору), появится наверху списка опорных кривых. Имейте в виду, что в вашем случае имя кривой может и отличаться от указанного. Поверхность рукава теперь строится от данной кривой, хотя в окнах проекций этого не видно. Сейчас вам станет понятно, в чем причина.
16. Между спроецированной кривой и первым сечением рукава имеет место переворот нормалей поверхности, которая как бы выворачивается наизнанку. Такой переворот может возникать в случаях, когда лофтинг выполняется от кривой-проекции к той кривой, которая проецировалась. Чтобы устранить этот недостаток, выделите кривую Vector Projected Curve 01 (Кривая 01-проекция по вектору) в списке U Curves (U-кривые) свитка U Loft Surface (Поверхность U-лоф-тинга) и установите флажок Reverse (Перевернуть), расположенный сразу под списком. Теперь рукав выглядит так, как надо — посмотрите на рис. 10.45.
17. Чтобы приделать к шубе второй рукав, поступите следующим образом. Переключившись на уровень выделения подобъекта Curve (Кривая), выделите все девять опорных кривых рукава вместе с обшлагом, за исключением зависимой спроецированной кривой. Удерживая клавишу Shift, переместите выделенные кривые в сторону, создав тем самым копию всех девяти кривых. Как и раньше, установите переключатель в появившемся окне диалога в положение Independent Copy (Независимая копия) и щелкните на кнопке ОК. Переместите всю группу кривых, расположив их напротив левого плеча шубы, и поверните на 180°, как показано на рис. 10.46.
18. Дальше действуйте точно так же, как при создании правого рукава. Скройте все кривые, кроме ближайшей к плечу. Спроецируйте эту кривую на поверхность шубы. Вырежьте отверстие внутри спроецированной кривой, выделив ее и установив флажок Trim (Обрезка). В заключение восстановите видимость всех кривых и выполните лофтинг левого рукава в два приема. Сначала постройте поверхность плечевой части рукава, начиная с зависимой спроецированной кривой. Если возникнет переворот нормалей поверхности между спроецированной кривой и ближним к плечу опорным сечением рукава, выделите кривую Vector Projected Curve 02 (Кривая 02-проекция по вектору) на самом верху списка U Curves (U-кривые) в свитке U Loft Surface (Поверхность U-лоф-тинга) и установите флажок Reverse (Перевернуть). Затем отдельно создайте поверхность обшлага на конце рукава, как показано на рис. 10.47. Поочередно выделите обе поверхности и присвойте плечевой части рукава идентификатор материала, равный 1, а обшлагу — равный 2. Сохраните файл с инкрементированием имени. Сравните получившуюся у вас шубу с рукавами с той, что имеется в файле Ded Moroz01.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
19. Воротник смоделируйте методом U-лофтинга. Для этого сначала нарисуйте на виде слева точечную NURBS-кривую, изображающую контур сечения воротника. Назовите ее Vorotnik. При этом, как показано на рис. 10.48, может потребоваться предварительно восстановить видимость головы персонажа, положение которой по отношению к шубе нужно будет подкорректировать.
20. Создайте необходимое число копий нарисованной кривой, разместив их по периметру воротника. Каждую новую копию нужно будет дополнительно масштабировать и поворачивать, примерно так, как показано на рис. 10.49, формируя каркас воротника. На рисунке показано 15 кривых, но можете сделать и меньшее или большее число копий. Масштаб крайних опорных кривых на обоих концах воротника уменьшен до 1 % от исходного размера. Концы воротника умышленно сделаны тонкими и опущены вниз, чтобы оставить место для бороды Деда Мороза.
21. Выполните U-лофтинг поверхности воротника по опорным кривым. После этого откорректируйте положение готового воротника по отношению к шубе и голове персонажа, примерно так, как показано на рис. 10.50. Присоедините воротник к шубе с помощью инструмента Attach (Присоединить) или просто сгруппируйте его с шубой. Сохраните файл с инкрементированием имени. Готовую фигуру Деда Мороза в шубе с воротником можно найти в файле Ded Moroz02.max, который хранится в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
22. Так как наш персонаж имеет достаточно упрощенный вид, руки ему заменяют рукавицы. Создайте эти рукавицы тоже методом U-лофтинга. Сначала на виде слева или справа нарисуйте эллипс, вытянутый по вертикали, который будет играть роль сечения рукавицы. Превратите его в NURBS-объект и разместите перед обшлагом рукава. Постройте три-четыре копии сечения, разместите их в виде каркаса рукавицы и должным образом масштабируйте, примерно как показано на рис. 10.51. Масштаб крайнего сечения, обозначенного на рисунке цифрой 4, уменьшите до 1 % от исходного.
23. Выполните U-лофтинг рукавицы. При необходимости установите флажок Flip Normals (Перевернуть нормали). Присоедините рукавицу к NURBS-объекту Shuba, действуя, как было описано выше в п. 9 данного упражнения. Чтобы рукавица не была оторвана от рукава, включите кривую, обозначенную на рис. 10.51 цифрой 1, в состав опорных кривых обшлага. Для этого выделите поверхность обшлага на уровне подобъекта Surface (Поверхность), затем выделите в списке U Curves (U-кривые) опорных кривых в свитке U Loft Surface (Поверхность U-лофтинга) самую нижнюю строку, которая читается как---End-----. Щелкните на кнопке Insert (Вставить), а затем — на ближней к обшлагу опорной кривой рукавицы. Имя кривой появится в самом низу списка, а поверхность обшлага будет продолжена до стыковки с поверхностью рукавицы. Стык поверхностей получится не очень гладким, так как число управляющих вершин опорных кривых обшлага и рукавицы никак не согласовано между собой. Чтобы сделать поверхность обшлага в районе стыка несколько более гладкой, выделите имя только что добавленной кривой в списке U Curves (U-кривые) и установите флажок Auto Align Curve Stats (Автовыравнивание статистик кривых) в нижней части свитка U Loft Surface (Поверхность U-лофтинга). В итоге у вас должна получиться конструкция, подобная показанной на рис. 10.52.
24. Чтобы приделать к рукавице большой палец, сначала нужно действовать так же, как при «пришивании» рукава к шубе. Создайте в окне вида сверху точечную кривую в форме эллипса и поместите ее над тем местом, из которого должен «расти» палец. Присоедините созданную кривую к объекту Shuba и спроецируйте ее на поверхность рукавицы, как было описано выше в п. 12. Повернув плоскость проекции, выделите спроецированную кривую и установите флажок Trim (Обрезка), чтобы вырезать в рукавице отверстие по контуру кривой, как показано на рис. 10.53.
26. Для создания второй рукавицы применим иной метод копирования, чем тот, что использовался при создании второго рукава шубы. Переключившись на уровень выделения подобъекта Surface (Поверхность), выделите поверхность пальца рукавицы. Удерживая клавишу Shift, на виде сверху переместите поверхность в сторону. Вы обнаружите, что за пальцем потянется и копия рукавицы со всем набором опорных кривых. Отпустите кнопку мыши, и на экране появится уже знакомое вам окно диалога Sub-Object Clone Options (Параметры дублирования подобъектов). Теперь внимание, наступает важный момент! До сих пор мы дублировали NURBS-объекты, устанавливая переключатель Independent Copy (Независимая копия). Если и на этот раз установить этот переключатель и щелкнуть на кнопке ОК, то будет скопирована только поверхность пальца, даже без опорных кривых, по которым она построена. Но мы поступим по-другому. Установите переключатель окна диалога Sub-Object Clone Options (Параметры дублирования подобъектов) в положение Relational Сору (Зависимая копия). При данном положении переключателя используется установленный по умолчанию флажок Include Relational Parents (Включая родительские зависимости). Это значит, что копируемый объект сохраняет все свои зависимости, а все Подобъекты, от которых он зависел, копируются вместе с ним. В данном случае вместе с поверхностью пальца будут скопированы опорные кривые этой поверхности. Но это еще не все. Так как одна из опорных кривых пальца, обозначенная на рис. 10.54 цифрой 1, в свою очередь, зависит от поверхности рукавицы, то копируется и эта поверхность. А так как поверхность рукавицы зависит от своих опорных кривых, то копируются и они, как видно на рис. 10.55. Щелкните на кнопке ОК, разместите копию рукавицы на положенном ей месте и соедините с левым рукавом, как было описано выше в п. 22. Сохраните файл с инкрементированием имени. Для сравнения можете загрузить модель Деда Мороза в шубе с воротником и с рукавицами на руках из файла Ded Moroz03.max, который хранится в папке Scenes\ Glava_10 компакт-диска, прилагающегося к книге.
27. В создании валенок нет никаких секретов: простой U-лофтинг. Так что много тут рассказывать не о чем. Создайте эллиптическую NURBS-кривую подходящего размера либо за счет преобразования стандартного эллипса, либо нарисовав ее вручную. Постройте какое-то число независимых копий этой кривой, расположите их в виде каркаса будущего валенка и должным образом масштабируйте, скажем, как показано на рис. 10.56. Как обычно в таких случаях, масштаб крайнего сечения (кривая 8 на рис. 10.56) уменьшите до 1 % от исходного размера, стянув его почти в точку.
28. Примените к кривым инструмент U-лофтинга. Создайте зависимую копию поверхности валенка вместе с опорными кривыми и разместите оба валенка снизу под шубой. Не забудьте посмотреть на фигуру слева или справа, чтобы совместить точку опоры с проекцией кажущегося центра тяжести. В итоге наш персонаж должен выглядеть примерно так, как показано на рис. 10.57. Еще раз сохраните файл с инкрементированием имени. Для сравнения можете загрузить готовую модель Деда Мороза в шубе с воротником, с рукавицами на руках и валенками на ногах из файла Ded Moroz04.max, который хранится в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
29. Бороду Деда Мороза создадим все тем же методом U-лофтинга. Предварительно можете скрыть от просмотра воротник и шубу, чтобы они не мешали на начальном этапе работы над бородой. Чтобы борода плотно прилегала к лицу, сначала нарисуйте на виде спереди кривую, изображающую контур краев бороды на лице персонажа, как показано на рис. 10.58. Главное — не допустить, чтобы контур выступал за границы проекции головы персонажа, иначе проецирование кривой будет невозможно. Затем на виде справа или слева поместите эту кривую перед головой. Переключившись на верхний уровень выделения, выделите объект-голову и присоедините к ней кривую с помощью инструмента Attach (Присоединить). Активизируйте окно проекции Front (Вид спереди) и выполните проецирование кривой на нижнюю часть головы в направлении, перпендикулярном плоскости этого окна, с использованием инструмента Create Vector Projected Curve (Создать проекцию кривой по вектору). Установите флажок Trim (Обрезать), вырезав отверстие по контуру спроецированной кривой. Для использования проецируемой кривой в качестве одного из опорных сечений бороды эту кривую нужно переместить вниз и слегка повернуть. Чтобы суметь это сделать, нужно разорвать связь между проецируемой кривой и ее проекцией, точно так же, как мы поступали, приделывая палец к рукавице. С этой целью выделите спроецированную кривую, переключившись на уровень выделения подобъекта Curve (Кривая), и преобразуйте ее к типу COS (Кривая на поверхности), щелкнув на кнопке Make COS (Сделать кривой на поверхности) в свитке Surface Common (Кривая в целом). В появившемся окне диалога Convert Curve On Surface (Преобразование кривой на поверхности) установите переключатель в положение CV Curve On Surface (CV-кривая на поверхности) и задайте нужное число управляющих вершин (скажем, 20) в счетчике Number of CVs (Число управляющих вершин). Щелкните на кнопке ОК.
30. Теперь нужно создать некоторое количество опорных сечений бороды. В качестве одного из них можно использовать кривую, которую мы проецировали на предыдущем шаге. Эту кривую нужно несколько опустить вниз на виде спереди, сместить вперед на виде сбоку и подкорректировать по форме. Создайте еще три-четыре копии этой кривой и разместите их в виде каркаса бороды. При этом следует располагать кривые так, чтобы борода разместилась поверх шубы и не проникала через воротник. Примерное расположение опорных сечений бороды показано на рис. 10.59. Чтобы борода выглядела волнистой, отредактируйте форму каждого сечения, переключившись на уровень выделения подобъекта. Выполните U-лофтинг поверхности бороды, начиная с кривой типа COS, обозначенной цифрой 1 на рис. 10.59. Вероятно, как и в предыдущих подобных случаях, потребуется выделить имя кривой типа COS в списке опорных кривых поверхности U-лофтинга, где эта кривая по-прежнему должна именоваться Vector Projected Curve (Кривая-проекция по вектору), и установить флажок Reverse (Перевернуть). Кроме того, потребуется установить флажок Auto Align Curve Stats (Автовыравнивание статистик кривых), так как мы выполняли преобразование спроецированной кривой, и число ее управляющих вершин отличается от числа вершин опорных кривых тела лофтинга. В заключение выделите поверхность бороды на уровне подобъекта Surface (Поверхность) и присвойте ей идентификатор материала, равный 2. В итоге наш Дед Мороз должен приобрести вид, подобный показанному ранее на рис. 10.11. Сохраните файл, который на данный момент должен иметь имя Ded Moroz05.max. Вы можете найти полностью готовую модель Деда Мороза в файле Ded Moroz05.max, хранящемся в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге.
Итак, завершено большое и достаточно сложное упражнение, в ходе которого вам довелось испытать на практике многие из инструментов, приемов и методов работы с NURBS-поверхностями и кривыми. Разумеется, мы смогли близко познакомиться далеко не со всеми инструментами и методами. Надеюсь, что если вас заинтересовал класс NURBS-объектов, вы сможете продолжить знакомство с секретами данного раздела трехмерной графики самостоятельно, используя для этой цели электронный справочник программы max 7.5.
7. Снова выбрав команду меню File > Merge (Файл > Присоединить), выделите в окне диалога Merge File (Присоединение файла) файл Stol i stul03.max и щелкните на кнопке Open (Открыть). На прилагающемся к книге компакт-диске нужная сцена хранится в папке Scenes\Glava_08 под тем же именем Stol i stul03.max. В окне диалога Merge (Присоединение) выделите объект StolOI, все составные элементы которого были ранее сгруппированы, и щелкните на кнопке ОК. Стол появится в составе сцены «МАХ-кафе».
8. Переместите стол на нужное место. Для этого, ограничивая преобразование осью Y, переместите стол вверх в окне проекции Front (Вид спереди), так чтобы его ножки только касались объекта Pol. Здесь важно обеспечить высокую точность, так как если ножки будут висеть в воздухе, тень сразу же выдаст эту ошибку. При необходимости укрупните область изображения в месте касания пола ножкой стола. Кстати, можете попрактиковаться в применении освоенного нами в главе 8 инструмента Align (Выровнять), кнопка которого располагается на главной панели инструментов max 7.5. В оконной системе координат выравнивание следует производить вдоль оси Y, причем минимальная координата стола должна выравниваться с максимальной координатой пола. Для любителей точности скажу, что правильная Z-координата стола должна быть равна 72,5 см, если вы все делали так же, как я. Затем, ограничивая преобразование плоскостью XY, подвиньте стол к окну кафе в окне проекции Тор (Вид сверху), поместив его в районе точки с координатами (-45; -144; 72,5). Создайте дубликат-образец стола, назовите его Stol02 и поместите вблизи тыльной стены, в районе точки с координатами (-66; 149; 72,5), как показано на рис. 10.62.
9. Теперь разместите вокруг столов по четыре кресла. Присоедините к сцене объект-группу Kreslo01 из файла Kreslo01.max (на прилагающемся к книге компакт-диске нужная сцена хранится в папке Scenes\Glava_08 под таким же именем Kreslo01.max). Поднимите кресло в окне проекции Front (Вид спереди) или Left (Вид слева), поставив его ножками на пол, или примените для этого инструмент выравнивания, а затем придвиньте к одному из столов. Создайте семь дубликатов-образцов кресла и расставьте их по четыре штуки вокруг каждого из столов. Поверните кресла лицевыми сторонами к столам, но не старайтесь обеспечить слишком строгую симметрию расстановки, чтобы сцена выглядела более живо, примерно так, как показано на рис. 10.63.
10. Присоедините к текущей сцене объект-группу Zerkalo из файла Zerkalo01.max (на прилагающемся к книге компакт-диске нужная сцена хранится в папке Scenes\Glava_08 также под именем Zerkalo01.max). Поместите объект ровно посередине левой стены здания кафе (координата Y равна нулю) на такой высоте, чтобы нижний край рамы оказался на уровне нижнего края подушек кресел, как показано на рис. 10.64.
11. Добавьте в состав сцены два светильника. Для этого присоедините объект-группу Lampa01 из файла Lampa04.max (на прилагающемся к книге компакт-диске нужная сцена хранится под тем же именем Lampa04.max в папке Scenes\ Glava_08). Создайте дубликат-образец светильника и разместите светильники по обе стороны от зеркала на расстоянии порядка 50 см от краев рамы. Высоту расположения светильников отрегулируйте так, чтобы верхний край плафонов был примерно на 10 см ниже верхнего края рамы зеркала (при этом Z-координата светильника должна составлять 215 см), как показано на рис. 10.65.
12. Настала пора заняться сервировкой столов. Выделите объект Stol01, активизируйте окно проекции Тор (Вид сверху) и щелкните на кнопке Zoom Extents Selected (Выделенные объекты целиком), чтобы установить подходящий масштаб для работы. Создайте в этом окне проекции кусок Безье типа QuadPatch (Четырехугольный кусок), который будет играть роль салфетки. Назовите объект Salfetka01 и создайте семь его дубликатов-образцов. Разместите «салфетки» в окне проекции Тор (Вид сверху) по четыре штуки по краям обоих столов, напротив каждого из кресел. Так как куски Безье создавались на координатной плоскости окна проекции Тор (Вид сверху), то их необходимо поднять вверх до уровня верхнего края столешниц. Выделите все восемь кусков Безье и переместите их в окнах проекций Front (Вид спереди) или Left (Вид слева) вверх по экрану (вдоль оси У), разместив точно на поверхности столов. Можете применить с этой целью инструмент Align (Выровнять), выполнив выравнивание минимальной Z-координаты каждого куска Безье с максимальной Z-координатой стола.
13. Присоедините к сцене ранее созданные нами объекты Tarelka01, Lozhka01, Vilka01 и Bokal01 из соответствующих файлов. Создайте для каждого объекта по 7 дубликатов-образцов и разместите их на обоих столах поверх салфеток примерно так, как показано на рис. 10.66. Можете разложить столовые приборы и по-другому: я не силен в сервировке. Для удобства можно сначала расставить нужным образом оригиналы тарелки, ложки, вилки и бокала, затем выделить их все и создать 7 дубликатов всего выделенного набора. Каждый из наборов-дубликатов затем нужно будет переместить на положенное ему место и при необходимости повернуть до правильной ориентации.
14. Итак, все необходимые элементы геометрии левой части сцены подготовлены и сведены воедино. Интерьер левой части помещения кафе «МАХ» должен теперь выглядеть примерно так, как показано на рис. 10.67. Чтобы увидеть расстановку предметов внутри помещения в тонированном режиме отображения, необходимо временно скрыть от просмотра объекты Fasad, Viveska, Okno, Korobka, LevStvorka и PravStvorka, а также снежные валики на фундаменте и ступеньке, используя для этого инструменты свитка Hide (Скрыть) командной панели Display (Дисплей), рассмотренные в главе 3.
15. Теперь займемся правой частью сцены. Чтобы разместить у правой стены кафе камин, подготовьте в этой стене вырез, в который будет задвинута выступающая сзади часть топки. Утопить выступ в стене нашего виртуального кафе можно было бы и не делая выреза, но в этом случае стена будет просматриваться в углублении топки. О том, как вырезать в объектах отверстия методом булевского вычитания, рассказывалось в главе 7, «Пробуем метод лофтинга, создаем булевские объекты и системы частиц». Размеры выреза должны составлять примерно 135 см по ширине и 115 см по высоте. В каком именно месте стены — ближе к двери или дальше от нее — сделать этот вырез, решите самостоятельно. Загрузите объект Kamin, созданный в главе 9, и придвиньте его вплотную к стене, задвинув выступ в подготовленный вырез. На прилагающемся к книге компакт-диске нужный объект хранится в папке Scenes\Glava_09 под именем Kamin01.max. При желании вместе с камином добавьте в сцену объект Vaza. Вы можете импортировать его из файла Vaza01.max, который хранится на компакт-диске в папке Scenes\Glava_09. Этот объект мы уже разместили на каминной полке, поэтому вам не придется его выравнивать. Вместо вазы вы можете поставить на каминную полку созданный вами кубок. Эту модель под названием Kubok вы также можете найти на компакт-диске в папке Scenes\ Glava_09. В топку камина поместите поленья, подготовленные в одном из упражнений главы 5 и модифицированные в главе 8. Эти объекты при необходимости можно найти в файле Drova01.max, помещенном в папку Scenes\Glava_08. Рядом с камином поставьте кочергу, которую в виде объекта Kocherga можно найти в файле Kocherga01.max. Этот файл при желании можно найти в папке Scenes\Glava_07 компакт-диска, сопровождающего книгу.
16. В правый дальний угол помещения поставьте новогоднюю елку. Готовую трехмерную модель такой елки вы можете найти в файле Yolka.max, хранящемся в папке Scenes\Glava_10 прилагающегося к книге компакт-диска. Чтобы наша елка прочно стояла на полу, установите ее в крестовину, которую присоедините к сцене из файла Krestovina.max, созданного ранее в главе 8. Аналогичный файл можно найти в папке Scenes\Glava_08. Для украшения елки «развешайте» на ней игрушки — ранее созданные объекты Sharik, Gribok, Mesiac, Zolotaia ribka. Чтобы игрушек было побольше, создайте пять-шесть копий елочных шариков и распределите их по ветвям. На верхушку елки поместите объект Zvezda. При необходимости вы найдете файл Sharik01.max в папке Scenes\ Glava_08, а файлы, содержащие модели остальных упомянутых объектов, — в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге.
18. Щелкните в окне диалога Spacing Tool (Распределение) на кнопке Pick Path (Указать путь), а затем — на сплайне-спирали. Укажите в счетчике Count (Число) нужное число дубликатов, скажем, 30. Значения всех остальных параметров можно оставить принятыми по умолчанию. В частности, это означает, что будет создано распределение типа Divide Evenly, Objects at Ends (Равномерное разбиение, объекты на концах), то есть 30 дубликатов-копий сферы равномерно распределятся вдоль кривой. Чтобы реализовать такое распределение, щелкните на кнопке Apply (Применить). После этого можно удалить и исходный образец сферы, и сплайн спирали — 30 объектов-дубликатов не исчезнут и не изменят своего пространственного распределения. Сгруппируйте елку вместе со всеми игрушками, крестовиной и шариками гирлянды, назвав группу Yolka. В итоге елка может иметь примерно такой вид, какой показан на рис. 10.69.
19. В заключение поместите под елочкой фигуру Деда Мороза, но не в исходной позе, в какой вы создавали его в ходе упражнений данной главы, а в более живом виде, с мешком за плечами и посохом в руке. Такой вид мы постараемся придать нашему персонажу позже, в главе 16. Пока же можете просто загрузить готовую фигуру, найдя файл DedMoroz06.max в папке Scenes\Glava_10 прилагающегося к книге компакт-диска. На рис. 10.70 показано, как выглядит в результате правая часть кафе «МАХ». Закончив подготовку геометрической модели сцены «МАХ-кафе», сохраните ее в файле под заданным в начале работы именем MAX-kafe08.max.
Наконец-то наступил момент, когда все составные части проекта «МАХ-кафе» готовы и мы можем свести их воедино, закончив тем самым конструирование геометрической модели сцены. Представленное в данном разделе упражнение позволит вам закрепить навыки использования целого ряда команд и инструментов max 7.5, предназначенных для работы с файлами, группирования, преобразования и дублирования объектов.
Суть упражнения состоит в том, чтобы создать стандартную NURBS-поверхность и придать ей форму наброшенной на стол скатерти со свободно свисающими краями, подобной той, какая была показана на рис. 2.23 главы 2, за счет перемещения управляющих вершин в трехмерном пространстве и настройки весов этих вершин.
Голова нашего персонажа — это преобразованная в NURBS-объект стандартная сфера. Формирование таких деталей лица, как глазные впадины, нос, губы, уши, требует перемещения управляющих вершин. При этом другие вершины вблизи перемещаемых должны оставаться неподвижными, ограничивая деформируемую область поверхности. Для получения нужной детальности в местах формирования элементов лица необходимо вставлять дополнительные ряды управляющих вершин. Например, чтобы создать выпуклость (вроде уха), нужно иметь как минимум три ряда компактно расположенных вершин, о чем уже говорилось выше. Группу вершин среднего из трех рядов можно будет вытянуть в сторону, а вершины двух рядов по бокам не дадут всей остальной поверхности потянуться за перемещаемыми вершинами.
Существует множество подходов к моделированию голов трехмерных персонажей. Естественно, что создаваемая нами модель головы будет иметь упро-щенный, несколько гротескный вид. Для моделирования голов реалистичных персонажей используются иные методы, рассмотрение которых выходит за рамки данной книги.
Для формирования модели головы на базе стандартной сферы, преобразованной в NURBS-объект, выполните следующие действия:
1. Перезагрузите max 7.5 и сохраните пустую сцену под именем Ded Moroz-Golova.max.
2. Создайте в окне вида сверху стандартный примитив Sphere (Сфера) радиусом порядка 10-11 см с центром в начале координат. Превратите этот примитив в NURBS-поверхность способом, описанным в заключительном разделе главы 5. По умолчанию сфера превращается в поверхность типа CV. Разверните на командной панели Modify (Изменить) список подобъектов объекта типа NURBS Surface (NURBS-поверхность) и выберите в списке строку под-объекта Surface CV (Вершины поверхности). Вокруг сферы изобразится решетка деформации из управляющих вершин. Как можно видеть на рис. 10.12, создаваемая по умолчанию сегментация решетки неравномерна по поверхности сферы. Выделите рамкой все управляющие вершины верхней (по окну) половины сферы, которая будет играть роль затылка, как показано на рис. 10.12, и щелкните на кнопке Hide (Скрыть) в свитке CV (Управляющие вершины) командной панели Modify (Изменить). Когда мы на следующем шаге начнем работать с управляющими вершинами лицевой поверхности сферы на виде спереди, такое действие, во-первых, уменьшит число вершин, попадающих в поле зрения, и, во-вторых, застрахует вас от возможности случайного преобразования вершин задней половины сферы.
Для завершения работы над головой нашего персонажа не хватает еще шапки, усов и бороды. Бороду будем создавать в последний момент, так как она должна располагаться поверх шубы, а усами и шапкой займемся сейчас.
Для создания шапки и усов применим уже знакомый вам по главе 7 метод U-лоф-тинга, а заодно освоим инструмент преобразования типов NURBS-кривых.
Выполните следующие действия:
1. Загрузите файл Ded Moroz-Golova.max, созданный в предыдущем упражнении, или найдите файл с таким же именем на прилагающемся к книге компакт-диске, где он хранится в папке Scenes\Glava_10. Сохраните файл с инкрементированием имени.
2. В окне вида сверху создайте стандартный сплайн Circle (Круг) радиусом несколько большим, чем радиус сферы, из которой создавалась голова, как показано на рис. 10.27. Превратите круг в NURBS-объект, используя цепочку команд Convert To > Convert to NURBS (Превратить в > Превратить в NURBS) четвертного меню. Обратите внимание на то, что сплайн преобразуется в объект NURBS Surface (NURBS-поверх-ность), а не NURBS Curve (NURBS-кри-вая). Назовите новый объект Shapka. Теперь можно временно скрыть от просмотра модель головы, чтобы она не мешала работе над шапкой.
Приступим к созданию элементов одежды нашего персонажа. Особенностью этого упражнения будет знакомство с новыми понятиями и приемами, а также освоение на практике навыков использования некоторых новых инструментов редактирования NURBS-объектов, включая:
понятия о зависимых NURBS-объектах, таких как кривая, спроецированная по вектору {Vector Projected Curve), или кривая на поверхности (COS — Curve On Surface); инструменты создания NURBS-поверхностей по опорному сечению и направляющей, а также проецирования NURBS-кривых на NURBS-поверх-ности; метод вырезания отверстий в NURBS-поверхностях; методы добавления новых кривых в список опорных сечений тела U-лофтинга, выравнивания статистики кривых и устранения искажений формы поверхности за счет изменения порядка следования управляющих вершин опорных кривых; метод «сшивки» поверхностей, позволяющий создавать объекты с ветвящейся топологией; метод создания зависимых дубликатов NURBS-объектов; метод превращения зависимой кривой, спроецированной на поверхность, в кривую, зависящую только от этой поверхности и т. д.Следует учесть, что наш персонаж носит гротескный характер, поэтому его пропорции явно должны отличаться от пропорций реалистичного персонажа. Если рост взрослого человека составляет обычно 6-7 вертикальных размеров его головы, то наш Дед Мороз гораздо более коренаст. Весь его рост не превышает 3,5-4 вертикальных размеров головы, а вертикальный размер шубы составляет всего около двух вертикальных размеров головы (рис. 10.34).
Сформируйте итоговую геометрическую модель «МАХ-кафе», выполнив следующие действия:
1. Откройте созданный нами в восьмой главе файл MAX-kafe07.max, содержащий модель здания кафе с проемами для двери и окна, а также две скрытые пока системы частиц-снежинок. При необходимости вы найдете файл с такой сценой под аналогичным именем MAX-kafe07.max в папке Scenes\Glava_08 компакт-диска, прилагающегося к книге. Сохраните файл с инкрементированием имени.
2. Выделите объекты Zadniaia stena, LevStena, PravStena и Fasad, после чего щелкните на кнопке Zoom Extents All Selected (Выделенные объекты целиком во всех окнах), чтобы установить удобный масштаб для дальнейшей работы.
3. Чтобы скомпоновать сцену из различных файлов, можно использовать команды Merge (Присоединить) или XRef Objects (Ссылки на объекты) меню File (Файл). Воспользуемся командой File > Merge (Файл > Присоединить), чтобы сделать сцену независимой от внешних ссылок: вдруг вам захочется поделиться своей разработкой с друзьями? Для начала снабдим здание кафе окном. Выбрав команду File > Merge (Файл > Присоединить), выделите в окне диалога Merge File (Присоединение файла) файл Okno01.max. Если вы по каким-то причинам не создали окна для кафе, загрузите файл с таким же именем из папки Scenes\Glava_08 компакт-диска, прилагающегося к книге. В появившемся окне диалога Merge-Okno01.max (Присоединение-Okno01.max) дважды щелкните па имени объекта Okno.
4. Переместите окно в точку с координатами (-150; -299; 160), и оно точно займет свое место в оконном проеме. Естественно, стекло окна пока не является прозрачным, — чтобы сделать его таковым, необходимо применить к окну соответствующие материалы. Этим мы займемся в главах третьей части нашей книги. Пока же продолжим наполнение сцены.
5. Вставим в подготовленный проем двустворчатую дверь. Модель двери была заблаговременно подготовлена нами в восьмой главе, и вы могли бы просто загрузить ее из сохраненного ранее файла Dveri.max. Однако подготовленные вами створки дверей пока не могут нормально открываться, в чем легко убедиться, попробовав повернуть любую из них. Опорные точки (вспомните главу 4) обеих створок размещаются пока там, где они находились у прямоугольных параллелепипедов, служивших заготовками для изготовления створок, — в центрах оснований. Так как параллелепипеды строились в окне вида спереди, то основаниями у них стали широкие стороны, прилегающие к координатной плоскости окна Front (Вид спереди). В центрах этих сторон и находятся опорные точки обеих створок. Предлагаю загрузить готовую модель двери, опорные точки створок которой смещены к косякам так, чтобы обеспечивать правильный поворот каждой из половинок дверей. Такая модель имеется в файле с именем Dveri01.max, который вы можете найти в папке Scenes\Glava_10 компакт-диска, прилагающегося к книге. Выполните команду меню File > Merge (Файл > Присоединить) и присоедините к текущей сцене группу Dveri из файла Dveri01.max, содержащую объекты Korobka, PravStvorka и LevStvorka. Установите двери на место, как показано на рис. 10.60, передвинув их в окнах проекций Тор (Вид сверху) и Front (Вид спереди). Если вы будете использовать ввод точных координат дверей, то вот необходимые значения: (75; -310; 133).