Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 47
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 в блюпринте, а потом передавать в код с++?
Аватара пользователя
Пользователь
Сообщения: 195
1. https://wiki.unrealengine.com/Customizing_detail_panels
3. сделай приватной и кто хочет получить знаечение пусть просит через константную функцию
4. это не избежно
5. здесь можешь сам сделать как пожелаешь.. свою сохранку пиши.. сохрани всё в xml или json и потом грузи и восстанавливай
6. в блюпринте делать значения по умолчанию, так как они перепишут значения которые были в коде до этого
Аватара пользователя
Пользователь
Сообщения: 2319
4 - в большинстве случаев класс своего героя не нужен, есть стандартные типы в которых реализовано все необходимое.
Нужно получить что-то у персонажа ? Что конкретно? Если он нужен значит компонент уже не независимый. Только осталось определиться от кого он должен зависеть. Актор, Павн , Чарактер, и наконец - другой компонент, и только потом в этом списке небазовые классы.
связь компонента с другим базовым классом уже вполне приемлема, связь компонента с компонентом тоже звучит неплохо.
Связь компонента с кастомным классом чарактера - это хардкод.
Значит этот компонент только для этого класса или с таким успехом компонент не особо инужен, можно хардкодить прям в кастомном классе например дело вкуса и потребностей уже, а не проектирования.
и наконец интерфейсы еще, интерфейс можно имплементировать кому угодно и получить что нужно, что делает зависимым от интерфейса твой компонент что тоже вполне неплохое решение если интерфейс без сложной имплементации.
5 - ищем материал по сериализации, и смотрим в коде как это сделано у епиков
_________________
we need to go deeper
Аватара пользователя
Пользователь
Сообщения: 47
Большое спасибо за ответы, очень помогли! В герое мне нужна была только одна переменная - его инвентарь, но уже подумал, что его можно реализовать в том же компоненте, либо инициализировать инвентарь в компоненте через класс игрока.


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница