Как сделать оружие в Roblox Studio
Last updated
Last updated
Проще всего сделать оружие на основе уже существующего, лицензированного оружия. Его можно будет взять за основу и изменить модель (внешний вид) и характеристики (скорострельность, прицел, поведение камеры, анимацию выстрела и т.д.). Лицензированное оружие работает на основе снарядов с камерой через плечо, при этом если вы установите достаточно высокую скорость снарядов и малый урон, сможете имитировать оружие с лучевой передачей (сделать лазерную пушку).
В первую очередь выберите одно из предоставленных ниже оружий (нажмите на ссылку под картинкой):
На странице оружия нажмите зеленую кнопку «Get» и подтвердите транзакцию
Запустите Roblox Studio, откройте вкладку VIEW и активируйте инструменты ToolBox, Explorer и Properties
В панели ToolBox переключитесь на вторую вкладку и нажмите ЛКМ по модели оружия. После чего подтвердите добавление и нажмите « Да» , если хотите, чтобы игроки начали с оружием в рюкзаке, или нажмите « Нет» , чтобы просто поместить оружие в трехмерный мир в качестве предмета
Можете на этом этапе запустить игру и убедиться в том что у Вас получилось добавить оружие в игру.
Если хотите создать более интересное оружие, воспользуйтесь встроенным поиском в панели ToolBox. Переключитесь на первую вкладку и введите в поисковую строку «Weapon» после чего добавьте его в игру аналогичным образом.
Папка WeaponsSystem — это единая папка, содержащая активы, конфигурации и сценарии, которые приводят в действие все одобренное оружие. Если он расположен в ServerScriptService , он переопределяет любые эквивалентные папки WeaponsSystem , которые могут находиться в отдельном оружии.
Папка WeaponsSystem содержит следующие экземпляры :
Assets ( папка)
Animations ( Папка ) — хранилище анимаций, используемых в системах вооружения.
Effects ( Папка )
Casings ( Папка ) — Хранение всех ресурсов гильзы.
HitMarks ( Папка ) – хранилище для всех эффектов меток попадания.
Shots ( Папка ) – Хранение всех эффектов выстрела.
WeaponsSystemGui ( ScreenGui ) — настройки графического интерфейса системы оружия .
Configuration ( Папка) — Значения конфигурации для системы вооружения.
SlowZoomWalkEnabled ( BoolValue ) — настройка для управления спринтом .
SprintEnabled ( BoolValue ) — настройка для управления спринтом .
Libraries ( папка ) — хранит все остальные ModuleScripts , используемые в оружейной системе.
WeaponTypes ( Папка ) — определяет все типы оружия.
Каждое оружие содержит модель , состоящую из одной или нескольких базовых частей для формирования физического оружия. Один из них должен быть установлен как PrimaryPart модели
Модель также включает в себя следующие важные потомки, которые могут быть родителями одной из базовых частей модели :
TipAttachment — вложение , положение которого на родительском элементе BasePart определяет, откуда выходят пули/снаряды.
HandleAttachment — вложение , положение которого на родительском элементе BasePart определяет место приваривания ручки .
Fired (необязательный) — Звук , который воспроизводится при выстреле из оружия.
Reload (необязательный) — Звук , который воспроизводится при перезарядке оружия.
Часть Handle определяет, где персонаж игрока держит оружие. Это должен быть Part , он должен называться Handle и быть прямым дочерним элементом оружия (инструмента).
В папке конфигурации вы можете настроить значения для поведения оружия (скорострельность, режим огня, перезарядка, урон, скорость пули, отдачу и т.д.)
Вы можете добавить/изменить следующие параметры для любого оружия. Эти настройки требуют изменения либо Модели оружия , либо Конфигурации оружия , либо того и другого. Некоторые конфигурации зависят от других, таких как Muzzle Particles , которые требуют необходимых дочерних элементов для Projectile/Hit Effects and Sounds .
Затвор оружия — это часть, которая двигается вперед и назад при каждом выстреле.
Оружие может включать физические гильзы от пуль, которые выбрасываются при выстреле и падают на землю.
Вы можете настроить физические снаряды для любого оружия, а также звуки , лучи и излучатели частиц для эффектов попадания и других специальных эффектов.
Потомки указанного ShotEffect , отмеченного в предыдущем разделе.
Дульные вспышки
Эта опция создает эффект вспышки луча при выстреле из оружия. Потомки модели:
MuzzleFlash0 ( Attachment ) — Используется для указания одной стороны дульного вспышки. Должность не имеет значения.
MuzzleFlash1 ( Attachment ) — используется для указания противоположной стороны дульного вспышки. Должность не имеет значения.
MuzzleFlash ( Beam ) — обязательно установите для Attach0 значение MuzzleFlash0 , а для Attachment1 значение MuzzleFlash1 .
Потомки конфигурации:
MuzzleFlashTime ( NumberValue ) (необязательный) — продолжительность времени, в течение которого будет отображаться дульное пламя; по умолчанию 0,03 .
MuzzleFlashRotation0 ( NumberValue ) (необязательно) — Минимальное вращение дульного луча; по умолчанию -math.pi .
MuzzleFlashRotation1 ( NumberValue ) (необязательно) — максимальное вращение дульного луча; по умолчанию это math.pi .
MuzzleFlashSize0 ( NumberValue ) (необязательный) — Минимальный размер дульного вспышки; по умолчанию 1 .
MuzzleFlashSize1 ( NumberValue ) (необязательный) — Максимальный размер дульного вспышки; по умолчанию 1 .
Эта опция создает след различной длины от оружия до точки попадания снаряда. Потомки конфигурации:
TrailLength ( NumberValue ) (необязательно) — Длина следа за пулей/снарядом; значение по умолчанию равно nil , что означает, что длина маршрута вместо этого будет рассчитываться с использованием TrailLengthFactor .
TrailLengthFactor ( NumberValue ) (необязательно) — Длина следа будет установлена на это значение, умноженное на расстояние, пройденное пулей/снарядом в последнем кадре; по умолчанию 1 . Обратите внимание, что это будет переопределено, если вы включите TrailLength .
ShowEntireTrailUntilHit ( BoolValue ) (необязательно) — установите значение true , чтобы визуализировать след от наконечника оружия до места, где находится снаряд; это переопределит как TrailLength , так и TrailLengthFactor , и след исчезнет только после того, как снаряд во что-то войдет. Установите значение false , чтобы использовать одну из двух вышеперечисленных опций для расчета длины следа. Значение по умолчанию — ложь .
Это визуальное дополнение появляется на поверхности, куда попадают снаряды, и полезно для стрел, пулевых отверстий, подпалин и т. д. Потомки конфигурации:
HitMarkEffect ( StringValue ) (необязательно) — Имя эффекта метки попадания, хранящегося в WeaponsSystem/Assets/Effects/HitMarks ; по умолчанию BulletHole .
AlignHitMarkToNormal ( BoolValue ) (необязательный) — установите значение true , если метка попадания всегда должна располагаться плоско на поверхности, как пулевое отверстие, или false , если метка попадания должна казаться застрявшей в поверхности с направления, откуда прилетел снаряд (например, стрелка). ). По умолчанию верно .
Снаряды могут включать в себя объект взрыва, который наносит урон персонажам игроков в области вокруг точки удара. Потомки конфигурации:
ExplodeOnImpact ( BoolValue ) (необязательно) — установите значение true, если вы хотите, чтобы пули/снаряды для оружия взрывались при ударе, в противном случае — значение false Значение по умолчанию — ложь .
BlastRadius ( NumberValue ) (необязательно) — BlastRadius взрыва; по умолчанию 8 .
BlastPressure ( NumberValue ) (необязательно) — BlastPressure взрыва; по умолчанию 10000
BlastDamage ( NumberValue ) (необязательно) — урон, нанесенный вещам в центре взрыва. Обратите внимание, что взрыв наносит меньше урона, чем дальше от центра взрыва находятся пораженные объекты. По умолчанию 100 .
Заряжающееся оружие, такое как Рейльсотрон, должно заряжаться между выстрелами, прежде чем оно снова сможет стрелять. Потомки модели:
Charging ( Звук ) (опционально) — воспроизводится во время зарядки оружия.
Discharging ( звук ) (необязательно) — воспроизводится во время разрядки оружия, например, если вы только частично зарядите оружие и отпустите кнопку выстрела.
ChargeComplete ( Звук ) (необязательно) — воспроизводится, когда оружие полностью заряжено.
DischargeComplete ( Звук ) (необязательно) — воспроизводится, когда оружие полностью разряжено.
ChargeGlow ( BasePart ) (необязательно) — этот объект будет становиться менее прозрачным по мере зарядки оружия, так что он будет полностью непрозрачным при 100% заряде.
ChargeCompleteParticles ( ParticleEmitter ) (необязательно) — испускается, когда оружие закончило зарядку. Этот эмиттер может быть дочерним элементом любой модели BasePart или дочерним элементом Attachment внутри BasePart .
DischargeCompleteParticles ( ParticleEmitter ) (необязательно) — испускается, когда оружие полностью разряжается. Этот эмиттер может быть дочерним элементом любой модели BasePart или дочерним элементом Attachment внутри BasePart .
ChargingParticles ( ParticleEmitter ) (необязательно) — испускает во время зарядки оружия. Вы можете включить несколько излучателей с таким именем, и каждый из них будет излучать во время зарядки. Этот эмиттер может быть дочерним элементом любой модели BasePart или дочерним элементом Attachment внутри BasePart .
Потомки конфигурации:
ChargeRate ( NumberValue ) — Скорость, с которой оружие будет заряжаться. Это значение необходимо указать, чтобы указать, что оружие использует зарядку.
DischargeRate ( NumberValue ) (необязательно) — скорость, с которой оружие будет разряжаться; по умолчанию 0 , что означает, что оружие вообще не будет стрелять.
ChargePassively ( BoolValue ) (необязательный) — установите значение true, если вы хотите, чтобы оружие пассивно заряжалось, чтобы оно стреляло мгновенно при нажатии, или false , если вы хотите щелкнуть / коснуться, чтобы зарядить оружие и стрелять, как только будет достигнут полный заряд. . Значение по умолчанию — ложь .
ChargingParticlesRatePerCharge ( IntValue ) (необязательно) — количество частиц, которые будут испускаться из всех эмиттеров ChargingParticles , умноженное на текущий заряд оружия. Значение по умолчанию — 20 , что означает, что если заряд оружия составляет 10%, каждый эмиттер ChargingParticles будет испускать 2 частицы (20×0,1), а если заряд оружия равен 90%, каждый эмиттер будет испускать 18 частиц (20×0,9).
FireDischarge ( NumberValue ) (необязательно) — количество заряда, которое оружие потеряет после полностью заряженного выстрела; по умолчанию 1 .
NumChargeCompleteParticles ( IntValue ) (необязательный) — количество частиц, которые излучатель -ChargeCompleteParticles будет испускать после того, как оружие будет полностью заряжено. По умолчанию 25 .
NumDischargeCompleteParticles ( IntValue ) (необязательный) — количество частиц, которые излучатель -DischargeCompleteParticles будет испускать, когда оружие полностью разряжено. По умолчанию 25 .
Луки и арбалеты могут включать в себя реалистичную конструкцию тетивы и оружия, а также визуальную стрелу, прикрепленную к тетиве. В дополнение к добавлению потомков модели необходимо применить следующее:
Превратите оружие в зарядное оружие . Например, добавьте необходимый ChargeRate в конфигурацию оружия , который указывает, как быстро вытягивается нить. Кроме того, рассмотрите возможность добавления дополнительных потомков к модели оружия, таких как звук зарядки для тетивы/рук, которые оттягиваются назад.
Установите для параметра WeaponType значение BowWeapon , как указано в структуре оружия .
Потомки модели:
LeftString ( Beam ) (необязательно) — визуальная левая половина строки.
RightString ( Beam ) (необязательно) — визуальная правая половина строки.
Arrow ( BasePart ) (необязательно) — стрелка, которая появляется, когда лук полностью натянут. Обратите внимание, что это только для внешнего вида на луке (фактически выпущенная стрела будет эффектом выстрела , как указано в разделе «Эффекты и звуки снарядов/ударов »).
String1 ( Attachment ) (необязательно) — Центральная точка строки.
StringLoose ( Attachment ) (необязательно) — Точка, где должна быть String1, когда лук находится в состоянии покоя.
StringTight ( Attachment ) (необязательно) — Точка, где должна быть String1 , когда лук полностью натянут.
Arms ( Part ) (необязательно) — часть, которая просто служит внутренним индикатором того, что руки лука будут анимированы. Это может содержать следующие прямые дочерние элементы:
LeftString0 ( Attachment ) (необязательно) — Точка, где левая сторона тетивы прикреплена к луку.
RightString0 ( Attachment ) (необязательно) — Точка, где правая сторона тетивы прикреплена к луку.
LeftLoose ( Attachment ) (необязательно) — точка, где должна быть LeftString0 , когда лук находится в состоянии покоя.
RightLoose ( Attachment ) (необязательно) — точка, где RightString0 должен быть, когда лук находится в состоянии покоя.
LeftTight ( Attachment ) (необязательно) — точка, где должен быть LeftString0 , когда лук полностью натянут.
RightTight ( Attachment ) (необязательно) — точка, где должен быть RightString0, когда лук полностью натянут.
[SpecialMesh] ( SpecialMesh ) (необязательный) — часть лука, которая фактически будет изгибаться при натягивании лука. Обратите внимание, что вы должны указать следующие четыре объекта Vector3Value , чтобы сделать эту анимацию.
LooseOffset ( Vector3Value ) (необязательно) — Смещение SpecialMesh, когда лук находится в состоянии покоя.
TightOffset ( Vector3Value ) (необязательно) — Смещение SpecialMesh , когда лук полностью натянут.
LooseScale ( Vector3Value ) (необязательно) — Масштаб SpecialMesh, когда лук находится в состоянии покоя.
TightScale ( Vector3Value ) (необязательно) — Масштаб SpecialMesh , когда лук полностью натянут.
LargeTouchscreen — это рамка , содержащая кнопки, отображаемые на больших сенсорных экранах. У LargeTouchscreen есть следующие потомки:
Кнопка прицеливания ( Кнопка изображения )
Кнопка огня ( Кнопка изображения )
SmallTouchScreen — это фрейм , содержащий кнопки, которые отображаются на небольших сенсорных экранах. У SmallTouchscreen есть следующие потомки:
Кнопка прицеливания ( Кнопка изображения )
Кнопка огня ( Кнопка изображения )
Индикаторы направления используются, чтобы показать направление чего-либо вокруг прицела игрока. Например, если кто-то стреляет в вас, вокруг вашего прицела может появиться красный полукруг в направлении, откуда был произведен выстрел. Другие примеры включают индикаторы, показывающие направление шагов, стрельбу с закрытых позиций или даже объекты окружающей среды, такие как сундуки.
Чтобы создать новый индикатор, добавьте новый индикаторный кадр в WeaponsSystemGui/ScalingElements/DirectionalIndicators со следующей структурой:
После создания вы можете активировать индикатор с помощью следующей команды внутри WeaponsSystem/Libraries/WeaponsGui, где индикаторName — это строковое имя индикатора, который нужно активировать, а worldPos — это позиция в мире, на которую должен указывать индикатор направления:
Рекламный щит повреждений используется для отображения небольших чисел над головой персонажа, когда он поврежден. Они будут отображаться только для игрока, который повредил персонажа другого игрока, а не для игроков-наблюдателей.
Рекламные щиты с повреждениями обрабатываются в WeaponsSystem/Libraries/DamageBillboardHandler и могут быть активированы из любого кода на стороне клиента следующим образом, где повреждение — это количество нанесенного урона, а украшение — часть, на которой можно украсить рекламный щит, например, голова жертвы:
Плечевая камера — это камера от третьего лица, которая смотрит через правое плечо персонажа игрока. Чтобы настроить камеру на плече, измените переменные под комментарием — Параметры конфигурации (константы) в функции ShoulderCamera.new() в WeaponsSystem/Libraries/ShoulderCamera . Вы можете изменить такие вещи, как поле зрения, смещение от персонажа, скорость ходьбы во время бега или масштабирования и т. д.
По умолчанию система оружия добавляет возможность «спринта», поэтому игроки могут бежать, удерживая клавишу Shift , полностью нажимая на динамический стик (мобильный) или полностью нажимая на левый джойстик (геймпад). Если вы хотите отключить спринт, установите для параметра SprintEnabled в WeaponsSystem / Configuration значение false . Система также снижает скорость игрока , когда он прицеливается/приближается, но вы можете отключить это поведение, установив для параметра SlowZoomWalkEnabled значение false .
Более подробную документацию по созданию оружия можно посмотреть на официальном сайте Роблокс - https://create.roblox.com/docs/resources/weapons-kit