главная_тема всё_о_чемпионате правила_чемпионата зарегистрированные_кланы карты_чемпионата почитать_про_UT необходимое_для_участия высказаться_по_поводу
Лучшая игра всех времён и народов

Взято с uniteam.narod.ru

Как создать свой скин в Unreal Tournament?

Подобно всякой отличной игре, UT предоставляет игроку возможность выбора скина. Каждому играющему в UT известно, что скинов очень много. Но рано или поздно перед игроком может встать задача создания своего собственного оригинального скина, который отличал бы его от других. В этой статье я подробно объясняю, как это сделать. Изготовление скина - штука непростая, поэтому, в случае нахождения в тексте статьи чего-нибудь непонятного, не ленитесь изучить стандартные скины к UT - то улучшит понимание.

Теория

Прежде всего надо понять, что такое скин, и чем он отличается от модели. Модель - трёхмерный объект, состоящий из полигонов. Базовые модели для UT - Male Commando, Male Soldier, Female Commando, Female Soldier, Boss. Скин же - то, что на модели нарисовано. Так как модели разные, то и скины для каждой модели разные. Для одной модели может быть несколько скинов. Например, для Male Soldier это Marine, Metal Guard, Raw Steel, Soldier, War Machine. У каждого скина может быть по нескольку лиц. Например, для Male Soldier/Soldier это Brock, Harlin, Johnson, Rankin. Также у большинства скинов предусмотрена возможность смены цветов.

Теперь о представлении скинов в UT на файловом уровне. Вся информация о конкретном скине в UT хранится в двух файлах - с расширением int (должен лежать в папке System) и с расширением utx (должен лежать в папке Textures). В этом пакете из двух файлов может храниться информация и о нескольких разных скинах для одной модели. Таким образом, задача создания собственного скина сводится к задаче создания 2 файлов.

Теперь об именах для файлов. Помимо отличий в расширении, имена должны совпадать. Перед собственно названием должен стоять префикс, обозначающий модель. Вот список префиксов:

Например, файлы скинов для Male Soldier носят названия SoldierSkins.int и SoldierSkins.utx.

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

Файл *.utx

Здесь находятся текстуры для скина. Попросту говоря, это развёртка скина, разрезанная на несколько частей. Этих частей вообще 5 (в скобках приведён необходимый размер в пикселях):

Порядок имеет значение. Для создания скина нужно минимум 6 текстур. Почему не пять? Просто 4-ую текстуру придётся продублировать, так как она несёт информацию о лице скина.

Создавать с нуля текстуры к скину практически невозможно, так как текстура накладывается на модель по понятному только лишь разработчикам UT принципу. Чтобы в этом убедиться, достаточно просто открыть в UEditor какой-нибудь файл с текстурами к скину. Отсюда вывод - существенно проще и быстрее выдрать уже созданные текстуры к скинам и изменить их в любом графическом редакторе. Экспортируются текстуры с помощью команды File/Export браузера текстур UEditor'а. Импорт осуществляется командой File/Import. Текстура экспортируется в файл формата pcx с 256 цветами и импортируется из того же формата. Ввиду глючности UEditor рекомендую осуществлять экспорт и импорт из папки Textures.

Как называть текстуры? Название текстуры должно состоять из 4 букв и номера текстуры. 4 буквы - это внутреннее название скина. Например, если внутреннее название скина - ovld, то названиями текстур для 1, 2, 3 частей будут ovld1, ovld2, ovld3 соответственно. Первая текстура для 4 части будет носить имя ovld4.

Также необходимо выбрать внутреннее название лица. Его длина не может превышать 8 символов. Если внутреннее название лица over, то вторая текстура для 4 части будет называться ovld4over, а текстура для 5 части - ovld5over. Нужно отличать внутренние названия от внешних. Внутренние используются для именования текстур и прописываются в конфиге. Внешние - это те, которые видны непосредственно в Player Setup.

Файл *.int

Каждая строка в файле *.int начинается с "[Public]" или "Object=" и не содержит пробелов и символов перевода строки. Те пробелы и символы перевода строки, которые Вы возможно видите на экране, читая эту статью, вызваны тем, что эти строки просто не помещаются в окне браузера!

В этом файле хранится текстовая информация, связывающая между собой текстуры файла *.utx. Спешу вас обрадовать, набивать файл придётся вручную в Notepad'е. К счастью, это довольно просто. Разберём на примере, как это сделать. Предполагается, что скин разрабатывается для модели Soldier, внешнее название скина - OverLord, внутреннее название скина - ovld, внутреннее название лица - over, внешнее название лица - Lord. Файлы называются соответственно SoldierOL.int и SoldierOL.utx. В этом случае файл SoldierOL.int выглядит так:

[Public]
Object=(Name=SoldierOL.ovld1,Class=Texture,Description="OverLord")
Object=(Name=SoldierOL.ovld2,Class=Texture)
Object=(Name=SoldierOL.ovld3,Class=Texture)
Object=(Name=SoldierOL.ovld4,Class=Texture)
Object=(Name=SoldierOL.ovld4over,Class=Texture,Description="Lord")
Object=(Name=SoldierOL.ovld5over,Class=Texture)

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

Как внести возможность смены цвета?

Очень просто! Для начала надо определиться, какие текстуры будут меняться при смене цвета команды. Обычно цвет меняют 1-ая и 2-ая текстуры. Необходимо учесть, что наличие возможности изменения всех цветов (красного, синего, жёлтого и зелёного) приведёт к заметному увеличению размера файла *.utx. А он и так не сильно мал. Поэтому я рекомендую остановиться на красном и синем цветах, как самых распространённых.

Теперь необходимо создать текстуры с изменённым цветом. Можно воспользоваться уже готовыми или сменить цвет своей базовой текстуры в графическом редакторе. Отличия от названия "бесцветной" текстуры заключаются в добавлении к нему 3 символов:

Пусть созданы текстуры красного и синего цветов для 1-ой и 2-ой частей. Продолжая предыдущий пример, имена этих текстур будут ovld1T_0, ovld1T_1, ovld2T_0, ovld2T_1.

Внесём соответствующие изменения в int-файл. Теперь он выглядит так:

[Public]
Object=(Name=SoldierOL.ovld1,Class=Texture,Description="OverLord")
Object=(Name=SoldierOL.ovld2,Class=Texture)
Object=(Name=SoldierOL.ovld3,Class=Texture)
Object=(Name=SoldierOL.ovld4,Class=Texture)
Object=(Name=SoldierOL.ovld4over,Class=Texture,Description="Lord")
Object=(Name=SoldierOL.ovld5over,Class=Texture)
Object=(Name=SoldierOL.ovld1T_0,Class=Texture)
Object=(Name=SoldierOL.ovld1T_1,Class=Texture)
Object=(Name=SoldierOL.ovld2T_0,Class=Texture)
Object=(Name=SoldierOL.ovld2T_1,Class=Texture)

Как добавить возможность смены лица?

Добавить в utx-файл по паре текстур на каждое новое лицо. Например, внутреннее название нового лица revo, а внешнее - Drol. Тогда названия новых текстур будут ovld4revo и ovld5revo. Int-файл выглядит теперь так:

[Public]
Object=(Name=SoldierOL.ovld1,Class=Texture,Description="OverLord")
Object=(Name=SoldierOL.ovld2,Class=Texture)
Object=(Name=SoldierOL.ovld3,Class=Texture)
Object=(Name=SoldierOL.ovld4,Class=Texture)
Object=(Name=SoldierOL.ovld4over,Class=Texture,Description="Lord")
Object=(Name=SoldierOL.ovld4revo,Class=Texture,Description="Drol")
Object=(Name=SoldierOL.ovld5over,Class=Texture)
Object=(Name=SoldierOL.ovld5revo,Class=Texture)
Object=(Name=SoldierOL.ovld1T_0,Class=Texture)
Object=(Name=SoldierOL.ovld1T_1,Class=Texture)
Object=(Name=SoldierOL.ovld2T_0,Class=Texture)
Object=(Name=SoldierOL.ovld2T_1,Class=Texture)

Как хранить в одном пакете информацию о нескольких скинах для одной модели?

Процесс создания нескольких скинов в одном пакете ничем не отличается от процесса создания одного скина. Просто теперь в файле *.utx хранятся текстуры для всех скинов пакета, а в файл *.inf информация о новом скине дописывается в конец. Например, вы хотите добавить к уже созданному скину OverLord ещё один. Пусть его внутреннее название lamo, внешнее - SuperLamer, внутренние названия лиц super и repus, внешние - Lamer и Remal. Скин даёт возможность изменения цвета на красный и синий. Соответствующие текстуры добавляются в файл SoldierOL.utx, а файл SoldierOL.int теперь такой:

[Public]
Object=(Name=SoldierOL.ovld1,Class=Texture,Description="OverLord")
Object=(Name=SoldierOL.ovld2,Class=Texture)
Object=(Name=SoldierOL.ovld3,Class=Texture)
Object=(Name=SoldierOL.ovld4,Class=Texture)
Object=(Name=SoldierOL.ovld4over,Class=Texture,Description="Lord")
Object=(Name=SoldierOL.ovld4revo,Class=Texture,Description="Drol")
Object=(Name=SoldierOL.ovld5over,Class=Texture)
Object=(Name=SoldierOL.ovld5revo,Class=Texture)
Object=(Name=SoldierOL.ovld1T_0,Class=Texture)
Object=(Name=SoldierOL.ovld1T_1,Class=Texture)
Object=(Name=SoldierOL.ovld2T_0,Class=Texture)
Object=(Name=SoldierOL.ovld2T_1,Class=Texture)
Object=(Name=SoldierOL.lamo1,Class=Texture,Description="SuperLamer")
Object=(Name=SoldierOL.lamo2,Class=Texture)
Object=(Name=SoldierOL.lamo3,Class=Texture)
Object=(Name=SoldierOL.lamo4,Class=Texture)
Object=(Name=SoldierOL.lamo4super,Class=Texture,Description="Lamer")
Object=(Name=SoldierOL.lamo4repus,Class=Texture,Description="Remal")
Object=(Name=SoldierOL.lamo5super,Class=Texture)
Object=(Name=SoldierOL.lamo5repus,Class=Texture)
Object=(Name=SoldierOL.lamo1T_0,Class=Texture)
Object=(Name=SoldierOL.lamo1T_1,Class=Texture)
Object=(Name=SoldierOL.lamo2T_0,Class=Texture)
Object=(Name=SoldierOL.lamo2T_1,Class=Texture)

Об игре по сети с нестандартным скином

Чтобы ваш скин нормально смотрелся на компьютерах всех остальных игроков, а не представлялся им зелёной фигнёй, необходимо, чтобы нужные 2 файла лежали не только у вас на компьютере, но и на компьютере-сервере. Там их надо прописать в файл UnrealTournament.ini, а именно найти в этом файле (ближе к началу) строку [Engine.GameEngine]. Далее после последней строки ServerPackages="что-то там" написать новую строку ServerPackages=XXX, где XXX - имя ваших файлов без расширения.

Теперь вкладка [Engine.GameEngine] может представлять собой что-то типа

[Engine.GameEngine]
...
ServerPackages=SoldierSkins
ServerPackages=CommandoSkins
ServerPackages=FCommandoSkins
ServerPackages=SGirlSkins
ServerPackages=BossSkins
ServerPackages=Botpack
ServerPackages=MultiMesh
ServerPackages=Relics
ServerPackages=EpicCustomModels
ServerPackages=SoldierOL

SoldierOL - название ваших файлов.

Заключение

А ведь создавать скины вручную не так-то просто, да? И тем с большей гордостью вы сможете сказать товарищу, уставившемуся на ваш новый скин: "Это я его сделал!"

Персональная шкура клана [FL]


P.S. от [FL]_Igor: Персональная шкура с символикой нашего клана. Сделалось за один вечер, в принципе несложно.

< < < НАЗАД    НАВЕРХ