1. В дефолтных значениях SkeletalMeshComponent есть enum EAnimationMode. В зависимости от выбранного значения enum в дефолтных значениях меняется интерфейс, появляется выбор аним блюпринта или просто анимации. Как это можно сделать в своем коде? Я так понимаю, если они это сделали, то есть возможность у любого. Так как это сделать? Я попытался полазить в SkeletalMeshComponent, но особо ничего не заметил...
2. В RE7 режим FPP, однако они сделали интеракцию предметов следующим образом: когда ты подходишь близко виджет над предметом отображается одним образом, когда смотришь близко на предмет - другим. Как вы думаете, как они это сделали? Не хочется каждый раз на Event Tick ставить проверку расстояния от предмета до игрока, но других идей сейчас нет. И каким образом происходит event, когда игрок смотрит непосредственно на предмет? Я это делаю с помощью интерфейса, когда капсула игрока оверлэпает предмет, у него вызывается event когда игрок входит в область предмета и появляется виджет. Так вот иногда begin и end overlap event странно работает, то вызывается несколько раз, то вообще не вызывается. Хотелось бы в игре таких скачков избежать, потому что напрямую работает визуал от этого. Как вы решаете эту проблему? Еще из-за капсулы и проверки расстояния на Event Tick игрок, получается, будет видеть предметы сквозь стены, что не есть хорошо.
3. Есть ли способ защитить переменную от изменения в коде? Есть const, да, но если я постоянно изменяю дефолтное значение переменной в эдиторе, а в рантайме хочу, чтобы это значение больше не изменялась, то const будет работать?
4. Обычно, механики делаю компонентом, чтобы можно было легко все переносить. Нормально ли в компоненте кастить к герою игрока? Т.е. по-моему таких кастов лучше избежать, потому что при переносе в другой проект, касты придется менять, что не особо удобно. Лучше от этого избавиться. Как вы справляетесь с этим?
5. Очень интересует вопрос по сохранениям и загрузкам... Хочется реализовать в игре сохранение всего мира, всех изменений, как, к примеру, в Vampyr или AC. По-моему в любых играх это и реализовано. Я сейчас сохраняю только переменные. Но это очень неудобно, так как приходится сохранять каждую систему, в том числе инвентарь. Есть ли плагины или решения таких ситуаций?
6. Вопрос по визуалу. Как лучше реализовывать дефолтные значения в блюпринтах? Наследовать блюпринт от c++ класса, в котором все переменные EditAnywhere или все же создавать и делать их EditAnywhere в блюпринте, а потом передавать в код с++?