Как создать нестандартные скины игроков
Здесь описано, как создать нестандартные скины игроков, которые можно использовать на сервере.
Сетка выбора персонажа в Killing Floor.
#1: Необходимые моды
Вам нужен мод, который позволяет выбирать нестандартные скины игроков:
- ServerPerksV5
- Custom character enabler
#2: Базовые знания
Вам нужно изучить основы настройки и компиляции модов в Killing Floor.
#3: Именование мода
Назовите ваш мод в следующем формате: <CharacterName>Mod (например, если у вас есть скин под названием 'Trader', имя мода должно быть TraderMod).
#4: Создание класса персонажа
Модели персонажей игроков Killing Floor.
Создайте класс с именем персонажа (например, Trader.uc).
#5: Написание скрипта
unrealscript
class Trader extends PlayerRecordClass;
#exec obj load file="TraderAnims.ukx" // Загрузите все необходимые анимации или файлы текстур, используя эти строки.
simulated static function xUtil.PlayerRecord FillPlayerRecord()
{
local xUtil.PlayerRecord PRE;
PRE.Species = Class'PoliceSpecies'; // Species (можно использовать для замены звуков или прочего)
PRE.MeshName = string(Mesh'TraderM'); // Имя меша.
PRE.BodySkinName = string(Shader'TraderSkin'); // Имя скина тела (Material #0)
PRE.FaceSkinName = string(Material'TraderFaceSkin'); // Имя скина лица (Material #1)
PRE.Portrait = Texture'TraderPortrait'; // Текстура портрета
PRE.TextName = "This lady has seen her better days."; // Описательный текст.
PRE.VoiceClassName = string(Class'KFVoicePack'); // Голосовой пакет
PRE.Sex = "F"; // M = Мужской, F = Женский
PRE.Menu = "SP"; // Не нужно изменять.
PRE.Skeleton = string(Mesh'TraderM'); // Не используется в KF
PRE.Ragdoll = "British_Soldier1"; // Должно быть только это.
return PRE;
}
Настройка ServerPerks
CustomCharacters=Trader
Опционально: нестандартные таунты (taunts)
unrealscript
class TraderVoicePack extends KFVoicePack;
defaultproperties
{
NumInsults=3
InsultAbbrev(0)="Insult Specimens"
InsultAbbrev(1)="Insult Players"
InsultAbbrev(2)="The taunt text shown in voice menu"
InsultString(0)="Insult Specimens"
InsultString(1)="Insult Players"
InsultString(2)="The broadcasted taunt message..."
InsultSound(0)=Sound'KF_MaleVoiceOne.INSULT.Insult_Specimens'
InsultSound(1)=Sound'KF_MaleVoiceOne.INSULT.Insult_players'
InsultSound(2)=Sound'TheTauntSoundFX'
}
Опционально: Замена звуков боли/смерти
unrealscript
class TraderSpecies extends PoliceSpecies;
defaultproperties
{
MaleSoundGroup="TraderMod.TraderSoundGroup"
MaleVoice="TraderMod.TraderVoicePack"
FemaleVoice="TraderMod.TraderVoicePack"
FemaleSoundGroup="TraderMod.TraderSoundGroup"
}
unrealscript
class TraderSoundGroup extends KFMaleSoundGroup;
defaultproperties
{
DeathSounds(0)=Sound'TraderDeath1'
DeathSounds(1)=Sound'TraderDeath2'
DeathSounds(2)=Sound'TraderDeath3'
DeathSounds(3)=Sound'TraderDeath4'
DeathSounds(4)=Sound'TraderDeath5'
PainSounds(0)=Sound'TraderPain1'
PainSounds(1)=Sound'TraderPain2'
PainSounds(2)=Sound'TraderPain3'
PainSounds(3)=Sound'TraderPain4'
PainSounds(4)=Sound'TraderPain5'
PainSounds(5)=Sound'TraderPain6'
}
Вот так это делается. Надеюсь, это было полезно.
Вариант проще: перекраска стандартного персонажа
Из темы «Как сделать свой скин персонажа» на форуме killingfloor.ru (GreeN, 2011). Здесь не нужен новый класс: вы правите текстуру существующего персонажа и указываете в его записи новый пакет. Понадобятся редактор карт KF SDK и программа, которая редактирует файлы DDS (например, Photoshop с плагином NVIDIA DDS). Пример — DJ Scully.
- Откройте в редакторе карт браузер текстур и выберите пакет с текстурой персонажа, здесь
KF_soldier2_Trip_T. В пакетах текстур персонажей есть разделыuniformsиfaces. Найдите текстуру, щёлкните правой кнопкой и выберите Export. В путях экспорта и импорта не должно быть русских букв. - Откройте текстуру, отредактируйте и сохраните обязательно в том же формате DDS. Если Photoshop спросит «Image has MIP maps, Display them with the image?», ответьте «Нет».
- В редакторе выберите раздел, из которого брали текстуру, через Import добавьте свою текстуру, закройте редактор и на запрос о сохранении сохраните пакет под другим именем, например
KF_soldier2_Green_Trip_T.utx. Обязательно допишите после названия.utx, иначе это не будет пакетом текстур для KF. - Положите пакет в папку
Textures. Перед правкой скопируйте файл персонажа изSystem, чтобы его можно было восстановить. Откройте файл персонажа (здесьDj_Skully.UPLвSystem) блокнотом, найдите строкуBodySkin=KF_Soldier2_Trip_T.Uniforms.Civi_I_diffи заменитеKF_soldier2_Trip_Tна имя своего пакетаKF_soldier2_Green_Trip_T. Сохраните.
Запускайте KF и выбирайте персонажа; по словам автора, в онлайне тоже работает.
Частые проблемы при создании скина
По темам «Проблема с текстурой рук при создании скина», «Помогите разобраться с созданием скина» и «Создание скина, видео инструкция» на форуме killingfloor.ru.
- Руки от первого лица выглядят не так, как в 3ds Max. Руки от первого лица — отдельная модель, никак не связанная с моделью от третьего лица (Gwyn), поэтому для них указываются отдельные текстуры именно рук, а не одежды; подгоняйте их под стандарт. Rainishe напомнил также правильно указать слейвнам.
- Ошибка компиляции из-за текстур. Если все текстуры вшиты в
.ukx, отдельный.utxне нужен: в теме сборка выдавала ошибку, и после удаления строки#exec OBJ LOAD FILE="bomzMut.utx" PACKAGE=bomzMutскин скомпилировался без ошибок (RaideN-). Ресурсы подключаются строками вида#exec obj load file="Name.ukx" package="My_skinpack". - Женский скин «как шкаф». Patriot масштабировал модель параметром
scaleпо одной из осей в параметрах меша в SDK. 3xzet возразил, что это костыль: перекос заметен, особенно когда персонаж сидит, и лучше сделать женский скелет. - Не только 3ds Max. Для работы с моделями в максе нужны плагины ActorX для импорта и экспорта; по словам 3xzet, подойдут и Blender (нужные плагины есть в интернете), Maya и Milkshape.
- Рескин: кто его увидит. Из темы «Что нужно, чтобы сделать рескин персонажа ?» (форум killingfloor.ru), порядок по Gwyn: вытащить модель (KF SDK, 3ds Max), сохранить текстуру как
.psdи рисовать в любом растровом редакторе (GIMP, Photoshop, Corel), затем сохранить как.tgaбез RLE и импортировать через SDK. Два пути: заменить оригинальный скин (путь к текстуре прописывается в.ucl-файле) - тогда его видит только этот клиент; или сделать кастомный скин - его видят все, но нужен мутатор и ServerPerks версии выше 5 на сервере.