Трехмерная графика Maya для продвинутых

         

Пусть они улягутся

Как разместить несколько объектов на волнистой поверхности, чтобы они «прилипли» к ней?

Тема:

Динамика.

Используемые техники и инструменты:

Sculpt Surface Tool (Создание рельефа на NURBS-поверхности), Rigid Body Dynamics (Динамика Твердого Тела), Gravity (Гравитация).



Очень мало поверхностей имеет по-настоящему плоскую форму. Даже полы в новом здании имеют неровности, особенно заметные по краям ковра. Размещение на их неровной поверхности каких-нибудь объектов в трехмерной графике всегда вызывает затруднения. Много времени уходит на операции перемещения и вращения объектов, пока они действительно красиво лягут на землю, а не зависнут над ней и не погрузятся внутрь. При использовании динамики твердого тела эта проблема решается мгновенно. И не потребуется ни единого перемещения!

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

Создайте плоскость с достаточно плотной геометрией для осуществления на ней мелких деформаций (рис. 18.1).

Рис. 18.1. Поверхность плотностью 20x20 патчей...

    Откройте окно настроек, выбрав Edit NURBS / Sculpt Surface Tool (Редактирование NURBS / Создание рельефа на NURBS-поверхности). Если ваша поверхность представляет собой полигональную плоскость, выберите Edit Polygons / Sculpt Polygons Tool (Редактирование Многоугольников / Создание рельефа на полигональной поверхности). Используя кисть модуля Artisan, деформируйте поверхность так, чтобы она стала волнистой (рис. 18.2).

Рис. 18.2.  ...деформируем с помощью кисти модуля Artisan

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

Рис. 18.3. Куб размещен вручную. Сложно найти точку, в которой он естественно лежал бы на поверхности. В данном случае он проникает в поверхность по крайней мере в двух точках

    Переместите объекты так, чтобы они лежали немного над поверхностью (рис. 18.4).

Рис. 18.4. Стартовая позиция симуляции. Четыре объекта расположены над поверхностью и сейчас упадут на нее

    Преобразуйте плоскость в пассивное твердое тело. Нажмите F4, выберите Soft/Rigid Bodies / Create Passive Rigid Body (Мягкие/Твердые Тела / Создать Пассивное Твердое Тело) (рис. 18.5).

Рис. 18.5. Земля заявлена как пассивное твердое тело и теперь может участвовать в симуляции

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

    Выделите все объекты над землей и назначьте им гравитацию. Для этого выберите Fields / Gravity (Поля / Гравитация) (рис. 18.6).

Рис. 18.6. Сила гравитации влияет на объекты. Они становятся активными твердыми телами и готовы к падению

Добавив гравитацию, мы убиваем сразу двух зайцев: она преобразует каждый объект в активное твердое тело и связывает их с полем тяготения, которое потянет их вниз со скоростью 9,8 м/с .

Воспроизведите анимацию (рис. 18.7).

Рис. 18.7. Три фазы падения четырех объектов на волнистую поверхность в соответствии с законами сэра Исаака Ньютона. Чем округлее объекты, тем дольше они катятся по поверхности до полной остановки

Для того чтобы MAYA точно воспроизвела симуляцию кадр за кадром, откройте Preferences (Установки) и измените Playback Speed (Скорость Воспроизведения) с Normal (Нормальная) на Play every Frame (Воспроизводить каждый кадр). Если какие-то из ваших объектов все еще проникают в поверхность, увеличьте разрешение плоскости (рис. 18.8). Значение для Tesselation Factor (Множитель Тесселяции) вы можете найти в Attribute Editor (Редакторе Атрибутов) для Rigid Body (Твердое Тело) (но не для поверхности) в секции Performance Attributes (Атрибуты выполнения).

Рис. 18.8. Упавшие объекты не будут проникать в поверхность, если вы увеличите значение для Tesselation Factor (Множитель Тесселяции) [Тесселяция - разбиение. - Примеч. ред. ]

Если вам не нужно, чтобы объекты катились по поверхности перед окончательной остановкой, выполните несколько действий. Разместите объекты ближе к земле перед падением уменьшите значение параметра Bounciness (Упругость) (рис. 18.9), и объекты не будут подпрыгивать при соприкосновении с землей; либо вы можете увеличить их Static Friction (Сила трения покоя), чтобы они не скатывались с возвышенностей. Однако помните: чтобы вы ни делали, симуляция остается симуляцией. Другими словами, ничего предсказать нельзя.

Рис. 18.9. При значении 0 параметра Bounciness (Упругость) объекты теряют упругость

    Симуляция определит конечное расположение объектов - при ее воспроизведении объекты найдут свои конечные положения и замрут в них (рис. 18.10).

Рис. 18.10. Все объекты естественно расположены на поверхности

    Остановите симуляцию и прекратите существование объектов как твердых тел. Для этого выберите Edit / Delete by Type / Rigid Bodies (Редактирование / Удалить в зависимости от Типа / Твердые Тела). Эта команда удаляет все твердые тела, вам даже не нужно их выделять.

Используя такой подход, вы можете не только расположить несколько предметов один рядом с другим на поверхности, но и позволить им падать друг на друга, складываясь в пирамиду. рис. 18.11 демонстрирует размещение 2001 полигонального куба на плоской поверхности. Симуляция, использованная для этого, в действительности состоит из нескольких симуляций с сотней или около того кубов в каждой. Большую симуляцию из 2001 кубов не выдержал бы никакой центральный процессор персонального компьютера. Кроме того, более мелкие симуляции позволяют вам эффективнее контролировать область размещения - большая она или маленькая, размещение объектов контролируется динамическими законами. Размещение кубов один на другой либо один около другого вручную заняло бы у вас целый день.

Рис. 18.11. Хаос из 2001 куба после нескольких динамических симуляций (из анимации для детского телевидения Германии)

А теперь кое-что новенькое. Приходилось ли вам вызывать и убирать окно Outliner (Схема Сцены) всего лишь двумя щелчками мышки (используя значок в верхней правой части экрана)? [В правой верхней части экрана нет иконки для Outliner. - Примеч. ред. ]