Добавлен WebSter,
опубликован
Анимация от "А" до "Я"
Содержание:
Анимации текстур
Теория
Как же можно анимировать текстуры? Это – правильный вопрос. Ни Mdlvis, ни War3 ModelEditor не располагают возможностями для непосредственного графического воздействия на изображения, которые используются в качестве текстур. Но тем не менее Менеджер анимаций текстур в w3me есть. Так как же он работает?
На самом деле анимируется не сама текстура, а UVW-развертка, которая имеет свои вершины с собственными координатами. Вот они и двигаются, правда, только все вместе. Развертка может перемещаться, поворачиваться и масштабироваться в w3me, и это – ключ ко многим возможностям, одну из которых я продемонстрирую далее.
Практика (TV_version_2.mdx)
Во второй версии того же телевизора я использую только одну импортируемую текстуру, на которой умещу 60 кадров небольшого фильма с Тыщей и тюленями, который и будет показывать мой телевизор.
Схема текстуры такова:
6.1
Текстура поделена на 64 ячейки размером 64х64 пикселя (в моем случае нижний правый угол 128х128 отведен под текстуру экрана, так что свободных ячеек 60) и в каждую может быть вставлен один из кадров, которые затем будут совмещены в ролик путем горизонтального и вертикального перемещения развертки на текстуре.
При работе с UVW-разверткой в Mdlvis’е вы, скорее всего, заметили, что при перемещении вершин значения X и Y меняются в пределах от -1 до 1, если не выходить за ограничительный квадрат. Несложно догадаться, что перемещать развертку экрана, изначально находящуюся в верхнем левом углу, мы будем с шагом в 0.125.
Примечание: можно и выйти за ограничительный квадрат, но тогда следует поставить галочки в пунктах "Выравнивание ширины" и "Выравнивание высоты" в настройках текстуры (6.0.1), чтобы она, так сказать, повторялась и вне квадрата.
Итак, в w3me перейдем в Менеджер анимаций текстур и, кликнув ПКМ, выберем пункт "Создать новый". В появившемся окне (6.2) есть выбор, что же именно анимировать; здесь стоит остановиться. Как я ни пытался, но заставить хоть как-то работать масштабирование или даже вращение у меня не вышло, и если шансы на корректную работу второго были низки из-за кватернионов, то неработоспособность масштабирования вызвала у меня глубокое недоумение. Ну тут уж ничего не сделать (хотя вы, конечно же, можете попытаться), и я пойду дальше, ибо мне необходимо именно перемещение, которое работает нормально и без нареканий.
6.2
После нажатия на кнопку "Перенос" в голову может прийти вопрос: если мы анимируем развертку на текстуре, которая, как известно, плоская, то почему для редактирования доступны аж три параметра? Непонятно. По-видимому, редактирование контроллеров в w3me , универсализировано, и он не делает различий между 3D и 2D, а экспериментальным путем было установлено, что третье число никак не влияет на анимацию текстуры. Так что можно смело браться за первых два, знакомых X и Y.
6.3
Замечу, что в качестве интерполяции выбрано "None", т.к. в моем случае необходимо мгновенное перемещение. Но здесь прекрасно работают и все остальные типы.
После создания нескольких первых кадров стоит вернуться в Редактор материалов, ведь пока наша анимация не прикреплена ни к чему. Найдем материал, который использует нашу текстуру, и зайдем в настройки слоя: здесь необходимо задать ID анимированной текстуры, чтобы анимация текстуры закрепилась за ней самой.
6.4
Продолжаем расписывать кадры.
Совет: помните, что все можно связать с глобальной анимацией, и это часто оказывается полезным при использовании анимаций текстур.
Совет: помните, что все можно связать с глобальной анимацией, и это часто оказывается полезным при использовании анимаций текстур.
Создали все свои кадры? Отлично, теперь сохраним модель и перезапустим w3me. Смотрим анимацию, и что мы видим: её нет! Дело в том, что w3me сам почему-то удаляет анимацию текстур после закрытия модели (известный баг), но это исправимо.
Сперва необходимо пересохранить нашу модель в *.mdl. Теперь откроем её через блокнот и найдем блок, отвечающий за материалы; в нем – материал, который использует анимированную текстуру, на данный момент у меня он выглядит так:
Material {
Layer {
FilterMode None,
staticTextureID 2,
TwoSided,
Unshaded,
}
}
Чтобы заставить анимацию текстур работать, нужно выписать "TVertexAnimId #", где вместо символа # указывают порядковый номер анимации текстур (начиная с нуля). Вписать эту строчку необходимо после статичного ID текстуры. Таким образом, получаем:
Material {
Layer {
FilterMode None,
staticTextureID 2,
TVertexAnimId 0,
TwoSided,
Unshaded,
}
}
Теперь сохраняем модель и конвертируем в *.mdx. После этого даже w3me сам по себе не сможет убрать данные об анимации текстуры из материала.
Я показал лишь один из множества возможных способов использования анимаций текстур: танковые гусеницы, бегущие строки, различные спецэффекты – все это вам еще предстоит реализовать.
Ну а теперь настал черед переходить к предпоследней главе этой статьи.
Содержание
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
к примеру:
0: {0.0, 0.0, 0.0}
1000: {0.0, 1.0, 0.0}
у каждого материала должен быть прописан свой ID анимированной текстуры, чтобы их движение различалось...
Отредактирован Кайзер
сбрось модельку в тему...
нужно смотреть по факту...