WarCraft 3: Анимации света

Анимация от "А" до "Я"

Анимации света

Теория

Анимации источников света также очень важны для создания качественной модели, если в ней используются такие элементы, как фонари, огонь, различная магия и т. п. – в общем, все, что должно излучать свет.
Вообще, источники света – вещь очень непростая для WarCraft 3, работает он с ними неохотно, и багов здесь попадается огромное количество, причем баги эти особенно разрушительны и специфичны. К их описанию я вернусь чуть позже.
Однако сам по себе свет в варе выглядит весьма неплохо и делает многие эффекты куда более реалистичными, если можно так выразиться, для вара. Но плохо то, что эффект зависит от полигональности сетки, а она у поверхности земли в WarCraft 3довольно низка. Тем не менее, даже в этом случае, по-моему, стоит использовать источники света, но очень осторожно, так что перейдем к практике.

Практика (TV_version_2_with_light.mdx)

Логично, что включенный телевизор излучает свет, да и мой фильм располагает к использованию нескольких цветов, поэтому я создам не слишком мощный источник света и анимирую его цвет.
Итак, в w3me необходимо зайти в Редактор узлов и, кликнув ПКМ, выбрать из контекстного меню пункт "Создать источник света". Его можно привязать к какой-нибудь кости (тогда он будет двигаться вместе с ней), а можно оставить так, просто написав нужные координаты. Назовем наш источник "Omni01", например.
Дважды кликнем ЛКМ по источнику, и откроется окно с его настройками.

7.1

Теперь разберемся, что за что отвечает:
  • Цвет (п. 1 на 7.1) – этот параметр отвечает за основной цвет излучаемого источником света. Требует довольно деликатного подхода, о чем будет сказано далее.
  • Цвет окружения (п. 2 на 7.1) – это вторичный цвет, т.е. свет в WarCraft’е распространяется как бы двумя слоями от источника: первый слой в центре, второй – вокруг первого (легче понять будет, когда попробуете сделать источник с разными параметрами цвета и цвета окружения).
  • Интенсивность (п. 3 на 7.1) – отвечает за яркость света. Значения больше 70-и лично я никогда не использовал.
  • Интенсивность окружения (п. 4 на 7.1) – этот пункт отвечает за яркость второго слоя света.
  • Видимость (п. 5 на 7.1) – регулирует видимость источника света. Контроллер принимает значения 1 и 0.
  • Тип (п. 6 на 7.1) – позволяет выбирать тип источника света, но по-настоящему особого выбора не предоставляет, ибо для широкого использования походит только тип "Omnidirectional". Предназначение остальных двух – Directional и Ambient – очень узко: первый из них используется в стандартных моделях глобального освещения WarCraft 3; второй я вообще встречал лишь однажды и тоже в модели освещения, но уже нестандартной.
  • Затухание в начале (п. 7 на 7.1) и Затухание в конце (п. 8 на 7.1) – мои эксперименты не выявили никакого влияния этих пунктов на свет типа Omnidirectional, но, если исходить из стандартных моделей глобального освещения, они имеют некоторое влияние на тип Directional. Однако сами разработчики использовали всегда одно и то же сочетание: 80 для затухания в начале и 200 для затухания в конце.
Примечание: модели глобального освещения WarCraft 3 находятся в его mpq-архивах по адресу "Environment\DNC\". Там находятся несколько подпапок, в которых хранятся модели освещения для разных типов ландшафтов. Как видно, для освещения юнитов используется один источник света, а для освещения самого ландшафта – другой. Типы всех источников – Directional, т.е. они имеют направление – один единственный кадр в контроллере вращения также недвусмысленно намекает на это. Именно эти модели отвечают за смену дня и ночи, однако вся анимация умещается в одну минуту, следовательно, суточный цикл отчасти управляется самой игрой. Исследуйте эти модели в свое удовольствие – они того стоят ;)
Теперь вернемся к цвету. Я уже сказал, что данный параметр требует деликатного подхода, и вот почему: во-первых, он не всегда отображает именно тот цвет, который нужен, по крайней мере, если пытаться добиться голубых оттенков, – у меня в игре цвет всегда был зеленее, чем должен, – во-вторых, здесь есть один специфичный баг… и этот баг связан с еще одним, крайне неприятным багом источников света.
А дело вот в чем: как только вы установите флажок "Анимирован" на каком-либо параметре источника света и пропишите кадры, модель начнет регулярно выдавать такие ошибки при попытках открытия в w3me:

7.2

Причем группы, на которые ссылается программа, могут быть разными – это уже зависит от того, что вы анимировали: KLAC – анимирован цвет, KLAI – анимирована интенсивность, KLBC – анимирован цвет окружения и т.д. Исправляется это путем канонизации в Mdlvis’е, но тут всплывает другая проблема: после канонизации настройки цвета у источника света сбиваются! А именно уже знакомое нам BGR превращается в RGB и наоборот, т.е. после каждой канонизации крайние цветовые каналы меняются местами. Так что после внесения любых изменений в модель нужно будет дважды канонизировать и пересохранять её в Mdlvis’е. А можно просто заранее расписывать цвета из расчета на их перемежевку, но одну канонизацию делать все равно придется. Не слишком удобно, но ничего не поделать…
Примечание: если вдруг вылетит ошибка "Unknown tag "" in light", то помогает та же канонизация.
Что ж, после всех необходимых процедур я получил следующие настройки цвета:
0: { 1, 0.1, 0.1 }
2000: { 0.5, 0.5, 0.5 }
2900: { 0.5, 0.5, 0.5 }
3000: { 0.91, 0.335, 0 }
6900: { 0.91, 0.335, 0 }
6950: { 0.294, 0.3, 0.929 }
8000: { 0.294, 0.4, 0.929 }
10000: { 0.294, 0.11, 1 }
И вот долгожданный результат:

7.3

Очень важно: не создавайте больше 2-х источников света в одной модели! Три источника убивают в модели все источники частиц, событийные объекты и CollisionShapes, могут нарушить костные анимации и удалить анимации поверхностей. После этого никакие оптимизации и канонизации не помогут. Да и с двумя будьте особенно осторожны: редко, но такие баги могут произойти и с ними. Более того, уже во время написания этой статьи я впервые встретился с тем, что после дублирования или копирования трижды источника света и открытия модели без канонизации, War3 ModelEditor заставил работать процессор на 100%, заполнил всю оперативную память, и пришлось перезапускать компьютер, который подвис намертво. Если вдруг при открытии модели w3me перестает отвечать, немедленно запускайте диспетчер задач и следите за процессом – будьте готовы завершить его.
Мой техножрец также не обойдется без анимаций света, но к ним я приступлю в последнюю очередь.
На этом мы закончим главу об анимациях света и перейдем к завершающей стадии создания полноценной модели: к оснастке точек крепления.

Просмотров: 3 893

ScorpioT1000 #1 - 6 лет назад 0
xgm.guru/p/wc3/bugs_mdlvis не нужна канонизация, надо просто пересохранить и тогда ниче не собьётся