Часть пятая.
Вот так незаметно мы и сделали около трети всей работы по моделингу интерьера небольшого кафетерия. Коробка интерьера и барная стойка, стеллаж и холодильник для напитков, даже мойка с краном – и всё это, ни разу не задействовав сплайны или Editable Poly. Какие-то объекты были простыми в изготовлении а какие-то… тоже простыми, стоило лишь применить смекалку.
Но в этой части мы попробуем собрать два сложных на вид аппарата – кухонный комбайн/блендер/соковыжималку для фрешей.
А пока – вот список всего, что мы сделали и что еще потребуется:
· Мойка
· Система полок в барменской зоне
· Микроволновая печь
· Комбайн (блендер/соковыжималка)
· Кофейный аппарат
· Табло меню
· Барные стулья
· Столик обеденный или столик угловой
· Стулья или кресла к столику
· Салфетницы, пепельницы, солонки/перечницы и т.п.
· Посуда
· Подвесной потолок с точечными светильниками
Итак…
Cоковыжималка
081
Для начала нам потребуется эскиз и габаритные размеры того, что мы собрались моделировать. Поиск Яндекс как наиболее популярную модель кухонного процессора для кафетериев называет "Robot Coupe”, габариты которой мы найдём тут: http://www.kofe-kofe.ru/product_info.php?pid=8598.
Собственно, это соковыжималка для приготовления фрешей. Рекомендую сразу сохранить изображение с веб-страницы на свой компьютер в вашу проектную папку, в подпапку Sceneassets > в подпапку Images (ресурсы сцен > изображения). Эта картинка нам еще понадобится.
На странице находим не только фотографию, но и габаритные размеры:
Длина нетто, мм: 235; Ширина нетто, мм: 420 Высота нетто, мм: 505
На них и будем ориентироваться. Что же касается моделинга, то форма не слишком-то заковыристая, да и слишком уж точного портретного сходства от нам не потребуется – этот аппарат всё равно находится на рабочей поверхности в барменской зоне, и из зала практически не виден
082
Для моделирования этого аппарата нам потребуется открыть пустую сцену.
Создаём в ней Box с размерами, указанными на эскизе выше (обратите внимание, что работая с интерьером нам лучше установить в 3Ds Max единицу измерений cm а не mm!). Это будет наш габаритный контейнер, в него мы и будем вписывать модель.
083
Клик правой – в контекстном меню выбираем команду Object Properties (свойства объекта). Наша цель – заморозить Box так, чтобы он, с одной стороны, отображался во вьюпорте (задавая общие габариты), с другой – не мешал нам.
Ставим галочку Freeze (заморозить), разблокируем свойства объекта (если они были заблокированы по слою), в ставших доступными свойствах ставим галку в чекбокс Display as Box (отображать только объёмную коробку) и снимаем галочку Show Frozen in Grey (показывать замороженное серым).
Жмём OK.
084
Еще один подготовительный шаг – перенос эскиза в 3Ds Max. И вот тут без материалов уже не обойдёшься.
На виде Left (шоткаст L) создадим примитив Plane c размерами, приблизительно соответствующими Box или чуть шире. Здесь придётся делать «на глазок», да и точность-то не нужна, так как в качестве исходного изображения мы имеем всего лишь фото, а не чертёж. А на фото, как известно, всегда присутствует перспективное искажение, которое и не даёт при моделинге ориентироваться на изображенное в точности.
Обратите внимание, что сегментация плейна сведена к единице, а внизу параметров поставлена галка Generate Mapping Coords. (создавать координаты наложения материалов) – это нам сейчас очень пригодится.
085
Жмём на клавиатуре шоткаст M (редактор материалов). В первом же слоте редактора создаём материал типа Standard. Называем материал «eskiz robot coupe».
В настройках материала щелкаем по пустому квадратику рядом с колор-селектором базового цвета материала Diffuse.
В открывшемся браузере карт и материалов в самом верху списка находится процедурная карта Bitmap. После двойного клика по ней откроется окно выбора файла, которое перебросит Вас к подпапке Images, куда Вы предусмотрительно сохранили фото нашей соковыжималки на предыдущем этапе. Находим это фото и делаем на нём двойной клик.
086
Как видите, общие настройки материала в редакторе сменились настройками нашей битовой карты, то есть изображения. Проверьте, чтобы в чекбоксе Use Real-World Scale (использовать реальный масштаб размерности) было пусто. Тайлинг (количество образцов изображение к единице поверхности) так же должен оставаться 1 к 1.
Перетягиваем шарик образца материала на плоскость – материал назначен, но плоскость отображается равномерно серой.
Находим под образцами материалов пикторгамму с изображением клетчатого кубика. При наведении курсора она даёт всплывающую подсказку Show Standard Map in Viewport (показывать стандартную карту во вьюпорте). Кликаем по пиктограмме…
…и видим, что наш фото-эскиз отобразился на плоскости.
087
Подготовительный этап окончен и пора начать построение.
Создадим три ChamferCyl по параметрам, приведенным на изображении ниже. Два (поставлены один на другой по Z-координате) составляют корпус, третий, у них «за спиной» - основа бака для твёрдых отходов.
Следите за взаимным расположением примитивов и за тем, чтобы они не «вываливались» за пределы габаритного контейнера.
088
Бак потребуется «открыть», применив к нему модификатор Slice в режиме Remove Top, как мы это делали в уроке с мойкой.
Затем будет полезно надеть на этот же примитив модификатор Shall (оболочка), задав внешнюю толщину стенок 0,6 cm, как это показано на иллюстрации ниже.
089
Общая крышка бака/корпуса будет составлена из нескольких примитивов, но для начала смоделируем ту её часть, что вставлена в бак… Да и сам бак не так уж прост.
Сперва «вставим» в него ChamferCyl , клонированный с верхней части корпуса как Copy, лишь слегка уменьшив ему радиус.
090
Выделяем бак и его крышку вместе и накладываем на них модификатор FFD 4x4x4.
В структуре модификатора активируем уровень Control Points (контрольные точки).
Выделяя группы контрольных точек и перемещая их, деформируем наши объекты так, чтобы они «обнимали» собой корпус, плавно «обминаясь» вокруг него. Делать это проще с вида Top (шоткаст T), а выделять группы точек gizmo-контейнера FFD проще рамкой.
Кроме того, для улучшения формы, можно надеть поверх FFD 4х4х4 модификатор MashSmooth (сгладить форму). Этот модификатор тут опционален, но уж очень грубо и не достаточно гладко выглядит наш бак без него.
091
Конечно, верх крышки бака слегка наклонён, судя по фото… но этот момент мы уточним позже. А пока создадим вторую часть крышки – ту, что прикрывает корпус. Она также представляет из себя ChamferCyl, так что можете смело клонировать верх корпуса, смещать его вверх, а затем уменьшать высоту и увеличивать как радиус, так и величину Chamfer, то есть фаски.
Также полезным будет повысить значение Cap Segs (сегментов по крышке) до 4.
092
Применим к нашей большой крышке еще один модификатор свободной деформации – FFD[cyl] (цилиндрический). В настройках менять ничего не потребуется, достаточно просто активировать подуровень контрольных точек, выделить центральную и следующую за ней от центра группы точек и поднять их вверх, чтобы крышка нашего ChamferCyl приобрела коническую форму.
093
Соединять две половины крышки должен ChamferBox. Создадим его с параметрами, указанными на рисунке ниже, затем поднимем на нужную высоту и «подгоним» к остальным частям крышки. Лучшим решением здесь станет использование модификатора FFD 2x2x2. Активируем подуровень контрольных точек и перемещаем эти точки так, чтобы стороны ChamferBox более-менее плавно сопрягали собой круглые крышки.
Для этого точки (их финальное положение я подсветил на иллюстрации ниже) придётся не только перемещать, но и масштабировать.
< Обратите внимание, что на картинке ниже видны только детали, составляющие крышку. Остальные были скрыты, когда я выделил эти три, а затем в контекстном меню отдал команду Hide Unselected – скрыть НЕ-выделенные. Вы можете произвести эту операцию для удобства, или же работать с полной сценой, как Вам больше нравится. Позже Вы в любой момент сможете вернуть остальные детали конструкта обратной командой Unhide All – отобразить всё. >
094
Здесь становится видно, что верх задней части крышки также должен быть слегка наклонным. Добиться этого просто, переместив контрольные точки FFD-модификатора, надетого на цилиндр. Но этим же действием мы деформируем и чашу контейнера, ведь модификатор мы надевали и на неё!
Как же сделать изменение независимо? Разумеется, вырезав, а затем снова вклеив примененный модификатор.
Выделяем заднюю часть крышки. Находим в стеке её модификаторов FFD 4х4х4.
Клик правой на нём – и в контекстном меню отдаём команду Cut (вырезать).
Теперь еще один правый клик на отображении объекта в стеке – в контекстном меню отдаём команду Paste (вставить). Теперь наш модификатор независим, и будет влиять только на данный примитив.
095
У только что вставленного модификатора FFD4x4x4 активируем подуровень контрольных точек, а затем выделяем во вьюпорте только верхние группы точек. Поворачиваем их так, чтобы наклон верха крышки и наклон соединительного элемента совпали более-менее точно.
096
Теперь вовсе не трудно «склеить» все три объекта в общую структуру при помощи хорошо знакомого нам компонованного объекта Boolean или ProBoolean в режиме Union (объединение).
Правда, для более хорошей формы мне пришлось вернуться к базовым свойствам ChamferBox и увеличить его сегментацию для получения более сглаженной поверхности.
097
Для полного сходства нам не хватает только выреза в крышке. Сделаем его, создав цилиндр или чемфер-цилиндр с радиусом 6,5 cm, и встроив его так, чтобы пробивал собой исходную форму. Затем вычтем его при помощи ProBoolean в режиме Subtraction.
Но прежде чем вычитать – придадим отверстию несколько вытянутый профиль, как это видно по фото. Для этого вычитаемый примитив следует масштабировать по одной из горизонтальных осей.
Выделяем цилиндр, клик правой. В появившемся контекстном меню кликаем по квадратику рядом с командой Scale. В появившемся окне вводим корректировку масштаба по одной из осей 120. Обратите внимание, что у меня это X-ось, у Вас это может быть как X, так и Y-ось, смотря по тому, как изначально был ориентирован весь построенный Вами объект.
098
Вычитаем отмасштабированный объект из крышки, получаем аккуратное овальное отверстие:
099
Дальнейшее – дело комбинации полудюжины примитивов. Нам потребуется :
· цилиндр с радиусом 10 и высотой 20 cm,
· два Torus с Radius 1 = 6 cm и Radius 2 = 0,5 cm. Но у одного количество сторон выставлено 12, а у второго – только 3.
· Цилиндр или чемфер-цилиндр с радиусом 3 cm и высотой 10 cm
· чемфер-цилиндр с радиусом 4 cm, который следует подвергнуть воздействию FFD [cyl] так же, как мы это делали с передней частью крышки.
100
Совмещаем всё это в пространстве, не забыв отцентровать по X- и Y-осям, и склеиваем в цельную форму при помощи ProBoolean.
101
Сливной кран моделируем из трёх цилиндров, один из которых согнут при помощи модификатора Bend с перемещенным центром трансформации и назначенными лимитами воздействия;
Второй цилиндр сыграет роль металлизированной «обкладки»;
Третий, диаметром побольше остальных – объект для булева вычитания из нижней части корпуса.
102
Совмещаем все три части, «относим», к нижней половинке корпуса и самый большой цилиндр вычитаем Boolean. Ну а верхнюю часть корпуса можно немножко «подмять», применив к ней FFD [cyl] с уведиченным до 16 или 18 числом сторон контейнера
103
Прижимные планки, судя по изображению, жестко закреплены на крышке, а на корпусе имеют нечто вроде шарнирного крепления. Но самое интересное – нижний конец планок закруглён.
Как создать такую форму, не используя ни сплайны ни полимоделинг? Конечно же, из примитива Capsule (капсула), что лежит в наборе Extended Primitives.
С вида Top создаём Capsule рядом с корпусом нашей соковыжималки. Параметры и расположение – на иллюстрации ниже.
104
«Зажимаем» капсулу между трёх боксов, как это показано на иллюстрации ниже, а затем вычитаем все три при помощи компаунд-объекта ProBoolean.
105
Маленькая неувязка – нам надо бы согнуть полученную нами скруглённую по низу планку, но она не сегментирована по высоте, а значит согнута быть не может. Где взять сегментацию? Создать её искусственно!
На высоте, где должен начинаться изгиб планки, размещаем небольшой примитив Plane, а затем клонируем его со сдвигом по Z-оси в 3-4 экземплярах.
106
Выделяем планку. Активируем в командной панели компонованный объект Boolean, поставив его в режим Cut [Refine] (нарезка – уточнение сегментации).
В качестве операнда B выбираем первую из плоскостей.
Клик правой – чтобы закончить процесс. Видим, что на месте, где нашу планку пересекала ныне исчезнувшая плоскость, образовался поясок сегментации.
Снова активируем Boolean и повторяем всё со второй плоскостью, снова кликнув правой кнопкой мыши в конце.
Так поочерёдно выбиваем все наличные плоскости.
107
Пора согнуть планку. Накладываем не неё модификатор Bend с параметрами, как на иллюстрации ниже или схожими, если ориентация или очертания Вашей модели немного отличаются.
Важно: центр трансформации должен быть поднят к началу изгиба.
Важно: должен быть включен лимит трансформации. Его высота должна немного выходить за зону сегментированного изгиба.
Важно: управляйте параметром Orientation. Если планка не согнулась сразу в нужную сторону – введите направление 90 или -90.
108
Любопытная ситуация, когда я «не угадал» с высотой обрезки планки. Как видим на иллюстрации выше, планка вышла за пределы отверстия крышки и «воткнулась» в красный цилиндр.
Конечно же, «укоротить» эту деталь можно просто создав в нужном месте небольшой Box и отрезав им лишнюю длину при помощи Boolean. Я внёс эту коррективу в своей сцене, но не привожу здесь картинку, всё и так ясно.
Осталось создать шарнир. Он собирается из ChamferCyl и сферы подходящего радиуса. Поместив примитивы в нужную позицию, можно присоединить их к планке при помощи команды Group, а затем отзеркалить (Mirror-инструмент главной панели инструментов) по соответствующей оси относительно центра всей конструкции как Copy, чтобы получить вторую половинку.
109
Командный аппарат, то есть панель с двумя кнопаками нетрудно будет собрать из обрезанного с одной стороны (и опять – при помощи Boolean) небольшого Capsule и двух ChamferCyl.
Аналогично, следует добавить четыре Cylinder, создав таким образом четко видимые на фотографии ножки. Можете повышать детализацию, к примеру добавив опору контейнера, или дорисовав винты на прижимных планках, или электрошнур… Но помните, что мелкая детализация гораздо удачней решается текстурированием, а слишком высоко детализированная модель только затормозит нам рендер.
Клик правой – Unfrize All (разморозить всё), после чего габаритную коробку можно удалить. И посмотреть, что же получилось. Вот – рендер сетки нашей модели.
110
Удалите также плоскость с эскизом. Выделите все элементы соковыжималки и сгруппируйте её, присвоив группе имя. Осталось только сохранить нашу сцену, открыть исходную и присоединить соковыжималку к остальному кафетерию при помощи команды Merge меню File.
Разместите соковыжималку, где считаете удобным.
110c