Далее
описывается пример создания u-файла "с нуля", который будет содержать
набор картинок, заменяющий стандартную тему главного меню Unreal Tournament ’99 с помощью мутатора osxBackgroundChanger авторства Usaar,
содержащемся в патче OldSkool. Как сделать набор картинок
здесь не рассматривается, даётся лишь общая информация.
1. В папке с UT создаём папку с произвольным именем, например, osxMyTheme, префикс «osx» обязателен!
2. Внутри создаём папки Classes и Textures
3. Внутрь папки Textures кладём 12 картинок, вырезанных из одной большой картинки размером 1024x768 пикселей по такой схеме (см.рис.1). Каждая картинка должна иметь 256 цветов и размер 256х256 пикселей и имя, написанное внутри каждого фрагмента, т.е. 11, 12 и т.д.
Рис. 1
4. Внутрь папки Classes кладём
(или создаём с нуля) файл скрипта с расширением .uc (в нашем примере - файл
osxRYGSE.uc, который я создавал для своего мода Redeem your galaxy: Second
edition. Текст скрипта приведён ниже:
//===================================================================
// Background Build File for Background
Textures
// is a plug-in template for the osxBackground Changer
// This material was originally written by usaar.
// The osxChanger class is in the MOD.
//============================================================
class osxRYGSE expands osxChanger;
#exec TEXTURE IMPORT NAME=myBG-11
FILE=Textures\11.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-21 FILE=Textures\21.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-31 FILE=Textures\31.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-41 FILE=Textures\41.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-12 FILE=Textures\12.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-22 FILE=Textures\22.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-32 FILE=Textures\32.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-42 FILE=Textures\42.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-13 FILE=Textures\13.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-23 FILE=Textures\23.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-33 FILE=Textures\33.bmp GROUP=Menu MIPS=OFF
#exec TEXTURE IMPORT NAME=myBG-43 FILE=Textures\43.bmp GROUP=Menu MIPS=OFF
defaultproperties
{
x43=Texture'osxrygse.Menu.myBG-43'
x33=Texture'osxrygse.Menu.myBG-33'
x23=Texture'osxrygse.Menu.myBG-23'
x13=Texture'osxrygse.Menu.myBG-13'
x42=Texture'osxrygse.Menu.myBG-42'
x32=Texture'osxrygse.Menu.myBG-32'
x22=Texture'osxrygse.Menu.myBG-22'
x12=Texture'osxrygse.Menu.myBG-12'
x41=Texture'osxrygse.Menu.myBG-41'
x31=Texture'osxrygse.Menu.myBG-31'
x21=Texture'osxrygse.Menu.myBG-21'
x11=Texture'osxrygse.Menu.myBG-11'
}
Что мы видим?
Комментарии определяются двойным прямым слэшем //
Далее определяется класс создаваемого файла. Поскольку у нас это мутатор, то вслед за произвольным именем класса указывается материнский класс, - osxChanger. Он описывается файлом osxBackgroundChanger.u
Команда #exec texture import будет импортировать картинки из папки Textures с именем xx.bmp (можно использовать и pcx). Обратите внимание, что при импорте принудительно отключается mip-mapping!
5. Чтобы во время последующей компиляции всё было правильно, оба класса (существующий, а потом создаваемый!) должны быть определены в файле unrealtournament.ini.
Далее приводится фрагмент этого файла (раздел [Editor.EditorEngine]) с уже добавленными нужными строками (выделены жирным шрифтом):
{cut}
C_ZoneWire=(R=0,G=0,B=0,A=0)
EditPackages=Core
EditPackages=Engine
EditPackages=Editor
EditPackages=UWindow
EditPackages=Fire
EditPackages=IpDrv
EditPackages=UWeb
EditPackages=UBrowser
EditPackages=UnrealShare
EditPackages=UnrealI
EditPackages=UMenu
EditPackages=IpServer
EditPackages=Botpack
EditPackages=UTServerAdmin
EditPackages=UTMenu
EditPackages=UTBrowser
EditPackages=osxBackgroundChanger
EditPackages=osxRYGSE
[UMenu.UnrealConsole]
{cut}
6. Затем, находясь в папке \System, выполняем в командной
строке Windows (но
лучше пользоваться файловым менеджером с поддержкой командной строки -
нагляднее):
ucc make
Запускается Unreal Code Compiler и последовательно проверяет существующие в директории \System u-файлы, при этом имея в виду найденные им ранее файлы с расширением uc. Т.е. он по порядку, указанному в файле unrealtournament.ini, пропустит существующие u-файлы, а дойдя до строки,
EditPackages=osxRYGSE
начнёт компиляцию.
Если всё завершится удачно, вы увидите такую картинку (рис.2), а в папке \System появится файл osxRYGSE.u.
7. Теперь нужно создать в
директории \System
соответствующий новому u-файлу
текстовый файл в кодировке win-1251
с расширением int. В
нашем примере это будет файл osxRYGSE.int такого содержания:
[public]
Object=(Name=osxRYGSE.osxRYGSE,Class=Class,MetaClass=osxBackgroundChanger.osxChanger,
Description="Logo of 'RYG: SE'")
Рис. 2
Примечание (Description) не должно быть слишком длинным (лучше ограничится 17-20 символами, далее увидите почему).
8. Запускаем UT с установленным патчем OldSkool, выбираем в настройках OldSkool Configuration -> Options -> Background -> Logo of 'RYG: SE'. Фон темы главного меню UT сразу изменится (рис.3).
Имейте в виду, что при разрешениях экрана монитора, отличных от 1024x768, весьма вероятно появление на вашей картинке в меню вертикальных и горизонтальных светлых линий в местах стыка фрагментов. Это издержки движка, и как с ними бороться я не знаю!
Рис. 3