Моды и Мастерская

Как создать нестандартные скины игроков

Здесь описано, как создать нестандартные скины игроков, которые можно использовать на сервере.

Экран выбора персонажа Killing Floor Сетка выбора персонажа в Killing Floor.

#1: Необходимые моды

Вам нужен мод, который позволяет выбирать нестандартные скины игроков:

  • ServerPerksV5
  • Custom character enabler

#2: Базовые знания

Вам нужно изучить основы настройки и компиляции модов в Killing Floor.

#3: Именование мода

Назовите ваш мод в следующем формате: <CharacterName>Mod (например, если у вас есть скин под названием 'Trader', имя мода должно быть TraderMod).

#4: Создание класса персонажа

Модели персонажей Killing Floor Модели персонажей игроков 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.

  1. Откройте в редакторе карт браузер текстур и выберите пакет с текстурой персонажа, здесь KF_soldier2_Trip_T. В пакетах текстур персонажей есть разделы uniforms и faces. Найдите текстуру, щёлкните правой кнопкой и выберите Export. В путях экспорта и импорта не должно быть русских букв.
  2. Откройте текстуру, отредактируйте и сохраните обязательно в том же формате DDS. Если Photoshop спросит «Image has MIP maps, Display them with the image?», ответьте «Нет».
  3. В редакторе выберите раздел, из которого брали текстуру, через Import добавьте свою текстуру, закройте редактор и на запрос о сохранении сохраните пакет под другим именем, например KF_soldier2_Green_Trip_T.utx. Обязательно допишите после названия .utx, иначе это не будет пакетом текстур для KF.
  4. Положите пакет в папку 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 на сервере.