Доброго времени суток, господа модмейкеры. Сегодня мы постараемся отвлечься от графических извращений в Spray и Sprite Creator, и перейдем непосредственно к механике оружия в FT. Этакий FAQ по созданию безумных вундервафель.
На мысль, почему вообще нужно собрать информацию именно по механике создания и использования оружия, меня натолкнула вот эта весьма полезная тема про одноразовый гранатомет. Ну и постоянная работа с набросками для второго этапа мода WoNB.
Осторожно букв очень много, и дальше будет еще больше.
Можно ругаться, высказывать мнения и приводить доводы. Все ценное добавлю в заглавный пост.
Эти страшные Entities
Все, что в игре более-менее интерактивно, относится к "сущностям" (entities). Существуют разные виды сущностей наркотики, оружие, машины, двери, терминалы, бочки с бензином и собственно разные персонажи. Для каждого оружия своя сущность, само собой.
Каждый вариант боеприпаса (красные или синие патроны для дробовика, например) имеет свою сущность, и настройки у каждой свои.
Если кто вдруг не знал или забыл удары руками и ногами тоже являются отдельными сущностями. Да. Просто у них свой особенный тип (см. ниже) Unarmed, их нельзя вынуть из слота оружия, они по умолчанию забиваются в слоты "руки" и "ноги" соответственно. Для людей, мьютов и прочей нечисти с активной жизненной позицией существует целый список ударов руками и ногами. То, как изменяются эти удары с прокачкой уровня и навыка, прописано в файлике races.txt. Сразу оговорю, что структура файла позволяет создать новые удары и для нестандартных рас (роботов-гуманоидов, например, можно будет наделить прокачиваемой рукопашкой).
Плевки тараканов, встроенный пулемет Бегемота и некоторые другие орудия это все Unarmed :)
______________________________
Настройки самого оружия
С чего начинается оружие...
С его типа. Фактически, это способ сказать движку, что должна держать в руках модель (спрайт) бойца, если мы используем именно это оружие. Поставим Club боец будет держать дубинку. Heavy будет держать некое подобие пулемета FN MINIMI. На этом разнообразие заканчивается. Один и тот же условный пулемет в руках бойцах используется для M60, SAW, огнемета... Для гранатомета M-79 используется анимация бойца с ПП в руках. А ПП этот совсем уж не похож на гранатомет, согласитесь!
Тип же накладывает и некоторые ограничения на использование оружия разными персонажами. Глупый движок не научен заменять отсутствующие анимации спрайта другими, а у разных рас может отсутствовать анимация для одного или нескольких типов оружия. Люди, гули, риверы, рейдеры и дикари (обычные и волосатые) используют все, что под руку попадется. Мутанты не умеют держать в руках пистолеты, ПП и винтовки (прощайте Browning Rifle, гранатомет и лазерное вооружение, кроме лазерного минигана) вот такая лень разработчиков. Модель, используемая для Барнаки и Деккера, вообще декоративная там анимации только для минигана. Когти смерти дерутся в рукопашной И могут метать гранаты/ножи (но не копья).
Тип None используется для гранат и метательных ножей (сюрикенов, чакрамов, камней...) у спрайта должна быть анимация Throw, хотя в руках персонаж все равно ничего не держит. При таком размере моделей это не так бросается в глаза, как "пулемет-огнемет", описанный выше.
Оружие не может иметь несколько типов одновременно нельзя создать винтовку с режимом добивания врага прикладом. Но можно сделать так, чтобы персонаж "стрелял" во врага в упор, не используя боеприпас. Это уже не прикладом, а штыком удар, судя по анимации, но все равно глупо.
Обойма, повреждения, радиус поражения
Самая простая часть, с ней и так вроде все освоились. Но на всякий можно повторить.
Повреждения максимальное и минимальное значение по умолчанию. От этого значение потом пляшет множитель в настройках отдельных режимов ведения огня.
Обойма сколько боеприпасов может скушать сие орудие. Для гранат 0, на всякий случай.
Радиус поражения в условных единицах. Для гранат 5, для ракет 6. Для огнеметов НЕ задается (там уникальная мехника при использовании именно боеприпасов для огнемета хардкод, чтоб его). Оружие бьет по площади только в том случае, если вы задали спрайт Projectile (летящего снаряда).
Снаряд (Projectile Sprite)
Без него поражение гранат и ракет по площади не будет работать. Огнеметам, из-за хардкода, плевать и на это поле.
Однако, вовсе необязательно использовать видимый спрайт! Гранатомет M-79 уже использует "Projectile Invisible" (долетает до цели практически моментально, в отличие от луча лазера и т.д.) и бьет по площади, как положено.
Учитывайте, что повреждение произойдет именно тогда, когда снаряд долетит до цели. Именно поэтому есть смысл отказаться от "снарядов" энергетических пушек (заменить на "невидимый") пока они долетают, цель может отбежать в сторону, в результате получается забавный эффект...
Кроме того, в настройках отдельного режима нужно подтвердить наличие "снаряда", иначе поражение по площади снова не будет работать (см. ниже).
Ammo Type, Ammo variant, Base/Special damage type
Как и предыдущие значения, Ammo Type задается для всего орудия целиком 9мм пули, ракеты, батарейки... Это значит, что никаких подствольных гранатометов на винтовках не будет. Зато возможна флак-пушка из Unreal, но на этом позже остановимся.
Боеприпас может иметь несколько вариаций (Ammo variant). Вариация определяет процентные настройки повреждений и бронебойности. 100% бронебойность означает, что броня противника может иметь какие угодно показатели Damage Resist и Damage Threshold они будут проигнорированы. Отрицательная бронебойность наоборот понижает повреждения против бронированных целей (но если у цели броня 0, то и эффекта никакого).