Как сделать спрайт прозрачным

Обновлено: 07.07.2024

Внимание! Статья не завершена! Если ты хочешь помочь — отредактируй её!

Графический эффект — эффект который может быть применен к спрайту или к сцене.

Содержание

Блоки

Существует три вида блоков, которые могут изменять значение эффекта.

Изменить () эффект на ()

Изменяет силу определенного эффекта.

Установить эффект () значение ()

Устанавливает значение определенного эффекта.

Убрать графические эффекты

Убирает все графические эффекты со спрайта или сцены).

Список графических эффектов

  • Цвет — изменяет оттенок цвета
  • Рыбий глаз — создает впечатление, что спрайт просматривается через широкоугольный объектив
  • Завихрение — крутит спрайт вокруг своей центральной точки
  • Мозаика — создает несколько меньших копий изображений спрайта
  • Укрупнение пикселей — пикселизирует спрайт
  • Яркость — изменяет яркость спрайта
  • Призрак — изменяет прозрачность спрайта

Ограничения значений

Большинство графических эффектов в какой-то момент возвращаются туда, где они начались!

Один костюм может принимать 200 различных цветов (от 0 до 200), используя эффект "цвет". "Реальный" эффект цвета равен сохраненному эффекту по модулю 200. Это означает что эффект цвета не изменится, поскольку отображаемый цвет будет таким же как и: установить эффект [цвет v] (200) :: looks установить эффект [цвет v] (0) :: looks

Изменение цветов с помощью блока цветового эффекта

Это изменения цвета от Scratch Cat Orange (0 Color Effect) к себе, когда он перезапускается с 200-м положительным значением цветового эффекта.

  • 1-10 = оранжевый светло-желтый
  • 10-20 = светло-желтый до желтовато-зеленого
  • 20-30 = Желтовато-зеленый до среднего зеленого цвета
  • 30-40 = Средний зеленый до толстого зеленого цвета.
  • 40-50 = Нет внимательного изменения.
  • 50-60 = зеленоватый светлый голубой цвет.
  • 60-70 = Светло-голубой оттенок зеленого до полностью светло-голубого цвета.
  • 70-80 = светло-голубой цвет до светло-голубого цвета.
  • 80-90 = Светло-голубой до средне-синего.
  • 90-100 = Среднее темно-синее густой темно-синий.
  • 100-110 = Темнее и темно-синий.
  • 110-120 = Медленно более пурпурно-голубой.
  • 120-135 = Фиолетовый - Индиго
  • 135-160 = постепенно смешанный розовый и фиолетовый.
  • 160-170 = постепенно розовато-красный цвет.
  • 170-180 = Толстый красный цвет.
  • 180-190 = темно-оранжевый цвет
  • 190-200 = Идентично оригинальному цвету в этот момент.

Для других цветов просто начинайте с самого идентичного цветового эффекта, например, красный цвет будет при цветовом эффекте 175 (1-й столбец, 4 цвета на области векторной окраски.) Если вы все еще не уверены, попробуйте изменить цвет пока он не соответствует одному из этих описаний.

Эффект "Рыбий глаз"

В Scratch 2.0 нет предела для эффекта рыбий глаз. В определенный момент увеличение эффекта не будет иметь дальнейшего влияния на визуализированное изображения. В Scratch 1.4 он не может быть больше или равен 1 073 741 723.

Если он меньше или равен -100, он будет занимать часть или весь его ограничивающий прямоугольник и иметь прозрачные и цветные полосы, исходящие из центра.

В Scratch 2.0 нет предела для вихревого эффекта, но в какой-то момент он будет полностью отрицаться, и спрайт будет выглядеть так, как если бы вихревой эффект был установлен равным 0. В Scratch 1.4 он не может быть больше или равен до 1 073 741 823.

Эффект "Пикселизация"

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

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

Один костюм может принимать 100 различных прозрачных пленок, используя эффект призрак. Когда абсолютное значение эффекта призрака больше или равно 100, спрайт полностью прозрачен и не может быть замечен, но он по-прежнему может быть обнаружен в некотором роде. Один из способов использования эффекта призрак - сделать переход, сделав создание спрайта прозрачным, затем сделайте его видимым, а затем снова прозрачным! Также благодаря данного блока можно создать картинку для своего проекта, для этого в коде спрайта "картинка" с костюмом желаемой картинки надо сделать: Когда щёлкнут по зелёному флагу показаться установить эффект [призрак v] (100) Но при этом блок когда спрайт нажат не будет работать, и придется выполнять это как: и >

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

Примеры использования

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

Эффект "Пикселизация"

  • Чтобы проект выглядел ретро или старомодным
  • Может использоваться как переход между костюмами
  • Чтобы заблокировать или подвергнуть цензуре игнорируемый символ в сцене
  • Чтобы создать впечатление светящихся
  • Сделать что-то темнее
  • Может использоваться как переход между костюмами
  • Затухание и выход
  • Предоставление впечатления от призрака
  • Устранение чего-то исчезнуть без использования блока скрытия (с непрозрачностью, равной 100)
  • Смешивание цветов (с эффектом призрака 50 на двух спрайтах)
  • Может использоваться как переход между костюмами
  • В качестве альтернативы уменьшению яркости, создавая полупрозрачный темный спрайт над оригинальным спрайтом
  • Призрачный детектор, чтобы пользователь не мог видеть спрайт, но все же мог быть обнаружен другими спрайтами
  • Может сделать спрайт слегка прозрачным, чтобы показать слой за ним
  • Умножение спрайта без клонирования
  • Может использоваться как переход между костюмами

Другие эффекты

Некоторые модификации Scratch включают три эффекта от Scratch 1.2:

  • Размытие - размытие спрайта
  • Pointillize - выбирает случайные пиксели и создает круги с их цветами в этих местах
  • Насыщенность - добавляет / удаляет цвет; насыщенность 0 - черно-белое

Они были удалены из Скретч, потому что они были глюки, и команда Scratch считала их несущественными.

Был также эффект пульсации воды , который разбился Scratch из-за недостаточной памяти системы.

Непоследовательность эффекта

Некоторые эффекты будут давать разные результаты при использовании с Stage3D или Pixel Bender. Например, эффект призрак сделает различные слои векторного спрайта видимыми в Pixel Bender, в то время как это не произойдет в Stage3D. Эффекты, которые демонстрируют заметные визуальные различия:

  • Рыбий глаз: спрайты более размыты в Pixel Bender.
  • Завихрение: спрайты вращаются в разных направлениях в зависимости от механизма рендеринга.
  • Яркость: значение 100 приведет к тому, что спрайт станет полностью белым в Pixel Bender, хотя он все равно будет виден на Stage3D.
  • Призрак. Слои видны для векторных спрайтов в Stage3D.

Особенно эффекты призрака и яркости могут путать пользователей, поскольку результаты зависят от использования других блоков эффектов в проекте.

Stage3D

В начале июля 2013 года Adobe обновила Flash до версии 11.8, удалив аппаратное ускорение для Pixel Bender, которое использовалось Scratch для рендеринга графических эффектов. После этого обновления многие разработчики заметили, что отставание значительно увеличилось при выполнении сценариев графического эффекта. Не только Scratch повлиял на отсутствие аппаратного ускорения, но почти все приложения Flash, использующие Pixel Bender, также испытывали те же проблемы и сложности.

Это отставание может быть значительно уменьшено или уменьшено путем понижения до Adobe Flash версии 11.7 и ранее. Предыдущие версии поддерживают аппаратное ускорение для Pixel Bender, что позволяет графически работать на Scratch и других приложениях Flash для бесперебойной работы. Команда Scratch попыталась разработать обходное решение для оптимизации гладких графических эффектов без Pixel Bender, в результате чего появились два возможных решения, оба из которых были неуказаны.

30 августа 2013 года для тестирования был выпущен альтернативный бета-плеер под названием Stage3D и все еще запущенный во Flash. Это позволило ввести URL-адрес проекта Scratch и воспроизвести его в новом проигрывателе, который был направлен на снижение отставания графического эффекта. Текущая версия проигрывателя по умолчанию использует более быстрый движок рендеринга Stage3D, когда используются графические эффекты, отличные от призрак и яркость.

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

Cookie-файлы помогают нам предоставлять наши услуги. Используя наши сервисы, вы соглашаетесь с использованием cookie-файлов.

The Wiki is working on a dark theme, and you're seeing it! Got feedback? Post on the Тема форума о Скретч Вики.

Спасибо, конечно, что откликнулись, но мне нужно немного другое.
Мне нужно, чтоб не весь спрайт был полупрозрачным, а лишь нужные его части.
Т.е., как альфа-канал в Photoshope. И не для 3d а для 2d-прог. Еще раз спасибо

Shoooler
Если в DirectDraw, то используй ColorKey.

Ты хотя бы АПИ укажи. А если грамотно указать каждому пикселю текстуры значение альфа, то она и не будет вся полупрозрачная с параметрами прозрачности SRC_ALPHA и 1-SRC_ALPHA, а будет именно в нужных местах прозрачным.

Anubis
Он же написал, что 2D ему надо (зачем?). В 2D вообще нет альфа блендинга (ну, если только руками).

Сейчас 2D делается только через 3D + Ortho. И, соответственно, блендинг замутить легко.
Ну, а если нужны острые, а не плавные края, то AlphaTest спасет. А без бленда или альфа теста это вообще не делается. Разве что по точкам.

Помогите. У меня не получается. Так, как говорит Shoooler, выводится ВООБЩЕ не прозрачная, а c GL_ONE, GL_ONE полупрозрачная. Я эксперементировал со всеми параметрами (GL_ONE, GL_ZERO, GL_SRC_COLOR, GL_DST_COLOR. ) единственно, что удалось, так это сделать прозрачным то, что должно быть видимо(инверсная прозрачность).

(Текстура вентилятора из Q3, .tga, с альфа каналом -- 100%, испрользую gluBuild2dMipMaps() c параметром GL_RGBA,
вроде все правильно.





Слово "sprite", дословно переводиться как "двухмерное изображение на экране". Спрайты - двухмерные файлы анимации. Могут представлять собой как небольшой мульт из нескольких кадров, так и один статичный кадр.
В HL спрайты используются на каждом шагу - вы просто не могли их не заметить. Это анимации взрывов, огня, дыма, капельки воды(дождь, снег), различные вспышки, так называемые "оптические" эффекты(слепящие ореолы ламп) и т.д. Находятся в папке x:/half-life/cstrike/sprites. Имеют расширение *.spr

Достоинства и недостатки

Для профессионально маппера спрайты незаменимы. Они никоем образом не влияют на r_speeds, что не может не радовать! Мне известно три вида спрайтов, которые имеют свои достоинства и недостатки.

1) Параллельные спрайты. Создают иллюзию трехмерности объекта, за счёт того, что они всегда параллельны по отношению к игроку. Пример - на карте cs_nnd, спрайтом выполнен бильярдный шар, который кажется игроку полностью трёхмерным; на de_crater_club, параллельными спрайтами выполнены кегли и шары для боулинга (Рис. 1).

2) Ориентированные спрайты. Это настоящее открытие для маппера! ;) Позволяют ориентировать спрайт в какую-либо сторону. Выглядит как текстура, наложенная на обычный браш. Очень удобно использовать ориентированные спрайты вместо обычных entity с текстурами, которые содержат прозрачные области (битовую маску). К тому же, использование таких спрайтов поможет вам технологически снизить r_speeds! Смотрим Рис. 2.

На карте cs_costabrava при помощи ориентированных спрайтов создана листва деревьев. Выглядит чертовски реалистично и самое главное - приём экономит драгоценные w_poly!

3) Фиксированные спрайты. Представляют собой параллельные спрайты, зафиксированные по вертикали. Такой спрайт будет всегда параллелен к игроку, за исключением случаев, когда игрок смотрит на него сверху или снизу. Пример - трава на карте cs_BbICOTKA (Рис. 3).

К сожалению, спрайты так же имеют и свои недостатки :( Главный недостаток - ограниченное количество используемых спрайтов. Дело в том, что при загрузке спрайтов, моделей и entity, для них резервируется ограниченное место в памяти. Поэтому, количество спрайтов, использованных вами, желательно не должно превышать 200 штук. Иначе ваша карта попросту не загрузится, уж поверьте мне ;) Эх! Прощай мечта о создании огромного спрайтового конопляного поля. :)

Цветовая палитра спрайта - всего 256 цветов. Ограничение на размер 256х256 пикселей.
Ещё один недостаток - на спрайт никаким образом не влияют тени, отбрасываемые брашами, а так же источники света(т.е. при компиляции спрайт не обрабатывается hlrad-ом). Если спрайт будет находиться в полной темноте - он будет выглядеть светящимся. Пример - кегли и шары для боулинга на de_crater_club (Рис. 1). Согласитесь, смотриться странно.
Но всё же существуют случаи, когда этот недостаток можно обратить достоинством.

Мультфильм, который идёт по телевизору на карте cs_bikini (Рис. 4) выполнен ориентированным спрайтом с несколькими кадрами. В комнате немного темновато, поэтому светящийся спрайт-экран выглядит очень реалистично, при этом нет необходимости делать каждый отдельный кадр анимированной текстурой и помещать её в wad! 8)

Учимся делать спрайты

Пришло время учиться делать продвинутые спрайты! 8) Для этого нам понадобятся: для создания текстуры - любой графический редактор; для создания спрайта - SpriteGen; для просмотра спрайта - SprView.

Итак, попробуем вместе замутить ориентированный спрайт травки. Для начала нам необходимо создать рисунок в формате bmp, который станет спрайтом. Помните о ограничениях: 256 цветов, не больше 256х256, значение кратное числу 16 (как у обычной текстуры). Если рисунок содержит прозрачные области - последний цвет RGB в его палитре должен равняться R=0, G=0, B=255. Что бы избежать глюков с отоображением спрайта, желательно отступать несколько пикселей от краев рисунка. Вобщем, у меня получилось так (Рис. 5):

Сохраняем рисунок в папку c:\makesprite. В эту же папку копируем утилиту SpriteGen.
Создаём текстовый файл с именем primer.qc. Туда мы занесём специальные команды, которые помогут нашей текстуре стать спрайтом ;) Выглядеть это должно примерно так (Рис. 6):

Сначала пишем путь к папке с материалами - в нашем случае c:\makesprite(Рис. 6-1). Затем указываем имя спрайта newsprite (Рис. 6-2), тип спрайта - oriented (Рис. 6-3), параметр отображения текстуры - alphatest (Рис. 6-4), имя рисунка - newsprite.bmp (Рис. 6-5), размеры текстуры - 256 на 64 (Рис. 6-6). Наш primer.qc готов! Сохраняем его в папку c:\makesprite\. Осталось создать bat-файл и сохранить в ту же папку. Туда мы вписываем имя нового спрайта (Рис. 7-1) и путь к primer.qc (Рис. 7-2):

Смело запускайте bat-файл. Если всё сделано верно, то у нас должен получился самый настоящий ориентированный спрайт! В вашу карту спрайт вставляется при помощи entity env_glow.
В свойствах ентити настраиваем:

Model (путь к спрайту) - sprites/newsprite.spr
Render mode (параметр отображения) - Solid
FXAmount (прозрачность) - 255

Важно указать направление спрайта при помощи angle. Помните - направление стрелки показывает сторону, в которую спрайт повернётся "задом"! После компиляции карты у меня получилось вот такая симпатичная травка (Рис. 8):

Теперь давайте поподробнее остановимся на параметрах primer.qc, изменяя которые можно создавать различные типы спрайтов.

Типы спрайтов при значении:

vp_parallel - параллельный спрайт
vp_parallel_upright - фиксированный спрайт
oriented - ориентированный спрайт

Тип отображения текстуры:

normal - обычный режим, 256 цветов
alphatest - спрайт с битовой маской, 256 цветов, последний цвет в палитре RGB должен быть (R=0,G=0,B=255)
additive - спрайт с битовой маской, 256 цветов, последний цвет в палитре RGB должен быть (R=0,G=0,B=255)
indexalpha - черно-белый спрайт, последний цвет в палитре - определяет окраску спрайта.

Анимация спрайта:

При создании анимации (например из 5 кадров), ваш primer.qc дожен содержать информацию о дополнительныч кадрах. Делается это добавлением новых строчек с именами бмп-файлов:

$load newsprite001.bmp
$frame 0 0 96 128
$load newsprite002.bmp
$frame 0 0 96 128
$load newsprite003.bmp
$frame 0 0 96 128
и т.д

Если создание спрайтов при помощи SpriteGen вам показалось слишком сложным, то можно попробовать ещё одну программку - под названием SpriteWizard. К сожалению, она позволяет создавать только параллельные спрайты. Но зато в работе очень проста и неприхотлива - достаточно всего лишь найти свой бмп-файл и выбрать тип отображения текстуры! Всё! :) Спрайт в кармане!

Читайте также: