В этой статье мы расскажем о различных способах создания деревьев. Мы будем использовать
следующие
энтити-объекты:
Создать в CS реалистичное дерево довольно трудно. Залогом успеха является подбор качественных
текстур деревьев. Первый способ создания деревьев основан на применении объекта
func_illusionary. Как Вы знаете, через такой объект можно свободно проходить, помимо
того,
если использовать текстуру с маской (с синими частями), то можно сделать эти части объекта
прозрачными. Именно этими свойствами мы и воспользуемся.
На рисунке ниже представлена текстура дерева, которую мы будем использовать.

Построим браш с размерами 224 юнита в высоту, 128 юнитов в ширину и 1 юнит в толщину и разместим его перпендикулярно земле, как показано на рисунке ниже.

Превратим этот браш в func_illusionary и выставим следующие параметры отображения:
Render Mode — Solid;
FX Amount — 255
Благодаря таким параметрам, синие части текстуры будут в игре прозрачными, таким образом, останется только крона дерева.
Теперь скопируем func_illusionary и вставим перпендикулярно первому объекту (см. рис. ниже).
Таким образом, у нас поличилось довольно-таки симпатичное деревце :) Также можно добавить
веточек,
развернув их под углом 45° к основной кроне. Единственное, чего нам еще не хватает, так это
ствола.
Изготовим его при помощи инструмента Block и его функции Spike. На панели "New
objects" в списке "Objects" выберем функцию Spike, укажем цифру 8 в строке "Faces"
(количество боковых сторон) и построим браш в центре дерева размером 256 юнитов в высоту и 7х7
юнитов по ширине и толщине (см. рис. ниже).

Превратим ствол в func_wall, чтобы он не разбивал землю на большое количество полигонов (подробнее об этом Вы можете прочитать в главе об R_speeds). На нашей тестовой карте мы дополнительно разместили еще 4 таких дерева. Чтобы они не казались похожими друг на друга, мы повернули их под разными углами.
В игре наш небольшой сад выглядит как показано на рисунке ниже, справа:

На этом же рисунке, слева, Вы можете видеть другие деревья (пальмы). Сейчас мы расскажем о том, чем же они отличаются от выше описанных деревьев.
А отличие заключается в том, что пальмы не являются объектами func_illusionary с нанесенными на них текстурами деревьев. Это заранее изготовленные модели деревьев, сохраненные в файлы с расширением *.MDL. В архиве с нашей тестовой картой находится одна модель дерева (пальма). Чтобы запустить карту необходимо скопировать модель дерева в директорию cstrike/models..
А теперь собственно о том, как вставить модель дерева или любую другую модель на карту.
Для вставления моделей используется точечный энтити-объект cycler или cycler_sprite. Просто вставьте такой объект в нужном месте на карте. В свойствах необходимо указать путь к файлу *.mdl с нужной моделью. Если используется объект cycler_sprite, предназначенный вообще-то для вставки спрайтов (*.SPR), то в свойствах, там, где указывается имя модели, необходимо сначало прописать *.*, чтобы отобразить все типы файлов, а не только *.SPR. Затем выбираем нужную модель.
В нашем случае свойства объекта cycler выглядят так:
Model — models/tree_palm.mdl
Вот и все свойства.
Кстати, использовать объект cycler_sprite, возможно, даже лучше, чем cycler, т.к. в этом случае из МОДЕЛИ при стрельбе по ней не будет ВЫЛИВАТЬСЯ черно-белая кровь (иногда есть такое), как происходит, когда модель вставлена объектом cycler.
Начиная с CS 1.6, мы можем использовать модели, имеющие текстуры с маской (синие части, прозрачные в игре). Теперь деревья выглядят уже неплохо и даже могут иметь анимацию: колыхаться на ветру.
trees.zip [116Кб] — в архиве карта-пример в форматах BSP и RMF, а также необходимые модели и текстуры.
На рисунке ниже представлена текстура дерева, которую мы будем использовать.

Построим браш с размерами 224 юнита в высоту, 128 юнитов в ширину и 1 юнит в толщину и разместим его перпендикулярно земле, как показано на рисунке ниже.

Превратим этот браш в func_illusionary и выставим следующие параметры отображения:
Render Mode — Solid;
FX Amount — 255
Благодаря таким параметрам, синие части текстуры будут в игре прозрачными, таким образом, останется только крона дерева.
Теперь скопируем func_illusionary и вставим перпендикулярно первому объекту (см. рис. ниже).
Таким образом, у нас поличилось довольно-таки симпатичное деревце :) Также можно добавить
веточек,
развернув их под углом 45° к основной кроне. Единственное, чего нам еще не хватает, так это
ствола.
Изготовим его при помощи инструмента Block и его функции Spike. На панели "New
objects" в списке "Objects" выберем функцию Spike, укажем цифру 8 в строке "Faces"
(количество боковых сторон) и построим браш в центре дерева размером 256 юнитов в высоту и 7х7
юнитов по ширине и толщине (см. рис. ниже).
Превратим ствол в func_wall, чтобы он не разбивал землю на большое количество полигонов (подробнее об этом Вы можете прочитать в главе об R_speeds). На нашей тестовой карте мы дополнительно разместили еще 4 таких дерева. Чтобы они не казались похожими друг на друга, мы повернули их под разными углами.
В игре наш небольшой сад выглядит как показано на рисунке ниже, справа:

На этом же рисунке, слева, Вы можете видеть другие деревья (пальмы). Сейчас мы расскажем о том, чем же они отличаются от выше описанных деревьев.
А отличие заключается в том, что пальмы не являются объектами func_illusionary с нанесенными на них текстурами деревьев. Это заранее изготовленные модели деревьев, сохраненные в файлы с расширением *.MDL. В архиве с нашей тестовой картой находится одна модель дерева (пальма). Чтобы запустить карту необходимо скопировать модель дерева в директорию cstrike/models..
А теперь собственно о том, как вставить модель дерева или любую другую модель на карту.
Для вставления моделей используется точечный энтити-объект cycler или cycler_sprite. Просто вставьте такой объект в нужном месте на карте. В свойствах необходимо указать путь к файлу *.mdl с нужной моделью. Если используется объект cycler_sprite, предназначенный вообще-то для вставки спрайтов (*.SPR), то в свойствах, там, где указывается имя модели, необходимо сначало прописать *.*, чтобы отобразить все типы файлов, а не только *.SPR. Затем выбираем нужную модель.
В нашем случае свойства объекта cycler выглядят так:
Model — models/tree_palm.mdl
Вот и все свойства.
Кстати, использовать объект cycler_sprite, возможно, даже лучше, чем cycler, т.к. в этом случае из МОДЕЛИ при стрельбе по ней не будет ВЫЛИВАТЬСЯ черно-белая кровь (иногда есть такое), как происходит, когда модель вставлена объектом cycler.
Начиная с CS 1.6, мы можем использовать модели, имеющие текстуры с маской (синие части, прозрачные в игре). Теперь деревья выглядят уже неплохо и даже могут иметь анимацию: колыхаться на ветру.
trees.zip [116Кб] — в архиве карта-пример в форматах BSP и RMF, а также необходимые модели и текстуры.
Вместо func_wall необходимо использовать func_illusionary
. Выставим абсолютно такие же
параметры отображения. Единственное, что нужно еще сделать, так это поместить перед решеткой
CLIP-браш (обычный браш, со всех сторон покрашенный специальной текстурой CLIP).
Это
необходимо сделать, т.к. через func_illusionary игрок может свободно проходить, а
CLIP-браш не даст этого сделать (см. рис. ниже). CLIP-браш обычно делают таких же
размеров, как и решетка, но это не принципиально, главное, чтобы игрок не пролез :)





Возможно, автор карты специально хотел сделать такую фишку, но это в данном конкретном случае, а
так, обычно, ящик не доводят до земли на 1 юнит, в целях уменьшения параметра r_speeds,
который показывает количество полигонов, рисуемых игровым движком. Если ящик является обычным
брашем
(не энтити-объектом) и соприкасается с полом, то пол будет разбит на более мелкие полигоны, что
увеличит их количество, и соответственно, параметр r_speeds.





