Создание новой модели оружия в 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, и вот что получилось. Готовую модель вы можете купить тут.
YouTube Трейлер

Поделиться:

  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • В закладки Google
  • Блог Я.ру
  • Мой Мир
  • Print

Прочтите также:


Метки: , ,

 
 
 

10 комментариев на «Создание новой модели оружия в Unreal Engine»

  1. Винни
    11 сен 2011 в 20:30

    Я сделал модель, а там только руку в игре показывает и всё, без анимации, да и то криво…. рука приобрела картинку оружия, а анимация стоит нормально, в чём может быть проблема ?

  2. MetalMedved
    11 сен 2011 в 20:50

    Если не работает анимация, нужно проверить свойство Animation/DefaultAnimation, оно не должно быть пустым. Если модель неправильно повернута, необходимо применить к ней свойства исходной меши. Подробно об этом написано в этой статье (шаг 4), где все объясняется на примере модели игрока.

  3. Винни
    15 сен 2011 в 23:48

    Спасибо за анимацию, выручил :) , но у меня проблема с текстурами, оружие приобрело текстуру рук, а руки – оружия((

  4. MetalMedved
    16 сен 2011 в 3:45

    Если текстуры меняются местами, нужно поменять id материалов в максе

  5. Винни
    16 сен 2011 в 17:34

    Эм… а если не трудно сказать, а как ? :)

  6. MetalMedved
    16 сен 2011 в 19:31

    Задавайте вопросы по существу, технические подробности моделирования в 3ds max вы можете найти в гугле самостоятельно

  7. !!!!!
    03 ноя 2012 в 19:15

    помагите у меня формат .DLU блокнотом был как токо я его скачал что делать у меня виндовс XP?

  8. MetalMedved
    04 ноя 2012 в 3:49

    .dlu – это формат плагинов для 3ds max. Что с ними делать написано например тут

  9. Ruby
    21 авг 2020 в 19:29

    А каким способом можно присвоит старый id новой модели ?

  10. MetalMedved
    22 авг 2020 в 13:33

    нужно назвать пакет и классы оружия так же, как старые. Но два одинаковых оружия одновременно не могут быть задействованы. Поэтому стандартные оружия таким образом заменить нельзя

Ваш отзыв