Event Tick Trace Crouch

Пользователь
Статус
Оффлайн
Регистрация
4 Дек 2020
Сообщения
106
Реакции[?]
63
Поинты[?]
51K
я сделал нормальное приседание где капсул компонент изменяется с 96 до 40, но как мне можно не просчитывать каждый кадр этот каст(вроде так).

Но если в event tick поставить delay хотя-бы на 0.1 персонаж может легко застрять во время того когда будет вставать, так как будет думать что над ним ничего нету
Делал примерно так же как и в этом видео, но пришлось сделать немножко по другому

Вот мои скрины
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2022
Сообщения
202
Реакции[?]
195
Поинты[?]
107K
В event tick delay ставить нельзя
Ты каждый кадр запускаешь отложенную на n секунд задачу

В class default можно настроить частоту тика, но лучше просто запустить таймер

А если по-нормальному
Делаешь приседание на нажатие клавиши, в анимбм меняешь стейт на crouch, всё и никаких задач на тике не нужно
 
Пользователь
Статус
Оффлайн
Регистрация
4 Дек 2020
Сообщения
106
Реакции[?]
63
Поинты[?]
51K
В event tick delay ставить нельзя
Ты каждый кадр запускаешь отложенную на n секунд задачу

В class default можно настроить частоту тика, но лучше просто запустить таймер

А если по-нормальному
Делаешь приседание на нажатие клавиши, в анимбм меняешь стейт на crouch, всё и никаких задач на тике не нужно
А где это анимбм?
Я не совсем понял что мне нужно переделать
 
Пользователь
Статус
Оффлайн
Регистрация
14 Апр 2022
Сообщения
202
Реакции[?]
195
Поинты[?]
107K
А где это анимбм?
Я не совсем понял что мне нужно переделать
Переделать нужно всё, за исключением сжимания капсулы. Его можно оставить, но не на тике.

Animation Blueprint aka AnimBP твоего персонажа.
Там нужно добавить состояние, когда персонаж присел. И добавить условие, что он присел, я бы взял ссылку на Character и у него можно получить переменную IsCrouch

В основном Blueprint твоего персонажа необходимо на кнопку приседания сделать Character -> Crouch() \ Character -> UnCrouch()

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

Вот простой сетап приседания.
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
4 Дек 2020
Сообщения
106
Реакции[?]
63
Поинты[?]
51K
Переделать нужно всё, за исключением сжимания капсулы. Его можно оставить, но не на тике.

Animation Blueprint aka AnimBP твоего персонажа.
Там нужно добавить состояние, когда персонаж присел. И добавить условие, что он присел, я бы взял ссылку на Character и у него можно получить переменную IsCrouch

В основном Blueprint твоего персонажа необходимо на кнопку приседания сделать Character -> Crouch() \ Character -> UnCrouch()

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

Вот простой сетап приседания.
а если игрок был например присевшим отжал контрол когда не мог встать(протрейсил и увидел что сверху что-то есть) и потом вылазит оттуда и над ним ничего нету, как сделать чтобы он потом вставал?
вроде только постоянно трейсить.
или как можно трейсить например раз в пол секунды постоянно?
По идеи тогда будет отлично оптимизировано.

И в видео показано от 3-го лица но у меня игра от 1-го, хотя это не сильно важно
 
Начинающий
Статус
Оффлайн
Регистрация
15 Авг 2021
Сообщения
15
Реакции[?]
4
Поинты[?]
1K
Чтобы капсула не застревала, можно трейсить по границам капсулы. Лучше с некоторым допуском. Если нет желания делать из EveryTick, то можно делать это из таймера. По идее тебе надо трейсить только когда игрок пытается встать. И по результатам проверки трейсам ты или выполняешь вставание, или нет. Сделать автоматическое вставание можно, но я бы это оставил на этап доводки игровой механики.
 
Пользователь
Статус
Оффлайн
Регистрация
4 Дек 2020
Сообщения
106
Реакции[?]
63
Поинты[?]
51K
А как можно трейсить из таймера? Он же когда-то закончиться,и откуда его запускать?

Я просто мало что знаю,не видел пока что как запускать из таймера,может есть какая-то фотка?
 
Начинающий
Статус
Оффлайн
Регистрация
15 Авг 2021
Сообщения
15
Реакции[?]
4
Поинты[?]
1K
Если память не изменяет, в Blueprint'ах таймер работает через custom event. Создаешь этот Custom Event, на него цепляешь все что должен делать таймер. Ну и в процессе игры запускаешь таймер когда надо, и при необходимости останавливаешь. Я сейчас на С++ делаю, но могу поискать примеры работы с таймером в UE4 в старых наработках.
посмотри официальную доку:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Пользователь
Статус
Оффлайн
Регистрация
4 Дек 2020
Сообщения
106
Реакции[?]
63
Поинты[?]
51K
Если память не изменяет, в Blueprint'ах таймер работает через custom event. Создаешь этот Custom Event, на него цепляешь все что должен делать таймер. Ну и в процессе игры запускаешь таймер когда надо, и при необходимости останавливаешь. Я сейчас на С++ делаю, но могу поискать примеры работы с таймером в UE4 в старых наработках.
посмотри официальную доку:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Спасибо,чуть позже попробую
 
Сверху Снизу