diff --git a/.idea/.idea.NERGUS.dir/.idea/.gitignore b/.idea/.idea.NERGUS.dir/.idea/.gitignore
new file mode 100644
index 0000000..0f12c2e
--- /dev/null
+++ b/.idea/.idea.NERGUS.dir/.idea/.gitignore
@@ -0,0 +1,15 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/.idea.NERGUS.iml
+/modules.xml
+/contentModel.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.NERGUS.dir/.idea/indexLayout.xml b/.idea/.idea.NERGUS.dir/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.NERGUS.dir/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.NERGUS.dir/.idea/vcs.xml b/.idea/.idea.NERGUS.dir/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.NERGUS.dir/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.NERGUS/.idea/.gitignore b/.idea/.idea.NERGUS/.idea/.gitignore
new file mode 100644
index 0000000..0f12c2e
--- /dev/null
+++ b/.idea/.idea.NERGUS/.idea/.gitignore
@@ -0,0 +1,15 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/.idea.NERGUS.iml
+/modules.xml
+/contentModel.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.NERGUS/.idea/indexLayout.xml b/.idea/.idea.NERGUS/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.NERGUS/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.NERGUS/.idea/vcs.xml b/.idea/.idea.NERGUS/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/.idea.NERGUS/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.vsconfig b/.vsconfig
new file mode 100644
index 0000000..3b919ea
--- /dev/null
+++ b/.vsconfig
@@ -0,0 +1,17 @@
+{
+ "version": "1.0",
+ "components": [
+ "Component.Unreal.Debugger",
+ "Component.Unreal.Ide",
+ "Microsoft.Net.Component.4.6.2.TargetingPack",
+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.ATL",
+ "Microsoft.VisualStudio.Component.VC.14.38.17.8.x86.x64",
+ "Microsoft.VisualStudio.Component.VC.Llvm.Clang",
+ "Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
+ "Microsoft.VisualStudio.Component.Windows11SDK.22621",
+ "Microsoft.VisualStudio.Workload.CoreEditor",
+ "Microsoft.VisualStudio.Workload.ManagedDesktop",
+ "Microsoft.VisualStudio.Workload.NativeDesktop",
+ "Microsoft.VisualStudio.Workload.NativeGame"
+ ]
+}
diff --git a/Content/FPP_baseball_bat/BaseballBat/M_lambert.uasset b/Content/FPP_baseball_bat/BaseballBat/M_lambert.uasset
new file mode 100644
index 0000000..9043948
--- /dev/null
+++ b/Content/FPP_baseball_bat/BaseballBat/M_lambert.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64026b4318e9852df6d9ad3503e05c571e9fbd3d69b89df059255456108c93ca
+size 74902
diff --git a/Content/FPP_baseball_bat/BaseballBat/SM_BaseballBat.uasset b/Content/FPP_baseball_bat/BaseballBat/SM_BaseballBat.uasset
new file mode 100644
index 0000000..ea16934
--- /dev/null
+++ b/Content/FPP_baseball_bat/BaseballBat/SM_BaseballBat.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2e74bb24b544adbaf821620742f043278d254f918929d3521034a621ff7a05f
+size 129022
diff --git a/Content/FPP_baseball_bat/Blueprints/DisplayAnimationName.uasset b/Content/FPP_baseball_bat/Blueprints/DisplayAnimationName.uasset
new file mode 100644
index 0000000..64364e4
--- /dev/null
+++ b/Content/FPP_baseball_bat/Blueprints/DisplayAnimationName.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3bf419613f861f1be9f42b993de8ec4c573cfd2e3362a3b8777b94c7561a4aba
+size 23146
diff --git a/Content/FPP_baseball_bat/Blueprints/FPP_Demo.uasset b/Content/FPP_baseball_bat/Blueprints/FPP_Demo.uasset
new file mode 100644
index 0000000..c4a1e8f
--- /dev/null
+++ b/Content/FPP_baseball_bat/Blueprints/FPP_Demo.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fd9bc1cf940acfae26f71149b2bc44d26d635999c9b63cdc6cb38ed5b2473a66
+size 244690
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/M_UE4Man_Body.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/M_UE4Man_Body.uasset
new file mode 100644
index 0000000..2439c09
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/M_UE4Man_Body.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e6541362cbe572e9b1df44ab95d6f7c3fae24edcb37e0bd943781cba862d2f6
+size 125474
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/M_UE4Man_ChestLogo.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/M_UE4Man_ChestLogo.uasset
new file mode 100644
index 0000000..ed137e7
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/M_UE4Man_ChestLogo.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56b15bf710ef5a71908bf8fdf83759d3f5f03307d5bcede792aeff620ce7de56
+size 91148
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset
new file mode 100644
index 0000000..f639f4b
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4080f30ce6b330052fd6180cfa27697d2847f560d1a21760856f9a5b2867128
+size 80438
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset
new file mode 100644
index 0000000..bef8161
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e756ccf4af65d139bdbc0b3cd7ce79facaad533c2cf9077d6dd5b002492d90bb
+size 76696
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset
new file mode 100644
index 0000000..0450ead
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:535a48efcffc10007e4b09493a1a38245ebb0742a211bc7b1cedf0ad4a4c0868
+size 80514
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Aluminum01.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Aluminum01.uasset
new file mode 100644
index 0000000..8eeb925
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Aluminum01.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2d7366913229e6574c8947f66cba51fe157536a99d4c1fd3737568ab1199571
+size 435236
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset
new file mode 100644
index 0000000..295fdbd
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b5111ce2897bfd4ce3ff36d7ccfdd68a97c8d0edcc3060db29d4cfc5d0a1741
+size 406105
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset
new file mode 100644
index 0000000..72844b1
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ac82c487372f15af303c73d544f29d37308694df0facc95dd1c50b931158987
+size 471622
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset
new file mode 100644
index 0000000..aefcc30
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:87d987d9f50fac7f511988c567ea8125ce93e93d4567547365daa9eb0f437f1e
+size 362966
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/SK_Mannequin.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/SK_Mannequin.uasset
new file mode 100644
index 0000000..01c954f
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/SK_Mannequin.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c091bf6a279c4c8a0c44a4c52cff19a8b899fc5614b6e3cfcdc3515b09663e72
+size 13109970
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/SK_Mannequin_PhysicsAsset.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/SK_Mannequin_PhysicsAsset.uasset
new file mode 100644
index 0000000..55adb6f
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/SK_Mannequin_PhysicsAsset.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74708a8fcfb7f20569332d02b7c4da728552063f0c086dc793194b1677deb8ac
+size 126554
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/UE4_Mannequin_Skeleton.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/UE4_Mannequin_Skeleton.uasset
new file mode 100644
index 0000000..7a0cb18
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Mesh/UE4_Mannequin_Skeleton.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1313332c57c8d98e8e2e0af9f3c94dac63481e6eb8010334333dfcdaaf76d1d4
+size 12671
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4Man_Logo_N.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4Man_Logo_N.uasset
new file mode 100644
index 0000000..efd0b07
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4Man_Logo_N.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e6046e20721aa1594a7734b0bb17b3ce370e671e2b7e2b82f6b192f4a6dbc7ff
+size 162614
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_LOGO_CARD.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_LOGO_CARD.uasset
new file mode 100644
index 0000000..98c36cb
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_LOGO_CARD.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c274f2f87106ac26c452a3fcaef0afab57b1cdd0ac79cabb29f5cba91c0bb363
+size 95999
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin_MAT_MASKA.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin_MAT_MASKA.uasset
new file mode 100644
index 0000000..324c3cf
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin_MAT_MASKA.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:adcd7610b6c016f1e0fd4cbea294d3a57c7951d1a405bcb96de554241e266dfc
+size 275732
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin__normals.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin__normals.uasset
new file mode 100644
index 0000000..421dfa1
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin__normals.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c0bd50828088e9a62030f643635433705e464da8f0c45d350472ab5c7352a86
+size 5481922
diff --git a/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin_occlusion_Mobile.uasset b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin_occlusion_Mobile.uasset
new file mode 100644
index 0000000..c57927b
--- /dev/null
+++ b/Content/FPP_baseball_bat/Mannequin/UE4_Mannequin/Textures/UE4_Mannequin_occlusion_Mobile.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:86dbf9100ed91555dd48613973584fc3562d2266930ffc2222508adc7b4d5224
+size 363184
diff --git a/Content/FPP_baseball_bat/Maps/Map.umap b/Content/FPP_baseball_bat/Maps/Map.umap
new file mode 100644
index 0000000..4884dcf
--- /dev/null
+++ b/Content/FPP_baseball_bat/Maps/Map.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0f828240fc90d4ef578a6d7f583e98bfe787a75bbed1ef50eb7beb8c34953d93
+size 679808
diff --git a/Content/FPP_baseball_bat/Maps/Map_BuiltData.uasset b/Content/FPP_baseball_bat/Maps/Map_BuiltData.uasset
new file mode 100644
index 0000000..a9e399b
--- /dev/null
+++ b/Content/FPP_baseball_bat/Maps/Map_BuiltData.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:09919dd23fe8248fea45b340ee3cff86e966b9bfdaeb17f1e909df9491d1cb90
+size 1382221
diff --git a/Content/FPP_baseball_bat/Maps/Overview.umap b/Content/FPP_baseball_bat/Maps/Overview.umap
new file mode 100644
index 0000000..7ef4d62
--- /dev/null
+++ b/Content/FPP_baseball_bat/Maps/Overview.umap
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9d09fc2b174586a6e0f6f2459d6d262fb31bd7e57221d2bc8b12d74bc7d0c68
+size 641424
diff --git a/Content/FPP_baseball_bat/Maps/Overview_BuiltData.uasset b/Content/FPP_baseball_bat/Maps/Overview_BuiltData.uasset
new file mode 100644
index 0000000..0ab962e
--- /dev/null
+++ b/Content/FPP_baseball_bat/Maps/Overview_BuiltData.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:29376f54ea8f3f3cf08c3e8f021b19528b5adab3b92909c831b56dcbbfae0b41
+size 1141398
diff --git a/Source/NERGUS/NERGUSCharacter.cpp b/Source/NERGUS/NERGUSCharacter.cpp
index 1b6b9ec..eaa9af0 100644
--- a/Source/NERGUS/NERGUSCharacter.cpp
+++ b/Source/NERGUS/NERGUSCharacter.cpp
@@ -9,6 +9,8 @@
#include "InputActionValue.h"
#include "GameFramework/CharacterMovementComponent.h"
#include "NERGUS.h"
+#include "Components/SphereComponent.h"
+#include "GameFramework/SpringArmComponent.h"
ANERGUSCharacter::ANERGUSCharacter()
{
@@ -18,20 +20,41 @@ ANERGUSCharacter::ANERGUSCharacter()
// Create the first person mesh that will be viewed only by this character's owner
FirstPersonMesh = CreateDefaultSubobject(TEXT("First Person Mesh"));
- FirstPersonMesh->SetupAttachment(GetMesh());
+
+
+ // Create the SpringArm Component
+ FirstPersonSpringArm = CreateDefaultSubobject(TEXT("First Person Spring Arm"));
+ FirstPersonSpringArm->SetupAttachment(RootComponent);
+
+ // Create the ArmSwaySphere
+ SwayComponent = CreateDefaultSubobject(TEXT("ArmSwaySphere"));
+ SwayComponent->SetupAttachment(FirstPersonSpringArm);
+
+ // FirstPersonMesh->SetupAttachment(GetMesh());
+ FirstPersonMesh->SetupAttachment(SwayComponent);
FirstPersonMesh->SetOnlyOwnerSee(true);
FirstPersonMesh->FirstPersonPrimitiveType = EFirstPersonPrimitiveType::FirstPerson;
FirstPersonMesh->SetCollisionProfileName(FName("NoCollision"));
-
+
+ // Create the Arm Mesh
+ FirstPersonArmMesh = CreateDefaultSubobject(TEXT("First person arm"));
+ FirstPersonArmMesh->SetupAttachment(SwayComponent);
+
// Create the Camera Component
FirstPersonCameraComponent = CreateDefaultSubobject(TEXT("First Person Camera"));
- FirstPersonCameraComponent->SetupAttachment(FirstPersonMesh, FName("head"));
+ //FirstPersonCameraComponent->SetupAttachment(FirstPersonMesh, FName("head"));
+ FirstPersonCameraComponent->SetupAttachment(FirstPersonArmMesh);
FirstPersonCameraComponent->SetRelativeLocationAndRotation(FVector(-2.8f, 5.89f, 0.0f), FRotator(0.0f, 90.0f, -90.0f));
FirstPersonCameraComponent->bUsePawnControlRotation = true;
FirstPersonCameraComponent->bEnableFirstPersonFieldOfView = true;
FirstPersonCameraComponent->bEnableFirstPersonScale = true;
FirstPersonCameraComponent->FirstPersonFieldOfView = 70.0f;
FirstPersonCameraComponent->FirstPersonScale = 0.6f;
+
+
+
+ // FirstPersoSpringArm = CreateDefaultSubobject(TEXT("First Person SpringArm"));
+ // FirstPersoSpringArm->SetupAttachment(RootComponent);
// configure the character comps
GetMesh()->SetOwnerNoSee(true);
@@ -40,8 +63,18 @@ ANERGUSCharacter::ANERGUSCharacter()
GetCapsuleComponent()->SetCapsuleSize(34.0f, 96.0f);
// Configure character movement
- GetCharacterMovement()->BrakingDecelerationFalling = 1500.0f;
- GetCharacterMovement()->AirControl = 0.5f;
+ //GetCharacterMovement()->BrakingDecelerationFalling = 1500.0f;
+ //GetCharacterMovement()->AirControl = 0.5f;
+}
+
+void ANERGUSCharacter::Tick(float DeltaTime)
+{
+ Super::Tick(DeltaTime);
+ if (IsLocallyControlled())
+ {
+ SwayFunction(DeltaTime);
+
+ }
}
void ANERGUSCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
@@ -50,7 +83,7 @@ void ANERGUSCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputCom
if (UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerInputComponent))
{
// Jumping
- EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Started, this, &ANERGUSCharacter::DoJumpStart);
+ EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Triggered, this, &ANERGUSCharacter::DoJumpStart);
EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ANERGUSCharacter::DoJumpEnd);
// Moving
@@ -67,6 +100,8 @@ void ANERGUSCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputCom
}
+
+
void ANERGUSCharacter::MoveInput(const FInputActionValue& Value)
{
// get the Vector2D move axis
@@ -80,10 +115,16 @@ void ANERGUSCharacter::MoveInput(const FInputActionValue& Value)
void ANERGUSCharacter::LookInput(const FInputActionValue& Value)
{
// get the Vector2D look axis
- FVector2D LookAxisVector = Value.Get();
+ const FVector2D LookAxisValue = Value.Get();
// pass the axis values to the aim input
- DoAim(LookAxisVector.X, LookAxisVector.Y);
+ // DoAim(LookAxisVector.X, LookAxisVector.Y);
+
+ AddControllerYawInput(LookAxisValue.X);
+ AddControllerPitchInput(LookAxisValue.Y);
+
+ CurrentLookInput = LookAxisValue;
+
}
@@ -118,3 +159,28 @@ void ANERGUSCharacter::DoJumpEnd()
// pass StopJumping to the character
StopJumping();
}
+
+void ANERGUSCharacter::SwayFunction(float DeltaTime)
+{
+ FRotator SwayRotation = SwayComponent->GetRelativeRotation();
+ FRotator LookTarget = FRotator(-CurrentLookInput.Y * 2.0f , CurrentLookInput.X * 2.0f , CurrentLookInput.X * 1.5f);
+
+ FVector CorrentVec = FVector(SwayRotation.Pitch,SwayRotation.Yaw,SwayRotation.Roll);
+ FVector TargetVec = FVector(LookTarget.Pitch,LookTarget.Yaw,LookTarget.Roll);
+
+ FVector SmoothedVec = UKismetMathLibrary::VectorSpringInterp(CorrentVec, TargetVec, SwaySpringState, 40.0f, 0.7f, DeltaTime, 1.0f);
+
+ GEngine->AddOnScreenDebugMessage(1,1,FColor::White,FString::Printf(TEXT("SmoothedVec X = %f"), SmoothedVec.X));
+
+ SmoothedVec.X = FMath::Clamp(SmoothedVec.X, -10.0f, 10.0f);
+ SmoothedVec.Y = FMath::Clamp(SmoothedVec.Y, -10.0f, 10.0f);
+ SmoothedVec.Z = FMath::Clamp(SmoothedVec.Z, -10.0f, 10.0f);
+
+ GEngine->AddOnScreenDebugMessage(1,1,FColor::White,FString::Printf(TEXT("SmoothedVec X = %f"), SmoothedVec.X));
+ GEngine->AddOnScreenDebugMessage(2,1,FColor::White,FString::Printf(TEXT("SmoothedVec Y = %f"), SmoothedVec.Y));
+ GEngine->AddOnScreenDebugMessage(3,1,FColor::White,FString::Printf(TEXT("SmoothedVec Z = %f"), SmoothedVec.Z));
+
+ SwayComponent->SetRelativeRotation(FRotator(SmoothedVec.X , SmoothedVec.Y , SmoothedVec.Z));
+
+ CurrentLookInput = FVector2D::ZeroVector;
+}
diff --git a/Source/NERGUS/NERGUSCharacter.h b/Source/NERGUS/NERGUSCharacter.h
index 4ff5af9..3d062f4 100644
--- a/Source/NERGUS/NERGUSCharacter.h
+++ b/Source/NERGUS/NERGUSCharacter.h
@@ -3,14 +3,19 @@
#pragma once
#include "CoreMinimal.h"
+#include "Components/SphereComponent.h"
#include "GameFramework/Character.h"
+#include "Kismet/KismetMathLibrary.h"
#include "Logging/LogMacros.h"
#include "NERGUSCharacter.generated.h"
class UInputComponent;
class USkeletalMeshComponent;
+class USpringArmComponent;
class UCameraComponent;
class UInputAction;
+class USceneComponent;
+
struct FInputActionValue;
DECLARE_LOG_CATEGORY_EXTERN(LogTemplateCharacter, Log, All);
@@ -30,6 +35,17 @@ class ANERGUSCharacter : public ACharacter
/** First person camera */
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true"))
UCameraComponent* FirstPersonCameraComponent;
+
+ /** First person SpringArm */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Components", meta = (AllowPrivateAccess = "true"))
+ USpringArmComponent* FirstPersonSpringArm;
+
+ /** Pawn mesh: first person view (arms; seen only by self) */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true"))
+ USkeletalMeshComponent* FirstPersonArmMesh;
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true"))
+ USphereComponent* SwayComponent;
protected:
@@ -49,6 +65,16 @@ protected:
UPROPERTY(EditAnywhere, Category ="Input")
class UInputAction* MouseLookAction;
+ UPROPERTY(EditAnywhere, Category="Sway")
+ FVector2D CurrentLookInput;
+
+ UPROPERTY(EditAnywhere, Category="Sway")
+ FVector2D CurrentMoveInput;
+
+ UPROPERTY(EditAnywhere, Category="Sway")
+ FVectorSpringState SwaySpringState;
+
+
public:
ANERGUSCharacter();
@@ -75,6 +101,9 @@ protected:
/** Handles jump end inputs from either controls or UI interfaces */
UFUNCTION(BlueprintCallable, Category="Input")
virtual void DoJumpEnd();
+
+ UFUNCTION(BlueprintCallable, Category="Sway")
+ void SwayFunction(float DeltaTime);
protected:
@@ -89,6 +118,9 @@ public:
/** Returns first person camera component **/
UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; }
+
+ virtual void Tick(float DeltaTime) override;
+
};