Как сделать спрей для tf2
Как сделать спрей для tf2
Для тех, кто ещё не понял, что я буду объяснять в этом руководстве, посмотрите видео:
Сейчас мы постараемся сделать точно такой же спрей.
Прежде чем мы начнём, я хотел бы попросить вас скачать и установить вот эти программы:
Вам понадобится редактор изображений. В руководстве я буду использовать Adobe Photoshop CS5, но другие версии программы должны работать нормально. Вы можете использовать GIMP как бесплатную альтернативу Photoshop:
Adobe Photoshop [www.adobe.com]
Плагин, который добавит поддержку нужного нам формата:
NVIDIA Texture Tools Photoshop Plugin [developer.nvidia.com]
Или, другой вариант — вы можете использовать GIMP:
GIMP [www.gimp.org]
Плагин, который добавит поддержку нужного нам формата:
DDS (Gimp Plugin) [code.google.com]
Нам также понадобится загрузить плагин, который позволит нам сохранить нашу работу в формате DirectX и утилита DirectxSDK от Майкрософт, которая позволит нам редактировать наш образ DirectX после его сохранения из Photoshop. Нам также понадобятся Quick & Dirty Bloodlines Tools, которые преобразуют изображение DirectX в VTF.
DirectxSDK (DirectX Texture Tool) [www.microsoft.com]
Плагин, который добавит поддержку нужного нам формата:
Quick & Dirty Bloodlines Tools
И, конечно же, VTFEdit, который является инструментом, используемым для преобразования вашего изображения в текстуры для игры.
Прежде чем мы начнем, нам понадобится набор изображений, которые мы хотим использовать. Спреи могут содержать несколько отдельных изображений, чтобы вы могли сделать переход постепенным или внезапным, как вам нравится. Имейте в виду, что они все равно должны быть равны одним из следующих размеров:
Смысл состоит в том, что если вы отойдёте далеко, вы увидите подарок. Чем ближе вы будете подходить к спрею, тем быстрее он исчезнет из поля зрения.
Не стесняйтесь использовать то же изображение, что и я.
Запускаем Фотошоп и открываем наше изображение подарка. Для этого нажмите «Файл» → «Открыть». В открывшемся окне нажмите «Изображение» → «Размер холста» и измените «Высота и ширина» на 256 на 256 пикселей.
У вас получится что-то вроде вот этого:
Для примера я попробую опустить изображение ниже. Попробую настроить его так, чтобы нижний угол касался нижней части холста. Это я делаю по своему усмотрению, вы же можете просто пропустить этот пункт.
При создании дистанционного спрея нужно делать изображения немного иначе, чем обычно. Дистанция в игре обрабатывает изображение совсем по другому. Поскольку изображение, которое мы использовали, уже прозрачно, единственное, что нам нужно было сделать, это изменить размер холста, чтобы он соответствовал требованиям размера игры.
Когда вы нажмете «Сохранить», вы получите всплывающее окно с опциями. Единственное, что вам нужно изменить от значения по умолчанию — это верхнее поле, и его нужно изменить на «DXT5 ARGB 8bpp | interpolated alpha». Если вы не поняли что нужно сделать, то внимательно посмотрите на картинку:
Снова нажимаем «Сохранить», и с этим изображением работу мы закончили, переходим далее.
Теперь нам потребуется создать изображение и использовать альфа-канал, так как мы используем прозрачный спрей.
Так как наше изображение будет исчезать на приближающейся дистанции, то создадим пустой холст и сделаем его прозрачным.
Снова зайдите в Фотошоп и нажмите «Файл» → «Создать». Сделайте размер таким же, как мы делали его до этого, в моем случае это будет 256 на 256 пикселей.
Перейдите во вкладку: Каналы, это обычно расположено рядом со слоями. Если вы каким-то образом закрыли его, вы можете вернуть его, перейдя в Window → Channels. Если у вас русская версия, то: Окна → Каналы.
Открыв вкладку: Каналы, нажмите кнопку «Создать новый канал» внизу. Как только вы нажмете на это, весь холст должен стать черным.
С этим изображением закончили, теперь закрывайте Фотошоп, он нам больше не понадобится. Теперь будем обрабатывать изображение с помощью DirectX Texture Tool.
Если вы на столько ленивы, что пропустили пункт подготовка инструментов и решили не тратить время на это, то напоминаю.Эту утилиту вы сможете скачать здесь:
Запустите инструмент Texture Tool, мажите File → Open и откройте ваш DDS файл, который вы сохранили.
Когда вы импортируете изображение, оно будет выглядеть примерно так:
Текстура разделяется несколькими Mipmaps. Вы можете циклически перебирать каждый Mipmap на нашей текстуре, перейдя во вкладку: Вид → Меньший уровень Mip или View → Larger Mip Level. По умолчанию программа сначала откроет самую большую.
Поскольку я хочу заставить настоящее исчезнуть, нужно импортировать нашу *.tga, которую мы сохранили. Для этого выберите самую большую Mipmap и перейдите во вкладку: File → Open Onto This Surface.
Уровни Mipmap должны выглядеть следующим образом:
Последнее, что нам нужно сделать в этой утилите — это сохранить это изображение. Нажмите: «Файл»> «Сохранить как». Обязательно сохраните его где-нибудь, вы его запомните, поскольку мы будем использовать его в следующем разделе.
Следующее, что нам нужно сделать, это преобразовать наш DDS-файл в VTF. Для этого вам понадобятся утилита под названием: Quick and Dirty Bloodlines Tools. Скачать утилиту вы можете по этой ссылке:
Открыв программное обеспечение, перейдите на вкладку «Texture Tools», как показано на картинке. Нажмите «Открыть файл», и откройте наш сохраненный DDS, который мы только что сохранили.
Нажмите «Convert DDS to VTF», чтобы начать преобразование. Нет необходимости проверять что-либо еще. Ниже приведен скриншот моих настроек прямо перед тем, как я запустил процесс преобразования:
После завершения преобразования в нижнем окошке вы увидите слово: Converted — Это сообщение означает, что преобразование завершено.
Перейдите в тот же каталог, в котором вы сохранили файл DDS, и теперь у вас должен появится *.VTF-файл.
Мы почти закончили!
Откройте VTFEdit и выберите File → Open. Откройте VTF-файл, который мы только что создали, с помощью Quick & Dirty Bloodline Tools.
Чтобы гарантировать, что весь процесс прошел гладко, мы можем проверить наше изображение на этом этапе, увеличив значение Mipmap с левой стороны. Все, что выше нуля, должно показывать настоящее, и оно будет меньше, чем выше значение.
Установите значение Mipmap слева на 0 (по умолчанию), и сохраните изображение нажав: File → Save as. Теперь чтобы создать *.vmt файл, отвечающий за параметры текстуры, нажмите: Tools > Create VMT. VMT-Файл будет создан рядом с текстурой или же попросит вас указать место сохранения.
Теперь зайдите в Team Fortress 2 и импортируйте спрей для использования в игре. Зайдите на сервер и проверьте, у вас должно получится примерно так:
Как сделать спрей для tf2
Обычно новички используют встроенную в саму игру возможность использовать свою картинку в качестве спрея. Однако игра делает это дело скверно. Не верите?
Для начала, попытаемся понять, что делает TF2 с нашими картинками. Создадим тестовую картинку без прозрачности размером 512х512 пикселей, и «скормим» её игре. После этого поищем свежий файл spray.vtf в каталоге Steam’а. Нашли? Окей. Его размер около 40 кб; откроем его в утилите VTFEdit.
Смотрим, что написано во вкладке «info». А написано там такое – тип сжатия DXT1, размер 256х256 пикселей. То есть, игра мало того, что уменьшила размер картинки, так еще и отчасти испортила её специфическим текстурным сжатием. Теперь подсунем игре картинку в формате tga, с прозрачными областями. Повторяем процедуру, и видим, что используется сжатие DXT5, размер картинки 256х256, размер файла 87 кб.
Закроем VTFEdit, и запустим его заново. Опять пытаемся импортировать нашу картинку. Но на этот раз выберем сжатие DXT5. Еще стоит обратить внимание на вот что: снять галочки с Resize и Generate Normal Maps, а еще лучше включить галочку Generate Mipmaps, и там выбрать Mipmap filter: Box (upd: нет, только не Box: у него в vtfedit кривая реализация, уж лучше Blackman или «Кайзер») и Sharpen filter: none.
Типичные настройки импорта в VTFEdit:
Кроме того, после импорта, в левой панели стоит взвести два флажка: «anisotropic filtering» и «no level of details». Фактически, это означает «игнорировать настройки детализации игры и показывать спрей всегда с максимальным качеством.
Записываем спрей. Размер файла – 340 кб. Ура! Наш высококачественный спрей готов. Конечно, сжатие DXT5 немного испортило картинку, но выглядит она в своих 512х512 все равно лучше, чем, например, та же картинка в 256х256 без сжатия.
А реально используются лишь RGBA8888, DXT5, DXT3 и DXT1.
Цифры для сравнения: картинка 512х512 без сжатия – 1 Мб (не годится по размеру для спрея), в DXT5 – 256 Кб, в DXT1 – 128 Кб.
«Прозрачность» (и полупрозрачность) хранится в отдельном слое «A» (alpha-канал). И, соответственно, занимает место. до 1/4 в режиме без сжатия и до 1/2 второй в режиме со сжатием DXT3 и DXT5.
Если взвести галочку «Generate Mipmaps», файл спрея резко начнёт занимать примерно на треть больше места.
Почему? Да потому, что эта галочка позволяет сохранить в теле файла спрея его уменьшенные со сглаживанием копии. Они показываются игре, когда игрок отдаляется от текстуры. Чем дальше точка зрения, тем меньший кадр достается из обоймы и предъявляется усталому взору игрока. Это нужно для того, чтобы картинка в отдалении неприятно не мерцала муаром – который видеокарта просто не может устранить; видеоакселераторы умеют растягивать текстуры, но не умеют уменьшать их. Поэтому уменьшение производится заранее, еще на этапе подготовки любой текстуры в игре.
Выглядит это внутри нашего спрея примерно так:
Обратите внимание, картинка уменьшается вплоть до размера одной точки.
Что до подготовки мипмап в VTFEdit’е, на мой взгляд, лучший фильтр для мипмапов – «Box» c резкостью «none» или «sharpen soft». Дело в том, что алгоритм «Box» создан как раз для уменьшения картинки в кратное число раз, а именно так мипмапы и генерируются: каждая текстурка в них – уменьшенная вдвое копия предыдущей. UPD: Практика показала, что по-настоящему высококачественных алгоритмов изменения размера в составе VTFEdit-а увы, нет. Теперь я обычно пользуюсь для создания мипмап алгоритмом Blackman’а, c резкостью None. В таком случае резкости бывает маловато. Компенсировать этот эффект не выходит. Даже самый слабый алгоритм наведения резкости (sharpen soft) даёт слишком много резкости. Выходом могла бы служить выгрузка текстуры в DDS-формате (как при создании спреев-переливачек), и ручное составление мипмап, но увы, это слишком кропотливая работа, одна из тех, про которую говорят, что «игра не стоит свеч».
Кроме того, мипмапы используются в создании спреев-переливачек, но об этом дальше.
Ничего сложного. Просто отметьте несколько файлов при импорте в VTFEdit – и получите свою анимацию.
⅓ размера файла). Можно избавится и от прозрачности, чтобы получить вполтора раза больше места, если это уместно на конкретной картинке, разумеется. Или уменьшить размер кадра с 512х512 до 256х256 или даже еще ниже.
Вот некоторые цифры, полученные опытным путем, они помогут в создании анимации:
Темп анимации – 5 кадров в секунду. Кажется, это число изменить нельзя. (?)
Вы должно быть видели такие спреи – подходишь к ним ближе, и картинка изменяется.
Как это работает? В мипмапе, во всех её «кадрах», картинка должна быть одна и та же – только разного размера. Но если мы заменим один из кадров – получим именно то, что хотели.
Здесь нам потребуются некоторые специальные утилиты.
Я позже напишу инструкцию подробную инструкцию, а пока пусть будет черновичок:
Где-то мне попадался еще другой способ формирования мип-мап; и тот, второй способ мне нравился больше; состав инструментов был почти таким же, но, кажется без directx sdk, а замена картинки производилась прямо в Фотошопе. Но что-то не могу это воспроизвести. Упоминаю я здесь потому, что взялся описывать качественные техпроцессы, так вот, этот способ был менее удобным, но качество на выходе давал лучше, потому что качество сжатия dxt у nvidia-вского плагина выше, чем у тулзы из микрософтовского сдк.
Коротко: взводите эти флажки, если хотите получить спрей максимального качества.
Как сделать спрей для tf2
Перед началом, как и большинство авторов других руководств, я хотел бы порекомендовать вам ознакомится с моим предыдущим руководством созданным на тему создания дистанционного спрея.
Ежели вы уже с этим работали и владеете навыком создания, то приятного вам чтения.
Как вы могли обратить внимание, в каждом руководстве я стараюсь разнообразить список программ, чтобы вы попробовали себя в работе с новыми для вас программами и получили новые для себя навыки.
В этом руководстве мы будем использовать такие программы как:
— Фотошоп (версия CS5 или выше)
— Всё тот же GIMP
— Paint.NET
— VTF Edit (как же без него)
Обратите внимание, что даже Paint.NET способен на создание таких текстур, но, как и в предыдущей статье покажу вам пример в Фотошоп.
В качестве образца мы возьмём всеми известную Adventure Time, найдя один из моментов с пингвином шатающим бутылочки я решил попробовать сделать анимационный спрей обрезав лишние части изображения.
Я же попробую сделать из этой анимационной картинки — спрей.
Имейте в виду, вам придётся разбить картинки на несколько кадров, чтобы получить анимированный спрей.
Чтобы сделать анимированный спрей, нужно знать, что картинка должна соответствовать ограничениям размера. Полноценное изображение с анимацией не может превышать 512 КБ, поэтому это означает, что файл, который мы используем, будет слишком большим. Это также должно быть:
512 на 512 пикселей (этот размер не рекомендуется для анимированных спреев)
256 на 256 пикселей
128 на 128 пикселей
Так, как мне нужно преобразовать изображение как можно меньше, я возьму размер 128 на 128 пикселей.
Запускаем Фотошоп и нажимаем «Файл» → «Открыть», а затем выбираем своё анимационное изображение.
Когда Фотошоп откроет файл, изображение будет разделено на несколько картинок — это так называемые фреймы. Разбитые на кадры изображения могут быть использованы для редактирования отдельно.
При открытии размер картинки составляет: 499 на 281 пиксель. Чтобы он работал в TF2, нам нужно будет изменить его на один из перечисленных выше размеров. Увидев, что весь интерес к изображению находится на пингвине, я создам новый холст, нажав File → New и задам высоту и ширину холста на 128 на 128 пикселей.
Откройте анимированные изображение и новый маленький холст. Выберите все слои изображения и перетащите их на холст, который мы создали размером 128 на 128.
После переноса выберите инструмент «Move tool» в русской версии это: «Перенос» и убедитесь, что вы включили «Show Transform Control», расположенные на верхней панели.
Возьмите один из углов изображения и удерживайте Shift на клавиатуре. Это полностью сдерживает изображение, поэтому невозможно заставить его выглядеть скрипучим или деформированным.
Уменьшаем изображение до примерно нужно нам размера, у меня же получилось вот так:
Наше изображение преобразовано в 128 на 128 пикселей, и каждый кадр должен создать цикл. Чтобы соответствовать требованиям размера, нам нужно сократить цикл, что мы и будем делать в следующем разделе.
В настоящее время наш образ имеет 18 кадров, в пределах этих 18 фреймов бутылки три раза соскальзывают, а рот и глаза открываются один раз. Это означает, что у нас есть место, когда дело доходит до удаления кадров, чтобы сделать цикл короче.
Вы можете поиграть с кадрами, показывая и скрывая их, используя иконку глаза, расположенную с левой стороны слоя. Я выделил это на изображении ниже, смотрите на желтый цвет:
В моем примере я удалил всё, кроме четырех слоев. Это создает цикл с четырьмя кадрами, что означает, что размер будет довольно небольшим. Цикл не будет идеальным, но это характер зверя.
Попробую сказать проще: Вам нужно сохранить каждый кадр отдельно. То есть, выбираете первый кадр и сохраняете его назвав «frame1», затем выбираете второй и сохраняете его с названием «frame2», и так далее со всеми кадрами.
У меня их получится 4 штуки. У вас должно получится примерно вот так:
Ну что ж, ужас закончился, осталось объединить кадры в одно изображение и преобразовать его в спрей.
Как и в предыдущей статье, я на всякий случай укажу ссылку на скачивание программы VTF Edit, если вы читаете это руководство первый раз переходите по ссылке и скачайте его: game-rus.ucoz.ru/apps/VTF-Edit.zip
Запустите VTF Edit и нажмите File → Import, выберите все файлы, возможно на некоторых операционных системах потребуется удерживать клавишу Shift при выборе нескольких изображений.
После того как вы откроете ваши *.tga файлы, вас встретит меню VTF Options. Ниже приведены настройки, которые я использовал. Я изменил свой зажим на 128 на 128, так как это размер изображений, но все остальное установлено на значения по умолчанию.
Теперь ваша анимация загружена в VTFEdit. Если вы хотите просмотреть его, вы можете сделать это, нажав кнопку Play, расположенную с левой стороны в боковом меню.
Последнее, что нам нужно сделать в этой программе — это проверить два параметра под флажками слева. Убедитесь, что No Mipmap и No Level Of Detail не проверены, это гарантирует, что спрей будет казаться качественным в игре независимо от того, кто его просматривает. Я выделил эти настройки ниже.
Всё готово, нажимаем: File → Save as. и сохраняем ваше анимационный спрей. Чтобы создать *.vmt файл к вашему спрею, вам нужно нажать: Tools → Create VMT — С помощью этого окошка вы сможете создать *.vmt файл для вашего спрея.
Заключительный этап, вам нужно закинуть спрей в папку с игрой. Откройте директорию игры Team Fortress 2 и установите ваш спрей:
Затем зайдите в игру, откройте Настройки → Сетевой режим и импортируйте ваш спрей.
Теперь давайте проверим то, что мы только что сделали — в игре. Найдите любой сервер, зайдите на него и попробуйте нарисовать спрей в любом месте на карте, вот что должно получится:
Если у вас что-то не получилось, перечитайте руководство, возможно вы что-то пропустили.
Спреи
Спреи — это особенность версии Team Fortress 2 на ПК, которая позволяет игрокам мгновенно «распылять» (кнопка по умолчанию: T ) свои изображения на поверхностях в пределах игрового сервера, таких, как стены, пол или потолок.
Спреи почему-то отключены в Свободном режиме, то есть в то время как спреи всё ещё можно нанести на стены, они не будут видны никому на сервере, кроме самого автора спрея.
Содержание
Техническая информация
Они могут быть включены или выключены на вкладке Многопользовательские опции, но количество отображаемых спреев одновременно и будут ли они отображаться вообще, зависит от значения серверной переменной mp_decals. Это значение должно быть выше 300 для отображения спреев, и чем выше значение, тем больше спреев может быть загружено одновременно. Переменная консоли sv_pure также может отключать отображение спреев.
Снимки экрана, сохраненные с помощью внутри-игровой системы захвата изображений (по умолчанию кнопка F5), сразу отформатированы для использования в качестве спреев, но при загрузке наверняка потеряют качество изображения и будут неразборчивы для других игроков.
Применение
Спреи используются игроками по многим причинам, включая:
Полезное применение спреев в игре почти не существует, хотя они могут иногда использоваться для отвлечения врагов, заставляя их поверить, что на их пути некие препятствия, которые в большинстве случаев хотелось бы избежать, такие как: приседающий снайпер вдали, турель или липучки.
Инженеры иногда помещают рядом с телепортом спреи, которые обозначают приоритет того, какие классы должны использовать телепорт в первую очередь. Эти списки, как правило, ставят самого инженера на первое место, так как он должен как можно быстрее обслуживать свои постройки. В то время как Разведчик находится внизу, так как скорость перезарядки телепорта 1-го уровня займёт примерно столько же времени, за сколько Разведчик достигнет линии фронта.