Модели дерева и куста

Материал из BestWay wiki
Перейти к: навигация, поиск

Модели дерева

Дерево представляет собой группу, пивот которой находится у её основания (Z = 0). В группу входят ствол, ветви и полигоны, имитирующие крону.

В процессе моделлирования полигоны основания ствола удалять не нужно, так как дерево в игре падает при контактах. Полигоны основания веток следует удалить. Высоту дерева нужно соотнести с настоящими деревьями. Высоту будующей кроны выбрать по назначению дерева, если оно должно служить укрытием для юнита, то нижние ветки расположить почти у самого основания. Кодом предполагается, что у дерева будет только один ствол с volume bole (bole_vol), поэтому многоствольные деревья с далеко наклоняемыми или отстоящими друг от друга стволами делать не рекомендуется.


При создании раскидистых пологих деревьев следует учесть, что дерево в игре падает опираясь на волюм ствола, крона проникнет сквозь ландшафт. Поэтому нужно позаботится о положении ветвей низа кроны и её текстурном покрытии.


На ствол и ветки назначаетсяосновная текстура без включения alpha_channel. Выбираем для материала Standart – EclipseMtl. (после назначения EclipseMtl стоит зайти в опции дочернего материала EclipseMtl и включить там заново отображение текстуры). Для кроны назначается та же текстура, но расположенная в другом материале с включением alpha_channel (альфа 1 бит).


При раскладке текстуры на стволе и ветках нужно учесть, что на зимних тексмодах внизу ствола рисуется снег, поэтому необходимо следить за поворотом полигонов на раскладке в одну сторону. Ветки следует раскладывать сужающимся концом в ту сторону, где будет заснеженный участок, так как заснеженные кончики веток выглядят более естественно.




Если ветки будут располагаться не полого, а подниматься вверх, то для корректного освещения в игре необходимо использовать модификатор Edit normals. Для этого выделяем всю готовую крону и назначаем модификатор, нормали развернуть таким образом, чтобы они были как можно более равномерно повёрнуты от воображаемого центра наружу.



Для дерева создаются волюмы: bole_vol для ствола (со свойством Volume) и crown_vol для кроны (со свойством Volume). bole_vol должен представлять собой вертикальный цилиндр, а crown_vol – куб который охватывает гущу кроны. Если дерево предполагается укрытием для юнитов, crown_vol можно продлить до основания ствола. Волюмы прилинковываются к группе. Нужно участь, что обстакл дерева генерируется автоматически по волюму ствола, поэтому чем вертикальнее будет bole_vol, тем ближе обстакл к основанию. В свойствах группы (дерева) прописываем Poly (если анимации нет) или CommonMesh (если есть вертексная анимация), Type=game_entity, Model=entity\flora\.... (путь экспорта модели, название модели).

Для деревьев в игре создаётся анимация stir, с помощью которой имитируется колыхание веток при наезде техникой и при падении.


Создание анимации растительности.

Общий принцип анимации:

1. При контакте обьектов с деревом, крона дерева совершает колебательные движения вверх-вниз. Крона приходит в движение преимущественно снизу, причём все ветки реагируют в различное время.

2. Ствол совершает небольшое по амплитуте хлыстообразное движение. Так как направление удара в ствол неопределимо, то движение ствола всенаправленно-вращательное.

Общий принцип реализации:

1. Все анимируемые ветви поделить на 2-3 группы (для удобства им можно назначить уникальные цвета сетки - wirecolor), движение которых будет проходить противоположно или поэтапно. Т.е. одна группа вверх, вторая, с этого же кадра, вниз. Ветка колеблется с уменьшением амплитуды во времени. Если моделирование кроны выполненно правильно, то pivot ветки находится в месте её крепления к стволу. Анимация выполняется при включенном Auto Key таким образом

Пример: (coordinate system - View)

  • 0 кадр – поворот по оси Х на 40 0 вниз
  • 5 кадр - поворот по оси Х на 80 0 вверх ( x0 – отсчёт от текущего положения обьекта)
  • 10 кадр - поворот по оси Х на 30 0 вниз
  • 15 кадр - поворот по оси Х на 60 0 вверх
  • 20 кадр - поворот по оси Х на 20 0 вниз
  • 25 кадр - поворот по оси Х на 40 0 вверх
  • 30 кадр - поворот по оси Х на 10 0 вниз
  • 35 кадр - поворот по оси Х на 20 0 вниз
  • 40 кадр = 0 кадр (скопировать ключ №0 в ключ № 40)

Меньшие углы поворота будут практически незаметны при воспроизведении.

Для внесения элемента «хаоса» в анимацию, начало движения каждого элемента можно варьировать сдвигом ключей по шкале, изменением углов поворота.

2. Анимация ствола с кроной может выполнятся при готовой анимации колебания веток и закрытой группе дерева. Создаются общие ключи анимации для группы, где с уменьшением амплитуды происходит колебательное движение по осям XY, а направление наклона смещается со временем по оси Z.

Варианты практического выполнения:

    • а.) Каждая ветка может быть анимирована вручную.
    • б.) Всё дерево может быть реализовано единым обьектом (Editable Poly, Editable Mesh), к которому применён модификатор Skin. Управляющими костями могут быть dummy или др. обьекты. При этом выполнима анимация колебания веток и общая анимация ствола сразу. В свойствах группы при экспорте указывается параметр NoSkin.
    • в.) дерево может быть анимируемо с помощью Reactor. Всем обьектам задаются свойства Soft Body или Rigid Body с соответсвующими настройками и вертексным закреплением веток.
    • а.) Группе может быть назначен и анимирован модификатор FFD box .
    • б.) Вариант c модификатором Skin (см. выше)