Вы находитесь на сайте модмейкеров.
Суббота, 23.11.2024, 12:37
Участники · Правила форума · ПОИСК!
  • Страница 1 из 1
  • 1
[Статья] Цвета в Warcraft 3
EvgexaДата: Вторник, 16.11.2010, 16:50 | Сообщение # 1



Сообщений: 1204

Для отображения цветов в WarCraft III, мы пишем перед нужным словом специальный текст, который движок WarCraft преобразует в цвет. Чтобы полностью понять, как нужно поставить цвет, надо знать, как это работает, чтобы не образаться к программам, когда этого нельзя сделать.

2. Что такое цвет.
Все мы, надеюсь, знаем основные цвета:
• Красный
• Зелёный
• Синий

Когда мы ведём речь о них, мы их объединяем в RGB. Есть и другие цветовые схемы (CMYK, к примеру, но сейчас речь не о них).
В цветовой схеме RGB каждый основной цвет может быть назван каналом, иногда присутствует и четвёртый канал, который назвается Альфа-канал, который отвечает за прозрачность, так что при соединении их воедино в цветовую схему, она будет называться "RGBA". Каждый из данных каналов требует 1 байт для того, чтобы компьютер мог обрабатывать цвет.
1 байт=8 бит, а когда речь идёт о битах, тогда речь идёт и о двоичной системе (Binary), которая состоит только из двух символов - 1 и 0. Компьютер понимает язык такой системы.
Ниже дана таблица, в которой описан принцип работы двоичной системы и как из неё вычисляют число. Так как 1 байт=8 бит, начнём с умножения на 2.

В Binary #2 каждый бит из набора равен единице, это означает, что 8 бит (1 байт) может хранить максимальное значение до 255. Правда, для того, чтобы создать 0, не нужно ни одного бита, а это означает, что область допустимых значений - от 0 до 255, это 256 слотов.
Вы можете подумать, что существует огромнейшее количество цветов и они ну никак не могут поместиться в 1 байт, и вы будете абсолютно правы. Мы даём 1 байт на каждый канал, а это 256 * 256 * 256=16777216 различных цветов (24-битная глубина цветов), причём это без учёта Альфа-канала, который поднимает число цветов до 4294967296 (32-битная глубина цветов).

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

3. Шестнадцатеричная система счисления.
Эта система называется 16-ричной, так как состоит из 16 уникальных символов. Вот они:

Если кто не знает, Decimal - десятичная система счисения.
Нех (16-ричная система, далее хекс) используется в основном для более понятного и удобного представления двоичной системы, но мы не будем работать с WarCraft III через двоичную систему. Всё, что нам надо - это представить 4 байта, как одно значение, которое будет содержать цветовой код.

В хексе строки цветового кода будут представлены двумя символами (16 * 16=256)
Так как RGBA требует 4 байта, хекс идеально подходит в целях сжатия. Ваш цветовой код станет длиной в 4 * 2=8 символов. Она изменит RGBA на RRGGBBAA.

Давайте сконвертируем шестнадцатеричное число в десятичное.

Как вы видите сами, мы смогли 3 символа представить в виде двух и скомбинировать всё в одну строку. RGBA всегда в 8 символов длиной, а так как мы убрали по одному символу из каждого значения, мы сэкономили себе байт.
Теперь вам понятно, как работает хекс. Перейдём к следующей части.

4. Цветовой код.
Научившись конвертировать код в строку, вы должны знать, как использовать то, что мы получили ранее. Мы не работали ни с двоичной, ни с десятичной системами, но зато изучили шестнадцатеричную систему и сконвертировали при помощи неё код. Теперь давайте используем полученную строку.
Везде, где только можно, цветовой код представлен в виде RRGGBBAA, но программирование за границами WarCraft III довольно непростое, а некоторые вещи даже не закончены.
В WarCraft III строка с цветовым кодом представлена в виде AARRGGBB. Но иногда Альфа-канал движком WarCraft не обрабатывается! Всё равно нам приходится писать код в полном объёме включая Альфа-канал.
Залить строку или её часть цветом очень просто - перед словом, с которого надо начать окрашивание, нужно поставить тег |c , а после последнего слова, которое требуется окрасить - тег |r . Заметьте, после тега |c тут же, без пробелов надо написать код цвета в формате AARRGGBB. Похоже на BB-коды форума, правда?

5. Несколько цветовых кодов.

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

Спасибо за прочтение! Искренне надеюсь, что вы почерпнули для себя много нового. By Duos


--
Diz[Z]arDДата: Вторник, 16.11.2010, 17:12 | Сообщение # 2



Сообщений: 768

а я не морочу голову на больших таблицах я знаю наизусть вот эти основные цвета:
Синий цвет - |c000000ff
Красный цвет - |c00ff0000
Зелёный цвет - |c0000ff00
=)
и чучуть дополню тему
Золотой - |c00ffbd00(ваш текст)|
Чёрный - |c00000000(ваш текст)|
Синий цвет - |c000000ff(ваш текст)|
Серый - |c007c7c7c(ваш текст)|
Красный цвет - |c00ff0000(ваш текст)|
Пурпурный - |c00ff00ff(ваш текст)|
Жёлтый цвет - |c00ffff00(ваш текст)|
Зелёный цвет - |c0000ff00(ваш текст)|


one click plz
--
Liebendig1993Дата: Понедельник, 22.11.2010, 00:34 | Сообщение # 3



Сообщений: 62

А лучше пользовать прогой War3ModelEditor. Там можно работать с цветами!

А они злонравны?
--
UZzipДата: Понедельник, 22.11.2010, 13:09 | Сообщение # 4
Noize mc



Сообщений: 6078

Вот прога специально для этого.

--
ImbaДата: Пятница, 31.01.2014, 15:03 | Сообщение # 5
Mr.Cat



Сообщений: 778

Это конечно все хорошо, но смысле просто нет...
Легче использовать ВМО, чем такой долгий и нудный метод.
Закрыто.
--
  • Страница 1 из 1
  • 1
Поиск:

W3 - Всё для картостроения. 2024-2010 |