Создание новой модели оружия в Unreal Engine
В этом уроке я покажу, как сделать новое оружие для Killing Floor на примере сварочного аппарата.
Инструменты нам потребуются все те же: ActorX Importer for 3ds Max и распаковщик unreal архивов umodel отсюда.
1. Экспортируем необходимые анимацию и текстуры оригинального сварочного аппарата от 1го лица (KF_Weapons_Trip.Welder_Trip, KF_Weapons_Trip_T.equipment. Welder_D и KF_Weapons_Trip_T.hands.hands_1stP_military_diff) и открываем их в 3Ds Max. Подробнее об эскспорте ресурсов тут.
2. Добавляем в сцену новую модель сварочного аппарата. Предварительно необходимо убрать из этой модели кости и собрать все ее текстуры в одном файле (см. статью про импорт текстур).
3. Пользуясь инструментами Move, Rotate и Scale совмещаем новую модель со старой так, чтобы она естественно смотрелась в руке.
4. Удаляем старую модель сварочного аппарата и присваиваем материалу новой модели ID старой. Совмещаем элемент спецэффекта с соплом нового аппарата. Можно проиграть анимацию и проверить качество привязки модели.
Если речь идет об оружии, то особое внимание следует уделить совмещению центров прицелов моделей, а так же привязке различных частей оружия к разным костям (обойма, ствол, гильза)
5. Экспортируем полученную модель обратно в Killing Floor. Подробнее об этом тут.
6. Проделываем шаги 1-5 для модели от третьего лица (KF_Weapons3rd_Trip/ Welder_3rd). Если оружие можно будет выбрасывать, необходимо будет сделать еще и статическую мешь модели.
7. Делаем мутатор, заменяющий стандартный сварочный аппарат. Создаем новый мутатор NewWelder с тремя файлами:
NewWelder.uc
class NewWelder extends Welder
dependson(KFVoicePack);
#exec OBJ LOAD FILE=NewWelder_T.utx //ваши текстуры
#exec OBJ LOAD FILE=NewWelder_A.ukx //ваши анимации
defaultproperties
{
AttachmentClass=Class'NewWelder.NewWelderAttachment'
ItemName="New Welder"
Mesh=SkeletalMesh'NewWelder_A.NewWelderMesh'
Skins(0)=Texture'NewWelder_T.NewWelder'
}
NewWelderMut.uc
class NewWelderMut extends Mutator;
function PreBeginPlay()
{
AddToPackageMap("NewWelder_A");
AddToPackageMap("NewWelder_T");
}
function bool CheckReplacement(Actor Other, out byte bSuperRelevant) {
if (Other.IsA('KFHumanPawn'))
{
KFHumanPawn(Other).RequiredEquipment[4] = "NewWelder.NewWelder";
}
return true;
}
defaultproperties
{
GroupName="KF_NewWelder"
}
NewWelderAttachment.uc
class NewWelderAttachment extends WelderAttachment;
defaultproperties
{
Skins(0)=Texture'NewWelder_T.NewWelder'
Mesh=SkeletalMesh'NewWelder_A.NewWelder3rd'
}
Компилируем и подключаем в игру как NewWelder.NewWelderMut.
Еще я немного изменил цвет шейдера горелки, нарисовал соответствующие иконки для HUD, и вот что получилось. Готовую модель вы можете купить тут.
Прочтите также:
Метки: 3ds max, killing floor, новое оружие
11 сен 2011 в 20:30
Я сделал модель, а там только руку в игре показывает и всё, без анимации, да и то криво…. рука приобрела картинку оружия, а анимация стоит нормально, в чём может быть проблема ?
11 сен 2011 в 20:50
Если не работает анимация, нужно проверить свойство Animation/DefaultAnimation, оно не должно быть пустым. Если модель неправильно повернута, необходимо применить к ней свойства исходной меши. Подробно об этом написано в этой статье (шаг 4), где все объясняется на примере модели игрока.
15 сен 2011 в 23:48
Спасибо за анимацию, выручил , но у меня проблема с текстурами, оружие приобрело текстуру рук, а руки – оружия((
16 сен 2011 в 3:45
Если текстуры меняются местами, нужно поменять id материалов в максе
16 сен 2011 в 17:34
Эм… а если не трудно сказать, а как ?
16 сен 2011 в 19:31
Задавайте вопросы по существу, технические подробности моделирования в 3ds max вы можете найти в гугле самостоятельно
03 ноя 2012 в 19:15
помагите у меня формат .DLU блокнотом был как токо я его скачал что делать у меня виндовс XP?
04 ноя 2012 в 3:49
.dlu – это формат плагинов для 3ds max. Что с ними делать написано например тут
21 авг 2020 в 19:29
А каким способом можно присвоит старый id новой модели ?
22 авг 2020 в 13:33
нужно назвать пакет и классы оружия так же, как старые. Но два одинаковых оружия одновременно не могут быть задействованы. Поэтому стандартные оружия таким образом заменить нельзя