Как создать скин для программы

[Функция, связанная с этой страницей, Медиаплеер Windows SDK, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Это руководство содержит ряд подробных объяснений по созданию различных видов скинов. Дополнительные общие сведения о обложках см. в разделе Сведения о обложках. Подробные сведения о каждом атрибуте, методе и событии, используемых в обложках, см. в справочнике по программированию скинов. По мере более активного участия в программировании кожи вы можете прочитать часть этого пакета SDK, охватывающую объектную модель Медиаплеер Windows.

В этом руководстве инструкции по созданию искусства будут даны для Adobe Photoshop 5.5, популярной программы для манипуляций с искусством. Конкретные инструкции могут быть различными, если у вас есть аналогичная программа искусства, например Jasc Paint Shop Pro или Sonic Foundry хиро, но концепции будут те же. Фотошоп был выбран по двум причинам: это популярная художественная программа для коммерческих художников, и она работает со слоями. Как вы увидите в руководствах, слои очень полезны для создания кожи.

Создаем СВОЙ Скин в кс го, который добавят в игру! Как создать скин в cs go?

В этом руководстве рассматриваются следующие задачи.

Задача Описание
Создание вашей первой кожи Пошаговое руководство по простой обложке, которая начинается и останавливается Медиаплеер Windows.
Добавление списка воспроизведения Использование простого списка воспроизведения.
Выбор файлов Выбор файлов с помощью диалогового окна «Открытый файл».
Добавление видео Как поместить окно видео в кожу.
Добавление визуализаций Добавление визуализаций.
Добавление ползунка Как использовать ползунок для отслеживания хода выполнения вашего мультимедийного содержимого . и позвольте пользователю изменить его!
Создание пользовательских ползунков Управление громкостей с помощью пользовательского ползунка.
Другие примеры скинов См. раздел примеров пакета SDK.

Источник: learn.microsoft.com

Как создать скин

Подписаться на RSS рассылку

В данной статье я опишу как создать приложение с поддержкой скинов. Скин будет состоять всего из одного файла и его нельзя будет открыть графическими редакторами. В скине будут описаны координаты положения объектов (например кнопок). То есть каждый скин будет уникален.

Делать скины прибыльно? Объясняем за 6 минут

Нам понадобится написать два приложения: первое будет создавать скин, а вторая будет грузить его, всмысле это и будет программа спользующая скин.

Начнем с первой программы. Для начала поясню, как я хочу чтобы все это работало. Будем создавать файл и в него писать информацию в следующей последовательности: некоторые данные о самом скине (далее разберем поподробнее) и сами графические файлы, один за другим.

Приступим. Объявим тип:

Type
TSkins = Record
SkinName: string[255];
sze: array [1..3] of Int64;
crd: array [1..3] of TPoint;
end;

Объявленный массив sze — это массив размеров файлов, для облегчения последующей загрузки скина. А массив crd — это координаты объекта.

Добавим следующую строчку в глобальную секцию var:

Читайте также:
Как управлять программами на андроиде

sk: TSkins;

Нам понадобится определять размеры файла. Напишем функцию, которая будет возвращать размер файла:

Function GetFileSize(FileName: String): Longint;
var FS: TFileStream;
begin
FS := TFileStream.Create(FileName, fmOpenRead);
Result := FS.Size;
FS.Free;
end;

Напишем процедуру добавления файла к скину:

Procedure AddToFile(s:string; F:TFileStream);
var L:Longint;
F1:TFileStream;
begin
F1:=TFileStream.Create(S, fmOpenRead);
L:=F1.Size;

F.CopyFrom(F1, L); // копируем в F из F1 данные размером L

F1.Free;
end;

Теперь по нажатию на кнопку будем создавать скин:

procedure TForm1.Button1Click(Sender: TObject);
var fs:TFileStream;
begin
sk.SkinName:=’www.DelphiDevelop.ru’;

Sk.sze[1] := GetFileSize(‘fone.bmp’);// записываем размеры файлов
Sk.sze[2] := GetFileSize(‘2.bmp’);
Sk.sze[3] := GetFileSize(‘3.bmp’);

Sk.crd[1] := Point(0,0); // записываем координаты
Sk.crd[2] := Point(50,50);
Sk.crd[3] := Point(50,90);

FS:=TFileStream.Create(‘SkinName.skin’, fmCreate);

FS.WriteBuffer(sk, SizeOF(sk)); // записываем доп данные
AddToFile(‘fone.bmp’, FS); // пишем сами файлы
AddToFile(‘2.bmp’, FS);
AddToFile(‘3.bmp’, FS);

FS.Free;
end;

Естественно в папке с этой программой должны быть четыре BMP файла с названиями: fone.bmp, 2.bmp, 3.bmp, 4.bmp

Запускаем приложение жмем кнопку и появляется файл SkinName.skin. Конечно программу для создания скина можно сделать и лучше, например указывать какой файл грузить и куда создавать готовый файл скина.

Итак, файл создали осталось его загрузить. Создайте новое приложение и точно также добавьте:

Type
TSkins = Record
SkinName: string[255];
sze: array [1..3] of Int64;
crd: array [1..3] of TPoint;
end;

Еще нужно добавить это в глобальную секцию var:

sk: TSkins;

Напишем процедуру которая будет загружать из файла-скина нужную графику:

Procedure ReadSkinsFile(F:TFileStream; si:int64; crd:TPoint;img:Timage);
var F1:TMemoryStream;
begin
F1:=TMemoryStream.Create;

F1.CopyFrom(F, Si);

F1.Position:=0; // возвращаем позицию в начало
Img.Picture.Bitmap.LoadFromStream(F1); // загружаем

// изменяем положение Img
img.Left:=crd.X;
img.Top:=crd.Y;

F1.Free;
end;

F — будет передаваться читаемый файл; si — размер файла; crd — координаты. Будем тутже изменять положение Image; img — в какой TImage будет грузиться графика.

Выложим кнопку на форму и по клику по ней напишем:

procedure TForm1.Button1Click(Sender: TObject);
var fs:TFileStream;
begin // открываем файл-скин
FS:=TFileStream.Create(‘SkinName.skin’, fmOpenRead);
FS.ReadBuffer(sk, SizeOF(sk)); // Читаем тип (мы его сохраняли)

Label1.Caption:=sk.SkinName;

// читаем файлы с указанием какой размер файла и куда
// выводить полученную графику
ReadSkinsFile(FS, sk.sze[1], sk.crd[1], Image1);
ReadSkinsFile(FS, sk.sze[2], sk.crd[2], Image2);
ReadSkinsFile(FS, sk.sze[3], sk.crd[3], Image3);
FS.Free;
end;

Также необходимо выложить 3 TImage и 1 TLabel и не забудьте скопировать в папку с программой сам файл скина, иначе будет возникать ошибка.

Запускаем программу, нажимаем на кнопку и в Image грузится графика.

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

Конечно можно сделать обработку разнообразных ошибок но это уже другая история. Также можно сделать чтобы при наведении на кнопку она «загоралась». Это также уже вне этой статьи.

Скачать исходник [21,4 Кб]

Приведу полный код первой программы (создает скин):

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, xpman;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private

public

end;

Type
TSkins = Record
SkinName: String[255];
sze: array [1..3] of Int64;
crd: array [1..3] of TPoint;
end;

Читайте также:
Что такое деинсталляция программы в ccleaner

var
Form1: TForm1;
sk: TSkins;

implementation

Function GetFileSize(FileName: String): Longint;
var FS: TFileStream;
begin
FS := TFileStream.Create(FileName, fmOpenRead);
Result := FS.Size;
FS.Free;
end;

Procedure AddToFile(s:string; F:TFileStream);
var L:Longint;
F1:TFileStream;
begin
F1:=TFileStream.Create(S, fmOpenRead);
L:=F1.Size;

F.CopyFrom(F1, L); // копируем в F из F1 данные размером L

F1.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var fs:TFileStream;
begin
sk.SkinName:=’www.CodeLab.3dn.ru’;

Sk.sze[1] := GetFileSize(‘fone.bmp’);// записываем размеры файлов
Sk.sze[2] := GetFileSize(‘2.bmp’);
Sk.sze[3] := GetFileSize(‘3.bmp’);

Sk.crd[1] := Point(0,0);
Sk.crd[2] := Point(50,50);
Sk.crd[3] := Point(50,90);

FS:=TFileStream.Create(‘SkinName.skin’, fmCreate); // Создаем файл-скин

FS.WriteBuffer(sk, SizeOF(sk)); // записываем доп данные
AddToFile(‘fone.bmp’, FS); // пишем сами файлы
AddToFile(‘2.bmp’, FS);
AddToFile(‘3.bmp’, FS);

FS.Free;
end;

end.

Код второй программы (которая загружает скин):

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, xpman;

type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private

public

end;

Type
TSkins = Record
SkinName: String[255];
sze: array [1..3] of Int64;
crd: array [1..3] of TPoint;
end;

var
Form1: TForm1;
sk: TSkins;

implementation

Procedure ReadSkinsFile(F:TFileStream; si:int64; crd:TPoint; img:Timage);
var F1:TMemoryStream;
begin
F1:=TMemoryStream.Create;

F1.CopyFrom(F, Si);

F1.Position:=0; // возвращаем позицию в начало
Img.Picture.Bitmap.LoadFromStream(F1); // загружаем

// изменяем положение Img
img.Left:=crd.X;
img.Top:=crd.Y;

F1.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var fs:TFileStream;
begin
FS:=TFileStream.Create(‘SkinName.skin’, fmOpenRead); // открываем файл-скин
FS.ReadBuffer(sk, SizeOF(sk)); // Читаем сохраненный тип

Label1.Caption:=sk.SkinName;

// читаем файлы с указанием какой размер файла и куда
// выводить полученную графику
ReadSkinsFile(FS, sk.sze[1], sk.crd[1], Image1);
ReadSkinsFile(FS, sk.sze[2], sk.crd[2], Image2);
ReadSkinsFile(FS, sk.sze[3], sk.crd[3], Image3);

FS.Free;
end;

end.

Просмотров: 18921

Источник: delphidevelop.ru

Текстурирование или как создать скин

avatar

В данной статье я бы хотел продолжить тему теоретических основ моделирования, сегодня мы подробно рассмотрим аспект текстурирования, карт текстур, как они работают и зачем, расскажу как создать свой 1 скин самостоятельно на подобие моих.
И так, данную статью я поделю на 2 части: Теоретическая часть , правильное построение грамотного рисунка и как сделать свою модель.

Виды текстурных карт:

-RGB,Color,Diffuse или просто текстура — как раз то, что придаёт вашей модели основную красоту, задаёт тон. Это ваша основная текстура, скин видимый всем. Как грамотно построить ваш скин я расскажу немногим ниже.

-Specular (блеск) — эта карта требуется, если вы хотите выделить глянцевые и матовые части. Данная карта задаёт настройки блеска нашей модели. В качестве этой карты мы используем альфа-канал текстуры.

— Bump, Normal — Тут находятся сразу 2 карты, так как они выполняют одинаковую задачу, но с разным успехом. Bump — карта высоты, что создаёт иллюзию рельефа в зависимости от освещения, эта карта пользуется всего 1 каналом, то бишь чёрно-белая. Normal — тот же самый bump, только выполняет свою функцию более глубоко, а так же состоит из 3 каналов, видится переливами сиреневых цветов.

-Displacement — а вот это уже настоящая карта рельефа, что создаёт не иллюзию, а полноценную геометрию к вашей модели. Детализированный и качественный рельеф, что не повышает кол-во полигонов.

Читайте также:
Лучшие программы для вин хр

-Opacity — это карта прозрачности, с её помощью можно скрывать какие-то участки, делать полупрозрачными или осветлять.

Ambient Occlusion — это карта теней, которую запекают от освещения. Вы устанавливаете освещение, запекаете тени от него на эту карту. Это дополняет рельеф и объём.

Создание грамотной текстуры:

Для создания красивого, грамотного в рамках игры скина требуется соблюдать несколько условий:

— Чёткое представление будущей текстуры
— Высокое разрешение (2к)
— Высокое качество отрисовки (чёткость, но избегайте пикселизации. Так же текстура не должна быть размытой сильно)
— Использование рельефа модели для текстуры (Не взять картинку с интернета и налепить, а создавать текстуру используя весь рельеф модели. Глушители, затворы стилизовано прорисовывать и тд)
— Принцип акцента — при создании скина и самой его идеи стоит учитывать фактор восприятия, за что сперва будет «цепляться глаз». Вы можете выделить и оцентрировать главную идею скина, на ней будет акцент и основное внимание игрока будет притянуто к этой части. Можно не создавать акцентную часть, тогда скин будет восприниматься цельно и неразрывно, или же постепенно и глобально, всё зависит от вашей идеи.
— Гармоничность — сам скин должен вписываться в темматику игры или же брать контрастом с общей атмосферы, но таким подходом нужно пользоваться умеючи.
— Цветовые гаммы — следует использовать правильные цветовые сочетания, не стоит пихать море цветов в 1 скин, лучше делать из полутонов основных цветов.
— Не стоит делать текстуру слишком контрастной, «грязной», но и не стоит забывать о яркости и насыщенности цветов.
— Если сказать проще о многих вещах проще, то следует соблюдать «золотую середину» среди всего, бросаться в крайности чего-либо не следует.

Как создать свой скин в моём стиле?

Формат текстур — .vtf (Сама текстура чего-либо, по названию смотрите)
Формат содержания — .vmt (Содержание к текстуре, пути к текстурным картам, блеск)

Я лично работаю преимущественно в 2 программах для текстурирования: 3D Coat и Photoshop.
Есть 3 варианта:
1 — создавать проекцию с 3дк в фотошоп, но при том вы очень сильно теряете в качестве рисовки.
2 — рисовать прямо на развёртке вашей текстуры.
3 — рисовать на 3д модели и проектировать развёртку в фотошоп.

Тут сказать особо больше нечего, выбираете способ по душе и делаете как удобно, соблюдая мои советы и ваши новые знания. После создания развёртки сохранить и переконвертировать в .vtf.

Программы, что могут вам пригодиться: 3D Coat, Photoshop, Substance Painter, ZBrush, Corel.

Вы получили подробный гайд и пояснение как, что и чем работать, когда вам о подобном никто более не рассказывал. Вот вам толчок для движения. Более того, я тут затронул не только темматику КС, но и более сложные движки. По такой системе можно делать и для UE4 и тд.
От вас же требуется написать ваше мнение о гайде в комментариях и поставить + в репутацию.
Предлагайте свои идеи для статей.

Источник: smash-cs.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru