02-18-2015, 06:52 PM
(Сообщение последний раз редактировалось: 02-19-2015, 11:27 PM Phantom-Dev.)
Компиляция .U
В данном уроке я расскажу как правильно подключать свои папки проектов для компиляции .u пакетов. А так же мы скомпилируем простой скрипт.
Что нам понадобится:
1) Unreal Runtime так как он наиболее подходит по схожести стандартных функций.
2) Декомпилятор .u пакетов или просмотерщик классов, такие как UE Explorer или WOTgreal Package Exporter
3) Текстовый редактор, я использую Notepad++ и плагин для подсветки UnrealScript
Приступим:
1) Первым делом нам понадобится скрипт/класс который мы будем собирать, я использую клиент Lineage II Epic Tales of Aden – Infinite Odyssey: Shadow of Light part 2 и декомпилятор WOTgreal Package Exporter. Открываем декомпилятором папку систем и выбираем к примеру LineageMonster7.u и в появившемся списке классоф ищем класс clock_work_cucuru, это ездовая птица, которая у нас появилась в клиенте GOD, после того как нашли и выбрали у нас с права появится код, его мы и будем использовать.
Сам код:
Код:
class clock_work_cucuru extends LineageRidePawn;
function PostBeginPlay()
{
Super.PostBeginPlay();
SimulationCollisionObjects.length = 3;
SimulationCollisionObjects[0] = new class'SimulationCylinderCollision';
SimulationCylinderCollision( SimulationCollisionObjects[0] ).BoneIndexA = 39;
SimulationCylinderCollision( SimulationCollisionObjects[0] ).BoneIndexB = 41;
SimulationCylinderCollision( SimulationCollisionObjects[0] ).Radius = 3.f;
SimulationCylinderCollision( SimulationCollisionObjects[0] ).SphereA = false;
SimulationCylinderCollision( SimulationCollisionObjects[0] ).SphereB = false;
SimulationCollisionObjects[1] = new class'SimulationCylinderCollision';
SimulationCylinderCollision( SimulationCollisionObjects[1] ).BoneIndexA = 67;
SimulationCylinderCollision( SimulationCollisionObjects[1] ).BoneIndexB = 26;
SimulationCylinderCollision( SimulationCollisionObjects[1] ).Radius = 10.f;
SimulationCylinderCollision( SimulationCollisionObjects[1] ).SphereA = false;
SimulationCylinderCollision( SimulationCollisionObjects[1] ).SphereB = false;
SimulationCollisionObjects[2] = new class'SimulationCylinderCollision';
SimulationCylinderCollision( SimulationCollisionObjects[2] ).BoneIndexA = 67;
SimulationCylinderCollision( SimulationCollisionObjects[2] ).BoneIndexB = 88;
SimulationCylinderCollision( SimulationCollisionObjects[2] ).Radius = 10.f;
SimulationCylinderCollision( SimulationCollisionObjects[2] ).SphereA = false;
SimulationCylinderCollision( SimulationCollisionObjects[2] ).SphereB = false;
}
defaultproperties
{
GroundMaxSpeed=170.00
GroundMinSpeed=26.00
bSpineRotation=True
CollisionRadius=20.00
CollisionHeight=40.00
}
2) Что нам нужно что б скомпилировать наш пакет с классом который мы выбрали для компиляции:
Создать папку в главном каталоге рунтайма с названием будущего пакета .u который мы хотим получить. И в данной папке создать папку Classes.
Classes - папка в которой будут лежать наши исходные классы для компиляции в .uc формате.
Теперь нам необходимо создать любым текстовым редактором класс clock_work_cucuru с форматом .uc и вставить в него код который мы выбрали в нашем декомпиляторе. Сохраняем и закрываем.
3) После того как мы создали папку нашего проекта с нужным классом нам необходимо подключить её для компиляции в нашем редакторе, для этого нам необходимо найти в папке system, файл UE2Runtime.ini и открыть его.
В данном файле мы будем подключать наш проект для компиляции, для этого нам необходимо найти секцию [Editor.EditorEngine] и ниже в конце секции будет параметры EditPackages= , они и отвечают за подключение.
После самого нижнего EditPackages= в нашей секции добавляем строку
EditPackages=ИмяНашейПапкиПроекта
Но так как наш класс использует класс LineageRidePawn и многие другие класс используют LineagePawn, нам необходимо подключить пакет LineageWarrior.u, для этого берём из папки систем нашего клиента наш пакет и декриптером l2decrypt.exe прогоняем, полученный файл переименовуем в оригинальное название и закидываем в папку system нашего редактора. И в нашем конфиге выше
EditPackages=ИмяНашейПапкиПроекта
Добавляем строку EditPackages=LineageWarrior, именно выше так как наши скрипты используют классы и методы из пакета LineageWarrior а компилятор ла2 работает только последовательно!
Так же вы можете подключить наши скрипты в редактор, для этого ищем в этом же конфиге секцию [UnrealEd.UnrealEdEngine] и так же после нижнего EditPackages= добавляем наши выше добавленные строки. Всё теперь мы можем сохранить документ и закрыть.
4) Теперь мы можем приступать к компиляции, делается это довольно просто. Что б не издеватся над собой и каждый раз не прописывать код пути к нашей папке систем, мы сразу в системе создаём бат(.bat) файл с любым названием и пишем в него cmd. После чего сохраняем и закрываем. Теперь запустите его и напишите make ucc и компиляция нашего .u пакета начнётся. Если вы хотите упростить компиляцию, можете в нашем бат файле сразу прописать make ucc и просто запускать его!
Так же перед перекомпиляцией не забываем удалять наш скомпилированный .u пакет из папки system.
Гайд писал на скорую руку.
Спасибо за внимание, пользуйтесь. От себя скажу, что всё это есть в интернете стоило всего лишь почитать литературу по компиляции .u пакетов для любой игры на основе унреал движка!
Так же же мой первый видео урок с использованием аудио описания, не ругаться за дикцию, проблемы из-за того что терялся что сказать)
Видео Урок:
П.С. Проверьте видео урок отображается или нет!? А то у меня не отображается!