Елочное украшение «Спящий месяц»
Займемся освоением метода сплайновых каркасов на примере очередного украшения для нашей новогодней елки, представляющего собой сказочный месяц, несколько загадочно, на мой взгляд, дремлющий с полузакрытыми глазами, как показано на рис. 9.77.
Рис. 9.77. Елочное украшение «Спящий месяц» построено методом натягивания сетки кусков Безье на сплайновый каркас
1. После обычной перезагрузки max 7.5 сохраните пустую сцену под именем Mesiac.max.
2. Разверните окно проекции Front (Вид спереди) во весь экран. Выберите на командной панели Create (Создать) категорию объектов Shapes (Формы) и с помощью инструмента Arc (Дуга) нарисуйте в окне проекции дугу радиусом примерно 20-25 см. Чтобы получить доступ к средствам редактирования формы дуги на уровне подобъектов, примените к ней модификатор Edit Spline (Правка сплайна). Стандартная дуга имеет всего четыре вершины (рис. 9.78). Разумеется, подобную дугообразную кривую можно было нарисовать и вручную. Однако в ряде случаев, подобных нашему, бывает удобно начать построение с использования стандартного сплайна.
Рис. 9.78. В качестве основы сплайнового каркаса выбран стандартный сплайн-дуга
3. Продолжите построение каркаса, дорисовывая сплайны вручную. Чтобы вновь создаваемые сплайны оказывались подобъектами исходной дуги, что является необходимым условием применимости модификатора Surface (Поверхность), будем строить их с помощью инструмента Create Line (Создать линию). Кнопка этого инструмента находится в свитке Geometry (Геометрия) командной панели Modify (Изменить) и доступна на уровне выделения любого подобъ-екта сплайна. Переключитесь на уровень выделения подобъекта Vertex (Вершина), чтобы видеть метки вершин. Установите флажок Automatic Welding (Автоматическое слияние) в разделе End Point Auto-Welding (Автослияние крайних вершин) этого же свитка Geometry (Геометрия). Это обеспечит слияние концевых вершин двух копий сплайна при их сближении на расстояние, меньшее указанного в счетчике Threshold Dist (Пороговое расстояние).
4.
Сейчас мы должны нарисовать профиль «лица» месяца, замкнув новой кривой сплайн дуги. Щелкните на кнопке Create Line (Создать линию). Укажите курсором на одну из концевых вершин дуги, скажем, на верхнюю. В этот момент курсор должен принять вид, показанный на приведенном справа рисунке, указывая на готовность к началу рисования сплайна, который будет представлять собой продолжение кривой дуги.
Начинайте рисование, используя те же приемы, какие были описаны в главе 6, «Рисуем кривые, осваиваем методы вращения и выдавливания». Используйте в качестве образца рис. 9.79. К этому моменту вы, надеюсь, уже настолько усовершенствовали свои навыки рисования кривых в max 7.5, что нет никакой необходимости диктовать координаты вершин, как это делалось в главе 6. Да к тому же мы перешли из области конструкторского черчения в область творчества, так что ваш месяц может оказаться совсем не таким, как показанный на рисунке, а гораздо интереснее и лучше. Последний щелчок кнопкой мыши сделайте в точке второй концевой вершины дуги. Щелкните на кнопке Yes (Да) в ответ на запрос Close spline? (Замкнуть сплайн?). Не пытайтесь сразу придать рисунку идеальную форму, лучше это сделать на следующем шаге, перемещая отдельные вершины и настраивая положения их касательных векторов. Не пытайтесь и воспроизвести точно такое число вершин, как показано на рисунке. На последующих шагах всегда можно создать на кривой новые вершины с помощью уже знакомого вам по главе 6 инструмента Retine (Уточнить) или удалить лишние вершины. Не выключая действие инструмента Create Line (Создать линию), нарисуйте замкнутый контур, призванный изображать глаз месяца. Для завершения режима создания новых кривых щелкните правой кнопкой мыши.
Рис. 9.79. «Профиль лица» месяца дорисован вручную так, чтобы замкнуть дугу, затем с помощью того же инструмента нарисован контур глаза
5. Поработайте над формой кривой, выделяя отдельные вершины и манипулируя их касательными векторами. Теперь добавьте с помощью инструмента Refine (Уточнить) несколько вершин на линии тыльной стороны контура «головы» месяца — той линии, которая еще недавно была простой дугой. При добавлении вершин руководствуйтесь следующими соображениями. Нарисованный нами контур будет служить как бы рамкой сплайнового каркаса. Для создания сетки, на которую будет натягиваться поверхность, нам потребуется добавлять сплайны поперек этой рамки. Для такой цели нужно иметь пары вершин на лицевой и тыльной сторонах контура головы, располагающиеся примерно напротив друг друга. Постарайтесь добавить такие парные вершины примерно так, как показано на рис. 9.80. Впрочем, не забывайте о том, что если при работе над каркасом потребуются новые вершины, создать их в любом требуемом количестве с помощью инструмента Refine (Уточнить) никогда не поздно.
Рис. 9.80. Добавлены новые вершины, которые позволят продолжить построение сплайнового каркаса
6. Для продолжения работы над снлайновым каркасом необходимо активизировать режим трехмерной привязки. Если вы забыли, как это делается, обратитесь к главе 3. Щелкните на кнопке 3D Snap (Трехмерная привязка), расположенной на главной панели инструментов шах 7.5, чтобы зафиксировать ее в нажатом состоянии. При этом активизируется режим, позволяющий точно выравнивать новые объекты по заданным элементам геометрии сцены во всех трех измерениях одновременно. Чтобы выбрать нужный тип привязки, щелкните на кнопке 3D Snap (Трехмерная привязка) правой кнопкой мыши. Появится окно диалога Grid and Snap Settings (Настройка сетки и привязок). На вкладке Snaps (Привязки) этого окна обязательно сбросьте установленный по умолчанию флажок Grid Points (Узлы сетки), обеспечивающий трехмерную привязку к узлам координатной сетки, и установите флажок Endpoint (Концевые точки) (рис. 9.81). Этот тип привязки обеспечит фиксацию курсора только на вершинах сплайнового каркаса.
Рис. 9.81. В окне диалога Grid and Snap Settings выбран тип привязки, используемый при построении сплайновых каркасов
7. Приступим к созданию поперечных ребер внутри контурной рамки каркаса. Убедитесь, что активен режим выделения подобъектов-вершин. Щелкните на кнопке инструмента Create Line (Создать линию) и установите курсор на одну из вершин рамки каркаса, скажем, вблизи верхнего рожка месяца. При этом вокруг выбранной вершины должен появиться квадрат голубого цвета — значок привязки. Также в голубой цвет должен окраситься и прилегающий к выбранной вершине сегмент сплайна, как можно видеть на рис. 9.82. Начинайте создание нового сплайна, только когда увидите оба эти сигнала готовности к точной привязке вершины нового сплайна к имеющейся вершине. Если начать создание нового сплайна, не видя сигналов точной привязки, новая вершина может оказаться сколь угодно близко от имеющейся, но не в одной точке с ней, а этого недостаточно для успешного применения к такому каркасу модификатора Surface (Поверхность).
Рис. 9.82. Появление значка привязки в виде голубого квадрата и окрашивание прилегающего к вершине сегмента кривой (показаны стрелками) в голубой цвет — сигналы точной привязки
ЗАМЕЧАНИЕ Неточное совпадение вершин пересекающихся сплайнов, образующих каркас, — одна из возможных причин появления «дыр» в поверхности, создаваемой на основе такого каркаса модификатором Surface (Поверхность). Если после применения модификатора вы обнаруживаете, что те ячейки, которые имеют, как положено, по три или четыре вершины, вдруг оказались не покрытыми поверхностью, проверьте совпадение вершин сплайнов, ограничивающих эти ячейки. Иногда для этого достаточно слегка повернуть плоскость проекции. Может статься, что вершины, которые казались на виде спереди точно совпадающими по координатам Z и X, окажутся совершенно не совпадающими по координате глубины сцены Y. |
8. Увидев сигналы привязки, щелкните кнопкой мыши и начинайте строить сплайн между двумя противолежащими вершинами рамки каркаса. Создайте у этого сплайна одну промежуточную вершину. Третью вершину нового сплайна точно совместите с вершиной на рамке, как показано на рис. 9.83. Щелкните правой кнопкой мыши для завершения рисования сплайна.
Рис. 9.83. Построен первый поперечный сплайн каркаса, концевые вершины которого за счет трехмерной привязки точно совмещены с вершинами рамки
9. Продолжите построение новых поперечных сплайнов, соединяя между собой противолежащие вершины рамки, а также вершины рамки — с вершинами контура глаза. Создайте сплайн, который обрисовывает контуры губ, как показано на рис. 9.84. Щелкните правой кнопкой мыши для завершения рисования сплайна и еще раз — для выключения режима создания линий.
Рис. 9.84. Построен ряд поперечных сплайнов, постепенно выявляющих структуру каркаса
10. До сих пор мы проводили все построения в окне вида спереди, так что пока наш каркас является совершенно плоским. В этом легко убедиться, заглянув в окно вида сверху. Сейчас наступает самый важный момент: пора придать каркасу требуемую объемность. Сделать это не так легко, так как придется перемещать маркеры касательных векторов вершин сплайнов в трехмерном пространстве. Перед началом настройки векторов обязательно выключите режим трехмерной привязки, щелкнув на кнопке 3D Snap (Трехмерная привязка) и приведя ее в исходное положение. Попытка перемещать векторы при включенной трехмерной привязке может приводить к непредсказуемым последствиям. Задача состоит в том, чтобы придать выпуклость поперечным сплайнам каркаса, не затрагивая рамку, которая должна остаться плоской. Для придания сплайнам требуемой выпуклости используйте следующий прием. Выделяйте нужную вершину в окне вида спереди, а перемещайте ее в окне вида сверху. Те вершины, в которых пересекаются два или более сплайнов, выделяйте обязательно с помощью рамки. Чтобы выделенные вершины имели касательные векторы, изменяйте их тип на Bezier (Безье) или, где необходимо, на Bezier Corner (Безье с изломом). Начните, скажем, со средней вершины сплайна вблизи верхнего рожка месяца. Выделите ее на виде спереди, преобразуйте к типу вершины Безье, затем в окне вида сверху переместите вершину в сторону от рамки каркаса. Настройте положения ее касательных векторов, чтобы придать сплайну требуемое закругление. Затем поочередно выделите рамкой каждую из концевых вершин этого сплайна, преобразуйте их к типу Безье и настройте касательные векторы концевых вершин. На рис. 9.85 можно видеть, как приблизительно должны выглядеть первые два поперечных сплайна на видах спереди и сверху. Следите за тем, чтобы в ходе настройки не сместить сами концевые вершины. Если такое случится, отмените ошибочные действия.
Рис. 9.85. Первым двум поперечным сплайнам придана выпуклость за счет перемещения их средних вершин в сторону от плоскости каркаса в направлении стрелок
СОВЕТ Часто после перемещения вершин сплайнов каркаса или их касательных векторов появляется сообщение Weld Coincident Vertices? (Слить совпадающие вершины?). Как правило, на него следует отвечать щелчком на кнопке No (Нет). |
11. Продолжите придавать выпуклость остальным элементам каркаса, включая контуры глаза. Старайтесь при этом мысленно представить, что на создаваемый вами каркас уже «натянута» поверхность. Это помогает понять, как именно следует изогнуть тот или иной элемент каркаса. Меняйте плоскость проекции, рассматривая каркас под разными углами. В итоге у вас должно получиться нечто, напоминающее изображение на рис. 9.86.
Рис. 9.86. Вид на каркас сверху и в произвольной проекции показывает, что поперечным сплайнам придана выпуклость
12. На данном этапе уже можно применить к каркасу модификатор Surface (Поверхность). При этом куски Безье образуются только на тех ячейках каркаса, которые имеют по три или четыре вершины. Пока таких ячеек немного: вблизи верхнего рожка месяца, справа и слева от глаза и в пределах контура губ, так что поверхность и впрямь будет состоять из отдельных кусков. Тем не менее многие мастера советуют применять модификатор уже на ранней стадии работы над каркасом, чтобы видеть, в нужном ли направлении идет его правка. Попробуйте отыскать на каркасе «правильные» ячейки и применить модификатор, чтобы убедиться в том, что понимаете его действие. Разверните список Modifier List (Список модификаторов) и щелкните на строке Surface (Поверхность) в разделе Patch/Spline Editing (Правка кусков/сплайнов). Обратите внимание на счетчик Threshold (Порог) в свитке параметров модификатора, который появится на панели Modify (Изменить). Если расстояние между какими-то вершинами сплайнового каркаса оказывается меньше величины Threshold (Порог), эти вершины сливаются в одну. В связи с этим величина данного параметра существенным образом влияет на вид поверхности, получающейся после «натягивания» сетки кусков на сплайновый каркас. В нашем примере установленное но умолчанию значение порога в 2,54 см (один дюйм) оказывается великовато, и часть вершин в районе губ месяца сливается, искажая форму сетки (рис. 9.87, слева). Чтобы устранить эти искажения, уменьшите пороговое расстояние слияния, для чего достаточно один раз щелкнуть на нижней стрелке счетчика Threshold (Порог). Параметр принимает значение 1,27 см, и в итоге изображение в окне вида спереди должно выглядеть примерно так, как показано на рис. 9.87, справа. Рассмотрите сформировавшиеся куски под разными углами, чтобы убедиться в том, что они имеют нужную выпуклость.
Рис. 9.87. В результате применения модификатора Surface из ячеек с четырьмя вершинами образовались куски Безье, форма которых искажена (слева), что устраняется уменьшением величины Threshold (справа)
Чтобы продолжить работу над каркасом, не нужно удалять модификатор из стека. Достаточно активизировать в окне стека модификаторов строку любого из подобъектов модификатора Edit Spline (Правка сплайна), и каркас снова будет доступен для редактирования. По мере появления новых «правильных» ячеек на них будут «натягиваться» куски Безье. Увидеть эти новые куски можно будет, просто снова щелкнув в окне стека на строке модификатора Surface (Поверхность) для его активизации.
13. Снова включите режим трехмерной привязки и продолжите добавление новых сплайнов в окне вида спереди, тщательно следя за сигналами привязки вершин новых сплайнов к уже имеющимся вершинам каркаса. Постройте продольный сплайн, соединив сначала две противолежащие вершины в районе нижнего рожка месяца, а затем перемещаясь вверх и щелкая на средних вершинах поперечных сплайнов. Завершите этот продольный сплайн в правом углу глаза. Далее постройте сплайны, обозначающие дополнительную сегментацию каркаса в области губ. В частности, соедините кривыми вершины в серединах губ с уголком рта. Эти кривые позволят придать губам требуемую выпуклость. Соедините угол рта также и с основанием носа, чтобы ячейка каркаса над верхней губой имела допустимое число вершин. В качестве наглядного руководства используйте изображение, показанное на рис. 9.88. Добавив новые сплайны, настройте их выпуклость и кривизну, как было описано выше.
Рис. 9.88. Добавлены сплайны для придания выпуклости губам и разбиения каркаса на треугольные и четырехугольные ячейки
14. Если вы все делали как нужно, то теперь уже должно было образоваться гораздо больше «правильных» ячеек каркаса. Активизировав в стеке строку модификатора Surface (Поверхность), вы сможете увидеть нечто, подобное изображению на рис. 9.89. Не знаю, как для вас, а для меня этот процесс появления «из ничего» предмета, который кажется вполне осязаемым, представляется основным привлекательным моментом данной техники моделирования. Если получившаяся у вас поверхность не выглядит достаточно гладкой, имеет выступы или впадины, следует снова вернуться к правке формы сплайнов каркаса, разглядывая их под разными углами.
Рис. 9.89. Поверхность вылепливаемого объекта нарастает кусок за куском
СОВЕТ Обязательно рассматривайте сплайны, образующие каркас, под разными углами зрения. Проекции — такая обманчивая штука! Кажется, все выровнял, но чуть изменишь ракурс, и оказывается, что на самом деле все кривые расположены наперекосяк. Значит, нужно снова манипулировать касательными векторами — а что делать? Кстати, иногда кусок поверхности бывает не виден не из-за неточного совмещения вершин ограничивающих его сплайнов, а из-за того, что его нормаль оказалась перевернутой и он обращен к вам оборотной стороной. Для проверки установите флажок Flip Normals (Перевернуть нормали) в свитке параметров модификатора Surface (Поверхность). Если кусок после этого появится (при этом все остальные куски исчезнут из вида, но это не беда), нужно сбросить этот флажок, вернуться на уровень правки подобъектов Spline (Сплайн), выделить сплайн каркаса, ограничивающий ячейку, и щелкнуть на кнопке Reverse (Обратить). Это приведет к изменению порядка следования вершин сплайна на обратный. Обычно после этого кусок становится виден. |
15. Настал черед заняться глазом и носом. Не забыв включить режим трехмерной привязки, постройте в окне вида спереди сплайн, изображающий нижнее веко и проходящий снизу от глаза от одного его угла (вершина 1 на рис. 9.90) к другому (вершина 3). Создайте на этом сплайне одну промежуточную вершину в точке 2. Затем нарисуйте сплайн, тянущийся от кончика носа (вершина 4) к точке на щеке (вершина 5) и имеющий одну промежуточную вершину в точке 6. Соедините точку 6 одним сплайном с передним уголком глаза (вершина 3), а другим — с вершиной 7 на рамке каркаса. Из точки 8 на кончике верхнего рожка месяца протяните сплайн через средние точки двух поперечных сплайнов рожка (вершины 9 и 10), точку 11 на верхнем краю верхнего века, точку 12 на нижнем краю верхнего века, среднюю точку нижнего века (вершина 2), завершив этот сплайн в точке 5 у основания носа. Остается только создать еще два сплайна: один, соединяющий две противолежащие вершины на верхнем веке (точки 13 и 14), и другой, тянущийся от основания носа (точка 5) вверх, к переднему уголку глаза (вершина 3). Теперь выключите режим привязки и настройте выпуклость и кривизну только что созданных сплайнов, изменяя тип их вершин на Bezier (Безье) или Bezier Corner (Безье с изломом). Проверяйте правильность построения, периодически активизируя модификатор Surface (Поверхность). В итоге половинка «Месяца» должна принять вид, показанный ранее на рис. 9.70. Сохраните файл под заданным в начале работы именем Mesiac.max, а затем сохраните файл еще раз, но с инкрементированием имени.
Рис. 9.90. Новые сплайны, завершающие конструкцию каркаса, проходят через вершины, пронумерованные в порядке упоминания в тексте
ЗАМЕЧАНИЕ Понимая, что никакие двумерные изображения не дают полного представления о трехмерной модели, хочу посоветовать загрузить готовую модель половинки месяца и хорошенько рассмотреть ее с разных сторон. Такую модель можно найти в файле Mesiac.max, хранящемся в папке Scenes\Glava_09 компакт-диска, прилагающегося к книге. Готовая модель «Месяца» имеется в файле Mesiac01.max в той же папке. |
16. В заключение создайте зеркальную копию половинки «Месяца» и переместите ее на нужное место. Присоедините половинку-копию к оригиналу. Выделите в окне вида сверху, справа или слева все вершины вдоль линии стыка и примените к ним инструмент Selected (Выделенные) из раздела Weld (Слить) свитка Geometry (Геометрия). Сохраните файл под заданным в начале работы именем Mesiac.max, а затем сохраните файл еще раз, но с инкрементированием имени.
Надеюсь, что сумел объяснить основные хитрости создания трехмерных тел на основе сплайновых каркасов, и вы сможете использовать полученные навыки при моделировании собственных проектов.
Обратите внимание на то, что при создании каркаса мы старались свести к минимуму число треугольных ячеек, создавая в основном четырехугольные. Как уже говорилось, такой подход обеспечивает получение более ровной и гладкой сетки. Правда, его реализация требует от модельера дополнительных усилий, хорошего пространственного воображения и... умения считать до четырех.
Чтобы придать поверхности нужную форму и одновременно обеспечить ее требуемую гладкость, часто приходится удалять одни вершины сплайнов каркаса и создавать новые. В ходе предыдущего упражнения у вас могло сложиться впечатление, что я заранее знал, где расставлять вершины сплайнов. Это не так, здесь использована маленькая хитрость: вся работа по поиску оптимальной расстановки вершин была проделана заранее методом проб и ошибок и осталась за кадром. В работе над реальным проектом некому будет подсказать вам, сколько промежуточных вершин нужно создать у того или иного сплайна, так что не забывайте о существовании инструмента Refine (Уточнить) и клавиши Delete. Кстати, перед добавлением новых вершин с помощью инструмента Refine (Уточнить) не забывайте выключать режим трехмерной привязки!