Пошаговое руководство по созданию мода на замену модели для Outlast.
Введение
Для создания пользовательского мода персонажа требуется много движущихся частей.. Общие шаги::
- Приобретите желаемую модель персонажа.
- Эта модель не должна обладать какой-либо прозрачностью.. Любые прозрачные части будут выглядеть в игре как черная текстура.. Удалите все такие части, чтобы модель можно было использовать..
- Извлеките содержимое OLGame.upk..
- Find a skeleton of the character model of the person you wish to replace.\
- Настройте свою собственную модель для работы с целевым скелетом.. Каждая вершина пользовательской модели должна быть взвешена по отношению к скелету., или модель не будет работать.
- Создайте собственный пакет материалов, замаскированный под настоящие материалы, хранящиеся в Outlast..
- Создавайте дочерние материалы в своем собственном пакете, расширяя эти замаскированные материалы.. Эти дочерние материалы используют текстуры вашей модели..
- Добавить о 6 материалы перед материалами, которые фактически использует ваша модель.. Это сделано для того, чтобы материал, который иногда заменяет игру, не делал вашу модель странной..
- Импортируйте модель в свой upk., рядом с вашими материалами. Настройка материалов для вашей модели.
- Используйте собственный сценарий Unreal, чтобы заменить целевую модель на вашу.. Этот нереальный скрипт будет продолжением OLGame..
- Измените конфигурацию, чтобы использовать свой собственный скрипт вместо OLGame..
Я буду портировать эту свежую кастомную модель в Outlast.:
Задача 1: Скомпилируйте сценарии Outlast по умолчанию..
В этом разделе рассматривается настройка возможности компиляции скрипта замены модели для Outlast.. Вам потребуются два одинаковых предмета.:
- Настоящий редактор UDK 2015 установка.
- Модифицированный редактор UDK 2015 установка для сборки скриптов.
Получение настоящего редактора UDK 2015 пример очень простой. Идти здесь, скачать, и установи февральский 2015 Unreal Development Kit где-то. Если вас спросят, установка preforce не требуется.
Теперь посетите Гитхаб. Перейти к коду -> Скачать ZIP. Поместите все содержимое Outlast-Level-Editor-main в любое место по вашему выбору. – это местоположение модифицированного экземпляра. Теперь скопируйте папку Binaries из вашего реального экземпляра UDK., и поместите его в папку модифицированного экземпляра. Когда закончите, ваш модифицированный экземпляр должен выглядеть так:
Вы можете скомпилировать сценарии по умолчанию прямо сейчас., но некоторые из них полностью сломаны. Это вызовет проблемы с компиляцией. Далее нам нужно удалить скрипты, которые мы не будем использовать., и добавим тот, который мы будем использовать.
- В модифицированном экземпляре, зайдите в UDKGame/Config, и откройте UDKEngine.ini.
- Перейдите к строке, содержащей [UnrealEd.UnrealEdEngine].
- Вы увидите список “ModEditPackages=[Имя пакета]” чуть выше этой линии. Удалите их.
- Добавьте свой собственный ModEditPackage., назвав его в честь того, как вы хотите, чтобы мод назывался. Я буду называть своего CSide.
- Когда закончите, эта часть текстового файла будет выглядеть следующим образом:
Теперь введите Разработка/Src., и создайте новую папку с именем ModEditPackage.. В моем случае, папка называется CSide. Затем, войдите в эту папку и создайте папку под названием Classes. Классы — это то место, где мы будем размещать наш скрипт..
Теперь введите «Двоичные файлы» и запустите UnrealFrontend.exe.. Сделать скрипт -> Компилировать сценарии. Он должен скомпилироваться без проблем.
Если вы получите сообщение “Успех – 0 ошибка(с), 0 предупреждение(с)” как я, значит вы завершили этот раздел.
Задача 2: Запустите игру с помощью специального игрового скрипта..
В этом разделе рассказывается, как загрузить игру с помощью специального класса сценария.. По сути, мы собираемся сообщить игре, чтобы она использовала наш собственный класс сценария вместо класса OLGame по умолчанию.. Это очень важно для любой настройки в Outlast..
Для этого раздела, наш собственный класс скриптов будет делать только то, что делает игра по умолчанию.. Однако, чтобы подтвердить, что игра использует собственный класс скрипта, мы собираемся сделать так, чтобы сначала не удалось найти собственный класс сценария.
Начните с перехода туда, где вы установили Outlast.. Зайдите в OLGame/Config.. Здесь вам нужно изменить два файла..
Вспомните имя ModEditPackage, которое вы использовали ранее., и что я использую CSide в качестве имени ModEditPackage.. Я буду ссылаться на имя ModEditPackage как [МООС]. Откройте DefaultGame.ini.. Спуститься к [Engine.GameInfo], и замените содержимое следующим:
–
По умолчаниюИгра=[МООС].CustomGame
DefaultServerGame=[МООС].CustomGame
PlayerControllerClassName=OLGame.OLPlayerController
По умолчаниюТипИгры=”[МООС].CustomGame”
–
Для моего имени CSide, это выглядит так:
Теперь откройте OLGame.ini.. Прямо вверху находится [Engine.GameInfo]. Как и раньше, редактировать игру по умолчанию, DefaultServerGame, и Тип игры по умолчанию, за исключением того, что DefaultGameType на этот раз не использует кавычки.
Для моего имени CSide, это выглядит так:
Запустить игру. Если это привело к неудаче, которую мы ищем, вы должны достичь главного меню и увидеть видео в фоновом режиме., но настоящего меню не будет вообще. Это будет выглядеть так:
Теперь нам нужно создать класс сценария CustomGame.. Получите копию одного из более чем здесь.
CustomGame.uc — исходный файл скрипта.. Он ничего не будет делать, пока не скомпилируется. Поэтому, возьмите CustomGame.uc и поместите его в Development/Src/[МООС]/Классы обратно в ваш модифицированный экземпляр UDK.. Поскольку мое имя ModEditPackage — CSide, Я бы поместил CustomGame.uc в Development/Src/CSide/Classes..
Теперь откройте файл uc и отредактируйте строку 2, так, что написано Config([МООС]). В моем случае, мое имя ModEditPackage — CSide, так что в этой строке будет написано Config(CSide).
Вернитесь в UnrealFrontend и скомпилируйте скрипты..
Вы должны увидеть сообщение о том, что компиляция прошла успешно.. Он также должен сообщить вам, что он где-то сохранил пакет..
Этот пакет представляет собой наш скомпилированный скрипт., можно использовать Outlast. Вы можете найти его по адресу UDKGame/Script., называется [МООС].ты. В моем случае, это называется CSide.u.
Вернитесь в папку игры Outlast.. Введите OLGame/CookedPCConsole.. Копировать [МООС].ты в эту папку, вот так:
Запустите игру еще раз. Если главное меню появляется без проблем, вы успешно заполнили этот раздел.
Задача 3: Получите скелет персонажа из игры..
Теперь, когда у нас есть работающий собственный игровой класс, мы можем приступить к работе над внедрением модели в игру. Есть несколько вещей, которые вам нужно продолжить.
- Получать UModel/UE Viewer
- Получать Блендер
- Получите плагин для импорта файлов psk в Blender., и установи плагин. Например, это хороший вариант
Чтобы извлечь модели персонажей игры из Outlast, запустить UModel/UE Viewer. Скажите ему, что файлы игры находятся в [Папка с игрой Outlast]/OLGame/CookedPCConsole. Попросите его извлечь сетки и анимацию из OLGame.upk. – это все, что нам нужно, чтобы продолжить. Попросите его извлечь содержимое в любое место, которое вам нравится..
Войдите в папку с извлеченными элементами. Обратите внимание, что Outlast известно, по сути, четыре скелета, представляющих интерес.:
- Скелет героя. Это скелет, используемый игроком.
- Средний скелет. Это скелет, используемый почти всеми NPC в игре., такие как Трагер и Фрэнк.
- Большой скелет. Это скелет, который использовал Крис., Жених, и Уолрайдер.
- Скелет Билли. Это уникальный, модифицированная версия Среднего скелета, используемая только Билли. Используйте этот вариант только в том случае, если у вас есть некоторый опыт в настройке моделей персонажей..
Экземпляр среднего скелета находится в 02_Priest/Pawn/Priest.-01.пск.
Экземпляр большого скелета находится в 02_Soldier/Pawn/Soldier.-03.пск.
Убедитесь, что вы выбрали правильный скелет.. Модель, прикрепленная к Большому скелету, будет принимать Т-позу, если вы попытаетесь использовать ее на персонаже Среднего скелета..
Для этого руководства, В конечном итоге я заменю Криса Уокера девушкой, упомянутой в начале руководства., поэтому я буду использовать Большой скелет.
Как только вы решили, открыть блендер. Убедитесь, что плагин импорта psk установлен.. Затем выполните Файл -> Импорт -> Скелетная сетка (.пск). Импортируйте psk, содержащий скелет, который вы ищете.. Как я хочу Большой скелет, Я импортирую 02_Soldier/Pawn/Soldier-03.пск.
Затем вы должны увидеть что-то вроде этого:
Модель будет испорчена, но это нормально – все, что нам действительно нужно, это скелет. Сохраните это где-нибудь как файл blend. – нам понадобится скелет и модель в качестве образца для риггинга позже..
Теперь нам нужно починить скелет.. Нажмите стрелку раскрывающегося списка слева от скелета. (Солдат-03.оо в моем случае), а затем щелкните стрелку раскрывающегося списка рядом с Soldier-3.ad.. Вы должны увидеть там NPCLarge-Root или NPCMedium-Root., так:
Теперь вы должны скопировать туда имя., перезаписать имя в локации Солдата-03.АО и Солдат-03.объявление, так:
Затем вы должны войти в режим редактирования., и нажмите на элемент, который изначально был NPCLarge-Root, и нажмите клавишу Удалить. Блендер спросит, хотите ли вы удалить кости или растворить кости.. Выберите просто удалить кости.. Это приведет к перемещению NPCLarge вверх., который выглядит так:
Вот и все для этого раздела. Если вы сейчас держите в руках модель и скелет, извлеченные из игры, можно увидеть это в блендере, и скелет был правильно переименован в NPCLarge-Root или NPCMedium-Root., тогда вы успешно завершили этот раздел.
Задача 4: Замените модель персонажа нетекстурированным кубом..
Для этой следующей задачи, мы впервые в руководстве собираемся заменить модель персонажа. Мы заменим модель персонажа на максимально простую модель. – один нетекстурированный куб.
Начните с открытия Blender. Должен появиться один куб. Если кто-то не, заниматься моделированием -> Добавлять -> Куб.
Вернитесь в проект с извлеченной игровой моделью.. В объектном режиме, нажмите NPCLarge-Root. Точки и линии на модели должны загореться оранжевым цветом.. Копировать, а потом вернёмся к проекту с кубом. Нажмите где-нибудь на сцене, кроме куба, чтобы отменить его выделение., заставив его потерять оранжевый контур, а затем вставить. Скелет должен появиться немного выше куба..
Сейчас, познакомьтесь с тем, как Blender обрабатывает трансформацию.
- G переместит объект.
- R повернет объект.
- S будет масштабировать объект.
- Нажатие X, Да, или Z заблокирует преобразование по оси после нажатия G., Р, или С.
Нажмите на куб еще раз., и попытайтесь трансформировать его так, чтобы он оказался возле груди скелета. Однако, ни при каких обстоятельствах вы не должны
всегдатрансформировать скелет. Если ты это сделаешь, анимация будет выглядеть странно, и ты этого точно не хочешь. В конце концов, у вас должно получиться что-то вроде этого:
Теперь пришло время прикрепить куб к скелету.. Так как все, что мы хотим, это ввести этот кубик в игру., это будет очень быстрая и простая процедура.
- В объектном режиме, нажмите на куб, а затем нажмите NPCLarge-Root.
- Сделайте Ctrl+P. Блендер спросит вас, как вы хотите объединить куб со скелетом..
- Выбирать “С пустыми группами”.
- Куб теперь связан со скелетом.. Однако, если бы ты попробовал использовать его сейчас, Редактор UDK выйдет из строя, поскольку хотя бы одна вершина не имеет веса.
- Вам нужно присвоить все вершины куба одной из костей.. Щелкните раскрывающийся список NPCLarge-Root., и снова нажмите на куб.
- Нажмите на зеленый треугольник в правом боковом меню, чтобы открыть список групп вершин..
- Переключиться в режим редактирования. Когда куб все еще выбран, нажмите A, чтобы выбрать все вершины куба.
- Выберите группу вершин, которой нужно назначить вершины.. В этом примере, Я назначу их всех NPCLarge-Neck..
- Убедитесь, что для параметра Вес установлено значение 1.000, а затем нажмите «Назначить».
В этот момент, экран должен выглядеть так:
Теперь мы должны подтвердить, что все вершины назначены.. Чтобы сделать это, щелкните куб, чтобы отменить выделение вершин, а затем нажмите «Выбрать», пока группа вершин NPCLarge-Neck все еще выбрана.. Если весь куб загорается оранжевым цветом, тогда вершины назначаются.
Пришло время экспортировать куб в формат fbx..
- Выберите куб и NPCLarge-Root., поэтому и куб, и скелет светятся.
- Сделать файл -> Экспорт -> ФБХ.
- Выберите ограничение выбранными объектами.. Откройте «Геометрию» и измените «Сглаживание» на «Грань».. Затем откройте Armature и снимите флажок «Добавить листовые кости»..
- Выберите подходящее имя для этой экспортированной модели.. Это будет та модель, которую вы в конечном итоге захотите импортировать в Outlast., так что назовите его и сохраните как готовый продукт. В моем случае, Я назову свою модель Horizon.fbx..
Создав fbx, теперь его необходимо упаковать в файл upk.
- Откройте настоящий редактор UDK, установленный еще в первом разделе..
- Нажмите «Новый» в левом нижнем углу..
- В этом пакете будут храниться ваши пользовательские модели.. Выберите подходящее имя в поле «Пакет».; Я называю свои CSide_Models. Выберите любое имя в поле Имя., это не будет иметь значения через несколько минут.
- Сохраните пакет в месте, рекомендованном UDK., который должен быть в UDKGame/Content.
- Прокрутите вверх и нажмите на свой пакет.. Щелкните правой кнопкой мыши на панели, содержащей элемент, который редактор заставил вас создать., и выберите Импорт. Выберите импорт модели fbx, которую вы только что экспортировали..
- Тип импорта должен иметь тип «Скелетная сетка».. Если это статическая сетка, значит вы не выбрали и Куб и Скелет при создании fbx.
- Установите группировку на “Скелетные сетки”. Остальные настройки оставьте в покое, и нажмите ОК.
- Он будет жаловаться на то, что FBX устарел.. Игнорировать это предупреждение.
Теперь вы увидите куб, как SkeletalMesh, успешно упакован в upk-файл. Сохранить немедленно. Моя модель называется Horizon.
Теперь снова нажмите на свой пакет в левом списке и нажмите на предмет, который вы были вынуждены сделать ранее.. Удалите его, щелкнув по нему правой кнопкой мыши и нажав «Удалить».. Затем снова сохраните.
Теперь, когда у нас есть upk, содержащий наш куб, мы должны изменить сценарий, который был раньше, сообщаю ему, где находится куб.
- Щелкните правой кнопкой мыши пакет в редакторе UDK и выберите «Исследовать».. Откроется окно с выбранным пакетом..
- Скопируйте upk в соответствующее местоположение в [Расположение компилятора скриптов]/UDKИгра/Контент
- Откройте CustomGame.uc.. Я рекомендую использовать для этого код Visual Studio., установите C++ при просмотре файла.
- Найдите персонажа, которого хотите заменить.. Поскольку я хочу заменить Криса Уокера, я спущусь на дно, где “//Крис Уокер” является.
- Удалите /* и */ символы, позволяющие заменить модель. Верните символы, чтобы отключить. Например, чтобы обеспечить замену Криса Уокера:
- Подойдите к линии, на которой есть “//meshCustom1 = SkeletalMesh’UPKPackage.SkeletalMeshes.mesh’;”.
- Измените эту строку на meshCustom1 = SkeletalMesh'.[Модель_Пакет].Скелетные сетки.[ModelName]';. Например, поскольку мой Model_Package — CSide_Models, и имя моей модели — горизонт, тогда я бы поставил:
- Вернуться в UnrealFrontend. Скомпилируйте сценарии, и поместите ваш upk и вновь скомпилированный файл u в OLGame/CookedPCConsole., так:
В этот момент, мы завершили замену Криса Уокера на куба. Запустить игру, и загрузите главу «Возврат в административный блок». Вместо Криса Уокера, вы должны увидеть куб, плавающий вокруг. Если ты это сделаешь, вы успешно завершили этот раздел.
Задача 5: Создайте модель своего персонажа, и сделать так, чтобы оно отображалось в игре без текстур.
Первый, вам нужно импортировать модель, которую вы хотите использовать, в блендер. Затем, вам нужно настроить материалы, чтобы использовать их текстуры; щелкните часть модели в объектном режиме, а затем щелкните красную сферу на правой боковой панели. – это откроет материалы для этого объекта. О опции «Базовый цвет», нажмите кружок внутри квадратной кнопки, а затем выберите использование текстуры изображения. Загрузите текстуру изображения (также известная как диффузная текстура). Если у вас есть нормальные или зеркальные текстуры для дальнейшего улучшения материалов модели., оставь их пока. Например, здесь показан набор материалов для глаз этого персонажа с текстурой.:
Монтаж занимает много времени. Я пока не могу заполнить этот раздел.
Это все, чем мы делимся сегодня для этого. Пережить гид. Это руководство было первоначально создано и написано телефон (большой). На случай, если нам не удастся обновить это руководство, вы можете найти последнее обновление, следуя этому связь.