Size: a a a

2021 February 09

VK

Vladimir Kuleshov in Unreal Engine
Hackerman Me
Setters?
Уточню, не модифицируя мувмент компонент
источник

HM

Hackerman Me in Unreal Engine
Vladimir Kuleshov
Уточню, не модифицируя мувмент компонент
Не модифицируя movementcomponent.
источник

HM

Hackerman Me in Unreal Engine
На самый крайний случай - сделай свой movement component и своего персонажа, которому передай класс своего movement component, в котором ты сможешь через свои сеттеры эти штуки менять.
источник

VK

Vladimir Kuleshov in Unreal Engine
Hackerman Me
На самый крайний случай - сделай свой movement component и своего персонажа, которому передай класс своего movement component, в котором ты сможешь через свои сеттеры эти штуки менять.
Да, это можно сделать. Но смущает именно то что нужно переделывать и кэрактера и мувмент
Без создания новых компонента и кэрактэра  получается никак?
источник

VK

Vladimir Kuleshov in Unreal Engine
Ок, допустим вариант со своими классами

Я создаю класс MyCharacterMovement наследуясь от Character Movement component и "переписываю" нужные мне функции, дописываю нужные геттеры и сеттеры

А c кэрактером как? Создаю  MyCaracter от Character.
Мне удалить созданный в конструкторе CharacterMovementComponent затем создать MyCharacterMovement и переназначить переменную?
источник

AD

Aleksei DTG in Unreal Engine
Vladimir Kuleshov
Ок, допустим вариант со своими классами

Я создаю класс MyCharacterMovement наследуясь от Character Movement component и "переписываю" нужные мне функции, дописываю нужные геттеры и сеттеры

А c кэрактером как? Создаю  MyCaracter от Character.
Мне удалить созданный в конструкторе CharacterMovementComponent затем создать MyCharacterMovement и переназначить переменную?
а просто клампить макс велосити, как вчера Вова советовал - не подходит?
источник

VK

Vladimir Kuleshov in Unreal Engine
Aleksei DTG
а просто клампить макс велосити, как вчера Вова советовал - не подходит?
Тут дело в том что максвелосити может быть больше для определенных случаев, чем суммарынй импуль сотдачи от трех противников
источник

AD

Aleksei DTG in Unreal Engine
Vladimir Kuleshov
Тут дело в том что максвелосити может быть больше для определенных случаев, чем суммарынй импуль сотдачи от трех противников
аха, понятно, но опять же это можно отдельно проверить
источник

VK

Vladimir Kuleshov in Unreal Engine
Например когда персонаж дашится он двигается очень быстро
А когда при нанесении урона по трем мелким крысам приходит суммарный импульс отдачи как от даша, это выглядит нелепо
источник

VK

Vladimir Kuleshov in Unreal Engine
Aleksei DTG
аха, понятно, но опять же это можно отдельно проверить
Да, я во думаю вообще проверять накопленный в данный момент импульс снаружи
источник

AD

Aleksei DTG in Unreal Engine
Vladimir Kuleshov
Например когда персонаж дашится он двигается очень быстро
А когда при нанесении урона по трем мелким крысам приходит суммарный импульс отдачи как от даша, это выглядит нелепо
но честно говоря я не вижу как твоя проблема решается в рамках твоего описания, что если первый импульс ты получишь в одном тике, а второй через пару тиков?
источник

VK

Vladimir Kuleshov in Unreal Engine
Нужно только понять когда именно  мувмент компонент его релизит
источник

CA

Cubic Angle in Unreal Engine
Vladimir Kuleshov
Тут дело в том что максвелосити может быть больше для определенных случаев, чем суммарынй импуль сотдачи от трех противников
можно блокировать новые импульсы в течении некоторого времени (0.5-1 секунда)
источник

AD

Aleksei DTG in Unreal Engine
Vladimir Kuleshov
Да, я во думаю вообще проверять накопленный в данный момент импульс снаружи
ты мог бы накапливать его в течение тика, клампить и применять вручную, но это совершенно не решает проблему, которую я описал выше
источник

VK

Vladimir Kuleshov in Unreal Engine
Aleksei DTG
ты мог бы накапливать его в течение тика, клампить и применять вручную, но это совершенно не решает проблему, которую я описал выше
Об этом я планировал подумать позже )
источник

AD

Aleksei DTG in Unreal Engine
Cubic Angle
можно блокировать новые импульсы в течении некоторого времени (0.5-1 секунда)
это тоже будет хреново работать, ты получил импульс, через 0,9 ещё один, но поскольку у тебя куллдаун - в тебя стреляют, а ты не отлетаешь
источник

AD

Aleksei DTG in Unreal Engine
так что самый годный способ, который я здесь вижу - кламп макс велосити, но в определённых условиях. Например если у тебя какой-то рывок - не клампить. Или можно упороться в то, чтобы клампить только одну ось, например
источник

CA

Cubic Angle in Unreal Engine
Aleksei DTG
это тоже будет хреново работать, ты получил импульс, через 0,9 ещё один, но поскольку у тебя куллдаун - в тебя стреляют, а ты не отлетаешь
та хоть блокировать не по времени - а по остаточному импульсу
источник

VK

Vladimir Kuleshov in Unreal Engine
Вариант с блокировкой импульсов по таймеру тоже ничего
Думаю все будет сложнее чем просто блокировка - нужно учитывать источники импульсов, наверное ввести какой-то параметр который будет задавать максимальную сокрость котороая образуется именно в результате  импульсов
источник

AD

Aleksei DTG in Unreal Engine
Cubic Angle
та хоть блокировать не по времени - а по остаточному импульсу
не совсем понял про остаточный принцип, но мне этот вариант не видится работоспособным, суть задачи Владимира сводится к тому, что ему надо ограничить максимальную скорость, всё остальное, насколько я вижу, не решает проблему
источник