From 14c2724b5365b4229969b48e71645b79f8904099 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Tue, 23 Sep 2025 12:01:59 +0530 Subject: [PATCH 1/8] Git Ignore and Attributes --- unreal/ShooterGame/.gitattributes | 24 ++++++++++++++ unreal/ShooterGame/.gitignore | 54 +++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 unreal/ShooterGame/.gitattributes create mode 100644 unreal/ShooterGame/.gitignore diff --git a/unreal/ShooterGame/.gitattributes b/unreal/ShooterGame/.gitattributes new file mode 100644 index 00000000..c0f6ce8f --- /dev/null +++ b/unreal/ShooterGame/.gitattributes @@ -0,0 +1,24 @@ +# Unreal Engine file types. +*.uasset filter=lfs diff=lfs merge=lfs -text +*.umap filter=lfs diff=lfs merge=lfs -text + +# Raw Content file types. +*.3ds filter=lfs diff=lfs merge=lfs -text +*.bmp filter=lfs diff=lfs merge=lfs -text +*.exr filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.jpeg filter=lfs diff=lfs merge=lfs -text +*.jpg filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text +*.ogg filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.tga filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.xcf filter=lfs diff=lfs merge=lfs -text + +# Anything in `/RawContent` dir. +/RawContent/**/* filter=lfs diff=lfs merge=lfs -text diff --git a/unreal/ShooterGame/.gitignore b/unreal/ShooterGame/.gitignore new file mode 100644 index 00000000..a1c12fe6 --- /dev/null +++ b/unreal/ShooterGame/.gitignore @@ -0,0 +1,54 @@ +# Ignore all files by default, but scan all directories. +* +!*/ + +# Do not ignore git files in the root of the repo. +!/.git* + +# Do not ignore current project's `.uproject`. +!/*.uproject + +# Do not ignore source, config and plugins dirs. +!/Source/** +!/Config/** +!/Plugins/** + +# Only allow .uasset and .umap files from /Content dir. +# They're tracked by git-lfs, don't forget to track other +# files if adding them here. +!/Content/**/*.uasset +!/Content/**/*.umap + +# Allow any files from /RawContent dir. +# Any file in /RawContent dir will be managed by git lfs. +!/RawContent/**/* + +# OS/platform generated files. + +# Windows +ehthumbs.db +Thumbs.db + +# Mac OS X +.DS_Store +.DS_Store? +.AppleDouble +.LSOverride +._* + +# Linux +*~ +.directory + +# vim +[._]*.s[a-w][a-z] +[._]s[a-w][a-z] +*.un~ +Session.vim +.netrwhist + +# Visual Studio +.vs + +# JetBrains +.idea From 62069ecd645352dca94962faa04a39f0fbddb87a Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Tue, 23 Sep 2025 12:02:46 +0530 Subject: [PATCH 2/8] Unreal sample Project --- unreal/ShooterGame/Config/DefaultEditor.ini | 14 + .../DefaultEditorPerProjectUserSettings.ini | 2 + unreal/ShooterGame/Config/DefaultEngine.ini | 438 ++++++++++++++++++ unreal/ShooterGame/Config/DefaultGame.ini | 13 + unreal/ShooterGame/Config/DefaultInput.ini | 109 +++++ unreal/ShooterGame/Config/TVOS/TVOSGame.ini | 5 + .../Content/Anims/ABP_FP_Copy.uasset | 3 + .../Content/Anims/ABP_FP_Pistol.uasset | 3 + .../Content/Anims/ABP_FP_Weapon.uasset | 3 + .../Content/Anims/ABP_TP_Pistol.uasset | 3 + .../Content/Anims/ABP_TP_Rifle.uasset | 3 + .../Content/Anims/CtrlRig_FPWarp.uasset | 3 + .../Content/Anims/Ctrl_HandAdjusment.uasset | 3 + .../Anims/Ctrl_HandAdjusment_Pistol.uasset | 3 + .../Anims/FP_Rifle_Shoot_Montage.uasset | 3 + .../AI/BP_ShooterAIController.uasset | 3 + .../Blueprints/AI/BP_ShooterNPC.uasset | 3 + .../Blueprints/AI/EQS_FindRoamLocation.uasset | 3 + .../AI/EQS_FindSnipingLocation.uasset | 3 + .../Content/Blueprints/AI/ST_Shooter.uasset | 3 + .../AI/ST_Shooter_ShootAtTarget.uasset | 3 + .../Blueprints/BP_ShooterCharacter.uasset | 3 + .../Blueprints/BP_ShooterGameMode.uasset | 3 + .../BP_ShooterPlayerController.uasset | 3 + .../Blueprints/BP_ShooterPlayerState.uasset | 3 + .../Pickups/BP_ShooterPickup.uasset | 3 + .../Pickups/BP_ShooterWeaponBase.uasset | 3 + .../Blueprints/Pickups/DT_WeaponData.uasset | 3 + .../BP_ShooterGrenadeExplosion.uasset | 3 + .../BP_ShooterProjectile_Bullet.uasset | 3 + .../BP_ShooterProjectile_Grenade.uasset | 3 + .../Projectiles/Materials/M_Explosion.uasset | 3 + .../Projectiles/Meshes/SM_FoamBullet.uasset | 3 + .../BP_ShooterWeapon_GrenadeLauncher.uasset | 3 + .../Weapons/BP_ShooterWeapon_Pistol.uasset | 3 + .../Weapons/BP_ShooterWeapon_Rifle.uasset | 3 + .../Anims/Death/MM_Death_Back_01.uasset | 3 + .../Anims/Death/MM_Death_Front_01.uasset | 3 + .../Anims/Death/MM_Death_Front_02.uasset | 3 + .../Anims/Death/MM_Death_Front_03.uasset | 3 + .../Anims/Death/MM_Death_Left_01.uasset | 3 + .../Anims/Death/MM_Death_Right_01.uasset | 3 + .../Anims/Pistol/Aim/AO_Pistol.uasset | 3 + .../Pistol/Aim/MF_Pistol_Idle_ADS1.uasset | 3 + .../Aim/MF_Pistol_Idle_ADS_AO_CD.uasset | 3 + .../Aim/MF_Pistol_Idle_ADS_AO_CU.uasset | 3 + .../Anims/Pistol/Jog/MF_Pistol_Jog_Bwd.uasset | 3 + .../Pistol/Jog/MF_Pistol_Jog_Bwd_Left.uasset | 3 + .../Pistol/Jog/MF_Pistol_Jog_Bwd_Right.uasset | 3 + .../Anims/Pistol/Jog/MF_Pistol_Jog_Fwd.uasset | 3 + .../Pistol/Jog/MF_Pistol_Jog_Fwd_Left.uasset | 3 + .../Pistol/Jog/MF_Pistol_Jog_Fwd_Right.uasset | 3 + .../Pistol/Jog/MF_Pistol_Jog_Left.uasset | 3 + .../Pistol/Jog/MF_Pistol_Jog_Right.uasset | 3 + .../Jump/MM_Pistol_Jump_Fall_Loop.uasset | 3 + .../MM_Pistol_Jump_RecoveryAdditive.uasset | 3 + .../Pistol/Jump/MM_Pistol_Jump_Start.uasset | 3 + .../Anims/Pistol/MF_Pistol_Idle_ADS.uasset | 3 + .../Anims/Pistol/MM_Pistol_DryFire.uasset | 3 + .../Anims/Pistol/MM_Pistol_Equip.uasset | 3 + .../Anims/Pistol/MM_Pistol_Fire.uasset | 3 + .../Pistol/MM_Pistol_Fire_Montage.uasset | 3 + .../Anims/Pistol/MM_Pistol_Reload.uasset | 3 + .../Pistol/Walk/MF_Pistol_Walk_Bwd.uasset | 3 + .../Walk/MF_Pistol_Walk_Bwd_Left.uasset | 3 + .../Walk/MF_Pistol_Walk_Bwd_Right.uasset | 3 + .../Pistol/Walk/MF_Pistol_Walk_Fwd.uasset | 3 + .../Walk/MF_Pistol_Walk_Fwd_Left.uasset | 3 + .../Walk/MF_Pistol_Walk_Fwd_Right.uasset | 3 + .../Pistol/Walk/MF_Pistol_Walk_Left.uasset | 3 + .../Pistol/Walk/MF_Pistol_Walk_Right.uasset | 3 + .../Anims/Rifle/AIM/AO_Rifle.uasset | 3 + .../Rifle/AIM/MM_Rifle_Idle_ADS_AO_CC.uasset | 3 + .../Rifle/AIM/MM_Rifle_Idle_ADS_AO_CD.uasset | 3 + .../Rifle/AIM/MM_Rifle_Idle_ADS_AO_CU.uasset | 3 + .../HitReact/MM_HitReact_Back_Med_01.uasset | 3 + .../HitReact/MM_HitReact_Front_Hvy_01.uasset | 3 + .../HitReact/MM_HitReact_Front_Lgt_01.uasset | 3 + .../HitReact/MM_HitReact_Front_Lgt_02.uasset | 3 + .../HitReact/MM_HitReact_Front_Lgt_03.uasset | 3 + .../HitReact/MM_HitReact_Front_Lgt_04.uasset | 3 + .../HitReact/MM_HitReact_Front_Med_01.uasset | 3 + .../HitReact/MM_HitReact_Front_Med_02.uasset | 3 + .../Anims/Rifle/Jog/MF_Rifle_Jog_Bwd.uasset | 3 + .../Rifle/Jog/MF_Rifle_Jog_Bwd_Left.uasset | 3 + .../Rifle/Jog/MF_Rifle_Jog_Bwd_Right.uasset | 3 + .../Anims/Rifle/Jog/MF_Rifle_Jog_Fwd.uasset | 3 + .../Rifle/Jog/MF_Rifle_Jog_Fwd_Left.uasset | 3 + .../Rifle/Jog/MF_Rifle_Jog_Fwd_Right.uasset | 3 + .../Anims/Rifle/Jog/MF_Rifle_Jog_Left.uasset | 3 + .../Anims/Rifle/Jog/MF_Rifle_Jog_Right.uasset | 3 + .../Rifle/Jump/MM_Rifle_Jump_Apex.uasset | 3 + .../Rifle/Jump/MM_Rifle_Jump_Fall_Land.uasset | 3 + .../Rifle/Jump/MM_Rifle_Jump_Fall_Loop.uasset | 3 + .../MM_Rifle_Jump_RecoveryAdditive.uasset | 3 + .../Rifle/Jump/MM_Rifle_Jump_Start.uasset | 3 + .../Jump/MM_Rifle_Jump_Start_Loop.uasset | 3 + .../Anims/Rifle/MF_Rifle_Idle_ADS.uasset | 3 + .../Anims/Rifle/MM_Rifle_DryFire.uasset | 3 + .../Anims/Rifle/MM_Rifle_Equip.uasset | 3 + .../Anims/Rifle/MM_Rifle_Fire.uasset | 3 + .../Anims/Rifle/MM_Rifle_Reload.uasset | 3 + .../Anims/Rifle/Walk/MF_Rifle_Walk_Bwd.uasset | 3 + .../Rifle/Walk/MF_Rifle_Walk_Bwd_Left.uasset | 3 + .../Rifle/Walk/MF_Rifle_Walk_Bwd_Right.uasset | 3 + .../Anims/Rifle/Walk/MF_Rifle_Walk_Fwd.uasset | 3 + .../Rifle/Walk/MF_Rifle_Walk_Fwd_Left.uasset | 3 + .../Rifle/Walk/MF_Rifle_Walk_Fwd_Right.uasset | 3 + .../Rifle/Walk/MF_Rifle_Walk_Left.uasset | 3 + .../Rifle/Walk/MF_Rifle_Walk_Right.uasset | 3 + .../Anims/Unarmed/ABP_Unarmed.uasset | 3 + .../Anims/Unarmed/Attack/MM_Attack_01.uasset | 3 + .../Anims/Unarmed/Attack/MM_Attack_02.uasset | 3 + .../Anims/Unarmed/Attack/MM_Attack_03.uasset | 3 + .../Unarmed/Attack/MM_ChargedAttack.uasset | 3 + .../Anims/Unarmed/BS_Idle_Walk_Run.uasset | 3 + .../Unarmed/Jog/MF_Unarmed_Jog_Bwd.uasset | 3 + .../Jog/MF_Unarmed_Jog_Bwd_Left.uasset | 3 + .../Jog/MF_Unarmed_Jog_Bwd_Right.uasset | 3 + .../Unarmed/Jog/MF_Unarmed_Jog_Fwd.uasset | 3 + .../Jog/MF_Unarmed_Jog_Fwd_Left.uasset | 3 + .../Jog/MF_Unarmed_Jog_Fwd_Right.uasset | 3 + .../Unarmed/Jog/MF_Unarmed_Jog_Left.uasset | 3 + .../Unarmed/Jog/MF_Unarmed_Jog_Right.uasset | 3 + .../Anims/Unarmed/Jump/MM_Dash.uasset | 3 + .../Anims/Unarmed/Jump/MM_Fall_Loop.uasset | 3 + .../Anims/Unarmed/Jump/MM_Jump.uasset | 3 + .../Anims/Unarmed/Jump/MM_Land.uasset | 3 + .../Anims/Unarmed/Jump/MM_WallJump.uasset | 3 + .../Mannequins/Anims/Unarmed/MM_Idle.uasset | 3 + .../Unarmed/Walk/MF_Unarmed_Walk_Bwd.uasset | 3 + .../Walk/MF_Unarmed_Walk_Bwd_Left.uasset | 3 + .../Walk/MF_Unarmed_Walk_Bwd_Right.uasset | 3 + .../Unarmed/Walk/MF_Unarmed_Walk_Fwd.uasset | 3 + .../Walk/MF_Unarmed_Walk_Fwd_Left.uasset | 3 + .../Walk/MF_Unarmed_Walk_Fwd_Right.uasset | 3 + .../Unarmed/Walk/MF_Unarmed_Walk_Left.uasset | 3 + .../Unarmed/Walk/MF_Unarmed_Walk_Right.uasset | 3 + .../Mannequins/Materials/M_Mannequin.uasset | 3 + .../Materials/Manny/MI_Manny_01_New.uasset | 3 + .../Materials/Manny/MI_Manny_02_New.uasset | 3 + .../Materials/Quinn/MI_Quinn_01.uasset | 3 + .../Materials/Quinn/MI_Quinn_02.uasset | 3 + .../Mannequins/Meshes/SKM_Manny_Simple.uasset | 3 + .../Mannequins/Meshes/SKM_Quinn_Simple.uasset | 3 + .../Mannequins/Meshes/SK_Mannequin.uasset | 3 + .../Mannequins/Rigs/CR_Mannequin_Body.uasset | 3 + .../Rigs/CR_Mannequin_FootIK.uasset | 3 + .../Rigs/CR_Mannequin_Procedural.uasset | 3 + .../Mannequins/Rigs/PA_Mannequin.uasset | 3 + .../Textures/Manny/T_Manny_01_BN.uasset | 3 + .../Textures/Manny/T_Manny_01_D.uasset | 3 + .../Textures/Manny/T_Manny_01_MRA.uasset | 3 + .../Textures/Manny/T_Manny_02_BN.uasset | 3 + .../Textures/Manny/T_Manny_02_D.uasset | 3 + .../Textures/Manny/T_Manny_02_MRA.uasset | 3 + .../Textures/Manny/T_Manny_02_N.uasset | 3 + .../Textures/Quinn/T_Quinn_01_D.uasset | 3 + .../Textures/Quinn/T_Quinn_01_MRA.uasset | 3 + .../Textures/Quinn/T_Quinn_01_N.uasset | 3 + .../Textures/Quinn/T_Quinn_02_D.uasset | 3 + .../Textures/Quinn/T_Quinn_02_MRA.uasset | 3 + .../Textures/Quinn/T_Quinn_02_N.uasset | 3 + .../Textures/Shared/T_UE_Logo_M.uasset | 3 + .../Content/Input/Actions/IA_Jump.uasset | 3 + .../Content/Input/Actions/IA_Look.uasset | 3 + .../Content/Input/Actions/IA_MouseLook.uasset | 3 + .../Content/Input/Actions/IA_Move.uasset | 3 + .../Content/Input/Actions/IA_Shoot.uasset | 3 + .../Input/Actions/IA_SwapWeapon.uasset | 3 + .../Content/Input/IMC_Default.uasset | 3 + .../Content/Input/IMC_MouseLook.uasset | 3 + .../Content/Input/IMC_Weapons.uasset | 3 + .../Content/Input/Touch/TI_Controls.uasset | 3 + .../Door/Assets/Meshes/SM_Door.uasset | 3 + .../Assets/Meshes/SM_DoorFrame_Corner.uasset | 3 + .../Assets/Meshes/SM_DoorFrame_Edge.uasset | 3 + .../Interactable/Door/BP_DoorFrame.uasset | 3 + .../JumpPad/Assets/Materials/MI_GlowNT.uasset | 3 + .../Assets/Materials/M_GradientGlow.uasset | 3 + .../Assets/Materials/M_SimpleGlow.uasset | 3 + .../Assets/Meshes/SM_CircularBand.uasset | 3 + .../Assets/Meshes/SM_CircularGlow.uasset | 3 + .../JumpPad/Assets/NS_JumpPad.uasset | 3 + .../Interactable/JumpPad/BP_JumpPad.uasset | 3 + .../Target/Assets/SM_TargetBaseMesh.uasset | 3 + .../Target/BP_WobbleTarget.uasset | 3 + .../Materials/MF_ProcGrid.uasset | 3 + .../Materials/MI_DefaultColorway.uasset | 3 + .../Materials/MI_PrototypeGrid_Gray.uasset | 3 + .../Materials/MI_PrototypeGrid_Gray_02.uasset | 3 + .../Materials/MI_PrototypeGrid_TopDark.uasset | 3 + .../Materials/M_FlatCol.uasset | 3 + .../Materials/M_PrototypeGrid.uasset | 3 + .../Meshes/SM_ChamferCube.uasset | 3 + .../LevelPrototyping/Meshes/SM_Cube.uasset | 3 + .../Meshes/SM_Cylinder.uasset | 3 + .../Meshes/SM_QuarterCylinder.uasset | 3 + .../LevelPrototyping/Meshes/SM_Ramp.uasset | 3 + .../Textures/T_GridChecker_A.uasset | 3 + unreal/ShooterGame/Content/Levels/Game.umap | 3 + .../Content/Levels/Lvl_Shooter.umap | 3 + unreal/ShooterGame/Content/Levels/Menu.umap | 3 + .../Materials/MI_FirstPersonColorway.uasset | 3 + .../UI/Materials/MI_BulletCounter.uasset | 3 + .../UI/Materials/M_BulletCounter.uasset | 3 + .../ShooterGame/Content/UI/UI_Shooter.uasset | 3 + .../Content/UI/UI_ShooterBulletCounter.uasset | 3 + unreal/ShooterGame/Content/UI/WBP_Menu.uasset | 3 + .../FirstPersonTemplateWeaponFire02.uasset | 3 + .../Materials/M_GrenadeLauncher.uasset | 3 + .../Materials/M_ProjectileBullet.uasset | 3 + .../Meshes/FirstPersonProjectileMesh.uasset | 3 + .../Meshes/PA_GrenadeLauncher.uasset | 3 + .../Meshes/SKM_GrenadeLauncher.uasset | 3 + .../Meshes/SK_GrenadeLauncher.uasset | 3 + .../Meshes/SM_GrenadeLauncher.uasset | 3 + .../GrenadeLauncher/Textures/T_FPGun_M.uasset | 3 + .../GrenadeLauncher/Textures/T_FPGun_N.uasset | 3 + .../Pistol/Materials/MI_Weapon_Pistol.uasset | 3 + .../Weapons/Pistol/Meshes/PA_Pistol.uasset | 3 + .../Weapons/Pistol/Meshes/SKM_Pistol.uasset | 3 + .../Weapons/Pistol/Meshes/SK_Pistol.uasset | 3 + .../Weapons/Pistol/Meshes/SM_Pistol.uasset | 3 + .../Pistol/Textures/T_Pistol_AORM.uasset | 3 + .../Weapons/Pistol/Textures/T_Pistol_D.uasset | 3 + .../Pistol/Textures/T_Pistol_Masks.uasset | 3 + .../Weapons/Pistol/Textures/T_Pistol_N.uasset | 3 + .../Content/Weapons/Rifle/M_Weapon.uasset | 3 + .../Weapons/Rifle/Materials/M_Rifle.uasset | 3 + .../Weapons/Rifle/Materials/M_Weapon.uasset | 3 + .../Weapons/Rifle/Meshes/PA_Rifle.uasset | 3 + .../Weapons/Rifle/Meshes/SKM_Rifle.uasset | 3 + .../Weapons/Rifle/Meshes/SK_Rifle.uasset | 3 + .../Weapons/Rifle/Meshes/SM_Rifle.uasset | 3 + .../Weapons/Rifle/Textures/T_Rifle_BC.uasset | 3 + .../Weapons/Rifle/Textures/T_Rifle_N.uasset | 3 + .../Game/0/1I/MOTG5HR6Q8B0YH5WF1O0UX.uasset | 3 + .../Game/0/1K/1AX6LNFEHVWWJP5ZC03R34.uasset | 3 + .../Game/0/1U/31AKZZ5MXVP7IT5NH482SA.uasset | 3 + .../Game/0/9V/4VTBU083SKYLYIOFCVDYL9.uasset | 3 + .../Game/0/BK/5ZGHOGZVOUU8JA2KZQ0TY2.uasset | 3 + .../Game/0/DJ/XFLPMB8KWDHC1J9VQG65LE.uasset | 3 + .../Game/0/I2/J0OD74KO1MIDXVS0XY8PO1.uasset | 3 + .../Game/0/J3/RAP9JGR4URRL57YR17B1KX.uasset | 3 + .../Game/0/NE/7AFW75LD3RPH0B33FP8XSP.uasset | 3 + .../Game/0/O8/X9JWR8NOHNBUX3QOJRWIBC.uasset | 3 + .../Game/0/YX/N6BLWELN9QKXUNHA9BBLZR.uasset | 3 + .../Game/1/2N/35UCYP2K3XADZTJY7AX1O0.uasset | 3 + .../Game/1/3M/TCGT4IW2IHVF3O1F7DCBN5.uasset | 3 + .../Game/1/67/YNF8ZYXW7I2GGL2J7XEPKC.uasset | 3 + .../Game/1/7N/MWOZRZZ3R3UO7EHDF70LMQ.uasset | 3 + .../Game/1/8C/WLKHQ7MKX3WNGOAPRF0K2J.uasset | 3 + .../Game/1/A2/O5WFUF76QMXBRO0U4B6TJO.uasset | 3 + .../Game/1/CH/CTFBGZ2S5H1PZHM3CYNLB6.uasset | 3 + .../Game/1/CP/Q4IVQM473NLVFH80B0T1RI.uasset | 3 + .../Game/1/DI/9HZ2Y6XI7NL6W7TBH5JL51.uasset | 3 + .../Game/1/LL/8CP1AURJP2RI2CW1KZOEAO.uasset | 3 + .../Game/1/O4/AWX5OC6TQWPSNVW02NW1EN.uasset | 3 + .../Game/1/Q5/LADOWYM9T4BW5D1C5HD8K5.uasset | 3 + .../Game/1/SN/HU9WCTF3KVTHUQ8GTHUDE2.uasset | 3 + .../Game/1/X1/1IT45GJJ993V138MPTJCVX.uasset | 3 + .../Game/2/53/X4089AGR6WRPLJ0LR8242A.uasset | 3 + .../Game/2/5V/Q7ZOD3GNFW5FJL3Q164LUA.uasset | 3 + .../Game/2/B2/UW1KI1GF83R0WBXCLKLQC9.uasset | 3 + .../Game/2/OM/SRCA716MGR0QAR4BX13M9P.uasset | 3 + .../Game/2/V3/XWKXQOS7OLFQ2C6V2N1C4W.uasset | 3 + .../Game/2/YX/3AQ9E39S2LEH8R4WF13321.uasset | 3 + .../Game/2/ZC/26TA7OBRAXC8G82VS6ES2Y.uasset | 3 + .../Game/3/BV/4E8BUD6V9CJSF01978PP56.uasset | 3 + .../Game/3/ES/OQIGV3E7OEQUHN2HRS1IIM.uasset | 3 + .../Game/3/F8/59ZMR8WWJ2AW2CT7BM64QQ.uasset | 3 + .../Game/3/FN/YJES2CLEZNCDVH39AQ2746.uasset | 3 + .../Game/3/I9/0CVR8LDMAD7UYH2P8DB97N.uasset | 3 + .../Game/3/N4/YG6UFOU0TSM5SC76DG9COG.uasset | 3 + .../Game/3/TO/XLQBRDBOFS7M9FYE1UZKPG.uasset | 3 + .../Game/3/ZG/WEY7PK3IJNDPU7JIB760O5.uasset | 3 + .../Game/3/ZX/9W1SBCTD6YN8Z5PS0G2NRQ.uasset | 3 + .../Game/4/AO/HNKMXIU0H3XGZC4N1XA6ZN.uasset | 3 + .../Game/4/H7/E1KUGJCJ2IBBCBC5M3G218.uasset | 3 + .../Game/4/R2/VPN7Y6X38CVEIQD6EW7V4F.uasset | 3 + .../Game/4/WN/0QC03KSISZZ7TVBTGOIRD3.uasset | 3 + .../Game/4/YE/SGIRC7Q6NVWT1LQ6M2IPRV.uasset | 3 + .../Game/4/YS/5WJVWKE676UGGIP4V5BJ8S.uasset | 3 + .../Game/5/0G/MNT6MXL9NNBLIQC6BQGZZO.uasset | 3 + .../Game/5/11/HXSWXB8W8EN2GQYU543KRH.uasset | 3 + .../Game/5/2V/KIVIHUGRK6SF5S9JUNWDFE.uasset | 3 + .../Game/5/8J/VEJGNDF523MHRCGVVC2N6M.uasset | 3 + .../Game/5/98/XIJ6FLRPKL6UU74K9LRUP1.uasset | 3 + .../Game/5/HI/H5R9UZWIV7QOGUVYPU2STN.uasset | 3 + .../Game/5/KA/VENIUKR2QMRF54CG6GEY5U.uasset | 3 + .../Game/5/LX/S7FSS1RCMQI1ESOVHK3PF5.uasset | 3 + .../Game/5/WS/HDKFOPSZHAP1OAA9QA42RG.uasset | 3 + .../Game/5/YL/FRJS1L7DMBNXVT9RIC69OV.uasset | 3 + .../Game/6/4P/ONZA8WX7BUKU7W68Q7J8QR.uasset | 3 + .../Game/6/4S/1PCMJP3ZHUU786ZS7C3VD4.uasset | 3 + .../Game/6/CL/DDAVFPSSL4CB6WUSJXYCM3.uasset | 3 + .../Game/6/H3/C5HB5B8YSLIBO8M98S3Z3B.uasset | 3 + .../Game/6/HG/CUP7EHXJ8WRDAPB76Y4QHP.uasset | 3 + .../Game/6/KG/G19GN77UZ81FWYFBLAGCVA.uasset | 3 + .../Game/6/OM/EQG9DMAAA7T5F0G3UASAAS.uasset | 3 + .../Game/6/ST/C7FJT2X1C7LD7CDRIF5SNL.uasset | 3 + .../Game/7/BN/VBV89Q0B42C42JTIZ6OPDL.uasset | 3 + .../Game/7/EC/RHAUNQAJJMSZHRCX9N97YC.uasset | 3 + .../Game/7/JI/C47XCFL10REQHFY6Y2K29B.uasset | 3 + .../Game/7/PV/5NHB4VCJVNLTIITUTCMHP6.uasset | 3 + .../Game/7/SE/GYZ6BRP5K6C01Y7J03QDIZ.uasset | 3 + .../Game/7/VF/2503NOWHONAK6DEJPUSS0M.uasset | 3 + .../Game/8/3C/XEWDO8QZ67QP8WWXEG10QU.uasset | 3 + .../Game/8/9L/M5PLJQ18LJ1OF3R43834GP.uasset | 3 + .../Game/8/D1/WFBVU87ZMWGVTIK9492GL1.uasset | 3 + .../Game/8/M9/M4HC6J2NJ57R9I657D9OKW.uasset | 3 + .../Game/8/NV/9EOX3R070K7Q1HNEJ3Z50Q.uasset | 3 + .../Game/8/O4/XPZMTQ26JML0BUCVK1V9SJ.uasset | 3 + .../Game/8/O5/W0YFPSYGON5FORJNBIJZJ8.uasset | 3 + .../Game/8/TF/J5G69OJLDFUBLGWICW0BT7.uasset | 3 + .../Game/9/18/BEWKQY0ZG6DEKR25I1HL84.uasset | 3 + .../Game/9/40/ALMUA2RQC2JL9P4JDHBKVM.uasset | 3 + .../Game/9/4S/AE1OE3O2XW1GUANDOCU3U8.uasset | 3 + .../Game/9/58/ZFMBPFALSZGMPS3YHN1Z8B.uasset | 3 + .../Game/9/82/OBA1YJA4DAQ8SRE8L4DWB8.uasset | 3 + .../Game/9/9J/PFS69U6II2QIZK64NG8ECB.uasset | 3 + .../Game/9/CZ/TRSBD2QQIQQJVOKX427FOO.uasset | 3 + .../Game/9/KK/149M9RMRSBZ3AMMOFM6X76.uasset | 3 + .../Game/9/OC/3J1HLVQW9O00C30GNF7IHA.uasset | 3 + .../Game/9/Q6/96JCPIKXZ4CSYEW1II26CF.uasset | 3 + .../Game/9/UG/M7C024UOVLQVNDLCPFEF41.uasset | 3 + .../Game/A/6Z/4MM1U6K5CHN2X3U1ZN0PCF.uasset | 3 + .../Game/A/HP/C5K432JRQ1BYXT3FTD09T8.uasset | 3 + .../Game/A/IX/Z748QEZOJKJPVQA5HOVF19.uasset | 3 + .../Game/A/MH/T5JN8L0NNVBQZS81FAUTHP.uasset | 3 + .../Game/A/P0/NTQNIH1UNVQHI6TV3F5W8B.uasset | 3 + .../Game/A/PI/YM56N6ZIWAUXVFR8MUZZOO.uasset | 3 + .../Game/A/ZL/1JIGGUELJL1UHR87XFGF2L.uasset | 3 + .../Game/B/2N/NK7HUH3ZTN30G6QMG4HQEV.uasset | 3 + .../Game/B/6Q/X78TKFTDHW6W8VWR0MLNF6.uasset | 3 + .../Game/B/7T/OFCYKXQ4BTIPJAY9M2UON0.uasset | 3 + .../Game/B/9B/SB6UE7ZLVAMO27YUDXOOE0.uasset | 3 + .../Game/B/AF/HTT1ODAH8FRLXWSUWM6G08.uasset | 3 + .../Game/B/B8/LXC2FRJ0J9CP7DOL525NX1.uasset | 3 + .../Game/B/DH/DL0YKAW1ABM2DGHUXFW9NO.uasset | 3 + .../Game/B/GC/R846JUMVJFNX6QW9TT4Q0N.uasset | 3 + .../Game/B/LF/MRDUAOE75HGKRL2ZHFEZOJ.uasset | 3 + .../Game/B/LV/VPCHL3UWGIRF8TH9Z2TDFX.uasset | 3 + .../Game/B/QB/9HIIR1HQ10M8860SGIT1WH.uasset | 3 + .../Game/B/QH/97FCCPDBOWZUU5KBCV3VHZ.uasset | 3 + .../Game/B/YM/2O667IP38S1H66I3OTUNHD.uasset | 3 + .../Game/C/H0/6X2DM83060UJ6CIV0SM58Q.uasset | 3 + .../Game/C/IX/8D3DTQVWW86HPUIDF9ED2V.uasset | 3 + .../Game/C/PS/LCUC43S1O7M68CUVB01FPL.uasset | 3 + .../Game/C/V4/T109TNQNQD7VTBTOSI7GHI.uasset | 3 + .../Game/C/XB/C6DV771TPY5FASA3FXG08L.uasset | 3 + .../Game/D/24/LWIC4Q5NJDJRQLRT1U7JQZ.uasset | 3 + .../Game/D/60/M6F7N9WKG0W3S0XFEHFWEJ.uasset | 3 + .../Game/D/BV/O3UA8ZG0FDSNU2NCKB16QM.uasset | 3 + .../Game/D/EJ/GYZG8V8UDFXS3ZPLRYK2OS.uasset | 3 + .../Game/D/FW/4M9MKWCD7VUZY7IB8E3F87.uasset | 3 + .../Game/D/HL/0LV22MFZ3771CUYGGT7OYE.uasset | 3 + .../Game/D/RI/HBJTKGQJCWZHXG5YXZ7X14.uasset | 3 + .../Game/D/WC/A1043JYX0M2MXGJ7IKDK1P.uasset | 3 + .../Game/E/3N/IP10SCMUUFKDED6WVQ85C4.uasset | 3 + .../Game/E/DX/M9XHW0KG6QZ6X10PV03VKE.uasset | 3 + .../Game/E/E1/CE9XUEKVWMUGMSXMLM32D7.uasset | 3 + .../Game/E/EW/IHI5EDKUS1LAED7N3HK6WF.uasset | 3 + .../Game/E/F8/0F29CGXYPOLYNC2FSUP2NU.uasset | 3 + .../Game/E/O1/1XY7WT15UZT24CD722WI95.uasset | 3 + .../Game/E/VP/QGBW7PPDOSB1WZC94QGV5K.uasset | 3 + .../Game/E/XE/O07DDE14R625D7FPPLAQSH.uasset | 3 + .../Game/E/YG/TM1QIR2G2RXQJ9Q4OBWLZH.uasset | 3 + .../Game/F/4F/5MUSFJE514IFZ5HK4UEOZT.uasset | 3 + .../Game/2/X6/MF33859T2P8A9I2ZVG1ZDI.uasset | 3 + .../Game/3/7J/IC1YEU0V10AUIW2V42TJDX.uasset | 3 + .../Game/4/Y5/37JEJC3S60NBLU8H8SQKGD.uasset | 3 + .../Game/5/LZ/HQIR8Z7EQL5EIORY2VU8PG.uasset | 3 + .../Game/6/OY/1I6IX25631S7VVS258CSII.uasset | 3 + .../Game/6/YB/A52N4100UB88IQS7Q4SQA0.uasset | 3 + .../Game/8/Y1/YDLX7Q1HVK9WL6WSMUJ3FP.uasset | 3 + .../Game/9/72/R6U5L8AZNIIKFAAKU75EUM.uasset | 3 + .../Game/E/D7/XFWD7DTS8LFI2F9CTWCBKK.uasset | 3 + .../Game/F/56/89U85W6WD43YSJ2VUU9HBO.uasset | 3 + unreal/ShooterGame/ShooterGame.uproject | 35 ++ .../ShooterGame/Source/ShooterGame.Target.cs | 15 + .../Private/Actors/ShooterCharacter.cpp | 283 +++++++++++ .../Private/Actors/ShooterCharacterBase.cpp | 121 +++++ .../ShooterGame/Private/Actors/ShooterNPC.cpp | 208 +++++++++ .../Private/Actors/ShooterProjectile.cpp | 167 +++++++ .../Private/Actors/ShooterWeapon.cpp | 218 +++++++++ .../Controllers/ShooterAIController.cpp | 74 +++ .../Controllers/ShooterPlayerController.cpp | 138 ++++++ .../Private/DataTable/ShooterPickup.cpp | 108 +++++ .../Private/EQS/EnvQueryContext_Target.cpp | 27 ++ .../Private/Info/ShooterGameMode.cpp | 33 ++ .../Private/Info/ShooterGameState.cpp | 5 + .../Private/Info/ShooterPlayerState.cpp | 5 + .../Interfaces/ShooterWeaponHolder.cpp | 6 + .../ShooterGame/Private/ShooterGame.cpp | 8 + .../StateTree/ShooterStateTreeUtility.cpp | 366 +++++++++++++++ .../Private/UI/Widgets/MenuWidget.cpp | 94 ++++ .../UI/Widgets/ShooterBulletCounterUI.cpp | 41 ++ .../Private/UI/Widgets/ShooterUI.cpp | 21 + .../Public/Actors/ShooterCharacter.h | 166 +++++++ .../Public/Actors/ShooterCharacterBase.h | 94 ++++ .../ShooterGame/Public/Actors/ShooterNPC.h | 153 ++++++ .../Public/Actors/ShooterProjectile.h | 109 +++++ .../ShooterGame/Public/Actors/ShooterWeapon.h | 180 +++++++ .../Public/Controllers/ShooterAIController.h | 85 ++++ .../Controllers/ShooterPlayerController.h | 71 +++ .../Public/DataTable/ShooterPickup.h | 96 ++++ .../Public/EQS/EnvQueryContext_Target.h | 22 + .../ShooterGame/Public/Info/ShooterGameMode.h | 42 ++ .../Public/Info/ShooterGameState.h | 17 + .../Public/Info/ShooterPlayerState.h | 20 + .../Public/Interfaces/ShooterWeaponHolder.h | 55 +++ .../Source/ShooterGame/Public/ShooterGame.h | 8 + .../StateTree/ShooterStateTreeUtility.h | 309 ++++++++++++ .../Public/UI/Widgets/MenuWidget.h | 55 +++ .../UI/Widgets/ShooterBulletCounterUI.h | 48 ++ .../ShooterGame/Public/UI/Widgets/ShooterUI.h | 26 ++ .../Source/ShooterGame/ShooterGame.Build.cs | 28 ++ .../Source/ShooterGameEditor.Target.cs | 15 + 420 files changed, 5275 insertions(+) create mode 100644 unreal/ShooterGame/Config/DefaultEditor.ini create mode 100644 unreal/ShooterGame/Config/DefaultEditorPerProjectUserSettings.ini create mode 100644 unreal/ShooterGame/Config/DefaultEngine.ini create mode 100644 unreal/ShooterGame/Config/DefaultGame.ini create mode 100644 unreal/ShooterGame/Config/DefaultInput.ini create mode 100644 unreal/ShooterGame/Config/TVOS/TVOSGame.ini create mode 100644 unreal/ShooterGame/Content/Anims/ABP_FP_Copy.uasset create mode 100644 unreal/ShooterGame/Content/Anims/ABP_FP_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Anims/ABP_FP_Weapon.uasset create mode 100644 unreal/ShooterGame/Content/Anims/ABP_TP_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Anims/ABP_TP_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Anims/CtrlRig_FPWarp.uasset create mode 100644 unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment.uasset create mode 100644 unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Anims/FP_Rifle_Shoot_Montage.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterAIController.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterNPC.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/AI/EQS_FindRoamLocation.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/AI/EQS_FindSnipingLocation.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter_ShootAtTarget.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/BP_ShooterCharacter.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/BP_ShooterGameMode.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerController.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerState.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterPickup.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterWeaponBase.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/DT_WeaponData.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterGrenadeExplosion.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Bullet.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Grenade.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Materials/M_Explosion.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Meshes/SM_FoamBullet.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_GrenadeLauncher.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Back_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_02.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_03.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Left_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Right_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/AO_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS1.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CD.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CU.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Fall_Loop.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_RecoveryAdditive.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Start.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MF_Pistol_Idle_ADS.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_DryFire.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Equip.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire_Montage.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Reload.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/AO_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CC.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CD.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CU.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Back_Med_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Hvy_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_02.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_03.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_04.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_02.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Apex.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Land.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Loop.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_RecoveryAdditive.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start_Loop.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MF_Rifle_Idle_ADS.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_DryFire.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Equip.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Fire.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Reload.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/ABP_Unarmed.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_02.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_03.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_ChargedAttack.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/BS_Idle_Walk_Run.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Dash.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Fall_Loop.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Jump.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Land.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_WallJump.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/MM_Idle.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Left.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Right.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Materials/M_Mannequin.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_01_New.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_02_New.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_01.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_02.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_FootIK.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MRA.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MRA.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_D.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_MRA.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_N.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_D.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_MRA.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_N.uasset create mode 100644 unreal/ShooterGame/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset create mode 100644 unreal/ShooterGame/Content/Input/Actions/IA_Jump.uasset create mode 100644 unreal/ShooterGame/Content/Input/Actions/IA_Look.uasset create mode 100644 unreal/ShooterGame/Content/Input/Actions/IA_MouseLook.uasset create mode 100644 unreal/ShooterGame/Content/Input/Actions/IA_Move.uasset create mode 100644 unreal/ShooterGame/Content/Input/Actions/IA_Shoot.uasset create mode 100644 unreal/ShooterGame/Content/Input/Actions/IA_SwapWeapon.uasset create mode 100644 unreal/ShooterGame/Content/Input/IMC_Default.uasset create mode 100644 unreal/ShooterGame/Content/Input/IMC_MouseLook.uasset create mode 100644 unreal/ShooterGame/Content/Input/IMC_Weapons.uasset create mode 100644 unreal/ShooterGame/Content/Input/Touch/TI_Controls.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_Door.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Corner.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Edge.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/BP_DoorFrame.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/MI_GlowNT.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_GradientGlow.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_SimpleGlow.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularBand.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularGlow.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/NS_JumpPad.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/BP_JumpPad.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/Assets/SM_TargetBaseMesh.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/BP_WobbleTarget.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_DefaultColorway.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/M_FlatCol.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cube.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Ramp.uasset create mode 100644 unreal/ShooterGame/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset create mode 100644 unreal/ShooterGame/Content/Levels/Game.umap create mode 100644 unreal/ShooterGame/Content/Levels/Lvl_Shooter.umap create mode 100644 unreal/ShooterGame/Content/Levels/Menu.umap create mode 100644 unreal/ShooterGame/Content/Materials/MI_FirstPersonColorway.uasset create mode 100644 unreal/ShooterGame/Content/UI/Materials/MI_BulletCounter.uasset create mode 100644 unreal/ShooterGame/Content/UI/Materials/M_BulletCounter.uasset create mode 100644 unreal/ShooterGame/Content/UI/UI_Shooter.uasset create mode 100644 unreal/ShooterGame/Content/UI/UI_ShooterBulletCounter.uasset create mode 100644 unreal/ShooterGame/Content/UI/WBP_Menu.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Audio/FirstPersonTemplateWeaponFire02.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_GrenadeLauncher.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_ProjectileBullet.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/FirstPersonProjectileMesh.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/PA_GrenadeLauncher.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SKM_GrenadeLauncher.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SK_GrenadeLauncher.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SM_GrenadeLauncher.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_M.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_N.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Materials/MI_Weapon_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Meshes/PA_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SKM_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SK_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SM_Pistol.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_AORM.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_D.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_Masks.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_N.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/M_Weapon.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Weapon.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Meshes/PA_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SKM_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SK_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SM_Rifle.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_BC.uasset create mode 100644 unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_N.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1I/MOTG5HR6Q8B0YH5WF1O0UX.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1K/1AX6LNFEHVWWJP5ZC03R34.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1U/31AKZZ5MXVP7IT5NH482SA.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/9V/4VTBU083SKYLYIOFCVDYL9.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/BK/5ZGHOGZVOUU8JA2KZQ0TY2.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/DJ/XFLPMB8KWDHC1J9VQG65LE.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/I2/J0OD74KO1MIDXVS0XY8PO1.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/J3/RAP9JGR4URRL57YR17B1KX.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/NE/7AFW75LD3RPH0B33FP8XSP.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/O8/X9JWR8NOHNBUX3QOJRWIBC.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/YX/N6BLWELN9QKXUNHA9BBLZR.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/2N/35UCYP2K3XADZTJY7AX1O0.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/3M/TCGT4IW2IHVF3O1F7DCBN5.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/67/YNF8ZYXW7I2GGL2J7XEPKC.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/7N/MWOZRZZ3R3UO7EHDF70LMQ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/8C/WLKHQ7MKX3WNGOAPRF0K2J.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/A2/O5WFUF76QMXBRO0U4B6TJO.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CH/CTFBGZ2S5H1PZHM3CYNLB6.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CP/Q4IVQM473NLVFH80B0T1RI.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/DI/9HZ2Y6XI7NL6W7TBH5JL51.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/LL/8CP1AURJP2RI2CW1KZOEAO.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/O4/AWX5OC6TQWPSNVW02NW1EN.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/Q5/LADOWYM9T4BW5D1C5HD8K5.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/SN/HU9WCTF3KVTHUQ8GTHUDE2.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/X1/1IT45GJJ993V138MPTJCVX.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/53/X4089AGR6WRPLJ0LR8242A.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/5V/Q7ZOD3GNFW5FJL3Q164LUA.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/B2/UW1KI1GF83R0WBXCLKLQC9.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/OM/SRCA716MGR0QAR4BX13M9P.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/V3/XWKXQOS7OLFQ2C6V2N1C4W.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/YX/3AQ9E39S2LEH8R4WF13321.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/ZC/26TA7OBRAXC8G82VS6ES2Y.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/BV/4E8BUD6V9CJSF01978PP56.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ES/OQIGV3E7OEQUHN2HRS1IIM.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/F8/59ZMR8WWJ2AW2CT7BM64QQ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/FN/YJES2CLEZNCDVH39AQ2746.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/I9/0CVR8LDMAD7UYH2P8DB97N.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/N4/YG6UFOU0TSM5SC76DG9COG.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/TO/XLQBRDBOFS7M9FYE1UZKPG.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZG/WEY7PK3IJNDPU7JIB760O5.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZX/9W1SBCTD6YN8Z5PS0G2NRQ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/AO/HNKMXIU0H3XGZC4N1XA6ZN.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/H7/E1KUGJCJ2IBBCBC5M3G218.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/R2/VPN7Y6X38CVEIQD6EW7V4F.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/WN/0QC03KSISZZ7TVBTGOIRD3.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YE/SGIRC7Q6NVWT1LQ6M2IPRV.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YS/5WJVWKE676UGGIP4V5BJ8S.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/0G/MNT6MXL9NNBLIQC6BQGZZO.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/11/HXSWXB8W8EN2GQYU543KRH.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/2V/KIVIHUGRK6SF5S9JUNWDFE.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/8J/VEJGNDF523MHRCGVVC2N6M.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/98/XIJ6FLRPKL6UU74K9LRUP1.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/HI/H5R9UZWIV7QOGUVYPU2STN.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/KA/VENIUKR2QMRF54CG6GEY5U.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/LX/S7FSS1RCMQI1ESOVHK3PF5.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/WS/HDKFOPSZHAP1OAA9QA42RG.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/YL/FRJS1L7DMBNXVT9RIC69OV.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4P/ONZA8WX7BUKU7W68Q7J8QR.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4S/1PCMJP3ZHUU786ZS7C3VD4.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/CL/DDAVFPSSL4CB6WUSJXYCM3.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/H3/C5HB5B8YSLIBO8M98S3Z3B.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/HG/CUP7EHXJ8WRDAPB76Y4QHP.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/KG/G19GN77UZ81FWYFBLAGCVA.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/OM/EQG9DMAAA7T5F0G3UASAAS.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/ST/C7FJT2X1C7LD7CDRIF5SNL.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/BN/VBV89Q0B42C42JTIZ6OPDL.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/EC/RHAUNQAJJMSZHRCX9N97YC.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/JI/C47XCFL10REQHFY6Y2K29B.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/PV/5NHB4VCJVNLTIITUTCMHP6.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/SE/GYZ6BRP5K6C01Y7J03QDIZ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/VF/2503NOWHONAK6DEJPUSS0M.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/3C/XEWDO8QZ67QP8WWXEG10QU.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/9L/M5PLJQ18LJ1OF3R43834GP.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/D1/WFBVU87ZMWGVTIK9492GL1.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/M9/M4HC6J2NJ57R9I657D9OKW.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/NV/9EOX3R070K7Q1HNEJ3Z50Q.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O4/XPZMTQ26JML0BUCVK1V9SJ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O5/W0YFPSYGON5FORJNBIJZJ8.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/TF/J5G69OJLDFUBLGWICW0BT7.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/18/BEWKQY0ZG6DEKR25I1HL84.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/40/ALMUA2RQC2JL9P4JDHBKVM.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/4S/AE1OE3O2XW1GUANDOCU3U8.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/58/ZFMBPFALSZGMPS3YHN1Z8B.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/82/OBA1YJA4DAQ8SRE8L4DWB8.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/9J/PFS69U6II2QIZK64NG8ECB.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/CZ/TRSBD2QQIQQJVOKX427FOO.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/KK/149M9RMRSBZ3AMMOFM6X76.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/OC/3J1HLVQW9O00C30GNF7IHA.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/Q6/96JCPIKXZ4CSYEW1II26CF.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/UG/M7C024UOVLQVNDLCPFEF41.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/6Z/4MM1U6K5CHN2X3U1ZN0PCF.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/HP/C5K432JRQ1BYXT3FTD09T8.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/IX/Z748QEZOJKJPVQA5HOVF19.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/MH/T5JN8L0NNVBQZS81FAUTHP.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/P0/NTQNIH1UNVQHI6TV3F5W8B.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/PI/YM56N6ZIWAUXVFR8MUZZOO.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/ZL/1JIGGUELJL1UHR87XFGF2L.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/2N/NK7HUH3ZTN30G6QMG4HQEV.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/6Q/X78TKFTDHW6W8VWR0MLNF6.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/7T/OFCYKXQ4BTIPJAY9M2UON0.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/9B/SB6UE7ZLVAMO27YUDXOOE0.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/AF/HTT1ODAH8FRLXWSUWM6G08.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/B8/LXC2FRJ0J9CP7DOL525NX1.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/DH/DL0YKAW1ABM2DGHUXFW9NO.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/GC/R846JUMVJFNX6QW9TT4Q0N.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LF/MRDUAOE75HGKRL2ZHFEZOJ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LV/VPCHL3UWGIRF8TH9Z2TDFX.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QB/9HIIR1HQ10M8860SGIT1WH.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QH/97FCCPDBOWZUU5KBCV3VHZ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/YM/2O667IP38S1H66I3OTUNHD.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/H0/6X2DM83060UJ6CIV0SM58Q.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/IX/8D3DTQVWW86HPUIDF9ED2V.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/PS/LCUC43S1O7M68CUVB01FPL.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/V4/T109TNQNQD7VTBTOSI7GHI.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/XB/C6DV771TPY5FASA3FXG08L.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/24/LWIC4Q5NJDJRQLRT1U7JQZ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/60/M6F7N9WKG0W3S0XFEHFWEJ.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/BV/O3UA8ZG0FDSNU2NCKB16QM.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/EJ/GYZG8V8UDFXS3ZPLRYK2OS.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/FW/4M9MKWCD7VUZY7IB8E3F87.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/HL/0LV22MFZ3771CUYGGT7OYE.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/RI/HBJTKGQJCWZHXG5YXZ7X14.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/WC/A1043JYX0M2MXGJ7IKDK1P.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/3N/IP10SCMUUFKDED6WVQ85C4.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/DX/M9XHW0KG6QZ6X10PV03VKE.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/E1/CE9XUEKVWMUGMSXMLM32D7.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/EW/IHI5EDKUS1LAED7N3HK6WF.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/F8/0F29CGXYPOLYNC2FSUP2NU.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/O1/1XY7WT15UZT24CD722WI95.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/VP/QGBW7PPDOSB1WZC94QGV5K.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/XE/O07DDE14R625D7FPPLAQSH.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/YG/TM1QIR2G2RXQJ9Q4OBWLZH.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/F/4F/5MUSFJE514IFZ5HK4UEOZT.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/2/X6/MF33859T2P8A9I2ZVG1ZDI.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/3/7J/IC1YEU0V10AUIW2V42TJDX.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/4/Y5/37JEJC3S60NBLU8H8SQKGD.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/5/LZ/HQIR8Z7EQL5EIORY2VU8PG.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/OY/1I6IX25631S7VVS258CSII.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/YB/A52N4100UB88IQS7Q4SQA0.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/8/Y1/YDLX7Q1HVK9WL6WSMUJ3FP.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/9/72/R6U5L8AZNIIKFAAKU75EUM.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/E/D7/XFWD7DTS8LFI2F9CTWCBKK.uasset create mode 100644 unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/F/56/89U85W6WD43YSJ2VUU9HBO.uasset create mode 100644 unreal/ShooterGame/ShooterGame.uproject create mode 100644 unreal/ShooterGame/Source/ShooterGame.Target.cs create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacterBase.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterWeapon.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterAIController.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/DataTable/ShooterPickup.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/EQS/EnvQueryContext_Target.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameState.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterPlayerState.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/Interfaces/ShooterWeaponHolder.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/ShooterGame.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/StateTree/ShooterStateTreeUtility.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterBulletCounterUI.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterUI.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacter.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacterBase.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterAIController.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterPlayerController.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/DataTable/ShooterPickup.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/EQS/EnvQueryContext_Target.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameMode.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameState.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterPlayerState.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/Interfaces/ShooterWeaponHolder.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/ShooterGame.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/StateTree/ShooterStateTreeUtility.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterBulletCounterUI.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterUI.h create mode 100644 unreal/ShooterGame/Source/ShooterGame/ShooterGame.Build.cs create mode 100644 unreal/ShooterGame/Source/ShooterGameEditor.Target.cs diff --git a/unreal/ShooterGame/Config/DefaultEditor.ini b/unreal/ShooterGame/Config/DefaultEditor.ini new file mode 100644 index 00000000..497e554e --- /dev/null +++ b/unreal/ShooterGame/Config/DefaultEditor.ini @@ -0,0 +1,14 @@ +[UnrealEd.SimpleMap] +SimpleMapName=/Game/FirstPerson/Maps/FirstPersonExampleMap + +[EditoronlyBP] +bAllowClassAndBlueprintPinMatching=true +bReplaceBlueprintWithClass= true +bDontLoadBlueprintOutsideEditor= true +bBlueprintIsNotBlueprintType= true + +[/Script/AdvancedPreviewScene.SharedProfiles] ++Profiles=(ProfileName="Epic Headquarters",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,bShowGrid=False,EnvironmentColor=(R=0.200000,G=0.200000,B=0.200000,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=True,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureHighlightThresholdStrength=False,bOverride_LocalExposureShadowThresholdStrength=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldPetzvalBokeh=False,bOverride_DepthOfFieldPetzvalBokehFalloff=False,bOverride_DepthOfFieldPetzvalExclusionBoxExtents=False,bOverride_DepthOfFieldPetzvalExclusionBoxRadius=False,bOverride_DepthOfFieldAspectRatioScalar=False,bOverride_DepthOfFieldMatteBoxFlags=False,bOverride_DepthOfFieldBarrelRadius=False,bOverride_DepthOfFieldBarrelLength=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_RayTracingTranslucencyMaxPrimaryHitEvents=False,bOverride_RayTracingTranslucencyMaxSecondaryHitEvents=False,bOverride_RayTracingTranslucencyUseRayTracedRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenSkylightLeakingTint=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenSkylightLeakingTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=-10.000000,AutoExposureMaxBrightness=20.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-10.000000,HistogramLogMax=20.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureHighlightThresholdStrength=1.000000,LocalExposureShadowThresholdStrength=1.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldPetzvalBokeh=0.000000,DepthOfFieldPetzvalBokehFalloff=1.000000,DepthOfFieldPetzvalExclusionBoxExtents=(X=0.000000,Y=0.000000),DepthOfFieldPetzvalExclusionBoxRadius=0.000000,DepthOfFieldAspectRatioScalar=1.000000,DepthOfFieldBarrelRadius=5.000000,DepthOfFieldBarrelLength=0.000000,DepthOfFieldMatteBoxFlags[0]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[1]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[2]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyMaxPrimaryHitEvents=4,RayTracingTranslucencyMaxSecondaryHitEvents=2,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,RayTracingTranslucencyUseRayTracedRefraction=False,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=True,bShowMeshEdges=False) ++Profiles=(ProfileName="Grey Wireframe",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=1.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=1.000000,bRotateLightingRig=False,bShowEnvironment=False,bShowFloor=False,bShowGrid=True,EnvironmentColor=(R=0.039216,G=0.039216,B=0.039216,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",bPostProcessingEnabled=False,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureHighlightThresholdStrength=False,bOverride_LocalExposureShadowThresholdStrength=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldPetzvalBokeh=False,bOverride_DepthOfFieldPetzvalBokehFalloff=False,bOverride_DepthOfFieldPetzvalExclusionBoxExtents=False,bOverride_DepthOfFieldPetzvalExclusionBoxRadius=False,bOverride_DepthOfFieldAspectRatioScalar=False,bOverride_DepthOfFieldMatteBoxFlags=False,bOverride_DepthOfFieldBarrelRadius=False,bOverride_DepthOfFieldBarrelLength=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_RayTracingTranslucencyMaxPrimaryHitEvents=False,bOverride_RayTracingTranslucencyMaxSecondaryHitEvents=False,bOverride_RayTracingTranslucencyUseRayTracedRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenSkylightLeakingTint=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenSkylightLeakingTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=-10.000000,AutoExposureMaxBrightness=20.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-10.000000,HistogramLogMax=20.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureHighlightThresholdStrength=1.000000,LocalExposureShadowThresholdStrength=1.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldPetzvalBokeh=0.000000,DepthOfFieldPetzvalBokehFalloff=1.000000,DepthOfFieldPetzvalExclusionBoxExtents=(X=0.000000,Y=0.000000),DepthOfFieldPetzvalExclusionBoxRadius=0.000000,DepthOfFieldAspectRatioScalar=1.000000,DepthOfFieldBarrelRadius=5.000000,DepthOfFieldBarrelLength=0.000000,DepthOfFieldMatteBoxFlags[0]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[1]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[2]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyMaxPrimaryHitEvents=4,RayTracingTranslucencyMaxSecondaryHitEvents=2,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,RayTracingTranslucencyUseRayTracedRefraction=False,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=False,bShowMeshEdges=True) ++Profiles=(ProfileName="Grey Ambient",bSharedProfile=True,bIsEngineDefaultProfile=True,bUseSkyLighting=True,DirectionalLightIntensity=4.000000,DirectionalLightColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SkyLightIntensity=2.000000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,bShowGrid=True,EnvironmentColor=(R=0.200000,G=0.200000,B=0.200000,A=1.000000),EnvironmentIntensity=1.000000,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/T_GreyAmbient",bPostProcessingEnabled=False,PostProcessingSettings=(bOverride_TemperatureType=False,bOverride_WhiteTemp=False,bOverride_WhiteTint=False,bOverride_ColorSaturation=False,bOverride_ColorContrast=False,bOverride_ColorGamma=False,bOverride_ColorGain=False,bOverride_ColorOffset=False,bOverride_ColorSaturationShadows=False,bOverride_ColorContrastShadows=False,bOverride_ColorGammaShadows=False,bOverride_ColorGainShadows=False,bOverride_ColorOffsetShadows=False,bOverride_ColorSaturationMidtones=False,bOverride_ColorContrastMidtones=False,bOverride_ColorGammaMidtones=False,bOverride_ColorGainMidtones=False,bOverride_ColorOffsetMidtones=False,bOverride_ColorSaturationHighlights=False,bOverride_ColorContrastHighlights=False,bOverride_ColorGammaHighlights=False,bOverride_ColorGainHighlights=False,bOverride_ColorOffsetHighlights=False,bOverride_ColorCorrectionShadowsMax=False,bOverride_ColorCorrectionHighlightsMin=False,bOverride_ColorCorrectionHighlightsMax=False,bOverride_BlueCorrection=False,bOverride_ExpandGamut=False,bOverride_ToneCurveAmount=False,bOverride_FilmSlope=False,bOverride_FilmToe=False,bOverride_FilmShoulder=False,bOverride_FilmBlackClip=False,bOverride_FilmWhiteClip=False,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_ChromaticAberrationStartOffset=False,bOverride_bMegaLights=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomMethod=False,bOverride_BloomIntensity=False,bOverride_BloomThreshold=False,bOverride_Bloom1Tint=False,bOverride_Bloom1Size=False,bOverride_Bloom2Size=False,bOverride_Bloom2Tint=False,bOverride_Bloom3Tint=False,bOverride_Bloom3Size=False,bOverride_Bloom4Tint=False,bOverride_Bloom4Size=False,bOverride_Bloom5Tint=False,bOverride_Bloom5Size=False,bOverride_Bloom6Tint=False,bOverride_Bloom6Size=False,bOverride_BloomSizeScale=False,bOverride_BloomConvolutionTexture=False,bOverride_BloomConvolutionScatterDispersion=False,bOverride_BloomConvolutionSize=False,bOverride_BloomConvolutionCenterUV=False,bOverride_BloomConvolutionPreFilterMin=False,bOverride_BloomConvolutionPreFilterMax=False,bOverride_BloomConvolutionPreFilterMult=False,bOverride_BloomConvolutionBufferScale=False,bOverride_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_CameraShutterSpeed=False,bOverride_CameraISO=False,bOverride_AutoExposureMethod=False,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=False,bOverride_AutoExposureMaxBrightness=False,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=False,bOverride_AutoExposureBiasCurve=False,bOverride_AutoExposureMeterMask=False,bOverride_AutoExposureApplyPhysicalCameraExposure=False,bOverride_HistogramLogMin=False,bOverride_HistogramLogMax=False,bOverride_LocalExposureMethod=False,bOverride_LocalExposureHighlightContrastScale=False,bOverride_LocalExposureShadowContrastScale=False,bOverride_LocalExposureHighlightContrastCurve=False,bOverride_LocalExposureShadowContrastCurve=False,bOverride_LocalExposureHighlightThreshold=False,bOverride_LocalExposureShadowThreshold=False,bOverride_LocalExposureDetailStrength=False,bOverride_LocalExposureBlurredLuminanceBlend=False,bOverride_LocalExposureBlurredLuminanceKernelSizePercent=False,bOverride_LocalExposureHighlightThresholdStrength=False,bOverride_LocalExposureShadowThresholdStrength=False,bOverride_LocalExposureMiddleGreyBias=False,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=False,bOverride_Sharpen=False,bOverride_FilmGrainIntensity=False,bOverride_FilmGrainIntensityShadows=False,bOverride_FilmGrainIntensityMidtones=False,bOverride_FilmGrainIntensityHighlights=False,bOverride_FilmGrainShadowsMax=False,bOverride_FilmGrainHighlightsMin=False,bOverride_FilmGrainHighlightsMax=False,bOverride_FilmGrainTexelSize=False,bOverride_FilmGrainTexture=False,bOverride_AmbientOcclusionIntensity=False,bOverride_AmbientOcclusionStaticFraction=False,bOverride_AmbientOcclusionRadius=False,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=False,bOverride_AmbientOcclusionBias=False,bOverride_AmbientOcclusionQuality=False,bOverride_AmbientOcclusionMipBlend=False,bOverride_AmbientOcclusionMipScale=False,bOverride_AmbientOcclusionMipThreshold=False,bOverride_AmbientOcclusionTemporalBlendWeight=False,bOverride_RayTracingAO=False,bOverride_RayTracingAOSamplesPerPixel=False,bOverride_RayTracingAOIntensity=False,bOverride_RayTracingAORadius=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=False,bOverride_ColorGradingLUT=False,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldMinFstop=False,bOverride_DepthOfFieldBladeCount=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldSqueezeFactor=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldUseHairDepth=False,bOverride_DepthOfFieldPetzvalBokeh=False,bOverride_DepthOfFieldPetzvalBokehFalloff=False,bOverride_DepthOfFieldPetzvalExclusionBoxExtents=False,bOverride_DepthOfFieldPetzvalExclusionBoxRadius=False,bOverride_DepthOfFieldAspectRatioScalar=False,bOverride_DepthOfFieldMatteBoxFlags=False,bOverride_DepthOfFieldBarrelRadius=False,bOverride_DepthOfFieldBarrelLength=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurTargetFPS=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ReflectionMethod=False,bOverride_LumenReflectionQuality=False,bOverride_ScreenSpaceReflectionIntensity=False,bOverride_ScreenSpaceReflectionQuality=False,bOverride_ScreenSpaceReflectionMaxRoughness=False,bOverride_ScreenSpaceReflectionRoughnessScale=False,bOverride_UserFlags=False,bOverride_RayTracingReflectionsMaxRoughness=False,bOverride_RayTracingReflectionsMaxBounces=False,bOverride_RayTracingReflectionsSamplesPerPixel=False,bOverride_RayTracingReflectionsShadows=False,bOverride_RayTracingReflectionsTranslucency=False,bOverride_TranslucencyType=False,bOverride_RayTracingTranslucencyMaxRoughness=False,bOverride_RayTracingTranslucencyRefractionRays=False,bOverride_RayTracingTranslucencySamplesPerPixel=False,bOverride_RayTracingTranslucencyShadows=False,bOverride_RayTracingTranslucencyRefraction=False,bOverride_RayTracingTranslucencyMaxPrimaryHitEvents=False,bOverride_RayTracingTranslucencyMaxSecondaryHitEvents=False,bOverride_RayTracingTranslucencyUseRayTracedRefraction=False,bOverride_DynamicGlobalIlluminationMethod=False,bOverride_LumenSceneLightingQuality=False,bOverride_LumenSceneDetail=False,bOverride_LumenSceneViewDistance=False,bOverride_LumenSceneLightingUpdateSpeed=False,bOverride_LumenFinalGatherQuality=False,bOverride_LumenFinalGatherLightingUpdateSpeed=False,bOverride_LumenFinalGatherScreenTraces=False,bOverride_LumenMaxTraceDistance=False,bOverride_LumenDiffuseColorBoost=False,bOverride_LumenSkylightLeaking=False,bOverride_LumenSkylightLeakingTint=False,bOverride_LumenFullSkylightLeakingDistance=False,bOverride_LumenRayLightingMode=False,bOverride_LumenReflectionsScreenTraces=False,bOverride_LumenFrontLayerTranslucencyReflections=False,bOverride_LumenMaxRoughnessToTraceReflections=False,bOverride_LumenMaxReflectionBounces=False,bOverride_LumenMaxRefractionBounces=False,bOverride_LumenSurfaceCacheResolution=False,bOverride_RayTracingGI=False,bOverride_RayTracingGIMaxBounces=False,bOverride_RayTracingGISamplesPerPixel=False,bOverride_PathTracingMaxBounces=False,bOverride_PathTracingSamplesPerPixel=False,bOverride_PathTracingMaxPathIntensity=False,bOverride_PathTracingEnableEmissiveMaterials=False,bOverride_PathTracingEnableReferenceDOF=False,bOverride_PathTracingEnableReferenceAtmosphere=False,bOverride_PathTracingEnableDenoiser=False,bOverride_PathTracingIncludeEmissive=False,bOverride_PathTracingIncludeDiffuse=False,bOverride_PathTracingIncludeIndirectDiffuse=False,bOverride_PathTracingIncludeSpecular=False,bOverride_PathTracingIncludeIndirectSpecular=False,bOverride_PathTracingIncludeVolume=False,bOverride_PathTracingIncludeIndirectVolume=False,bMobileHQGaussian=False,BloomMethod=BM_SOG,AutoExposureMethod=AEM_Histogram,TemperatureType=TEMP_WhiteBalance,WhiteTemp=6500.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffset=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainShadows=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetShadows=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainMidtones=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetMidtones=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorSaturationHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorContrastHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGammaHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorGainHighlights=(X=1.000000,Y=1.000000,Z=1.000000,W=1.000000),ColorOffsetHighlights=(X=0.000000,Y=0.000000,Z=0.000000,W=0.000000),ColorCorrectionHighlightsMin=0.500000,ColorCorrectionHighlightsMax=1.000000,ColorCorrectionShadowsMax=0.090000,BlueCorrection=0.600000,ExpandGamut=1.000000,ToneCurveAmount=1.000000,FilmSlope=0.880000,FilmToe=0.550000,FilmShoulder=0.260000,FilmBlackClip=0.000000,FilmWhiteClip=0.040000,SceneColorTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),SceneFringeIntensity=0.000000,ChromaticAberrationStartOffset=0.000000,BloomIntensity=0.675000,BloomThreshold=-1.000000,BloomSizeScale=4.000000,Bloom1Size=0.300000,Bloom2Size=1.000000,Bloom3Size=2.000000,Bloom4Size=10.000000,Bloom5Size=30.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.346500,G=0.346500,B=0.346500,A=1.000000),Bloom2Tint=(R=0.138000,G=0.138000,B=0.138000,A=1.000000),Bloom3Tint=(R=0.117600,G=0.117600,B=0.117600,A=1.000000),Bloom4Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom5Tint=(R=0.066000,G=0.066000,B=0.066000,A=1.000000),Bloom6Tint=(R=0.061000,G=0.061000,B=0.061000,A=1.000000),BloomConvolutionScatterDispersion=1.000000,BloomConvolutionSize=1.000000,BloomConvolutionTexture=None,BloomConvolutionCenterUV=(X=0.500000,Y=0.500000),BloomConvolutionPreFilterMin=7.000000,BloomConvolutionPreFilterMax=15000.000000,BloomConvolutionPreFilterMult=15.000000,BloomConvolutionBufferScale=0.133000,BloomDirtMask=None,BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),DynamicGlobalIlluminationMethod=Lumen,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,LumenRayLightingMode=Default,LumenSceneLightingQuality=1.000000,LumenSceneDetail=1.000000,LumenSceneViewDistance=20000.000000,LumenSceneLightingUpdateSpeed=1.000000,LumenFinalGatherQuality=1.000000,LumenFinalGatherLightingUpdateSpeed=1.000000,LumenFinalGatherScreenTraces=True,LumenMaxTraceDistance=20000.000000,LumenDiffuseColorBoost=1.000000,LumenSkylightLeaking=0.000000,LumenSkylightLeakingTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LumenFullSkylightLeakingDistance=1000.000000,LumenSurfaceCacheResolution=1.000000,ReflectionMethod=Lumen,LumenReflectionQuality=1.000000,LumenReflectionsScreenTraces=True,LumenFrontLayerTranslucencyReflections=False,LumenMaxRoughnessToTraceReflections=0.400000,LumenMaxReflectionBounces=1,LumenMaxRefractionBounces=0,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=50.000000,ScreenSpaceReflectionMaxRoughness=0.600000,bMegaLights=True,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,CameraShutterSpeed=60.000000,CameraISO=100.000000,DepthOfFieldFstop=4.000000,DepthOfFieldMinFstop=1.200000,DepthOfFieldBladeCount=5,AutoExposureBias=1.000000,AutoExposureBiasBackup=0.000000,bOverride_AutoExposureBiasBackup=False,AutoExposureApplyPhysicalCameraExposure=True,AutoExposureBiasCurve=None,AutoExposureMeterMask=None,AutoExposureLowPercent=10.000000,AutoExposureHighPercent=90.000000,AutoExposureMinBrightness=-10.000000,AutoExposureMaxBrightness=20.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,HistogramLogMin=-10.000000,HistogramLogMax=20.000000,LocalExposureMethod=Bilateral,LocalExposureHighlightContrastScale=1.000000,LocalExposureShadowContrastScale=1.000000,LocalExposureHighlightContrastCurve=None,LocalExposureShadowContrastCurve=None,LocalExposureHighlightThreshold=0.000000,LocalExposureShadowThreshold=0.000000,LocalExposureDetailStrength=1.000000,LocalExposureBlurredLuminanceBlend=0.600000,LocalExposureBlurredLuminanceKernelSizePercent=50.000000,LocalExposureHighlightThresholdStrength=1.000000,LocalExposureShadowThresholdStrength=1.000000,LocalExposureMiddleGreyBias=0.000000,LensFlareIntensity=1.000000,LensFlareTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),LensFlareBokehSize=3.000000,LensFlareThreshold=8.000000,LensFlareBokehShape=None,LensFlareTints[0]=(R=1.000000,G=0.800000,B=0.400000,A=0.600000),LensFlareTints[1]=(R=1.000000,G=1.000000,B=0.600000,A=0.530000),LensFlareTints[2]=(R=0.800000,G=0.800000,B=1.000000,A=0.460000),LensFlareTints[3]=(R=0.500000,G=1.000000,B=0.400000,A=0.390000),LensFlareTints[4]=(R=0.500000,G=0.800000,B=1.000000,A=0.310000),LensFlareTints[5]=(R=0.900000,G=1.000000,B=0.800000,A=0.270000),LensFlareTints[6]=(R=1.000000,G=0.800000,B=0.400000,A=0.220000),LensFlareTints[7]=(R=0.900000,G=0.700000,B=0.700000,A=0.150000),VignetteIntensity=0.400000,Sharpen=0.000000,FilmGrainIntensity=0.000000,FilmGrainIntensityShadows=1.000000,FilmGrainIntensityMidtones=1.000000,FilmGrainIntensityHighlights=1.000000,FilmGrainShadowsMax=0.090000,FilmGrainHighlightsMin=0.500000,FilmGrainHighlightsMax=1.000000,FilmGrainTexelSize=1.000000,FilmGrainTexture=None,AmbientOcclusionIntensity=0.500000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=200.000000,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionPower=2.000000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=50.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,AmbientOcclusionTemporalBlendWeight=0.100000,RayTracingAO=False,RayTracingAOSamplesPerPixel=1,RayTracingAOIntensity=1.000000,RayTracingAORadius=200.000000,ColorGradingIntensity=1.000000,ColorGradingLUT=None,DepthOfFieldSensorWidth=24.576000,DepthOfFieldSqueezeFactor=1.000000,DepthOfFieldFocalDistance=0.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldUseHairDepth=False,DepthOfFieldPetzvalBokeh=0.000000,DepthOfFieldPetzvalBokehFalloff=1.000000,DepthOfFieldPetzvalExclusionBoxExtents=(X=0.000000,Y=0.000000),DepthOfFieldPetzvalExclusionBoxRadius=0.000000,DepthOfFieldAspectRatioScalar=1.000000,DepthOfFieldBarrelRadius=5.000000,DepthOfFieldBarrelLength=0.000000,DepthOfFieldMatteBoxFlags[0]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[1]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldMatteBoxFlags[2]=(Pitch=0.000000,Roll=0.000000,Length=0.000000),DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldOcclusion=0.400000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurTargetFPS=30,MotionBlurPerObjectSize=0.000000,TranslucencyType=Raster,RayTracingTranslucencyMaxRoughness=0.600000,RayTracingTranslucencyRefractionRays=3,RayTracingTranslucencySamplesPerPixel=1,RayTracingTranslucencyMaxPrimaryHitEvents=4,RayTracingTranslucencyMaxSecondaryHitEvents=2,RayTracingTranslucencyShadows=Hard_shadows,RayTracingTranslucencyRefraction=True,RayTracingTranslucencyUseRayTracedRefraction=False,PathTracingMaxBounces=32,PathTracingSamplesPerPixel=2048,PathTracingMaxPathIntensity=24.000000,PathTracingEnableEmissiveMaterials=True,PathTracingEnableReferenceDOF=False,PathTracingEnableReferenceAtmosphere=False,PathTracingEnableDenoiser=True,PathTracingIncludeEmissive=True,PathTracingIncludeDiffuse=True,PathTracingIncludeIndirectDiffuse=True,PathTracingIncludeSpecular=True,PathTracingIncludeIndirectSpecular=True,PathTracingIncludeVolume=True,PathTracingIncludeIndirectVolume=True,UserFlags=0,WeightedBlendables=(Array=)),LightingRigRotation=0.000000,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000),bEnableToneMapping=False,bShowMeshEdges=False) + diff --git a/unreal/ShooterGame/Config/DefaultEditorPerProjectUserSettings.ini b/unreal/ShooterGame/Config/DefaultEditorPerProjectUserSettings.ini new file mode 100644 index 00000000..220a5519 --- /dev/null +++ b/unreal/ShooterGame/Config/DefaultEditorPerProjectUserSettings.ini @@ -0,0 +1,2 @@ +[ContentBrowser] +ContentBrowserTab1.SelectedPaths=/Game/FirstPerson \ No newline at end of file diff --git a/unreal/ShooterGame/Config/DefaultEngine.ini b/unreal/ShooterGame/Config/DefaultEngine.ini new file mode 100644 index 00000000..a6ee334d --- /dev/null +++ b/unreal/ShooterGame/Config/DefaultEngine.ini @@ -0,0 +1,438 @@ +[/Script/Engine.CollisionProfile] ++Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True) ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False) ++EditProfiles=(Name="Trigger",CustomResponses=((Channel=Projectile, Response=ECR_Ignore))) + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Levels/Menu.Menu +LocalMapOptions= +TransitionMap=None +bUseSplitscreen=False +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +FourPlayerSplitscreenLayout=Grid +bOffsetPlayerGamepadIds=False +GameInstanceClass=/Script/Engine.GameInstance +GameDefaultMap=/Game/Levels/Menu.Menu +ServerDefaultMap=/Engine/Maps/Entry.Entry +GlobalDefaultGameMode=/Script/Engine.GameMode +GlobalDefaultServerGameMode=None + +[/Script/Engine.RendererSettings] +r.Mobile.ShadingPath=0 +r.Mobile.AllowDeferredShadingOpenGL=False +r.Mobile.SupportGPUScene=True +r.Mobile.AntiAliasing=1 +r.Mobile.FloatPrecisionMode=0 +r.Mobile.AllowDitheredLODTransition=False +r.Mobile.VirtualTextures=False +r.DiscardUnusedQuality=False +r.AllowOcclusionQueries=True +r.MinScreenRadiusForLights=0.030000 +r.MinScreenRadiusForDepthPrepass=0.030000 +r.PrecomputedVisibilityWarning=False +r.TextureStreaming=True +Compat.UseDXT5NormalMaps=False +r.VirtualTextures=True +r.VirtualTexturedLightmaps=False +r.VT.TileSize=128 +r.VT.TileBorderSize=4 +r.VT.AnisotropicFiltering=False +r.VT.EnableAutoImport=False +bEnableVirtualTextureOpacityMask=False +r.MeshPaintVirtualTexture.Support=True +r.MeshPaintVirtualTexture.TileSize=32 +r.MeshPaintVirtualTexture.TileBorderSize=2 +r.MeshPaintVirtualTexture.UseCompression=True +r.StaticMesh.DefaultMeshPaintTextureSupport=True +r.MeshPaintVirtualTexture.DefaultTexelsPerVertex=4 +r.MeshPaintVirtualTexture.MaxTextureSize=4096 +r.vt.rvt.EnableBaseColor=True +r.vt.rvt.EnableBaseColorRoughness=True +r.vt.rvt.EnableBaseColorSpecular=True +r.vt.rvt.EnableMask4=True +r.vt.rvt.EnableWorldHeight=True +r.vt.rvt.EnableDisplacement=True +r.vt.rvt.HighQualityPerPixelHeight=True +WorkingColorSpaceChoice=sRGB +RedChromaticityCoordinate=(X=0.640000,Y=0.330000) +GreenChromaticityCoordinate=(X=0.300000,Y=0.600000) +BlueChromaticityCoordinate=(X=0.150000,Y=0.060000) +WhiteChromaticityCoordinate=(X=0.312700,Y=0.329000) +r.LegacyLuminanceFactors=False +r.ClearCoatNormal=False +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.ReflectionCaptureResolution=128 +r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True +r.Lumen.HardwareRayTracing=True +r.Lumen.HardwareRayTracing.LightingMode=0 +r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=False +r.Lumen.TraceMeshSDFs=0 +r.Lumen.ScreenTracingSource=0 +r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject=True +r.MegaLights.EnableForProject=False +r.RayTracing.Shadows=False +r.Shadow.Virtual.Enable=1 +r.RayTracing=True +r.RayTracing.RayTracingProxies.ProjectEnabled=True +r.RayTracing.UseTextureLod=False +r.PathTracing=True +r.GenerateMeshDistanceFields=True +r.DistanceFields.DefaultVoxelDensity=0.200000 +r.Nanite.ProjectEnabled=True +r.AllowStaticLighting=False +r.NormalMapsForStaticLighting=False +r.ForwardShading=False +r.VertexFoggingForOpaque=True +r.SeparateTranslucency=False +r.TranslucentSortPolicy=0 +TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) +r.LocalFogVolume.ApplyOnTranslucent=False +xr.VRS.FoveationLevel=0 +xr.VRS.DynamicFoveation=False +r.CustomDepth=1 +r.CustomDepthTemporalAAJitter=True +r.PostProcessing.PropagateAlpha=False +r.Deferred.SupportPrimitiveAlphaHoldout=False +r.DefaultFeature.Bloom=False +r.DefaultFeature.AmbientOcclusion=False +r.DefaultFeature.AmbientOcclusionStaticFraction=True +r.DefaultFeature.AutoExposure=False +r.DefaultFeature.AutoExposure.Method=0 +r.DefaultFeature.AutoExposure.Bias=1.000000 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.LocalExposure.HighlightContrastScale=0.800000 +r.DefaultFeature.LocalExposure.ShadowContrastScale=0.800000 +r.DefaultFeature.MotionBlur=False +r.DefaultFeature.LensFlare=False +r.TemporalAA.Upsampling=True +r.AntiAliasingMethod=0 +r.MSAACount=4 +r.DefaultFeature.LightUnits=1 +r.DefaultBackBufferPixelFormat=4 +r.ScreenPercentage.Default=100.000000 +r.ScreenPercentage.Default.Desktop.Mode=1 +r.ScreenPercentage.Default.Mobile.Mode=0 +r.ScreenPercentage.Default.VR.Mode=0 +r.ScreenPercentage.Default.PathTracer.Mode=0 +r.Shadow.UnbuiltPreviewInGame=True +r.StencilForLODDither=False +r.EarlyZPass=3 +r.EarlyZPassOnlyMaterialMasking=False +r.Shadow.CSMCaching=False +r.DBuffer=True +r.ClearSceneMethod=1 +r.VelocityOutputPass=0 +r.Velocity.EnableVertexDeformation=2 +r.SelectiveBasePassOutputs=False +bDefaultParticleCutouts=False +fx.GPUSimulationTextureSizeX=1024 +fx.GPUSimulationTextureSizeY=1024 +r.AllowGlobalClipPlane=False +r.GBufferFormat=1 +r.MorphTarget.Mode=True +r.MorphTarget.MaxBlendWeight=5.000000 +r.SupportSkyAtmosphere=True +r.SupportSkyAtmosphereAffectsHeightFog=True +r.SupportExpFogMatchesVolumetricFog=False +r.SupportLocalFogVolumes=True +r.SupportCloudShadowOnForwardLitTranslucent=False +r.LightFunctionAtlas.Format=0 +r.VolumetricFog.LightFunction=True +r.Deferred.UsesLightFunctionAtlas=True +r.SingleLayerWater.UsesLightFunctionAtlas=False +r.Translucent.UsesLightFunctionAtlas=False +r.Translucent.UsesIESProfiles=False +r.Translucent.UsesRectLights=False +r.Translucent.UsesShadowedLocalLights=False +r.GPUCrashDebugging=False +vr.InstancedStereo=False +r.MobileHDR=True +vr.MobileMultiView=False +r.Mobile.UseHWsRGBEncoding=False +vr.RoundRobinOcclusion=False +r.MeshStreaming=False +r.HeterogeneousVolumes=True +r.HeterogeneousVolumes.Shadows=False +r.Translucency.HeterogeneousVolumes=False +r.WireframeCullThreshold=5.000000 +r.SupportStationarySkylight=True +r.SupportLowQualityLightmaps=True +r.SupportPointLightWholeSceneShadows=True +r.Shadow.TranslucentPerObject.ProjectEnabled=False +r.Water.SingleLayerWater.SupportCloudShadow=False +r.Substrate=False +r.Substrate.OpaqueMaterialRoughRefraction=False +r.Refraction.Blur=True +r.Substrate.Debug.AdvancedVisualizationShaders=False +r.Substrate.EnableLayerSupport=False +r.Material.RoughDiffuse=False +r.Material.EnergyConservation=False +r.Material.DefaultAutoMaterialUsage=True +r.OIT.SortedPixels=False +r.HairStrands.LODMode=True +r.SkinCache.CompileShaders=True +r.VRS.Support=True +r.SkinCache.SkipCompilingGPUSkinVF=False +r.SkinCache.DefaultBehavior=1 +r.SkinCache.SceneMemoryLimitInMB=128.000000 +r.Mobile.EnableStaticAndCSMShadowReceivers=True +r.Mobile.EnableMovableLightCSMShaderCulling=True +r.Mobile.Forward.EnableLocalLights=1 +r.Mobile.Forward.EnableClusteredReflections=False +r.Mobile.AllowDistanceFieldShadows=True +r.Mobile.EnableMovableSpotlightsShadow=False +r.GPUSkin.Support16BitBoneIndex=False +r.GPUSkin.Limit2BoneInfluences=False +r.SupportDepthOnlyIndexBuffers=False +r.SupportReversedIndexBuffers=False +r.Mobile.AmbientOcclusion=False +r.Mobile.DBuffer=False +r.GPUSkin.UnlimitedBoneInfluences=False +r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences=False +r.GPUSkin.UnlimitedBoneInfluencesThreshold=8 +DefaultBoneInfluenceLimit=(Default=0,PerPlatform=()) +MaxSkinBones=(Default=65536,PerPlatform=(("Mobile", 256))) +r.Mobile.ScreenSpaceReflections=False +r.Mobile.SupportsGen4TAA=True +bStreamSkeletalMeshLODs=(Default=False,PerPlatform=()) +bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=()) +VisualizeCalibrationColorMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor +VisualizeCalibrationCustomMaterialPath=None +VisualizeCalibrationGrayscaleMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=Default +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 + +[/Script/LinuxTargetPlatform.LinuxTargetSettings] +-TargetedRHIs=SF_VULKAN_SM5 ++TargetedRHIs=SF_VULKAN_SM6 + +[/Script/AIModule.AISystem] +bForgetStaleActors=True + +[/Script/Engine.Engine] +NearClipPlane=5.000000 + + ++ActiveGameNameRedirects=(OldGameName="TP_FirstPerson",NewGameName="/Script/ShooterGame") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_FirstPerson",NewGameName="/Script/ShooterGame") + ++ActiveClassRedirects=(OldClassName="TP_FirstPersonPlayerController",NewClassName="ShooterGamePlayerController") ++ActiveClassRedirects=(OldClassName="TP_FirstPersonCameraManager",NewClassName="ShooterGameCameraManager") ++ActiveClassRedirects=(OldClassName="TP_FirstPersonCharacter",NewClassName="ShooterCharacterBase") ++ActiveClassRedirects=(OldClassName="TP_FirstPersonGameMode",NewClassName="ShooterGameGameMode") + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Mobile +AppliedTargetedHardwareClass=Mobile +DefaultGraphicsPerformance=Scalable +AppliedDefaultGraphicsPerformance=Scalable + +[/Script/Slate.SlateSettings] +bExplicitCanvasChildZOrder=True + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=FFA0F524D14BAD4DF0D03E89755E9763 +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + +[/Script/MacTargetPlatform.MacTargetSettings] +-TargetedRHIs=SF_METAL_SM5 ++TargetedRHIs=SF_METAL_SM5 ++TargetedRHIs=SF_METAL_SM6 +EditorTargetArchitecture=MacTargetArchitectureUniversal +TargetArchitecture=MacTargetArchitectureUniversal +EditorDefaultArchitecture=MacTargetArchitectureHost +DefaultArchitecture=MacTargetArchitectureHost +bBuildAllSupportedOnBuildMachine=True +MetalLanguageVersion=7 +UseFastIntrinsics=False +EnableMathOptimisations=True +IndirectArgumentTier=0 +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +SoundCueCookQualityIndex=-1 + +[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] +PackageName=com.rahulksharma.shootergame +StoreVersion=5 +StoreVersionOffsetArm64=0 +StoreVersionOffsetX8664=0 +ApplicationDisplayName= +VersionDisplayName=1.0 +MinSDKVersion=26 +TargetSDKVersion=35 +InstallLocation=InternalOnly +bEnableLint=False +bPackageDataInsideApk=True +bCreateAllPlatformsInstall=True +bDisableVerifyOBBOnStartUp=False +bForceSmallOBBFiles=False +bAllowLargeOBBFiles=False +bAllowPatchOBBFile=False +bAllowOverflowOBBFiles=False +bDontBundleLibrariesInAPK=False +bUseExternalFilesDir=True +bPublicLogFiles=True +Orientation=SensorLandscape +MinAspectRatio=0.000000 +MaxAspectRatio=2.400000 +bUseDisplayCutout=True +bAllowResizing=True +bSupportSizeChanges=True +bRestoreNotificationsOnReboot=False +bFullScreen=True +bEnableNewKeyboard=True +DepthBufferPreference=Default +bValidateTextureFormats=True +bForceCompressNativeLibs=False +bEnableAdvancedBinaryCompression=True +bEnableBundle=True +bEnableUniversalAPK=True +bBundleABISplit=True +bBundleLanguageSplit=True +bBundleDensitySplit=True +ExtraApplicationSettings= +ExtraActivitySettings= ++ExtraPermissions=android.permission.READ_EXTERNAL_STORAGE ++ExtraPermissions=android.permission.WRITE_EXTERNAL_STORAGE ++ExtraPermissions=android.permission.INTERNET ++ExtraPermissions=com.android.vending.BILLING +bAndroidVoiceEnabled=False +bRecordPermissionAtStartupEnabled=False +bEnableMulticastSupport=False +bPackageForMetaQuest=False +bRemoveOSIG=False +KeyStore=ShooterGameDebug.keystore +KeyAlias=ShooterGame +KeyStorePassword=shooter +KeyPassword= +DebugKeyStore=ShooterGameDebug.keystore +DebugKeyAlias=ShooterGame +DebugKeyStorePassword=shooter +DebugKeyPassword= +bBuildForArm64=True +bBuildForX8664=False +bBuildForES31=True +bSupportsVulkan=True +bSupportsVulkanSM5=False +DebugVulkanLayerDirectory=(Path="") +bAndroidOpenGLSupportsBackbufferSampling=False +bForceEmulatorProfileSelectionInNonShippingBuilds=True +bDetectVulkanByDefault=True +bBuildWithHiddenSymbolVisibility=True +bCompressDebugSymbols=True +bDisableStackProtector=False +bDisableLibCppSharedDependencyValidation=False +bSaveSymbols=False +bStripShaderReflection=True +bEnableGooglePlaySupport=True +RequestCodeForPlayGamesActivities=80002 +PlayGamesClientId=351538062542-r3mcim0t755jv9vrucccatehnsi7nqvu.apps.googleusercontent.com +bForceRefreshToken=False +GamesAppID=351538062542 +bSupportAdMob=False +AdMobAppID= +TagForChildDirectedTreatment=TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED +TagForUnderAgeOfConsent=TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED +MaxAdContentRating=MAX_AD_CONTENT_RATING_G +AdMobAdUnitID= +GooglePlayLicenseKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlStRq12j+jgExjfQg9FGFgw8u+kK4E/YMNJzdFpUrbUxHmDizbhmeeZE3AGFz4rG26RNh/oUKzcIwUFoBDigrUPhKQLVpYuCKQsi4QTasamlNtNMS4sepwPmPsylmd81LjyWCAdHYs2u+BA1TJ45a96Z/bdFUP2vrMHBDr5jiuGsflLf7pIehqLJUumdEJ1Bp/TQ4bXBO+HB7tD3WERxRP6OmvcKe21VaP4ft1niUbVOwPtlpSxoiWUfMQmI3RPxaWUEfoqztsxje+xQpDQmawXANIGxSmLIc5OQz2WTYdW4y3dPl3VMRmk/HoerbxY0LjS5/p02INJqwnCG7FrxnQIDAQAB +GCMClientSenderID=351538062542 +bShowLaunchImage=True +bAllowIMU=False +bAllowControllers=True +bBlockAndroidKeysOnControllers=False +bControllersBlockDeviceFeedback=False +AudioSampleRate=44100 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=4 +AudioMaxChannels=0 +AudioNumSourceWorkers=0 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +SoundCueCookQualityIndex=-1 +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +AndroidGraphicsDebugger=None +MaliGraphicsDebuggerPath=(Path="") +bEnableMaliPerfCounters=False +bMultiTargetFormat_ETC2=True +bMultiTargetFormat_DXT=True +bMultiTargetFormat_ASTC=True +TextureFormatPriority_ETC2=0.200000 +TextureFormatPriority_DXT=0.600000 +TextureFormatPriority_ASTC=0.900000 +bASTCUseRDO=False +SDKAPILevelOverride= +NDKAPILevelOverride= +BuildToolsOverride= +bStreamLandscapeMeshLODs=False +bEnableDomStorage=False + +[CoreRedirects] ++PropertyRedirects=(OldName="/Script/ShooterGame.ShooterBulletCounterUI.DynamicMaterial",NewName="/Script/ShooterGame.ShooterBulletCounterUI.BulletCounterDynamicMaterial") ++ClassRedirects=(OldName="/Script/ShooterGame.ShooterGameCharacter",NewName="/Script/ShooterGame.ShooterCharacterBase") + +[OnlineSubsystem] +DefaultPlatformService=GooglePlay + +[OnlineSubsystemGooglePlay.Store] +bSupportsInAppPurchasing=True + diff --git a/unreal/ShooterGame/Config/DefaultGame.ini b/unreal/ShooterGame/Config/DefaultGame.ini new file mode 100644 index 00000000..421d2bcc --- /dev/null +++ b/unreal/ShooterGame/Config/DefaultGame.ini @@ -0,0 +1,13 @@ +[ProjectSettings] +ProjectID=(A=1823396784,B=1298598689,C=1743498150,D=-2048051708) +ProjectName=First Person Template + +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=79029212674B35BD92FCFCBEFDB07187 + +[/Script/UnrealEd.ProjectPackagingSettings] +FullRebuild=True +BuildConfiguration=PPBC_Shipping +ForDistribution=True +IncludeDebugFiles=True + diff --git a/unreal/ShooterGame/Config/DefaultInput.ini b/unreal/ShooterGame/Config/DefaultInput.ini new file mode 100644 index 00000000..b3cacf0b --- /dev/null +++ b/unreal/ShooterGame/Config/DefaultInput.ini @@ -0,0 +1,109 @@ +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Touch",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_ThumbRest",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton1",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_FaceButton2",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_IndexPointing",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_ThumbUp",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_ThumbRest",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_ThumbPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_IndexPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_MiddlePinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_RingPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Left_PinkPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_ThumbPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_IndexPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_MiddlePinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_RingPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusHand_Right_PinkPinchStrength",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent +DefaultTouchInterface=/Game/Input/Touch/TI_Controls.TI_Controls +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde + diff --git a/unreal/ShooterGame/Config/TVOS/TVOSGame.ini b/unreal/ShooterGame/Config/TVOS/TVOSGame.ini new file mode 100644 index 00000000..644a5ab5 --- /dev/null +++ b/unreal/ShooterGame/Config/TVOS/TVOSGame.ini @@ -0,0 +1,5 @@ + + +[/Script/UnrealEd.ProjectPackagingSettings] +BuildConfiguration=PPBC_Shipping + diff --git a/unreal/ShooterGame/Content/Anims/ABP_FP_Copy.uasset b/unreal/ShooterGame/Content/Anims/ABP_FP_Copy.uasset new file mode 100644 index 00000000..99aecd98 --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/ABP_FP_Copy.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c23602f0d2b4627097fbfe16204013d8a813569775536d5ea3a62a063b824e89 +size 57702 diff --git a/unreal/ShooterGame/Content/Anims/ABP_FP_Pistol.uasset b/unreal/ShooterGame/Content/Anims/ABP_FP_Pistol.uasset new file mode 100644 index 00000000..18066895 --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/ABP_FP_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b83fccf2a049f94adfb46d5d93093549d5c119ae9ac69307659143a442bec18f +size 230963 diff --git a/unreal/ShooterGame/Content/Anims/ABP_FP_Weapon.uasset b/unreal/ShooterGame/Content/Anims/ABP_FP_Weapon.uasset new file mode 100644 index 00000000..ff85c510 --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/ABP_FP_Weapon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2122ceb51ecfbba4d2f35a64de779530da379a45f37a26979f8dfb48e3f656d6 +size 230920 diff --git a/unreal/ShooterGame/Content/Anims/ABP_TP_Pistol.uasset b/unreal/ShooterGame/Content/Anims/ABP_TP_Pistol.uasset new file mode 100644 index 00000000..6ec91c74 --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/ABP_TP_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e3d214cee9d545d68d3e51d13e22ddb236b520fe186196143cf38cc7d62f7d4 +size 407924 diff --git a/unreal/ShooterGame/Content/Anims/ABP_TP_Rifle.uasset b/unreal/ShooterGame/Content/Anims/ABP_TP_Rifle.uasset new file mode 100644 index 00000000..a254684f --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/ABP_TP_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:844349f5e0a4bfe4aa9f628a3fa9a31f36d8c1314d89eb042bc354282ec8c34e +size 408597 diff --git a/unreal/ShooterGame/Content/Anims/CtrlRig_FPWarp.uasset b/unreal/ShooterGame/Content/Anims/CtrlRig_FPWarp.uasset new file mode 100644 index 00000000..4b922cde --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/CtrlRig_FPWarp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53b1e3d5baff477a95284d2ef21798a64b78f42595946207085c86400133566e +size 248680 diff --git a/unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment.uasset b/unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment.uasset new file mode 100644 index 00000000..d61f89f0 --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68192d0cdd56bbc36ee038c6d6f29718073a1f3b66bc0f8adb52dc8d9185616c +size 513482 diff --git a/unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment_Pistol.uasset b/unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment_Pistol.uasset new file mode 100644 index 00000000..e4358d5a --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/Ctrl_HandAdjusment_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:754df5bfed0abd62e2d0896e25438b9f34fcf24a0da8fe77fe760a3251b3502d +size 512745 diff --git a/unreal/ShooterGame/Content/Anims/FP_Rifle_Shoot_Montage.uasset b/unreal/ShooterGame/Content/Anims/FP_Rifle_Shoot_Montage.uasset new file mode 100644 index 00000000..2d9cfe5c --- /dev/null +++ b/unreal/ShooterGame/Content/Anims/FP_Rifle_Shoot_Montage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20268b4f9e952d1f236956031938a38fa2ad4c62ae7df635ebf5ba8d9c09b4d2 +size 11075 diff --git a/unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterAIController.uasset b/unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterAIController.uasset new file mode 100644 index 00000000..7e0fe1cf --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterAIController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2562da66d7ba4982251f515b4042ac60ef99ebc50aff21bad5b35f29d54a4a98 +size 24359 diff --git a/unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterNPC.uasset b/unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterNPC.uasset new file mode 100644 index 00000000..2eafa602 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/AI/BP_ShooterNPC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51b6e3c5e780af7ba764a9b0a372dadab308b7fb5717bd7a3ed1062a08555569 +size 37444 diff --git a/unreal/ShooterGame/Content/Blueprints/AI/EQS_FindRoamLocation.uasset b/unreal/ShooterGame/Content/Blueprints/AI/EQS_FindRoamLocation.uasset new file mode 100644 index 00000000..76ec8895 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/AI/EQS_FindRoamLocation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ea36d40223904366a92800a4e11155ac68bf646a57a22837a98e715c23395f4 +size 6290 diff --git a/unreal/ShooterGame/Content/Blueprints/AI/EQS_FindSnipingLocation.uasset b/unreal/ShooterGame/Content/Blueprints/AI/EQS_FindSnipingLocation.uasset new file mode 100644 index 00000000..fb276e20 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/AI/EQS_FindSnipingLocation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55a7bc0d6a2c3bb4a752702221ea4e4400071f98e507bbf19e18e25265094843 +size 9165 diff --git a/unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter.uasset b/unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter.uasset new file mode 100644 index 00000000..5450f1b0 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:256a3d1d7a4150dde24418e6be09863d4479f3a344f9b9febf0be55f4e5cacde +size 255828 diff --git a/unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter_ShootAtTarget.uasset b/unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter_ShootAtTarget.uasset new file mode 100644 index 00000000..b2a7a857 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/AI/ST_Shooter_ShootAtTarget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fdd1403ed89dace26ff0dd8c5cfb1bb1da554178469dd662f652e4a9d76a0b4 +size 105599 diff --git a/unreal/ShooterGame/Content/Blueprints/BP_ShooterCharacter.uasset b/unreal/ShooterGame/Content/Blueprints/BP_ShooterCharacter.uasset new file mode 100644 index 00000000..b156ebc0 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/BP_ShooterCharacter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6c3604fa61c2d6c1194962a776b9b194407a09a5ca242bfa6f3bc2d113695cb +size 60325 diff --git a/unreal/ShooterGame/Content/Blueprints/BP_ShooterGameMode.uasset b/unreal/ShooterGame/Content/Blueprints/BP_ShooterGameMode.uasset new file mode 100644 index 00000000..32ad54e9 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/BP_ShooterGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26f30113c9b310efc5e622da847b71df2418d3c4d1aaa0fda613ac5b0a56dc6d +size 22078 diff --git a/unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerController.uasset b/unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerController.uasset new file mode 100644 index 00000000..4d232d23 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c4ab3b91fbc08c44a09ee06856aff610e5504776c527fae17bef4cc796fcce1 +size 21810 diff --git a/unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerState.uasset b/unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerState.uasset new file mode 100644 index 00000000..d1ef7d1f --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/BP_ShooterPlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f7db9d50ccdfa6e3f9d8a2ffda8a187a94d0f06c9848633397723200903182b +size 21199 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterPickup.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterPickup.uasset new file mode 100644 index 00000000..927e95d4 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterPickup.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d121c61f8aee9fa5c2e87ed088e5ccedc3add5f7235abbae5506bf2e89e24df +size 82514 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterWeaponBase.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterWeaponBase.uasset new file mode 100644 index 00000000..ab689524 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/BP_ShooterWeaponBase.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7146f2f2561b87b437d494b65b9f1c00f38a757e06273297007f22a67f6419f4 +size 28424 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/DT_WeaponData.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/DT_WeaponData.uasset new file mode 100644 index 00000000..7d5a2620 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/DT_WeaponData.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b3d75f8bf28b054c164ed7cb9a806e239f424404fc59cf19330ea333c7decee +size 3122 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterGrenadeExplosion.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterGrenadeExplosion.uasset new file mode 100644 index 00000000..79cd557a --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterGrenadeExplosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f516780d4e0eebede522e17fb0a56e9e20572327f2a9a9b47217a16ecd925c2d +size 55297 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Bullet.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Bullet.uasset new file mode 100644 index 00000000..5517748d --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Bullet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ff4ef2163896254e161ec947884f89619663e813d61ab80b14048c77d441bf4 +size 113344 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Grenade.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Grenade.uasset new file mode 100644 index 00000000..f3eb38dc --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/BP_ShooterProjectile_Grenade.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11e08ae99fdee765ae932f506ac9eff7ead2cd77428b4d9bec232d6a66f13183 +size 36789 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Materials/M_Explosion.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Materials/M_Explosion.uasset new file mode 100644 index 00000000..c9632c3d --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Materials/M_Explosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5f3838df4c2a7ec70eea1086d27c7ecee18f8d14fd13cbed87ae1349dd592ae +size 28014 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Meshes/SM_FoamBullet.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Meshes/SM_FoamBullet.uasset new file mode 100644 index 00000000..28121d6d --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Projectiles/Meshes/SM_FoamBullet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:405fda715c80e2a4c91fbe9a58e95c94622e6a2c12176019088ee234acbc65fe +size 81386 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_GrenadeLauncher.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_GrenadeLauncher.uasset new file mode 100644 index 00000000..ef9bcf24 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_GrenadeLauncher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1d37033431b77b62e0f7effc4920e13e8053a880388dc89a83d8c32363e930e +size 37608 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Pistol.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Pistol.uasset new file mode 100644 index 00000000..f0d65088 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2cb2d89f085c6eebaca948f5e107b98ceab90a9844a610a6171dae971c94321b +size 37812 diff --git a/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Rifle.uasset b/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Rifle.uasset new file mode 100644 index 00000000..5e69194c --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/Pickups/Weapons/BP_ShooterWeapon_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:646ff4699e9de3fb78f4ca622b4d0d85600253e1e6a2b8ed453c9df368e6477b +size 36636 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Back_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Back_01.uasset new file mode 100644 index 00000000..c85a68e3 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Back_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdee63c4a4dc23076dda04b32eb8505bcd41fb791e574a264026c43e700bf923 +size 308880 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_01.uasset new file mode 100644 index 00000000..872ed0d2 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9daa694dda4639b106a29401712b03376344b301b6161955a92ba64ea60ae6d +size 308516 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_02.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_02.uasset new file mode 100644 index 00000000..4f2e86a5 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dda4f9d6a4c8fc3bf79458d4d2f490965ff01401256e90fdf98a938a58c61986 +size 314751 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_03.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_03.uasset new file mode 100644 index 00000000..433faf3b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Front_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf3a411d465002756eb1a19cdb2bef63b75a57a9fab7ce121ee71941e010d2cc +size 277478 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Left_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Left_01.uasset new file mode 100644 index 00000000..23913f53 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Left_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:712a25024fe931bd518fff6c935b82bc0ee2070a77caef63edd0d6fc7ff66508 +size 283231 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Right_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Right_01.uasset new file mode 100644 index 00000000..85225273 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Death/MM_Death_Right_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7968e7e1bc3d8e33c3f0d8479e6753d011ced0e05a831eb7f10e28ceb536b9a4 +size 302339 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/AO_Pistol.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/AO_Pistol.uasset new file mode 100644 index 00000000..09c6cb9d --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/AO_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4f2fca2458488be2d05cb2188bd641293d06bdcc4e598feee59ba1b23156c24 +size 8824 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS1.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS1.uasset new file mode 100644 index 00000000..de05dfe5 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d7113f1799219db01d8394c2984d5afd2957de07d66cfa463c9c33822e11d89 +size 2056489 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CD.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CD.uasset new file mode 100644 index 00000000..d8bcd5ec --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2898b38d8ef305d1d2e285f519be72cde7e2b0106bb85657fda47e35dc27b15d +size 170203 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CU.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CU.uasset new file mode 100644 index 00000000..87979a49 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Aim/MF_Pistol_Idle_ADS_AO_CU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5c5855b58743d51bf1abe11b470749f50ae6074fac734da446d1c4a9b076650 +size 173260 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd.uasset new file mode 100644 index 00000000..7c6b7a1d --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f93aacabf40a36d906896e5c5998e4a63445749efa25c973092b9ae82ef1477f +size 365135 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Left.uasset new file mode 100644 index 00000000..0070124c --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc8a45c6259a8a51808ff3de4688302a65ce4988a05a5b0f70fbced01001ea6b +size 255387 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Right.uasset new file mode 100644 index 00000000..83ee01fb --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Bwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6f80eb946a12e3056a53d67b8134f5e9bd028eb66333a8a665c13d6cf14d1ee +size 255329 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd.uasset new file mode 100644 index 00000000..3df932ac --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caba32a2584600031bca7cec76875e50eb80e4c1d6fea3e249f2532388d4f221 +size 432796 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Left.uasset new file mode 100644 index 00000000..becca7d1 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ed2295bbfbbe7800395b2fc2023e082f6c9b2b7127dd6ceb5c7ec055486c39b +size 309345 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Right.uasset new file mode 100644 index 00000000..8eae18bf --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Fwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d80c0c9bb0a8fae52095506f7f83c42bdd11b4d62ebfe57b1d9c7f40e8a9478a +size 309527 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Left.uasset new file mode 100644 index 00000000..da2b6e2f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d8fcf3a8b6e581f4d06bc4fe2b307e1dcdcc7432cc114173c201a0115cad2c9 +size 310960 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Right.uasset new file mode 100644 index 00000000..af99ac76 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jog/MF_Pistol_Jog_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:017f902b0a80b4fff2115c5c39f640b7622ad562a0ec137d25aae61d511d0b53 +size 354844 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Fall_Loop.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Fall_Loop.uasset new file mode 100644 index 00000000..3fe2d393 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Fall_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b01836fa36515fcb523644e82f2f130289a69a14314b6b939d5a580b3c5950e +size 255338 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_RecoveryAdditive.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_RecoveryAdditive.uasset new file mode 100644 index 00000000..f91bd42a --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_RecoveryAdditive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9935321b5ee3fe9445cfa2a6c9f0d0391d888fbb9db71b1eaf76b3bc5345d6d +size 268356 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Start.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Start.uasset new file mode 100644 index 00000000..dd5b3ba9 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Jump/MM_Pistol_Jump_Start.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58c1e69b2690611740c465f92e3763fd9747b9a6e75fe6a7629b16c5fcc37e7a +size 144542 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MF_Pistol_Idle_ADS.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MF_Pistol_Idle_ADS.uasset new file mode 100644 index 00000000..9c0c6c1a --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MF_Pistol_Idle_ADS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:766a02544f06604946d8c47c47c6bb877e14208904306188bc1f5b174fd7715b +size 2068319 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_DryFire.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_DryFire.uasset new file mode 100644 index 00000000..5934d4a6 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_DryFire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64b3c6dc7357f8a1b380057ef76e1cbb984d69e7d0732eaefd70befe2be7b67f +size 250601 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Equip.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Equip.uasset new file mode 100644 index 00000000..d587bf4a --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Equip.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f5a1ed2c1b72a9bb27b417cb0d5315440af2b22b7b846254fbce50e2fbb3d17 +size 360966 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire.uasset new file mode 100644 index 00000000..c91f713a --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ebd8467dbb3de5ba0e1b2eac0092352e270b37e616bc443872341cde2f5c22d8 +size 186765 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire_Montage.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire_Montage.uasset new file mode 100644 index 00000000..7ed013ad --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Fire_Montage.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2eabacc1911be6c5b0dff7cf8a5c29c0506a25ffa6f3e7fa5946e76f992e38ee +size 10119 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Reload.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Reload.uasset new file mode 100644 index 00000000..e0d89c5d --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/MM_Pistol_Reload.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a821a774302ce5121efff744620da09587752290e35e4413b8e40db8ad9c0391 +size 479562 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd.uasset new file mode 100644 index 00000000..02f72394 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:704dd7e116a755b086a8d685321f23e332bba6cb77dd6ae95542d38c462feb9b +size 545138 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Left.uasset new file mode 100644 index 00000000..9bf73a94 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fff084ed3ca270a8d926f810f078a69347507851744cf399f3142c97e36e2fa6 +size 450957 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Right.uasset new file mode 100644 index 00000000..3433b012 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Bwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26a82255db90c0dc4e8c01d52a55f73b5f5a532ef161812faf63be65869f3504 +size 451022 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd.uasset new file mode 100644 index 00000000..fd5ea120 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ac6171e3b841b09fff67dc4162b0c70f99f3107f549a20a213d5e05405dc69e +size 474209 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Left.uasset new file mode 100644 index 00000000..1b7772a6 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdd682c2a45cf6a73a34df6499f8bb4ccf8b68a42b8888c47b8532bfecb200d1 +size 374604 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Right.uasset new file mode 100644 index 00000000..7d4b7afb --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Fwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9b42e230d6fdf9f4f836592507c3f8a17dfd76d7b054b78b633a11722f94100 +size 374748 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Left.uasset new file mode 100644 index 00000000..e9476dce --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc5f5b9f355e755023d1aa153070a073156f6d902b08e7cf78463f5e0bc8f629 +size 580040 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Right.uasset new file mode 100644 index 00000000..64066c58 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Pistol/Walk/MF_Pistol_Walk_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e72f68c9a306ec44f7bc4f37e3533f2918ee19d99a1d8e60986036f2a4405d68 +size 498997 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/AO_Rifle.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/AO_Rifle.uasset new file mode 100644 index 00000000..c1aa1e4b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/AO_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3cfb9e380d881fa8561df0515f4ff24d96af4d3e1430df829c7ede641a12b1d +size 10402 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CC.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CC.uasset new file mode 100644 index 00000000..3ba8298b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9521c1941980dc784cedb3df736d7c1edf56afaa0201f28b41c5ae9923e88bbb +size 94995 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CD.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CD.uasset new file mode 100644 index 00000000..f7924fd4 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:09b2c98aa7778b6a970b0d90882555cf920c03d761f1e50bb3feaf0e3c9a6fef +size 94882 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CU.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CU.uasset new file mode 100644 index 00000000..87d829d3 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/AIM/MM_Rifle_Idle_ADS_AO_CU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60969c39ff3c1bd1e30e7c728a9dbe49c236857659b1ae8d20ae7605d8152324 +size 95154 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Back_Med_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Back_Med_01.uasset new file mode 100644 index 00000000..7b4194de --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Back_Med_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecb41ae9339d797408a7b9c0270dc1f917b680a21f1c189ac0e3890f41185e0b +size 252342 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Hvy_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Hvy_01.uasset new file mode 100644 index 00000000..483ec0bc --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Hvy_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5caf5938c73d131c9254c1af09cb7fd4335516c9a406be77c17ad5e1f2cdebe +size 247961 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_01.uasset new file mode 100644 index 00000000..dbd78898 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae8728f698434dd1e63978d5d92c5984d086d7ee39ce618598122b6fa87dc820 +size 224756 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_02.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_02.uasset new file mode 100644 index 00000000..d3187020 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcb6c068d81d5be1d84c88895805eb29c2f3f345668a10884836f00759b0647b +size 238345 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_03.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_03.uasset new file mode 100644 index 00000000..a09a2a25 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3949df1228e6c14047477538424f9440216915a0637da33cf6c7298400128073 +size 281622 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_04.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_04.uasset new file mode 100644 index 00000000..98999641 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Lgt_04.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0ed26de9c333968631cc040e82aebac289a2fd655a1f348a3b09ce3b40f1ef5 +size 318893 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_01.uasset new file mode 100644 index 00000000..465ace34 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cca3c893d68d8270a9eec9eb7572f7ed6bfcfdf6ce6345dc8b2860d6135dbe00 +size 225043 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_02.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_02.uasset new file mode 100644 index 00000000..ce6866f2 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/HitReact/MM_HitReact_Front_Med_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3acb6956f9eb6512e386b575c4c3e390f7d0280b037ca52e0eef813fb1f729d6 +size 234402 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd.uasset new file mode 100644 index 00000000..de688c38 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fd489f5c8d4d63e84f8a25c2db46c3ae54eae828212b2a32622726e593b5d3c +size 582054 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Left.uasset new file mode 100644 index 00000000..79072a7f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3939c4aa298e6be0834256ef6f642cff0465a40d676ec7e464aaf504b44f729 +size 458365 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Right.uasset new file mode 100644 index 00000000..e42e504f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Bwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:907cb106c1c466aac0b38753b7551af73a09c082a652c82c43df5418eb33b089 +size 458272 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd.uasset new file mode 100644 index 00000000..35c75f8f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:287d39883a65ccf6f89d91c7ca13b23184f04ae6eb5cc3867dd7ef7cfb35ec1c +size 516328 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Left.uasset new file mode 100644 index 00000000..dd03faad --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4103ea6388d484e8f71cd30b955c3c954750d922a0c030bf3d902bdb3e02c13d +size 384314 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Right.uasset new file mode 100644 index 00000000..5848d2fd --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Fwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ca8d8ec88d086d4cb6027a2eefdde258142587bca40e98dee021abe9c8824f8 +size 384322 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Left.uasset new file mode 100644 index 00000000..a9059926 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4feaf1bd5b370e28f5dce611b28d955bbf84bbeb72b7e22972a0e143022621a7 +size 296415 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Right.uasset new file mode 100644 index 00000000..99700e11 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jog/MF_Rifle_Jog_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3c5cae5448dbb8c4e3bda5406202a8e55b08247695082270e1fef3dbdd6e533 +size 420984 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Apex.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Apex.uasset new file mode 100644 index 00000000..abb9e3a5 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Apex.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:39acbd6bcfc5ec2795ee2497bb353fbe954766bda545c3318c3cd6ee5f1ee008 +size 228355 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Land.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Land.uasset new file mode 100644 index 00000000..c222c842 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Land.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce74e83b9b88fa3722951c1c6b2cc36ae7159b8141f5347e5b47d760cee41c42 +size 179028 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Loop.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Loop.uasset new file mode 100644 index 00000000..8045d173 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Fall_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d17c0a4fe1d9bb970b3208909e1c35b7183568c7968a0d6d0de391cca216b472 +size 645680 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_RecoveryAdditive.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_RecoveryAdditive.uasset new file mode 100644 index 00000000..15cd1548 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_RecoveryAdditive.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d663743ac0fd361303751c55688a34053fbed145aaa88a004abd7b02533d5e5 +size 294517 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start.uasset new file mode 100644 index 00000000..d0acb238 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:925f27182be45054a1bbb5d458cb53d38773b356dd61e18b82fa9a72880dc8e7 +size 146783 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start_Loop.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start_Loop.uasset new file mode 100644 index 00000000..12c60ea6 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Jump/MM_Rifle_Jump_Start_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2da3d291df2070e1aaa62a45e445a7979948489b9e811e0d17f94b3e627d14e +size 441727 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MF_Rifle_Idle_ADS.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MF_Rifle_Idle_ADS.uasset new file mode 100644 index 00000000..faeb9dd6 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MF_Rifle_Idle_ADS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfa32b19207a25546bb5bc2dde8454dc633cc27c3de45747e941756e23da5d4d +size 1700234 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_DryFire.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_DryFire.uasset new file mode 100644 index 00000000..730cf5fa --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_DryFire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:131e01f0a31f999e7fd09ef190b314314c851f39101412161dabdb00d2dda801 +size 249623 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Equip.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Equip.uasset new file mode 100644 index 00000000..52276399 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Equip.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:136b19498b8bac4119dde48236d22127e8463c0becff775069e0b6399b7939d6 +size 416648 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Fire.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Fire.uasset new file mode 100644 index 00000000..e51bd26e --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c5b983bd6c09431c83866f772ccf13871ad9626426c86cc08a0c87c150555f7 +size 184600 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Reload.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Reload.uasset new file mode 100644 index 00000000..a182e4e0 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/MM_Rifle_Reload.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac1e17d2acb7e3cea6e4c9ca967400dc3052d5ec6514e155b33d8e4701e80784 +size 547351 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd.uasset new file mode 100644 index 00000000..23e2aa5b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1400dc7a7bfca224e0aa7796e5c230236ad634c808b2a1540cbad8903fa897b +size 449720 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Left.uasset new file mode 100644 index 00000000..03fdab73 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d535eb181e756f56974efae068f34da050747fd8836fe2bb5f0c693f51325c2 +size 332682 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Right.uasset new file mode 100644 index 00000000..414bc2a7 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Bwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e0bd9b3ba2e982ac9ffd60a643dab78cf886d194a26af518170a02dc4f3eac0 +size 332577 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd.uasset new file mode 100644 index 00000000..59307ae2 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:540a6a77c48027e13be84d483c6afd18d82fb115b7532334597ebefe2249ecd0 +size 490267 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Left.uasset new file mode 100644 index 00000000..b9e3ebe1 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7797a7841cb86c3dc9e68dcdf968e538c9a7335abb1b0d9db95e0983b2226d7 +size 384794 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Right.uasset new file mode 100644 index 00000000..fed704ae --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Fwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:787c7b69a054c6f2850503c016a2ef2fade7ad0941375c8e521c3534bf695d12 +size 384793 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Left.uasset new file mode 100644 index 00000000..368ebf1d --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a99d18722e504801616e1c0c495711c43c2d82c4465f7f388cdae8a45502bd1e +size 453120 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Right.uasset new file mode 100644 index 00000000..588e44d9 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Rifle/Walk/MF_Rifle_Walk_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c2c12d6a959d69c96962ca340bdfe984942df621ee2ff7e7e955662ddaee52a +size 510650 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/ABP_Unarmed.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/ABP_Unarmed.uasset new file mode 100644 index 00000000..25722d3b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/ABP_Unarmed.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60ae8c970189979d9e070beb0fd8675f4afb2b04d8aaa8d11a0f03c5b7ebf4b2 +size 385911 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_01.uasset new file mode 100644 index 00000000..34b59709 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f796113f17c91eca7e48ef57bbadc4fc36245a86b127e75a34ca4771500639ed +size 757637 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_02.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_02.uasset new file mode 100644 index 00000000..a816bd9b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb3c74b8e32fb5a88c6d659cae8717294af85d4eaa7f684b2a36c36d245559dc +size 661409 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_03.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_03.uasset new file mode 100644 index 00000000..21473dac --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_Attack_03.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c66016fc3bd386453ac7fb1229a5f0644c6bd5f98ead29f6e6a1be80632ba1f +size 1036132 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_ChargedAttack.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_ChargedAttack.uasset new file mode 100644 index 00000000..09289165 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Attack/MM_ChargedAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d9b0fc6892519095cb6930aba5c0dd063acf647612a06e0f2f7e19c463223ee +size 1057890 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/BS_Idle_Walk_Run.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/BS_Idle_Walk_Run.uasset new file mode 100644 index 00000000..0971bcd3 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/BS_Idle_Walk_Run.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc71af8768b569695d4bcb69c79867f998e085693f5e8230854d228de359f5bb +size 52333 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd.uasset new file mode 100644 index 00000000..5f9af378 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f6e9448f0e0737f506d9e8f11b8d661d6d65c818f0e3160938f1e24082b16c3 +size 483265 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Left.uasset new file mode 100644 index 00000000..9b073a0e --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6e68e6cf4175f85c0e16a60f80335a1fab3f8c76a014d02bc0cd18aabe3314a +size 417528 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Right.uasset new file mode 100644 index 00000000..0dbf181e --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Bwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee3137ff2b7d2cb721c935e2de91d55479e20f030ff230e9f912f6b70658c399 +size 417530 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd.uasset new file mode 100644 index 00000000..ed8291b8 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ccbe851f85a6d4cd7c6438c219cb6af8e281784107b5be8e9b052e4df3069cb +size 531789 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Left.uasset new file mode 100644 index 00000000..2ea4836a --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ee5a11f277af90429980f120026f430ae1e438f6eae42c10222e175f9dbe12 +size 466995 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Right.uasset new file mode 100644 index 00000000..88e8f2a9 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Fwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66a7561d60453794864edd7e0c55487817068b6b66e31e179c98b9f2bab4c76b +size 467310 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Left.uasset new file mode 100644 index 00000000..5537bd34 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7842445f0c2b2f8d3cd9d43b9f58bc3ea888adeb1e161398b492097358431bd +size 487864 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Right.uasset new file mode 100644 index 00000000..95bd4d8d --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jog/MF_Unarmed_Jog_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:208f642310d9627d12a5125889b480e051a1f1fc5397a10b83975903a0c59aea +size 521907 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Dash.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Dash.uasset new file mode 100644 index 00000000..ccda01ef --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Dash.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a1c964403b7b1d9d9f5e0dd8c20c1ae809606c5e8021b2983edfc65ac0a66f0 +size 663135 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Fall_Loop.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Fall_Loop.uasset new file mode 100644 index 00000000..818db5bb --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Fall_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:408be742c63adffe8c6c1d22442e99ea34a7618cd33c6e78e0eed3d7db877433 +size 925351 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Jump.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Jump.uasset new file mode 100644 index 00000000..f394c853 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Jump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:252cbf69b07b797d3c3c6177d3ae9df17e9873f4872c4fa040c0d441dc3b3cef +size 403730 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Land.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Land.uasset new file mode 100644 index 00000000..3f2cff77 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_Land.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a00de25a6beca56ff6d8077081531e5cef238c92825b6c184351d0aa99ef3fcb +size 410017 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_WallJump.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_WallJump.uasset new file mode 100644 index 00000000..9a3e3b0f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Jump/MM_WallJump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e29af6dc13219cb813097e596c143d964a18c118caca138015574009e50859c0 +size 409179 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/MM_Idle.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/MM_Idle.uasset new file mode 100644 index 00000000..01f327a4 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/MM_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11ee7fdeb84db89c1a66785b43b9bfc1415782122b8ac229517f4c5125d9cb0d +size 1436554 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd.uasset new file mode 100644 index 00000000..7a756d93 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae0c2ee1c1178fd1b9493f6c327e52d10a3d6bbde29eae54dcb07c13a27dcf46 +size 606821 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Left.uasset new file mode 100644 index 00000000..7039ba57 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c25a8eebb9883085ac8f82de3c83fc34fd19b02567f17fafde9dd60c09cf3e5 +size 537758 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Right.uasset new file mode 100644 index 00000000..a7a37eec --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Bwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c71b9bbf7b15d75cacddbeb8827e22888cfa63a359ecbc0e017aec822d1a522 +size 537632 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd.uasset new file mode 100644 index 00000000..176830ca --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c74b2fc0cb651c4924804b364e534856a1b44dee818127c408dc055e4bda5ed9 +size 475783 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Left.uasset new file mode 100644 index 00000000..81e677c7 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7d8ff5a55eb0c445da2c74b2fd9460b6a3aff0db206be9e99aed319158d5770 +size 411535 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Right.uasset new file mode 100644 index 00000000..4bc55f7b --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Fwd_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67d3d4fed066023a14220277f5598db83f19efee97de908b1397b0ae998e5599 +size 411529 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Left.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Left.uasset new file mode 100644 index 00000000..af992ac4 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Left.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81500e4fcdd9ae9aa6433e652e67dea8f9dd9fa7b9ef1714e29f6ab0a1bb9d97 +size 486552 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Right.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Right.uasset new file mode 100644 index 00000000..0b6929ce --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Anims/Unarmed/Walk/MF_Unarmed_Walk_Right.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5922b4e632351353224b32f719af97e85512ab4f6553b15315cf14ad04f675f +size 491934 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Materials/M_Mannequin.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/M_Mannequin.uasset new file mode 100644 index 00000000..70538a8e --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/M_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9c571bf9bebf26ffd95c744ff51600483de0265ea0bc7cf7db0a49bdaa683a0 +size 58496 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_01_New.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_01_New.uasset new file mode 100644 index 00000000..ff324e76 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_01_New.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36a6887490e7bf034eb90f911d4d64911d1c4bd9b6baaac982905ab4568648b0 +size 17866 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_02_New.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_02_New.uasset new file mode 100644 index 00000000..9f5a410e --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Manny/MI_Manny_02_New.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6dfc2b3c7661bbd3e2a25783fe3321c703d4eb2220bea8b1d8f6094b301b432 +size 18703 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_01.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_01.uasset new file mode 100644 index 00000000..57741cd2 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62a3050ef24b823f9fe84ac5d9c477099494982d35dafcc3d8078f32b0d4a865 +size 11184 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_02.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_02.uasset new file mode 100644 index 00000000..55c2250d --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Materials/Quinn/MI_Quinn_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6aec77489fdfab0e1ea299de60fbd4f332face4495bbbd20b97fb0308bb9c5b4 +size 10718 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset new file mode 100644 index 00000000..0400d038 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44d8dbe821ac5b9f2f496996f16926473214c6d05651cf7726e8ede6f3bd7c01 +size 15828339 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset new file mode 100644 index 00000000..1640eee2 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ef45d92507a76d74a5e06737f94cad40eb7d5f5769dfbb63f7f74e784a178c6 +size 16252577 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset new file mode 100644 index 00000000..108bf575 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22029d47455f24471195b26a0e04a1e1389f27d6a924e88c9f46a0f600c9a530 +size 191198 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset new file mode 100644 index 00000000..bc7f74ec --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57f84458a160c35b77f0442d2af41054e41e021ebbb496c2c76dea76d1d89580 +size 17057558 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_FootIK.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_FootIK.uasset new file mode 100644 index 00000000..e525c8b8 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_FootIK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa01be065d2efa2dfd3b258f60b94b09fcd5d351356d16bb52578ef5bcbfb5c5 +size 498698 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset new file mode 100644 index 00000000..9a406253 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:057818dd3e0e16ff90c147e25a8fc5ab309c49c4c60360477cf4742e767d151e +size 2575944 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset new file mode 100644 index 00000000..d4e8895f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0ceaf003947088ff076555b81a46e5ccb11149c94025eb2a9e74263fbaa0d67 +size 301538 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset new file mode 100644 index 00000000..669e158e --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f623209571ecbd8185b5b463786be033c3284190b4fc7b249e8d1d2ed995fd8 +size 1422785 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset new file mode 100644 index 00000000..f0f30b01 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ae0f4f9908c30ecc9aedf1ebb442e4983e526a7832ec791542064c7853f9999 +size 699555 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MRA.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MRA.uasset new file mode 100644 index 00000000..3772d29c --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MRA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e42e888aed8aefff68da7d7dda4f177c5647b19473e4e913f61375c1319abd8 +size 712594 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset new file mode 100644 index 00000000..18c8e6c3 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9575d21c9e2872b3358c0efb9e202535ce2efce94c338b9d3bd04cb9831e353 +size 20999487 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset new file mode 100644 index 00000000..c1ce3407 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:474728713232c6833f55c041548f555bc62c5c49e74082a5d16e68a5ce488cfe +size 1036712 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MRA.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MRA.uasset new file mode 100644 index 00000000..464be588 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MRA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6697972eaf2dfe201923dba6a302f024b0ef4c4e46b4ecf578178717098e8277 +size 1059559 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset new file mode 100644 index 00000000..e330d12c --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61a9db73f72fe2d7d8821b33a79f57f3f11df9da9455822392b84b199c78e8df +size 1680197 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_D.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_D.uasset new file mode 100644 index 00000000..dbb262e2 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04e5ed207b7df0d2ad1bbc668916bcf170545fc2a72875e49ec99c6e2667002f +size 674768 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_MRA.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_MRA.uasset new file mode 100644 index 00000000..6d874694 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_MRA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0988d4d9f25597224910e1043591cb2a089a8607a4fe4a63cbc68f3eb2ab473e +size 791597 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_N.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_N.uasset new file mode 100644 index 00000000..60910305 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10fbe9ac3e18e0a890d19756d3470ca372a1aeaffefbe9a22d6b0e6182293551 +size 1263741 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_D.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_D.uasset new file mode 100644 index 00000000..47a54148 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0ccb2f465894c6f9ff4dd142351ed33186c5f861283a75f3e08d1531a253c49 +size 943331 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_MRA.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_MRA.uasset new file mode 100644 index 00000000..d7e46027 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_MRA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f7e495cbe0430aed7084b5508f87186f98346eb04f003734c9b378891da7887 +size 974099 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_N.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_N.uasset new file mode 100644 index 00000000..8b00e73f --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc26466e9fdc954cc276bb6ac1350e22c3dabbe1b54b6bf78ed5ae2e339d9fc +size 1524635 diff --git a/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset new file mode 100644 index 00000000..33f52cd1 --- /dev/null +++ b/unreal/ShooterGame/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34e6fa3414c04a86b7a5287e5569ea9d6e53c319d6e7dbfc8b09dab5b70611a6 +size 59927 diff --git a/unreal/ShooterGame/Content/Input/Actions/IA_Jump.uasset b/unreal/ShooterGame/Content/Input/Actions/IA_Jump.uasset new file mode 100644 index 00000000..ebc44caa --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Actions/IA_Jump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73c14789fee45a6e1eff57f3304a0bafee23790cc8ea6a6a5bf0056e75d7b3e4 +size 1695 diff --git a/unreal/ShooterGame/Content/Input/Actions/IA_Look.uasset b/unreal/ShooterGame/Content/Input/Actions/IA_Look.uasset new file mode 100644 index 00000000..be55ec47 --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Actions/IA_Look.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d4a2cb59db11a0a080834e1b292207e530b8df217446afb46e382d9fa12f5a9 +size 1385 diff --git a/unreal/ShooterGame/Content/Input/Actions/IA_MouseLook.uasset b/unreal/ShooterGame/Content/Input/Actions/IA_MouseLook.uasset new file mode 100644 index 00000000..e3df2e14 --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Actions/IA_MouseLook.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2901132a04ceb384e2693107b8f5455de48b7c325d6cc5ce07556c6425c19f48 +size 1410 diff --git a/unreal/ShooterGame/Content/Input/Actions/IA_Move.uasset b/unreal/ShooterGame/Content/Input/Actions/IA_Move.uasset new file mode 100644 index 00000000..55c3d705 --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Actions/IA_Move.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85567b9d91ffd9f7106c3062557a6fa864a791233380353f63eb563470985add +size 1385 diff --git a/unreal/ShooterGame/Content/Input/Actions/IA_Shoot.uasset b/unreal/ShooterGame/Content/Input/Actions/IA_Shoot.uasset new file mode 100644 index 00000000..efae008f --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Actions/IA_Shoot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d13804b122c534fdf87b6fb1583ddbc79fc9eb4de7937ba2d33664c0feeb27a +size 1653 diff --git a/unreal/ShooterGame/Content/Input/Actions/IA_SwapWeapon.uasset b/unreal/ShooterGame/Content/Input/Actions/IA_SwapWeapon.uasset new file mode 100644 index 00000000..3ca17ace --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Actions/IA_SwapWeapon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f6efde7b55608213069cadac5cd18d6f54f442d2895c220dd27427ef9ecbcf +size 1476 diff --git a/unreal/ShooterGame/Content/Input/IMC_Default.uasset b/unreal/ShooterGame/Content/Input/IMC_Default.uasset new file mode 100644 index 00000000..01eaa9fc --- /dev/null +++ b/unreal/ShooterGame/Content/Input/IMC_Default.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e11e1e65e6d8cf030d995517f5a7ebb5e6c83004607fca44a7a274adcbcb569 +size 7704 diff --git a/unreal/ShooterGame/Content/Input/IMC_MouseLook.uasset b/unreal/ShooterGame/Content/Input/IMC_MouseLook.uasset new file mode 100644 index 00000000..bb5126c9 --- /dev/null +++ b/unreal/ShooterGame/Content/Input/IMC_MouseLook.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a00157cd520edcf0b037d7091bfe188fa6eb7c48465f695981f7cbe5fb4cc80 +size 2521 diff --git a/unreal/ShooterGame/Content/Input/IMC_Weapons.uasset b/unreal/ShooterGame/Content/Input/IMC_Weapons.uasset new file mode 100644 index 00000000..6638aed3 --- /dev/null +++ b/unreal/ShooterGame/Content/Input/IMC_Weapons.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9bf01322a22429a94735c5725a6539f228215c268e759d9dce61baa6c0f814d +size 3844 diff --git a/unreal/ShooterGame/Content/Input/Touch/TI_Controls.uasset b/unreal/ShooterGame/Content/Input/Touch/TI_Controls.uasset new file mode 100644 index 00000000..0a2f670e --- /dev/null +++ b/unreal/ShooterGame/Content/Input/Touch/TI_Controls.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dab59abe7475062b1d93af3fb906e574b625e6729d7003be3afde874671bab81 +size 5450 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_Door.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_Door.uasset new file mode 100644 index 00000000..f52fb184 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26a7645f404dda23a1e4c8d20d7940473f208fee1d5f679581bc3842aa6d7499 +size 59168 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Corner.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Corner.uasset new file mode 100644 index 00000000..ee0e1cfb --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Corner.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5eb7f498c362682323ea61161e3e16f5a309e9123bf0ac73cfedd0606ae8d6c +size 87039 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Edge.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Edge.uasset new file mode 100644 index 00000000..9d364783 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/Assets/Meshes/SM_DoorFrame_Edge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa5c503cf28ae0764f2e515e1579dcce9ee9575c7b3304bdc50ab19194c3e3e +size 68880 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/BP_DoorFrame.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/BP_DoorFrame.uasset new file mode 100644 index 00000000..8f969696 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Door/BP_DoorFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75e7a6fb96adce1861523995692e5ff5800a03e292a8bdf895d7d200663cfd02 +size 452952 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/MI_GlowNT.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/MI_GlowNT.uasset new file mode 100644 index 00000000..413555fe --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/MI_GlowNT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fd40bc38bfea9418fa54fe365732a1219e615169542a0a4d2e1d518318c864b +size 4145 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_GradientGlow.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_GradientGlow.uasset new file mode 100644 index 00000000..ecf223d1 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_GradientGlow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1b29ad29c2eac3dba6dd6a90aed9de8c6147a13b6288a42bd73fe14b78970a8 +size 17587 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_SimpleGlow.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_SimpleGlow.uasset new file mode 100644 index 00000000..203e88df --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Materials/M_SimpleGlow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6098242541b34be6aba19ea1fbfa35107f891e8f55d30d4061aa11b065b8bd8 +size 15213 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularBand.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularBand.uasset new file mode 100644 index 00000000..76776ce1 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularBand.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97fbe3da2d907279dcbfbbf285e1b111ceb8d5f4a1c9d6bd48fcb8defc86842b +size 70608 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularGlow.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularGlow.uasset new file mode 100644 index 00000000..6cb18b22 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/Meshes/SM_CircularGlow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ddb27bf7020f4980d3f8435cb0928fb48b32c1ab3ea24bac7e253435081bf6b +size 71705 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/NS_JumpPad.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/NS_JumpPad.uasset new file mode 100644 index 00000000..75107423 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/Assets/NS_JumpPad.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e76849cbb139160e5e73c226fe6aaa66a63fbf75cbd1213f871cca65e409817 +size 795908 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/BP_JumpPad.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/BP_JumpPad.uasset new file mode 100644 index 00000000..a8c9c49d --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/JumpPad/BP_JumpPad.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2391d7202ae0a6253c37a3748bd5e199f4ebfa3009a671a188b3a30aa257f4c +size 94431 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/Assets/SM_TargetBaseMesh.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/Assets/SM_TargetBaseMesh.uasset new file mode 100644 index 00000000..a8140cdd --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/Assets/SM_TargetBaseMesh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:378ace355b8f5e71a12e459d9f8cf4958626884142fec34be8630db6d8412cad +size 283425 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/BP_WobbleTarget.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/BP_WobbleTarget.uasset new file mode 100644 index 00000000..41b1483a --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Interactable/Target/BP_WobbleTarget.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aff0573797928b6405ad62a7c96b1ae3e4694eefff0ae83f127a46759533ef03 +size 46735 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset new file mode 100644 index 00000000..d998cb38 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5ee13abdb241d9811f6c1bcc0a607d229fa7adc5f46bfd5a9d5fedbfa279683 +size 49820 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_DefaultColorway.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_DefaultColorway.uasset new file mode 100644 index 00000000..cc186139 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_DefaultColorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:786a4dfcaaa6f4daf459c77bda247c2c138140680a8246d521974d0cc4fc8a8e +size 9260 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset new file mode 100644 index 00000000..d8449013 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:084681bf680dad66b8c8ca803d927053cf46756f2f2e62d18fcc439e07de7263 +size 13121 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset new file mode 100644 index 00000000..d727d352 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa0f2a06a7d937127d7d737c13bacb3f8fe88c8e0479f5e6b7cda81fd225d077 +size 11922 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset new file mode 100644 index 00000000..1eae7f9b --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:838034e5afc7ab3a70bfff6de2e1237aa02337fb423e95c1b536b3e30c61c982 +size 11957 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/M_FlatCol.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/M_FlatCol.uasset new file mode 100644 index 00000000..0be45d4f --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/M_FlatCol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41dbbda4b463a224c29ee01765e1f52a8ae63f2f94f1440ee267fe7b1a481585 +size 11771 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset new file mode 100644 index 00000000..81c2a126 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f534b0755dfb253391de0f0ac78fbb2c8c794b9a6c54851afa9068ff17229c66 +size 43270 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset new file mode 100644 index 00000000..9b482c4f --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59d3675438e3972b4bf249a2a6aec3aaebf7b45f82867364e64998881253814f +size 119178 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cube.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cube.uasset new file mode 100644 index 00000000..fcb2e037 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4680317a8c87f983e077f6c0a6b93ffaa0ba4dbddbc810960d4553e6ad380a89 +size 18279 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset new file mode 100644 index 00000000..ffaea189 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76aaa3c2b812ff790fb57ae7736b748e4e1556afbb13466fd787d4bacd2c7dfe +size 193636 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset new file mode 100644 index 00000000..e3e30cc9 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4087b3f85753d9ccbced7d00d42208dad4d21185f24a97b0c86db31be867b733 +size 135087 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Ramp.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Ramp.uasset new file mode 100644 index 00000000..d176359f --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Meshes/SM_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5b472deb37a9956b9112dccee3d09498a456baeacc574db8c5d725463b73597 +size 18690 diff --git a/unreal/ShooterGame/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset b/unreal/ShooterGame/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset new file mode 100644 index 00000000..37cf4667 --- /dev/null +++ b/unreal/ShooterGame/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb8334767064b107ec4f4407ef1365e8b9e2dfeff5984e66d4a6232254ddd02a +size 9600 diff --git a/unreal/ShooterGame/Content/Levels/Game.umap b/unreal/ShooterGame/Content/Levels/Game.umap new file mode 100644 index 00000000..2cea6841 --- /dev/null +++ b/unreal/ShooterGame/Content/Levels/Game.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2734801f3898e7ad84c1fe97722829b8591cc0f84b9d843a0d7ab874524bd4d +size 22180 diff --git a/unreal/ShooterGame/Content/Levels/Lvl_Shooter.umap b/unreal/ShooterGame/Content/Levels/Lvl_Shooter.umap new file mode 100644 index 00000000..bf24eb98 --- /dev/null +++ b/unreal/ShooterGame/Content/Levels/Lvl_Shooter.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:314edcd630140bf94637056a1f45b3683b1c6a70b9ffd0ed7153fe9ceb6c5c05 +size 2156 diff --git a/unreal/ShooterGame/Content/Levels/Menu.umap b/unreal/ShooterGame/Content/Levels/Menu.umap new file mode 100644 index 00000000..8f9d9a84 --- /dev/null +++ b/unreal/ShooterGame/Content/Levels/Menu.umap @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:229fa5971cb56d8eff6031db88b2cf5930239345b16204656a5d4d0960a26138 +size 38698 diff --git a/unreal/ShooterGame/Content/Materials/MI_FirstPersonColorway.uasset b/unreal/ShooterGame/Content/Materials/MI_FirstPersonColorway.uasset new file mode 100644 index 00000000..639754e6 --- /dev/null +++ b/unreal/ShooterGame/Content/Materials/MI_FirstPersonColorway.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6eac6285fe09d3bde779b4c8eacfcffdf77ea83802b6bb673818276e4973ed92 +size 9393 diff --git a/unreal/ShooterGame/Content/UI/Materials/MI_BulletCounter.uasset b/unreal/ShooterGame/Content/UI/Materials/MI_BulletCounter.uasset new file mode 100644 index 00000000..fe0fc9c3 --- /dev/null +++ b/unreal/ShooterGame/Content/UI/Materials/MI_BulletCounter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cffcdd8e011caaf6781c7219544a2e346182589269dd1d96bac0c2140fe252b3 +size 12172 diff --git a/unreal/ShooterGame/Content/UI/Materials/M_BulletCounter.uasset b/unreal/ShooterGame/Content/UI/Materials/M_BulletCounter.uasset new file mode 100644 index 00000000..26f49d9a --- /dev/null +++ b/unreal/ShooterGame/Content/UI/Materials/M_BulletCounter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6df37a72f949b5beb02c590e4c570f8d63ad7a9c6fa0201ab116496a8282cd65 +size 37255 diff --git a/unreal/ShooterGame/Content/UI/UI_Shooter.uasset b/unreal/ShooterGame/Content/UI/UI_Shooter.uasset new file mode 100644 index 00000000..f724f250 --- /dev/null +++ b/unreal/ShooterGame/Content/UI/UI_Shooter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2361aa39bf0a0bb2ae3b8b4fb4453b8b4cb9bd6406d08da3cd0c25c6bba57b09 +size 20322 diff --git a/unreal/ShooterGame/Content/UI/UI_ShooterBulletCounter.uasset b/unreal/ShooterGame/Content/UI/UI_ShooterBulletCounter.uasset new file mode 100644 index 00000000..39d2167d --- /dev/null +++ b/unreal/ShooterGame/Content/UI/UI_ShooterBulletCounter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:740d421e1195b4e298ce3f50797d98abfc605cf07b1e3b847679954f5db42235 +size 49647 diff --git a/unreal/ShooterGame/Content/UI/WBP_Menu.uasset b/unreal/ShooterGame/Content/UI/WBP_Menu.uasset new file mode 100644 index 00000000..fd4d015d --- /dev/null +++ b/unreal/ShooterGame/Content/UI/WBP_Menu.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2030b0e14f252f87ac0ccd3bae9c6c3eb7c59e443a07538223bfe667fc3d1f78 +size 36987 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Audio/FirstPersonTemplateWeaponFire02.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Audio/FirstPersonTemplateWeaponFire02.uasset new file mode 100644 index 00000000..2571c5d8 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Audio/FirstPersonTemplateWeaponFire02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89a195929a0ead34f4b3b3901270350b2d3854ad9a98df75f3b7c74a849b3ff8 +size 308458 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_GrenadeLauncher.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_GrenadeLauncher.uasset new file mode 100644 index 00000000..9710e1b8 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_GrenadeLauncher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0efea7f92b8d05461c4dbf6fdb23e5519d48795680658575138a4b097cb46b6c +size 27126 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_ProjectileBullet.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_ProjectileBullet.uasset new file mode 100644 index 00000000..70e32cc3 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Materials/M_ProjectileBullet.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a632681a46fef4cc87f4a9933eb7e19d73a9efbd856b55335bd883309b92530a +size 14888 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/FirstPersonProjectileMesh.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/FirstPersonProjectileMesh.uasset new file mode 100644 index 00000000..c4b6c41e --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/FirstPersonProjectileMesh.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ceea86d9723b80c01e88d55e4277cccbf6f71da3ce209562dd9c35743342a82 +size 33630 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/PA_GrenadeLauncher.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/PA_GrenadeLauncher.uasset new file mode 100644 index 00000000..e91b8926 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/PA_GrenadeLauncher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8917535392ac6df3f7f29c8a675a2357d02d2abf6034215106a4c34cba0b9f34 +size 10166 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SKM_GrenadeLauncher.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SKM_GrenadeLauncher.uasset new file mode 100644 index 00000000..87a0a9a1 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SKM_GrenadeLauncher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cad142505e8354c5db09683074624b7fe89dbc8a450dcfcf3476ce70d0e0941d +size 2698295 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SK_GrenadeLauncher.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SK_GrenadeLauncher.uasset new file mode 100644 index 00000000..63b89b74 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SK_GrenadeLauncher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13a244b07acf7288f3d1da0dcf954c53b4c29f0007cd00ce1b4d5f8fc531c15b +size 9165 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SM_GrenadeLauncher.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SM_GrenadeLauncher.uasset new file mode 100644 index 00000000..79a37940 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Meshes/SM_GrenadeLauncher.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d10839f109baf5e7424759d3e5f7d8c7588f080a28a4a1d93b0b4eefc73a378 +size 512976 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_M.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_M.uasset new file mode 100644 index 00000000..6d6c0f0a --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87b4ef72e628f6140ffe677d2b64082b10acbd0e03940fc5e0627ccccd091887 +size 156597 diff --git a/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_N.uasset b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_N.uasset new file mode 100644 index 00000000..8cadd22a --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/GrenadeLauncher/Textures/T_FPGun_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:223e0f814cbd8bae88b719b654380cb60755c768217ab0ccdd83c462a913aa7d +size 1734086 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Materials/MI_Weapon_Pistol.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Materials/MI_Weapon_Pistol.uasset new file mode 100644 index 00000000..f3de7be2 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Materials/MI_Weapon_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7729da6ae58cf41aa75cd640cac3dde5fee4dac44554439fc68e52ad6a311547 +size 17423 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/PA_Pistol.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/PA_Pistol.uasset new file mode 100644 index 00000000..e9a85cc2 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/PA_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:312403ecb1c0f9c735345928619f366cb16027aa7ee22c9142f807a6511b2512 +size 8807 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SKM_Pistol.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SKM_Pistol.uasset new file mode 100644 index 00000000..fda47002 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SKM_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdfe37753e21c8c88c32caa1b7919918fb53c4adeda7c7fd472e9bc6730eb694 +size 999935 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SK_Pistol.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SK_Pistol.uasset new file mode 100644 index 00000000..32d91416 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SK_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6aeb605a2b969ab8a6d48a56c35bb44d96651727e9bfdd7f7fa38a71606e918 +size 9704 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SM_Pistol.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SM_Pistol.uasset new file mode 100644 index 00000000..39056dd8 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Meshes/SM_Pistol.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07b6066bce4cafc04232614f1e24fd44ea0b5c6a3f314dbdfb102356e59c7f56 +size 183837 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_AORM.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_AORM.uasset new file mode 100644 index 00000000..ecec1f56 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_AORM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65789a079408010ddc777e9291aecbcda28ea550832429b2c05c48f8dbe3c708 +size 1263989 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_D.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_D.uasset new file mode 100644 index 00000000..fcacac44 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9014359ad0a79b762fccd472fa5dc5b1087a5407564952c0982d7c907dc9a588 +size 791319 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_Masks.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_Masks.uasset new file mode 100644 index 00000000..29f52a1f --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_Masks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:506d1878e24b3dffb04e9df90d287117a0e12445e5e46d1732a093b96e2a43e3 +size 54818 diff --git a/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_N.uasset b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_N.uasset new file mode 100644 index 00000000..660616b9 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Pistol/Textures/T_Pistol_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3cabf7783371d113c47b6fe82d2b5cc478c09f1155f54cf08e857e472f54f5 +size 1094269 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/M_Weapon.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/M_Weapon.uasset new file mode 100644 index 00000000..0725cb6a --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/M_Weapon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfe66cb81cd715a11800db4d6201e99de92034d5544407c23a23d1b01bf70651 +size 1329 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Rifle.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Rifle.uasset new file mode 100644 index 00000000..1fa592b9 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4825031b9d0c4607f541b778b6e29baf5d3da3aa0a8ae511742eb93ebc429a3 +size 12404 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Weapon.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Weapon.uasset new file mode 100644 index 00000000..21578916 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Materials/M_Weapon.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:304ab2ae0a6ba53d20b4d45ce3761e39c7d28597027bcd0f17d67618bc13c175 +size 29581 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/PA_Rifle.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/PA_Rifle.uasset new file mode 100644 index 00000000..9a1612b1 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/PA_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b33b03102c2ff60f6c6f4856a8293d3160293a1582219fdbd39ff0527ac16b75 +size 7677 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SKM_Rifle.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SKM_Rifle.uasset new file mode 100644 index 00000000..e90a3e2a --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SKM_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:349e47d396d21d908cf4763dfc759e9fd49da776b09dc699799e1b19591c0506 +size 2584805 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SK_Rifle.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SK_Rifle.uasset new file mode 100644 index 00000000..02e5c947 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SK_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc21d41a9a220446bcb9b7d021bee25d8811cfc6a01b8b381000f22e586c8e17 +size 7939 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SM_Rifle.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SM_Rifle.uasset new file mode 100644 index 00000000..4f2e05e1 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Meshes/SM_Rifle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f32e41a07638d165957caee2ba550aac591503b69b8c897e7bd3b284b8d775e2 +size 450116 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_BC.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_BC.uasset new file mode 100644 index 00000000..a613c426 --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_BC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a186121704cce5edc611c79a0476a935387c5d2c627a219dcdfe75205be8b979 +size 429100 diff --git a/unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_N.uasset b/unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_N.uasset new file mode 100644 index 00000000..5be981ca --- /dev/null +++ b/unreal/ShooterGame/Content/Weapons/Rifle/Textures/T_Rifle_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df596e6ab2c7c94bddf9eb71717896c6d2c1b7ccf14b804b59b5e54f29d39a16 +size 1115236 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1I/MOTG5HR6Q8B0YH5WF1O0UX.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1I/MOTG5HR6Q8B0YH5WF1O0UX.uasset new file mode 100644 index 00000000..34ad7f4c --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1I/MOTG5HR6Q8B0YH5WF1O0UX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fddb00d88d34324fb4fd5c56f921099ef7d40643554f85140b7d653c39735bf3 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1K/1AX6LNFEHVWWJP5ZC03R34.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1K/1AX6LNFEHVWWJP5ZC03R34.uasset new file mode 100644 index 00000000..9e6ecfd3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1K/1AX6LNFEHVWWJP5ZC03R34.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a48629c2183643b026b02e39461e2a410fbd218912cda758911ae683d83d9518 +size 8099 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1U/31AKZZ5MXVP7IT5NH482SA.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1U/31AKZZ5MXVP7IT5NH482SA.uasset new file mode 100644 index 00000000..0451a701 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/1U/31AKZZ5MXVP7IT5NH482SA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd94efb2bcbf2d2a1cd0d429476422d3898f79c673b3c6c01e0423bd9e0021f5 +size 4960 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/9V/4VTBU083SKYLYIOFCVDYL9.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/9V/4VTBU083SKYLYIOFCVDYL9.uasset new file mode 100644 index 00000000..3eb2a1d0 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/9V/4VTBU083SKYLYIOFCVDYL9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7cc8518624c5b7a341876af800e83d857ce8211454e91689efe378df19c73df8 +size 4441 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/BK/5ZGHOGZVOUU8JA2KZQ0TY2.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/BK/5ZGHOGZVOUU8JA2KZQ0TY2.uasset new file mode 100644 index 00000000..a274fa7a --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/BK/5ZGHOGZVOUU8JA2KZQ0TY2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b1c34ae5b2e4efabbd68f46f7e18f694e34e2593a23c00fa88643fab648b23d +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/DJ/XFLPMB8KWDHC1J9VQG65LE.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/DJ/XFLPMB8KWDHC1J9VQG65LE.uasset new file mode 100644 index 00000000..38b216c0 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/DJ/XFLPMB8KWDHC1J9VQG65LE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:886426b02c7c7e8a0d2c1859bf4749c14a6357db6e27cc60b7148d9ce1c42542 +size 12187 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/I2/J0OD74KO1MIDXVS0XY8PO1.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/I2/J0OD74KO1MIDXVS0XY8PO1.uasset new file mode 100644 index 00000000..c85978d1 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/I2/J0OD74KO1MIDXVS0XY8PO1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dd4f1c3f55ac9b39fa070b78f1833fac9a4ba4561fcad9a4f4c40c1a2685689 +size 4360 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/J3/RAP9JGR4URRL57YR17B1KX.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/J3/RAP9JGR4URRL57YR17B1KX.uasset new file mode 100644 index 00000000..fbafeed8 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/J3/RAP9JGR4URRL57YR17B1KX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21ae12294a2f0c6e0cb0eea669ba2767d11465970bca2c1fa780514dde4a387e +size 4267 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/NE/7AFW75LD3RPH0B33FP8XSP.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/NE/7AFW75LD3RPH0B33FP8XSP.uasset new file mode 100644 index 00000000..dab04174 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/NE/7AFW75LD3RPH0B33FP8XSP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85d07c56369e7625df577e5636b7089ad2de4106d70bc9019a9a4c63c5fa3140 +size 4737 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/O8/X9JWR8NOHNBUX3QOJRWIBC.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/O8/X9JWR8NOHNBUX3QOJRWIBC.uasset new file mode 100644 index 00000000..10a0e01d --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/O8/X9JWR8NOHNBUX3QOJRWIBC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa97077da3d599753531a5f9d1563c35bcc55cc1af26c010330e96a0f1b051a6 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/YX/N6BLWELN9QKXUNHA9BBLZR.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/YX/N6BLWELN9QKXUNHA9BBLZR.uasset new file mode 100644 index 00000000..2b4f2cd9 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/0/YX/N6BLWELN9QKXUNHA9BBLZR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f19ee177f8dcfd9813ed1856a81ee7dbb38ba6ecf26f9d86de44bb29b125fa55 +size 4440 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/2N/35UCYP2K3XADZTJY7AX1O0.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/2N/35UCYP2K3XADZTJY7AX1O0.uasset new file mode 100644 index 00000000..0aebf277 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/2N/35UCYP2K3XADZTJY7AX1O0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0db6b6d1f5bc38ccd713b2a32c02cf33a323c04c7a0fa600eceea42554e80d41 +size 4477 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/3M/TCGT4IW2IHVF3O1F7DCBN5.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/3M/TCGT4IW2IHVF3O1F7DCBN5.uasset new file mode 100644 index 00000000..41df8dac --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/3M/TCGT4IW2IHVF3O1F7DCBN5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7be5c11d4dbf1e7488e3c5365fcf24213551f91e80fdb6307ed8efdd665be5a5 +size 4438 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/67/YNF8ZYXW7I2GGL2J7XEPKC.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/67/YNF8ZYXW7I2GGL2J7XEPKC.uasset new file mode 100644 index 00000000..87a2ebfb --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/67/YNF8ZYXW7I2GGL2J7XEPKC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a31a03259e3add92c631b5e55affffe92f20a8df4f5380722992cef4d1a98b1a +size 11758 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/7N/MWOZRZZ3R3UO7EHDF70LMQ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/7N/MWOZRZZ3R3UO7EHDF70LMQ.uasset new file mode 100644 index 00000000..d3afea71 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/7N/MWOZRZZ3R3UO7EHDF70LMQ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5564740c0b38ba721ffc20e5b425be39d3de53e6ef7acce2533df5b24289328 +size 4440 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/8C/WLKHQ7MKX3WNGOAPRF0K2J.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/8C/WLKHQ7MKX3WNGOAPRF0K2J.uasset new file mode 100644 index 00000000..e451d89d --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/8C/WLKHQ7MKX3WNGOAPRF0K2J.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce5a6fe6d0b79b901bd5ea4d6fc169a1c052f4f53cf3ae5181e82bdc8267080f +size 4303 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/A2/O5WFUF76QMXBRO0U4B6TJO.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/A2/O5WFUF76QMXBRO0U4B6TJO.uasset new file mode 100644 index 00000000..39600857 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/A2/O5WFUF76QMXBRO0U4B6TJO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:506e595eb29d39e5c8333ccfa12b24640a03298227f39dccf6877d8fda64566d +size 8099 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CH/CTFBGZ2S5H1PZHM3CYNLB6.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CH/CTFBGZ2S5H1PZHM3CYNLB6.uasset new file mode 100644 index 00000000..8bba68e8 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CH/CTFBGZ2S5H1PZHM3CYNLB6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a04c59644eaf2f5369a360043ed7710af4de37e4594a858264387c1aa8cda439 +size 4440 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CP/Q4IVQM473NLVFH80B0T1RI.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CP/Q4IVQM473NLVFH80B0T1RI.uasset new file mode 100644 index 00000000..5f0b4eac --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/CP/Q4IVQM473NLVFH80B0T1RI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f846174b0c8671931482e7bf477fdea610b27f54470445ee451d5e4582bcddf +size 4264 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/DI/9HZ2Y6XI7NL6W7TBH5JL51.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/DI/9HZ2Y6XI7NL6W7TBH5JL51.uasset new file mode 100644 index 00000000..b49dfafe --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/DI/9HZ2Y6XI7NL6W7TBH5JL51.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdefb87d374952b1e1176cacc7ca79c25fafd53715db13bf364599fdfda05374 +size 6383 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/LL/8CP1AURJP2RI2CW1KZOEAO.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/LL/8CP1AURJP2RI2CW1KZOEAO.uasset new file mode 100644 index 00000000..ff896849 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/LL/8CP1AURJP2RI2CW1KZOEAO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bbc98e45dbe795a8a1e462073c4032ab924701bc230c421df461561011d812b +size 60180 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/O4/AWX5OC6TQWPSNVW02NW1EN.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/O4/AWX5OC6TQWPSNVW02NW1EN.uasset new file mode 100644 index 00000000..e6d2a7b1 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/O4/AWX5OC6TQWPSNVW02NW1EN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:726286e323a5502e5ef7664ae7baa5f5aee2e2471940088ecb46fc2d095a5476 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/Q5/LADOWYM9T4BW5D1C5HD8K5.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/Q5/LADOWYM9T4BW5D1C5HD8K5.uasset new file mode 100644 index 00000000..13a2d846 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/Q5/LADOWYM9T4BW5D1C5HD8K5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b19fc8e57f491f7e0ac91777338dade98495d595dd399fdcb7116e7f00e07cb +size 4347 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/SN/HU9WCTF3KVTHUQ8GTHUDE2.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/SN/HU9WCTF3KVTHUQ8GTHUDE2.uasset new file mode 100644 index 00000000..0bdd802b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/SN/HU9WCTF3KVTHUQ8GTHUDE2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1be90959e4000bb21a93ff23af7804d673d188bb68833d885aac17bea5ede129 +size 4500 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/X1/1IT45GJJ993V138MPTJCVX.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/X1/1IT45GJJ993V138MPTJCVX.uasset new file mode 100644 index 00000000..db662039 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/1/X1/1IT45GJJ993V138MPTJCVX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6b4533dce9c2cf78b803947e167ed70ef8855446078754d23d3a4a257f35483 +size 4436 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/53/X4089AGR6WRPLJ0LR8242A.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/53/X4089AGR6WRPLJ0LR8242A.uasset new file mode 100644 index 00000000..94dcd218 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/53/X4089AGR6WRPLJ0LR8242A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d2d6fec59fc806d6609c811cce943831562f8e352833b3cbd47aee040e1613e +size 4417 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/5V/Q7ZOD3GNFW5FJL3Q164LUA.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/5V/Q7ZOD3GNFW5FJL3Q164LUA.uasset new file mode 100644 index 00000000..c22b3b28 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/5V/Q7ZOD3GNFW5FJL3Q164LUA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d9807c4d0cbcc8ac0ff6d4306d2b5a31f02cdc3f0fe04e816d4682eb73a5d51 +size 4498 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/B2/UW1KI1GF83R0WBXCLKLQC9.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/B2/UW1KI1GF83R0WBXCLKLQC9.uasset new file mode 100644 index 00000000..201cd733 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/B2/UW1KI1GF83R0WBXCLKLQC9.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8345cc9ff1aa39f45ed9c997f88be75f05149d2a94a8738f0c6c8b47a3d77833 +size 4327 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/OM/SRCA716MGR0QAR4BX13M9P.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/OM/SRCA716MGR0QAR4BX13M9P.uasset new file mode 100644 index 00000000..eda5175b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/OM/SRCA716MGR0QAR4BX13M9P.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b1cd07c91f98fb6e0db2dfcbdffeec8357e353ea8c959531a2f6751f85f0dc35 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/V3/XWKXQOS7OLFQ2C6V2N1C4W.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/V3/XWKXQOS7OLFQ2C6V2N1C4W.uasset new file mode 100644 index 00000000..a235c7f6 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/V3/XWKXQOS7OLFQ2C6V2N1C4W.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7fae7e79e4e405631f6d5b2e3b6b12c96f76d2636dcf4dae2b9c6dfe79c3b7d +size 5042 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/YX/3AQ9E39S2LEH8R4WF13321.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/YX/3AQ9E39S2LEH8R4WF13321.uasset new file mode 100644 index 00000000..e74fb07b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/YX/3AQ9E39S2LEH8R4WF13321.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7503488b22d14a835a58df4e4dfe692553578c0264518bc916d875d11ef61244 +size 4960 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/ZC/26TA7OBRAXC8G82VS6ES2Y.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/ZC/26TA7OBRAXC8G82VS6ES2Y.uasset new file mode 100644 index 00000000..35cbc594 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/2/ZC/26TA7OBRAXC8G82VS6ES2Y.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:683a9d906d86ee00fe23a152e9bf9381fc88f87c86b56924341e287df82557a4 +size 6381 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/BV/4E8BUD6V9CJSF01978PP56.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/BV/4E8BUD6V9CJSF01978PP56.uasset new file mode 100644 index 00000000..b08cfc24 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/BV/4E8BUD6V9CJSF01978PP56.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9554882dcccb7faa9d486f67457f63effd67f71d30d45eec1f430fe805eb0eb6 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ES/OQIGV3E7OEQUHN2HRS1IIM.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ES/OQIGV3E7OEQUHN2HRS1IIM.uasset new file mode 100644 index 00000000..6c34097d --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ES/OQIGV3E7OEQUHN2HRS1IIM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:768d608bd9188a8127c296db77d85327e5414189e6d2c0bc66ad764c3c3fdaf2 +size 4435 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/F8/59ZMR8WWJ2AW2CT7BM64QQ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/F8/59ZMR8WWJ2AW2CT7BM64QQ.uasset new file mode 100644 index 00000000..68773906 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/F8/59ZMR8WWJ2AW2CT7BM64QQ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b57b531edcbbf2679cb856fd0eccbfb2d373a163f2fbc3cfc06eebc1c92dc8e0 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/FN/YJES2CLEZNCDVH39AQ2746.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/FN/YJES2CLEZNCDVH39AQ2746.uasset new file mode 100644 index 00000000..9f9ca03e --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/FN/YJES2CLEZNCDVH39AQ2746.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e654b907bc30a35e061f700c8ffe45ffbfe3ef3f76e3b553f3bfaebcb8b2bbdd +size 4438 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/I9/0CVR8LDMAD7UYH2P8DB97N.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/I9/0CVR8LDMAD7UYH2P8DB97N.uasset new file mode 100644 index 00000000..ddea7c34 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/I9/0CVR8LDMAD7UYH2P8DB97N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddecf40da1ab4b1b0186fd6e71942ddea1294b89ded756aa1670fe92c83823cc +size 4436 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/N4/YG6UFOU0TSM5SC76DG9COG.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/N4/YG6UFOU0TSM5SC76DG9COG.uasset new file mode 100644 index 00000000..d76f3b19 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/N4/YG6UFOU0TSM5SC76DG9COG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83899184368e4d94f0c364027b679ba52243568e63fa208715b49e0549e8a9c3 +size 4440 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/TO/XLQBRDBOFS7M9FYE1UZKPG.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/TO/XLQBRDBOFS7M9FYE1UZKPG.uasset new file mode 100644 index 00000000..cdbdfcc4 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/TO/XLQBRDBOFS7M9FYE1UZKPG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3abd6576a2fd556a50e80c9f28f9943e35f6986d5d02493d6c021965f927d277 +size 4436 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZG/WEY7PK3IJNDPU7JIB760O5.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZG/WEY7PK3IJNDPU7JIB760O5.uasset new file mode 100644 index 00000000..296706f6 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZG/WEY7PK3IJNDPU7JIB760O5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bbbcc658e1431ff4640f960bef69357bc56104f4c1f5690371cc5f52e3d3ca3d +size 4440 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZX/9W1SBCTD6YN8Z5PS0G2NRQ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZX/9W1SBCTD6YN8Z5PS0G2NRQ.uasset new file mode 100644 index 00000000..2e05afc5 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/3/ZX/9W1SBCTD6YN8Z5PS0G2NRQ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8213a376a6fdc4e753471f1469d832946445f6714b1207e86f5590c8a611291 +size 4500 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/AO/HNKMXIU0H3XGZC4N1XA6ZN.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/AO/HNKMXIU0H3XGZC4N1XA6ZN.uasset new file mode 100644 index 00000000..52dce0ad --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/AO/HNKMXIU0H3XGZC4N1XA6ZN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbf5c79fe2623d9fe9bcdc114e6c15df27f220a1798b114bdee30f7ffb142b61 +size 2450 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/H7/E1KUGJCJ2IBBCBC5M3G218.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/H7/E1KUGJCJ2IBBCBC5M3G218.uasset new file mode 100644 index 00000000..abe78b4d --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/H7/E1KUGJCJ2IBBCBC5M3G218.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ddf62cda4c6f5158a76bf180ad5d7ec1a4a0db78eaf1919810cb313ffce6532 +size 6383 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/R2/VPN7Y6X38CVEIQD6EW7V4F.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/R2/VPN7Y6X38CVEIQD6EW7V4F.uasset new file mode 100644 index 00000000..7b4a43a1 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/R2/VPN7Y6X38CVEIQD6EW7V4F.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aad2a6e238849d1988c0f3ff984ec9bff79b50261faa1330330f364f0d86e5eb +size 4378 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/WN/0QC03KSISZZ7TVBTGOIRD3.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/WN/0QC03KSISZZ7TVBTGOIRD3.uasset new file mode 100644 index 00000000..031f9cb0 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/WN/0QC03KSISZZ7TVBTGOIRD3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e558f22e049081e57e89d433d5241d04c70eb0842607aab36b5d734d8e32d7d +size 4742 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YE/SGIRC7Q6NVWT1LQ6M2IPRV.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YE/SGIRC7Q6NVWT1LQ6M2IPRV.uasset new file mode 100644 index 00000000..6ea74031 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YE/SGIRC7Q6NVWT1LQ6M2IPRV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:980264bcf3208706563804a566d04dade124ee7bbd5d8fbd4a064b9392a3bda8 +size 5056 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YS/5WJVWKE676UGGIP4V5BJ8S.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YS/5WJVWKE676UGGIP4V5BJ8S.uasset new file mode 100644 index 00000000..684e2044 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/4/YS/5WJVWKE676UGGIP4V5BJ8S.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba3020f628b6a58d2c859260111f0009fb8f433752b4195bed21e2f93b3ca829 +size 4256 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/0G/MNT6MXL9NNBLIQC6BQGZZO.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/0G/MNT6MXL9NNBLIQC6BQGZZO.uasset new file mode 100644 index 00000000..d38ba06b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/0G/MNT6MXL9NNBLIQC6BQGZZO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9bcde9104d789dfecbf605d9b26b88f25936981d5daa70147db7470c718435a +size 2351 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/11/HXSWXB8W8EN2GQYU543KRH.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/11/HXSWXB8W8EN2GQYU543KRH.uasset new file mode 100644 index 00000000..30e26b47 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/11/HXSWXB8W8EN2GQYU543KRH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc21cd88173791d305f4c0b4aa75695d79f8af765b34db0798b1dcd7f9862006 +size 4227 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/2V/KIVIHUGRK6SF5S9JUNWDFE.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/2V/KIVIHUGRK6SF5S9JUNWDFE.uasset new file mode 100644 index 00000000..f15e3f5f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/2V/KIVIHUGRK6SF5S9JUNWDFE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70ecd7d192f9e3e23c1ed09ab061d57228ce16af4a778349b8b5684040003077 +size 10637 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/8J/VEJGNDF523MHRCGVVC2N6M.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/8J/VEJGNDF523MHRCGVVC2N6M.uasset new file mode 100644 index 00000000..c550c3b0 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/8J/VEJGNDF523MHRCGVVC2N6M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2377d310639076ebbf0ae8bde9675aeb2436d2aa0a3a73ccdebfa4466c219da9 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/98/XIJ6FLRPKL6UU74K9LRUP1.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/98/XIJ6FLRPKL6UU74K9LRUP1.uasset new file mode 100644 index 00000000..18cc91b5 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/98/XIJ6FLRPKL6UU74K9LRUP1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08c415b0fc1c3d2e5e5fa161c62d6a10a9bdd733f88544cfd676e25da60c64c6 +size 4267 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/HI/H5R9UZWIV7QOGUVYPU2STN.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/HI/H5R9UZWIV7QOGUVYPU2STN.uasset new file mode 100644 index 00000000..0a854876 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/HI/H5R9UZWIV7QOGUVYPU2STN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ac806d4c3621376291ae5cb25a3bbeb68c6935b2544a2bc2024b0138befd67a +size 4461 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/KA/VENIUKR2QMRF54CG6GEY5U.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/KA/VENIUKR2QMRF54CG6GEY5U.uasset new file mode 100644 index 00000000..7e2f2649 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/KA/VENIUKR2QMRF54CG6GEY5U.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86a5affb4d7070156fdda99f15d0bab528df031c21ce5de5a010bc25dc20df90 +size 4436 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/LX/S7FSS1RCMQI1ESOVHK3PF5.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/LX/S7FSS1RCMQI1ESOVHK3PF5.uasset new file mode 100644 index 00000000..88c0bf61 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/LX/S7FSS1RCMQI1ESOVHK3PF5.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c3d8fcc6ddda450aa3d8de1cf0ebbfd3626cc1c23d8470ffc18939ed7d8f2a4 +size 5057 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/WS/HDKFOPSZHAP1OAA9QA42RG.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/WS/HDKFOPSZHAP1OAA9QA42RG.uasset new file mode 100644 index 00000000..3b5a3768 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/WS/HDKFOPSZHAP1OAA9QA42RG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9f4e9004a92f2428a2637665ebdaf2d55de52eb05f6a0e64641e868090e26ad +size 4407 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/YL/FRJS1L7DMBNXVT9RIC69OV.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/YL/FRJS1L7DMBNXVT9RIC69OV.uasset new file mode 100644 index 00000000..1ab18d65 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/5/YL/FRJS1L7DMBNXVT9RIC69OV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0cb9ef59dca5488593a6917338434dec24bed1ad30a1db11cb42a39df3a73c3 +size 4895 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4P/ONZA8WX7BUKU7W68Q7J8QR.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4P/ONZA8WX7BUKU7W68Q7J8QR.uasset new file mode 100644 index 00000000..d6dea0a0 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4P/ONZA8WX7BUKU7W68Q7J8QR.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4260b70245cfea0407133337e3bb904ecee460ed92a595c4bf44f0916bb212f +size 7322 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4S/1PCMJP3ZHUU786ZS7C3VD4.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4S/1PCMJP3ZHUU786ZS7C3VD4.uasset new file mode 100644 index 00000000..2e60dfe1 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/4S/1PCMJP3ZHUU786ZS7C3VD4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afc0429ef9aa2723b2dbf8d892432977e9f20f632ce2e981310edfc7725e2a0a +size 8099 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/CL/DDAVFPSSL4CB6WUSJXYCM3.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/CL/DDAVFPSSL4CB6WUSJXYCM3.uasset new file mode 100644 index 00000000..c1225d47 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/CL/DDAVFPSSL4CB6WUSJXYCM3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce940cd4c59fbf33464a8910b5734033b95b63a9b90752f54b05c1a42b8c8bb0 +size 4436 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/H3/C5HB5B8YSLIBO8M98S3Z3B.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/H3/C5HB5B8YSLIBO8M98S3Z3B.uasset new file mode 100644 index 00000000..7f8cb88b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/H3/C5HB5B8YSLIBO8M98S3Z3B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04c637b1b219bf6b4ce7878e25796fefcf44d5bf83bc04537601afdfa6698fd9 +size 4461 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/HG/CUP7EHXJ8WRDAPB76Y4QHP.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/HG/CUP7EHXJ8WRDAPB76Y4QHP.uasset new file mode 100644 index 00000000..7abd2563 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/HG/CUP7EHXJ8WRDAPB76Y4QHP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:219684c93bc60dd67383dc9973a96b58b4e311cf1e002d7edbda204bc06e59aa +size 6383 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/KG/G19GN77UZ81FWYFBLAGCVA.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/KG/G19GN77UZ81FWYFBLAGCVA.uasset new file mode 100644 index 00000000..029fc114 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/KG/G19GN77UZ81FWYFBLAGCVA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11fee0b7c37794692cdb913fb1a23a2e72b5951616883fddfb79832d4e6dd0ad +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/OM/EQG9DMAAA7T5F0G3UASAAS.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/OM/EQG9DMAAA7T5F0G3UASAAS.uasset new file mode 100644 index 00000000..9f2e1df4 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/OM/EQG9DMAAA7T5F0G3UASAAS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:505994a3d9ba2bbcc05548f1e2bb5a48969787f3f4e8e25695f267a483032726 +size 4494 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/ST/C7FJT2X1C7LD7CDRIF5SNL.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/ST/C7FJT2X1C7LD7CDRIF5SNL.uasset new file mode 100644 index 00000000..0ddcab85 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/6/ST/C7FJT2X1C7LD7CDRIF5SNL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60f167f29db002bf5f75c4ac4d13211b43ee9baa9cc3235e26672483cdc898f1 +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/BN/VBV89Q0B42C42JTIZ6OPDL.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/BN/VBV89Q0B42C42JTIZ6OPDL.uasset new file mode 100644 index 00000000..f672dfb4 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/BN/VBV89Q0B42C42JTIZ6OPDL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f27a4db94ab16d93d252d9962c6d7f7eee824f39740c329706ff973364244773 +size 4500 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/EC/RHAUNQAJJMSZHRCX9N97YC.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/EC/RHAUNQAJJMSZHRCX9N97YC.uasset new file mode 100644 index 00000000..1037d26f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/EC/RHAUNQAJJMSZHRCX9N97YC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4229041fc9c779ab30db778b0195d6fa19ae884c79050884c283d65ef2a98f9 +size 4441 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/JI/C47XCFL10REQHFY6Y2K29B.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/JI/C47XCFL10REQHFY6Y2K29B.uasset new file mode 100644 index 00000000..b8317b1f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/JI/C47XCFL10REQHFY6Y2K29B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ddfb6911d30de9a81fde854c824777f30d35658db0835705bde7b7450aae435 +size 4962 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/PV/5NHB4VCJVNLTIITUTCMHP6.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/PV/5NHB4VCJVNLTIITUTCMHP6.uasset new file mode 100644 index 00000000..a5a18486 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/PV/5NHB4VCJVNLTIITUTCMHP6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfb27bcc08fdc22341b763883bd341159abf9f3a3fcf595a97dfa5f0cfe6fa6f +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/SE/GYZ6BRP5K6C01Y7J03QDIZ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/SE/GYZ6BRP5K6C01Y7J03QDIZ.uasset new file mode 100644 index 00000000..3e2fd640 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/SE/GYZ6BRP5K6C01Y7J03QDIZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1802c49f903dd2f80c601fa3c7fcbb629ae6c459ddad0c7e90258b54dc389e3f +size 4358 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/VF/2503NOWHONAK6DEJPUSS0M.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/VF/2503NOWHONAK6DEJPUSS0M.uasset new file mode 100644 index 00000000..32eaf361 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/7/VF/2503NOWHONAK6DEJPUSS0M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cab8271b1ae49a76c3b0384f22fe55a673fe0b947c1f0d15b4cd316a08c3a46b +size 4658 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/3C/XEWDO8QZ67QP8WWXEG10QU.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/3C/XEWDO8QZ67QP8WWXEG10QU.uasset new file mode 100644 index 00000000..598baef8 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/3C/XEWDO8QZ67QP8WWXEG10QU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e06304cc50953fa20785a50f7319e8b28b51cf0c1df405f44dca738898c8045 +size 4379 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/9L/M5PLJQ18LJ1OF3R43834GP.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/9L/M5PLJQ18LJ1OF3R43834GP.uasset new file mode 100644 index 00000000..370e3524 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/9L/M5PLJQ18LJ1OF3R43834GP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d3a0775397a50708d7a5ef5300697b9340c3c9669bb521a331b0c137530d07f +size 4420 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/D1/WFBVU87ZMWGVTIK9492GL1.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/D1/WFBVU87ZMWGVTIK9492GL1.uasset new file mode 100644 index 00000000..aba9a353 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/D1/WFBVU87ZMWGVTIK9492GL1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ab18d60a4c0d3e153982937f1fc513c6caf23f4d9d5591498cfa735bc1fd086 +size 4347 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/M9/M4HC6J2NJ57R9I657D9OKW.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/M9/M4HC6J2NJ57R9I657D9OKW.uasset new file mode 100644 index 00000000..de8ea303 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/M9/M4HC6J2NJ57R9I657D9OKW.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28d1cb8536e16d6224212fecd7eeb39a36c25aecb75601f861bfa9ce35128459 +size 4742 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/NV/9EOX3R070K7Q1HNEJ3Z50Q.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/NV/9EOX3R070K7Q1HNEJ3Z50Q.uasset new file mode 100644 index 00000000..b418290c --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/NV/9EOX3R070K7Q1HNEJ3Z50Q.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1e88ec187fcb96b3ea1e79cb5d5e921c226ab0c259716e570147a5f175bdc0d +size 7282 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O4/XPZMTQ26JML0BUCVK1V9SJ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O4/XPZMTQ26JML0BUCVK1V9SJ.uasset new file mode 100644 index 00000000..ae26fae2 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O4/XPZMTQ26JML0BUCVK1V9SJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41aa3d50544ba986c4b0c26620658958e83aa79c9f4e8a0f76ffa69e45fb6ef5 +size 4381 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O5/W0YFPSYGON5FORJNBIJZJ8.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O5/W0YFPSYGON5FORJNBIJZJ8.uasset new file mode 100644 index 00000000..7e3a9223 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/O5/W0YFPSYGON5FORJNBIJZJ8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e2324d073fdcbf8dda3418d136b0b204286e6ab6908016256b34b01322dc510 +size 5057 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/TF/J5G69OJLDFUBLGWICW0BT7.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/TF/J5G69OJLDFUBLGWICW0BT7.uasset new file mode 100644 index 00000000..d32f8509 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/8/TF/J5G69OJLDFUBLGWICW0BT7.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17d70856fcebbf1a2aa1825bc84e451bf71a1f5a4bac24932c04a5737b67835d +size 3510 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/18/BEWKQY0ZG6DEKR25I1HL84.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/18/BEWKQY0ZG6DEKR25I1HL84.uasset new file mode 100644 index 00000000..84cafaa4 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/18/BEWKQY0ZG6DEKR25I1HL84.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d796f6f6b6f322f010972d05d7aa76a3e5321b15bbe7dceec6f0faaf0fa7d35f +size 11979 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/40/ALMUA2RQC2JL9P4JDHBKVM.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/40/ALMUA2RQC2JL9P4JDHBKVM.uasset new file mode 100644 index 00000000..29e7853f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/40/ALMUA2RQC2JL9P4JDHBKVM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a20f159b80bba11a193cd026ba0b266054a977331724a732b49475770d0ece60 +size 4265 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/4S/AE1OE3O2XW1GUANDOCU3U8.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/4S/AE1OE3O2XW1GUANDOCU3U8.uasset new file mode 100644 index 00000000..aeb3e2c5 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/4S/AE1OE3O2XW1GUANDOCU3U8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b556cbabc99336d25ef921031d80b0cfdd554369588ecf8d3541c9b776452a8a +size 4435 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/58/ZFMBPFALSZGMPS3YHN1Z8B.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/58/ZFMBPFALSZGMPS3YHN1Z8B.uasset new file mode 100644 index 00000000..241def4f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/58/ZFMBPFALSZGMPS3YHN1Z8B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28c34184b0161abca348f33c64e0576493ee46503a2d33dc59462a1e28462bd7 +size 4235 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/82/OBA1YJA4DAQ8SRE8L4DWB8.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/82/OBA1YJA4DAQ8SRE8L4DWB8.uasset new file mode 100644 index 00000000..52e4ca1f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/82/OBA1YJA4DAQ8SRE8L4DWB8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c61f97a496e58384d57b65f63d7c70710e7cbb56573ffcb933a960986f77693 +size 6936 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/9J/PFS69U6II2QIZK64NG8ECB.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/9J/PFS69U6II2QIZK64NG8ECB.uasset new file mode 100644 index 00000000..2d9b899b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/9J/PFS69U6II2QIZK64NG8ECB.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f15a870a8349e0f09787451a2d82db53246ff986f535ca9b77bdcbb97ce963d0 +size 4737 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/CZ/TRSBD2QQIQQJVOKX427FOO.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/CZ/TRSBD2QQIQQJVOKX427FOO.uasset new file mode 100644 index 00000000..ae670493 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/CZ/TRSBD2QQIQQJVOKX427FOO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db0316b12e3b629437fcba75f0b2a8e1c8c9beabef72cebddfeb59a2dfd0ba94 +size 4962 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/KK/149M9RMRSBZ3AMMOFM6X76.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/KK/149M9RMRSBZ3AMMOFM6X76.uasset new file mode 100644 index 00000000..175d3b49 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/KK/149M9RMRSBZ3AMMOFM6X76.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e22f6de41d923918d7e86d745ad0a88b3bf801d50472fcb3d46e7e1f29c7daa +size 8097 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/OC/3J1HLVQW9O00C30GNF7IHA.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/OC/3J1HLVQW9O00C30GNF7IHA.uasset new file mode 100644 index 00000000..46fa97b3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/OC/3J1HLVQW9O00C30GNF7IHA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e8e4f010f6bc7467b8a4a6d79162adc17c27d6f921aebdc35e578f167af93b01 +size 3738 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/Q6/96JCPIKXZ4CSYEW1II26CF.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/Q6/96JCPIKXZ4CSYEW1II26CF.uasset new file mode 100644 index 00000000..ce1b41af --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/Q6/96JCPIKXZ4CSYEW1II26CF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c4aba3d480178bfa453bc9798020a54e2de883c9441901e79d901e668f2d451 +size 4434 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/UG/M7C024UOVLQVNDLCPFEF41.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/UG/M7C024UOVLQVNDLCPFEF41.uasset new file mode 100644 index 00000000..e57661de --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/9/UG/M7C024UOVLQVNDLCPFEF41.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3568bd04ac6606c7981d0d123354ea10f9607a27a97e591eb54a994b78947174 +size 4262 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/6Z/4MM1U6K5CHN2X3U1ZN0PCF.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/6Z/4MM1U6K5CHN2X3U1ZN0PCF.uasset new file mode 100644 index 00000000..6f175066 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/6Z/4MM1U6K5CHN2X3U1ZN0PCF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:151354b23e04dae6f053d634fc5d6a7bde65fb5805ad7e0c5d2ce7dbe928ffca +size 6934 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/HP/C5K432JRQ1BYXT3FTD09T8.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/HP/C5K432JRQ1BYXT3FTD09T8.uasset new file mode 100644 index 00000000..624b119a --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/HP/C5K432JRQ1BYXT3FTD09T8.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b3ba4378b2ea9092faccc53661fd52be7cdaf6ec35b6e4df2de91b0afa430f20 +size 4438 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/IX/Z748QEZOJKJPVQA5HOVF19.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/IX/Z748QEZOJKJPVQA5HOVF19.uasset new file mode 100644 index 00000000..de023f50 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/IX/Z748QEZOJKJPVQA5HOVF19.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8cb3bb2d1cefd8c2fe0d98115c5602ae954496fa82ec0af8564f5f90f8adec33 +size 4500 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/MH/T5JN8L0NNVBQZS81FAUTHP.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/MH/T5JN8L0NNVBQZS81FAUTHP.uasset new file mode 100644 index 00000000..59d65796 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/MH/T5JN8L0NNVBQZS81FAUTHP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94b62502825134d84c7c9f8dbf54fdd638a55035cf894164f6b4a06c85d494e7 +size 4414 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/P0/NTQNIH1UNVQHI6TV3F5W8B.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/P0/NTQNIH1UNVQHI6TV3F5W8B.uasset new file mode 100644 index 00000000..f6888b5d --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/P0/NTQNIH1UNVQHI6TV3F5W8B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9918ab2df68941797f1ce64e36511dda95e53ad97cc0771d5512275dd3ab9dfc +size 4235 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/PI/YM56N6ZIWAUXVFR8MUZZOO.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/PI/YM56N6ZIWAUXVFR8MUZZOO.uasset new file mode 100644 index 00000000..f2b6f72e --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/PI/YM56N6ZIWAUXVFR8MUZZOO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdf89b5eb013d2208aa134ee3ea830a15cb89197882f1df3b2c2e3f368a66d57 +size 4500 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/ZL/1JIGGUELJL1UHR87XFGF2L.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/ZL/1JIGGUELJL1UHR87XFGF2L.uasset new file mode 100644 index 00000000..5fc64ff2 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/A/ZL/1JIGGUELJL1UHR87XFGF2L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:662da5ecb6a2e37d3f048a45bd5dde19079eccbce152371f2c32fabe47f2662a +size 4417 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/2N/NK7HUH3ZTN30G6QMG4HQEV.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/2N/NK7HUH3ZTN30G6QMG4HQEV.uasset new file mode 100644 index 00000000..cadeea54 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/2N/NK7HUH3ZTN30G6QMG4HQEV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54d191d6d4be0d32fadc3d084d8729d0300c7a044d56fc2661d1a361fd5f9881 +size 4962 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/6Q/X78TKFTDHW6W8VWR0MLNF6.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/6Q/X78TKFTDHW6W8VWR0MLNF6.uasset new file mode 100644 index 00000000..0f54d468 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/6Q/X78TKFTDHW6W8VWR0MLNF6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61ddedc0155ad8732b210cb0865a43cd9ced933a3f1020046526aecc67594f76 +size 4962 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/7T/OFCYKXQ4BTIPJAY9M2UON0.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/7T/OFCYKXQ4BTIPJAY9M2UON0.uasset new file mode 100644 index 00000000..a7322e26 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/7T/OFCYKXQ4BTIPJAY9M2UON0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59ca62c158cd5b62b82f8a28ff16940185e3f35d3476d6c4b344db8d21499a48 +size 4227 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/9B/SB6UE7ZLVAMO27YUDXOOE0.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/9B/SB6UE7ZLVAMO27YUDXOOE0.uasset new file mode 100644 index 00000000..612fa532 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/9B/SB6UE7ZLVAMO27YUDXOOE0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d71e7fd300c84da9a37fb4c1f067641910f5631b3451dd38eed76f74c1d4a4c2 +size 4262 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/AF/HTT1ODAH8FRLXWSUWM6G08.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/AF/HTT1ODAH8FRLXWSUWM6G08.uasset new file mode 100644 index 00000000..3979ef72 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/AF/HTT1ODAH8FRLXWSUWM6G08.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0d7d7c429ffcb0efe192faf3edcdbef61978009a8f859f20a90b15b4ecb5886 +size 4345 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/B8/LXC2FRJ0J9CP7DOL525NX1.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/B8/LXC2FRJ0J9CP7DOL525NX1.uasset new file mode 100644 index 00000000..5ac30ac8 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/B8/LXC2FRJ0J9CP7DOL525NX1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85229d816c159b93d00e3d64cfbbc9508dd290a5d1618b2c6e1d28ead2a86145 +size 6383 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/DH/DL0YKAW1ABM2DGHUXFW9NO.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/DH/DL0YKAW1ABM2DGHUXFW9NO.uasset new file mode 100644 index 00000000..8512218b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/DH/DL0YKAW1ABM2DGHUXFW9NO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c65dae68bff03d6301be23f9082fe855fe017107cc22798d24cd91fd09c569f5 +size 4235 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/GC/R846JUMVJFNX6QW9TT4Q0N.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/GC/R846JUMVJFNX6QW9TT4Q0N.uasset new file mode 100644 index 00000000..cc37486f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/GC/R846JUMVJFNX6QW9TT4Q0N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20b24b4fdd270f780b27d46b342fb412e380cca7087d08428b722177c79fa556 +size 4435 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LF/MRDUAOE75HGKRL2ZHFEZOJ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LF/MRDUAOE75HGKRL2ZHFEZOJ.uasset new file mode 100644 index 00000000..e91a1793 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LF/MRDUAOE75HGKRL2ZHFEZOJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f8d3b92eb52bbc6ac78afdb91708b47d06ce5965b54ef4823a7578ad21d2876 +size 4360 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LV/VPCHL3UWGIRF8TH9Z2TDFX.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LV/VPCHL3UWGIRF8TH9Z2TDFX.uasset new file mode 100644 index 00000000..a408cdf3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/LV/VPCHL3UWGIRF8TH9Z2TDFX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab0626dbd7570ed5818ab05c9457690bc53c22c1890e0866f0e67c31d63ae708 +size 4322 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QB/9HIIR1HQ10M8860SGIT1WH.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QB/9HIIR1HQ10M8860SGIT1WH.uasset new file mode 100644 index 00000000..c94b8f89 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QB/9HIIR1HQ10M8860SGIT1WH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3894742bfb130646a62bc6277e415a4bd882a59230da7f35ba84399d9a50bb50 +size 4515 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QH/97FCCPDBOWZUU5KBCV3VHZ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QH/97FCCPDBOWZUU5KBCV3VHZ.uasset new file mode 100644 index 00000000..40ed30d3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/QH/97FCCPDBOWZUU5KBCV3VHZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:050f72f8bb0d37e41aa2080cc94d194ec15d44db4897c60abff60a006185a4f1 +size 4412 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/YM/2O667IP38S1H66I3OTUNHD.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/YM/2O667IP38S1H66I3OTUNHD.uasset new file mode 100644 index 00000000..fb12aee1 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/B/YM/2O667IP38S1H66I3OTUNHD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8a5b879791dcdee09e1dc910fa7d6ffdac258d22eb940d865de15df96f1e167 +size 4436 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/H0/6X2DM83060UJ6CIV0SM58Q.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/H0/6X2DM83060UJ6CIV0SM58Q.uasset new file mode 100644 index 00000000..a4d61c4a --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/H0/6X2DM83060UJ6CIV0SM58Q.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7570028022b2b241c35928e9f49bfab179723947a86a262d07e81ce602c470c +size 4376 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/IX/8D3DTQVWW86HPUIDF9ED2V.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/IX/8D3DTQVWW86HPUIDF9ED2V.uasset new file mode 100644 index 00000000..8545b0ab --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/IX/8D3DTQVWW86HPUIDF9ED2V.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b3845ad6423d6defdb424ebcc05dc5c49a89c74872bebd0b3fb5e05eb69548a +size 8099 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/PS/LCUC43S1O7M68CUVB01FPL.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/PS/LCUC43S1O7M68CUVB01FPL.uasset new file mode 100644 index 00000000..6fec097f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/PS/LCUC43S1O7M68CUVB01FPL.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41755af81a0b3d1a6654ad6f5e53b6d3203d319d6479b495ded799c45d3efb02 +size 3853 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/V4/T109TNQNQD7VTBTOSI7GHI.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/V4/T109TNQNQD7VTBTOSI7GHI.uasset new file mode 100644 index 00000000..720218fa --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/V4/T109TNQNQD7VTBTOSI7GHI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ba6c8eb8afaa221087bdb12f576eefed5fcd7f460b83a39383a2ceaac9c544b +size 4441 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/XB/C6DV771TPY5FASA3FXG08L.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/XB/C6DV771TPY5FASA3FXG08L.uasset new file mode 100644 index 00000000..431f9bcf --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/C/XB/C6DV771TPY5FASA3FXG08L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c95a43ffae36d04cc347d6aaecfdc77675e5b2919eece149125919913c483d25 +size 4957 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/24/LWIC4Q5NJDJRQLRT1U7JQZ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/24/LWIC4Q5NJDJRQLRT1U7JQZ.uasset new file mode 100644 index 00000000..97663cf3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/24/LWIC4Q5NJDJRQLRT1U7JQZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:96c0462c83db56e43c6b40fd72034bfd62662f9659d174fe14bf4eb201dcd9ff +size 3620 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/60/M6F7N9WKG0W3S0XFEHFWEJ.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/60/M6F7N9WKG0W3S0XFEHFWEJ.uasset new file mode 100644 index 00000000..42c4411c --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/60/M6F7N9WKG0W3S0XFEHFWEJ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95c82a1c16c979329f93a70a78504c9e6b1e696b06196bfecf50bf87bcf63886 +size 5834 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/BV/O3UA8ZG0FDSNU2NCKB16QM.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/BV/O3UA8ZG0FDSNU2NCKB16QM.uasset new file mode 100644 index 00000000..b4505ccf --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/BV/O3UA8ZG0FDSNU2NCKB16QM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c8ec03936a7fcd7253ef72e13f2f8f3b34511e7b023b90927f9d83d6decd4dc +size 5985 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/EJ/GYZG8V8UDFXS3ZPLRYK2OS.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/EJ/GYZG8V8UDFXS3ZPLRYK2OS.uasset new file mode 100644 index 00000000..4b183117 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/EJ/GYZG8V8UDFXS3ZPLRYK2OS.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52709ddce795b2431030d56e0601d21699c37c0bcf29ca57b79293b898ba31c7 +size 4417 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/FW/4M9MKWCD7VUZY7IB8E3F87.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/FW/4M9MKWCD7VUZY7IB8E3F87.uasset new file mode 100644 index 00000000..9cf8fb3a --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/FW/4M9MKWCD7VUZY7IB8E3F87.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10dbd19e9fda37840143af5ee9c1d8e5b27e1956d1697a7ca1e793cdfed6cbdc +size 4414 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/HL/0LV22MFZ3771CUYGGT7OYE.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/HL/0LV22MFZ3771CUYGGT7OYE.uasset new file mode 100644 index 00000000..7b6bdb78 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/HL/0LV22MFZ3771CUYGGT7OYE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7b38928164db4d4c583ff86e69bd48593afc599235dec9b4ea3dd55b800783a +size 4326 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/RI/HBJTKGQJCWZHXG5YXZ7X14.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/RI/HBJTKGQJCWZHXG5YXZ7X14.uasset new file mode 100644 index 00000000..f547966f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/RI/HBJTKGQJCWZHXG5YXZ7X14.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a4ac4780e73fdff8ef352496d82586ce81c5de889bb6a94b2cfafdb29cdf3f1 +size 4235 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/WC/A1043JYX0M2MXGJ7IKDK1P.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/WC/A1043JYX0M2MXGJ7IKDK1P.uasset new file mode 100644 index 00000000..b3d7126f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/D/WC/A1043JYX0M2MXGJ7IKDK1P.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccef351d910f49e87dbad7483c3a27d35b50f25c50e291f1da0f1c304464163f +size 4498 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/3N/IP10SCMUUFKDED6WVQ85C4.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/3N/IP10SCMUUFKDED6WVQ85C4.uasset new file mode 100644 index 00000000..ad759b12 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/3N/IP10SCMUUFKDED6WVQ85C4.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ed7b634874ee8cf1bb3d0d7e1b68e2a97e727cc2c596ad7a19bcdc14ab5704d +size 4521 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/DX/M9XHW0KG6QZ6X10PV03VKE.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/DX/M9XHW0KG6QZ6X10PV03VKE.uasset new file mode 100644 index 00000000..3fe9e5e3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/DX/M9XHW0KG6QZ6X10PV03VKE.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95baff82d9502ed8cebf3844a5118b2473997c1adbe81f12fb1b224556f7171d +size 4435 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/E1/CE9XUEKVWMUGMSXMLM32D7.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/E1/CE9XUEKVWMUGMSXMLM32D7.uasset new file mode 100644 index 00000000..4c430b1c --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/E1/CE9XUEKVWMUGMSXMLM32D7.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62aeafa95a1c41f5366b824780be302094ce19de32147c5025be9a87a2d0a9fc +size 4381 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/EW/IHI5EDKUS1LAED7N3HK6WF.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/EW/IHI5EDKUS1LAED7N3HK6WF.uasset new file mode 100644 index 00000000..6f65c30e --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/EW/IHI5EDKUS1LAED7N3HK6WF.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf6935448063ca93b5958dd4151977c17a83be596f7414ea9ccac7a1f0ca74a +size 4742 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/F8/0F29CGXYPOLYNC2FSUP2NU.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/F8/0F29CGXYPOLYNC2FSUP2NU.uasset new file mode 100644 index 00000000..8a4a5a4b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/F8/0F29CGXYPOLYNC2FSUP2NU.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f65594659f1607db0e88d490c300c9f159922d1d0ffa733be37cbbd59acec666 +size 4962 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/O1/1XY7WT15UZT24CD722WI95.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/O1/1XY7WT15UZT24CD722WI95.uasset new file mode 100644 index 00000000..2184803b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/O1/1XY7WT15UZT24CD722WI95.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f109aa47afd9c27f87a4753f342b1da0ca227aaef7ea67919580d1be99aa4f3 +size 4962 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/VP/QGBW7PPDOSB1WZC94QGV5K.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/VP/QGBW7PPDOSB1WZC94QGV5K.uasset new file mode 100644 index 00000000..330b14ea --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/VP/QGBW7PPDOSB1WZC94QGV5K.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6548cc0e5c447eb4584c79a0da12d6397b1b9a493afb3f7343be62977d81019 +size 5176 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/XE/O07DDE14R625D7FPPLAQSH.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/XE/O07DDE14R625D7FPPLAQSH.uasset new file mode 100644 index 00000000..68df6d16 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/XE/O07DDE14R625D7FPPLAQSH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae7d75a67eae931aeeda2359bd0c8c18c9e55cdac3404c99e522b1020c7b99a2 +size 4360 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/YG/TM1QIR2G2RXQJ9Q4OBWLZH.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/YG/TM1QIR2G2RXQJ9Q4OBWLZH.uasset new file mode 100644 index 00000000..685903fc --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/E/YG/TM1QIR2G2RXQJ9Q4OBWLZH.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0ef48dd1fb2448c3c3345c86c7af4ab9d1c48b397fed616db56df1ce4173175 +size 4417 diff --git a/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/F/4F/5MUSFJE514IFZ5HK4UEOZT.uasset b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/F/4F/5MUSFJE514IFZ5HK4UEOZT.uasset new file mode 100644 index 00000000..5bb25944 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalActors__/Levels/Game/F/4F/5MUSFJE514IFZ5HK4UEOZT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:253b7e19e28eb26d128c53a91d12a999bc14b134afe15b746da46ccd127bf3e4 +size 7282 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/2/X6/MF33859T2P8A9I2ZVG1ZDI.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/2/X6/MF33859T2P8A9I2ZVG1ZDI.uasset new file mode 100644 index 00000000..03c4c44f --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/2/X6/MF33859T2P8A9I2ZVG1ZDI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2b1cbf2d078192314410d9425707b91ee493003781681f163f53c99691e2fa +size 1751 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/3/7J/IC1YEU0V10AUIW2V42TJDX.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/3/7J/IC1YEU0V10AUIW2V42TJDX.uasset new file mode 100644 index 00000000..c406ebff --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/3/7J/IC1YEU0V10AUIW2V42TJDX.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d192c37fd5a5b2d51463aa96aac761d513ca1daeaa519845ac32439c2fc945f +size 1751 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/4/Y5/37JEJC3S60NBLU8H8SQKGD.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/4/Y5/37JEJC3S60NBLU8H8SQKGD.uasset new file mode 100644 index 00000000..13dd621b --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/4/Y5/37JEJC3S60NBLU8H8SQKGD.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf35f7047bb1d0da87882d46101d383e506f2808c240a140585140592cf6a7cf +size 1765 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/5/LZ/HQIR8Z7EQL5EIORY2VU8PG.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/5/LZ/HQIR8Z7EQL5EIORY2VU8PG.uasset new file mode 100644 index 00000000..392fd56a --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/5/LZ/HQIR8Z7EQL5EIORY2VU8PG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc9d2db6f89546ee8fa017a7636014bb3c4f9681ce277c380a88f42793ac8fdb +size 1751 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/OY/1I6IX25631S7VVS258CSII.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/OY/1I6IX25631S7VVS258CSII.uasset new file mode 100644 index 00000000..ca569822 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/OY/1I6IX25631S7VVS258CSII.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd3eb76e86e56f365bd26f5ca5acbb5786d6418cccd07e5454d6d8761eb17bae +size 1757 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/YB/A52N4100UB88IQS7Q4SQA0.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/YB/A52N4100UB88IQS7Q4SQA0.uasset new file mode 100644 index 00000000..8d25dede --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/6/YB/A52N4100UB88IQS7Q4SQA0.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a597a710be94d501ae41bb030b7efa492c7ff45b9c5fa9098224b4581cfca49f +size 1751 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/8/Y1/YDLX7Q1HVK9WL6WSMUJ3FP.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/8/Y1/YDLX7Q1HVK9WL6WSMUJ3FP.uasset new file mode 100644 index 00000000..9da13da3 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/8/Y1/YDLX7Q1HVK9WL6WSMUJ3FP.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c86ee7ee4ed5c7473abcc2db7e645b16945c9e5754fd6469306ec2ad2347c9e6 +size 1751 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/9/72/R6U5L8AZNIIKFAAKU75EUM.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/9/72/R6U5L8AZNIIKFAAKU75EUM.uasset new file mode 100644 index 00000000..6db1b7f4 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/9/72/R6U5L8AZNIIKFAAKU75EUM.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24fe3bc836316c6ac5d3beefc581185795987c833ed7576771cf523583193ccd +size 1751 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/E/D7/XFWD7DTS8LFI2F9CTWCBKK.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/E/D7/XFWD7DTS8LFI2F9CTWCBKK.uasset new file mode 100644 index 00000000..0ac8c170 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/E/D7/XFWD7DTS8LFI2F9CTWCBKK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22ea029fc11c29554a822ab99e54ec46d731385a8c92812cd58886d793d03db6 +size 1753 diff --git a/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/F/56/89U85W6WD43YSJ2VUU9HBO.uasset b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/F/56/89U85W6WD43YSJ2VUU9HBO.uasset new file mode 100644 index 00000000..5ae932f7 --- /dev/null +++ b/unreal/ShooterGame/Content/__ExternalObjects__/Levels/Game/F/56/89U85W6WD43YSJ2VUU9HBO.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9254413931cbd225a4705497382ba1351b0a20fdc2679529d488f6b84c788943 +size 1753 diff --git a/unreal/ShooterGame/ShooterGame.uproject b/unreal/ShooterGame/ShooterGame.uproject new file mode 100644 index 00000000..68593cbf --- /dev/null +++ b/unreal/ShooterGame/ShooterGame.uproject @@ -0,0 +1,35 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.6", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "ShooterGame", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "Engine", + "AIModule", + "UMG" + ] + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + }, + { + "Name": "StateTree", + "Enabled": true + }, + { + "Name": "GameplayStateTree", + "Enabled": true + } + ] +} \ No newline at end of file diff --git a/unreal/ShooterGame/Source/ShooterGame.Target.cs b/unreal/ShooterGame/Source/ShooterGame.Target.cs new file mode 100644 index 00000000..3a677cd9 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame.Target.cs @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class ShooterGameTarget : TargetRules +{ + public ShooterGameTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V5; + IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6; + ExtraModuleNames.Add("ShooterGame"); + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp new file mode 100644 index 00000000..f13a5755 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp @@ -0,0 +1,283 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Actors/ShooterCharacter.h" +#include "Actors/ShooterWeapon.h" +#include "EnhancedInputComponent.h" +#include "Components/InputComponent.h" +#include "Components/PawnNoiseEmitterComponent.h" +#include "GameFramework/CharacterMovementComponent.h" +#include "Components/SkeletalMeshComponent.h" +#include "Engine/World.h" +#include "Camera/CameraComponent.h" +#include "TimerManager.h" +#include "Info/ShooterGameMode.h" + +AShooterCharacter::AShooterCharacter() +{ + // create the noise emitter component + PawnNoiseEmitter = CreateDefaultSubobject(TEXT("Pawn Noise Emitter")); + + // configure movement + GetCharacterMovement()->RotationRate = FRotator(0.0f, 600.0f, 0.0f); +} + +void AShooterCharacter::BeginPlay() +{ + Super::BeginPlay(); + + // reset HP to max + CurrentHP = MaxHP; + + // update the HUD + OnDamaged.Broadcast(1.0f); +} + +void AShooterCharacter::EndPlay(EEndPlayReason::Type EndPlayReason) +{ + Super::EndPlay(EndPlayReason); + + // clear the respawn timer + GetWorld()->GetTimerManager().ClearTimer(RespawnTimer); +} + +void AShooterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + // base class handles move, aim and jump inputs + Super::SetupPlayerInputComponent(PlayerInputComponent); + + // Set up action bindings + if (UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerInputComponent)) + { + // Firing + EnhancedInputComponent->BindAction(FireAction, ETriggerEvent::Started, this, &AShooterCharacter::DoStartFiring); + EnhancedInputComponent->BindAction(FireAction, ETriggerEvent::Completed, this, &AShooterCharacter::DoStopFiring); + + // Switch weapon + EnhancedInputComponent->BindAction(SwitchWeaponAction, ETriggerEvent::Triggered, this, &AShooterCharacter::DoSwitchWeapon); + } + +} + +float AShooterCharacter::TakeDamage(float Damage, struct FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) +{ + // ignore if already dead + if (CurrentHP <= 0.0f) + { + return 0.0f; + } + + // Reduce HP + CurrentHP -= Damage; + + // Have we depleted HP? + if (CurrentHP <= 0.0f) + { + Die(); + } + + // update the HUD + OnDamaged.Broadcast(FMath::Max(0.0f, CurrentHP / MaxHP)); + + return Damage; +} + +void AShooterCharacter::DoStartFiring() +{ + // fire the current weapon + if (CurrentWeapon) + { + CurrentWeapon->StartFiring(); + } +} + +void AShooterCharacter::DoStopFiring() +{ + // stop firing the current weapon + if (CurrentWeapon) + { + CurrentWeapon->StopFiring(); + } +} + +void AShooterCharacter::DoSwitchWeapon() +{ + // ensure we have at least two weapons two switch between + if (OwnedWeapons.Num() > 1) + { + // deactivate the old weapon + CurrentWeapon->DeactivateWeapon(); + + // find the index of the current weapon in the owned list + int32 WeaponIndex = OwnedWeapons.Find(CurrentWeapon); + + // is this the last weapon? + if (WeaponIndex == OwnedWeapons.Num() - 1) + { + // loop back to the beginning of the array + WeaponIndex = 0; + } + else { + // select the next weapon index + ++WeaponIndex; + } + + // set the new weapon as current + CurrentWeapon = OwnedWeapons[WeaponIndex]; + + // activate the new weapon + CurrentWeapon->ActivateWeapon(); + } +} + +void AShooterCharacter::AttachWeaponMeshes(AShooterWeapon* Weapon) +{ + const FAttachmentTransformRules AttachmentRule(EAttachmentRule::SnapToTarget, false); + + // attach the weapon actor + Weapon->AttachToActor(this, AttachmentRule); + + // attach the weapon meshes + Weapon->GetFirstPersonMesh()->AttachToComponent(GetFirstPersonMesh(), AttachmentRule, FirstPersonWeaponSocket); + Weapon->GetThirdPersonMesh()->AttachToComponent(GetMesh(), AttachmentRule, FirstPersonWeaponSocket); + +} + +void AShooterCharacter::PlayFiringMontage(UAnimMontage* Montage) +{ + +} + +void AShooterCharacter::AddWeaponRecoil(float Recoil) +{ + // apply the recoil as pitch input + AddControllerPitchInput(Recoil); +} + +void AShooterCharacter::UpdateWeaponHUD(int32 CurrentAmmo, int32 MagazineSize) +{ + OnBulletCountUpdated.Broadcast(MagazineSize, CurrentAmmo); +} + +FVector AShooterCharacter::GetWeaponTargetLocation() +{ + // trace ahead from the camera viewpoint + FHitResult OutHit; + + const FVector Start = GetFirstPersonCameraComponent()->GetComponentLocation(); + const FVector End = Start + (GetFirstPersonCameraComponent()->GetForwardVector() * MaxAimDistance); + + FCollisionQueryParams QueryParams; + QueryParams.AddIgnoredActor(this); + + GetWorld()->LineTraceSingleByChannel(OutHit, Start, End, ECC_Visibility, QueryParams); + + // return either the impact point or the trace end + return OutHit.bBlockingHit ? OutHit.ImpactPoint : OutHit.TraceEnd; +} + +void AShooterCharacter::AddWeaponClass(const TSubclassOf& WeaponClass) +{ + // do we already own this weapon? + AShooterWeapon* OwnedWeapon = FindWeaponOfType(WeaponClass); + + if (!OwnedWeapon) + { + // spawn the new weapon + FActorSpawnParameters SpawnParams; + SpawnParams.Owner = this; + SpawnParams.Instigator = this; + SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; + SpawnParams.TransformScaleMethod = ESpawnActorScaleMethod::MultiplyWithRoot; + + AShooterWeapon* AddedWeapon = GetWorld()->SpawnActor(WeaponClass, GetActorTransform(), SpawnParams); + + if (AddedWeapon) + { + // add the weapon to the owned list + OwnedWeapons.Add(AddedWeapon); + + // if we have an existing weapon, deactivate it + if (CurrentWeapon) + { + CurrentWeapon->DeactivateWeapon(); + } + + // switch to the new weapon + CurrentWeapon = AddedWeapon; + CurrentWeapon->ActivateWeapon(); + } + } +} + +void AShooterCharacter::OnWeaponActivated(AShooterWeapon* Weapon) +{ + // update the bullet counter + OnBulletCountUpdated.Broadcast(Weapon->GetMagazineSize(), Weapon->GetBulletCount()); + + // set the character mesh AnimInstances + GetFirstPersonMesh()->SetAnimInstanceClass(Weapon->GetFirstPersonAnimInstanceClass()); + GetMesh()->SetAnimInstanceClass(Weapon->GetThirdPersonAnimInstanceClass()); +} + +void AShooterCharacter::OnWeaponDeactivated(AShooterWeapon* Weapon) +{ + // unused +} + +void AShooterCharacter::OnSemiWeaponRefire() +{ + // unused +} + +AShooterWeapon* AShooterCharacter::FindWeaponOfType(TSubclassOf WeaponClass) const +{ + // check each owned weapon + for (AShooterWeapon* Weapon : OwnedWeapons) + { + if (Weapon->IsA(WeaponClass)) + { + return Weapon; + } + } + + // weapon not found + return nullptr; + +} + +void AShooterCharacter::Die() +{ + // deactivate the weapon + if (IsValid(CurrentWeapon)) + { + CurrentWeapon->DeactivateWeapon(); + } + + // increment the team score + if (AShooterGameMode* GM = Cast(GetWorld()->GetAuthGameMode())) + { + GM->IncrementTeamScore(TeamByte); + } + + // stop character movement + GetCharacterMovement()->StopMovementImmediately(); + + // disable controls + DisableInput(nullptr); + + // reset the bullet counter UI + OnBulletCountUpdated.Broadcast(0, 0); + + // call the BP handler + BP_OnDeath(); + + // schedule character respawn + GetWorld()->GetTimerManager().SetTimer(RespawnTimer, this, &AShooterCharacter::OnRespawn, RespawnTime, false); +} + +void AShooterCharacter::OnRespawn() +{ + // destroy the character to force the PC to respawn + Destroy(); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacterBase.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacterBase.cpp new file mode 100644 index 00000000..40ea9aa5 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacterBase.cpp @@ -0,0 +1,121 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "Actors/ShooterCharacterBase.h" + +#include "Animation/AnimInstance.h" +#include "Camera/CameraComponent.h" +#include "Components/CapsuleComponent.h" +#include "Components/SkeletalMeshComponent.h" +#include "EnhancedInputComponent.h" +#include "InputActionValue.h" +#include "GameFramework/CharacterMovementComponent.h" +#include "ShooterGame.h" + +AShooterCharacterBase::AShooterCharacterBase() +{ + // Set size for collision capsule + GetCapsuleComponent()->InitCapsuleSize(55.f, 96.0f); + + // Create the first person mesh that will be viewed only by this character's owner + FirstPersonMesh = CreateDefaultSubobject(TEXT("First Person Mesh")); + + FirstPersonMesh->SetupAttachment(GetMesh()); + FirstPersonMesh->SetOnlyOwnerSee(true); + FirstPersonMesh->FirstPersonPrimitiveType = EFirstPersonPrimitiveType::FirstPerson; + FirstPersonMesh->SetCollisionProfileName(FName("NoCollision")); + + // Create the Camera Component + FirstPersonCameraComponent = CreateDefaultSubobject(TEXT("First Person Camera")); + FirstPersonCameraComponent->SetupAttachment(FirstPersonMesh, FName("head")); + 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; + + // configure the character comps + GetMesh()->SetOwnerNoSee(true); + GetMesh()->FirstPersonPrimitiveType = EFirstPersonPrimitiveType::WorldSpaceRepresentation; + + GetCapsuleComponent()->SetCapsuleSize(34.0f, 96.0f); + + // Configure character movement + GetCharacterMovement()->BrakingDecelerationFalling = 1500.0f; + GetCharacterMovement()->AirControl = 0.5f; +} + +void AShooterCharacterBase::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) +{ + // Set up action bindings + if (UEnhancedInputComponent* EnhancedInputComponent = Cast(PlayerInputComponent)) + { + // Jumping + EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Started, this, &AShooterCharacterBase::DoJumpStart); + EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &AShooterCharacterBase::DoJumpEnd); + + // Moving + EnhancedInputComponent->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AShooterCharacterBase::MoveInput); + + // Looking/Aiming + EnhancedInputComponent->BindAction(LookAction, ETriggerEvent::Triggered, this, &AShooterCharacterBase::LookInput); + EnhancedInputComponent->BindAction(MouseLookAction, ETriggerEvent::Triggered, this, &AShooterCharacterBase::LookInput); + } + else + { + UE_LOG(LogShooterGame, Error, TEXT("'%s' Failed to find an Enhanced Input Component! This template is built to use the Enhanced Input system. If you intend to use the legacy system, then you will need to update this C++ file."), *GetNameSafe(this)); + } +} + + +void AShooterCharacterBase::MoveInput(const FInputActionValue& Value) +{ + // get the Vector2D move axis + FVector2D MovementVector = Value.Get(); + + // pass the axis values to the move input + DoMove(MovementVector.X, MovementVector.Y); + +} + +void AShooterCharacterBase::LookInput(const FInputActionValue& Value) +{ + // get the Vector2D look axis + FVector2D LookAxisVector = Value.Get(); + + // pass the axis values to the aim input + DoAim(LookAxisVector.X, LookAxisVector.Y); + +} + +void AShooterCharacterBase::DoAim(float Yaw, float Pitch) +{ + if (GetController()) + { + // pass the rotation inputs + AddControllerYawInput(Yaw); + AddControllerPitchInput(Pitch); + } +} + +void AShooterCharacterBase::DoMove(float Right, float Forward) +{ + if (GetController()) + { + // pass the move inputs + AddMovementInput(GetActorRightVector(), Right); + AddMovementInput(GetActorForwardVector(), Forward); + } +} + +void AShooterCharacterBase::DoJumpStart() +{ + // pass Jump to the character + Jump(); +} + +void AShooterCharacterBase::DoJumpEnd() +{ + // pass StopJumping to the character + StopJumping(); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp new file mode 100644 index 00000000..a0aca77d --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp @@ -0,0 +1,208 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Actors/ShooterNPC.h" +#include "Actors/ShooterWeapon.h" +#include "Components/SkeletalMeshComponent.h" +#include "Camera/CameraComponent.h" +#include "Kismet/KismetMathLibrary.h" +#include "Engine/World.h" +#include "Info/ShooterGameMode.h" +#include "Components/CapsuleComponent.h" +#include "GameFramework/CharacterMovementComponent.h" +#include "TimerManager.h" + +void AShooterNPC::BeginPlay() +{ + Super::BeginPlay(); + + // spawn the weapon + FActorSpawnParameters SpawnParams; + SpawnParams.Owner = this; + SpawnParams.Instigator = this; + SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; + + Weapon = GetWorld()->SpawnActor(WeaponClass, GetActorTransform(), SpawnParams); +} + +void AShooterNPC::EndPlay(const EEndPlayReason::Type EndPlayReason) +{ + Super::EndPlay(EndPlayReason); + + // clear the death timer + GetWorld()->GetTimerManager().ClearTimer(DeathTimer); +} + +float AShooterNPC::TakeDamage(float Damage, struct FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) +{ + // ignore if already dead + if (bIsDead) + { + return 0.0f; + } + + // Reduce HP + CurrentHP -= Damage; + + // Have we depleted HP? + if (CurrentHP <= 0.0f) + { + Die(); + } + + return Damage; +} + +void AShooterNPC::AttachWeaponMeshes(AShooterWeapon* WeaponToAttach) +{ + const FAttachmentTransformRules AttachmentRule(EAttachmentRule::SnapToTarget, false); + + // attach the weapon actor + WeaponToAttach->AttachToActor(this, AttachmentRule); + + // attach the weapon meshes + WeaponToAttach->GetFirstPersonMesh()->AttachToComponent(GetFirstPersonMesh(), AttachmentRule, FirstPersonWeaponSocket); + WeaponToAttach->GetThirdPersonMesh()->AttachToComponent(GetMesh(), AttachmentRule, FirstPersonWeaponSocket); +} + +void AShooterNPC::PlayFiringMontage(UAnimMontage* Montage) +{ + // unused +} + +void AShooterNPC::AddWeaponRecoil(float Recoil) +{ + // unused +} + +void AShooterNPC::UpdateWeaponHUD(int32 CurrentAmmo, int32 MagazineSize) +{ + // unused +} + +FVector AShooterNPC::GetWeaponTargetLocation() +{ + // start aiming from the camera location + const FVector AimSource = GetFirstPersonCameraComponent()->GetComponentLocation(); + + FVector AimDir, AimTarget = FVector::ZeroVector; + + // do we have an aim target? + if (CurrentAimTarget) + { + // target the actor location + AimTarget = CurrentAimTarget->GetActorLocation(); + + // apply a vertical offset to target head/feet + AimTarget.Z += FMath::RandRange(MinAimOffsetZ, MaxAimOffsetZ); + + // get the aim direction and apply randomness in a cone + AimDir = (AimTarget - AimSource).GetSafeNormal(); + AimDir = UKismetMathLibrary::RandomUnitVectorInConeInDegrees(AimDir, AimVarianceHalfAngle); + + + } else { + + // no aim target, so just use the camera facing + AimDir = UKismetMathLibrary::RandomUnitVectorInConeInDegrees(GetFirstPersonCameraComponent()->GetForwardVector(), AimVarianceHalfAngle); + + } + + // calculate the unobstructed aim target location + AimTarget = AimSource + (AimDir * AimRange); + + // run a visibility trace to see if there's obstructions + FHitResult OutHit; + + FCollisionQueryParams QueryParams; + QueryParams.AddIgnoredActor(this); + + GetWorld()->LineTraceSingleByChannel(OutHit, AimSource, AimTarget, ECC_Visibility, QueryParams); + + // return either the impact point or the trace end + return OutHit.bBlockingHit ? OutHit.ImpactPoint : OutHit.TraceEnd; +} + +void AShooterNPC::AddWeaponClass(const TSubclassOf& InWeaponClass) +{ + // unused +} + +void AShooterNPC::OnWeaponActivated(AShooterWeapon* InWeapon) +{ + // unused +} + +void AShooterNPC::OnWeaponDeactivated(AShooterWeapon* InWeapon) +{ + // unused +} + +void AShooterNPC::OnSemiWeaponRefire() +{ + // are we still shooting? + if (bIsShooting) + { + // fire the weapon + Weapon->StartFiring(); + } +} + +void AShooterNPC::Die() +{ + // ignore if already dead + if (bIsDead) + { + return; + } + + // raise the dead flag + bIsDead = true; + + // increment the team score + if (AShooterGameMode* GM = Cast(GetWorld()->GetAuthGameMode())) + { + GM->IncrementTeamScore(TeamByte); + } + + // disable capsule collision + GetCapsuleComponent()->SetCollisionEnabled(ECollisionEnabled::NoCollision); + + // stop movement + GetCharacterMovement()->StopMovementImmediately(); + GetCharacterMovement()->StopActiveMovement(); + + // enable ragdoll physics on the third person mesh + GetMesh()->SetCollisionProfileName(RagdollCollisionProfile); + GetMesh()->SetSimulatePhysics(true); + GetMesh()->SetPhysicsBlendWeight(1.0f); + + // schedule actor destruction + GetWorld()->GetTimerManager().SetTimer(DeathTimer, this, &AShooterNPC::DeferredDestruction, DeferredDestructionTime, false); +} + +void AShooterNPC::DeferredDestruction() +{ + Destroy(); +} + +void AShooterNPC::StartShooting(AActor* ActorToShoot) +{ + // save the aim target + CurrentAimTarget = ActorToShoot; + + // raise the flag + bIsShooting = true; + + // signal the weapon + Weapon->StartFiring(); +} + +void AShooterNPC::StopShooting() +{ + // lower the flag + bIsShooting = false; + + // signal the weapon + Weapon->StopFiring(); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp new file mode 100644 index 00000000..2ab41b23 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp @@ -0,0 +1,167 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Actors/ShooterProjectile.h" +#include "Components/SphereComponent.h" +#include "GameFramework/ProjectileMovementComponent.h" +#include "GameFramework/Character.h" +#include "Kismet/GameplayStatics.h" +#include "GameFramework/DamageType.h" +#include "GameFramework/Pawn.h" +#include "GameFramework/Controller.h" +#include "Engine/OverlapResult.h" +#include "Engine/World.h" +#include "TimerManager.h" + +AShooterProjectile::AShooterProjectile() +{ + PrimaryActorTick.bCanEverTick = true; + + // create the collision component and assign it as the root + RootComponent = CollisionComponent = CreateDefaultSubobject(TEXT("Collision Component")); + + CollisionComponent->SetSphereRadius(16.0f); + CollisionComponent->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics); + CollisionComponent->SetCollisionResponseToAllChannels(ECR_Block); + CollisionComponent->CanCharacterStepUpOn = ECanBeCharacterBase::ECB_No; + + // create the projectile movement component. No need to attach it because it's not a Scene Component + ProjectileMovement = CreateDefaultSubobject(TEXT("Projectile Movement")); + + ProjectileMovement->InitialSpeed = 3000.0f; + ProjectileMovement->MaxSpeed = 3000.0f; + ProjectileMovement->bShouldBounce = true; + + // set the default damage type + HitDamageType = UDamageType::StaticClass(); +} + +void AShooterProjectile::BeginPlay() +{ + Super::BeginPlay(); + + // ignore the pawn that shot this projectile + CollisionComponent->IgnoreActorWhenMoving(GetInstigator(), true); +} + +void AShooterProjectile::EndPlay(EEndPlayReason::Type EndPlayReason) +{ + Super::EndPlay(EndPlayReason); + + // clear the destruction timer + GetWorld()->GetTimerManager().ClearTimer(DestructionTimer); +} + +void AShooterProjectile::NotifyHit(class UPrimitiveComponent* MyComp, AActor* Other, class UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit) +{ + // ignore if we've already hit something else + if (bHit) + { + return; + } + + bHit = true; + + // disable collision on the projectile + CollisionComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision); + + // make AI perception noise + MakeNoise(NoiseLoudness, GetInstigator(), GetActorLocation(), NoiseRange, NoiseTag); + + if (bExplodeOnHit) + { + + // apply explosion damage centered on the projectile + ExplosionCheck(GetActorLocation()); + + } else { + + // single hit projectile. Process the collided actor + ProcessHit(Other, OtherComp, Hit.ImpactPoint, -Hit.ImpactNormal); + + } + + // pass control to BP for any extra effects + BP_OnProjectileHit(Hit); + + // check if we should schedule deferred destruction of the projectile + if (DeferredDestructionTime > 0.0f) + { + GetWorld()->GetTimerManager().SetTimer(DestructionTimer, this, &AShooterProjectile::OnDeferredDestruction, DeferredDestructionTime, false); + + } else { + + // destroy the projectile right away + Destroy(); + } +} + +void AShooterProjectile::ExplosionCheck(const FVector& ExplosionCenter) +{ + // do a sphere overlap check look for nearby actors to damage + TArray Overlaps; + + FCollisionShape OverlapShape; + OverlapShape.SetSphere(ExplosionRadius); + + FCollisionObjectQueryParams ObjectParams; + ObjectParams.AddObjectTypesToQuery(ECC_Pawn); + ObjectParams.AddObjectTypesToQuery(ECC_WorldDynamic); + ObjectParams.AddObjectTypesToQuery(ECC_PhysicsBody); + + FCollisionQueryParams QueryParams; + QueryParams.AddIgnoredActor(this); + if (!bDamageOwner) + { + QueryParams.AddIgnoredActor(GetInstigator()); + } + + GetWorld()->OverlapMultiByObjectType(Overlaps, ExplosionCenter, FQuat::Identity, ObjectParams, OverlapShape, QueryParams); + + TArray DamagedActors; + + // process the overlap results + for (const FOverlapResult& CurrentOverlap : Overlaps) + { + // overlaps may return the same actor multiple times per each component overlapped + // ensure we only damage each actor once by adding it to a damaged list + if (DamagedActors.Find(CurrentOverlap.GetActor()) == INDEX_NONE) + { + DamagedActors.Add(CurrentOverlap.GetActor()); + + // apply physics force away from the explosion + const FVector& ExplosionDir = CurrentOverlap.GetActor()->GetActorLocation() - GetActorLocation(); + + // push and/or damage the overlapped actor + ProcessHit(CurrentOverlap.GetActor(), CurrentOverlap.GetComponent(), GetActorLocation(), ExplosionDir.GetSafeNormal()); + } + + } +} + +void AShooterProjectile::ProcessHit(AActor* HitActor, UPrimitiveComponent* HitComp, const FVector& HitLocation, const FVector& HitDirection) +{ + // have we hit a character? + if (ACharacter* HitCharacter = Cast(HitActor)) + { + // ignore the owner of this projectile + if (HitCharacter != GetOwner() || bDamageOwner) + { + // apply damage to the character + UGameplayStatics::ApplyDamage(HitCharacter, HitDamage, GetInstigator()->GetController(), this, HitDamageType); + } + } + + // have we hit a physics object? + if (HitComp->IsSimulatingPhysics()) + { + // give some physics impulse to the object + HitComp->AddImpulseAtLocation(HitDirection * PhysicsForce, HitLocation); + } +} + +void AShooterProjectile::OnDeferredDestruction() +{ + // destroy this actor + Destroy(); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterWeapon.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterWeapon.cpp new file mode 100644 index 00000000..e8b367ea --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterWeapon.cpp @@ -0,0 +1,218 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Actors/ShooterWeapon.h" +#include "Kismet/KismetMathLibrary.h" +#include "Engine/World.h" +#include "Actors/ShooterProjectile.h" +#include "Interfaces/ShooterWeaponHolder.h" +#include "Components/SceneComponent.h" +#include "TimerManager.h" +#include "Animation/AnimInstance.h" +#include "Components/SkeletalMeshComponent.h" +#include "GameFramework/Pawn.h" + +AShooterWeapon::AShooterWeapon() +{ + PrimaryActorTick.bCanEverTick = true; + + // create the root + RootComponent = CreateDefaultSubobject(TEXT("Root")); + + // create the first person mesh + FirstPersonMesh = CreateDefaultSubobject(TEXT("First Person Mesh")); + FirstPersonMesh->SetupAttachment(RootComponent); + + FirstPersonMesh->SetCollisionProfileName(FName("NoCollision")); + FirstPersonMesh->SetFirstPersonPrimitiveType(EFirstPersonPrimitiveType::FirstPerson); + FirstPersonMesh->bOnlyOwnerSee = true; + + // create the third person mesh + ThirdPersonMesh = CreateDefaultSubobject(TEXT("Third Person Mesh")); + ThirdPersonMesh->SetupAttachment(RootComponent); + + ThirdPersonMesh->SetCollisionProfileName(FName("NoCollision")); + ThirdPersonMesh->SetFirstPersonPrimitiveType(EFirstPersonPrimitiveType::WorldSpaceRepresentation); + ThirdPersonMesh->bOwnerNoSee = true; +} + +void AShooterWeapon::BeginPlay() +{ + Super::BeginPlay(); + + // subscribe to the owner's destroyed delegate + GetOwner()->OnDestroyed.AddDynamic(this, &AShooterWeapon::OnOwnerDestroyed); + + // cast the weapon owner + WeaponOwner = Cast(GetOwner()); + PawnOwner = Cast(GetOwner()); + + // fill the first ammo clip + CurrentBullets = MagazineSize; + + // attach the meshes to the owner + WeaponOwner->AttachWeaponMeshes(this); +} + +void AShooterWeapon::EndPlay(EEndPlayReason::Type EndPlayReason) +{ + Super::EndPlay(EndPlayReason); + + // clear the refire timer + GetWorld()->GetTimerManager().ClearTimer(RefireTimer); +} + +void AShooterWeapon::OnOwnerDestroyed(AActor* DestroyedActor) +{ + // ensure this weapon is destroyed when the owner is destroyed + Destroy(); +} + +void AShooterWeapon::ActivateWeapon() +{ + // unhide this weapon + SetActorHiddenInGame(false); + + // notify the owner + WeaponOwner->OnWeaponActivated(this); +} + +void AShooterWeapon::DeactivateWeapon() +{ + // ensure we're no longer firing this weapon while deactivated + StopFiring(); + + // hide the weapon + SetActorHiddenInGame(true); + + // notify the owner + WeaponOwner->OnWeaponDeactivated(this); +} + +void AShooterWeapon::StartFiring() +{ + // raise the firing flag + bIsFiring = true; + + // check how much time has passed since we last shot + // this may be under the refire rate if the weapon shoots slow enough and the player is spamming the trigger + const float TimeSinceLastShot = GetWorld()->GetTimeSeconds() - TimeOfLastShot; + + if (TimeSinceLastShot > RefireRate) + { + // fire the weapon right away + Fire(); + + } else { + + // if we're full auto, schedule the next shot + if (bFullAuto) + { + GetWorld()->GetTimerManager().SetTimer(RefireTimer, this, &AShooterWeapon::Fire, TimeSinceLastShot, false); + } + + } +} + +void AShooterWeapon::StopFiring() +{ + // lower the firing flag + bIsFiring = false; + + // clear the refire timer + GetWorld()->GetTimerManager().ClearTimer(RefireTimer); +} + +void AShooterWeapon::Fire() +{ + // ensure the player still wants to fire. They may have let go of the trigger + if (!bIsFiring) + { + return; + } + + // fire a projectile at the target + FireProjectile(WeaponOwner->GetWeaponTargetLocation()); + + // update the time of our last shot + TimeOfLastShot = GetWorld()->GetTimeSeconds(); + + // make noise so the AI perception system can hear us + MakeNoise(ShotLoudness, PawnOwner, PawnOwner->GetActorLocation(), ShotNoiseRange, ShotNoiseTag); + + // are we full auto? + if (bFullAuto) + { + // schedule the next shot + GetWorld()->GetTimerManager().SetTimer(RefireTimer, this, &AShooterWeapon::Fire, RefireRate, false); + } else { + + // for semi-auto weapons, schedule the cooldown notification + GetWorld()->GetTimerManager().SetTimer(RefireTimer, this, &AShooterWeapon::FireCooldownExpired, RefireRate, false); + + } +} + +void AShooterWeapon::FireCooldownExpired() +{ + // notify the owner + WeaponOwner->OnSemiWeaponRefire(); +} + +void AShooterWeapon::FireProjectile(const FVector& TargetLocation) +{ + // get the projectile transform + FTransform ProjectileTransform = CalculateProjectileSpawnTransform(TargetLocation); + + // spawn the projectile + FActorSpawnParameters SpawnParams; + SpawnParams.SpawnCollisionHandlingOverride = ESpawnActorCollisionHandlingMethod::AlwaysSpawn; + SpawnParams.TransformScaleMethod = ESpawnActorScaleMethod::OverrideRootScale; + SpawnParams.Owner = GetOwner(); + SpawnParams.Instigator = PawnOwner; + + AShooterProjectile* Projectile = GetWorld()->SpawnActor(ProjectileClass, ProjectileTransform, SpawnParams); + + // play the firing montage + WeaponOwner->PlayFiringMontage(FiringMontage); + + // add recoil + WeaponOwner->AddWeaponRecoil(FiringRecoil); + + // consume bullets + --CurrentBullets; + + // if the clip is depleted, reload it + if (CurrentBullets <= 0) + { + CurrentBullets = MagazineSize; + } + + // update the weapon HUD + WeaponOwner->UpdateWeaponHUD(CurrentBullets, MagazineSize); +} + +FTransform AShooterWeapon::CalculateProjectileSpawnTransform(const FVector& TargetLocation) const +{ + // find the muzzle location + const FVector MuzzleLoc = FirstPersonMesh->GetSocketLocation(MuzzleSocketName); + + // calculate the spawn location ahead of the muzzle + const FVector SpawnLoc = MuzzleLoc + ((TargetLocation - MuzzleLoc).GetSafeNormal() * MuzzleOffset); + + // find the aim rotation vector while applying some variance to the target + const FRotator AimRot = UKismetMathLibrary::FindLookAtRotation(SpawnLoc, TargetLocation + (UKismetMathLibrary::RandomUnitVector() * AimVariance)); + + // return the built transform + return FTransform(AimRot, SpawnLoc, FVector::OneVector); +} + +const TSubclassOf& AShooterWeapon::GetFirstPersonAnimInstanceClass() const +{ + return FirstPersonAnimInstanceClass; +} + +const TSubclassOf& AShooterWeapon::GetThirdPersonAnimInstanceClass() const +{ + return ThirdPersonAnimInstanceClass; +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterAIController.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterAIController.cpp new file mode 100644 index 00000000..835be044 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterAIController.cpp @@ -0,0 +1,74 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Controllers/ShooterAIController.h" +#include "Actors/ShooterNPC.h" +#include "Components/StateTreeAIComponent.h" +#include "Perception/AIPerceptionComponent.h" +#include "Navigation/PathFollowingComponent.h" +#include "AI/Navigation/PathFollowingAgentInterface.h" + +AShooterAIController::AShooterAIController() +{ + // create the StateTree component + StateTreeAI = CreateDefaultSubobject(TEXT("StateTreeAI")); + + // create the AI perception component. It will be configured in BP + AIPerception = CreateDefaultSubobject(TEXT("AIPerception")); + + // subscribe to the AI perception delegates + AIPerception->OnTargetPerceptionUpdated.AddDynamic(this, &AShooterAIController::OnPerceptionUpdated); + AIPerception->OnTargetPerceptionForgotten.AddDynamic(this, &AShooterAIController::OnPerceptionForgotten); +} + +void AShooterAIController::OnPossess(APawn* InPawn) +{ + Super::OnPossess(InPawn); + + // ensure we're possessing an NPC + if (AShooterNPC* NPC = Cast(InPawn)) + { + // add the team tag to the pawn + NPC->Tags.Add(TeamTag); + + // subscribe to the pawn's OnDeath delegate + NPC->OnPawnDeath.AddDynamic(this, &AShooterAIController::OnPawnDeath); + } +} + +void AShooterAIController::OnPawnDeath() +{ + // stop movement + GetPathFollowingComponent()->AbortMove(*this, FPathFollowingResultFlags::UserAbort); + + // stop StateTree logic + StateTreeAI->StopLogic(FString("")); + + // unpossess the pawn + UnPossess(); + + // destroy this controller + Destroy(); +} + +void AShooterAIController::SetCurrentTarget(AActor* Target) +{ + TargetEnemy = Target; +} + +void AShooterAIController::ClearCurrentTarget() +{ + TargetEnemy = nullptr; +} + +void AShooterAIController::OnPerceptionUpdated(AActor* Actor, FAIStimulus Stimulus) +{ + // pass the data to the StateTree delegate hook + OnShooterPerceptionUpdated.ExecuteIfBound(Actor, Stimulus); +} + +void AShooterAIController::OnPerceptionForgotten(AActor* Actor) +{ + // pass the data to the StateTree delegate hook + OnShooterPerceptionForgotten.ExecuteIfBound(Actor); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp new file mode 100644 index 00000000..3bfe7b16 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp @@ -0,0 +1,138 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Controllers/ShooterPlayerController.h" +#include "EnhancedInputSubsystems.h" +#include "Engine/LocalPlayer.h" +#include "InputMappingContext.h" +#include "Kismet/GameplayStatics.h" +#include "GameFramework/PlayerStart.h" +#include "Actors/ShooterCharacter.h" +#include "UI/Widgets/ShooterBulletCounterUI.h" +#include "ShooterGame.h" +#include "Info/ShooterPlayerState.h" +#include "Widgets/Input/SVirtualJoystick.h" + +void AShooterPlayerController::BeginPlay() +{ + Super::BeginPlay(); + + // only spawn touch controls on local player controllers + if (IsLocalPlayerController()) + { + + // create the bullet counter widget and add it to the screen + BulletCounterUI = CreateWidget(this, BulletCounterUIClass); + + if (BulletCounterUI) + { + BulletCounterUI->AddToPlayerScreen(0); + + } else { + + UE_LOG(LogShooterGame, Error, TEXT("Could not spawn bullet counter widget.")); + + } + + } +} + +void AShooterPlayerController::SetupInputComponent() +{ + // only add IMCs for local player controllers + if (IsLocalPlayerController()) + { + // add the input mapping contexts + if (UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem(GetLocalPlayer())) + { + for (UInputMappingContext* CurrentContext : DefaultMappingContexts) + { + Subsystem->AddMappingContext(CurrentContext, 0); + } + + // only add these IMCs if we're not using mobile touch input + if (!SVirtualJoystick::ShouldDisplayTouchInterface()) + { + for (UInputMappingContext* CurrentContext : MobileExcludedMappingContexts) + { + Subsystem->AddMappingContext(CurrentContext, 0); + } + } + } + } +} + +void AShooterPlayerController::OnPossess(APawn* InPawn) +{ + Super::OnPossess(InPawn); + + // subscribe to the pawn's OnDestroyed delegate + InPawn->OnDestroyed.AddDynamic(this, &AShooterPlayerController::OnPawnDestroyed); + + // is this a shooter character? + if (AShooterCharacter* ShooterCharacter = Cast(InPawn)) + { + // add the player tag + ShooterCharacter->Tags.Add(PlayerPawnTag); + + // subscribe to the pawn's delegates + ShooterCharacter->OnBulletCountUpdated.AddDynamic(this, &AShooterPlayerController::OnBulletCountUpdated); + ShooterCharacter->OnDamaged.AddDynamic(this, &AShooterPlayerController::OnPawnDamaged); + + // force update the life bar + ShooterCharacter->OnDamaged.Broadcast(1.0f); + } +} + +void AShooterPlayerController::OnPawnDestroyed(AActor* DestroyedActor) +{ + // reset the bullet counter HUD + BulletCounterUI->UpdateBulletCounter(0, 0); + + // find the player start + TArray ActorList; + UGameplayStatics::GetAllActorsOfClass(GetWorld(), APlayerStart::StaticClass(), ActorList); + + if (ActorList.Num() > 0) + { + // select a random player start + AActor* RandomPlayerStart = ActorList[FMath::RandRange(0, ActorList.Num() - 1)]; + + // spawn a character at the player start + const FTransform SpawnTransform = RandomPlayerStart->GetActorTransform(); + + if (AShooterCharacter* RespawnedCharacter = GetWorld()->SpawnActor(CharacterClass, SpawnTransform)) + { + // possess the character + Possess(RespawnedCharacter); + } + } +} + +void AShooterPlayerController::OnBulletCountUpdated(int32 MagazineSize, int32 Bullets) +{ + // update the UI + if (BulletCounterUI) + { + BulletCounterUI->UpdateBulletCounter(MagazineSize, Bullets); + } +} + +void AShooterPlayerController::OnPawnDamaged(float LifePercent) +{ + if (IsValid(BulletCounterUI)) + { + BulletCounterUI->Damaged(LifePercent); + } +} + +void AShooterPlayerController::CreateTouchInterface() +{ + if (TWeakObjectPtr CurrentPlayerState = GetPlayerState(); CurrentPlayerState.IsValid()) + { + if (CurrentPlayerState->bIsInGame) + { + Super::CreateTouchInterface(); + } + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/DataTable/ShooterPickup.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/DataTable/ShooterPickup.cpp new file mode 100644 index 00000000..385c5a6b --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/DataTable/ShooterPickup.cpp @@ -0,0 +1,108 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "DataTable/ShooterPickup.h" +#include "Components/SceneComponent.h" +#include "Components/SphereComponent.h" +#include "Components/StaticMeshComponent.h" +#include "Interfaces/ShooterWeaponHolder.h" +#include "Actors/ShooterWeapon.h" +#include "Engine/World.h" +#include "TimerManager.h" + +AShooterPickup::AShooterPickup() +{ + PrimaryActorTick.bCanEverTick = true; + + // create the root + RootComponent = CreateDefaultSubobject(TEXT("Root")); + + // create the collision sphere + SphereCollision = CreateDefaultSubobject(TEXT("Sphere Collision")); + SphereCollision->SetupAttachment(RootComponent); + + SphereCollision->SetRelativeLocation(FVector(0.0f, 0.0f, 84.0f)); + SphereCollision->SetCollisionEnabled(ECollisionEnabled::QueryOnly); + SphereCollision->SetCollisionObjectType(ECC_WorldStatic); + SphereCollision->SetCollisionResponseToAllChannels(ECR_Ignore); + SphereCollision->SetCollisionResponseToChannel(ECC_Pawn, ECR_Overlap); + SphereCollision->bFillCollisionUnderneathForNavmesh = true; + + // subscribe to the collision overlap on the sphere + SphereCollision->OnComponentBeginOverlap.AddDynamic(this, &AShooterPickup::OnOverlap); + + // create the mesh + Mesh = CreateDefaultSubobject(TEXT("Mesh")); + Mesh->SetupAttachment(SphereCollision); + + Mesh->SetCollisionProfileName(FName("NoCollision")); +} + +void AShooterPickup::OnConstruction(const FTransform& Transform) +{ + Super::OnConstruction(Transform); + + if (FWeaponTableRow* WeaponData = WeaponType.GetRow(FString())) + { + // set the mesh + Mesh->SetStaticMesh(WeaponData->StaticMesh.LoadSynchronous()); + } +} + +void AShooterPickup::BeginPlay() +{ + Super::BeginPlay(); + + if (FWeaponTableRow* WeaponData = WeaponType.GetRow(FString())) + { + // copy the weapon class + WeaponClass = WeaponData->WeaponToSpawn; + } +} + +void AShooterPickup::EndPlay(const EEndPlayReason::Type EndPlayReason) +{ + Super::EndPlay(EndPlayReason); + + // clear the respawn timer + GetWorld()->GetTimerManager().ClearTimer(RespawnTimer); +} + +void AShooterPickup::OnOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult) +{ + // have we collided against a weapon holder? + if (IShooterWeaponHolder* WeaponHolder = Cast(OtherActor)) + { + WeaponHolder->AddWeaponClass(WeaponClass); + + // hide this mesh + SetActorHiddenInGame(true); + + // disable collision + SetActorEnableCollision(false); + + // disable ticking + SetActorTickEnabled(false); + + // schedule the respawn + GetWorld()->GetTimerManager().SetTimer(RespawnTimer, this, &AShooterPickup::RespawnPickup, RespawnTime, false); + } +} + +void AShooterPickup::RespawnPickup() +{ + // unhide this pickup + SetActorHiddenInGame(false); + + // call the BP handler + BP_OnRespawn(); +} + +void AShooterPickup::FinishRespawn() +{ + // enable collision + SetActorEnableCollision(true); + + // enable tick + SetActorTickEnabled(true); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/EQS/EnvQueryContext_Target.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/EQS/EnvQueryContext_Target.cpp new file mode 100644 index 00000000..e24519b2 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/EQS/EnvQueryContext_Target.cpp @@ -0,0 +1,27 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "EQS/EnvQueryContext_Target.h" +#include "EnvironmentQuery/Items/EnvQueryItemType_Actor.h" +#include "EnvironmentQuery/EnvQueryTypes.h" +#include "Controllers/ShooterAIController.h" + +void UEnvQueryContext_Target::ProvideContext(FEnvQueryInstance& QueryInstance, FEnvQueryContextData& ContextData) const +{ + // get the controller from the query instance + if (AShooterAIController* Controller = Cast(QueryInstance.Owner)) + { + // ensure the target is valid + if (IsValid(Controller->GetCurrentTarget())) + { + // add the controller's target actor to the context + UEnvQueryItemType_Actor::SetContextHelper(ContextData, Controller->GetCurrentTarget()); + + } else { + + // if for any reason there's no target, default to the controller + UEnvQueryItemType_Actor::SetContextHelper(ContextData, Controller); + } + } + +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp new file mode 100644 index 00000000..8e2390d5 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp @@ -0,0 +1,33 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Info/ShooterGameMode.h" +#include "UI/Widgets/ShooterUI.h" +#include "Kismet/GameplayStatics.h" +#include "Engine/World.h" + +void AShooterGameMode::BeginPlay() +{ + Super::BeginPlay(); + + // create the UI + ShooterUI = CreateWidget(UGameplayStatics::GetPlayerController(GetWorld(), 0), ShooterUIClass); + ShooterUI->AddToViewport(0); +} + +void AShooterGameMode::IncrementTeamScore(uint8 TeamByte) +{ + // retrieve the team score if any + int32 Score = 0; + if (int32* FoundScore = TeamScores.Find(TeamByte)) + { + Score = *FoundScore; + } + + // increment the score for the given team + ++Score; + TeamScores.Add(TeamByte, Score); + + // update the UI + ShooterUI->UpdateScore(TeamByte, Score); +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameState.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameState.cpp new file mode 100644 index 00000000..9ff89988 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameState.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Info/ShooterGameState.h" + diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterPlayerState.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterPlayerState.cpp new file mode 100644 index 00000000..79c29f6c --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterPlayerState.cpp @@ -0,0 +1,5 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Info/ShooterPlayerState.h" + diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Interfaces/ShooterWeaponHolder.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Interfaces/ShooterWeaponHolder.cpp new file mode 100644 index 00000000..96f6ed91 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Interfaces/ShooterWeaponHolder.cpp @@ -0,0 +1,6 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "Interfaces/ShooterWeaponHolder.h" + +// Add default functionality here for any IShooterWeaponHolder functions that are not pure virtual. diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/ShooterGame.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/ShooterGame.cpp new file mode 100644 index 00000000..112a243a --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/ShooterGame.cpp @@ -0,0 +1,8 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#include "ShooterGame.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, ShooterGame, "ShooterGame" ); + +DEFINE_LOG_CATEGORY(LogShooterGame) \ No newline at end of file diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/StateTree/ShooterStateTreeUtility.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/StateTree/ShooterStateTreeUtility.cpp new file mode 100644 index 00000000..80480cc5 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/StateTree/ShooterStateTreeUtility.cpp @@ -0,0 +1,366 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "StateTree/ShooterStateTreeUtility.h" +#include "StateTreeExecutionContext.h" +#include "Actors/ShooterNPC.h" +#include "Camera/CameraComponent.h" +#include "AIController.h" +#include "Perception/AIPerceptionComponent.h" +#include "Controllers/ShooterAIController.h" +#include "StateTreeAsyncExecutionContext.h" + +bool FStateTreeLineOfSightToTargetCondition::TestCondition(FStateTreeExecutionContext& Context) const +{ + const FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // ensure the target is valid + if (!IsValid(InstanceData.Target)) + { + return !InstanceData.bMustHaveLineOfSight; + } + + // check if the character is facing towards the target + const FVector TargetDir = (InstanceData.Target->GetActorLocation() - InstanceData.Character->GetActorLocation()).GetSafeNormal(); + + const float FacingDot = FVector::DotProduct(TargetDir, InstanceData.Character->GetActorForwardVector()); + const float MaxDot = FMath::Cos(FMath::DegreesToRadians(InstanceData.LineOfSightConeAngle)); + + // is the facing outside of our cone half angle? + if (FacingDot <= MaxDot) + { + return !InstanceData.bMustHaveLineOfSight; + } + + // get the target's bounding box + FVector CenterOfMass, Extent; + InstanceData.Target->GetActorBounds(true, CenterOfMass, Extent, false); + + // divide the vertical extent by the number of line of sight checks we'll do + const float ExtentZOffset = Extent.Z * 2.0f / InstanceData.NumberOfVerticalLineOfSightChecks; + + // get the character's camera location as the source for the line checks + const FVector Start = InstanceData.Character->GetFirstPersonCameraComponent()->GetComponentLocation(); + + // ignore the character and target. We want to ensure there's an unobstructed trace not counting them + FCollisionQueryParams QueryParams; + QueryParams.AddIgnoredActor(InstanceData.Character); + QueryParams.AddIgnoredActor(InstanceData.Target); + + FHitResult OutHit; + + // run a number of vertically offset line traces to the target location + for (int32 i = 0; i < InstanceData.NumberOfVerticalLineOfSightChecks - 1; ++i) + { + // calculate the endpoint for the trace + const FVector End = CenterOfMass + FVector(0.0f, 0.0f, Extent.Z - ExtentZOffset * i); + + InstanceData.Character->GetWorld()->LineTraceSingleByChannel(OutHit, Start, End, ECC_Visibility, QueryParams); + + // is the trace unobstructed? + if (!OutHit.bBlockingHit) + { + // we only need one unobstructed trace, so terminate early + return InstanceData.bMustHaveLineOfSight; + } + } + + // no line of sight found + return !InstanceData.bMustHaveLineOfSight; +} + +#if WITH_EDITOR +FText FStateTreeLineOfSightToTargetCondition::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const +{ + return FText::FromString("Has Line of Sight"); +} +#endif + +//////////////////////////////////////////////////////////////////// + +EStateTreeRunStatus FStateTreeFaceActorTask::EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned from another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // set the AI Controller's focus + InstanceData.Controller->SetFocus(InstanceData.ActorToFaceTowards); + } + + return EStateTreeRunStatus::Running; +} + +void FStateTreeFaceActorTask::ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned to another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // clear the AI Controller's focus + InstanceData.Controller->ClearFocus(EAIFocusPriority::Gameplay); + } +} + +#if WITH_EDITOR +FText FStateTreeFaceActorTask::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const +{ + return FText::FromString("Face Towards Actor"); +} +#endif // WITH_EDITOR + +//////////////////////////////////////////////////////////////////// + +EStateTreeRunStatus FStateTreeFaceLocationTask::EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned from another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // set the AI Controller's focus + InstanceData.Controller->SetFocalPoint(InstanceData.FaceLocation); + } + + return EStateTreeRunStatus::Running; +} + +void FStateTreeFaceLocationTask::ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned to another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // clear the AI Controller's focus + InstanceData.Controller->ClearFocus(EAIFocusPriority::Gameplay); + } +} + +#if WITH_EDITOR +FText FStateTreeFaceLocationTask::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const +{ + return FText::FromString("Face Towards Location"); +} +#endif // WITH_EDITOR + +//////////////////////////////////////////////////////////////////// + +EStateTreeRunStatus FStateTreeSetRandomFloatTask::EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned to another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // calculate the output value + InstanceData.OutValue = FMath::RandRange(InstanceData.MinValue, InstanceData.MaxValue); + } + + return EStateTreeRunStatus::Running; +} + +#if WITH_EDITOR +FText FStateTreeSetRandomFloatTask::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const +{ + return FText::FromString("Set Random Float"); +} +#endif // WITH_EDITOR + +//////////////////////////////////////////////////////////////////// + +EStateTreeRunStatus FStateTreeShootAtTargetTask::EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned from another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // tell the character to shoot the target + InstanceData.Character->StartShooting(InstanceData.Target); + } + + return EStateTreeRunStatus::Running; +} + +void FStateTreeShootAtTargetTask::ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned to another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // tell the character to stop shooting + InstanceData.Character->StopShooting(); + } +} + +#if WITH_EDITOR +FText FStateTreeShootAtTargetTask::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const +{ + return FText::FromString("Shoot at Target"); +} +#endif // WITH_EDITOR + +EStateTreeRunStatus FStateTreeSenseEnemiesTask::EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned from another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // bind the perception updated delegate on the controller + InstanceData.Controller->OnShooterPerceptionUpdated.BindLambda( + [WeakContext = Context.MakeWeakExecutionContext()](AActor* SensedActor, const FAIStimulus& Stimulus) + { + // get the instance data inside the lambda + const FStateTreeStrongExecutionContext StrongContext = WeakContext.MakeStrongExecutionContext(); + + if (FInstanceDataType* LambdaInstanceData = StrongContext.GetInstanceDataPtr()) + { + if (SensedActor->ActorHasTag(LambdaInstanceData->SenseTag)) + { + bool bDirectLOS = false; + + // calculate the direction of the stimulus + const FVector StimulusDir = (Stimulus.StimulusLocation - LambdaInstanceData->Character->GetActorLocation()).GetSafeNormal(); + + // infer the angle from the dot product between the character facing and the stimulus direction + const float DirDot = FVector::DotProduct(StimulusDir, LambdaInstanceData->Character->GetActorForwardVector()); + const float MaxDot = FMath::Cos(FMath::DegreesToRadians(LambdaInstanceData->DirectLineOfSightCone)); + + // is the direction within our perception cone? + if (DirDot >= MaxDot) + { + // run a line trace between the character and the sensed actor + FCollisionQueryParams QueryParams; + QueryParams.AddIgnoredActor(LambdaInstanceData->Character); + QueryParams.AddIgnoredActor(SensedActor); + + FHitResult OutHit; + + // we have direct line of sight if this trace is unobstructed + bDirectLOS = !LambdaInstanceData->Character->GetWorld()->LineTraceSingleByChannel(OutHit, LambdaInstanceData->Character->GetActorLocation(), SensedActor->GetActorLocation(), ECC_Visibility, QueryParams); + + } + + // check if we have a direct line of sight to the stimulus + if (bDirectLOS) + { + // set the controller's target + LambdaInstanceData->Controller->SetCurrentTarget(SensedActor); + + // set the task output + LambdaInstanceData->TargetActor = SensedActor; + + // set the flags + LambdaInstanceData->bHasTarget = true; + LambdaInstanceData->bHasInvestigateLocation = false; + + // no direct line of sight to target + } else { + + // if we already have a target, ignore the partial sense and keep on them + if (!IsValid(LambdaInstanceData->TargetActor)) + { + // is this stimulus stronger than the last one we had? + if (Stimulus.Strength > LambdaInstanceData->LastStimulusStrength) + { + // update the stimulus strength + LambdaInstanceData->LastStimulusStrength = Stimulus.Strength; + + // set the investigate location + LambdaInstanceData->InvestigateLocation = Stimulus.StimulusLocation; + + // set the investigate flag + LambdaInstanceData->bHasInvestigateLocation = true; + } + } + } + } + } + } + ); + + // bind the perception forgotten delegate on the controller + InstanceData.Controller->OnShooterPerceptionForgotten.BindLambda( + [WeakContext = Context.MakeWeakExecutionContext()](AActor* SensedActor) + { + // get the instance data inside the lambda + FInstanceDataType* LambdaInstanceData = WeakContext.MakeStrongExecutionContext().GetInstanceDataPtr(); + + if (!LambdaInstanceData) + { + return; + } + + bool bForget = false; + + // are we forgetting the current target? + if (SensedActor == LambdaInstanceData->TargetActor) + { + bForget = true; + + } else { + + // are we forgetting about a partial sense? + if (!IsValid(LambdaInstanceData->TargetActor)) + { + bForget = true; + } + } + + if (bForget) + { + // clear the target + LambdaInstanceData->TargetActor = nullptr; + + // clear the flags + LambdaInstanceData->bHasInvestigateLocation = false; + LambdaInstanceData->bHasTarget = false; + + // reset the stimulus strength + LambdaInstanceData->LastStimulusStrength = 0.0f; + + // clear the target on the controller + LambdaInstanceData->Controller->ClearCurrentTarget(); + LambdaInstanceData->Controller->ClearFocus(EAIFocusPriority::Gameplay); + } + + } + ); + } + + return EStateTreeRunStatus::Running; +} + +void FStateTreeSenseEnemiesTask::ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const +{ + // have we transitioned to another state? + if (Transition.ChangeType == EStateTreeStateChangeType::Changed) + { + // get the instance data + FInstanceDataType& InstanceData = Context.GetInstanceData(*this); + + // unbind the perception delegates + InstanceData.Controller->OnShooterPerceptionUpdated.Unbind(); + InstanceData.Controller->OnShooterPerceptionForgotten.Unbind(); + } +} + +#if WITH_EDITOR +FText FStateTreeSenseEnemiesTask::GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting /*= EStateTreeNodeFormatting::Text*/) const +{ + return FText::FromString("Sense Enemies"); +} +#endif // WITH_EDITOR \ No newline at end of file diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp new file mode 100644 index 00000000..6fd45d8d --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp @@ -0,0 +1,94 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "UI/Widgets/MenuWidget.h" + +#include "OnlineSubsystem.h" +#include "OnlineSubsystemUtils.h" +#include "Components/Button.h" +#include "Components/TextBlock.h" +#include "Components/WidgetSwitcher.h" +#include "Kismet/GameplayStatics.h" +#include "GameFramework/PlayerController.h" +#include "Interfaces/OnlineExternalUIInterface.h" + +void UMenuWidget::NativeConstruct() +{ + Super::NativeConstruct(); + LogInButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnLogInButtonClicked); + StartGameButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnStartGameButtonClicked); + StoreButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnStoreButtonClicked); + + CheckIfLoginStatusCompleted(); +} + +void UMenuWidget::NativeDestruct() +{ + Super::NativeDestruct(); + LogInButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnLogInButtonClicked); + StartGameButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnStartGameButtonClicked); + StoreButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnStoreButtonClicked); +} + +void UMenuWidget::OnLogInButtonClicked() +{ + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineExternalUIPtr ExternalUI = Subsystem->GetExternalUIInterface(); ExternalUI.IsValid()) + { + FOnLoginUIClosedDelegate LoginDelegate; + LoginDelegate.BindWeakLambda(this, [this](FUniqueNetIdPtr UniqueId, const int ControllerIndex, const FOnlineError& Error) + { + switch (Error.GetErrorResult()) + { + case EOnlineErrorResult::Success: + { + UE_LOG(LogTemp, Log, TEXT("External Login Success for User: %s"), *UniqueId->ToString()); + CheckIfLoginStatusCompleted(); + } + break; + default: + { + const FString ErrorMessage = Error.ToLogString(); + UE_LOG(LogTemp, Error, TEXT("%s"), *ErrorMessage); + ErrorText->SetText(FText::FromString(ErrorMessage)); + } + break; + } + }); + if (const bool bStarted = ExternalUI->ShowLoginUI(0, true, false, LoginDelegate); !bStarted) + { + UE_LOG(LogTemp, Error, TEXT("Failed to start External Login UI.")); + ErrorText->SetText(FText::FromString("Error: Failed to Start External Login")); + } + } + } +} + +void UMenuWidget::OnStartGameButtonClicked() +{ + UGameplayStatics::OpenLevelBySoftObjectPtr(GetWorld(), LevelToLoad); +} + +void UMenuWidget::OnStoreButtonClicked() +{ + PanelSwitcher->SetActiveWidgetIndex(2); +} + +void UMenuWidget::CheckIfLoginStatusCompleted() const +{ + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (IdentityInterface->GetLoginStatus(0) == ELoginStatus::LoggedIn) + { + PanelSwitcher->SetActiveWidgetIndex(1); + const FString NickName = IdentityInterface->GetPlayerNickname(0); + if (NickName.IsEmpty()) + return; + PlayerNameText->SetText(FText::FromString(NickName)); + } + } + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterBulletCounterUI.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterBulletCounterUI.cpp new file mode 100644 index 00000000..e485f71f --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterBulletCounterUI.cpp @@ -0,0 +1,41 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "UI/Widgets/ShooterBulletCounterUI.h" + +#include "Components/Image.h" +#include "Components/ProgressBar.h" +#include "Kismet/KismetMaterialLibrary.h" + +void UShooterBulletCounterUI::NativePreConstruct() +{ + Super::NativePreConstruct(); + BulletCounterDynamicMaterial = UKismetMaterialLibrary::CreateDynamicMaterialInstance(GetWorld(), BulletCounterMaterial); + if (BulletCounterDynamicMaterial) + { + BulletCountImage->SetBrushFromMaterial(BulletCounterDynamicMaterial); + } +} + +void UShooterBulletCounterUI::UpdateBulletCounter(const int32 MagazineSize, const int32 BulletCount) +{ + CurrentMagSize = MagazineSize; + CurrentBulletCount = BulletCount; + ESlateVisibility Visibility = CurrentMagSize > 0 ? ESlateVisibility::Visible : ESlateVisibility::Collapsed; + BulletCountImage->SetVisibility(ESlateVisibility::Visible); + BulletCountImage->SetDesiredSizeOverride(FVector2D(CurrentMagSize * BulletThickness, BulletThickness)); + if (BulletCounterDynamicMaterial) + { + BulletCounterDynamicMaterial->SetScalarParameterValue("Bullet Max", CurrentMagSize); + BulletCounterDynamicMaterial->SetScalarParameterValue("Bullet Count", CurrentBulletCount); + } +} + +void UShooterBulletCounterUI::Damaged(const float LifePercent) +{ + LifeBar->SetPercent(LifePercent); + if (LifePercent < 1.0f && Damage) + { + PlayAnimation(Damage); + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterUI.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterUI.cpp new file mode 100644 index 00000000..d860bc15 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/ShooterUI.cpp @@ -0,0 +1,21 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + + +#include "UI/Widgets/ShooterUI.h" + +#include "Components/TextBlock.h" + +void UShooterUI::UpdateScore(const uint8 TeamByte, const int32 Score) const +{ + switch (TeamByte) + { + case 0: + Team1Score->SetText(FText::FromString(FString::FromInt(Score))); + break; + case 1: + Team2Score->SetText(FText::FromString(FString::FromInt(Score))); + break; + default: + break; + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacter.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacter.h new file mode 100644 index 00000000..84626375 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacter.h @@ -0,0 +1,166 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Actors/ShooterCharacterBase.h" +#include "Interfaces/ShooterWeaponHolder.h" +#include "ShooterCharacter.generated.h" + +class AShooterWeapon; +class UInputAction; +class UInputComponent; +class UPawnNoiseEmitterComponent; + +DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FBulletCountUpdatedDelegate, int32, MagazineSize, int32, Bullets); +DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDamagedDelegate, float, LifePercent); + +/** + * A player controllable first person shooter character + * Manages a weapon inventory through the IShooterWeaponHolder interface + * Manages health and death + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterCharacter : public AShooterCharacterBase, public IShooterWeaponHolder +{ + GENERATED_BODY() + + /** AI Noise emitter component */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + UPawnNoiseEmitterComponent* PawnNoiseEmitter; + +protected: + + /** Fire weapon input action */ + UPROPERTY(EditAnywhere, Category ="Input") + UInputAction* FireAction; + + /** Switch weapon input action */ + UPROPERTY(EditAnywhere, Category ="Input") + UInputAction* SwitchWeaponAction; + + /** Name of the first person mesh weapon socket */ + UPROPERTY(EditAnywhere, Category ="Weapons") + FName FirstPersonWeaponSocket = FName("HandGrip_R"); + + /** Name of the third person mesh weapon socket */ + UPROPERTY(EditAnywhere, Category ="Weapons") + FName ThirdPersonWeaponSocket = FName("HandGrip_R"); + + /** Max distance to use for aim traces */ + UPROPERTY(EditAnywhere, Category ="Aim", meta = (ClampMin = 0, ClampMax = 100000, Units = "cm")) + float MaxAimDistance = 10000.0f; + + /** Max HP this character can have */ + UPROPERTY(EditAnywhere, Category="Health") + float MaxHP = 500.0f; + + /** Current HP remaining to this character */ + float CurrentHP = 0.0f; + + /** Team ID for this character*/ + UPROPERTY(EditAnywhere, Category="Team") + uint8 TeamByte = 0; + + /** List of weapons picked up by the character */ + TArray OwnedWeapons; + + /** Weapon currently equipped and ready to shoot with */ + TObjectPtr CurrentWeapon; + + UPROPERTY(EditAnywhere, Category ="Destruction", meta = (ClampMin = 0, ClampMax = 10, Units = "s")) + float RespawnTime = 5.0f; + + FTimerHandle RespawnTimer; + +public: + + /** Bullet count updated delegate */ + FBulletCountUpdatedDelegate OnBulletCountUpdated; + + /** Damaged delegate */ + FDamagedDelegate OnDamaged; + +public: + + /** Constructor */ + AShooterCharacter(); + +protected: + + /** Gameplay initialization */ + virtual void BeginPlay() override; + + /** Gameplay cleanup */ + virtual void EndPlay(EEndPlayReason::Type EndPlayReason) override; + + /** Set up input action bindings */ + virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override; + +public: + + /** Handle incoming damage */ + virtual float TakeDamage(float Damage, struct FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override; + +public: + + /** Handles start firing input */ + UFUNCTION(BlueprintCallable, Category="Input") + void DoStartFiring(); + + /** Handles stop firing input */ + UFUNCTION(BlueprintCallable, Category="Input") + void DoStopFiring(); + + /** Handles switch weapon input */ + UFUNCTION(BlueprintCallable, Category="Input") + void DoSwitchWeapon(); + +public: + + //~Begin IShooterWeaponHolder interface + + /** Attaches a weapon's meshes to the owner */ + virtual void AttachWeaponMeshes(AShooterWeapon* Weapon) override; + + /** Plays the firing montage for the weapon */ + virtual void PlayFiringMontage(UAnimMontage* Montage) override; + + /** Applies weapon recoil to the owner */ + virtual void AddWeaponRecoil(float Recoil) override; + + /** Updates the weapon's HUD with the current ammo count */ + virtual void UpdateWeaponHUD(int32 CurrentAmmo, int32 MagazineSize) override; + + /** Calculates and returns the aim location for the weapon */ + virtual FVector GetWeaponTargetLocation() override; + + /** Gives a weapon of this class to the owner */ + virtual void AddWeaponClass(const TSubclassOf& WeaponClass) override; + + /** Activates the passed weapon */ + virtual void OnWeaponActivated(AShooterWeapon* Weapon) override; + + /** Deactivates the passed weapon */ + virtual void OnWeaponDeactivated(AShooterWeapon* Weapon) override; + + /** Notifies the owner that the weapon cooldown has expired and it's ready to shoot again */ + virtual void OnSemiWeaponRefire() override; + + //~End IShooterWeaponHolder interface + +protected: + + /** Returns true if the character already owns a weapon of the given class */ + AShooterWeapon* FindWeaponOfType(TSubclassOf WeaponClass) const; + + /** Called when this character's HP is depleted */ + void Die(); + + /** Called to allow Blueprint code to react to this character's death */ + UFUNCTION(BlueprintImplementableEvent, Category="Shooter", meta = (DisplayName = "On Death")) + void BP_OnDeath(); + + /** Called from the respawn timer to destroy this character and force the PC to respawn */ + void OnRespawn(); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacterBase.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacterBase.h new file mode 100644 index 00000000..2b789d71 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterCharacterBase.h @@ -0,0 +1,94 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Character.h" +#include "Logging/LogMacros.h" +#include "ShooterCharacterBase.generated.h" + +class UInputComponent; +class USkeletalMeshComponent; +class UCameraComponent; +class UInputAction; +struct FInputActionValue; + +DECLARE_LOG_CATEGORY_EXTERN(LogTemplateCharacter, Log, All); + +/** + * A basic first person character + */ +UCLASS(abstract) +class AShooterCharacterBase : public ACharacter +{ + GENERATED_BODY() + + /** Pawn mesh: first person view (arms; seen only by self) */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + USkeletalMeshComponent* FirstPersonMesh; + + /** First person camera */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + UCameraComponent* FirstPersonCameraComponent; + +protected: + + /** Jump Input Action */ + UPROPERTY(EditAnywhere, Category ="Input") + UInputAction* JumpAction; + + /** Move Input Action */ + UPROPERTY(EditAnywhere, Category ="Input") + UInputAction* MoveAction; + + /** Look Input Action */ + UPROPERTY(EditAnywhere, Category ="Input") + class UInputAction* LookAction; + + /** Mouse Look Input Action */ + UPROPERTY(EditAnywhere, Category ="Input") + class UInputAction* MouseLookAction; + +public: + AShooterCharacterBase(); + +protected: + + /** Called from Input Actions for movement input */ + void MoveInput(const FInputActionValue& Value); + + /** Called from Input Actions for looking input */ + void LookInput(const FInputActionValue& Value); + + /** Handles aim inputs from either controls or UI interfaces */ + UFUNCTION(BlueprintCallable, Category="Input") + virtual void DoAim(float Yaw, float Pitch); + + /** Handles move inputs from either controls or UI interfaces */ + UFUNCTION(BlueprintCallable, Category="Input") + virtual void DoMove(float Right, float Forward); + + /** Handles jump start inputs from either controls or UI interfaces */ + UFUNCTION(BlueprintCallable, Category="Input") + virtual void DoJumpStart(); + + /** Handles jump end inputs from either controls or UI interfaces */ + UFUNCTION(BlueprintCallable, Category="Input") + virtual void DoJumpEnd(); + +protected: + + /** Set up input action bindings */ + virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override; + + +public: + + /** Returns the first person mesh **/ + USkeletalMeshComponent* GetFirstPersonMesh() const { return FirstPersonMesh; } + + /** Returns first person camera component **/ + UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; } + +}; + diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h new file mode 100644 index 00000000..19fb8342 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h @@ -0,0 +1,153 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Actors/ShooterCharacterBase.h" +#include "Interfaces/ShooterWeaponHolder.h" +#include "ShooterNPC.generated.h" + +DECLARE_DYNAMIC_MULTICAST_DELEGATE(FPawnDeathDelegate); + +class AShooterWeapon; + +/** + * A simple AI-controlled shooter game NPC + * Executes its behavior through a StateTree managed by its AI Controller + * Holds and manages a weapon + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterNPC : public AShooterCharacterBase, public IShooterWeaponHolder +{ + GENERATED_BODY() + +public: + + /** Current HP for this character. It dies if it reaches zero through damage */ + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Damage") + float CurrentHP = 100.0f; + +protected: + + /** Name of the collision profile to use during ragdoll death */ + UPROPERTY(EditAnywhere, Category="Damage") + FName RagdollCollisionProfile = FName("Ragdoll"); + + /** Time to wait after death before destroying this actor */ + UPROPERTY(EditAnywhere, Category="Damage") + float DeferredDestructionTime = 5.0f; + + /** Team byte for this character */ + UPROPERTY(EditAnywhere, Category="Team") + uint8 TeamByte = 1; + + /** Pointer to the equipped weapon */ + TObjectPtr Weapon; + + /** Type of weapon to spawn for this character */ + UPROPERTY(EditAnywhere, Category="Weapon") + TSubclassOf WeaponClass; + + /** Name of the first person mesh weapon socket */ + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category ="Weapons") + FName FirstPersonWeaponSocket = FName("HandGrip_R"); + + /** Name of the third person mesh weapon socket */ + UPROPERTY(EditAnywhere, BlueprintReadOnly, Category ="Weapons") + FName ThirdPersonWeaponSocket = FName("HandGrip_R"); + + /** Max range for aiming calculations */ + UPROPERTY(EditAnywhere, Category="Aim") + float AimRange = 10000.0f; + + /** Cone variance to apply while aiming */ + UPROPERTY(EditAnywhere, Category="Aim") + float AimVarianceHalfAngle = 10.0f; + + /** Minimum vertical offset from the target center to apply when aiming */ + UPROPERTY(EditAnywhere, Category="Aim") + float MinAimOffsetZ = -35.0f; + + /** Maximum vertical offset from the target center to apply when aiming */ + UPROPERTY(EditAnywhere, Category="Aim") + float MaxAimOffsetZ = -60.0f; + + /** Actor currently being targeted */ + TObjectPtr CurrentAimTarget; + + /** If true, this character is currently shooting its weapon */ + bool bIsShooting = false; + + /** If true, this character has already died */ + bool bIsDead = false; + + /** Deferred destruction on death timer */ + FTimerHandle DeathTimer; + +public: + + /** Delegate called when this NPC dies */ + FPawnDeathDelegate OnPawnDeath; + +protected: + + /** Gameplay initialization */ + virtual void BeginPlay() override; + + /** Gameplay cleanup */ + virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; + +public: + + /** Handle incoming damage */ + virtual float TakeDamage(float Damage, struct FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override; + +public: + + //~Begin IShooterWeaponHolder interface + + /** Attaches a weapon's meshes to the owner */ + virtual void AttachWeaponMeshes(AShooterWeapon* Weapon) override; + + /** Plays the firing montage for the weapon */ + virtual void PlayFiringMontage(UAnimMontage* Montage) override; + + /** Applies weapon recoil to the owner */ + virtual void AddWeaponRecoil(float Recoil) override; + + /** Updates the weapon's HUD with the current ammo count */ + virtual void UpdateWeaponHUD(int32 CurrentAmmo, int32 MagazineSize) override; + + /** Calculates and returns the aim location for the weapon */ + virtual FVector GetWeaponTargetLocation() override; + + /** Gives a weapon of this class to the owner */ + virtual void AddWeaponClass(const TSubclassOf& WeaponClass) override; + + /** Activates the passed weapon */ + virtual void OnWeaponActivated(AShooterWeapon* Weapon) override; + + /** Deactivates the passed weapon */ + virtual void OnWeaponDeactivated(AShooterWeapon* Weapon) override; + + /** Notifies the owner that the weapon cooldown has expired and it's ready to shoot again */ + virtual void OnSemiWeaponRefire() override; + + //~End IShooterWeaponHolder interface + +protected: + + /** Called when HP is depleted and the character should die */ + void Die(); + + /** Called after death to destroy the actor */ + void DeferredDestruction(); + +public: + + /** Signals this character to start shooting at the passed actor */ + void StartShooting(AActor* ActorToShoot); + + /** Signals this character to stop shooting */ + void StopShooting(); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h new file mode 100644 index 00000000..a5c25dbe --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h @@ -0,0 +1,109 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "ShooterProjectile.generated.h" + +class USphereComponent; +class UProjectileMovementComponent; +class ACharacter; +class UPrimitiveComponent; + +/** + * Simple projectile class for a first person shooter game + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterProjectile : public AActor +{ + GENERATED_BODY() + + /** Provides collision detection for the projectile */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + USphereComponent* CollisionComponent; + + /** Handles movement for the projectile */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + UProjectileMovementComponent* ProjectileMovement; + +protected: + + /** Loudness of the AI perception noise done by this projectile on hit */ + UPROPERTY(EditAnywhere, Category="Projectile|Noise", meta = (ClampMin = 0, ClampMax = 100)) + float NoiseLoudness = 3.0f; + + /** Range of the AI perception noise done by this projectile on hit */ + UPROPERTY(EditAnywhere, Category="Projectile|Noise", meta = (ClampMin = 0, ClampMax = 100000, Units = "cm")) + float NoiseRange = 3000.0f; + + /** Tag of the AI perception noise done by this projectile on hit */ + UPROPERTY(EditAnywhere, Category="Noise") + FName NoiseTag = FName("Projectile"); + + /** Physics force to apply on hit */ + UPROPERTY(EditAnywhere, Category="Projectile|Hit", meta = (ClampMin = 0, ClampMax = 50000)) + float PhysicsForce = 100.0f; + + /** Damage to apply on hit */ + UPROPERTY(EditAnywhere, Category="Projectile|Hit", meta = (ClampMin = 0, ClampMax = 100)) + float HitDamage = 25.0f; + + /** Type of damage to apply. Can be used to represent specific types of damage such as fire, explosion, etc. */ + UPROPERTY(EditAnywhere, Category="Projectile|Hit") + TSubclassOf HitDamageType; + + /** If true, the projectile can damage the character that shot it */ + UPROPERTY(EditAnywhere, Category="Projectile|Hit") + bool bDamageOwner = false; + + /** If true, the projectile will explode and apply radial damage to all actors in range */ + UPROPERTY(EditAnywhere, Category="Projectile|Explosion") + bool bExplodeOnHit = false; + + /** Max distance for actors to be affected by explosion damage */ + UPROPERTY(EditAnywhere, Category="Projectile|Explosion", meta = (ClampMin = 0, ClampMax = 5000, Units = "cm")) + float ExplosionRadius = 500.0f; + + /** If true, this projectile has already hit another surface */ + bool bHit = false; + + /** How long to wait after a hit before destroying this projectile */ + UPROPERTY(EditAnywhere, Category="Projectile|Destruction", meta = (ClampMin = 0, ClampMax = 10, Units = "s")) + float DeferredDestructionTime = 5.0f; + + /** Timer to handle deferred destruction of this projectile */ + FTimerHandle DestructionTimer; + +public: + + /** Constructor */ + AShooterProjectile(); + +protected: + + /** Gameplay initialization */ + virtual void BeginPlay() override; + + /** Gameplay cleanup */ + virtual void EndPlay(EEndPlayReason::Type EndPlayReason) override; + + /** Handles collision */ + virtual void NotifyHit(class UPrimitiveComponent* MyComp, AActor* Other, UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit) override; + +protected: + + /** Looks up actors within the explosion radius and damages them */ + void ExplosionCheck(const FVector& ExplosionCenter); + + /** Processes a projectile hit for the given actor */ + void ProcessHit(AActor* HitActor, UPrimitiveComponent* HitComp, const FVector& HitLocation, const FVector& HitDirection); + + /** Passes control to Blueprint to implement any effects on hit. */ + UFUNCTION(BlueprintImplementableEvent, Category="Projectile", meta = (DisplayName = "On Projectile Hit")) + void BP_OnProjectileHit(const FHitResult& Hit); + + /** Called from the destruction timer to destroy this projectile */ + void OnDeferredDestruction(); + +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h new file mode 100644 index 00000000..cda87b66 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h @@ -0,0 +1,180 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "Interfaces/ShooterWeaponHolder.h" +#include "Animation/AnimInstance.h" +#include "ShooterWeapon.generated.h" + +class IShooterWeaponHolder; +class AShooterProjectile; +class USkeletalMeshComponent; +class UAnimMontage; +class UAnimInstance; + +/** + * Base class for a simple first person shooter weapon + * Provides both first person and third person perspective meshes + * Handles ammo and firing logic + * Interacts with the weapon owner through the ShooterWeaponHolder interface + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterWeapon : public AActor +{ + GENERATED_BODY() + + /** First person perspective mesh */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + USkeletalMeshComponent* FirstPersonMesh; + + /** Third person perspective mesh */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + USkeletalMeshComponent* ThirdPersonMesh; + +protected: + + /** Cast pointer to the weapon owner */ + IShooterWeaponHolder* WeaponOwner; + + /** Type of projectiles this weapon will shoot */ + UPROPERTY(EditAnywhere, Category="Ammo") + TSubclassOf ProjectileClass; + + /** Number of bullets in a magazine */ + UPROPERTY(EditAnywhere, Category="Ammo", meta = (ClampMin = 0, ClampMax = 100)) + int32 MagazineSize = 10; + + /** Number of bullets in the current magazine */ + int32 CurrentBullets = 0; + + /** Animation montage to play when firing this weapon */ + UPROPERTY(EditAnywhere, Category="Animation") + UAnimMontage* FiringMontage; + + /** AnimInstance class to set for the first person character mesh when this weapon is active */ + UPROPERTY(EditAnywhere, Category="Animation") + TSubclassOf FirstPersonAnimInstanceClass; + + /** AnimInstance class to set for the third person character mesh when this weapon is active */ + UPROPERTY(EditAnywhere, Category="Animation") + TSubclassOf ThirdPersonAnimInstanceClass; + + /** Cone half-angle for variance while aiming */ + UPROPERTY(EditAnywhere, Category="Aim", meta = (ClampMin = 0, ClampMax = 90, Units = "Degrees")) + float AimVariance = 0.0f; + + /** Amount of firing recoil to apply to the owner */ + UPROPERTY(EditAnywhere, Category="Aim", meta = (ClampMin = 0, ClampMax = 100)) + float FiringRecoil = 0.0f; + + /** Name of the first person muzzle socket where projectiles will spawn */ + UPROPERTY(EditAnywhere, Category="Aim") + FName MuzzleSocketName; + + /** Distance ahead of the muzzle that bullets will spawn at */ + UPROPERTY(EditAnywhere, Category="Aim", meta = (ClampMin = 0, ClampMax = 1000, Units = "cm")) + float MuzzleOffset = 10.0f; + + /** If true, this weapon will automatically fire at the refire rate */ + UPROPERTY(EditAnywhere, Category="Refire") + bool bFullAuto = false; + + /** Time between shots for this weapon. Affects both full auto and semi auto modes */ + UPROPERTY(EditAnywhere, Category="Refire", meta = (ClampMin = 0, ClampMax = 5, Units = "s")) + float RefireRate = 0.5f; + + /** Game time of last shot fired, used to enforce refire rate on semi auto */ + float TimeOfLastShot = 0.0f; + + /** If true, the weapon is currently firing */ + bool bIsFiring = false; + + /** Timer to handle full auto refiring */ + FTimerHandle RefireTimer; + + /** Cast pawn pointer to the owner for AI perception system interactions */ + TObjectPtr PawnOwner; + + /** Loudness of the shot for AI perception system interactions */ + UPROPERTY(EditAnywhere, Category="Perception", meta = (ClampMin = 0, ClampMax = 100)) + float ShotLoudness = 1.0f; + + /** Max range of shot AI perception noise */ + UPROPERTY(EditAnywhere, Category="Perception", meta = (ClampMin = 0, ClampMax = 100000, Units = "cm")) + float ShotNoiseRange = 3000.0f; + + /** Tag to apply to noise generated by shooting this weapon */ + UPROPERTY(EditAnywhere, Category="Perception") + FName ShotNoiseTag = FName("Shot"); + +public: + + /** Constructor */ + AShooterWeapon(); + +protected: + + /** Gameplay initialization */ + virtual void BeginPlay() override; + + /** Gameplay Cleanup */ + virtual void EndPlay(EEndPlayReason::Type EndPlayReason) override; + +protected: + + /** Called when the weapon's owner is destroyed */ + UFUNCTION() + void OnOwnerDestroyed(AActor* DestroyedActor); + +public: + + /** Activates this weapon and gets it ready to fire */ + void ActivateWeapon(); + + /** Deactivates this weapon */ + void DeactivateWeapon(); + + /** Start firing this weapon */ + void StartFiring(); + + /** Stop firing this weapon */ + void StopFiring(); + +protected: + + /** Fire the weapon */ + virtual void Fire(); + + /** Called when the refire rate time has passed while shooting semi auto weapons */ + void FireCooldownExpired(); + + /** Fire a projectile towards the target location */ + virtual void FireProjectile(const FVector& TargetLocation); + + /** Calculates the spawn transform for projectiles shot by this weapon */ + FTransform CalculateProjectileSpawnTransform(const FVector& TargetLocation) const; + +public: + + /** Returns the first person mesh */ + UFUNCTION(BlueprintPure, Category="Weapon") + USkeletalMeshComponent* GetFirstPersonMesh() const { return FirstPersonMesh; }; + + /** Returns the third person mesh */ + UFUNCTION(BlueprintPure, Category="Weapon") + USkeletalMeshComponent* GetThirdPersonMesh() const { return ThirdPersonMesh; }; + + /** Returns the first person anim instance class */ + const TSubclassOf& GetFirstPersonAnimInstanceClass() const; + + /** Returns the third person anim instance class */ + const TSubclassOf& GetThirdPersonAnimInstanceClass() const; + + /** Returns the magazine size */ + int32 GetMagazineSize() const { return MagazineSize; }; + + /** Returns the current bullet count */ + int32 GetBulletCount() const { return CurrentBullets; } +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterAIController.h b/unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterAIController.h new file mode 100644 index 00000000..1cff7082 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterAIController.h @@ -0,0 +1,85 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "AIController.h" +#include "ShooterAIController.generated.h" + +class UStateTreeAIComponent; +class UAIPerceptionComponent; +struct FAIStimulus; + +DECLARE_DELEGATE_TwoParams(FShooterPerceptionUpdatedDelegate, AActor*, const FAIStimulus&); +DECLARE_DELEGATE_OneParam(FShooterPerceptionForgottenDelegate, AActor*); + +/** + * Simple AI Controller for a first person shooter enemy + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterAIController : public AAIController +{ + GENERATED_BODY() + + /** Runs the behavior StateTree for this NPC */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + UStateTreeAIComponent* StateTreeAI; + + /** Detects other actors through sight, hearing and other senses */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + UAIPerceptionComponent* AIPerception; + +protected: + + /** Team tag for pawn friend or foe identification */ + UPROPERTY(EditAnywhere, Category="Shooter") + FName TeamTag = FName("Enemy"); + + /** Enemy currently being targeted */ + TObjectPtr TargetEnemy; + +public: + + /** Called when an AI perception has been updated. StateTree task delegate hook */ + FShooterPerceptionUpdatedDelegate OnShooterPerceptionUpdated; + + /** Called when an AI perception has been forgotten. StateTree task delegate hook */ + FShooterPerceptionForgottenDelegate OnShooterPerceptionForgotten; + +public: + + /** Constructor */ + AShooterAIController(); + +protected: + + /** Pawn initialization */ + virtual void OnPossess(APawn* InPawn) override; + +protected: + + /** Called when the possessed pawn dies */ + UFUNCTION() + void OnPawnDeath(); + +public: + + /** Sets the targeted enemy */ + void SetCurrentTarget(AActor* Target); + + /** Clears the targeted enemy */ + void ClearCurrentTarget(); + + /** Returns the targeted enemy */ + AActor* GetCurrentTarget() const { return TargetEnemy; }; + +protected: + + /** Called when the AI perception component updates a perception on a given actor */ + UFUNCTION() + void OnPerceptionUpdated(AActor* Actor, FAIStimulus Stimulus); + + /** Called when the AI perception component forgets a given actor */ + UFUNCTION() + void OnPerceptionForgotten(AActor* Actor); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterPlayerController.h b/unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterPlayerController.h new file mode 100644 index 00000000..5784b59a --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Controllers/ShooterPlayerController.h @@ -0,0 +1,71 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerController.h" +#include "ShooterPlayerController.generated.h" + +class UInputMappingContext; +class AShooterCharacter; +class UShooterBulletCounterUI; + +/** + * Simple PlayerController for a first person shooter game + * Manages input mappings + * Respawns the player pawn when it's destroyed + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterPlayerController : public APlayerController +{ + GENERATED_BODY() + +protected: + + /** Input mapping contexts for this player */ + UPROPERTY(EditAnywhere, Category="Input|Input Mappings") + TArray DefaultMappingContexts; + + /** Input Mapping Contexts */ + UPROPERTY(EditAnywhere, Category="Input|Input Mappings") + TArray MobileExcludedMappingContexts; + + /** Character class to respawn when the possessed pawn is destroyed */ + UPROPERTY(EditAnywhere, Category="Shooter|Respawn") + TSubclassOf CharacterClass; + + /** Type of bullet counter UI widget to spawn */ + UPROPERTY(EditAnywhere, Category="Shooter|UI") + TSubclassOf BulletCounterUIClass; + + /** Tag to grant the possessed pawn to flag it as the player */ + UPROPERTY(EditAnywhere, Category="Shooter|Player") + FName PlayerPawnTag = FName("Player"); + + /** Pointer to the bullet counter UI widget */ + TObjectPtr BulletCounterUI; + + /** Gameplay Initialization */ + virtual void BeginPlay() override; + + /** Initialize input bindings */ + virtual void SetupInputComponent() override; + + /** Pawn initialization */ + virtual void OnPossess(APawn* InPawn) override; + + /** Called if the possessed pawn is destroyed */ + UFUNCTION() + void OnPawnDestroyed(AActor* DestroyedActor); + + /** Called when the bullet count on the possessed pawn is updated */ + UFUNCTION() + void OnBulletCountUpdated(int32 MagazineSize, int32 Bullets); + + /** Called when the possessed pawn is damaged */ + UFUNCTION() + void OnPawnDamaged(float LifePercent); + +public: + virtual void CreateTouchInterface() override; +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/DataTable/ShooterPickup.h b/unreal/ShooterGame/Source/ShooterGame/Public/DataTable/ShooterPickup.h new file mode 100644 index 00000000..d92b2765 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/DataTable/ShooterPickup.h @@ -0,0 +1,96 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "Engine/DataTable.h" +#include "Engine/StaticMesh.h" +#include "ShooterPickup.generated.h" + +class USphereComponent; +class UPrimitiveComponent; +class AShooterWeapon; + +/** + * Holds information about a type of weapon pickup + */ +USTRUCT(BlueprintType) +struct FWeaponTableRow : public FTableRowBase +{ + GENERATED_BODY() + + /** Mesh to display on the pickup */ + UPROPERTY(EditAnywhere) + TSoftObjectPtr StaticMesh; + + /** Weapon class to grant on pickup */ + UPROPERTY(EditAnywhere) + TSubclassOf WeaponToSpawn; +}; + +/** + * Simple shooter game weapon pickup + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterPickup : public AActor +{ + GENERATED_BODY() + + /** Collision sphere */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + USphereComponent* SphereCollision; + + /** Weapon pickup mesh. Its mesh asset is set from the weapon data table */ + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Components", meta = (AllowPrivateAccess = "true")) + UStaticMeshComponent* Mesh; + +protected: + + /** Data on the type of picked weapon and visuals of this pickup */ + UPROPERTY(EditAnywhere, Category="Pickup") + FDataTableRowHandle WeaponType; + + /** Type to weapon to grant on pickup. Set from the weapon data table. */ + TSubclassOf WeaponClass; + + /** Time to wait before respawning this pickup */ + UPROPERTY(EditAnywhere, Category="Pickup", meta = (ClampMin = 0, ClampMax = 120, Units = "s")) + float RespawnTime = 4.0f; + + /** Timer to respawn the pickup */ + FTimerHandle RespawnTimer; + +public: + + /** Constructor */ + AShooterPickup(); + +protected: + + /** Native construction script */ + virtual void OnConstruction(const FTransform& Transform) override; + + /** Gameplay Initialization*/ + virtual void BeginPlay() override; + + /** Gameplay cleanup */ + virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; + + /** Handles collision overlap */ + UFUNCTION() + virtual void OnOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); + +protected: + + /** Called when it's time to respawn this pickup */ + void RespawnPickup(); + + /** Passes control to Blueprint to animate the pickup respawn. Should end by calling FinishRespawn */ + UFUNCTION(BlueprintImplementableEvent, Category="Pickup", meta = (DisplayName = "OnRespawn")) + void BP_OnRespawn(); + + /** Enables this pickup after respawning */ + UFUNCTION(BlueprintCallable, Category="Pickup") + void FinishRespawn(); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/EQS/EnvQueryContext_Target.h b/unreal/ShooterGame/Source/ShooterGame/Public/EQS/EnvQueryContext_Target.h new file mode 100644 index 00000000..a120245e --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/EQS/EnvQueryContext_Target.h @@ -0,0 +1,22 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "EnvironmentQuery/EnvQueryContext.h" +#include "EnvQueryContext_Target.generated.h" + +/** + * Custom EnvQuery Context that returns the actor currently targeted by an NPC + */ +UCLASS() +class SHOOTERGAME_API UEnvQueryContext_Target : public UEnvQueryContext +{ + GENERATED_BODY() + +public: + + /** Provides the context locations or actors for this EnvQuery */ + virtual void ProvideContext(FEnvQueryInstance& QueryInstance, FEnvQueryContextData& ContextData) const override; + +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameMode.h b/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameMode.h new file mode 100644 index 00000000..c9ecb991 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameMode.h @@ -0,0 +1,42 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameModeBase.h" +#include "ShooterGameMode.generated.h" + +class UShooterUI; + +/** + * Simple GameMode for a first person shooter game + * Manages game UI + * Keeps track of team scores + */ +UCLASS(abstract) +class SHOOTERGAME_API AShooterGameMode : public AGameModeBase +{ + GENERATED_BODY() + +protected: + + /** Type of UI widget to spawn */ + UPROPERTY(EditAnywhere, Category="Shooter") + TSubclassOf ShooterUIClass; + + /** Pointer to the UI widget */ + TObjectPtr ShooterUI; + + /** Map of scores by team ID */ + TMap TeamScores; + +protected: + + /** Gameplay initialization */ + virtual void BeginPlay() override; + +public: + + /** Increases the score for the given team */ + void IncrementTeamScore(uint8 TeamByte); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameState.h b/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameState.h new file mode 100644 index 00000000..e2d9b009 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterGameState.h @@ -0,0 +1,17 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/GameState.h" +#include "ShooterGameState.generated.h" + +/** + * + */ +UCLASS() +class SHOOTERGAME_API AShooterGameState : public AGameState +{ + GENERATED_BODY() + +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterPlayerState.h b/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterPlayerState.h new file mode 100644 index 00000000..0f6a0800 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Info/ShooterPlayerState.h @@ -0,0 +1,20 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/PlayerState.h" +#include "ShooterPlayerState.generated.h" + +/** + * + */ +UCLASS() +class SHOOTERGAME_API AShooterPlayerState : public APlayerState +{ + GENERATED_BODY() + +public: + UPROPERTY(EditAnywhere) + bool bIsInGame; +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Interfaces/ShooterWeaponHolder.h b/unreal/ShooterGame/Source/ShooterGame/Public/Interfaces/ShooterWeaponHolder.h new file mode 100644 index 00000000..341f0c32 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Interfaces/ShooterWeaponHolder.h @@ -0,0 +1,55 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/Interface.h" +#include "ShooterWeaponHolder.generated.h" + +class AShooterWeapon; +class UAnimMontage; + + +// This class does not need to be modified. +UINTERFACE(MinimalAPI) +class UShooterWeaponHolder : public UInterface +{ + GENERATED_BODY() +}; + +/** + * Common interface for Shooter Game weapon holder classes + */ +class SHOOTERGAME_API IShooterWeaponHolder +{ + GENERATED_BODY() + +public: + + /** Attaches a weapon's meshes to the owner */ + virtual void AttachWeaponMeshes(AShooterWeapon* Weapon) = 0; + + /** Plays the firing montage for the weapon */ + virtual void PlayFiringMontage(UAnimMontage* Montage) = 0; + + /** Applies weapon recoil to the owner */ + virtual void AddWeaponRecoil(float Recoil) = 0; + + /** Updates the weapon's HUD with the current ammo count */ + virtual void UpdateWeaponHUD(int32 CurrentAmmo, int32 MagazineSize) = 0; + + /** Calculates and returns the aim location for the weapon */ + virtual FVector GetWeaponTargetLocation() = 0; + + /** Gives a weapon of this class to the owner */ + virtual void AddWeaponClass(const TSubclassOf& WeaponClass) = 0; + + /** Activates the passed weapon */ + virtual void OnWeaponActivated(AShooterWeapon* Weapon) = 0; + + /** Deactivates the passed weapon */ + virtual void OnWeaponDeactivated(AShooterWeapon* Weapon) = 0; + + /** Notifies the owner that the weapon cooldown has expired and it's ready to shoot again */ + virtual void OnSemiWeaponRefire() = 0; +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/ShooterGame.h b/unreal/ShooterGame/Source/ShooterGame/Public/ShooterGame.h new file mode 100644 index 00000000..c27ee95f --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/ShooterGame.h @@ -0,0 +1,8 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" + +/** Main log category used across the project */ +DECLARE_LOG_CATEGORY_EXTERN(LogShooterGame, Log, All); \ No newline at end of file diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/StateTree/ShooterStateTreeUtility.h b/unreal/ShooterGame/Source/ShooterGame/Public/StateTree/ShooterStateTreeUtility.h new file mode 100644 index 00000000..a9e24c84 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/StateTree/ShooterStateTreeUtility.h @@ -0,0 +1,309 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "StateTreeTaskBase.h" +#include "StateTreeConditionBase.h" + +#include "ShooterStateTreeUtility.generated.h" + +class AShooterNPC; +class AAIController; +class AShooterAIController; + +/** + * Instance data struct for the FStateTreeLineOfSightToTargetCondition condition + */ +USTRUCT() +struct FStateTreeLineOfSightToTargetConditionInstanceData +{ + GENERATED_BODY() + + /** Targeting character */ + UPROPERTY(EditAnywhere, Category = "Context") + AShooterNPC* Character; + + /** Target to check line of sight for */ + UPROPERTY(EditAnywhere, Category = "Condition") + AActor* Target; + + /** Max allowed line of sight cone angle, in degrees */ + UPROPERTY(EditAnywhere, Category = "Condition") + float LineOfSightConeAngle = 35.0f; + + /** Number of vertical line of sight checks to run to try and get around low obstacles */ + UPROPERTY(EditAnywhere, Category = "Condition") + int32 NumberOfVerticalLineOfSightChecks = 5; + + /** If true, the condition passes if the character has line of sight */ + UPROPERTY(EditAnywhere, Category = "Condition") + bool bMustHaveLineOfSight = true; +}; +STATETREE_POD_INSTANCEDATA(FStateTreeLineOfSightToTargetConditionInstanceData); + +/** + * StateTree condition to check if the character is grounded + */ +USTRUCT(DisplayName = "Has Line of Sight to Target", Category="Shooter") +struct FStateTreeLineOfSightToTargetCondition : public FStateTreeConditionCommonBase +{ + GENERATED_BODY() + + /** Set the instance data type */ + using FInstanceDataType = FStateTreeLineOfSightToTargetConditionInstanceData; + virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } + + /** Default constructor */ + FStateTreeLineOfSightToTargetCondition() = default; + + /** Tests the StateTree condition */ + virtual bool TestCondition(FStateTreeExecutionContext& Context) const override; + +#if WITH_EDITOR + /** Provides the description string */ + virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting = EStateTreeNodeFormatting::Text) const override; +#endif + +}; + +//////////////////////////////////////////////////////////////////// + +/** + * Instance data struct for the Face Towards Actor StateTree task + */ +USTRUCT() +struct FStateTreeFaceActorInstanceData +{ + GENERATED_BODY() + + /** AI Controller that will determine the focused actor */ + UPROPERTY(EditAnywhere, Category = Context) + TObjectPtr Controller; + + /** Actor that will be faced towards */ + UPROPERTY(EditAnywhere, Category = Input) + TObjectPtr ActorToFaceTowards; +}; + +/** + * StateTree task to face an AI-Controlled Pawn towards an Actor + */ +USTRUCT(meta=(DisplayName="Face Towards Actor", Category="Shooter")) +struct FStateTreeFaceActorTask : public FStateTreeTaskCommonBase +{ + GENERATED_BODY() + + /* Ensure we're using the correct instance data struct */ + using FInstanceDataType = FStateTreeFaceActorInstanceData; + virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } + + /** Runs when the owning state is entered */ + virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + + /** Runs when the owning state is ended */ + virtual void ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + +#if WITH_EDITOR + virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting = EStateTreeNodeFormatting::Text) const override; +#endif // WITH_EDITOR +}; + +//////////////////////////////////////////////////////////////////// + +/** + * Instance data struct for the Face Towards Location StateTree task + */ +USTRUCT() +struct FStateTreeFaceLocationInstanceData +{ + GENERATED_BODY() + + /** AI Controller that will determine the focused location */ + UPROPERTY(EditAnywhere, Category = Context) + TObjectPtr Controller; + + /** Location that will be faced towards */ + UPROPERTY(EditAnywhere, Category = Parameter) + FVector FaceLocation = FVector::ZeroVector; +}; + +/** + * StateTree task to face an AI-Controlled Pawn towards a world location + */ +USTRUCT(meta=(DisplayName="Face Towards Location", Category="Shooter")) +struct FStateTreeFaceLocationTask : public FStateTreeTaskCommonBase +{ + GENERATED_BODY() + + /* Ensure we're using the correct instance data struct */ + using FInstanceDataType = FStateTreeFaceLocationInstanceData; + virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } + + /** Runs when the owning state is entered */ + virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + + /** Runs when the owning state is ended */ + virtual void ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + +#if WITH_EDITOR + virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting = EStateTreeNodeFormatting::Text) const override; +#endif // WITH_EDITOR +}; + +//////////////////////////////////////////////////////////////////// + +/** + * Instance data struct for the Set Random Float StateTree task + */ +USTRUCT() +struct FStateTreeSetRandomFloatData +{ + GENERATED_BODY() + + /** Minimum random value */ + UPROPERTY(EditAnywhere, Category = Parameter) + float MinValue = 0.0f; + + /** Maximum random value */ + UPROPERTY(EditAnywhere, Category = Parameter) + float MaxValue = 0.0f; + + /** Output calculated value */ + UPROPERTY(EditAnywhere, Category = Output) + float OutValue = 0.0f; +}; + +/** + * StateTree task to calculate a random float value within the specified range + */ +USTRUCT(meta=(DisplayName="Set Random Float", Category="Shooter")) +struct FStateTreeSetRandomFloatTask : public FStateTreeTaskCommonBase +{ + GENERATED_BODY() + + /* Ensure we're using the correct instance data struct */ + using FInstanceDataType = FStateTreeSetRandomFloatData; + virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } + + /** Runs when the owning state is entered */ + virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + +#if WITH_EDITOR + virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting = EStateTreeNodeFormatting::Text) const override; +#endif // WITH_EDITOR +}; + +//////////////////////////////////////////////////////////////////// + +/** + * Instance data struct for the Shoot At Target StateTree task + */ +USTRUCT() +struct FStateTreeShootAtTargetInstanceData +{ + GENERATED_BODY() + + /** NPC that will do the shooting */ + UPROPERTY(EditAnywhere, Category = Context) + TObjectPtr Character; + + /** Target to shoot at */ + UPROPERTY(EditAnywhere, Category = Input) + TObjectPtr Target; +}; + +/** + * StateTree task to have an NPC shoot at an actor + */ +USTRUCT(meta=(DisplayName="Shoot at Target", Category="Shooter")) +struct FStateTreeShootAtTargetTask : public FStateTreeTaskCommonBase +{ + GENERATED_BODY() + + /* Ensure we're using the correct instance data struct */ + using FInstanceDataType = FStateTreeShootAtTargetInstanceData; + virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } + + /** Runs when the owning state is entered */ + virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + + /** Runs when the owning state is ended */ + virtual void ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + +#if WITH_EDITOR + virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting = EStateTreeNodeFormatting::Text) const override; +#endif // WITH_EDITOR +}; + +//////////////////////////////////////////////////////////////////// + +/** + * Instance data struct for the Sense Enemies StateTree task + */ +USTRUCT() +struct FStateTreeSenseEnemiesInstanceData +{ + GENERATED_BODY() + + /** Sensing AI Controller */ + UPROPERTY(EditAnywhere, Category = Context) + TObjectPtr Controller; + + /** Sensing NPC */ + UPROPERTY(EditAnywhere, Category = Context) + TObjectPtr Character; + + /** Sensed actor to target */ + UPROPERTY(EditAnywhere, Category = Output) + TObjectPtr TargetActor; + + /** Sensed location to investigate */ + UPROPERTY(EditAnywhere, Category = Output) + FVector InvestigateLocation = FVector::ZeroVector; + + /** True if a target was successfully sensed */ + UPROPERTY(EditAnywhere, Category = Output) + bool bHasTarget = false; + + /** True if an investigate location was successfully sensed */ + UPROPERTY(EditAnywhere, Category = Output) + bool bHasInvestigateLocation = false; + + /** Tag required on sensed actors */ + UPROPERTY(EditAnywhere, Category = Parameter) + FName SenseTag = FName("Player"); + + /** Line of sight cone half angle to consider a full sense */ + UPROPERTY(EditAnywhere, Category = Parameter) + float DirectLineOfSightCone = 85.0f; + + /** Strength of the last processed stimulus */ + UPROPERTY(EditAnywhere) + float LastStimulusStrength = 0.0f; +}; + +/** + * StateTree task to have an NPC process AI Perceptions and sense nearby enemies + */ +USTRUCT(meta=(DisplayName="Sense Enemies", Category="Shooter")) +struct FStateTreeSenseEnemiesTask : public FStateTreeTaskCommonBase +{ + GENERATED_BODY() + + /* Ensure we're using the correct instance data struct */ + using FInstanceDataType = FStateTreeSenseEnemiesInstanceData; + virtual const UStruct* GetInstanceDataType() const override { return FInstanceDataType::StaticStruct(); } + + /** Runs when the owning state is entered */ + virtual EStateTreeRunStatus EnterState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + + /** Runs when the owning state is ended */ + virtual void ExitState(FStateTreeExecutionContext& Context, const FStateTreeTransitionResult& Transition) const override; + +#if WITH_EDITOR + virtual FText GetDescription(const FGuid& ID, FStateTreeDataView InstanceDataView, const IStateTreeBindingLookup& BindingLookup, EStateTreeNodeFormatting Formatting = EStateTreeNodeFormatting::Text) const override; +#endif // WITH_EDITOR +}; + +//////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h new file mode 100644 index 00000000..105abaf7 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h @@ -0,0 +1,55 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "MenuWidget.generated.h" + +class UTextBlock; +class UButton; +class UWidgetSwitcher; +/** + * + */ +UCLASS() +class SHOOTERGAME_API UMenuWidget : public UUserWidget +{ + GENERATED_BODY() + +protected: + UPROPERTY(meta=(BindWidget)) + UWidgetSwitcher* PanelSwitcher; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr ErrorText; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr LogInButton; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr StartGameButton; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr StoreButton; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr PlayerNameText; + + UPROPERTY(EditAnywhere) + TSoftObjectPtr LevelToLoad; + +public: + virtual void NativeConstruct() override; + virtual void NativeDestruct() override; + +private: + UFUNCTION() + void OnLogInButtonClicked(); + UFUNCTION() + void OnStartGameButtonClicked(); + UFUNCTION() + void OnStoreButtonClicked(); + void CheckIfLoginStatusCompleted() const; + +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterBulletCounterUI.h b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterBulletCounterUI.h new file mode 100644 index 00000000..3b436b79 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterBulletCounterUI.h @@ -0,0 +1,48 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "ShooterBulletCounterUI.generated.h" + +class UProgressBar; +class UImage; +/** + * Simple bullet counter UI widget for a first person shooter game + */ +UCLASS(abstract) +class SHOOTERGAME_API UShooterBulletCounterUI : public UUserWidget +{ + GENERATED_BODY() + +protected: + UPROPERTY(EditAnywhere) + TObjectPtr BulletCounterMaterial; + + UPROPERTY() + TObjectPtr BulletCounterDynamicMaterial; + + UPROPERTY(meta = (BindWidget)) + TObjectPtr BulletCountImage; + + UPROPERTY(meta = (BindWidget)) + TObjectPtr LifeBar; + + UPROPERTY(meta = (BindWidgetAnim), Transient) + TObjectPtr Damage; + +private: + int32 CurrentMagSize; + int32 CurrentBulletCount; + UPROPERTY(EditAnywhere) + float BulletThickness; + +public: + + virtual void NativePreConstruct() override; + + void UpdateBulletCounter(const int32 MagazineSize, const int32 BulletCount); + + void Damaged(const float LifePercent); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterUI.h b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterUI.h new file mode 100644 index 00000000..43f8be59 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/ShooterUI.h @@ -0,0 +1,26 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "ShooterUI.generated.h" + +class UTextBlock; +/** + * Simple scoreboard UI for a first person shooter game + */ +UCLASS(abstract) +class SHOOTERGAME_API UShooterUI : public UUserWidget +{ + GENERATED_BODY() + +protected: + UPROPERTY(meta = (BindWidget)) + TObjectPtr Team1Score; + UPROPERTY(meta = (BindWidget)) + TObjectPtr Team2Score; + +public: + void UpdateScore(const uint8 TeamByte, const int32 Score) const; +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/ShooterGame.Build.cs b/unreal/ShooterGame/Source/ShooterGame/ShooterGame.Build.cs new file mode 100644 index 00000000..dc42348f --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/ShooterGame.Build.cs @@ -0,0 +1,28 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; + +public class ShooterGame : ModuleRules +{ + public ShooterGame(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", + "InputCore", "EnhancedInput", "AIModule", "StateTreeModule", "GameplayStateTreeModule" + }); + + // Uncomment if you are using Slate UI + PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using online features + PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils"}); + + if (Target.Platform == UnrealTargetPlatform.Android) + { + DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay"); + } + + // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true + } +} diff --git a/unreal/ShooterGame/Source/ShooterGameEditor.Target.cs b/unreal/ShooterGame/Source/ShooterGameEditor.Target.cs new file mode 100644 index 00000000..cd8666b1 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGameEditor.Target.cs @@ -0,0 +1,15 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class ShooterGameEditorTarget : TargetRules +{ + public ShooterGameEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V5; + IncludeOrderVersion = EngineIncludeOrderVersion.Unreal5_6; + ExtraModuleNames.Add("ShooterGame"); + } +} From 22fed12617a049b98dde355d91a184d157e6f03e Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Wed, 24 Sep 2025 08:35:56 +0530 Subject: [PATCH 3/8] Added Auth and Achievements --- unreal/ShooterGame/Config/DefaultEngine.ini | 6 +- .../Content/Blueprints/BP_MenuGameMode.uasset | 3 + .../Blueprints/BP_MenuPlayerState.uasset | 3 + unreal/ShooterGame/Content/Levels/Game.umap | 4 +- unreal/ShooterGame/Content/Levels/Menu.umap | 4 +- unreal/ShooterGame/Content/UI/WBP_Menu.uasset | 4 +- .../Private/Actors/ShooterCharacter.cpp | 7 ++ .../ShooterGame/Private/Actors/ShooterNPC.cpp | 7 ++ .../Private/Actors/ShooterProjectile.cpp | 7 ++ .../Controllers/ShooterPlayerController.cpp | 23 ++-- .../ShooterPlatformGameInstance.cpp | 103 ++++++++++++++++++ .../Private/Info/ShooterGameMode.cpp | 9 +- .../Private/UI/Widgets/MenuWidget.cpp | 45 ++++---- .../ShooterGame/Public/Actors/ShooterNPC.h | 6 + .../Public/Actors/ShooterProjectile.h | 5 + .../ShooterGame/Public/Actors/ShooterWeapon.h | 9 +- .../ShooterPlatformGameInstance.h | 40 +++++++ .../Public/UI/Widgets/MenuWidget.h | 2 +- 18 files changed, 238 insertions(+), 49 deletions(-) create mode 100644 unreal/ShooterGame/Content/Blueprints/BP_MenuGameMode.uasset create mode 100644 unreal/ShooterGame/Content/Blueprints/BP_MenuPlayerState.uasset create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h diff --git a/unreal/ShooterGame/Config/DefaultEngine.ini b/unreal/ShooterGame/Config/DefaultEngine.ini index a6ee334d..9bc7d164 100644 --- a/unreal/ShooterGame/Config/DefaultEngine.ini +++ b/unreal/ShooterGame/Config/DefaultEngine.ini @@ -12,7 +12,7 @@ TwoPlayerSplitscreenLayout=Horizontal ThreePlayerSplitscreenLayout=FavorTop FourPlayerSplitscreenLayout=Grid bOffsetPlayerGamepadIds=False -GameInstanceClass=/Script/Engine.GameInstance +GameInstanceClass=/Script/ShooterGame.ShooterPlatformGameInstance GameDefaultMap=/Game/Levels/Menu.Menu ServerDefaultMap=/Engine/Maps/Entry.Entry GlobalDefaultGameMode=/Script/Engine.GameMode @@ -300,7 +300,7 @@ SoundCueCookQualityIndex=-1 [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] PackageName=com.rahulksharma.shootergame -StoreVersion=5 +StoreVersion=8 StoreVersionOffsetArm64=0 StoreVersionOffsetX8664=0 ApplicationDisplayName= @@ -376,6 +376,8 @@ RequestCodeForPlayGamesActivities=80002 PlayGamesClientId=351538062542-r3mcim0t755jv9vrucccatehnsi7nqvu.apps.googleusercontent.com bForceRefreshToken=False GamesAppID=351538062542 ++AchievementMap=(Name="LogIn",AchievementID="") ++AchievementMap=(Name="",AchievementID="") bSupportAdMob=False AdMobAppID= TagForChildDirectedTreatment=TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED diff --git a/unreal/ShooterGame/Content/Blueprints/BP_MenuGameMode.uasset b/unreal/ShooterGame/Content/Blueprints/BP_MenuGameMode.uasset new file mode 100644 index 00000000..9fc12f32 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/BP_MenuGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7fd3e6603a0fb7e0fc7cceeb8c9b15db12e206149df6bdf9bcb7b98db68bf2c +size 20373 diff --git a/unreal/ShooterGame/Content/Blueprints/BP_MenuPlayerState.uasset b/unreal/ShooterGame/Content/Blueprints/BP_MenuPlayerState.uasset new file mode 100644 index 00000000..b7071d97 --- /dev/null +++ b/unreal/ShooterGame/Content/Blueprints/BP_MenuPlayerState.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f92431639375bb62fbe0af6f203d5962541f21a01eae1e72c04fddc57df3873 +size 20176 diff --git a/unreal/ShooterGame/Content/Levels/Game.umap b/unreal/ShooterGame/Content/Levels/Game.umap index 2cea6841..4ef3a731 100644 --- a/unreal/ShooterGame/Content/Levels/Game.umap +++ b/unreal/ShooterGame/Content/Levels/Game.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f2734801f3898e7ad84c1fe97722829b8591cc0f84b9d843a0d7ab874524bd4d -size 22180 +oid sha256:f0898ebee2da1a41b1ad334f7829a11a1c04ffafd163292a377f155ecc109e7c +size 85155 diff --git a/unreal/ShooterGame/Content/Levels/Menu.umap b/unreal/ShooterGame/Content/Levels/Menu.umap index 8f9d9a84..adda7e83 100644 --- a/unreal/ShooterGame/Content/Levels/Menu.umap +++ b/unreal/ShooterGame/Content/Levels/Menu.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:229fa5971cb56d8eff6031db88b2cf5930239345b16204656a5d4d0960a26138 -size 38698 +oid sha256:b99c31abb10ae475d1ad53320efc25c8b263aeb4c7e3b758f2fbbb022b4069ae +size 38065 diff --git a/unreal/ShooterGame/Content/UI/WBP_Menu.uasset b/unreal/ShooterGame/Content/UI/WBP_Menu.uasset index fd4d015d..18e31bcf 100644 --- a/unreal/ShooterGame/Content/UI/WBP_Menu.uasset +++ b/unreal/ShooterGame/Content/UI/WBP_Menu.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2030b0e14f252f87ac0ccd3bae9c6c3eb7c59e443a07538223bfe667fc3d1f78 -size 36987 +oid sha256:b81e198e125dbab7757433c9f5af59fc336fb120ac1e80c572c07d4833ba289c +size 37192 diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp index f13a5755..36d76ce3 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterCharacter.cpp @@ -11,6 +11,7 @@ #include "Engine/World.h" #include "Camera/CameraComponent.h" #include "TimerManager.h" +#include "GameInstance/ShooterPlatformGameInstance.h" #include "Info/ShooterGameMode.h" AShooterCharacter::AShooterCharacter() @@ -207,6 +208,12 @@ void AShooterCharacter::AddWeaponClass(const TSubclassOf& Weapon CurrentWeapon = AddedWeapon; CurrentWeapon->ActivateWeapon(); } + + if (TWeakObjectPtr GameInstance = Cast(GetGameInstance()); + GameInstance.IsValid()) + { + GameInstance->AddAchievementProgress(100.0f, AddedWeapon->AchievementName, AddedWeapon->AchievementID); + } } } diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp index a0aca77d..e92ac380 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterNPC.cpp @@ -11,6 +11,7 @@ #include "Components/CapsuleComponent.h" #include "GameFramework/CharacterMovementComponent.h" #include "TimerManager.h" +#include "GameInstance/ShooterPlatformGameInstance.h" void AShooterNPC::BeginPlay() { @@ -179,6 +180,12 @@ void AShooterNPC::Die() // schedule actor destruction GetWorld()->GetTimerManager().SetTimer(DeathTimer, this, &AShooterNPC::DeferredDestruction, DeferredDestructionTime, false); + if (TWeakObjectPtr GameInstance = Cast(GetGameInstance()); + GameInstance.IsValid()) + { + //Kill 2 Enemies to complete the Achievement + GameInstance->AddAchievementProgress(50.0f, AchievementName, AchievementID); + } } void AShooterNPC::DeferredDestruction() diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp index 2ab41b23..f72bcb52 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Actors/ShooterProjectile.cpp @@ -12,6 +12,7 @@ #include "Engine/OverlapResult.h" #include "Engine/World.h" #include "TimerManager.h" +#include "GameInstance/ShooterPlatformGameInstance.h" AShooterProjectile::AShooterProjectile() { @@ -42,6 +43,12 @@ void AShooterProjectile::BeginPlay() // ignore the pawn that shot this projectile CollisionComponent->IgnoreActorWhenMoving(GetInstigator(), true); + if (TWeakObjectPtr GameInstance = Cast(GetGameInstance()); + GameInstance.IsValid()) + { + //Shoot 100 Bullets to complete the Achievement + GameInstance->AddAchievementProgress(1.0f, AchievementName, AchievementID); + } } void AShooterProjectile::EndPlay(EEndPlayReason::Type EndPlayReason) diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp index 3bfe7b16..0b70170f 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Controllers/ShooterPlayerController.cpp @@ -21,17 +21,22 @@ void AShooterPlayerController::BeginPlay() if (IsLocalPlayerController()) { - // create the bullet counter widget and add it to the screen - BulletCounterUI = CreateWidget(this, BulletCounterUIClass); - - if (BulletCounterUI) + if (TWeakObjectPtr CurrentPlayerState = GetPlayerState(); CurrentPlayerState.IsValid()) { - BulletCounterUI->AddToPlayerScreen(0); - - } else { - - UE_LOG(LogShooterGame, Error, TEXT("Could not spawn bullet counter widget.")); + if (CurrentPlayerState->bIsInGame) + { + // create the bullet counter widget and add it to the screen + BulletCounterUI = CreateWidget(this, BulletCounterUIClass); + if (BulletCounterUI) + { + BulletCounterUI->AddToPlayerScreen(0); + } + else + { + UE_LOG(LogShooterGame, Error, TEXT("Could not spawn bullet counter widget.")); + } + } } } diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp new file mode 100644 index 00000000..c0dbf2f3 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp @@ -0,0 +1,103 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "GameInstance/ShooterPlatformGameInstance.h" + +#include "OnlineSubsystem.h" +#include "OnlineSubsystemUtils.h" +#include "Interfaces/OnlineAchievementsInterface.h" + +void UShooterPlatformGameInstance::Init() +{ + Super::Init(); + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + IdentityInterface->AutoLogin(0); + IdentityInterface->AddOnLoginCompleteDelegate_Handle(0, FOnLoginCompleteDelegate::CreateUObject(this, &UShooterPlatformGameInstance::OnLoginCompleted)); + } + } +} + +bool UShooterPlatformGameInstance::IsLoggedInToOnlineSubsystem() +{ + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + return IdentityInterface->GetLoginStatus(0) == ELoginStatus::LoggedIn; + } + } + return false; +} + +FString UShooterPlatformGameInstance::GetPlayerName() +{ + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + return IdentityInterface->GetPlayerNickname(0); + } + } + return FString(); +} + +void UShooterPlatformGameInstance::OnLoginCompleted(int32 LocalUserNum, bool bWasSuccessful, + const FUniqueNetId& UserId, const FString& Error) +{ + if (bWasSuccessful) + { + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (const IOnlineAchievementsPtr AchievementsInterface = + Subsystem->GetAchievementsInterface()) + { + AchievementsInterface->QueryAchievements(*IdentityInterface->GetUniquePlayerId(0), + FOnQueryAchievementsCompleteDelegate::CreateUObject(this, + &UShooterPlatformGameInstance::OnQueryAchievementsCompleted)); + } + } + } + } +} + +void UShooterPlatformGameInstance::OnQueryAchievementsCompleted(const FUniqueNetId& UniqueNetId, bool bWasSuccessful) +{ + if (bWasSuccessful) + { + UE_LOG(LogTemp, Log, TEXT("Achievements Cached for User: %s"), *UniqueNetId.ToString()); + AddAchievementProgress(100.0f, LoginAchievementName, LoginAchievementID); + } +} + +void UShooterPlatformGameInstance::AddAchievementProgress(const float Progress, + const FString& AchievementName, const FString& AchievementID) +{ + if (AchievementName.IsEmpty() && AchievementID.IsEmpty()) + return; + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (const IOnlineAchievementsPtr AchievementsInterface = + Subsystem->GetAchievementsInterface(); AchievementsInterface.IsValid()) + { + FOnlineAchievement LoginAchievement; + AchievementsInterface->GetCachedAchievement(*IdentityInterface->GetUniquePlayerId(0),LoginAchievementID, LoginAchievement); + if (LoginAchievement.Progress < 100.0) + { + const float CurrentProgress = LoginAchievement.Progress + Progress; + const FOnlineAchievementsWritePtr AchievementPtr = MakeShareable(new FOnlineAchievementsWrite()); + AchievementPtr->SetFloatStat(LoginAchievementName, CurrentProgress); + FOnlineAchievementsWriteRef AchievementRef = AchievementPtr.ToSharedRef(); + AchievementsInterface->WriteAchievements(*IdentityInterface->GetUniquePlayerId(0), + AchievementRef); + } + } + } + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp index 8e2390d5..6773ffcb 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/Info/ShooterGameMode.cpp @@ -10,9 +10,12 @@ void AShooterGameMode::BeginPlay() { Super::BeginPlay(); - // create the UI - ShooterUI = CreateWidget(UGameplayStatics::GetPlayerController(GetWorld(), 0), ShooterUIClass); - ShooterUI->AddToViewport(0); + if (IsValid(ShooterUIClass)) + { + // create the UI + ShooterUI = CreateWidget(UGameplayStatics::GetPlayerController(GetWorld(), 0), ShooterUIClass); + ShooterUI->AddToViewport(0); + } } void AShooterGameMode::IncrementTeamScore(uint8 TeamByte) diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp index 6fd45d8d..44406353 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp @@ -10,6 +10,7 @@ #include "Components/WidgetSwitcher.h" #include "Kismet/GameplayStatics.h" #include "GameFramework/PlayerController.h" +#include "GameInstance/ShooterPlatformGameInstance.h" #include "Interfaces/OnlineExternalUIInterface.h" void UMenuWidget::NativeConstruct() @@ -19,7 +20,7 @@ void UMenuWidget::NativeConstruct() StartGameButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnStartGameButtonClicked); StoreButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnStoreButtonClicked); - CheckIfLoginStatusCompleted(); + SetPlayerData(); } void UMenuWidget::NativeDestruct() @@ -39,21 +40,16 @@ void UMenuWidget::OnLogInButtonClicked() FOnLoginUIClosedDelegate LoginDelegate; LoginDelegate.BindWeakLambda(this, [this](FUniqueNetIdPtr UniqueId, const int ControllerIndex, const FOnlineError& Error) { - switch (Error.GetErrorResult()) + if (Error.GetErrorResult() == EOnlineErrorResult::Success) { - case EOnlineErrorResult::Success: - { - UE_LOG(LogTemp, Log, TEXT("External Login Success for User: %s"), *UniqueId->ToString()); - CheckIfLoginStatusCompleted(); - } - break; - default: - { - const FString ErrorMessage = Error.ToLogString(); - UE_LOG(LogTemp, Error, TEXT("%s"), *ErrorMessage); - ErrorText->SetText(FText::FromString(ErrorMessage)); - } - break; + UE_LOG(LogTemp, Log, TEXT("External Login Success for User: %s"), *UniqueId->ToString()); + SetPlayerData(); + } + else + { + const FString ErrorMessage = Error.ToLogString(); + UE_LOG(LogTemp, Error, TEXT("%s"), *ErrorMessage); + ErrorText->SetText(FText::FromString(ErrorMessage)); } }); if (const bool bStarted = ExternalUI->ShowLoginUI(0, true, false, LoginDelegate); !bStarted) @@ -75,20 +71,17 @@ void UMenuWidget::OnStoreButtonClicked() PanelSwitcher->SetActiveWidgetIndex(2); } -void UMenuWidget::CheckIfLoginStatusCompleted() const +void UMenuWidget::SetPlayerData() const { - if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + if (const TWeakObjectPtr GameInstance = Cast(GetWorld()->GetGameInstance()); GameInstance.IsValid()) { - if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + if (GameInstance->IsLoggedInToOnlineSubsystem()) { - if (IdentityInterface->GetLoginStatus(0) == ELoginStatus::LoggedIn) - { - PanelSwitcher->SetActiveWidgetIndex(1); - const FString NickName = IdentityInterface->GetPlayerNickname(0); - if (NickName.IsEmpty()) - return; - PlayerNameText->SetText(FText::FromString(NickName)); - } + PanelSwitcher->SetActiveWidgetIndex(1); + const FString NickName = GameInstance->GetPlayerName(); + if (NickName.IsEmpty()) + return; + PlayerNameText->SetText(FText::FromString(NickName)); } } } diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h index 19fb8342..f97a8260 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterNPC.h @@ -137,6 +137,12 @@ class SHOOTERGAME_API AShooterNPC : public AShooterCharacterBase, public IShoote protected: + UPROPERTY(EditAnywhere) + FString AchievementName; + + UPROPERTY(EditAnywhere) + FString AchievementID; + /** Called when HP is depleted and the character should die */ void Die(); diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h index a5c25dbe..4c0abec0 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterProjectile.h @@ -81,6 +81,11 @@ class SHOOTERGAME_API AShooterProjectile : public AActor AShooterProjectile(); protected: + UPROPERTY(EditAnywhere) + FString AchievementName; + + UPROPERTY(EditAnywhere) + FString AchievementID; /** Gameplay initialization */ virtual void BeginPlay() override; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h index cda87b66..1981b756 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h +++ b/unreal/ShooterGame/Source/ShooterGame/Public/Actors/ShooterWeapon.h @@ -109,8 +109,13 @@ class SHOOTERGAME_API AShooterWeapon : public AActor UPROPERTY(EditAnywhere, Category="Perception") FName ShotNoiseTag = FName("Shot"); -public: - +public: + UPROPERTY(EditAnywhere) + FString AchievementName; + + UPROPERTY(EditAnywhere) + FString AchievementID; + /** Constructor */ AShooterWeapon(); diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h b/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h new file mode 100644 index 00000000..126eda0e --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h @@ -0,0 +1,40 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Kismet/BlueprintPlatformLibrary.h" +#include "ShooterPlatformGameInstance.generated.h" + +/** + * + */ +UCLASS() +class SHOOTERGAME_API UShooterPlatformGameInstance : public UPlatformGameInstance +{ + GENERATED_BODY() + +public: + virtual void Init() override; + + UFUNCTION(BlueprintCallable) + bool IsLoggedInToOnlineSubsystem(); + + UFUNCTION(BlueprintCallable) + FString GetPlayerName(); + +protected: + UPROPERTY(EditAnywhere) + FString LoginAchievementName; + UPROPERTY(EditAnywhere) + FString LoginAchievementID; + +private: + void OnLoginCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, + const FString& Error); + + void OnQueryAchievementsCompleted(const FUniqueNetId& UniqueNetId, bool bWasSuccessful); + +public: + void AddAchievementProgress(const float Progress, const FString& AchievementName, const FString& AchievementID); +}; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h index 105abaf7..d63d9f43 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h +++ b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h @@ -50,6 +50,6 @@ class SHOOTERGAME_API UMenuWidget : public UUserWidget void OnStartGameButtonClicked(); UFUNCTION() void OnStoreButtonClicked(); - void CheckIfLoginStatusCompleted() const; + void SetPlayerData() const; }; From e774d1df47aae10c04e282b0b12aa10691d4b136 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Wed, 24 Sep 2025 16:14:31 +0530 Subject: [PATCH 4/8] Added IAP and removed all the credentials --- unreal/ShooterGame/Config/DefaultEngine.ini | 26 +++---- unreal/ShooterGame/Content/UI/WBP_Menu.uasset | 4 +- .../Content/UI/WBP_StoreListItem.uasset | 3 + .../ShooterPlatformGameInstance.cpp | 74 ++++++++++++++++++- .../Private/UI/Widgets/MenuWidget.cpp | 19 +++++ .../UI/Widgets/StoreListItemUserWidget.cpp | 32 ++++++++ .../ShooterPlatformGameInstance.h | 11 +++ .../Public/UI/Widgets/MenuWidget.h | 9 +++ .../UI/Widgets/StoreListItemUserWidget.h | 53 +++++++++++++ 9 files changed, 215 insertions(+), 16 deletions(-) create mode 100644 unreal/ShooterGame/Content/UI/WBP_StoreListItem.uasset create mode 100644 unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/StoreListItemUserWidget.cpp create mode 100644 unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/StoreListItemUserWidget.h diff --git a/unreal/ShooterGame/Config/DefaultEngine.ini b/unreal/ShooterGame/Config/DefaultEngine.ini index 9bc7d164..69a69e49 100644 --- a/unreal/ShooterGame/Config/DefaultEngine.ini +++ b/unreal/ShooterGame/Config/DefaultEngine.ini @@ -348,13 +348,13 @@ bRecordPermissionAtStartupEnabled=False bEnableMulticastSupport=False bPackageForMetaQuest=False bRemoveOSIG=False -KeyStore=ShooterGameDebug.keystore -KeyAlias=ShooterGame -KeyStorePassword=shooter +KeyStore= +KeyAlias= +KeyStorePassword= KeyPassword= -DebugKeyStore=ShooterGameDebug.keystore -DebugKeyAlias=ShooterGame -DebugKeyStorePassword=shooter +DebugKeyStore= +DebugKeyAlias= +DebugKeyStorePassword= DebugKeyPassword= bBuildForArm64=True bBuildForX8664=False @@ -371,21 +371,19 @@ bDisableStackProtector=False bDisableLibCppSharedDependencyValidation=False bSaveSymbols=False bStripShaderReflection=True -bEnableGooglePlaySupport=True +bEnableGooglePlaySupport=False RequestCodeForPlayGamesActivities=80002 -PlayGamesClientId=351538062542-r3mcim0t755jv9vrucccatehnsi7nqvu.apps.googleusercontent.com +PlayGamesClientId= bForceRefreshToken=False -GamesAppID=351538062542 -+AchievementMap=(Name="LogIn",AchievementID="") -+AchievementMap=(Name="",AchievementID="") +GamesAppID= bSupportAdMob=False AdMobAppID= TagForChildDirectedTreatment=TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED TagForUnderAgeOfConsent=TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED MaxAdContentRating=MAX_AD_CONTENT_RATING_G AdMobAdUnitID= -GooglePlayLicenseKey=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlStRq12j+jgExjfQg9FGFgw8u+kK4E/YMNJzdFpUrbUxHmDizbhmeeZE3AGFz4rG26RNh/oUKzcIwUFoBDigrUPhKQLVpYuCKQsi4QTasamlNtNMS4sepwPmPsylmd81LjyWCAdHYs2u+BA1TJ45a96Z/bdFUP2vrMHBDr5jiuGsflLf7pIehqLJUumdEJ1Bp/TQ4bXBO+HB7tD3WERxRP6OmvcKe21VaP4ft1niUbVOwPtlpSxoiWUfMQmI3RPxaWUEfoqztsxje+xQpDQmawXANIGxSmLIc5OQz2WTYdW4y3dPl3VMRmk/HoerbxY0LjS5/p02INJqwnCG7FrxnQIDAQAB -GCMClientSenderID=351538062542 +GooglePlayLicenseKey= +GCMClientSenderID= bShowLaunchImage=True bAllowIMU=False bAllowControllers=True @@ -431,6 +429,8 @@ bEnableDomStorage=False [CoreRedirects] +PropertyRedirects=(OldName="/Script/ShooterGame.ShooterBulletCounterUI.DynamicMaterial",NewName="/Script/ShooterGame.ShooterBulletCounterUI.BulletCounterDynamicMaterial") +ClassRedirects=(OldName="/Script/ShooterGame.ShooterGameCharacter",NewName="/Script/ShooterGame.ShooterCharacterBase") ++PropertyRedirects=(OldName="/Script/ShooterGame.StoreListItemUserWidget.SelectionColor",NewName="/Script/ShooterGame.StoreListItemUserWidget.SelectionBrush") ++PropertyRedirects=(OldName="/Script/ShooterGame.StoreListItemUserWidget.DeselectionColor",NewName="/Script/ShooterGame.StoreListItemUserWidget.DeselectionBrush") [OnlineSubsystem] DefaultPlatformService=GooglePlay diff --git a/unreal/ShooterGame/Content/UI/WBP_Menu.uasset b/unreal/ShooterGame/Content/UI/WBP_Menu.uasset index 18e31bcf..8a487976 100644 --- a/unreal/ShooterGame/Content/UI/WBP_Menu.uasset +++ b/unreal/ShooterGame/Content/UI/WBP_Menu.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b81e198e125dbab7757433c9f5af59fc336fb120ac1e80c572c07d4833ba289c -size 37192 +oid sha256:87043644488a4e2ca3013155513bc47669d3795cd7c732186d47c5d260b2d6bb +size 36433 diff --git a/unreal/ShooterGame/Content/UI/WBP_StoreListItem.uasset b/unreal/ShooterGame/Content/UI/WBP_StoreListItem.uasset new file mode 100644 index 00000000..88761a7c --- /dev/null +++ b/unreal/ShooterGame/Content/UI/WBP_StoreListItem.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:080487166fbdec4ece3f55b0d35da83a1dc9b0a61b20a9e2701e67c6484fdf49 +size 32530 diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp index c0dbf2f3..dcd53fc5 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp @@ -6,6 +6,8 @@ #include "OnlineSubsystem.h" #include "OnlineSubsystemUtils.h" #include "Interfaces/OnlineAchievementsInterface.h" +#include "Interfaces/OnlinePurchaseInterface.h" +#include "Interfaces/OnlineStoreInterfaceV2.h" void UShooterPlatformGameInstance::Init() { @@ -60,6 +62,13 @@ void UShooterPlatformGameInstance::OnLoginCompleted(int32 LocalUserNum, bool bWa FOnQueryAchievementsCompleteDelegate::CreateUObject(this, &UShooterPlatformGameInstance::OnQueryAchievementsCompleted)); } + if (const IOnlineStoreV2Ptr StoreInterface = Subsystem->GetStoreV2Interface()) + { + TArray StoreListItemKeys; + StoreListItemIDs.GetKeys(StoreListItemKeys); + StoreInterface->QueryOffersById(*IdentityInterface->GetUniquePlayerId(0), StoreListItemKeys, FOnQueryOnlineStoreOffersComplete::CreateUObject(this, + &UShooterPlatformGameInstance::OnQueryOnlineStoreOfferCompleted)); + } } } } @@ -74,8 +83,26 @@ void UShooterPlatformGameInstance::OnQueryAchievementsCompleted(const FUniqueNet } } +void UShooterPlatformGameInstance::OnQueryOnlineStoreOfferCompleted(bool bWasSuccessful, + const TArray& OfferIds, const FString& Error) +{ + if (bWasSuccessful) + { + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (const IOnlineStoreV2Ptr StoreInterface = Subsystem->GetStoreV2Interface()) + { + StoreInterface->GetOffers(StoreOffers); + } + } + } + } +} + void UShooterPlatformGameInstance::AddAchievementProgress(const float Progress, - const FString& AchievementName, const FString& AchievementID) + const FString& AchievementName, const FString& AchievementID) { if (AchievementName.IsEmpty() && AchievementID.IsEmpty()) return; @@ -101,3 +128,48 @@ void UShooterPlatformGameInstance::AddAchievementProgress(const float Progress, } } } + +void UShooterPlatformGameInstance::OnCheckoutComplete(const FOnlineError& OnlineError, + const TSharedRef& PurchaseReceipt) +{ + if (!OnlineError.WasSuccessful()) + return; + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + // The Purchase Token is passed as the ReceiptId to tell the platform which purchase to finalize (consume/acknowledge). + Subsystem->GetPurchaseInterface()->FinalizePurchase(*IdentityInterface->GetUniquePlayerId(0), PurchaseReceipt->TransactionId); + } + } +} + +void UShooterPlatformGameInstance::StartPurchasing(FOnlineStoreOfferRef PurchaseItem, int32 Quantity) +{ + if (const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld())) + { + if (const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface()) + { + if (const IOnlinePurchasePtr PurchaseInterface = + Subsystem->GetPurchaseInterface(); PurchaseInterface.IsValid()) + { + if (PurchaseInterface->IsAllowedToPurchase(*IdentityInterface->GetUniquePlayerId(0))) + { + FPurchaseCheckoutRequest CheckoutRequest; + + // Use the product ID from the Google Play Console (OfferId). + // Quantity is 1 for consumables, or can be 0 or 1 for non-consumables depending on platform and use. + CheckoutRequest.AddPurchaseOffer( + "", + PurchaseItem->OfferId, + Quantity, + StoreListItemIDs[PurchaseItem->OfferId] + ); + PurchaseInterface->Checkout(*IdentityInterface->GetUniquePlayerId(0), + CheckoutRequest, + FOnPurchaseCheckoutComplete::CreateUObject(this, &UShooterPlatformGameInstance::OnCheckoutComplete)); + } + } + } + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp index 44406353..7603970c 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/MenuWidget.cpp @@ -6,12 +6,14 @@ #include "OnlineSubsystem.h" #include "OnlineSubsystemUtils.h" #include "Components/Button.h" +#include "Components/ListView.h" #include "Components/TextBlock.h" #include "Components/WidgetSwitcher.h" #include "Kismet/GameplayStatics.h" #include "GameFramework/PlayerController.h" #include "GameInstance/ShooterPlatformGameInstance.h" #include "Interfaces/OnlineExternalUIInterface.h" +#include "UI/Widgets/StoreListItemUserWidget.h" void UMenuWidget::NativeConstruct() { @@ -19,6 +21,7 @@ void UMenuWidget::NativeConstruct() LogInButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnLogInButtonClicked); StartGameButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnStartGameButtonClicked); StoreButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnStoreButtonClicked); + BackButton->OnClicked.AddUniqueDynamic(this, &UMenuWidget::OnBackButtonClicked); SetPlayerData(); } @@ -29,6 +32,7 @@ void UMenuWidget::NativeDestruct() LogInButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnLogInButtonClicked); StartGameButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnStartGameButtonClicked); StoreButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnStoreButtonClicked); + BackButton->OnClicked.RemoveDynamic(this, &UMenuWidget::OnBackButtonClicked); } void UMenuWidget::OnLogInButtonClicked() @@ -71,6 +75,11 @@ void UMenuWidget::OnStoreButtonClicked() PanelSwitcher->SetActiveWidgetIndex(2); } +void UMenuWidget::OnBackButtonClicked() +{ + PanelSwitcher->SetActiveWidgetIndex(1); +} + void UMenuWidget::SetPlayerData() const { if (const TWeakObjectPtr GameInstance = Cast(GetWorld()->GetGameInstance()); GameInstance.IsValid()) @@ -82,6 +91,16 @@ void UMenuWidget::SetPlayerData() const if (NickName.IsEmpty()) return; PlayerNameText->SetText(FText::FromString(NickName)); + TArray StoreItems; + for (const FOnlineStoreOfferRef Offer : GameInstance->StoreOffers) + { + UStoreItemData Data = UStoreItemData(); + Data.Item = Offer; + StoreItems.Add(&Data); + } + if (StoreItems.IsEmpty()) + return; + StoreList->SetListItems(StoreItems); } } } diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/StoreListItemUserWidget.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/StoreListItemUserWidget.cpp new file mode 100644 index 00000000..9d59e1d1 --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Private/UI/Widgets/StoreListItemUserWidget.cpp @@ -0,0 +1,32 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "UI/Widgets/StoreListItemUserWidget.h" + +#include "Components/Image.h" +#include "Components/TextBlock.h" +#include "GameInstance/ShooterPlatformGameInstance.h" + +void UStoreListItemUserWidget::NativeOnListItemObjectSet(UObject* ListItemObject) +{ + IUserObjectListEntry::NativeOnListItemObjectSet(ListItemObject); + if (ItemData = Cast(ListItemObject); IsValid(ItemData)) + { + ItemBackground->SetBrush(DeselectionBrush); + ItemName->SetText(ItemData->Item->Title); + ItemPrice->SetText(ItemData->Item->GetDisplayPrice()); + } +} + +void UStoreListItemUserWidget::NativeOnItemSelectionChanged(bool bIsSelected) +{ + IUserObjectListEntry::NativeOnItemSelectionChanged(bIsSelected); + if (bIsSelected && ItemData->Item->IsPurchaseable()) + { + ItemBackground->SetBrush(SelectionBrush); + if (const TWeakObjectPtr GameInstance = Cast(GetWorld()->GetGameInstance()); GameInstance.IsValid()) + { + GameInstance->StartPurchasing(ItemData->Item.ToSharedRef(), 1); + } + } +} diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h b/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h index 126eda0e..64077d70 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h +++ b/unreal/ShooterGame/Source/ShooterGame/Public/GameInstance/ShooterPlatformGameInstance.h @@ -3,9 +3,12 @@ #pragma once #include "CoreMinimal.h" +#include "Interfaces/OnlineExternalUIInterface.h" +#include "Interfaces/OnlineStoreInterfaceV2.h" #include "Kismet/BlueprintPlatformLibrary.h" #include "ShooterPlatformGameInstance.generated.h" +class FPurchaseReceipt; /** * */ @@ -23,18 +26,26 @@ class SHOOTERGAME_API UShooterPlatformGameInstance : public UPlatformGameInstanc UFUNCTION(BlueprintCallable) FString GetPlayerName(); + TArray StoreOffers; + protected: UPROPERTY(EditAnywhere) FString LoginAchievementName; UPROPERTY(EditAnywhere) FString LoginAchievementID; + UPROPERTY(EditAnywhere) + TMap StoreListItemIDs; private: void OnLoginCompleted(int32 LocalUserNum, bool bWasSuccessful, const FUniqueNetId& UserId, const FString& Error); void OnQueryAchievementsCompleted(const FUniqueNetId& UniqueNetId, bool bWasSuccessful); + + void OnQueryOnlineStoreOfferCompleted(bool bWasSuccessful, const TArray& OfferIds, const FString& Error); public: void AddAchievementProgress(const float Progress, const FString& AchievementName, const FString& AchievementID); + void OnCheckoutComplete(const FOnlineError& OnlineError, const TSharedRef& PurchaseReceipt); + void StartPurchasing(FOnlineStoreOfferRef PurchaseItem, int32 Quantity); }; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h index d63d9f43..b91347ce 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h +++ b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/MenuWidget.h @@ -6,6 +6,7 @@ #include "Blueprint/UserWidget.h" #include "MenuWidget.generated.h" +class UListView; class UTextBlock; class UButton; class UWidgetSwitcher; @@ -38,6 +39,12 @@ class SHOOTERGAME_API UMenuWidget : public UUserWidget UPROPERTY(EditAnywhere) TSoftObjectPtr LevelToLoad; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr StoreList; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr BackButton; public: virtual void NativeConstruct() override; @@ -50,6 +57,8 @@ class SHOOTERGAME_API UMenuWidget : public UUserWidget void OnStartGameButtonClicked(); UFUNCTION() void OnStoreButtonClicked(); + UFUNCTION() + void OnBackButtonClicked(); void SetPlayerData() const; }; diff --git a/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/StoreListItemUserWidget.h b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/StoreListItemUserWidget.h new file mode 100644 index 00000000..0494235f --- /dev/null +++ b/unreal/ShooterGame/Source/ShooterGame/Public/UI/Widgets/StoreListItemUserWidget.h @@ -0,0 +1,53 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/IUserObjectListEntry.h" +#include "Blueprint/UserWidget.h" +#include "Interfaces/OnlineStoreInterfaceV2.h" +#include "StoreListItemUserWidget.generated.h" + + +UCLASS() +class UStoreItemData : public UObject +{ + GENERATED_BODY() + +public: + TSharedPtr Item; + +}; +class UImage; +class UTextBlock; +/** + * + */ +UCLASS() +class SHOOTERGAME_API UStoreListItemUserWidget : public UUserWidget, public IUserObjectListEntry +{ + GENERATED_BODY() + +protected: + UPROPERTY(meta=(BindWidget)) + TObjectPtr ItemBackground; + + UPROPERTY(meta=(BindWidget)) + TObjectPtr ItemName; + UPROPERTY(meta=(BindWidget)) + TObjectPtr ItemPrice; + + UPROPERTY(EditAnywhere) + FSlateBrush SelectionBrush; + + UPROPERTY(EditAnywhere) + FSlateBrush DeselectionBrush; + + UPROPERTY() + UStoreItemData* ItemData; + +public: + virtual void NativeOnListItemObjectSet(UObject* ListItemObject) override; + + virtual void NativeOnItemSelectionChanged(bool bIsSelected) override; +}; From 79a851603cad88ceeea7258cad51d99fa1d4df25 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Wed, 24 Sep 2025 16:24:10 +0530 Subject: [PATCH 5/8] Update README.md for unreal project Added short description of the unreal project --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index 14128aaf..f9d55d99 100644 --- a/README.md +++ b/README.md @@ -64,3 +64,13 @@ when using the Unity engine for game development. The **[codelabs/](codelabs)** directory contains two codelabs on learning how to use Play Asset Delivery for games written using C++ or the Unity engine. + +## Unreal Engine samples +The **[unreal/](unreal)** directory contains sample demonstrating how to use Online Subsystem Google Play +for implementing features like + +* Google Play Games Authentication +* Google Play Games Achievements +* Google Play Billing for in-app purchases using Unity IAP + +The implementation for each feature is given in c++ as some function are only exposed to c++ and not to blueprints. From 75b70bad19ebc268b47a3516ff4daf845f971ae7 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:28:00 +0530 Subject: [PATCH 6/8] Update README.md and fixed the typo Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9d55d99..961b09f5 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,6 @@ for implementing features like * Google Play Games Authentication * Google Play Games Achievements -* Google Play Billing for in-app purchases using Unity IAP +* Google Play Billing for in-app purchases The implementation for each feature is given in c++ as some function are only exposed to c++ and not to blueprints. From d0c0b1318c18903f08acf4b20d2eaa2b3f6fb8fb Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:33:13 +0530 Subject: [PATCH 7/8] Changed project configs to default --- unreal/ShooterGame/Config/DefaultEngine.ini | 2 +- unreal/ShooterGame/Config/DefaultGame.ini | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/unreal/ShooterGame/Config/DefaultEngine.ini b/unreal/ShooterGame/Config/DefaultEngine.ini index 69a69e49..514b2086 100644 --- a/unreal/ShooterGame/Config/DefaultEngine.ini +++ b/unreal/ShooterGame/Config/DefaultEngine.ini @@ -299,7 +299,7 @@ OcclusionPlugin= SoundCueCookQualityIndex=-1 [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] -PackageName=com.rahulksharma.shootergame +PackageName=com.Company.[PROJECT] StoreVersion=8 StoreVersionOffsetArm64=0 StoreVersionOffsetX8664=0 diff --git a/unreal/ShooterGame/Config/DefaultGame.ini b/unreal/ShooterGame/Config/DefaultGame.ini index 421d2bcc..95ef9b2b 100644 --- a/unreal/ShooterGame/Config/DefaultGame.ini +++ b/unreal/ShooterGame/Config/DefaultGame.ini @@ -4,6 +4,7 @@ ProjectName=First Person Template [/Script/EngineSettings.GeneralProjectSettings] ProjectID=79029212674B35BD92FCFCBEFDB07187 +ProjectName=ShooterGame [/Script/UnrealEd.ProjectPackagingSettings] FullRebuild=True From a419158e3d8ba1c5a78512fd3ee0a8f0ef6e8868 Mon Sep 17 00:00:00 2001 From: Rahul Kumar Sharma <47045074+RKS13D@users.noreply.github.com> Date: Tue, 7 Oct 2025 16:30:17 +0530 Subject: [PATCH 8/8] Function Update: AddAchievementProgress --- .../GameInstance/ShooterPlatformGameInstance.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp b/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp index dcd53fc5..064c559c 100644 --- a/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp +++ b/unreal/ShooterGame/Source/ShooterGame/Private/GameInstance/ShooterPlatformGameInstance.cpp @@ -113,13 +113,13 @@ void UShooterPlatformGameInstance::AddAchievementProgress(const float Progress, if (const IOnlineAchievementsPtr AchievementsInterface = Subsystem->GetAchievementsInterface(); AchievementsInterface.IsValid()) { - FOnlineAchievement LoginAchievement; - AchievementsInterface->GetCachedAchievement(*IdentityInterface->GetUniquePlayerId(0),LoginAchievementID, LoginAchievement); - if (LoginAchievement.Progress < 100.0) + FOnlineAchievement CurrentAchievement; + AchievementsInterface->GetCachedAchievement(*IdentityInterface->GetUniquePlayerId(0),AchievementID, CurrentAchievement); + if (CurrentAchievement.Progress < 100.0) { - const float CurrentProgress = LoginAchievement.Progress + Progress; + const float CurrentProgress = CurrentAchievement.Progress + Progress; const FOnlineAchievementsWritePtr AchievementPtr = MakeShareable(new FOnlineAchievementsWrite()); - AchievementPtr->SetFloatStat(LoginAchievementName, CurrentProgress); + AchievementPtr->SetFloatStat(AchievementName, CurrentProgress); FOnlineAchievementsWriteRef AchievementRef = AchievementPtr.ToSharedRef(); AchievementsInterface->WriteAchievements(*IdentityInterface->GetUniquePlayerId(0), AchievementRef);