моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
В этой статье мы продолжаем оптимизировать навыки, и теперь добавленные персонажу активные навыки можно синхронизировать с пользовательским интерфейсом. В этой статье мы улучшим потребление навыков (отпуск навыков для уменьшения маны) и механизм охлаждения.
Мы видим, что в значении класса навыка по умолчанию можно установить его охлаждение и потребляемые GE.
Поэтому далее мы будем использовать GE для настройки охлаждения и потребления навыков.
Сначала мы создаем план, и выбранный родительский класс — Gameplay Effect.
Назовите его GE_Cost_FireBolt, что означает стоимость огненного шара.
Чтобы использовать нашу продолжительность, выберите «Мгновенно».
Затем мы добавляем модификаторы, позволяющие уменьшить количество маны персонажа, уменьшая его на 20 каждый раз, когда используется навык.
Создается простой ГЭ потребления, и мы применяем его к навыкам.
Далее нам нужно вызвать узел Commitability в навыке. Этот узел будет вычитать ману, необходимую для умения. Если есть время восстановления, умение войдет в время восстановления.
Commitability — это единый узел для вычета маны и охлаждения. Конечно, вы также можете разделить его и иметь отдельные узлы для вычета потребления и охлаждения.
Запустить тестовый эффект
Сначала определяем, будет ли активирован навык, если маны недостаточно. Перед обработкой расхода распечатываем данные.
Если количества маны достаточно, его можно успешно распечатать, но если количество маны не может поддержать высвобождение навыка, оно не будет напечатано, что доказывает, что если ресурсов недостаточно, навык не будет введен, и он не оценивается по способности фиксации, которая используется только для узла потребления.
Мы смотрим на исходный код и вызываемый им код — K2_CommitAbility.
CommitAbility вызывается внутри для реализации логики, а затем проверяется, достаточно ли потребления для предоставления навыков, и вызывается функция для отчисления ресурсов.
CommExecute — это функция удержания ресурсов, которая внутренне вызывает удержание ресурсов и охлаждение.
Взгляните на «Применить перезарядку», которая учитывает уровень навыка и применяет GE к ASC.
Таким же образом расходуются ресурсы приложения, а также получаются уровни навыков.
Теперь мы знаем, что использование потребления навыков может изменить количество потребляемой маны в зависимости от уровня навыка. Мы можем использовать таблицу для определения различных уровней и потребления маны.
Поэтому мы создаем новую таблицу кривых, чтобы установить потребление маны навыками на разных уровнях.
Создайте таблицу кривых, выберите в качестве типа «Константа» и установите фиксированное значение потребления маны на каждом уровне.
Именованный CT_Cost
Внутренне добавьте потребление маны навыком с уровня 1 до уровня 10 Огненного шара.
Затем используйте таблицу кривых здесь, в GE, выберите созданную строку и установите значение -1.
Затем измените начальный уровень навыков в коде для тестирования.
После отпускания навыка количество маны в три раза больше, чем раньше, что доказывает отсутствие проблем с настройками.
Принцип охлаждения навыка заключается в применении охлаждающей метки к ASC во время фазы охлаждения. Этот навык нельзя использовать снова, пока существует охлаждающая метка.
Итак, мы хотим реализовать охлаждение, сначала создайте метку для охлаждения.
FGameplayTag Cooldown_Fire_FireBolt; //火球术冷却标签
Тогда зарегистрируйтесь в менеджере тегов
GameplayTags.Cooldown_Fire_FireBolt = UGameplayTagsManager::Get()
.AddNativeGameplayTag(
FName("Cooldown.Fire.FireBolt"),
FString("火球术冷却标签")
);
Создает огненный шар, охлаждающий GE.
Измените GE на чувствительный ко времени параметр Has Duration.
Как вы можете видеть здесь, время охлаждения можно установить с помощью различных методов, которые мы использовали для изменения значения ранее. Здесь мы используем самый простой из них, напрямую устанавливая его на 1 с.
Нам не нужно здесь изменять контент, связанный с персонажем. Нам нужно только добавить охлаждающий тег к ASC, когда этот GE вступит в силу. Мы добавляем компонент «Целевые теги» с эффектом игрового процесса.
Добавьте охлаждающую метку к Актеру через этот компонент и добавьте созданную нами охлаждающую метку.
Затем примените время восстановления навыка
Запустив тест, мы обнаружили, что можем активировать навык только один раз в секунду.
Обычно мы генерируем только один экземпляр навыка персонажа для персонажа. Чтобы клиент не отключил навык до его срабатывания, мы завершаем действие навыка, когда заканчивается анимация монтажа навыка или завершается примешивание. принудительно отменено, а когда навык закончится, можно будет продолжить воспроизведение монтажа.
Нам также нужно включить возможность повторного запуска экземпляра, чтобы при повторном срабатывании она отключала предыдущий триггер.
Продолжение: теперь у нас есть расход, и он может корректно отображаться в пользовательском интерфейсе, но охлаждение еще не реализовано. После использования навыка прогресс охлаждения навыка не может отображаться в пользовательском интерфейсе. Мы будем отслеживать. изменения в навыке охлаждения в будущем и отображать их над пользовательским интерфейсом.