Создание новой растительности
Материал из S.T.A.L.K.E.R. Inside Wiki
Создание кустов
Для создания объектов, являющихся кустами необходимо иметь следующие инструменты:
3ds Max и/или Maya
Adobe Photoshop
X-Ray SDK
Прямые руки, навыки работы в максе и X-Ray SDK.
Начнем
Я сделаю свой куст полностью с нуля, пусть новым кустом будет борщевик.
Для начала схожу и сделаю текстуры…
Теперь прогоняем отснятый материал через Photoshop и получаем что-то вроде этого:
По своей природе кусты имеют сложное строение листа, поэтому фон у новых текстур должен быть прозрачным. Также не забывайте, что ствол должен проходить по центру рисунка, так как в дальнейшем это облегчит процесс текстурирования модели.
Текстуры готовы, теперь сохраняем их в .tga и импортируем через SDK
Создание модели
Переходим к моделированию, я использую 3d Max 8.
Самый простой и экономичный способ построения куста - это создание двух перекрещенных плоскостей с прозрачными текстурами. Например, вот так:
Теперь настраиваем материалы.
Выбираем S.T.A.L.K.E.R. Mtl и задаем параметры материала нашего куста:
- Engine Shader: flora\leaf_wave
- Compiler Shader: flora\leaf
- Game Material: materials\bush
Присваиваем материалу заготовленную текстуру и накладываем ее на модель.
Должно получиться вот так:
Таким же способом делаем остальные части.
Если вы планируете обильно засаживать новыми кустами уровни, то старайтесь уложиться в 100 полигонов для куста в целом, чтобы не нагружать игру.
В моем случае борщевик должен расти практически повсеместно, поэтому я предпочел облегченный вариант моделирования. Если же ваши планы не отличаются такой масштабностью, то можно использовать более сложную геометрию.
Через некоторое время у меня получилась вот такая модель:
Пока что не особо впечатляет, но не стоит обращать на это внимания.
Теперь сделаем «фуфло», оно нам пригодиться для того, что бы от куста отлетали листья, когда его, что-то задевает. Для этого нужно создать зону действия, при прохождении которой будет лететь это самое «фуфло». Я взял сплайн и создал два полых многооугольника, один внутри другого. Причем их размер должен быть чуть уже самого куста.
Помещаем их в центр нашего куста:
Создаем материал для этой зоны и настраиваем его:
- Engine Shader: def_shaders\def_trans
- Compiler Shader: flora\flora_collision
- Game Material: materials\bush
Присваиваем новому материалу текстуру tree_fuflo.dds из папки tree.
Наша модель готова, выделяем ее и экспортируем в SDK.
Настройка в Level Editor
Запускаем Level Editor и идем в objects\Library editor. Находим нашу модель, отмечаем галочку напротив preview и кликаем по кнопке Properties.
В появившимся окне жмем на Main Options, в поле Object Type выбираем Multiple Usage.
Сохраняем изменения кнопкой Save.
Теперь создаем LODы, для этого нужно нажать на Make LOD (High Quality), на вопрос системы ответить yes и отметить модели, для которых мы хотим создать LOD-текстуры, в данном случае мы отмечаем нашу модель.
Жмем OK и ждем некоторое время.
В зависимости от сложности нового куста и аппаратных характеристик вашего компьютера, процедура может длиться от минуты и более.
При удачном создании должно появиться сообщение:
Все, новый куст готов, осталось проверить его на работоспособность, предварительно не забыв перенести новые текстуры куста и новые LODы из папки lod, установленного SDK в папку с игрой.
Результаты
В Level Editor:
В игре
В игре на максимальных настройках с графическим модом)):
Все прекрасно работает, кусты шуршат, «фуфло» сыпется и верхушки даже покачиваются (!).
Таким же способом можно делать и деревья, только для ствола дерева необходимо использовать следующие настройки шейдеров:
- Engine Shader: flora\trunk_wave
- Compiler Shader: flora\ trunk _no_collision
- Game Material: materials\tree_trunk
И зону «фуфла» ставить будет уместно только там, где листья, т.е. везде, кроме ствола.
PS.
Если новые текстуры утратили прозрачность после импортирования в SDK, то необходимо просто пересохранить ту же текстуру с прозрачностью в DDS, в ту папку, куда сохранил ее SDK (естественно, с тем же именем).
Всем спасибо, все свободны.
Автор: h2v6
Не забываем говорить спасибо))