Наша новая игра 8 сентября в раннем доступе на steam



Разбиваем стекло, бетон, асфальт, пол

Этот небольшой урок поможет вам быстро, качественно и реалистично разбить стекло, бетонный пол, асфальт и другие подобные объекты.

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

В этом уроке используется бесплатный скрипт Cocktail Greeble. Скачайте его перед началом работы.

  1. Создаем цилиндр. Настраиваем Сap Segments и Sides так, чтобы было достаточно детально. Количество сторон должно делиться на 4, все другие настройки на ваше усмотрение.

    Настройки в моем примере:

    Radius: 50 (ориентировочный размер будущего объекта, который нужно разбить)
    Height: 30 (не имеет значения)
    Height Segments: 1
    Cap Segments: 5 (влияет на детализацию)
    Sides: 16 (влияет на детализацию)

  2. Конвертируем цилиндр в Editable Poly и удаляем все полигоны кроме верхней части. Смотрите картинку 1:

    Верх цилиндра с нужными настройками

  3. Этот шаг необязателен, но если вам нужен квадратный результат, то нужно проделать. На виде сверху (относительно ориентации вашего объекта) нужно выделить верхние ребра на периметре и нижние и сделать их параллельными (кнопки Make Planar, X, Y, Z). Аналогично поступить с правыми и левыми ребрами на периметре. Смотрите картинку 2:

    Делаем из круга квадрат

  4. Если вы создаете разбиваемое стекло или что-то бьющееся на осколки, то нужно добавить побольше деталей в месте, куда придется удар. Поэтому нужно детализировать (Tessellate) центр нашего объекта. В моем примере, я убрал каждое второе ребро в центре, чтобы избавиться от треугольников. После этого выбрал полигоны вокруг центра и нажал кнопку Tessellate. Далее я расширил (кнопка Grow) выделение дважды и еще раз нажал Tessellate. В конце я еще нажал кнопку Relax, чтобы разровнять топологию. Смотрите картинку 3:

    Удаление ребер и операция Tesselate и Relax

  5. Сейчас нужно запустить скрипт Cocktail Greeble (меню MAXScript --> Run Script...). Нажимайте кнопку Pick cocktail glass и выделяйте наш бывший цилиндр. Вы должны увидеть, что кнопка изменила название на имя нашего объекта, а кнопки, которые раньше были недоступны сейчас стали активны. Перейдите в режим Polygon и выделите все полигоны, кроме граничащих с краем объекта. Картинка 4:

    Окно скрипта Cocktail Greeble

  6. Следующим шагом будет перетасовка (Shuffle) топологии, чтобы полигоны стали похожи на осколки. У скрипта есть две настройки на этот счет в разделе Geometry modification (изменение геометрии). Последняя настройка No n-gon! – это просто модификация первой. Вы можете выбрать нажимать вам Shfl. connect или Shfl. relax. Отличаются они тем, что Shfl. relax после модификации топологии делает еще и разглаживание (Relax) на основании параметров справа от кнопки. Лично я, предпочитаю сначала перетасовать геометрию, а уже потом, с помощью стандартной максовской кнопки Relax, расслаблять поверхность. Так и сделаем, рисунок 5:

    Модификация топологии и последующее разглаживание

  7. Если вы нажали кнопку Shfl. connect, то теперь нужно еще нажать Relax. Я использовал такие настройки: Amount: 1, Iterations: 100. Результат на картинке 5. Поэкспериментируйте с кнопкой Shfl. connect и разными выделениями, чтобы получить интересный хаотический рисунок. Но помните, что если вы создадите слишком много осколков, то их будет труднее просчитать при ударе.
  8. После того как вы определились с топологией разломов, пора приступить к интересным штучкам. Выделяем все вершинки и жмем кнопку Breake (внутри Editable Poly). Теперь все полигоны являются отдельными элементами. Т.е. можно двигать любой полигон без влияния на соседние. На картинке 6 показана разница в использовании обычного примитива Plane (плоскость) и цилиндра.

    Отличие топологии цилиндра и плоскости

  9. Что делать дальше – это уже от вашего желания зависит. Вот некоторые примеры:
  • Если хотите разбить окно – добавляем модификатор Shell (картинка 7) и загоняем в ваш любимый физический симулятор: BOX#2, reactor of physX или что там еще.

    Симуляция разбивания стекла

  • Если нужен расколотый бетонный пол от удара, то запускаем скрипт еще раз и жмем кнопку Ex. by size (выдавить в зависимости от размера осколка). Смотрим рисунок 8:

    Растресканный бетонный пол от удара

  • Можно добавить модификатор TurboSmooth, чтобы получить круглые камни.
  • Можете проделать вот этот видеоурок по созданию интерактивных проваливающихся следов, но вместо скрипта Fracture Voronoi использовать Cocktail Greeble. Также для этого видеоурока вам понадобится бесплатный скрипт Attach or Move to surface by Local Z, который позволяет присоединить или двигать объект по поверхности, используя локальную ось Z.


Смотрите также видеоверсию этого текстового урока, где показаны еще некоторые применения скрипта Cocktail Greeble:

P.S. Это мой авторский перевод урока Quick shatter tutorial.

Постовой: вот и пришла пора платить за платный хостинг. В такие мгновения я всегда начинаю искать каких-то более дешевых альтернатив своему хостингу. Но потом думаю, что если ничего не беспокоит, то и лишних движений лучше не делать.




Вам понравилась статья? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Введите ваш e-mail (используется только для отправления обновлений блога):

комментариев 7 к статье “Урок 3ds Max по разбиванию 3d-объектов: стекла, бетонного пола”

  1. Высший класс

  2. спасибо за турок, пригодится

  3. Как раз изучею 3д моделирование )

  4. Можете ктонеть зделать разрушаемое стекло и показать это в видео пожалуйста а то я недогоняю как делать после 2 пункта))) зарание спасибо!

  5. Как работает скрипт Cocktail Greeble? При запуске он выдает сообщение типа «—Type error: Call needs function or class, got: undefined». У меня восьмой макс, если что.

  6. Не понятно как после операции Break в Editable Poly каждый полигон сделать отдельным объектом

Извините, в данный момент комметарии закрыты.

© 2008 - 2018 3dyuriki.com
Для связи со мной 3dyuriki@gmail.com