Далее описывается пример создания 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