Render.ru
Поддержать
Сохранить
Skif
ПОДПИСАТЬСЯ
  • ПРЕДЛОЖИТЬ ПРОЕКТ
  • ДОБАВИТЬ В КОНТАКТЫ
68Записей
72Следят
15Читает
428 KЗаходов

Создание и динамика кольчуги

Урок

Кыштымов Александр Александрович. Он же SKIF, он же SKIF3D.
Родился: г. Владивосток 1980 г.
Проживает: г. Екатеринбург.
С CG познакомился в начале 1998 г.
Профессионально владеет 3d studio MAX, MAYA и множеством более мелких 3D программ.
Хобби: CG, Le Parkour.
Характер нордический, не женат.
Автор серии уроков по MAYA.
От автора: На одном из форумов, посвященных CG, зашла речь о создании кольчуги. А точнее, вопрос стоял так: «Как сделать кольчугу и как её заставить двигаться динамически?» Вот на этот вопрос я постараюсь ответить.

РАБОТА В MAX

  1. Самым первым делом надо выбрать единицы измерения. Я обычно работаю в миллиметрах, но в данный момент нужны единицы измерения Generic Units . Почему? Да потому что способ, которым будем делать кольчугу, (а точнее генерировать карту глубины) работает только с Generic Units.



  2. Для начала нужно создать одно кольцо будущей кольчуги на виде сверху.

    Используем для этой цели Бублик :) (Create > Standard Primitives > Torus) количество сегментов не важно, но надо, чтоб не было углов (только не увлекайтесь). Я использовал 24 сегмента.

  1. Повернём его по оси X на 25 градусов.



  2. Далее надо сделать зеркальную копию этого колечка. Воспользуемся инструментом Зеркало (Tools > Mirror), или кнопкой параметры на изображении.



  1. Перемещаем это колечко немного по осям X и Y как на рисунке.





  2. Выделяем оба кольца и нажимаем клавишу Shift и перемещаем по оси X как на изображении.

  1. Ну и указываем количество копий. Должно получиться как на изображении.



  2. Дальше надо создать некоторое количество сегментов кольчуги. Для этого выделяем все объекты и перемещаем по оси X. Не забываем указать количество копий. Вот что получилось у меня.

Думаю, что такого количества сегментов будет достаточно.
  1. Выделив все кольца, группируем их. Group > Group).

  1. И перемещаем эту группу на координаты X=0, Y=0, Z=0.

  1. Создаём направленную камеру прямо над этой кольчугой.

  1. Обязательное условие - камера не должна искажать наши объекты. То есть камера должна отображать без учёта перспективы. Это сделать легко. Просто поставим галочку в настройках камеры Ортографическая проекция (Orthographic Projection).



    Для того чтоб вы поняли, о чём идёт речь, я сделал 2 картинки. На изображении 1 вид из камеры с перспективой, а на втором изображении без учёта перспективы.

  1. Координаты X и Y у камеры должны быть равны 0. А вот координату Z надо подобрать индивидуально с учётом того, что видно в камеру. У меня получились значения координат 0.0.700. А вот цель этой камеры имеет координаты 0.0.0

  1. Создадим 2 рулетки (Create >Helpers > Taper) назовём их R 1 и R 2.



ЭТО ВАЖНО!
Следующие 3 условия очень важны.

  • Координата по Z самих рулеток должна быть в точности как у камеры

  • А вот координаты их целевых объектов должны быть у R 1 немного ниже колец нашей кольчуги (у меня получилось 0.50.-35).
  • У R 2 - наоборот немного выше (у меня получилось 0.-50.35).

Для чего мы это вообще делали?... а всё достаточно просто: нам надо определить минимальное и максимальное расстояние от камеры до кольчуги, для генерации Z Depth.
Что это такое спросите вы… это достаточно сложно объяснить в 2 словах. Где-то на просторах Интернета я наткнулся вот на такое определение:
Элемент Z Depth (глубина) позволяет записать глубину сцены, т.е. расстояние от камеры, в виде черно-белого градиента. Этот элемент используется обычно в качестве маски. Он имеет дополнительные настройки, определяющие пределы, в которых строится градиент (Z Min/Z Max).
Если не понятно, то поищите информацию об этом в хелпе или в инете.
  1. Итак, идём в настройки стандартного рендера программы (Rendering > Render) или нажмите F10.

    И сразу же следуем на закладку Элементы Рендера (render Elements). Жмём кнопку Добавить (Add) и в появившемся окне выбираем элемент Z Depth.

  1. Далее выбираем рулетку R 2 и вписываем значение расстояния в поле Z min (у меня получилось 665).

  2. А значение расстояния рулетки R1 в поле Z max (у меня получилось 735).

  1. Выбираем камеру, устанавливаем хорошее разрешение и жмём кнопку Render.

  2. ЖДЁМ и в конце рендера увидим вот такую картинку (но это при условии, что всё сделали верно.)

  1. Дальше сохраняем эти 2 файла: первый (Camera 1) сохраняем в TGA обязательно с альфа каналом (при этом создастся сам файл ИМЯ_TGA и ещё один файл А_ИМЯ.TGA. так вот именно второй файл нам и понадобится.).


Второй с Z Depth сохраняем в любой формат.

РАБОТА В ФОТОШОПЕ.

  1. Открываем в фотошопе результат Z Depth и А_ИМЯ.TGA (в дальнейшем А_ИМЯ.TGA буду называть просто альфа)


  1. Выделив альфу полностью, копируем её в буфер (Ctrl + A – выделить всё и Ctrl + C – скопировать).
  2. Выделив Z Depth, вставляем то, что скопировали(Ctrl + V – вставить).
В редакторе слоёв будет как на изображении.

  1. Теперь в редакторе слоёв уменьшаем прозрачность… эээ или правильнее сказать непрозрачность короче Opacity.

  1. И делаем бесшовную текстуру.

    Будьте внимательны при выполнении этого шага. Выбираем инструмент Crop Tool, и выбираем как у меня на рисунке.

  1. Чтоб проверить правильно ли вы сделали нужно сделать следующее:
    • Выделите слой с Z Depth а потом примените фильтр Смещение (Filter > Other > Offset). В поля введите любое значение при этом ваше изображение сдвинется… если после применения этого фильтра не видно никаких косяков, то всё нормально… отменяем последнее действие. Обычно косяки видно сразу. :)



  1. В редакторе слоёв увеличиваем Opacity и копируем слой с альфой в буфер (Ctrl + A – выделить всё и Ctrl + C – скопировать).
  2. Из редактора слоёв удаляем слой с альфой.

  1. Создаём новый файл в фотошопе (File > new) ничего не меняя, жмём ОК. Далее вставляем то, что скопировали(Ctrl + V – вставить).
  1. Сохраняем Z Depth и называем его KOL.JPG
  2. Файл с альфой тоже сохраняем под именем ALPHA.JPG.
  3. В итоге у нас получилось 2 файла KOL.JPG и ALPHA.JPG.

Вы спросите, а зачем мы так мучались в фотошопе? Вставляли копировали и т. д.
Объясняю… обрезать надо было обе текстурки абсолютно одинаково, чтоб потом не было проблем.

И СНОВА MAX

  1. Ну, теперь обратно в макс, или майку, или ещё куда-нибудь... в данном примере я буду использовать VRay. Но многие рендеры поддерживают дисплейс.
    В максе на объект накладываем VRay Displacement Mod. в него загружаем Z depth.



  1. Далее перетаскиваем Z depth из VRay Displacement Mod в редактор материалов ну и увеличиваем Тайлинг (Tiling).



  1. Да и ещё… в модификаторе VRay Displacement Mod надо установить 2D mapping (landscape).

  2. При рендере получается вот такая картинка.

  3. Далее накладываем на объект материал (любой... бронзу или медь, или пластмасс или вообще люминтия или чугуния J) и на прозрачность кидаем альфу.

  • Ну и тайлинг альфы делаем такой же, как в Z depth...

Вот и всё...

Вот что у меня получилось.



И с двойным плетением.



Ну и кольчуга, состоящая из плоских колец.



При помощи этого способа можно добиться очень даже неплохих результатов…
Добавить, например бампа, спекуляр... ну и т. д.
Если предварительно сделать нормальную UW развертку, а потом применить вирей дисплейс, то он (дисплейс) будет опираться на координаты UW.
Для того чтоб эта кольчуга вела себя соответственно, достаточно дисплейс применить к объекту, а после чего симулировать ткань.
Кстати подобным образом можно делать не только кольчугу. К примеру, можно делать плетёные корзины, вязаные вещи, макраме и ещё много чего...
и ещё всё это можно делать практически в любом 3d софте. Надо только разобраться с Z depth.
этот способ для себя я разработал давненько... возможно, кто-то делает так же...
если кому-то помог, то это ЗЕР ГУД.
819
Комментарии:0
по поступлениюВсе языкиТолько русский