add the console commands SG_GetEngineScalabilitySettings and SG_SetEngineScalabilitySettings

This commit is contained in:
Mamadou Babaei
2024-08-16 16:44:31 +02:00
parent 826022ab40
commit c82530cecf
6 changed files with 97 additions and 0 deletions
+4
View File
@@ -51,6 +51,10 @@ Welcom to the SenseGlove Unreal Engine Handbook!
- [Touch](plugin-configuration/plugin-settings/virtual-hand/touch.md) - [Touch](plugin-configuration/plugin-settings/virtual-hand/touch.md)
- [Overriding Settings](plugin-configuration/overriding-settings/README.md) - [Overriding Settings](plugin-configuration/overriding-settings/README.md)
# 💡 Miscellaneous
- [SenseGlove Console Commands](misc/console-commands/README.md)
# 🛠️ Advanced Topics # 🛠️ Advanced Topics
- [Safe Glove Access in Blueprint](advanced-topics/safe-glove-access-blueprint/README.md) - [Safe Glove Access in Blueprint](advanced-topics/safe-glove-access-blueprint/README.md)
+1
View File
@@ -61,6 +61,7 @@ This is a minor release focusing mainly on bringing OpenXR-compatible hand track
- Introduced the FSGGameUserSettings for managing the Engine Scalability Settings through the SenseGlove plugin in order to change the graphics settings on the fly. - Introduced the FSGGameUserSettings for managing the Engine Scalability Settings through the SenseGlove plugin in order to change the graphics settings on the fly.
- Added USGGameUserSettingsKismetLibrary in order to allow all the Engine Scalability Settings to be managed from the Blueprint side. - Added USGGameUserSettingsKismetLibrary in order to allow all the Engine Scalability Settings to be managed from the Blueprint side.
- Added FSGGameUserSettingsSettings config struct. - Added FSGGameUserSettingsSettings config struct.
- Added the SenseGlove console commands: SG_GetEngineScalabilitySettings() and SG_SetEngineScalabilitySettings(Scalability).
- Added SGHardwareBenchmarkingSettings config struct. - Added SGHardwareBenchmarkingSettings config struct.
- Introduced ESGEngineScalabilitySettings enum. - Introduced ESGEngineScalabilitySettings enum.
- Added FSGVirtualHandSettingsOverrides config struct used by the new settings override system. - Added FSGVirtualHandSettingsOverrides config struct used by the new settings override system.
@@ -0,0 +1,44 @@
# The SenseGlove Console Commands
The SenseGlove Unreal Engine Plugin offers a variety of utility console commands to enhance your development experience.
> [!IMPORTANT]
> To ensure the SenseGlove console commands are registered and recognized by
> Unreal Engine, set the default Game Instance class to `SGGameInstance` or a
> subclass of it. This can be done through:
> `Project Settings > Project > Maps & Modes > Game Instance > Game Instance Class`.
> Failing to do so will result in the error: `Command not recognized: SG_*` in
> the logs. For more details, refer to
> [SGGameInstance](../../setup-senseglove-default-classes/sggameinstance.md).
## SGGameUserSettings Console Commands
> [!CAUTION]
> Before running any of the following console commands, ensure that the default
> Game User Settings class is set to `SGGameUserSettings` or a subclass of it.
> This can be configured via:
> `Project Settings > Engine > General Settings > Default Classes > Advanced > Game User Settings Class`.
> Failure to set this correctly will cause your simulation or editor to crash
> upon calling any of the following console commands. For more information,
> refer to
> [SGGameUserSettings](../../setup-senseglove-default-classes/sggameusersettings.md).
### SG_GetEngineScalabilitySettings
This console command prints the current Engine Scalability Settings to the logs.
### SG_SetEngineScalabilitySettings
This console command sets the Engine Scalability Settings for both the current game and the editor. It accepts a `Scalability` parameter with the following valid values:
- `Low`
- `Medium`
- `High`
- `Epic`
- `Cinematic`
- `Auto`
> [!NOTE]
> The `Auto` option is used for benchmarking purposes. It will adjust the engine
> scalability settings to one of the other levels based on the benchmarking
> results.
+6
View File
@@ -49,6 +49,12 @@ This section provides detailed information on configuring the plugin:
- [Touch](../plugin-configuration/plugin-settings/virtual-hand/touch.md) - [Touch](../plugin-configuration/plugin-settings/virtual-hand/touch.md)
- [Overriding Settings](../plugin-configuration/overriding-settings/) - [Overriding Settings](../plugin-configuration/overriding-settings/)
## 💡 Miscellaneous
Toipcs that do not fall under any specific category:
- [SenseGlove Console Commands](../misc/console-commands/)
## 🛠️ Advanced Topics ## 🛠️ Advanced Topics
For users familiar with the basics, this section explores advanced features of the plugin: For users familiar with the basics, this section explores advanced features of the plugin:
@@ -40,6 +40,39 @@
#include "SenseGlove/GameFramework/SGGameUserSettings.h" #include "SenseGlove/GameFramework/SGGameUserSettings.h"
#include "SGLog/SGLog.h" #include "SGLog/SGLog.h"
void USGGameInstance::SG_GetEngineScalabilitySettings()
{
const USGGameUserSettings* GameUserSettings{USGGameUserSettings::GetInstance()};
ensureAlwaysMsgf(GameUserSettings, TEXT("Invalid GameUserSettings!"));
static UEnum* EnumPtr{StaticEnum<ESGEngineScalabilitySettings>()};
ensureAlwaysMsgf(EnumPtr, TEXT("Failed to find the ESGEngineScalabilitySettings enum!"));
const ESGEngineScalabilitySettings Scalability = GameUserSettings->GetEngineScalabilitySettings();
const FName ScalabilityName{
EnumPtr->GetNameByValue(static_cast<int64>(Scalability))
};
SGLOG("Get Engine Scalability Settings", ScalabilityName);
}
void USGGameInstance::SG_SetEngineScalabilitySettings(const ESGEngineScalabilitySettings Scalability)
{
USGGameUserSettings* GameUserSettings{USGGameUserSettings::GetInstance()};
ensureAlwaysMsgf(GameUserSettings, TEXT("Invalid GameUserSettings!"));
static UEnum* EnumPtr{StaticEnum<ESGEngineScalabilitySettings>()};
ensureAlwaysMsgf(EnumPtr, TEXT("Failed to find the ESGEngineScalabilitySettings enum!"));
GameUserSettings->SetEngineScalabilitySettings(Scalability);
const FName ScalabilityName{
EnumPtr->GetNameByValue(static_cast<int64>(Scalability))
};
SGLOG("Set Engine Scalability Settings", ScalabilityName);
}
USGGameInstance::USGGameInstance(const FObjectInitializer& ObjectInitializer) USGGameInstance::USGGameInstance(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer) : Super(ObjectInitializer)
{ {
@@ -37,6 +37,8 @@
#include "Engine/GameInstance.h" #include "Engine/GameInstance.h"
#include "SGTypes/SGTypes.h"
#include "SGGameInstance.generated.h" #include "SGGameInstance.generated.h"
UCLASS(config=Game, Transient, BlueprintType, Blueprintable) UCLASS(config=Game, Transient, BlueprintType, Blueprintable)
@@ -44,6 +46,13 @@ class SENSEGLOVE_API USGGameInstance : public UGameInstance
{ {
GENERATED_UCLASS_BODY() GENERATED_UCLASS_BODY()
public:
UFUNCTION(Exec, Category = "Console Command")
static void SG_GetEngineScalabilitySettings();
UFUNCTION(Exec, Category = "Console Command")
static void SG_SetEngineScalabilitySettings(ESGEngineScalabilitySettings Scalability);
public: public:
virtual void Init() override; virtual void Init() override;
virtual void Shutdown() override; virtual void Shutdown() override;