Как показывать изображения в игре
Вы пытались отображать рисунки в WarCraft, но все ваши попытки оканчивались неудачей?
Разумеется, так и было.
Во всяком случае, больше не бойтесь!
Следуйте этим несложным указаниям, и Вы научитесь вставлять изображения в любую карту!
Что нам понадобится:
- Программа для редактирования фотографий.
- Программа для конвертирования TGA в BLP.
- Warcraft и World Editor (можно RoC).
- Немного времени и терпения.
Я буду использовать Photo Shop 7 и Wc3 Image Extractor II.
Итак, начнем.
Шаг 1 - Подготовка изображения к WarCraft. Выберите рисунок, который Вам нравится - я взял вот этот в стиле Джеймса Бонда.
Теперь у Вас есть два варианта:
- Изменить размер изображения так, чтобы ширина и высота были степенью числа 2 (например, 512x512, 256x512).
- Создать новый холст, который уже является степенью числа 2, и вставить в него свой рисунок.
Я выберу последний вариант - создам изображение 512x512 и вставлю мою картинку 300x400.
После этого выделите область вокруг изображения и откройте вкладку "Слой".
Добавьте
альфа-канал и сотрите выделенную часть. Тогда вокруг рисунка появится розовое/красное пространство.
Или же, если Вы выбрали первый способ и подогнали свое изображение под нужные пропорции, Вы не увидите никаких красных частей. Сохраните рисунок в
32-битном TGA.
Откройте картинку в программе конвертирования, у меня это Wc3 Image Extractor II, и конвертируйте в *.blp
Вы подготовили изображение. Приступаем ко второму шагу.
Шаг 2 - показ картинок в WarCraft. У Вас есть готовый рисунок. Пора его отобразить.
Зайдите в Редактор, откройте Менеджер Импорта (F12) и импортируйте картинку в карту.
Сейчас самая важная часть, так что будьте внимательны.
Команда GUI "Изображение - Create Image" весьма глючная, так что используйте вместо нее следующую функцию:
Код
function CreateImageEx takes string imagePath, real size, real x, real y, real z, boolean showImage returns image
local image i = CreateImage(imagePath, size, size, 0, x - (size / 2), y - (size / 2), z, 0, 0, 0, 2)
call SetImageRenderAlways(i, true)
call ShowImage(i, showImage)
return i
endfunction
И для GUI'шников, версия с точкой:
Код
function CreateImageExLoc takes string imagePath, real size, location whichLocation, real z, boolean showImage returns image
return CreateImageEx(imagePath, size, GetLocationX(whichLocation), GetLocationY(whichLocation), z, showImage)
endfunction
Скопируйте эти две функции в нестандартный код карты и используйте Личный сценарий (Custom script) или JASS, чтобы создать изображение:
Готово!
Повторим:- Ширина и высота рисунка должны. являться степенями числа 2.
- Изображение должно иметь альфа-слой
- Используйте функцию CreateImageEx, чтобы создать картинку.
Буду очень признателен, если Вы укажете меня в "Благодарностях".
Click here to comment on this tutorial.