Первые шаги в Maya. Урок 7. Основы NURBS-моделирования. Часть 2
Фантастическая картина скалистого побережья
Boundary
Операция Boundary (Граница) предназначена для построения поверхностей из области пространства, ограниченной тремя или четырьмя пересекающимися кривыми: одной-двумя вертикальными и одной-двумя горизонтальными (рис. 48). Вертикальные кривые определяют боковые поверхности будущей поверхности, а горизонтальные — верхнюю и нижнюю границы. Кривые необязательно должны принадлежать одной плоскости, а потому могут произвольным образом располагаться в пространстве.
Рис. 48. Исходные кривые (слева) и полученная Boundary-поверхность
Для получения поверхности подобным методом требуется создать три-четыре пересекающиеся кривые, выделить их и выбрать в меню Surfaces (Поверхности) команду Boundary (Граница). Порядок выделения исходных кривых чаще всего значения не имеет, но бывают ситуации, когда при случайном выделении может получаться не та поверхность, что была задумана, да и изопармы могут быть расположены неудачно для дальнейшего редактирования. Поэтому рекомендуется выделять кривые попарно: вначале две вертикальные, потом две горизонтальные.
Сказочный утенок
Попробуем смоделировать довольно сложный объект — сказочного утенка, правда для сокращения времени на разработку ограничимся лишь базовыми элементами модели: туловищем, головой, лапами, крыльями и хвостом. Лапы, крылья и хвост у него будут созданы с применением метода Boundary, голова представлена NURBS-шаром, а туловище получено лофтингом.
Начнем с лап. Создайте четыре граничные кривые (рис. 49), выделите их попарно и примените команду Surfaces=>Boundary (Поверхности=>Граница) — из ограниченного кривыми пространства будет вырезана плоскость, которая в дальнейшем и послужит основой для лапы (рис. 50). Аналогичным образом создайте четыре кривые для крыла (рис. 51), выделите их и сформируйте соответствующий им Boundary-объект (рис. 52). Точно так же смоделируйте основу для хвоста (рис. 53 и 54). Выделите все объекты (как кривые, так и плоскости) и временно скройте их, чтобы не мешали работе, применив команду Display=>Hide=>Hide Selection (Отображение=>Скрыть=>Скрыть выделенные объекты).
Рис. 49. Кривые для первого Boundary-объекта
Рис. 50. Появление первого Boundary-объекта
Рис. 51. Кривые для второго Boundary-объекта
Рис. 52. Появление второго Boundary-объекта
Рис. 53. Кривые для третьего Boundary-объекта
Рис. 54. Появление третьего Boundary-объекта
Приступим к моделированию туловища посредством лофтинга. Создайте представленный на рис. 55 набор сечений и примените к ним операцию Loft (рис. 56). При необходимости подкорректируйте вид полученного лофт-объекта, используя операции масштабирования и перемещения для кривых-сечений. Создайте голову в виде обычного шара с увеличенным числом изопарм и разместите ее на некотором расстоянии от туловища. Теперь соедините голову и туловище при помощи лофтинга, применив его к изопараметрическим кривым. Для этого вначале создайте две дополнительные окружности требуемого размера в качестве промежуточных сечений и последовательно выделите верхнюю изопарму туловища, оба дополнительных сечения и нижнюю изопарму шара (рис. 57). Подрегулируйте вид полученного лофт-объекта, возможный результат представлен на рис. 58.
Рис. 55. Исходные элементы для первого loft-объекта
Рис. 56. Первый лофт-объект
Рис. 57. Выделение базовых элементов для второго loft-объекта
Рис. 58. Промежуточная визуализация сцены
Выделите в окне Outliner все Boundary-объекты и включите их отображение, применив команду Display=>Show=>Show Selection (Отображение=>Показать=>Показать выделенные объекты). Выделите Boundary-объект, предназначенный для создания лапы, разместите его нужным образом, сделайте копию и слегка сместите ее вниз. Затем выделите граничные изопармы на оригинале и на копии (рис. 59) и сгенерируйте связывающий их по данным изопармам лофт-объект. Точно так же обработайте и остальные граничные изопармы. По окончании сделайте копию готовой лапы и поместите ее на полагающееся место — возможный результат показан на рис. 60. Последовательно повторите все вышеперечисленные операции для крыльев и хвоста. По окончании назначьте объектам материалы. Возможный вид полученного в итоге сказочного утенка представлен на рис. 61. Сохраните сцену, так как мы к ней еще вернемся.
Рис. 59. Выделение базовых элементов для третьего loft-объекта
Рис. 60. Вид модели после создания лап
Рис. 61. Сказочный утенок
Birail
Метод Birail (Поверхность по двум направляющим) предназначен для построения поверхностей из области пространства, ограниченной двумя направляющими и одним, двумя или тремя профилями, причем профильные кривые должны обязательно соприкасаться с направляющими. И те и другие могут быть как независимыми кривыми, так и изопараметрическими. В зависимости от количества кривых-профилей технология применения метода немного различается, а потому предусмотрены три варианта выполнения операции: Birail 1, Birail 2 и Birail 3. Вариант Birail 1 довольно сильно напоминает методы Extrude и Loft и может использоваться в качестве их альтернативы, вариант Birail 2 — похож на метод Boundary, для варианта Birail 3 аналогов нет.
Для получения поверхности методом Birail 1 необходимо построить кривую-профиль и две направляющие (рис. 62), выбрать в меню Surfaces (Поверхности) команду Birail=>Birail 1 Tool, а затем указать кривую-профиль и только потом кривые-направляющие. Получение поверхности по методу Birail 2 предполагает построение двух кривых-профилей и двух направляющих (рис. 63), после чего следует выбрать команду Surfaces=>Birail=>Birail 2 Tool, а затем указать две профильные кривые, а затем две направляющие. При использовании метода Birail 3 потребуется построить три (или более) криволинейных профиля и две направляющие (рис. 64), выбрать команду Surfaces=>Birail=>Birail 3 Tool, последовательно указать три (или более) профильные кривые, нажать клавишу Enter и выбрать две направляющие. Обратите внимание, что во всех трех случаях перед выбором команды Surfaces=>Birail необходимо снять выделение со всех кривых, иначе принцип их указания в процессе построения поверхности окажется иным. Кроме того, нередки случаи, когда после анализа ситуации программа отказывается строить поверхность, — причиной этого является отсутствие соприкосновения профильных кривых с направляющими. Визуально это может быть совершенно незаметно, так как кривые могут пересекать друг друга (что четко прослеживается в открытых окнах проекций), но, тем не менее, не соприкасаться непосредственно. Для того чтобы исключить подобные ситуации, следует создавать профильные кривые в режиме Curve Snapping (Прилипание к кривой), для чего при построении требуется удерживать в нажатом состоянии клавишу C. Данный режим автоматически обеспечивает соприкосновение кривых при пересечении.
Рис. 62. Исходные кривые (слева) и полученная поверхность — метод Birail 1
Рис. 63. Исходные кривые (слева) и полученная поверхность — метод Birail 2
Рис. 64. Исходные кривые (слева) и полученная поверхность — метод Birail 3
Есть и еще один важный нюанс: нередко поверхность строится, но при попытке отрегулировать ее внешний вид путем перемещения управляющих вершин — пропадает. Причина в том, что количество имеющихся на кривых управляющих точек оказывается недостаточным для подобных преобразований. Например, обратите внимание на рис. 65, на котором каждая кривая построена при минимуме управляющих вершин (две-три в зависимости от вида кривой). Плоская Birail-поверхность по ним прекрасно строится (метод Birail 3), но любая попытка превратить ее в объемную путем перемещения вершин профильных кривых закончится неудачей в связи с отсутствием необходимого для этого резерва вершин. В таком случае перед редактированием поверхности на уровне вершин базовых кривых необходимо увеличить число управляющих точек путем перестраивания кривых командой Edit Curves=>Rebuild Curve (Редактировать кривые=>Перестроить кривую).
Рис. 65. Исходные кривые (слева) и полученная Birail-поверхность, возможности перестройки которой из-за малого числа вершин ограниченны
Крыша для домика
Чтобы разобраться с особенностями применения метода Birail, попробуем смоделировать простой объект — крышу для домика. Для начала создайте NURBS-прямоугольник, применив команду Create=>NURBS Primitives=>Square, и проведите по его середине прямую линию инструментом EP Curve Tool (рис. 66). Снимите выделение с кривых, откройте из меню Surfaces команду Birail=>Birail 3 Tool, последовательно укажите три профильные кривые, нажмите клавишу Enter и выберите две направляющие. Появится плоская поверхность (рис. 67). Учитывая, что число управляющих вершин на исходных кривых при данном варианте их формирования минимально (а потому при попытке их перемещения поверхность исчезнет), увеличьте их количество. Для этого выделите все кривые и примените команду Edit Curves=>Rebuild Curve (Редактировать кривые=>Перестроить кривую), указав в окне ее параметров требуемое число вершин — в нашем случае 20 (рис. 68). На центральной профильной кривой выделите средние вершины и переместите их вверх так, чтобы поверхность приняла желаемую криволинейную форму (рис. 69). Полученную поверхность можно использовать, например, в качестве крыши для домика (рис. 70).
Рис. 66. Кривые для Birail-объекта — профильные кривые выделены
Рис. 67. Плоская Birail-поверхность
Рис. 68. Результат увеличения числа управляющих вершин
Рис. 69. Объемная Birail-поверхность
Рис. 70. Домик с крышей