Детальная реакция для растительности

Материал из CryWiki Russia

Перейти к: навигация, поиск
О статье
АвторAndreyFilantrop. За образец взята статья с Crydev.net CryWiki
СложностьСредняя
ТребованияCrysis Mod SDK 1.2; Sandbox 2; 3d max 8.
Дата добавления01/02/11



Детальная реакция для растительности

Далее по тексту для удобства чтения "детальный изгиб или ДИ"

В статье описывается механизм создания детального изгиба для растительности, который мы замечаем, как реакцию растений в Crysis, случающуюся из-за воздействия на них ветра. Цвет вершин vertex модели растения контролирует силу влияния на объект ветра. ДИ является шейдер-специфицеской функцией, доступной в материале модели для шейдера растительности Vegetation shader. ДИ для вашего растения активируется в SB2/Material Editor/Material/Shader Generation Parameters/Detail bending.


Обратите внимание, что изгиб автоматически доступен для всех объектов размещенных с помощью инструмента vegetation которые имеют параметр SB2/Vegetation/Objects/Object/Bending=1, т.е. во всех случаях, когда параметр Bending >0, который находится непосредственно в свойствах самого вашего объекта. Вы можете размещать различные объекты как камни, мебель, дома и т.д. с помощью инструмента vegetation, и они будут деформироваться согласно вектору ветра в Sb2/Terrain/Environment/Wind Vector[x,y,z], если вы не установите в их параметрах Bending=0. ДИ - это более красивая, более контролируемая форма изгиба которая не обязательно деформирует весь объект. Если вы обратите внимание на кусты растений в Crysis, то увидите, что их движения похожи на движения растений в реальной жизни, т.е. их листья колеблются в различной амплитуде, при этом часть ветки, которая ближе к стволу (центру), практически не двигается, в то время как самая дистальная часть веток (кончики веток с листьями), наоборот, колеблются от ветра сильнее всего. Также и сами листья широколистных растений по краям колеблются более, чем центральные линии этих листьев.

Установка в 3D Studio MAX

Предполагается, что вы попали на эту страницу, когда у вас уже имеется сделанная в 3 d max модель и применен один из UV модификаторов, т.е. модель растения готова к экспорту в Sandbox 2.

Перед тем как мы начнём какие-либо рисования вершин, мы должны убедиться, что у нас имеется mesh с правильной тесселяцией. Как здесь:Mesh top.jpg

А вот ниже следующий не правилен. Он хаотичен. Он испортит нам правильное изгибание:

Mesh top wrong.jpg

Перед началом работы посмотрите, как должна выглядеть сцена: Plant before detailbending creation.jpg

на ней имеется маленькое (у меня почему-то синее) ущербное в центре - это моё растение, зеленый бокс - это proxy_bending прокси, о котором пойдет речь ниже, красный бокс - это obstruct_Ai прокси, о котором упоминается в статье про базовый экспорт растительности. Оба эти прокси естественно входят в состав ОДНОГО ЕДИНСТВЕННОГО объекта, который у меня называется zelenaya_botva.Однако перед началом работы с детализацией прикосновений, отщепите от модели эти два бокса и спрячте (ну я так делаю), чтоб в сцене осталось только сама геометрия растения с материалом (у меня нет текстур - потому что я поступаю плохо, но у вас они уже должны быть наложены). Оба бокса по окончанию нашей работы с ДИ надо будет прикрепить обратно.

Когда всё готово, нам нужно обратиться к Vertex Channel Display в свойствах объекта Object Properties, т.е. d Object Properties/General/установить галочку в Vertex Channel Display. Теперь наш объект выглядит, как будто у него нет затенений. Чтобы видеть только цвет вершин, мы устанавливаем белый материал: Vertex cannel display.jpg

Теперь мы назначаем первый vertex color modifier модификатор и красим целый объект черным. Первый модификатор для движений каждого листа вверх и вниз. Для этого мы используем чистый синий цвет.Очень важно чтобы у нас был 100% чисто синий без примеси красного или зеленого. 255 синий означает, что здесь у нас нет изгибания. 0 синий означает самое сильное изгибание. Таким образом, для этого объекта мы можем выбрать средние вершины vertexes и перейти к плавному выделению soft selection в vertex paint меню. Мы выбираем значение таким образом, чтоб у нас было плавное выделение soft selection вдоль всего объекта за счет выбора только центральных вершин vertexes. Теперь мы добавляем 255 синий к этому выделению и получаем такой результат: Blue.jpg

Теперь мы назначаем ВТОРОЙ (а не заменяем старый!) модификатор vertex color modifier который представляет нерегулярное изгибание краёв каждого листа. Сначала мы разрисовываем всё черным. Потом мы выбираем наружные вершины каждого листа и красим их 255 красным, что означает здесь максимальное изгибание. Потом мы берем вершины на один ряд ближе к центру и даём им 128 красный для более слабого изгибания. Для получения нескольких более разнообразных вариаций в этом изгибании мы можем взять некоторые наружные вершины и назначить им 220 красный. Наиболее важная вещь здесь, это оставить срединную линию абсолютно черной и использовать для покрашенных вершин только чисто красный. Red.jpg

Наш последний цвет – зеленый. Мы назначаем третий модификатор vertex color modifier (не удаляйте два предыдущих) и переходим в element режим в модификаторе. Теперь мы выделяем наш первый лист и красим его 255 зелёным (снова только зелёным, никакой примеси красного или синего). Затем рисуем следующий лист 220 зеленым, следующий 190 зелёным, следующий 170 и т.д. Не важно иметь точные значения, просто контролируйте, чтоб использовалось много разных зелёных. Этот цвет говорит листьям начинать изгибаться в разное время, короче чтоб не все одновременно наклонялись то вниз то, вверх.

Green.jpg

Если это сделано, мы устанавливаем красный и зеленый модификаторы в режим "add" («добавить» - прим.переводчика) в vertex paint диалоге. Для получения этого результата: (когда программа будет запрашивать "Are you sure you want to continue?" скажите "так а зачем ещё я вообще-то столько времени тогда здесь парился по твоему!?, конечно хочу!" и нажмите Hold/Yes)

Конечный вид.jpg

Последний шаг в 3D Studio MAX это сохранить нашу работу и экспортировать файл. Убедитесь, что у вас имеется куча backup файлов, которые автоматически генерируются в одной из ваших папок в директории 3 D max , или скиньте куда-нибудь отдельно сами, перед тем, как вы collapse (сворачиваете) стек, чтобы вы смогли изменить что-либо если что-то не правильно в цветах вершин. Когда все свернёте, нажав правой кнопкой мыши collapse all, а затем в этом окне Hold/yes на одном из трёх модификаторов, растение останется разноцветным. Выньте из небытия ранее спрятанные оба прокси элемента и присоедините к основной геометрии. Оба прокси вдруг побелеют. У меня так по крайней мере. Чтоб удобнее было, поставьте в свойствах properties объекта see-through. Потом переходите, если конечно вам это необходимо, к непосредственно экспорту или созданию реакции изгибания растения при прикосновении (это в другой статье).