├── .gitattributes ├── .gitignore ├── .vs └── config │ └── applicationhost.config ├── Config ├── DefaultEditor.ini ├── DefaultEditorPerProjectUserSettings.ini ├── DefaultEngine.ini ├── DefaultGame.ini ├── DefaultGameplayTags.ini └── DefaultInput.ini ├── Content ├── Dynamic │ ├── BP_InfiniteTerrainGameMode.uasset │ ├── Character │ │ ├── AI │ │ │ ├── Chase.uasset │ │ │ ├── ClearBlackboardValue.uasset │ │ │ ├── EQSTester.uasset │ │ │ ├── FindNextWaypoint.uasset │ │ │ ├── GuardBehaviour.uasset │ │ │ ├── IsWithinRange.uasset │ │ │ ├── NPC_AI_BP.uasset │ │ │ ├── Patrol.uasset │ │ │ ├── PatrolData.uasset │ │ │ ├── SetFocus.uasset │ │ │ ├── Shoot.uasset │ │ │ ├── ShootSequence.uasset │ │ │ ├── Suspicion.uasset │ │ │ ├── UpdateLastLocation.uasset │ │ │ └── ai_spec.txt │ │ ├── Animations │ │ │ ├── ABP_FP.uasset │ │ │ ├── ABP_TP.uasset │ │ │ ├── AM_FPFire.uasset │ │ │ ├── AM_TPFire.uasset │ │ │ ├── AimOffsets │ │ │ │ ├── AimCentre.uasset │ │ │ │ ├── AimDown.uasset │ │ │ │ ├── AimOffset.uasset │ │ │ │ └── AimUp.uasset │ │ │ ├── BlendSpaces │ │ │ │ ├── Aiming_Walk.uasset │ │ │ │ ├── BS_CrouchWalk.uasset │ │ │ │ └── BS_Jog.uasset │ │ │ ├── FPAnimationClips │ │ │ │ ├── FirstPerson_Fire.uasset │ │ │ │ ├── FirstPerson_Idle.uasset │ │ │ │ ├── FirstPerson_JumpEnd.uasset │ │ │ │ ├── FirstPerson_JumpLoop.uasset │ │ │ │ ├── FirstPerson_JumpStart.uasset │ │ │ │ └── FirstPerson_Run.uasset │ │ │ └── TPAnimationClips │ │ │ │ ├── Aim_Space_Hip.uasset │ │ │ │ ├── Aim_Space_Ironsights.uasset │ │ │ │ ├── Crouch_Idle_Rifle_Hip.uasset │ │ │ │ ├── Crouch_Idle_Rifle_Ironsights.uasset │ │ │ │ ├── Crouch_Walk_Bwd_Rifle_Hip.uasset │ │ │ │ ├── Crouch_Walk_Bwd_Rifle_Ironsights.uasset │ │ │ │ ├── Crouch_Walk_Fwd_Rifle_Hip.uasset │ │ │ │ ├── Crouch_Walk_Fwd_Rifle_Ironsights.uasset │ │ │ │ ├── Crouch_Walk_Lt_Rifle_Hip.uasset │ │ │ │ ├── Crouch_Walk_Lt_Rifle_Ironsights.uasset │ │ │ │ ├── Crouch_Walk_Rt_Rifle_Hip.uasset │ │ │ │ ├── Crouch_Walk_Rt_Rifle_Ironsights.uasset │ │ │ │ ├── Crouch_to_Stand_Rifle_Hip.uasset │ │ │ │ ├── Crouch_to_Stand_Rifle_Ironsights.uasset │ │ │ │ ├── Death_1.uasset │ │ │ │ ├── Death_2.uasset │ │ │ │ ├── Death_3.uasset │ │ │ │ ├── Death_Ironsights_1.uasset │ │ │ │ ├── Death_Ironsights_2.uasset │ │ │ │ ├── Equip_Pistol_Standing.uasset │ │ │ │ ├── Equip_Rifle_Standing.uasset │ │ │ │ ├── Fire_Rifle_Hip.uasset │ │ │ │ ├── Fire_Rifle_Ironsights.uasset │ │ │ │ ├── Fire_Rifle_Ironsights_Additive.uasset │ │ │ │ ├── Fire_Shotgun_Hip.uasset │ │ │ │ ├── Fire_Shotgun_Ironsights.uasset │ │ │ │ ├── Hit_React_1.uasset │ │ │ │ ├── Hit_React_2.uasset │ │ │ │ ├── Hit_React_3.uasset │ │ │ │ ├── Hit_React_4.uasset │ │ │ │ ├── Idle_Pistol.uasset │ │ │ │ ├── Idle_Rifle_Hip.uasset │ │ │ │ ├── Idle_Rifle_Hip_Break1.uasset │ │ │ │ ├── Idle_Rifle_Hip_Break2.uasset │ │ │ │ ├── Idle_Rifle_Ironsights.uasset │ │ │ │ ├── Jog_Bwd_Rifle.uasset │ │ │ │ ├── Jog_Fwd_Rifle.uasset │ │ │ │ ├── Jog_Lt_Rifle.uasset │ │ │ │ ├── Jog_Rt_Rifle.uasset │ │ │ │ ├── Jump_From_Jog.uasset │ │ │ │ ├── Jump_From_Stand.uasset │ │ │ │ ├── Jump_From_Stand_Ironsights.uasset │ │ │ │ ├── Prone_Death_1.uasset │ │ │ │ ├── Prone_Death_2.uasset │ │ │ │ ├── Prone_Fire_1.uasset │ │ │ │ ├── Prone_Fire_2.uasset │ │ │ │ ├── Prone_Idle.uasset │ │ │ │ ├── Prone_Reload_Rifle.uasset │ │ │ │ ├── Prone_Reload_Shotgun.uasset │ │ │ │ ├── Prone_To_Stand.uasset │ │ │ │ ├── Reload_Pistol.uasset │ │ │ │ ├── Reload_Rifle_Hip.uasset │ │ │ │ ├── Reload_Rifle_Ironsights.uasset │ │ │ │ ├── Reload_Shotgun_Hip.uasset │ │ │ │ ├── Reload_Shotgun_Ironsights.uasset │ │ │ │ ├── Sprint_Fwd_Rifle.uasset │ │ │ │ ├── Stand_To_Prone.uasset │ │ │ │ ├── Stand_to_Crouch_Rifle_Hip.uasset │ │ │ │ ├── Stand_to_Crouch_Rifle_Ironsights.uasset │ │ │ │ ├── Walk_Bwd_Rifle_Ironsights.uasset │ │ │ │ ├── Walk_Fwd_Rifle_Ironsights.uasset │ │ │ │ ├── Walk_Lt_Rifle_Ironsights.uasset │ │ │ │ └── Walk_Rt_Rifle_Ironsights.uasset │ │ └── Behaviour │ │ │ ├── BP_Character.uasset │ │ │ ├── BP_PlayerController.uasset │ │ │ └── Character.uasset │ ├── Levels │ │ └── FirstPersonExampleMap.umap │ ├── Terrain │ │ ├── BP_Tile.uasset │ │ ├── MI_Barrier_Green.uasset │ │ ├── MI_Barrier_Red.uasset │ │ ├── Props │ │ │ ├── BP_Box.uasset │ │ │ ├── BP_Canister.uasset │ │ │ ├── BP_Container.uasset │ │ │ ├── BP_Rock1.uasset │ │ │ ├── BP_Rock2.uasset │ │ │ ├── BP_Rock3.uasset │ │ │ ├── BP_SandBags.uasset │ │ │ └── Sack1_Blueprint.uasset │ │ ├── RedBarrier2.uasset │ │ └── S_GroundPlane.uasset │ ├── UI │ │ ├── BP_HUD.uasset │ │ ├── BP_ScoreUI.uasset │ │ └── WBP_Score.uasset │ └── Weapons │ │ └── FPWeapon │ │ └── Behaviour │ │ ├── BP_FireComponent.uasset │ │ ├── BP_FirstPersonProjectile.uasset │ │ ├── BP_Gun.uasset │ │ ├── FireComponent.uasset │ │ └── Gun.uasset └── Static │ ├── Geometry │ └── Meshes │ │ ├── 1M_Cube.uasset │ │ ├── 1M_Cube_Chamfer.uasset │ │ ├── Barrier.uasset │ │ ├── Bump_StaticMesh.uasset │ │ ├── CubeMaterial.uasset │ │ ├── LeftArm_StaticMesh.uasset │ │ ├── Linear_Stair_StaticMesh.uasset │ │ ├── RampMaterial.uasset │ │ ├── Ramp_StaticMesh.uasset │ │ ├── RedBarrier.uasset │ │ ├── RightArm_StaticMesh.uasset │ │ └── TemplateFloor.uasset │ ├── NPC │ └── Character │ │ ├── Materials │ │ ├── M_UE4Man_Body.uasset │ │ ├── M_UE4Man_ChestLogo.uasset │ │ └── MaterialLayers │ │ │ ├── ML_GlossyBlack_Latex_UE4.uasset │ │ │ ├── ML_Plastic_Shiny_Beige.uasset │ │ │ ├── ML_Plastic_Shiny_Beige_LOGO.uasset │ │ │ ├── ML_SoftMetal_UE4.uasset │ │ │ ├── T_ML_Aluminum01.uasset │ │ │ ├── T_ML_Aluminum01_N.uasset │ │ │ ├── T_ML_Rubber_Blue_01_D.uasset │ │ │ └── T_ML_Rubber_Blue_01_N.uasset │ │ ├── Mesh │ │ ├── SK_Mannequin.uasset │ │ ├── SK_Mannequin_PhysicsAsset.uasset │ │ └── UE4_Mannequin_Skeleton.uasset │ │ └── Textures │ │ ├── UE4Man_Logo_N.uasset │ │ ├── UE4_LOGO_CARD.uasset │ │ ├── UE4_Mannequin_MAT_MASKA.uasset │ │ ├── UE4_Mannequin__normals.uasset │ │ └── UE4_Mannequin_occlusion_Mobile.uasset │ ├── Player │ ├── Audio │ │ └── FirstPersonTemplateWeaponFire02.uasset │ ├── Character │ │ ├── Materials │ │ │ ├── M_UE4Man_Body.uasset │ │ │ └── MaterialLayers │ │ │ │ ├── ML_GlossyBlack_Latex_UE4.uasset │ │ │ │ ├── ML_Plastic_Shiny_Beige.uasset │ │ │ │ ├── ML_Plastic_Shiny_Beige_LOGO.uasset │ │ │ │ ├── ML_SoftMetal_UE4.uasset │ │ │ │ ├── T_ML_Aluminum01.uasset │ │ │ │ ├── T_ML_Aluminum01_N.uasset │ │ │ │ ├── T_ML_Rubber_Blue_01_D.uasset │ │ │ │ └── T_ML_Rubber_Blue_01_N.uasset │ │ ├── Mesh │ │ │ ├── SK_Mannequin_Arms.uasset │ │ │ ├── SK_Mannequin_Arms_PhysicsAsset.uasset │ │ │ └── SK_Mannequin_Arms_Skeleton.uasset │ │ └── Textures │ │ │ ├── UE4_LOGO_CARD.uasset │ │ │ ├── UE4_Mannequin_MAT_MASKA.uasset │ │ │ └── UE4_Mannequin__normals.uasset │ ├── Meshes │ │ ├── BaseMaterial.uasset │ │ ├── CubeMaterialOverride.uasset │ │ ├── FirstPersonProjectileMaterial.uasset │ │ └── FirstPersonProjectileMesh.uasset │ └── Textures │ │ └── FirstPersonCrosshair.uasset │ ├── TestingGroundPack │ ├── GrassPack │ │ ├── Materials │ │ │ ├── BaseMaterial │ │ │ │ ├── Flora_twoSides.uasset │ │ │ │ └── bese_material.uasset │ │ │ ├── Ground.uasset │ │ │ ├── grass.uasset │ │ │ ├── grass2.uasset │ │ │ └── grass5.uasset │ │ ├── Meshes │ │ │ ├── grass01.uasset │ │ │ ├── grass02.uasset │ │ │ └── grass05.uasset │ │ └── Textures │ │ │ ├── BaseTextures │ │ │ ├── Mask1.uasset │ │ │ ├── base_flat_n.uasset │ │ │ └── base_gray_d.uasset │ │ │ ├── Grass2_D.uasset │ │ │ ├── Grass2_N.uasset │ │ │ ├── Grass5_D.uasset │ │ │ ├── Grass5_N.uasset │ │ │ ├── Grass_D.uasset │ │ │ ├── Grass_N.uasset │ │ │ ├── Ground_D.uasset │ │ │ └── Ground_N.uasset │ ├── IndustryPropsPack4 │ │ ├── Materials │ │ │ ├── BaseMaterial │ │ │ │ └── bese_material.uasset │ │ │ ├── Box.uasset │ │ │ ├── Canister.uasset │ │ │ ├── Container.uasset │ │ │ └── TrashCan.uasset │ │ ├── Meshes │ │ │ ├── Box2.uasset │ │ │ ├── Canister1.uasset │ │ │ ├── Container.uasset │ │ │ ├── ContainerDoorL.uasset │ │ │ ├── ContainerDoorR.uasset │ │ │ └── Sack1.uasset │ │ └── Textures │ │ │ ├── BaseTextures │ │ │ ├── base_black_d.uasset │ │ │ ├── base_flat_n.uasset │ │ │ └── base_gray_d.uasset │ │ │ ├── Box_D.uasset │ │ │ ├── Box_N.uasset │ │ │ ├── Box_SRM.uasset │ │ │ ├── Canister_D.uasset │ │ │ ├── Canister_N.uasset │ │ │ ├── Canister_SRM.uasset │ │ │ ├── Container_D.uasset │ │ │ ├── Container_N.uasset │ │ │ ├── Container_SRM.uasset │ │ │ ├── Dirt2_N.uasset │ │ │ ├── TrashCan_D.uasset │ │ │ ├── TrashCan_N.uasset │ │ │ └── TrashCan_SRM.uasset │ └── RockPackProV1 │ │ ├── Rock01 │ │ ├── Rock01_High.uasset │ │ ├── Rock01_Material.uasset │ │ └── Textures │ │ │ ├── Rock01_Albedo.uasset │ │ │ ├── Rock01_Normals.uasset │ │ │ └── Rock01_Occlusion.uasset │ │ ├── Rock05 │ │ ├── Rock05_High.uasset │ │ ├── Rock05_Material.uasset │ │ └── Textures │ │ │ ├── Rock05_Albedo.uasset │ │ │ ├── Rock05_Normals.uasset │ │ │ └── Rock05_Occlusion.uasset │ │ ├── Rock17 │ │ ├── Rock17_High.uasset │ │ ├── Rock17_Material.uasset │ │ └── Textures │ │ │ ├── Rock17_Albedo.uasset │ │ │ ├── Rock17_Normals.uasset │ │ │ └── Rock17_Occlusion.uasset │ │ └── Textures │ │ └── RockDetail │ │ └── Rocks_DetailAlbedo.uasset │ └── Weapons │ └── FPWeapon │ ├── Materials │ ├── M_FPGun.uasset │ ├── M_Laser.uasset │ └── MaterialLayers │ │ ├── ML_GlossyBlack_Latex_UE4.uasset │ │ ├── ML_Plastic_Shiny_Beige.uasset │ │ ├── ML_Plastic_Shiny_Beige_LOGO.uasset │ │ ├── ML_Screen.uasset │ │ ├── ML_SoftMetal_UE4.uasset │ │ ├── T_ML_Aluminum01.uasset │ │ ├── T_ML_Aluminum01_N.uasset │ │ ├── T_ML_FineRubber.uasset │ │ ├── T_ML_Rubber_Blue_01_D.uasset │ │ └── T_ML_Rubber_Blue_01_N.uasset │ ├── Mesh │ ├── SK_FPGun.uasset │ ├── SK_FPGun_PhysicsAsset.uasset │ └── SK_FPGun_Skeleton.uasset │ └── Textures │ ├── T_FPGun_M.uasset │ └── T_FPGun_N.uasset ├── LICENSE.md ├── README.md ├── S05_TestingGrounds.uproject └── Source ├── S05_TestingGrounds.Target.cs ├── S05_TestingGrounds ├── ActorPool.cpp ├── ActorPool.h ├── Character │ ├── Mannequin.cpp │ └── Mannequin.h ├── InfiniteTerrainGameMode.cpp ├── InfiniteTerrainGameMode.h ├── NPC │ ├── ChooseNextWaypoint.cpp │ ├── ChooseNextWaypoint.h │ ├── PatrolRoute.cpp │ └── PatrolRoute.h ├── Player │ ├── FirstPersonCharacter.cpp │ └── FirstPersonCharacter.h ├── S05_TestingGrounds.Build.cs ├── S05_TestingGrounds.cpp ├── S05_TestingGrounds.h ├── S05_TestingGroundsGameMode.cpp ├── S05_TestingGroundsGameMode.h ├── S05_TestingGroundsHUD.cpp ├── S05_TestingGroundsHUD.h ├── Terrain │ ├── GrassComponent.cpp │ ├── GrassComponent.h │ ├── Tile.cpp │ └── Tile.h └── Weapons │ ├── BallProjectile.cpp │ ├── BallProjectile.h │ ├── Gun.cpp │ └── Gun.h └── S05_TestingGroundsEditor.Target.cs /.gitattributes: -------------------------------------------------------------------------------- 1 | Content/Static/** filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Binaries 2 | DerivedDataCache 3 | Intermediate 4 | Saved 5 | *.VC.db 6 | *.opensdf 7 | *.opendb 8 | *.sdf 9 | *.sln 10 | *.suo 11 | *.xcodeproj 12 | *.xcworkspace 13 | Content/Dynamic/Levels/FirstPersonExampleMap_BuiltData.uasset 14 | .vs/S05_TestingGrounds/v15/ipch/ 15 | .vs/ 16 | -------------------------------------------------------------------------------- /Config/DefaultEditor.ini: -------------------------------------------------------------------------------- 1 | [UnrealEd.SimpleMap] 2 | SimpleMapName=/Game/FirstPerson/Maps/FirstPersonExampleMap 3 | 4 | [EditoronlyBP] 5 | bAllowClassAndBlueprintPinMatching=true 6 | bReplaceBlueprintWithClass= true 7 | bDontLoadBlueprintOutsideEditor= true 8 | bBlueprintIsNotBlueprintType= true 9 | 10 | [/Script/UnrealEd.AssetViewerSettings] 11 | -Profiles=(ProfileName="Default",DirectionalLightIntensity=2.620000,DirectionalLightColor=(R=0.990000,G=0.839850,B=0.732600,A=1.000000),SkyLightIntensity=0.880000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",PostProcessingSettings=(bOverride_WhiteTemp=True,bOverride_WhiteTint=False,bOverride_ColorSaturation=True,bOverride_ColorContrast=True,bOverride_ColorGamma=True,bOverride_ColorGain=True,bOverride_ColorOffset=True,bOverride_FilmWhitePoint=False,bOverride_FilmSaturation=False,bOverride_FilmChannelMixerRed=False,bOverride_FilmChannelMixerGreen=False,bOverride_FilmChannelMixerBlue=False,bOverride_FilmContrast=False,bOverride_FilmDynamicRange=False,bOverride_FilmHealAmount=False,bOverride_FilmToeAmount=False,bOverride_FilmShadowTint=False,bOverride_FilmShadowTintBlend=False,bOverride_FilmShadowTintAmount=False,bOverride_FilmSlope=True,bOverride_FilmToe=True,bOverride_FilmShoulder=True,bOverride_FilmBlackClip=True,bOverride_FilmWhiteClip=True,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomIntensity=True,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_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_AutoExposureMethod=True,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=True,bOverride_AutoExposureMaxBrightness=True,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=True,bOverride_HistogramLogMin=True,bOverride_HistogramLogMax=True,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=True,bOverride_GrainIntensity=False,bOverride_GrainJitter=False,bOverride_AmbientOcclusionIntensity=True,bOverride_AmbientOcclusionStaticFraction=True,bOverride_AmbientOcclusionRadius=True,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionDistance=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=True,bOverride_AmbientOcclusionBias=True,bOverride_AmbientOcclusionQuality=True,bOverride_AmbientOcclusionMipBlend=True,bOverride_AmbientOcclusionMipScale=True,bOverride_AmbientOcclusionMipThreshold=True,bOverride_LPVIntensity=False,bOverride_LPVDirectionalOcclusionIntensity=False,bOverride_LPVDirectionalOcclusionRadius=False,bOverride_LPVDiffuseOcclusionExponent=False,bOverride_LPVSpecularOcclusionExponent=False,bOverride_LPVDiffuseOcclusionIntensity=False,bOverride_LPVSpecularOcclusionIntensity=False,bOverride_LPVSize=False,bOverride_LPVSecondaryOcclusionIntensity=False,bOverride_LPVSecondaryBounceIntensity=False,bOverride_LPVGeometryVolumeBias=False,bOverride_LPVVplInjectionBias=False,bOverride_LPVEmissiveInjectionIntensity=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=True,bOverride_ColorGradingLUT=True,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=True,bOverride_DepthOfFieldMaxBokehSize=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_DepthOfFieldMethod=True,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldBokehShape=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldColorThreshold=False,bOverride_DepthOfFieldSizeThreshold=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ScreenPercentage=False,bOverride_ScreenSpaceReflectionIntensity=True,bOverride_ScreenSpaceReflectionQuality=True,bOverride_ScreenSpaceReflectionMaxRoughness=True,bOverride_ScreenSpaceReflectionRoughnessScale=False,WhiteTemp=6700.000000,WhiteTint=0.000000,ColorSaturation=(X=1.000000,Y=1.000000,Z=1.000000),ColorContrast=(X=1.000000,Y=1.000000,Z=1.000000),ColorGamma=(X=1.000000,Y=1.000000,Z=1.000000),ColorGain=(X=1.000000,Y=1.000000,Z=1.000000),ColorOffset=(X=0.005000,Y=0.005000,Z=0.005000),FilmWhitePoint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTintBlend=0.500000,FilmShadowTintAmount=0.000000,FilmSaturation=1.000000,FilmChannelMixerRed=(R=1.000000,G=0.000000,B=0.000000,A=1.000000),FilmChannelMixerGreen=(R=0.000000,G=1.000000,B=0.000000,A=1.000000),FilmChannelMixerBlue=(R=0.000000,G=0.000000,B=1.000000,A=1.000000),FilmContrast=0.030000,FilmToeAmount=1.000000,FilmHealAmount=1.000000,FilmDynamicRange=4.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,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),BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMask=None,LPVIntensity=1.000000,LPVVplInjectionBias=0.640000,LPVSize=5312.000000,LPVSecondaryOcclusionIntensity=0.000000,LPVSecondaryBounceIntensity=0.000000,LPVGeometryVolumeBias=0.384000,LPVEmissiveInjectionIntensity=1.000000,LPVDirectionalOcclusionIntensity=0.000000,LPVDirectionalOcclusionRadius=8.000000,LPVDiffuseOcclusionExponent=1.000000,LPVSpecularOcclusionExponent=7.000000,LPVDiffuseOcclusionIntensity=1.000000,LPVSpecularOcclusionIntensity=1.000000,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,AutoExposureMethod=AEM_Histogram,AutoExposureLowPercent=80.000000,AutoExposureHighPercent=98.300003,AutoExposureMinBrightness=1.000000,AutoExposureMaxBrightness=1.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,AutoExposureBias=0.330000,HistogramLogMin=-8.000000,HistogramLogMax=4.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.161468,GrainJitter=0.000000,GrainIntensity=0.000000,AmbientOcclusionIntensity=1.000000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=73.477997,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionDistance=80.000000,AmbientOcclusionPower=1.200000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=100.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,ColorGradingIntensity=0.000000,ColorGradingLUT=Texture2D'/Engine/EditorResources/RGBTable16x1_AssetViewer.RGBTable16x1_AssetViewer',DepthOfFieldMethod=DOFM_BokehDOF,bMobileHQGaussian=False,DepthOfFieldFstop=4.000000,DepthOfFieldSensorWidth=24.576000,DepthOfFieldFocalDistance=1000.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldMaxBokehSize=15.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldBokehShape=None,DepthOfFieldOcclusion=0.400000,DepthOfFieldColorThreshold=1.000000,DepthOfFieldSizeThreshold=0.080000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurPerObjectSize=0.500000,ScreenPercentage=100.000000,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=100.000000,ScreenSpaceReflectionMaxRoughness=1.000000,WeightedBlendables=(Array=),Blendables=),bPostProcessingEnabled=True,LightingRigRotation=109.389069,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-40.000000,Yaw=-67.500000,Roll=0.000000)) 12 | +Profiles=(ProfileName="Default",DirectionalLightIntensity=2.620000,DirectionalLightColor=(R=0.990000,G=0.839850,B=0.732600,A=1.000000),SkyLightIntensity=0.880000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,EnvironmentCubeMapPath="/Engine/EditorMaterials/AssetViewer/EpicQuadPanorama_CC+EV1.EpicQuadPanorama_CC+EV1",PostProcessingSettings=(bOverride_WhiteTemp=True,bOverride_WhiteTint=False,bOverride_ColorSaturation=True,bOverride_ColorContrast=True,bOverride_ColorGamma=True,bOverride_ColorGain=True,bOverride_ColorOffset=True,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_FilmWhitePoint=False,bOverride_FilmSaturation=False,bOverride_FilmChannelMixerRed=False,bOverride_FilmChannelMixerGreen=False,bOverride_FilmChannelMixerBlue=False,bOverride_FilmContrast=False,bOverride_FilmDynamicRange=False,bOverride_FilmHealAmount=False,bOverride_FilmToeAmount=False,bOverride_FilmShadowTint=False,bOverride_FilmShadowTintBlend=False,bOverride_FilmShadowTintAmount=False,bOverride_FilmSlope=True,bOverride_FilmToe=True,bOverride_FilmShoulder=True,bOverride_FilmBlackClip=True,bOverride_FilmWhiteClip=True,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomIntensity=True,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_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_AutoExposureMethod=True,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=True,bOverride_AutoExposureMaxBrightness=True,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=True,bOverride_HistogramLogMin=True,bOverride_HistogramLogMax=True,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=True,bOverride_GrainIntensity=False,bOverride_GrainJitter=False,bOverride_AmbientOcclusionIntensity=True,bOverride_AmbientOcclusionStaticFraction=True,bOverride_AmbientOcclusionRadius=True,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionDistance=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=True,bOverride_AmbientOcclusionBias=True,bOverride_AmbientOcclusionQuality=True,bOverride_AmbientOcclusionMipBlend=True,bOverride_AmbientOcclusionMipScale=True,bOverride_AmbientOcclusionMipThreshold=True,bOverride_LPVIntensity=False,bOverride_LPVDirectionalOcclusionIntensity=False,bOverride_LPVDirectionalOcclusionRadius=False,bOverride_LPVDiffuseOcclusionExponent=False,bOverride_LPVSpecularOcclusionExponent=False,bOverride_LPVDiffuseOcclusionIntensity=False,bOverride_LPVSpecularOcclusionIntensity=False,bOverride_LPVSize=False,bOverride_LPVSecondaryOcclusionIntensity=False,bOverride_LPVSecondaryBounceIntensity=False,bOverride_LPVGeometryVolumeBias=False,bOverride_LPVVplInjectionBias=False,bOverride_LPVEmissiveInjectionIntensity=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=True,bOverride_ColorGradingLUT=True,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=True,bOverride_DepthOfFieldMaxBokehSize=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_DepthOfFieldMethod=True,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldBokehShape=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldColorThreshold=False,bOverride_DepthOfFieldSizeThreshold=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ScreenPercentage=False,bOverride_ScreenSpaceReflectionIntensity=True,bOverride_ScreenSpaceReflectionQuality=True,bOverride_ScreenSpaceReflectionMaxRoughness=True,bOverride_ScreenSpaceReflectionRoughnessScale=False,WhiteTemp=6700.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.005000,Y=0.005000,Z=0.005000,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),ColorCorrectionShadowsMax=0.090000,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,FilmWhitePoint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTintBlend=0.500000,FilmShadowTintAmount=0.000000,FilmSaturation=1.000000,FilmChannelMixerRed=(R=1.000000,G=0.000000,B=0.000000,A=1.000000),FilmChannelMixerGreen=(R=0.000000,G=1.000000,B=0.000000,A=1.000000),FilmChannelMixerBlue=(R=0.000000,G=0.000000,B=1.000000,A=1.000000),FilmContrast=0.030000,FilmToeAmount=1.000000,FilmHealAmount=1.000000,FilmDynamicRange=4.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,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),BloomDirtMaskIntensity=0.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMask=None,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,AutoExposureMethod=AEM_Histogram,AutoExposureLowPercent=80.000000,AutoExposureHighPercent=98.300003,AutoExposureMinBrightness=1.000000,AutoExposureMaxBrightness=1.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,AutoExposureBias=0.330000,HistogramLogMin=-8.000000,HistogramLogMax=4.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.161468,GrainJitter=0.000000,GrainIntensity=0.000000,AmbientOcclusionIntensity=1.000000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=73.477997,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionDistance=80.000000,AmbientOcclusionPower=1.200000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=100.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,ColorGradingIntensity=0.000000,ColorGradingLUT=Texture2D'/Engine/EditorResources/RGBTable16x1_AssetViewer.RGBTable16x1_AssetViewer',DepthOfFieldMethod=DOFM_BokehDOF,bMobileHQGaussian=False,DepthOfFieldFstop=4.000000,DepthOfFieldSensorWidth=24.576000,DepthOfFieldFocalDistance=1000.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldMaxBokehSize=15.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldBokehShape=None,DepthOfFieldOcclusion=0.400000,DepthOfFieldColorThreshold=1.000000,DepthOfFieldSizeThreshold=0.080000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurPerObjectSize=0.500000,LPVIntensity=1.000000,LPVVplInjectionBias=0.640000,LPVSize=5312.000000,LPVSecondaryOcclusionIntensity=0.000000,LPVSecondaryBounceIntensity=0.000000,LPVGeometryVolumeBias=0.384000,LPVEmissiveInjectionIntensity=1.000000,LPVDirectionalOcclusionIntensity=0.000000,LPVDirectionalOcclusionRadius=8.000000,LPVDiffuseOcclusionExponent=1.000000,LPVSpecularOcclusionExponent=7.000000,LPVDiffuseOcclusionIntensity=1.000000,LPVSpecularOcclusionIntensity=1.000000,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=100.000000,ScreenSpaceReflectionMaxRoughness=1.000000,ScreenPercentage=100.000000,WeightedBlendables=(Array=),Blendables=),bPostProcessingEnabled=True,LightingRigRotation=109.389069,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-39.999985,Yaw=-67.500015,Roll=0.000000)) 13 | +Profiles=(ProfileName="Default",DirectionalLightIntensity=2.620000,DirectionalLightColor=(R=0.990000,G=0.839850,B=0.732600,A=1.000000),SkyLightIntensity=0.880000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,EnvironmentCubeMapPath="",PostProcessingSettings=(bOverride_WhiteTemp=True,bOverride_WhiteTint=False,bOverride_ColorSaturation=True,bOverride_ColorContrast=True,bOverride_ColorGamma=True,bOverride_ColorGain=True,bOverride_ColorOffset=True,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_FilmWhitePoint=False,bOverride_FilmSaturation=False,bOverride_FilmChannelMixerRed=False,bOverride_FilmChannelMixerGreen=False,bOverride_FilmChannelMixerBlue=False,bOverride_FilmContrast=False,bOverride_FilmDynamicRange=False,bOverride_FilmHealAmount=False,bOverride_FilmToeAmount=False,bOverride_FilmShadowTint=False,bOverride_FilmShadowTintBlend=False,bOverride_FilmShadowTintAmount=False,bOverride_FilmSlope=True,bOverride_FilmToe=True,bOverride_FilmShoulder=True,bOverride_FilmBlackClip=True,bOverride_FilmWhiteClip=True,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomIntensity=True,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_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_AutoExposureMethod=True,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=True,bOverride_AutoExposureMaxBrightness=True,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=True,bOverride_HistogramLogMin=True,bOverride_HistogramLogMax=True,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=True,bOverride_GrainIntensity=False,bOverride_GrainJitter=False,bOverride_AmbientOcclusionIntensity=True,bOverride_AmbientOcclusionStaticFraction=True,bOverride_AmbientOcclusionRadius=True,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionDistance=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=True,bOverride_AmbientOcclusionBias=True,bOverride_AmbientOcclusionQuality=True,bOverride_AmbientOcclusionMipBlend=True,bOverride_AmbientOcclusionMipScale=True,bOverride_AmbientOcclusionMipThreshold=True,bOverride_LPVIntensity=False,bOverride_LPVDirectionalOcclusionIntensity=False,bOverride_LPVDirectionalOcclusionRadius=False,bOverride_LPVDiffuseOcclusionExponent=False,bOverride_LPVSpecularOcclusionExponent=False,bOverride_LPVDiffuseOcclusionIntensity=False,bOverride_LPVSpecularOcclusionIntensity=False,bOverride_LPVSize=False,bOverride_LPVSecondaryOcclusionIntensity=False,bOverride_LPVSecondaryBounceIntensity=False,bOverride_LPVGeometryVolumeBias=False,bOverride_LPVVplInjectionBias=False,bOverride_LPVEmissiveInjectionIntensity=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=True,bOverride_ColorGradingLUT=True,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=True,bOverride_DepthOfFieldMaxBokehSize=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_DepthOfFieldMethod=True,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldBokehShape=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldColorThreshold=False,bOverride_DepthOfFieldSizeThreshold=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ScreenPercentage=False,bOverride_ScreenSpaceReflectionIntensity=True,bOverride_ScreenSpaceReflectionQuality=True,bOverride_ScreenSpaceReflectionMaxRoughness=True,bOverride_ScreenSpaceReflectionRoughnessScale=False,WhiteTemp=6700.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.005000,Y=0.005000,Z=0.005000,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),ColorCorrectionShadowsMax=0.090000,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,FilmWhitePoint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTintBlend=0.500000,FilmShadowTintAmount=0.000000,FilmSaturation=1.000000,FilmChannelMixerRed=(R=1.000000,G=0.000000,B=0.000000,A=1.000000),FilmChannelMixerGreen=(R=0.000000,G=1.000000,B=0.000000,A=1.000000),FilmChannelMixerBlue=(R=0.000000,G=0.000000,B=1.000000,A=1.000000),FilmContrast=0.030000,FilmToeAmount=1.000000,FilmHealAmount=0.180000,FilmDynamicRange=4.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,BloomIntensity=1.000000,BloomThreshold=1.000000,BloomSizeScale=4.000000,Bloom1Size=1.000000,Bloom2Size=4.000000,Bloom3Size=16.000000,Bloom4Size=32.000000,Bloom5Size=64.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom2Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom3Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom4Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom5Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom6Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMaskIntensity=1.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMask=None,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,AutoExposureMethod=AEM_Histogram,AutoExposureLowPercent=80.000000,AutoExposureHighPercent=98.300003,AutoExposureMinBrightness=1.000000,AutoExposureMaxBrightness=1.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,AutoExposureBias=0.330000,HistogramLogMin=-8.000000,HistogramLogMax=4.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.161468,GrainJitter=0.000000,GrainIntensity=0.000000,AmbientOcclusionIntensity=1.000000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=73.477997,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionDistance=80.000000,AmbientOcclusionPower=1.200000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=100.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,ColorGradingIntensity=0.000000,ColorGradingLUT=Texture2D'/Engine/EditorResources/RGBTable16x1_AssetViewer.RGBTable16x1_AssetViewer',DepthOfFieldMethod=DOFM_BokehDOF,bMobileHQGaussian=False,DepthOfFieldFstop=4.000000,DepthOfFieldSensorWidth=24.576000,DepthOfFieldFocalDistance=1000.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldMaxBokehSize=15.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldBokehShape=None,DepthOfFieldOcclusion=0.400000,DepthOfFieldColorThreshold=1.000000,DepthOfFieldSizeThreshold=0.080000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurPerObjectSize=0.500000,LPVIntensity=1.000000,LPVVplInjectionBias=0.640000,LPVSize=5312.000000,LPVSecondaryOcclusionIntensity=0.000000,LPVSecondaryBounceIntensity=0.000000,LPVGeometryVolumeBias=0.384000,LPVEmissiveInjectionIntensity=1.000000,LPVDirectionalOcclusionIntensity=0.000000,LPVDirectionalOcclusionRadius=8.000000,LPVDiffuseOcclusionExponent=1.000000,LPVSpecularOcclusionExponent=7.000000,LPVDiffuseOcclusionIntensity=1.000000,LPVSpecularOcclusionIntensity=1.000000,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=100.000000,ScreenSpaceReflectionMaxRoughness=1.000000,ScreenPercentage=100.000000,WeightedBlendables=(Array=),Blendables=),bPostProcessingEnabled=True,LightingRigRotation=109.389069,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-39.999985,Yaw=-67.500015,Roll=0.000000)) 14 | +Profiles=(ProfileName="Default",DirectionalLightIntensity=2.620000,DirectionalLightColor=(R=0.990000,G=0.839850,B=0.732600,A=1.000000),SkyLightIntensity=0.880000,bRotateLightingRig=False,bShowEnvironment=True,bShowFloor=True,EnvironmentCubeMapPath="",PostProcessingSettings=(bOverride_WhiteTemp=True,bOverride_WhiteTint=False,bOverride_ColorSaturation=True,bOverride_ColorContrast=True,bOverride_ColorGamma=True,bOverride_ColorGain=True,bOverride_ColorOffset=True,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_FilmWhitePoint=False,bOverride_FilmSaturation=False,bOverride_FilmChannelMixerRed=False,bOverride_FilmChannelMixerGreen=False,bOverride_FilmChannelMixerBlue=False,bOverride_FilmContrast=False,bOverride_FilmDynamicRange=False,bOverride_FilmHealAmount=False,bOverride_FilmToeAmount=False,bOverride_FilmShadowTint=False,bOverride_FilmShadowTintBlend=False,bOverride_FilmShadowTintAmount=False,bOverride_FilmSlope=True,bOverride_FilmToe=True,bOverride_FilmShoulder=True,bOverride_FilmBlackClip=True,bOverride_FilmWhiteClip=True,bOverride_SceneColorTint=False,bOverride_SceneFringeIntensity=False,bOverride_AmbientCubemapTint=False,bOverride_AmbientCubemapIntensity=False,bOverride_BloomIntensity=True,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_BloomDirtMaskIntensity=False,bOverride_BloomDirtMaskTint=False,bOverride_BloomDirtMask=False,bOverride_AutoExposureMethod=True,bOverride_AutoExposureLowPercent=False,bOverride_AutoExposureHighPercent=False,bOverride_AutoExposureMinBrightness=True,bOverride_AutoExposureMaxBrightness=True,bOverride_AutoExposureSpeedUp=False,bOverride_AutoExposureSpeedDown=False,bOverride_AutoExposureBias=True,bOverride_HistogramLogMin=True,bOverride_HistogramLogMax=True,bOverride_LensFlareIntensity=False,bOverride_LensFlareTint=False,bOverride_LensFlareTints=False,bOverride_LensFlareBokehSize=False,bOverride_LensFlareBokehShape=False,bOverride_LensFlareThreshold=False,bOverride_VignetteIntensity=True,bOverride_GrainIntensity=False,bOverride_GrainJitter=False,bOverride_AmbientOcclusionIntensity=True,bOverride_AmbientOcclusionStaticFraction=True,bOverride_AmbientOcclusionRadius=True,bOverride_AmbientOcclusionFadeDistance=False,bOverride_AmbientOcclusionFadeRadius=False,bOverride_AmbientOcclusionDistance=False,bOverride_AmbientOcclusionRadiusInWS=False,bOverride_AmbientOcclusionPower=True,bOverride_AmbientOcclusionBias=True,bOverride_AmbientOcclusionQuality=True,bOverride_AmbientOcclusionMipBlend=True,bOverride_AmbientOcclusionMipScale=True,bOverride_AmbientOcclusionMipThreshold=True,bOverride_LPVIntensity=False,bOverride_LPVDirectionalOcclusionIntensity=False,bOverride_LPVDirectionalOcclusionRadius=False,bOverride_LPVDiffuseOcclusionExponent=False,bOverride_LPVSpecularOcclusionExponent=False,bOverride_LPVDiffuseOcclusionIntensity=False,bOverride_LPVSpecularOcclusionIntensity=False,bOverride_LPVSize=False,bOverride_LPVSecondaryOcclusionIntensity=False,bOverride_LPVSecondaryBounceIntensity=False,bOverride_LPVGeometryVolumeBias=False,bOverride_LPVVplInjectionBias=False,bOverride_LPVEmissiveInjectionIntensity=False,bOverride_IndirectLightingColor=False,bOverride_IndirectLightingIntensity=False,bOverride_ColorGradingIntensity=True,bOverride_ColorGradingLUT=True,bOverride_DepthOfFieldFocalDistance=False,bOverride_DepthOfFieldFstop=False,bOverride_DepthOfFieldSensorWidth=False,bOverride_DepthOfFieldDepthBlurRadius=False,bOverride_DepthOfFieldDepthBlurAmount=False,bOverride_DepthOfFieldFocalRegion=False,bOverride_DepthOfFieldNearTransitionRegion=False,bOverride_DepthOfFieldFarTransitionRegion=False,bOverride_DepthOfFieldScale=True,bOverride_DepthOfFieldMaxBokehSize=False,bOverride_DepthOfFieldNearBlurSize=False,bOverride_DepthOfFieldFarBlurSize=False,bOverride_DepthOfFieldMethod=True,bOverride_MobileHQGaussian=False,bOverride_DepthOfFieldBokehShape=False,bOverride_DepthOfFieldOcclusion=False,bOverride_DepthOfFieldColorThreshold=False,bOverride_DepthOfFieldSizeThreshold=False,bOverride_DepthOfFieldSkyFocusDistance=False,bOverride_DepthOfFieldVignetteSize=False,bOverride_MotionBlurAmount=False,bOverride_MotionBlurMax=False,bOverride_MotionBlurPerObjectSize=False,bOverride_ScreenPercentage=False,bOverride_ScreenSpaceReflectionIntensity=True,bOverride_ScreenSpaceReflectionQuality=True,bOverride_ScreenSpaceReflectionMaxRoughness=True,bOverride_ScreenSpaceReflectionRoughnessScale=False,WhiteTemp=6700.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.005000,Y=0.005000,Z=0.005000,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),ColorCorrectionShadowsMax=0.090000,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,FilmWhitePoint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),FilmShadowTintBlend=0.500000,FilmShadowTintAmount=0.000000,FilmSaturation=1.000000,FilmChannelMixerRed=(R=1.000000,G=0.000000,B=0.000000,A=1.000000),FilmChannelMixerGreen=(R=0.000000,G=1.000000,B=0.000000,A=1.000000),FilmChannelMixerBlue=(R=0.000000,G=0.000000,B=1.000000,A=1.000000),FilmContrast=0.030000,FilmToeAmount=1.000000,FilmHealAmount=0.180000,FilmDynamicRange=4.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,BloomIntensity=1.000000,BloomThreshold=1.000000,BloomSizeScale=4.000000,Bloom1Size=1.000000,Bloom2Size=4.000000,Bloom3Size=16.000000,Bloom4Size=32.000000,Bloom5Size=64.000000,Bloom6Size=64.000000,Bloom1Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom2Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom3Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom4Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom5Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),Bloom6Tint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMaskIntensity=1.000000,BloomDirtMaskTint=(R=0.500000,G=0.500000,B=0.500000,A=1.000000),BloomDirtMask=None,AmbientCubemapTint=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),AmbientCubemapIntensity=1.000000,AmbientCubemap=None,AutoExposureMethod=AEM_Histogram,AutoExposureLowPercent=80.000000,AutoExposureHighPercent=98.300003,AutoExposureMinBrightness=1.000000,AutoExposureMaxBrightness=1.000000,AutoExposureSpeedUp=3.000000,AutoExposureSpeedDown=1.000000,AutoExposureBias=0.330000,HistogramLogMin=-8.000000,HistogramLogMax=4.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.161468,GrainJitter=0.000000,GrainIntensity=0.000000,AmbientOcclusionIntensity=1.000000,AmbientOcclusionStaticFraction=1.000000,AmbientOcclusionRadius=73.477997,AmbientOcclusionRadiusInWS=False,AmbientOcclusionFadeDistance=8000.000000,AmbientOcclusionFadeRadius=5000.000000,AmbientOcclusionDistance=80.000000,AmbientOcclusionPower=1.200000,AmbientOcclusionBias=3.000000,AmbientOcclusionQuality=100.000000,AmbientOcclusionMipBlend=0.600000,AmbientOcclusionMipScale=1.700000,AmbientOcclusionMipThreshold=0.010000,IndirectLightingColor=(R=1.000000,G=1.000000,B=1.000000,A=1.000000),IndirectLightingIntensity=1.000000,ColorGradingIntensity=0.000000,ColorGradingLUT=Texture2D'/Engine/EditorResources/RGBTable16x1_AssetViewer.RGBTable16x1_AssetViewer',DepthOfFieldMethod=DOFM_BokehDOF,bMobileHQGaussian=False,DepthOfFieldFstop=4.000000,DepthOfFieldSensorWidth=24.576000,DepthOfFieldFocalDistance=1000.000000,DepthOfFieldDepthBlurAmount=1.000000,DepthOfFieldDepthBlurRadius=0.000000,DepthOfFieldFocalRegion=0.000000,DepthOfFieldNearTransitionRegion=300.000000,DepthOfFieldFarTransitionRegion=500.000000,DepthOfFieldScale=0.000000,DepthOfFieldMaxBokehSize=15.000000,DepthOfFieldNearBlurSize=15.000000,DepthOfFieldFarBlurSize=15.000000,DepthOfFieldBokehShape=None,DepthOfFieldOcclusion=0.400000,DepthOfFieldColorThreshold=1.000000,DepthOfFieldSizeThreshold=0.080000,DepthOfFieldSkyFocusDistance=0.000000,DepthOfFieldVignetteSize=200.000000,MotionBlurAmount=0.500000,MotionBlurMax=5.000000,MotionBlurPerObjectSize=0.500000,LPVIntensity=1.000000,LPVVplInjectionBias=0.640000,LPVSize=5312.000000,LPVSecondaryOcclusionIntensity=0.000000,LPVSecondaryBounceIntensity=0.000000,LPVGeometryVolumeBias=0.384000,LPVEmissiveInjectionIntensity=1.000000,LPVDirectionalOcclusionIntensity=0.000000,LPVDirectionalOcclusionRadius=8.000000,LPVDiffuseOcclusionExponent=1.000000,LPVSpecularOcclusionExponent=7.000000,LPVDiffuseOcclusionIntensity=1.000000,LPVSpecularOcclusionIntensity=1.000000,ScreenSpaceReflectionIntensity=100.000000,ScreenSpaceReflectionQuality=100.000000,ScreenSpaceReflectionMaxRoughness=1.000000,ScreenPercentage=100.000000,WeightedBlendables=(Array=),Blendables=),bPostProcessingEnabled=True,LightingRigRotation=109.389069,RotationSpeed=2.000000,DirectionalLightRotation=(Pitch=-39.999985,Yaw=-67.500015,Roll=0.000000)) 15 | 16 | 17 | -------------------------------------------------------------------------------- /Config/DefaultEditorPerProjectUserSettings.ini: -------------------------------------------------------------------------------- 1 | [ContentBrowser] 2 | ContentBrowserTab1.SelectedPaths=/Game/FirstPerson 3 | 4 | [/Script/EditorStyle.EditorStyleSettings] 5 | SelectionColor=(R=0.728000,G=0.364000,B=0.003000,A=1.000000) 6 | PressedSelectionColor=(R=0.701000,G=0.225000,B=0.003000,A=1.000000) 7 | InactiveSelectionColor=(R=0.250000,G=0.250000,B=0.250000,A=1.000000) 8 | KeyboardFocusColor=(R=0.000000,G=0.000000,B=0.000000,A=0.000000) 9 | ColorVisionDeficiencyPreviewType=CVD_NormalVision 10 | bUseSmallToolBarIcons=False 11 | bUseGrid=True 12 | RegularColor=(R=0.035000,G=0.035000,B=0.035000,A=1.000000) 13 | RuleColor=(R=0.008000,G=0.008000,B=0.008000,A=1.000000) 14 | CenterColor=(R=0.000000,G=0.000000,B=0.000000,A=1.000000) 15 | bEnableWindowAnimations=False 16 | bShowFriendlyNames=True 17 | bExpandConfigurationMenus=False 18 | bShowProjectMenus=True 19 | bShowLaunchMenus=True 20 | LogTimestampMode=None 21 | bPromoteOutputLogWarningsDuringPIE=False 22 | AssetEditorOpenLocation=MainWindow 23 | 24 | 25 | -------------------------------------------------------------------------------- /Config/DefaultEngine.ini: -------------------------------------------------------------------------------- 1 | [/Script/Engine.Engine] 2 | +ActiveGameNameRedirects=(OldGameName="TP_FirstPerson",NewGameName="/Script/S05_TestingGrounds") 3 | +ActiveGameNameRedirects=(OldGameName="/Script/TP_FirstPerson",NewGameName="/Script/S05_TestingGrounds") 4 | +ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPerson",NewGameName="/Script/S05_TestingGrounds") 5 | +ActiveGameNameRedirects=(OldGameName="TP_ThirdPerson",NewGameName="/Script/S05_TestingGrounds") 6 | +ActiveClassRedirects=(OldClassName="TP_FirstPersonProjectile",NewClassName="BallProjectile") 7 | +ActiveClassRedirects=(OldClassName="TP_FirstPersonHUD",NewClassName="S05_TestingGroundsHUD") 8 | +ActiveClassRedirects=(OldClassName="TP_FirstPersonGameMode",NewClassName="S05_TestingGroundsGameMode") 9 | +ActiveClassRedirects=(OldClassName="TP_FirstPersonCharacter",NewClassName="FirstPersonCharacter") 10 | 11 | [/Script/HardwareTargeting.HardwareTargetingSettings] 12 | TargetedHardwareClass=Desktop 13 | AppliedTargetedHardwareClass=Desktop 14 | DefaultGraphicsPerformance=Maximum 15 | AppliedDefaultGraphicsPerformance=Maximum 16 | 17 | [/Script/Engine.RecastNavMesh] 18 | RuntimeGeneration=Dynamic 19 | 20 | [/Script/Engine.PhysicsSettings] 21 | DefaultGravityZ=-980.000000 22 | DefaultTerminalVelocity=4000.000000 23 | DefaultFluidFriction=0.300000 24 | SimulateScratchMemorySize=262144 25 | RagdollAggregateThreshold=4 26 | TriangleMeshTriangleMinAreaThreshold=5.000000 27 | bEnableAsyncScene=False 28 | bEnableShapeSharing=False 29 | bEnablePCM=False 30 | bWarnMissingLocks=True 31 | bEnable2DPhysics=False 32 | LockedAxis=Invalid 33 | DefaultDegreesOfFreedom=Full3D 34 | BounceThresholdVelocity=200.000000 35 | FrictionCombineMode=Average 36 | RestitutionCombineMode=Average 37 | MaxAngularVelocity=3600.000000 38 | MaxDepenetrationVelocity=0.000000 39 | ContactOffsetMultiplier=0.010000 40 | MinContactOffset=0.000100 41 | MaxContactOffset=1.000000 42 | bSimulateSkeletalMeshOnDedicatedServer=True 43 | DefaultShapeComplexity=CTF_UseSimpleAndComplex 44 | bDefaultHasComplexCollision=True 45 | bSuppressFaceRemapTable=False 46 | bSupportUVFromHitResults=False 47 | bDisableActiveActors=False 48 | bDisableCCD=False 49 | MaxPhysicsDeltaTime=0.033333 50 | bSubstepping=False 51 | bSubsteppingAsync=False 52 | MaxSubstepDeltaTime=0.016667 53 | MaxSubsteps=6 54 | SyncSceneSmoothingFactor=0.000000 55 | AsyncSceneSmoothingFactor=0.990000 56 | InitialAverageFrameRate=0.016667 57 | 58 | [/Script/Engine.CollisionProfile] 59 | -Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) 60 | -Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 61 | -Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 62 | -Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 63 | -Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 64 | -Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False) 65 | -Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False) 66 | -Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False) 67 | -Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic",Response=ECR_Block),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False) 68 | -Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False) 69 | -Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) 70 | -Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) 71 | -Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) 72 | -Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) 73 | -Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False) 74 | -Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False) 75 | -Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False) 76 | -Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Block),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 77 | +Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) 78 | +Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 79 | +Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 80 | +Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 81 | +Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 82 | +Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False) 83 | +Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False) 84 | +Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False) 85 | +Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic"),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False) 86 | +Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False) 87 | +Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) 88 | +Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) 89 | +Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) 90 | +Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) 91 | +Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False) 92 | +Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False) 93 | +Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False) 94 | +Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 95 | +Profiles=(Name="Projectile",CollisionEnabled=QueryOnly,ObjectTypeName="Projectile",CustomResponses=,HelpMessage="Preset for projectiles",bCanModify=True) 96 | +Profiles=(Name="NonSpawnBlockingDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Spawn",Response=ECR_Ignore)),HelpMessage="Does not prevent spawning.",bCanModify=True) 97 | +DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="Projectile",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False) 98 | +DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,Name="Spawn",DefaultResponse=ECR_Block,bTraceType=True,bStaticObject=False) 99 | +EditProfiles=(Name="Trigger",CustomResponses=((Channel="Projectile",Response=ECR_Ignore),(Channel="Spawn",Response=ECR_Ignore))) 100 | -ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") 101 | -ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") 102 | -ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") 103 | -ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") 104 | -ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") 105 | +ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") 106 | +ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") 107 | +ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") 108 | +ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") 109 | +ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") 110 | -CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") 111 | -CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") 112 | -CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") 113 | -CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") 114 | +CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") 115 | +CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") 116 | +CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") 117 | +CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") 118 | 119 | [/Script/EngineSettings.GameMapsSettings] 120 | EditorStartupMap=/Game/Dynamic/Levels/FirstPersonExampleMap.FirstPersonExampleMap 121 | LocalMapOptions= 122 | TransitionMap=None 123 | bUseSplitscreen=True 124 | TwoPlayerSplitscreenLayout=Horizontal 125 | ThreePlayerSplitscreenLayout=FavorTop 126 | bOffsetPlayerGamepadIds=False 127 | GameInstanceClass=/Script/Engine.GameInstance 128 | GameDefaultMap=/Game/Dynamic/Levels/FirstPersonExampleMap.FirstPersonExampleMap 129 | ServerDefaultMap=/Engine/Maps/Entry.Entry 130 | GlobalDefaultGameMode=/Game/Dynamic/BP_InfiniteTerrainGameMode.BP_InfiniteTerrainGameMode_C 131 | GlobalDefaultServerGameMode=None 132 | 133 | 134 | -------------------------------------------------------------------------------- /Config/DefaultGame.ini: -------------------------------------------------------------------------------- 1 | [ProjectSettings] 2 | ProjectID=(A=1823396784,B=1298598689,C=1743498150,D=-2048051708) 3 | ProjectName=First Person Template 4 | 5 | 6 | [/Script/EngineSettings.GeneralProjectSettings] 7 | ProjectID=626854294158887A8A72DB83DEAE1251 8 | -------------------------------------------------------------------------------- /Config/DefaultGameplayTags.ini: -------------------------------------------------------------------------------- 1 | 2 | [/Script/GameplayTags.GameplayTagsSettings] 3 | ImportTagsFromConfig=True 4 | WarnOnInvalidTags=True 5 | FastReplication=False 6 | NumBitsForContainerSize=6 7 | NetIndexFirstBitSegment=16 8 | +GameplayTagList=(Tag="Character.AI.Shooting",DevComment="") 9 | 10 | 11 | -------------------------------------------------------------------------------- /Config/DefaultInput.ini: -------------------------------------------------------------------------------- 1 | [/Script/Engine.InputSettings] 2 | +ActionMappings=(ActionName="Jump", Key=SpaceBar) 3 | +ActionMappings=(ActionName="Jump", Key=Gamepad_FaceButton_Bottom) 4 | 5 | +ActionMappings=(ActionName="Fire", Key=LeftMouseButton) 6 | +ActionMappings=(ActionName="Fire", Key=Gamepad_RightTrigger) 7 | 8 | +AxisMappings=(AxisName="MoveForward", Key=W, Scale=1.f) 9 | +AxisMappings=(AxisName="MoveForward", Key=S, Scale=-1.f) 10 | +AxisMappings=(AxisName="MoveForward", Key=Up, Scale=1.f) 11 | +AxisMappings=(AxisName="MoveForward", Key=Down, Scale=-1.f) 12 | +AxisMappings=(AxisName="MoveForward", Key=Gamepad_LeftY, Scale=1.f) 13 | 14 | +AxisMappings=(AxisName="MoveRight", Key=A, Scale=-1.f) 15 | +AxisMappings=(AxisName="MoveRight", Key=D, Scale=1.f) 16 | +AxisMappings=(AxisName="MoveRight", Key=Gamepad_LeftX, Scale=1.f) 17 | 18 | +AxisMappings=(AxisName="TurnRate", Key=Gamepad_RightX, Scale=1.f) 19 | +AxisMappings=(AxisName="TurnRate", Key=Left, Scale=-1.f) 20 | +AxisMappings=(AxisName="TurnRate", Key=Right, Scale=1.f) 21 | +AxisMappings=(AxisName="Turn", Key=MouseX, Scale=1.f) 22 | 23 | +AxisMappings=(AxisName="LookUpRate", Key=Gamepad_RightY, Scale=1.f) 24 | +AxisMappings=(AxisName="LookUp", Key=MouseY, Scale=-1.f) -------------------------------------------------------------------------------- /Content/Dynamic/BP_InfiniteTerrainGameMode.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/BP_InfiniteTerrainGameMode.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/Chase.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/Chase.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/ClearBlackboardValue.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/ClearBlackboardValue.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/EQSTester.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/EQSTester.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/FindNextWaypoint.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/FindNextWaypoint.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/GuardBehaviour.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/GuardBehaviour.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/IsWithinRange.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/IsWithinRange.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/NPC_AI_BP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/NPC_AI_BP.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/Patrol.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/Patrol.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/PatrolData.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/PatrolData.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/SetFocus.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/SetFocus.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/Shoot.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/Shoot.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/ShootSequence.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/ShootSequence.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/Suspicion.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/Suspicion.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/UpdateLastLocation.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/AI/UpdateLastLocation.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/AI/ai_spec.txt: -------------------------------------------------------------------------------- 1 | If you can see the enemy and within 300m shoot at the enemy. 2 | If you see the enemy and not within 300m, move within 300m of the enemy while shooting. 3 | If can't see the enemy, but haven't visited last known location, visit that location. 4 | Else go to the next patrol point. -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/ABP_FP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/ABP_FP.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/ABP_TP.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/ABP_TP.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/AM_FPFire.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/AM_FPFire.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/AM_TPFire.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/AM_TPFire.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/AimOffsets/AimCentre.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/AimOffsets/AimCentre.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/AimOffsets/AimDown.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/AimOffsets/AimDown.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/AimOffsets/AimOffset.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/AimOffsets/AimOffset.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/AimOffsets/AimUp.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/AimOffsets/AimUp.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/BlendSpaces/Aiming_Walk.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/BlendSpaces/Aiming_Walk.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/BlendSpaces/BS_CrouchWalk.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/BlendSpaces/BS_CrouchWalk.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/BlendSpaces/BS_Jog.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/BlendSpaces/BS_Jog.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_Fire.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_Fire.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_Idle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_Idle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_JumpEnd.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_JumpEnd.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_JumpLoop.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_JumpLoop.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_JumpStart.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_JumpStart.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_Run.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/FPAnimationClips/FirstPerson_Run.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Aim_Space_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Aim_Space_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Aim_Space_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Aim_Space_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Idle_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Idle_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Idle_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Idle_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Bwd_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Bwd_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Bwd_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Bwd_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Fwd_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Fwd_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Fwd_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Fwd_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Lt_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Lt_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Lt_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Lt_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Rt_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Rt_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Rt_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_Walk_Rt_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_to_Stand_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_to_Stand_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_to_Stand_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Crouch_to_Stand_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Death_1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Death_1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Death_2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Death_2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Death_3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Death_3.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Death_Ironsights_1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Death_Ironsights_1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Death_Ironsights_2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Death_Ironsights_2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Equip_Pistol_Standing.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Equip_Pistol_Standing.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Equip_Rifle_Standing.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Equip_Rifle_Standing.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Rifle_Ironsights_Additive.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Rifle_Ironsights_Additive.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Shotgun_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Shotgun_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Shotgun_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Fire_Shotgun_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_3.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_4.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Hit_React_4.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Pistol.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Pistol.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Hip_Break1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Hip_Break1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Hip_Break2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Hip_Break2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Idle_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Bwd_Rifle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Bwd_Rifle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Fwd_Rifle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Fwd_Rifle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Lt_Rifle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Lt_Rifle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Rt_Rifle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jog_Rt_Rifle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jump_From_Jog.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jump_From_Jog.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jump_From_Stand.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jump_From_Stand.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Jump_From_Stand_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Jump_From_Stand_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Death_1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Death_1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Death_2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Death_2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Fire_1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Fire_1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Fire_2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Fire_2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Idle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Idle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Reload_Rifle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Reload_Rifle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Reload_Shotgun.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_Reload_Shotgun.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Prone_To_Stand.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Prone_To_Stand.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Pistol.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Pistol.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Shotgun_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Shotgun_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Shotgun_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Reload_Shotgun_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Sprint_Fwd_Rifle.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Sprint_Fwd_Rifle.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Stand_To_Prone.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Stand_To_Prone.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Stand_to_Crouch_Rifle_Hip.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Stand_to_Crouch_Rifle_Hip.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Stand_to_Crouch_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Stand_to_Crouch_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Bwd_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Bwd_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Fwd_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Fwd_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Lt_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Lt_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Rt_Rifle_Ironsights.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Animations/TPAnimationClips/Walk_Rt_Rifle_Ironsights.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Behaviour/BP_Character.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Behaviour/BP_Character.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Behaviour/BP_PlayerController.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Behaviour/BP_PlayerController.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Character/Behaviour/Character.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Character/Behaviour/Character.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Levels/FirstPersonExampleMap.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Levels/FirstPersonExampleMap.umap -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/BP_Tile.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/BP_Tile.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/MI_Barrier_Green.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/MI_Barrier_Green.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/MI_Barrier_Red.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/MI_Barrier_Red.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_Box.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_Box.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_Canister.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_Canister.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_Container.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_Container.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_Rock1.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_Rock1.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_Rock2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_Rock2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_Rock3.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_Rock3.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/BP_SandBags.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/BP_SandBags.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/Props/Sack1_Blueprint.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/Props/Sack1_Blueprint.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/RedBarrier2.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/RedBarrier2.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Terrain/S_GroundPlane.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Terrain/S_GroundPlane.uasset -------------------------------------------------------------------------------- /Content/Dynamic/UI/BP_HUD.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/UI/BP_HUD.uasset -------------------------------------------------------------------------------- /Content/Dynamic/UI/BP_ScoreUI.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/UI/BP_ScoreUI.uasset -------------------------------------------------------------------------------- /Content/Dynamic/UI/WBP_Score.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/UI/WBP_Score.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Weapons/FPWeapon/Behaviour/BP_FireComponent.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Weapons/FPWeapon/Behaviour/BP_FireComponent.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Weapons/FPWeapon/Behaviour/BP_FirstPersonProjectile.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Weapons/FPWeapon/Behaviour/BP_FirstPersonProjectile.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Weapons/FPWeapon/Behaviour/BP_Gun.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Weapons/FPWeapon/Behaviour/BP_Gun.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Weapons/FPWeapon/Behaviour/FireComponent.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Weapons/FPWeapon/Behaviour/FireComponent.uasset -------------------------------------------------------------------------------- /Content/Dynamic/Weapons/FPWeapon/Behaviour/Gun.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/UnrealCourse/05_TestingGrounds/38cd957e42acfc996578fac17a73b91128475def/Content/Dynamic/Weapons/FPWeapon/Behaviour/Gun.uasset -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/1M_Cube.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4239c8baca107aaf26bfd46de46a18cf6fa15c2c1f42554a2c1dfe70f4a69664 3 | size 79733 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/1M_Cube_Chamfer.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:94f6d6abfd3dd636da12296faf7fdb93ed4db6d05d9e91540379588f0cbf06ac 3 | size 112776 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/Barrier.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:73d6d537c4ab564c3b2aa57cf76b099dab2b98968f3420db72657bd748a6859c 3 | size 81588 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/Bump_StaticMesh.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4885137ac44cf6482b6ddc4fbdc656bcdb71d3c9f27f7cb49968b03866c7c192 3 | size 87719 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/CubeMaterial.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7e34c39452caec5b36846ba3ceba9a30a6efc3a4f2b8c79d371f8ad66fb43c5d 3 | size 91416 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/LeftArm_StaticMesh.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:80e09f59c2fc4dd5f28c08951dc630ada129390e994bc4a372eec16dd3631b65 3 | size 87635 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/Linear_Stair_StaticMesh.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4b2afdaffae93faba5503e23189dbcec3b7fab7f69687ca3ec3dd68c21be859b 3 | size 93783 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/RampMaterial.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6e69ebb9dbe8228fc0ebcf389f65719d386e3a5a842cc150747d6ab861eaaf6 3 | size 89214 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/Ramp_StaticMesh.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9e5f7e185a214e3a93d28b701df81a02e550c485af1a1fd10091cc2126c4af2d 3 | size 85864 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/RedBarrier.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:185e1835b50d833942d45a9985d626cc0c1882cb0dc7e45070d9f0869504b54c 3 | size 563 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/RightArm_StaticMesh.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1562ebd8b09fcf0fca20ccfe31f6f2637e4ec5f583c29d835fb06488dc4eba5a 3 | size 86352 4 | -------------------------------------------------------------------------------- /Content/Static/Geometry/Meshes/TemplateFloor.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f052cacaf6dfaca7e15c89a5fa8abf9189eb5a21f4d81b2d4f831fd9394bf2eb 3 | size 97809 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/M_UE4Man_Body.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:30a1ac9b91f84ca26cb070045c5aea58b1a18b96ffb0bdd2c6e2e3dc08f7333b 3 | size 138792 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/M_UE4Man_ChestLogo.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:170347f2f12dcfcc23808595dea818d8b9ca2ab72a0835705dc8fc38bdf29b3e 3 | size 91470 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26a54b67bce48c73ebe37bb8d7289684ecb040d9b17a80395052b90ef1f84636 3 | size 106514 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:35374c3c7c78ae67fb6b5a2c40d44b49ae7f2aee17945a44cf02ed52ee9e5e95 3 | size 100808 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e128f3490909dd413fc0108388618ee32a2664e490c41caf1dc0a9886ebe654d 3 | size 102304 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3b3d3fccce8243dea29857a3b50de30c52bb8183234633c3aaab4c8aca4d4a88 3 | size 106172 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d33e5747c86d2fc2837358e56c2039bdc2ba8c0d2c64c291f32bed4e7662fb58 3 | size 434841 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:657c23584e4ebba59d9003fd25cc1a10005d3b2b42a9294d906e1a4d9776905e 3 | size 405710 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:91a8f5cf39432bb8061a71139ed209d8c8834bf3bad2cd2c1f3c17cbcdacb00f 3 | size 471202 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cd15aefce18a15a96e3194d4403dbf5a3963808133cf94c790e88afc89f647ff 3 | size 362571 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Mesh/SK_Mannequin.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20257e55e964c2ac66fe9486245d6d381f440fcaf9896939d14351547f4d3eeb 3 | size 4050181 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Mesh/SK_Mannequin_PhysicsAsset.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:40bcbe60edb0335ffc71250c66d96b809ccce8631efa12d642bb33b4b9042caf 3 | size 33894 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Mesh/UE4_Mannequin_Skeleton.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0fe14408b4da82130647193436d3512a8b6cecc82068b6df3905868bca22568 3 | size 13298 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Textures/UE4Man_Logo_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cffb85ef18b0c778851957e0fa66c31328b246d0514f832e667bace133872e84 3 | size 162219 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Textures/UE4_LOGO_CARD.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:51fe23b87fbdc6cb6504379d79aef6099d971a28c094854c277a139b2be5c3a2 3 | size 95604 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:313372f1ef5d4e774be2d0808ad1c55a4a1397229e640bb5bae7b82c20294d4b 3 | size 275337 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Textures/UE4_Mannequin__normals.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aed3b12829a618d36985e80cc50e76b042cf6108d5e1cd86a437f0b4c77d98aa 3 | size 5481527 4 | -------------------------------------------------------------------------------- /Content/Static/NPC/Character/Textures/UE4_Mannequin_occlusion_Mobile.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ed9dc7cd158dd1c4a7a96eaeb4a48cecfcaad872ff89e33522ff11572dd33b9 3 | size 362789 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Audio/FirstPersonTemplateWeaponFire02.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fadba1582b5bfe2b4d5a0d222f126534ca5683d64576300d4c1a9c082df1ae7f 3 | size 305978 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/M_UE4Man_Body.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:99d97ff85cb6f45180de5bd595e29fe4bdf3a85d31aa78d857692b9228a522b1 3 | size 131616 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b08cb2ec8c79bb5a9ccd59f8e264616451e8224e823f36e1f1bba0fb0fca7777 3 | size 106573 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7e1f3ea0217be1c3225bdd9e583adb2f91e116075670aca7560d13696f81b9df 3 | size 101174 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fbd6a51e905237ebf5a899dd5a373b73087462f62d8c1624fab234f1ecce4d23 3 | size 102736 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:184156faa7b514b5659421f207eab6899a1268cbb1204a73daeb46df69ac8f03 3 | size 107730 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/T_ML_Aluminum01.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8e3a31d4129896f7ebb0c95cd2ed256d8d0ee3908d070c4780173a5574330d05 3 | size 8701205 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b5bd5cef7ec08a2218dd668434b5950e225869d501a7b016aa59145fb909ce34 3 | size 4396609 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:177e50bb4bb977642849b72b99f3f0438fa903e827d2646c891ce1d32fe419eb 3 | size 5452545 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:09c376ef666572291c3d5189c53e8bfa8974365624d4136d3a61846a00cfbac3 3 | size 4852012 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Mesh/SK_Mannequin_Arms.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a82efa00033bc137346448d6e2b0f7b452c4c6780f688609cb37d6d827e2316a 3 | size 2032571 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Mesh/SK_Mannequin_Arms_PhysicsAsset.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:05b6c6f7bb25948ce97ee2acf9819a7a33158b640e6b1589243f83e78336ddab 3 | size 10166 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Mesh/SK_Mannequin_Arms_Skeleton.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26209768a24e26dab309eb551ea642c07ab9c27762d45b6fb1df64df62445222 3 | size 13015 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Textures/UE4_LOGO_CARD.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4596e2a8e43b9411b23ad4d655be5cb972dee2e0268da5f594cf1f8f0cb1ad8 3 | size 95607 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Textures/UE4_Mannequin_MAT_MASKA.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26cfe4c3e9aac19bdb767e4162e47e333f57275d13c360afcfbeabafd113aabf 3 | size 270250 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Character/Textures/UE4_Mannequin__normals.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1c9213f2bf09156838e4d94e2e1ed90dcac76638664a38a62ff23d0732b6ab19 3 | size 5481485 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Meshes/BaseMaterial.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:477282c2efb4a811ab54896736879758768318ed17999fe169774d8449720b31 3 | size 85002 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Meshes/CubeMaterialOverride.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9af0f755157ed6475ec8dab2dea24fb6e23675a08fd12ed1d3e6653c8634eb1c 3 | size 80443 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Meshes/FirstPersonProjectileMaterial.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f05a0421cb9be949478dbcbbf9eb9989c856b2849cc6eb5f15d907c7656488b4 3 | size 91211 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Meshes/FirstPersonProjectileMesh.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d90e90ed35546e607aae5f9cc4404985203734a91d1faca51bb09aa51e8db571 3 | size 133685 4 | -------------------------------------------------------------------------------- /Content/Static/Player/Textures/FirstPersonCrosshair.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd1bfeba05e2f6d1bbf1fdb4c7c9b3027bb7a2e49f2db1d12a732f245aa93827 3 | size 2973 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Materials/BaseMaterial/Flora_twoSides.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:80c2ef72e507522a7d0a988e2bc7e31362fd069dc89efb22de2f3868df2a6b7f 3 | size 140787 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Materials/BaseMaterial/bese_material.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ce290ac02e7288480d048f199a720adf8a3daf51ed8bfff4c4cdfbc63a3cc075 3 | size 105543 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Materials/Ground.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3f8d2da6f0707fe08c1a5b468def1d0e8d5ec7550abb281675b3df065039592f 3 | size 120105 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Materials/grass.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:65dd70aae16281313db50a1a8133868eb6c09feb2b9a1e3129d382c6fb35f376 3 | size 111570 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Materials/grass2.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9dc780fe8fd151c7eee822aa6c0037f1cd805a47daec4a40c0aa4427d4671ffa 3 | size 101513 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Materials/grass5.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8af569a24dbfefe4f02b798dc2a8fc79dcf89d726926830ec3bade82fc20d631 3 | size 93497 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Meshes/grass01.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c5b95a043ed62421d8389d13af2513d7d0acfc32ff22efd9b2b405dd8575de0e 3 | size 134371 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Meshes/grass02.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:53abfca5dd55e8d5f1924895856afa9369ca076b9f1ff4884c2c3626c8429f24 3 | size 132187 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Meshes/grass05.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:16d9c990c0793658711f3efe53ac7d09f5d55dbb39c4cf91d96d8e856459e420 3 | size 116367 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/BaseTextures/Mask1.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c7d7c77091510386e6132c620f15f1f2c2396e5aa438fca6524cc81c895fb9c6 3 | size 99974 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/BaseTextures/base_flat_n.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fb4fcdcf1648782adcc6d2559c27a633c2cd74edcf773b6ec24d7903cd879bb7 3 | size 3210 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/BaseTextures/base_gray_d.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:27d64c82e0c9003b8374d27d0fabbaf2c7f58112e871b1bd158f767387f44345 3 | size 2919 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Grass2_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:744708ae2bb693e149ac11103b433443fb70bb30cd0ae8742bed81a0d6314f76 3 | size 2712948 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Grass2_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a5274a94217052edf75b13fba21547993d8a9bdcc0a4466f5c653b4e9fb3c9b 3 | size 3623575 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Grass5_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:507315c3b87eee5deef1c4ac53bd8f98e6b0e7a36ae9799e0bede55acf8183c5 3 | size 1500764 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Grass5_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b6688f47a9d2a480762efba74b27597128dceb749737f7bc49b544a908d51d53 3 | size 2631536 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Grass_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ae2fb1e1199f9f2f3287dca57fc7809ea4b294f44dafd0058ffafec3a94322dd 3 | size 2094410 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Grass_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:03c2ce3f20f974cac84bb40d31c9d218ee4ab9bbde483ba77f269f66b3cf8a5e 3 | size 13312600 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Ground_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:464a85de527071206f0570d7892a125c4aed3b37eba123c4a54206f81b1ed61e 3 | size 12252024 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/GrassPack/Textures/Ground_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6d7e20ce22d81f56d4e82c52905f1a17e3394fa30f124e6cdb9aa962396ad573 3 | size 10276795 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Materials/BaseMaterial/bese_material.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3d52fb67d59d40a8143eebd85974ce398a3f025822fd9335365c235fc0755573 3 | size 147399 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Materials/Box.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6f8ef054e0bdf5990f1310afe7165ee46782631f8afc69e60f7cd707454cb0eb 3 | size 118062 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Materials/Canister.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63c3b9d47f0157bc846f5839dfef57ed5ff7465c50fd4757f9116344c3a3e381 3 | size 125375 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Materials/Container.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:48760882bd105ab6359cc4358291d3dee17483c8d46cb283fcbb4ce99f6de43a 3 | size 121521 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Materials/TrashCan.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b5ac3c596e3da228b247ecfa18b76f0a89085d70406d6a565ec12332f18e2b2a 3 | size 123067 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Meshes/Box2.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a719b5cc42b91fbc3b3cf8ef7e94ab81ed61ecd4a37009ddd2be8a491622405a 3 | size 828192 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Meshes/Canister1.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:66e0a4b02c0f6aef796fd354fd16668718423a48b4dbb79fbf8e08a456bcf7a4 3 | size 335581 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Meshes/Container.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6efbdacf0aca8c847411667f16ee901304e8ed3830265aa9ec8ed6fe3e7b1d9 3 | size 1606166 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Meshes/ContainerDoorL.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:75318064943217ddde28ee7376501295b247da5624e1597988babc5caeaece1e 3 | size 1214698 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Meshes/ContainerDoorR.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cc51dfaef458816031327e097c3b8aeb3c0fbf23ee92ed1ce2cc3876bcaeab7b 3 | size 1201525 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Meshes/Sack1.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:638e1ef037d95a31e3bd7148cb7111904f05b8f650ca36e10bd1e5a7976da978 3 | size 211132 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/BaseTextures/base_black_d.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e95af4ea4dc6d682dba08910b5625af2153165be7de5528cedc120b668072e92 3 | size 2935 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/BaseTextures/base_flat_n.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dccbd04c58622101aa77734523bd223755f51b9e407341d1a0484d371c30fd84 3 | size 3219 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/BaseTextures/base_gray_d.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:21dc472f065df743859ba7dfda77237e32de2787d4773ff941d3dd6d198835c2 3 | size 2928 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Box_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4e2495c85a8f673088ff5656aca166e4083a717f56358b9a60503ae40d793577 3 | size 36286520 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Box_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:69e7621f5d5c0ed9ac7542f706bc86e8c83b320a3d8b960d6cf338fe6565bc39 3 | size 25767884 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Box_SRM.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20aa43a3fb28155d1ec8e4816315fed15a344147daf977d0c85adeba86e3a8d4 3 | size 28724995 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Canister_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2ecaded3c659bed282ecd4d35197ed324bf040bfdd498070d82f16c0bb369ac5 3 | size 19989129 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Canister_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:31f26be1533ed003429ba844959c3b37020b02ad3ba7a3f64ddd05944978d4e9 3 | size 19873361 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Canister_SRM.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7317138e4d23965fedd78e996714c88f68891969731f94f110170b8b01fae5e 3 | size 28505347 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Container_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9121eba9ffc54bf9c446d85ff2aa1bb7b0b1e92f7cc3717c1e166f63a2bd8f9e 3 | size 27481291 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Container_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:846192fdd6849ec55bc42a4a6e54c089ee58269c1c2936b3ac623f74f9abe13b 3 | size 21076805 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Container_SRM.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b6b3c63c3e069dd2f716382b6ed7217f9c6a51a010973da0f5b2d93f9a9ef10c 3 | size 27885094 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/Dirt2_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:03f30ecc2d3c01270b4a5460e3620eea5ce9baf79f0254a3334af66ef5f73589 3 | size 2416838 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/TrashCan_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2e5d0bacc7fa04fff267cca8efaed814fd8905eb99e0deab627e6651d1d0f1cb 3 | size 19105344 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/TrashCan_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:273387db671532d91b60127517727d9c1da63592e1b1cd95baee1daa380e5ea0 3 | size 25157782 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/IndustryPropsPack4/Textures/TrashCan_SRM.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bf4c12c212a7f9a181d983eb2ce5bbfe6361cf496721349e226b9788d4a9826e 3 | size 28228348 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock01/Rock01_High.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c10ddef8fd5e4727df0120b445245ad997fd3ce8a3fc312cee4dd45b955c3f26 3 | size 4054546 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock01/Rock01_Material.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f15af4658c24c5e512b7d3bad73a23e16b02c3fd81d1a7c84a52ac0d085fe733 3 | size 175276 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock01/Textures/Rock01_Albedo.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0e7c0851f8c723c296b2e05c1c7fc8159e7954aa2ef13f2215adac8360bae6f5 3 | size 19047624 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock01/Textures/Rock01_Normals.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2767f36ccd7ae510c0520cd68abc64cab5224ca2a76d55e2c93a8ed5ef3fc128 3 | size 17154482 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock01/Textures/Rock01_Occlusion.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fedd18261c65087a8a65c0ad3357e535c1994bb4a844b83638c931d5a5b6ebde 3 | size 5349537 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock05/Rock05_High.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6423780db742a5db473eb61e4ce9302ddfa4d0f7c73855d0e4c945fe3e2a5d2e 3 | size 4569371 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock05/Rock05_Material.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:00e9db75125dfc9f73f2244f20020d19a197e38718599dbb178cbab203e34992 3 | size 137836 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock05/Textures/Rock05_Albedo.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d497b227871bbae836e004032b7cb5c11003e10a95632c5d5e3bb652c7d36f44 3 | size 16346889 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock05/Textures/Rock05_Normals.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6fdaa3d3b1ff1a3d202382c5520ebadbd4a41344e4361dbce340a76e7b436bd9 3 | size 14584227 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock05/Textures/Rock05_Occlusion.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b04b8856c7235bd578db407810bfee9cd08d1eec8c93af65e1ca70a100b6104a 3 | size 5380035 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock17/Rock17_High.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e50c63dd81597fdf66aef3a0e1a063db47db3efd426f575db50cdd0b1c0bc01e 3 | size 4233262 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock17/Rock17_Material.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:758d87c83349ae8a11c62426e8e91312f24ba4585ca9cd6d79d88deb534fdfa5 3 | size 136466 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock17/Textures/Rock17_Albedo.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:abe678203912bf0f54dceeb6f50438e29e922e680cfb3a604fb41024d72c66de 3 | size 21627002 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock17/Textures/Rock17_Normals.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fcd491f0326165d3d7f2d6ff2823a64a53708f94aa2a6ac09f5bdbb233f2ea1d 3 | size 18235325 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Rock17/Textures/Rock17_Occlusion.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4f663c32774c075ee538030a91917951b9c78b51d419e4c916680bec08b90eac 3 | size 6502065 4 | -------------------------------------------------------------------------------- /Content/Static/TestingGroundPack/RockPackProV1/Textures/RockDetail/Rocks_DetailAlbedo.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a125a01ba825e7bd3b843277d16005dfa5ea541541243df80bbea12ae1ac23b6 3 | size 248161 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/M_FPGun.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:91a0fd5cf66885a8274ac422bad1e778123049c2972c17331c4246271c679a2b 3 | size 137664 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/M_Laser.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b9920196f3e38b58cd1f375689fb4efa1021244e605f0341d7b3f94a90f95362 3 | size 90063 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/ML_GlossyBlack_Latex_UE4.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7dfd253d03456066997e93bedf74def77b6adc060962a8afc298c0a19b6416f7 3 | size 106659 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fab041bf06ac02df3b2d68d0d44c307a1660530e824b0984c9e3a41bed9accea 3 | size 101183 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/ML_Plastic_Shiny_Beige_LOGO.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:27d276c16faf2aff84fcecc8db3ce5c1258191dac317086c1b7a4f2765dcea00 3 | size 118032 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/ML_Screen.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0f1987ad5fc9ffe3e26ca6340110283a9d379d8e6801c2ef0baa00ac1e888ece 3 | size 98088 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/ML_SoftMetal_UE4.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b85de7aa526a8a7e025509937d04ae5eed014dc91bab08ded817ce929f400c66 3 | size 107685 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:25ea0391a17c62670c999797b592842eec079f3cc68acdf296e5ed0c5ac9cf12 3 | size 8701091 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/T_ML_Aluminum01_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f8f45e6d4fb439907c1558ba0b83948b4a92c8abb3e4e9029ae98b5fdca96ed8 3 | size 4396601 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/T_ML_FineRubber.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aa1290ef2efe415cfc644c5cf2143d16a19339597784b02e4debe6d0a7866641 3 | size 6314882 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_D.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:abced549ca4a107b8fe5f98ca49fb628c7bf261fd66e490bb2c4a954aaf5f44f 3 | size 5452431 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Materials/MaterialLayers/T_ML_Rubber_Blue_01_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6eebbb0e4e5394a035ebee390bf520d4ed7c1b2bf4fbb5298791ad06ba0d5135 3 | size 4852004 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Mesh/SK_FPGun.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0f5fa5d2c902ad24f59aac3fc1fc526ba43af687c0fd85f172c3852ac6d78d38 3 | size 1376371 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Mesh/SK_FPGun_PhysicsAsset.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70dfc8100bbaee7aac151a24a70d7353f4555f3d7c7fed97cfa764a9a833080d 3 | size 3323 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Mesh/SK_FPGun_Skeleton.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e4324ab232b06c63924837b03dd387964aa8f99da08ae73e326a441fae47401e 3 | size 3240 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Textures/T_FPGun_M.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:116786e56f9295a3a8ed22022d731a836e2f5a54099de351835dbc218d32d3dd 3 | size 258919 4 | -------------------------------------------------------------------------------- /Content/Static/Weapons/FPWeapon/Textures/T_FPGun_N.uasset: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f37916d07bb3401d0f4e48143a7c5d5109c6098eb28d8f9d310b723a30bd53cc 3 | size 2082407 4 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 EmbraceIT Ltd 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Unfortunately **we can't accept Pull Requests** as they will not end up in the course. 2 | 3 | # Unreal Engine Developer Course - Section 5 - Testing Grounds 4 | 5 | This is the [Unreal Engine Developer]( http://gdev.tv/urcgithub) course – it started as a runaway success on Kickstarter and has gone on to become one of the bestselling Unreal courses on the internet! Continually updated in response to student suggestions, you will benefit from the fact we have already taught over 360,336 students game development, many shipping commercial games as a result. 6 | 7 | You're welcome to download, fork or do whatever else legal with all the files! The real value is in our huge, high-quality online tutorials that accompany this repo. You can check out the course here: [Unreal Engine Developer]( http://gdev.tv/urcgithub) 8 | 9 | ## In This Section 10 | 11 | ### 1 Testing Grounds Introduction ### 12 | 13 | + Welcome, fresh start, new energy 14 | + Did you go back and modify Building Escape? 15 | + Most ambitious section yet 16 | + Bookmark the live Google Slides 17 | + Comment on the slides, especially typos 18 | + Come say hi at [community.gamedev.tv](https://community.gamedev.tv) 19 | 20 | ### Code Architecture Storing State ### 21 | 22 | 23 | 24 | ### 2 Testing Grounds GDD ### 25 | 26 | + The concept of the game 27 | + The rules of the game 28 | + Some of the asset requirements for the game 29 | + Identify possible technical challenges. 30 | 31 | ### 3 Using Git LFS (Large File Support) ### 32 | 33 | + The distinction between Git vs GitHub 34 | + Use Unreal’s toolbar & SourceTree 35 | + Enable Git Large File Support (LFS) 36 | + Setup on GitHub (no readme.md or initial commit) 37 | + Push to GitHub and share 38 | + Warning: may take a while on slow broadband. 39 | 40 | ### 4 Marketing & Markdown ### 41 | 42 | + Limitations of Unreal’s connection to GitHub 43 | + How to reset to previous commit to combine 44 | + Presenting your public GitHub page well 45 | + Using Markdown to enrich formatting. 46 | 47 | ### 5 Use git clean to Revert Project ### 48 | 49 | + Upgrading my project to Unreal 4.13 50 | + An overview of the scene 51 | + How the First Person Character is composed 52 | + Adding a spiral staircase. 53 | 54 | ### 6 First Person Character Overview ### 55 | 56 | 57 | 58 | ### 8 The Third Person Character ### 59 | 60 | + Add a third person character to the scene 61 | + Caution about tidying files at this stage 62 | + Add a navmesh, and check it’s continuous. 63 | 64 | ### 9 Introducing AI Behaviour Trees ### 65 | 66 | + Setup a Blueprint AI controller class 67 | + Behaviour Trees controll AI execution flow 68 | + Blackboards hold AI instance data 69 | + How to associate a behaviour tree with an AI 70 | + Testing that our behavior tree is running. 71 | 72 | ### 10 Introducing AI Blackboard Data ### 73 | 74 | + Blackboard data is like member variables in code 75 | + Using blackboard data to set patrol points 76 | + Practice setting blackboard values in Blueprint 77 | + Test simple AI patrol behaviour. 78 | 79 | ### 11 Target Points and Patrol Routes ### 80 | 81 | + Add a variable to the NPC’s blueprint 82 | + How to make a variable an array in blueprint 83 | + Introducing Target Point actors 84 | + Using target points to specify patrol routes. 85 | 86 | ### 12 Using Any Actor for Waypoints ### 87 | 88 | + Actors are more general than target points 89 | + How to select an actor from another actor 90 | + Getting the AI Controller to set Blackboard data 91 | + Testing our characters go to a set waypoint. 92 | 93 | ### 13 Options for Grouping Actors ### 94 | 95 | + Use layers (usually used for visibility) 96 | + Use groups as a simple multi-select tool 97 | + Use tags, can be flexible but easy to forget 98 | + Use a parent Empty Actor, or a Folder 99 | + Group on game object (e.g. array on NPC) 100 | + The key is to know the pros and cons. 101 | 102 | ### 14 Blueprint Behaviour Tree Tasks ### 103 | 104 | + How to use Blackboard Key Selector variables 105 | + Creating new Tasks in Behaviour Trees 106 | + Pseudocode programming in Blueprint 107 | + How to use the Execute AI node 108 | + How to use the Finish Execute node. 109 | 110 | ### 15 Modular Arithmetic & Cycles ### 111 | 112 | 113 | 114 | ### 16 Performance Profiling 101 ### 115 | 116 | + The first rule of performance: “profile first” 117 | + Access profiler from Window > Developer Tools 118 | + Choose Session Front End 119 | + Select your running game session 120 | + Chose Profiler tab, and hit Data Preview 121 | + Search for your function and double-click. 122 | 123 | ### 17 C++ AI Behaviour Tree Tasks ### 124 | 125 | + Add “AIModule” and “GameplayTasks” to build 126 | + Inherit C++ class from **UBTTaskNode** 127 | + Override **ExecuteTask()** 128 | + Return **EBTNodeResult::Succeeded;** 129 | + Don’t try and extend in Blueprint 130 | + Use Blueprint XOR C++ for a given task. 131 | 132 | ### 18 Reading Blackboard Data in C++ ### 133 | 134 | + Expose a blackboard key selector in C++ 135 | + **#include “BehaviorTree/BlackboardComponent.h”** 136 | + **OwnerComp.GetBlackboardComponent()** 137 | + Use **GetValueAsInt()** etc to get the value 138 | + You can now access blackboard data in C++. 139 | 140 | ### 19 The Consequences of Inheritance ### 141 | 142 | + We have coupled our AI ChoseNextWaypoint task to the Third Person Character. 143 | + We have also specialised our Blueprint class with a variable, PatrolPoints. 144 | + These dependencies are undesirable, but we will proceed with our conversion. 145 | 146 | ### 20 Converting Blueprint to C++ ### 147 | 148 | + **OwnerComp.GetAIOwner()** to get AI Controller 149 | + If you’re casting, you’re probably coupling 150 | + Use **.Num()** to get number of elements in **TArray** 151 | + Use **TODO** for reminders, to help you FOCUS 152 | + FOCUS = Follow One Course Until Successful. 153 | 154 | ### 21 Composition over Inheritance ### 155 | 156 | + We created PatrollingGuard by inheritance 157 | + How about if we want a patrolling tank? 158 | + Another option is to use an actor component 159 | + This is an age-old debate 160 | + Let’s get some real-world experience of the two 161 | + Convert to a component model. 162 | 163 | ### 21b Talking Head: What We've Covered So Far ### 164 | 165 | + What we've covered recently 166 | + What's coming up. 167 | 168 | ### 22 How to Delete a C++ Class ### 169 | 170 | + Yes it should be easier than this, tell Epic! 171 | + How to remove CPP files from browser in Unreal 172 | + The process for deleting C++ classes. 173 | 174 | ### 23 Instanced Materials ### 175 | 176 | + Also called Material Instances 177 | + These allow modification with little overhead 178 | + How to create an instanced material. 179 | 180 | ### 24 Introducing AI Perception ### 181 | 182 | + Use AI Perception, it’s newer than Pawn Sensing 183 | + How to add AI Perception to your controller 184 | + Use the apostrophe key ‘ to enable AI debug 185 | + Remember Shift + F1, F8, F11 etc. 186 | 187 | ### 25 OnTargetPerceptionUpdated Event ### 188 | 189 | + Use the On Target Perception Updated event 190 | + This reports the actor sensed 191 | + And the class of the sense (e.g. sight, hearing) 192 | + How to setup perception events. 193 | 194 | ### 26 AI Hearing Perception in Unreal ### 195 | 196 | + Hearing is a sense that compliments sight 197 | + How to set up AI Perception hearing sense 198 | + How to get hearing perception to trigger 199 | + Making your actor create a noise. 200 | 201 | ### 27 The Animation Starter Pack ### 202 | 203 | + The skeleton comprises the bones 204 | + Over the skeleton lays a skeletal mesh 205 | + Each vertex of the mesh connects to bone(s) 206 | + The animation tells the bones how to move 207 | + The bones tell the mesh how to move 208 | + The Animation BP controls the animations. 209 | 210 | ### 28 Changing a Character’s Animation ### 211 | 212 | + How to change a mesh’s animation class 213 | + Matching the animation’s mesh to… 214 | + … the mesh selected on the character 215 | + You can apply instance changes to blueprint 216 | + However be careful what you take with you 217 | + Solving “can’t save… graph is linked” error. 218 | 219 | ### 29 Customising a Character Blueprint ### 220 | 221 | + You can start with a off-the-shelf blueprint 222 | + We can then add our reusable components 223 | + Another way of getting our desired character. 224 | 225 | ### 30 Sub Behaviour Trees ### 226 | 227 | + Behaviour trees can get complex 228 | + We want to keep a consistent level of abstraction 229 | + Behaviour trees can run “sub” trees 230 | + This helps us organise our project. 231 | 232 | ### 31 Talking Head - Introducing Sam ### 233 | 234 | + Congratulations on getting this far in the course. 235 | + Recapping the AI work we have done so far. 236 | + Introducing the new instructor for the section: Sam. 237 | 238 | ### 31b Talking Head - Refactoring Superpowers ### 239 | 240 | + Why refactoring is so important. 241 | + Refactor skills give you the edge. 242 | + What’s coming up in the next lectures. 243 | 244 | ### 32 Simplifying Our Project ### 245 | 246 | + Deleting and Moving folders. 247 | + Ensuring deletion on the file-system. 248 | + Good file structure for Unreal. 249 | + Viewing the dependencies of an object. 250 | + How and when to fix redirectors. 251 | 252 | ### 33 Renaming & Moving CPP ### 253 | 254 | + Renaming CPP files. 255 | + How to deal with renaming blueprint parents. 256 | + Refactor class names in CPP. 257 | + Updating .generated.h files. 258 | 259 | ### 34 Solution: Renaming & Moving CPP ### 260 | 261 | + Repeating the renaming process. 262 | + Finishing our refactor. 263 | + Fixing CDO Constructor errors. 264 | 265 | ### 35 Holding a Gun with Skeletal Sockets ### 266 | 267 | + Reading existing source code for hints. 268 | + Creating a socket on a skeletal mesh. 269 | + Parenting a gun to that socket. 270 | + Removing unused assets. 271 | 272 | ### 35b Understanding Animation Blueprints ### 273 | 274 | + The major components. 275 | + How to preview animations. 276 | + Definition of an animation and pose. 277 | + Understanding the AnimGraph. 278 | + Playing a custom animation. 279 | 280 | ### 36 Creating Animation State Machines ### 281 | 282 | + Why state machines? 283 | + What are state machines? 284 | + What’s inside a UE4 state? 285 | + How to add transitions. 286 | + Adding a shooting state. 287 | 288 | ### 37 Movement Blend Spaces ### 289 | 290 | + What is a blend space? 291 | + How to create a movement blend space. 292 | + Examining the existing Jog blend space. 293 | + Replicating for Ironsights. 294 | 295 | ### 38 Offset Animations ### 296 | 297 | + Creating an offset animation. 298 | + Applying an offset to a base. 299 | + Conditional blend nodes. 300 | 301 | ### 39 Aiming Blend Spaces Offsets ### 302 | 303 | + Aim offset assets. 304 | + 1D vs 2D Aim offsets. 305 | + Editing an existing animation sequence. 306 | 307 | ### 40 Rotating with SetFocalPoint() ### 308 | 309 | + Revising Behaviour Tree tasks. 310 | + Making our character face us. 311 | + Using AIController’s SetFocalPoint() 312 | 313 | ### 41 Character Movement vs Rotation ### 314 | 315 | + More code reading. 316 | + Jumping between files in Visual Studio. 317 | + Difference between movement and rotation. 318 | + Mapping out complex systems. 319 | 320 | ### 42 Control Rotation for Aim ### 321 | 322 | + Getting the control rotation. 323 | + Focus Actor vs Focal Point 324 | + Splitting rotators and setting pitch. 325 | + Controlling Animation BP properties. 326 | 327 | ### 43 Behaviour Tree Decorators ### 328 | 329 | + Creating a decorator. 330 | + Sequence vs Select nodes. 331 | + Aborting decorators early. 332 | + Clearing blackboard keys from blueprint. 333 | + Patrolling, agro and following. 334 | 335 | ### 44 Behaviour Tree Services ### 336 | 337 | + Using decorators vs services. 338 | + Creating a service. 339 | + Deeper into behaviour tree states. 340 | + How to implement suspicion. 341 | + Giving our character breathing space. 342 | + Comparing BP Validity and NULL. 343 | 344 | ### 45 Tweaking AI Behaviour ### 345 | 346 | + Preventing Behaviour Tree flicker. 347 | + Creating mutually exclusive states. 348 | 349 | ### 46 Debugging AI Behaviour ### 350 | 351 | + Viewing behaviour while playing. 352 | + Using tags on Actors. 353 | + Revising interrupting tasks. 354 | + Adding in multiple actors. 355 | 356 | ### 47 Refactoring to a Gun Actor ### 357 | 358 | + Create a Gun actor. 359 | + Move the firing code over. 360 | + Revising refactoring. 361 | 362 | ### 48 Attaching Actors to Components ### 363 | 364 | + Revise spawning child actors. 365 | + Attaching actors to sub-components. 366 | + Attachment rule to sockets. 367 | 368 | ### 49 Configuring the Gun ### 369 | 370 | + Playing montage animations. 371 | + Connecting to actors in code. 372 | + Finishing our refactor. 373 | 374 | ### 50 Moving Files from LFS to Git ### 375 | 376 | + The pros and cons of LFS. 377 | + How to move files from LFS. 378 | + Tracking folder instead of extensions. 379 | + Where tracking happens. 380 | 381 | ### 51 To LFS or Not to LFS? ### 382 | 383 | + The pros and cons of LFS. 384 | + Organising your project for clarity. 385 | + How to deal with .umap assets. 386 | 387 | ### 52 Child Actor Components ### 388 | 389 | + Previewing the gun with the skeleton. 390 | + Positioning the gun. 391 | + Child actors with Blueprint. 392 | + Using Child Actor Components. 393 | 394 | ### 52b Introduction to Inverse Kinematics ### 395 | 396 | + Local vs component-space poses. 397 | + Understanding bone-space. 398 | + The principles of IK. 399 | + End effectors and Joint targets. 400 | + Mapping to the Two Bone IK node. 401 | 402 | ### 53 Inverse Kinematics with Animations ### 403 | 404 | + Using the Two Bone IK node. 405 | + Effectors vs Joint targets 406 | 407 | ### 54 Comparing Blueprints with Diffs ### 408 | 409 | + Using UE4 built-in version control. 410 | + Diffing blueprints. 411 | + LFS vs Git assets in editor. 412 | 413 | ### 55 Boolean Blending for Aim States ### 414 | 415 | + Boolean blending in Unreal. 416 | + Setting variables in animation BP. 417 | + Making the AI aim. 418 | 419 | ### 56 Adding Firing Animations ### 420 | 421 | + When to use additive identities. 422 | + Blending additive animations. 423 | + Creating an additive firing animation. 424 | + Controlling firing from the AI. 425 | 426 | ### 57 Animation Notify Events ### 427 | 428 | + Synchronising sound and animation. 429 | + Creating custom notify events. 430 | + Hooking up our gun trigger to AI. 431 | 432 | ### 58 Taking Damage in Blueprint ### 433 | 434 | + Applying damage from a projectile. 435 | + Taking damage in a BP character. 436 | + Detaching a controller from a Pawn. 437 | 438 | ### 59 Death Animations and Refactors ### 439 | 440 | + Revision of BP refactoring. 441 | + Making our Animation BP clean. 442 | + Death animations on the AI. 443 | 444 | ### 60 Switching 1st and 3rd Person ### 445 | 446 | + Swapping out a 1st to 3rd person character. 447 | + Wrapping rotations. 448 | 449 | ### 61 Owner Invisible Meshes ### 450 | 451 | + Own See vs Owner no see meshes. 452 | + Why 1st person Meshes. 453 | + Hooking up Fire input in TPCharacter. 454 | 455 | ### 62 Separating Firing from Gun Meshes ### 456 | 457 | + Why we need two gun meshes. 458 | + Creating Blueprint components. 459 | + Scene components vs Actor components. 460 | + Camera rotation with control rotation. 461 | 462 | ### 63 Aiming Our 1st Person Camera ### 463 | 464 | + Local vs Global rotation. 465 | + UE4 optimizations for unpossesed characters. 466 | 467 | ### 64 Architecture of Infinite Runners ### 468 | 469 | + Using the Arrow component. 470 | + How to architect an infinite runner. 471 | + Overview of how we want our levels to work. 472 | 473 | ### 65 Spawning Terrain in the GameMode ### 474 | 475 | + GameMode BP vs Level BP 476 | + Creating a blueprint GameMode 477 | + How to spawn tiled terrain. 478 | + Using a blueprint for-loop. 479 | 480 | ### 66 Level Gating for Testing Grounds ### 481 | 482 | + Why we need level gating. 483 | + Our approach to gating. 484 | + Enabling/disabling collisions. 485 | 486 | ### 67 Swapping Materials in Blueprint ### 487 | 488 | + Creating material instances. 489 | + Exposing material parameters. 490 | + Swapping materials in blueprint. 491 | + Adding affordance to our barriers. 492 | 493 | ### 68 Garbage Collecting Previous Tiles ### 494 | 495 | + When to delete previous tiles. 496 | + How to get hold of the Game Mode. 497 | + Spawning new tiles when needed. 498 | + Keeping the minimal tiles in memory. 499 | 500 | ### 69 Merging Our TP and FP Files ### 501 | 502 | + Fix camera glitch while strafing. 503 | + Merge the NPC and Player folders. 504 | + Revise redirectors. 505 | + Revise folder movement and deletion. 506 | 507 | ### 70 Hit vs Overlap Events ### 508 | 509 | + Debug a projectile spawn issue. 510 | + Overview the collision system. 511 | + Understand hit and overlap notifications. 512 | + Review different Collision Presets 513 | 514 | ### 71 Dynamically Calculating NavMesh ### 515 | 516 | + NavMesh and procedural terrain. 517 | + Dynamic NavMesh generation. 518 | + When LFS shouldn’t be used. 519 | 520 | ### 72 Keep It Simple Stupid ### 521 | 522 | + Make the player tough for testing. 523 | + Deeply understand the AI system. 524 | + When is code too complex to debug? 525 | + Write high level pseudo code. 526 | 527 | ### 73 Parallel Behaviour Tree Tasks ### 528 | 529 | + Parallel actions in Behaviour Trees. 530 | + Pseudocode-lead refactoring. 531 | + Aborting lower priority with decorators. 532 | + Organising conditional Behaviour Trees. 533 | 534 | ### 74 Custom BT Tasks and Decorators ### 535 | 536 | + Implementing a conditional decorator. 537 | + Custom task nodes. 538 | + Clean up when task node is aborted. 539 | 540 | ### 75 External Build Data in 4.14+ ### 541 | 542 | + Updating to 4.15.0 543 | + Storing build data outside of .umaps. 544 | 545 | ### 76 Physical Gun Architecture ### 546 | 547 | + Renaming to style guide 548 | + Problems of our existing architecture 549 | + Improved gun-centric architecture 550 | + Challenge: reinstating the gun actor. 551 | 552 | ### 77 Converting a Character BP to C++ ### 553 | 554 | + Creating and reparenting a character 555 | + Challenge: Converting the component hierarchy 556 | + Reviewing my Mannequin.cpp 557 | 558 | ### 78 Who’s Pulled the Trigger? ### 559 | 560 | + Reviewing the architecture 561 | + Revision: binding input in C++ 562 | + Challenge 563 | + Remove firing from Animation BP 564 | + Control trigger from AI 565 | 566 | ### 79 Cooldown Nodes & Gameplay Tags ### 567 | 568 | + How cooldown nodes work. 569 | + Adding gameplay tags. 570 | + Challenge: Let the AI Cooldown 571 | + Randomised burst of fire. 572 | + Separated into sub-behaviour trees. 573 | 574 | ### 80 Animation Montages and Slots ### 575 | 576 | + What is an animation slot? 577 | + How to blend by root bone. 578 | + "Caching" a pose. 579 | + Challenge: Create and Play Firing Montage 580 | 581 | ### 81 Reattaching the Gun ### 582 | 583 | + Attach gun to correct mesh if player 584 | + Reattach gun when player dies 585 | + Challenge: Play Two Montages 586 | 587 | ### 82 Procedural Level Generation ### 588 | 589 | + Importing asset pack. 590 | + Introduction to procedural terrain. 591 | + Creating ground mesh from BSP. 592 | + Challenge: creating spawnable props. 593 | 594 | ### 83 Generating Random Numbers ### 595 | 596 | + Create a Tile C++ class. 597 | + Expose a UFunction to spawn actors. 598 | + Functions to generate random data. 599 | + Challenge: generate a random spawn point. 600 | 601 | ### 84 Spawning Actors in the Tile ### 602 | 603 | + Spawn an actor. 604 | + Randomise the number of actors. 605 | + Challenge: place the actors correctly. 606 | 607 | ### 85 Sphere Casting in C++ ### 608 | 609 | + What is a Sweep? 610 | + How to Sphere Cast in C++. 611 | + Challenge: visualise the cast. 612 | 613 | ### 86 Configure Custom Trace Channels ### 614 | 615 | + Creating a Trace Channel. 616 | + Where to configure presets. 617 | + Challenge: make it trace green. 618 | 619 | ### 87 Spawning into Free Space ### 620 | 621 | + Writing an actor spawning algorithm. 622 | + Challenge: generate empty space. 623 | + Converting from local to global positions. 624 | 625 | ### 88 Randomising Rotation & Scale ### 626 | 627 | + Adding randomised rotation. 628 | + Challenge: add randomised scale. 629 | + Tweaking the spawn radii. 630 | 631 | ### 89 Flyweight Pattern for Foliage ### 632 | 633 | + Flyweight pattern for rendering 634 | + Adding LOD for foliage. 635 | + Challenge: spawn grass instances. 636 | + Reviewing my code. 637 | + Configuring my component. 638 | 639 | ### 90 Choosing Waypoint with EQS ### 640 | 641 | + Outline of EQS. 642 | + Enabling EQS. 643 | + Creating and testing queries. 644 | + CHALLENGE: Create a Waypoint Query. 645 | 646 | ### 91 Find Actors of Type from C++ ### 647 | 648 | + Overviewing the navigation issue. 649 | + Getting hold of existing objects. 650 | + CHALLENGE: Finding NavMeshBoundsVolumes 651 | 652 | ### 92 Plumbing an Actor Pool Setup ### 653 | 654 | + Actor Pool architecture. 655 | + Creating the Actor Pool Component. 656 | + CHALLENGE: Plumb the Pool. 657 | 658 | ### 93 Using the Pool API ### 659 | 660 | + Using the Checkout API 661 | + Overview of object lifecycle 662 | + CHALLENGE: Return to Pool 663 | + Populate the initial pool. 664 | 665 | ### 94 Using TArray for Pools ### 666 | 667 | + Implementing checkout. 668 | + Challenge: Implement return and add. 669 | 670 | ### 95 Rebuilding Navigation Meshes ### 671 | 672 | + Rebuilding the Navigation. 673 | + Offset the NavMeshBoundsVolumes. 674 | + CHALLENGE: Spawn on destroy. 675 | 676 | ### 96 Structs to Simplify Function Args ### 677 | 678 | + The AI spawning problem. 679 | + Combining parameters as structs. 680 | + CHALLENGE: SpawnPosition Generator Function. 681 | 682 | ### 97 Spawning AI from C++ ### 683 | 684 | + How to spawn AI. 685 | + PlaceAIPawns definition. 686 | + CHALLENGE: spawn AI in the world. 687 | 688 | ### 98 Keeping Score ### 689 | 690 | + Adding a GameMode Score. 691 | + CHALLENGE: Notify on Tile Conquered 692 | 693 | ### 98b Understanding Function Templates ### 694 | 695 | + What is a template. 696 | + When would you use one? 697 | + What is the syntax for functions. 698 | 699 | ### 98c Template Specialization ### 700 | 701 | + When copy and paste isn’t enough. 702 | + How to handle tricky types. 703 | 704 | ### 98d Fixing Double Spawning ### 705 | 706 | + Fixing out spawn issue. 707 | + When static polymorphism isn't enough. 708 | + How to use templates in classes. 709 | + Caveats to using templates in C++ 710 | 711 | ### 99 Using the HUD Class ### 712 | 713 | + Extending the HUD class 714 | + Why use the HUD class 715 | + CHALLENGE: Create the scoring UI 716 | 717 | ### 100 Post Processing for Tunnel Vision ### 718 | 719 | + Adding PostProcessing Effects 720 | + CHALLENGE: Ease in on Damage 721 | 722 | ### 101 Recruiting Play Testers ### 723 | 724 | + Sharing your game 725 | + CHALLENGE: Recruit Some Testers 726 | + Changing the lighting 727 | + Firing lasers 728 | + Improving score UI 729 | + Shorter blackout effect 730 | 731 | ### 102 Smooth Blending the Camera ### 732 | 733 | + Making death easier 734 | + How the camera works 735 | + Overview of SetViewTargetWithBlend 736 | + CHALLENGE: Smooth Blend the Camera 737 | 738 | ### 103 Possessing and the View Target ### 739 | 740 | + Unpossing with View Targets 741 | + Auto managed View Targets 742 | + CHALLENGE: Manually Manage the View Target 743 | 744 | ### 104 The Calm Before The Storm ### 745 | 746 | + Peace before the storm 747 | + CHALLENGE 1: Fix the crashing issue 748 | + CHALLENGE 2: Make the Actors spawn 749 | + Parametrise the enemy count 750 | + BONUS: Fixing multiple camera transitions 751 | 752 | ### XXX Testing Grounds Wrap-up ### 753 | 754 | + WELL DONE, over 50h of content 755 | + You've got a great understanding of Unreal 756 | + Your C++ knowledge is transferrable 757 | + Improve with: more weapons, pick-ups, progression 758 | + Please share screenshots / 20s video with community. 759 | -------------------------------------------------------------------------------- /S05_TestingGrounds.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "4.19", 4 | "Category": "", 5 | "Description": "", 6 | "Modules": [ 7 | { 8 | "Name": "S05_TestingGrounds", 9 | "Type": "Runtime", 10 | "LoadingPhase": "Default", 11 | "AdditionalDependencies": [ 12 | "AIModule", 13 | "Engine" 14 | ] 15 | } 16 | ], 17 | "Plugins": [ 18 | { 19 | "Name": "OculusInput", 20 | "Enabled": false 21 | }, 22 | { 23 | "Name": "OculusLibrary", 24 | "Enabled": false 25 | }, 26 | { 27 | "Name": "OculusRift", 28 | "Enabled": false 29 | }, 30 | { 31 | "Name": "SteamVR", 32 | "Enabled": false 33 | }, 34 | { 35 | "Name": "GearVR", 36 | "Enabled": false 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class S05_TestingGroundsTarget : TargetRules 7 | { 8 | public S05_TestingGroundsTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Game; 11 | ExtraModuleNames.Add("S05_TestingGrounds"); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/ActorPool.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "ActorPool.h" 5 | 6 | 7 | // Sets default values for this component's properties 8 | UActorPool::UActorPool() 9 | { 10 | // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features 11 | // off to improve performance if you don't need them. 12 | PrimaryComponentTick.bCanEverTick = true; 13 | 14 | // ... 15 | } 16 | 17 | AActor* UActorPool::Checkout() 18 | { 19 | if (Pool.Num() == 0) 20 | { 21 | return nullptr; 22 | } 23 | return Pool.Pop(); 24 | } 25 | 26 | void UActorPool::Return(AActor* ActorToReturn) 27 | { 28 | Add(ActorToReturn); 29 | } 30 | 31 | void UActorPool::Add(AActor* ActorToAdd) 32 | { 33 | Pool.Push(ActorToAdd); 34 | } 35 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/ActorPool.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "Components/ActorComponent.h" 6 | #include "ActorPool.generated.h" 7 | 8 | 9 | UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) 10 | class S05_TESTINGGROUNDS_API UActorPool : public UActorComponent 11 | { 12 | GENERATED_BODY() 13 | 14 | public: 15 | // Sets default values for this component's properties 16 | UActorPool(); 17 | 18 | AActor* Checkout(); 19 | void Return(AActor* ActorToReturn); 20 | 21 | void Add(AActor* ActorToAdd); 22 | 23 | private: 24 | TArray Pool; 25 | }; 26 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Character/Mannequin.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "Mannequin.h" 5 | #include "../Weapons/Gun.h" 6 | 7 | 8 | // Sets default values 9 | AMannequin::AMannequin() 10 | { 11 | // Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it. 12 | PrimaryActorTick.bCanEverTick = true; 13 | 14 | // Create a CameraComponent 15 | FirstPersonCameraComponent = CreateDefaultSubobject(TEXT("FirstPersonCamera")); 16 | FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent()); 17 | FirstPersonCameraComponent->RelativeLocation = FVector(-39.56f, 1.75f, 64.f); // Position the camera 18 | FirstPersonCameraComponent->bUsePawnControlRotation = true; 19 | 20 | // Create a mesh component that will be used when being viewed from a '1st person' view (when controlling this pawn) 21 | Mesh1P = CreateDefaultSubobject(TEXT("CharacterMesh1P")); 22 | Mesh1P->SetOnlyOwnerSee(true); 23 | Mesh1P->SetupAttachment(FirstPersonCameraComponent); 24 | Mesh1P->bCastDynamicShadow = false; 25 | Mesh1P->CastShadow = false; 26 | Mesh1P->RelativeRotation = FRotator(1.9f, -19.19f, 5.2f); 27 | Mesh1P->RelativeLocation = FVector(-0.5f, -4.4f, -155.7f); 28 | } 29 | 30 | // Called when the game starts or when spawned 31 | void AMannequin::BeginPlay() 32 | { 33 | Super::BeginPlay(); 34 | if (GunBlueprint == nullptr) { 35 | UE_LOG(LogTemp, Warning, TEXT("Gun blueprint missing.")); 36 | return; 37 | } 38 | 39 | Gun = GetWorld()->SpawnActor(GunBlueprint); 40 | 41 | //Attach gun mesh component to Skeleton, doing it here because the skelton is not yet created in the constructor 42 | if (IsPlayerControlled()) { 43 | Gun->AttachToComponent(Mesh1P, FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true), TEXT("GripPoint")); 44 | } 45 | else { 46 | Gun->AttachToComponent(GetMesh(), FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true), TEXT("GripPoint_0")); 47 | } 48 | 49 | Gun->AnimInstance1P = Mesh1P->GetAnimInstance(); 50 | Gun->AnimInstance3P = GetMesh()->GetAnimInstance(); 51 | 52 | if (InputComponent != nullptr) { 53 | InputComponent->BindAction("Fire", IE_Pressed, this, &AMannequin::PullTrigger); 54 | } 55 | } 56 | 57 | // Called every frame 58 | void AMannequin::Tick(float DeltaTime) 59 | { 60 | Super::Tick(DeltaTime); 61 | 62 | } 63 | 64 | // Called to bind functionality to input 65 | void AMannequin::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) 66 | { 67 | Super::SetupPlayerInputComponent(PlayerInputComponent); 68 | } 69 | 70 | void AMannequin::UnPossessed() { 71 | Super::UnPossessed(); 72 | Gun->AttachToComponent(GetMesh(), FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true), TEXT("GripPoint_0")); 73 | } 74 | 75 | void AMannequin::PullTrigger() 76 | { 77 | Gun->OnFire(); 78 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Character/Mannequin.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "GameFramework/Character.h" 6 | #include "Mannequin.generated.h" 7 | 8 | UCLASS() 9 | class S05_TESTINGGROUNDS_API AMannequin : public ACharacter 10 | { 11 | GENERATED_BODY() 12 | 13 | public: 14 | // Sets default values for this character's properties 15 | AMannequin(); 16 | 17 | protected: 18 | // Called when the game starts or when spawned 19 | virtual void BeginPlay() override; 20 | 21 | public: 22 | // Called every frame 23 | virtual void Tick(float DeltaTime) override; 24 | 25 | // Called to bind functionality to input 26 | virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override; 27 | 28 | virtual void UnPossessed() override; 29 | 30 | UPROPERTY(EditDefaultsOnly, Category = "Setup") 31 | TSubclassOf GunBlueprint; 32 | 33 | UFUNCTION(BlueprintCallable, Category = "Weapon") 34 | void PullTrigger(); 35 | 36 | private: 37 | /** Pawn mesh: 1st person view (arms; seen only by self) */ 38 | UPROPERTY(VisibleDefaultsOnly, Category = Mesh) 39 | class USkeletalMeshComponent* Mesh1P; 40 | 41 | /** First person camera */ 42 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true")) 43 | class UCameraComponent* FirstPersonCameraComponent; 44 | 45 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true")) 46 | AGun* Gun; 47 | 48 | }; -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/InfiniteTerrainGameMode.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "InfiniteTerrainGameMode.h" 5 | #include "AI/Navigation/NavMeshBoundsVolume.h" 6 | #include "EngineUtils.h" 7 | #include "ActorPool.h" 8 | 9 | AInfiniteTerrainGameMode::AInfiniteTerrainGameMode() 10 | { 11 | NavMeshBoundsVolumePool = CreateDefaultSubobject(FName("Nav Mesh Bounds Volume Pool")); 12 | } 13 | 14 | void AInfiniteTerrainGameMode::PopulateBoundsVolumePool() 15 | { 16 | auto VolumeIterator = TActorIterator(GetWorld()); 17 | while (VolumeIterator) 18 | { 19 | AddToPool(*VolumeIterator); 20 | ++VolumeIterator; 21 | } 22 | } 23 | 24 | 25 | void AInfiniteTerrainGameMode::AddToPool(ANavMeshBoundsVolume *VolumeToAdd) 26 | { 27 | NavMeshBoundsVolumePool->Add(VolumeToAdd); 28 | } 29 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/InfiniteTerrainGameMode.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "S05_TestingGroundsGameMode.h" 6 | #include "InfiniteTerrainGameMode.generated.h" 7 | 8 | /** 9 | * 10 | */ 11 | UCLASS() 12 | class S05_TESTINGGROUNDS_API AInfiniteTerrainGameMode : public AS05_TestingGroundsGameMode 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | AInfiniteTerrainGameMode(); 18 | 19 | UFUNCTION(BlueprintCallable, Category = "Bounds Pool") 20 | void PopulateBoundsVolumePool(); 21 | 22 | protected: 23 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Pool") 24 | class UActorPool* NavMeshBoundsVolumePool; 25 | 26 | private: 27 | void AddToPool(class ANavMeshBoundsVolume *VolumeToAdd); 28 | 29 | }; 30 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/NPC/ChooseNextWaypoint.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "ChooseNextWaypoint.h" 5 | #include "AIController.h" 6 | #include "PatrolRoute.h" 7 | #include "BehaviorTree/BlackboardComponent.h" 8 | 9 | EBTNodeResult::Type UChooseNextWaypoint::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) 10 | { 11 | // Get the patrol route 12 | auto ControlledPawn = OwnerComp.GetAIOwner()->GetPawn(); 13 | auto PatrolRoute = ControlledPawn->FindComponentByClass(); 14 | if (!ensure(PatrolRoute)) { return EBTNodeResult::Failed; } 15 | 16 | // Warn about empty patrol routes 17 | auto PatrolPoints = PatrolRoute->GetPatrolPoints(); 18 | if (PatrolPoints.Num() == 0) 19 | { 20 | UE_LOG(LogTemp, Warning, TEXT("A guard is missing patrol points")); 21 | return EBTNodeResult::Failed; 22 | } 23 | 24 | // Set next waypoint 25 | auto BlackboardComp = OwnerComp.GetBlackboardComponent(); 26 | auto Index = BlackboardComp->GetValueAsInt(IndexKey.SelectedKeyName); 27 | BlackboardComp->SetValueAsObject(WaypointKey.SelectedKeyName, PatrolPoints[Index]); 28 | 29 | // Cycle the index 30 | auto NextIndex = (Index + 1) % PatrolPoints.Num(); 31 | BlackboardComp->SetValueAsInt(IndexKey.SelectedKeyName, NextIndex); 32 | 33 | return EBTNodeResult::Succeeded; 34 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/NPC/ChooseNextWaypoint.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "BehaviorTree/BTTaskNode.h" 6 | #include "ChooseNextWaypoint.generated.h" 7 | 8 | /** 9 | * 10 | */ 11 | UCLASS() 12 | class S05_TESTINGGROUNDS_API UChooseNextWaypoint : public UBTTaskNode 13 | { 14 | GENERATED_BODY() 15 | 16 | virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override; 17 | 18 | protected: 19 | UPROPERTY(EditAnywhere, Category = "Blackboard") 20 | struct FBlackboardKeySelector IndexKey; 21 | 22 | UPROPERTY(EditAnywhere, Category = "Blackboard") 23 | struct FBlackboardKeySelector WaypointKey; 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/NPC/PatrolRoute.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "PatrolRoute.h" 5 | 6 | TArray UPatrolRoute::GetPatrolPoints() const 7 | { 8 | return PatrolPoints; 9 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/NPC/PatrolRoute.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "Components/ActorComponent.h" 6 | #include "PatrolRoute.generated.h" 7 | 8 | /** 9 | * A "route card" to help AI choose their next waypoint 10 | */ 11 | UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) ) 12 | class S05_TESTINGGROUNDS_API UPatrolRoute : public UActorComponent 13 | { 14 | GENERATED_BODY() 15 | 16 | public: 17 | TArray GetPatrolPoints() const; 18 | 19 | private: 20 | UPROPERTY(EditInstanceOnly, Category = "Patrol Route") 21 | TArray PatrolPoints; 22 | 23 | }; 24 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Player/FirstPersonCharacter.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "FirstPersonCharacter.h" 5 | #include "GameFramework/InputSettings.h" 6 | #include "../Weapons/Gun.h" 7 | 8 | DEFINE_LOG_CATEGORY_STATIC(LogFPChar, Warning, All); 9 | 10 | ////////////////////////////////////////////////////////////////////////// 11 | // AFirstPersonCharacter 12 | 13 | AFirstPersonCharacter::AFirstPersonCharacter() 14 | { 15 | // Set size for collision capsule 16 | GetCapsuleComponent()->InitCapsuleSize(55.f, 96.0f); 17 | 18 | // set our turn rates for input 19 | BaseTurnRate = 45.f; 20 | BaseLookUpRate = 45.f; 21 | 22 | // Create a CameraComponent 23 | FirstPersonCameraComponent = CreateDefaultSubobject(TEXT("FirstPersonCamera")); 24 | FirstPersonCameraComponent->SetupAttachment(GetCapsuleComponent()); 25 | FirstPersonCameraComponent->RelativeLocation = FVector(-39.56f, 1.75f, 64.f); // Position the camera 26 | FirstPersonCameraComponent->bUsePawnControlRotation = true; 27 | 28 | // Create a mesh component that will be used when being viewed from a '1st person' view (when controlling this pawn) 29 | Mesh1P = CreateDefaultSubobject(TEXT("CharacterMesh1P")); 30 | Mesh1P->SetOnlyOwnerSee(true); 31 | Mesh1P->SetupAttachment(FirstPersonCameraComponent); 32 | Mesh1P->bCastDynamicShadow = false; 33 | Mesh1P->CastShadow = false; 34 | Mesh1P->RelativeRotation = FRotator(1.9f, -19.19f, 5.2f); 35 | Mesh1P->RelativeLocation = FVector(-0.5f, -4.4f, -155.7f); 36 | 37 | // Default offset from the character location for projectiles to spawn 38 | GunOffset = FVector(100.0f, 30.0f, 10.0f); 39 | 40 | // Note: The ProjectileClass and the skeletal mesh/anim blueprints for Mesh1P are set in the 41 | // derived blueprint asset named MyCharacter (to avoid direct content references in C++) 42 | } 43 | 44 | void AFirstPersonCharacter::BeginPlay() 45 | { 46 | // Call the base class 47 | Super::BeginPlay(); 48 | 49 | if (GunBlueprint == NULL) { 50 | UE_LOG(LogTemp, Warning, TEXT("Gun blueprint missing.")); 51 | return; 52 | } 53 | Gun = GetWorld()->SpawnActor(GunBlueprint); 54 | Gun->AttachToComponent(Mesh1P, FAttachmentTransformRules(EAttachmentRule::SnapToTarget, true), TEXT("GripPoint")); //Attach gun mesh component to Skeleton, doing it here because the skelton is not yet created in the constructor 55 | Gun->AnimInstance1P = Mesh1P->GetAnimInstance(); 56 | if (EnableTouchscreenMovement(InputComponent) == false) 57 | { 58 | InputComponent->BindAction("Fire", IE_Pressed, Gun, &AGun::OnFire); 59 | } 60 | } 61 | 62 | ////////////////////////////////////////////////////////////////////////// 63 | // Input 64 | 65 | void AFirstPersonCharacter::SetupPlayerInputComponent(class UInputComponent* InputComponent) 66 | { 67 | // set up gameplay key bindings 68 | check(InputComponent); 69 | 70 | InputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump); 71 | InputComponent->BindAction("Jump", IE_Released, this, &ACharacter::StopJumping); 72 | 73 | //InputComponent->BindTouch(EInputEvent::IE_Pressed, this, &AFirstPersonCharacter::TouchStarted); 74 | InputComponent->BindAxis("MoveForward", this, &AFirstPersonCharacter::MoveForward); 75 | InputComponent->BindAxis("MoveRight", this, &AFirstPersonCharacter::MoveRight); 76 | 77 | // We have 2 versions of the rotation bindings to handle different kinds of devices differently 78 | // "turn" handles devices that provide an absolute delta, such as a mouse. 79 | // "turnrate" is for devices that we choose to treat as a rate of change, such as an analog joystick 80 | InputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput); 81 | InputComponent->BindAxis("TurnRate", this, &AFirstPersonCharacter::TurnAtRate); 82 | InputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput); 83 | InputComponent->BindAxis("LookUpRate", this, &AFirstPersonCharacter::LookUpAtRate); 84 | } 85 | 86 | 87 | 88 | void AFirstPersonCharacter::BeginTouch(const ETouchIndex::Type FingerIndex, const FVector Location) 89 | { 90 | if (TouchItem.bIsPressed == true) 91 | { 92 | return; 93 | } 94 | TouchItem.bIsPressed = true; 95 | TouchItem.FingerIndex = FingerIndex; 96 | TouchItem.Location = Location; 97 | TouchItem.bMoved = false; 98 | } 99 | 100 | void AFirstPersonCharacter::EndTouch(const ETouchIndex::Type FingerIndex, const FVector Location) 101 | { 102 | if (TouchItem.bIsPressed == false) 103 | { 104 | return; 105 | } 106 | if ((FingerIndex == TouchItem.FingerIndex) && (TouchItem.bMoved == false)) 107 | { 108 | //OnFire(); 109 | } 110 | TouchItem.bIsPressed = false; 111 | } 112 | 113 | void AFirstPersonCharacter::TouchUpdate(const ETouchIndex::Type FingerIndex, const FVector Location) 114 | { 115 | if ((TouchItem.bIsPressed == true) && (TouchItem.FingerIndex == FingerIndex)) 116 | { 117 | if (TouchItem.bIsPressed) 118 | { 119 | if (GetWorld() != nullptr) 120 | { 121 | UGameViewportClient* ViewportClient = GetWorld()->GetGameViewport(); 122 | if (ViewportClient != nullptr) 123 | { 124 | FVector MoveDelta = Location - TouchItem.Location; 125 | FVector2D ScreenSize; 126 | ViewportClient->GetViewportSize(ScreenSize); 127 | FVector2D ScaledDelta = FVector2D(MoveDelta.X, MoveDelta.Y) / ScreenSize; 128 | if (FMath::Abs(ScaledDelta.X) >= 4.0 / ScreenSize.X) 129 | { 130 | TouchItem.bMoved = true; 131 | float Value = ScaledDelta.X * BaseTurnRate; 132 | AddControllerYawInput(Value); 133 | } 134 | if (FMath::Abs(ScaledDelta.Y) >= 4.0 / ScreenSize.Y) 135 | { 136 | TouchItem.bMoved = true; 137 | float Value = ScaledDelta.Y * BaseTurnRate; 138 | AddControllerPitchInput(Value); 139 | } 140 | TouchItem.Location = Location; 141 | } 142 | TouchItem.Location = Location; 143 | } 144 | } 145 | } 146 | } 147 | 148 | void AFirstPersonCharacter::MoveForward(float Value) 149 | { 150 | if (Value != 0.0f) 151 | { 152 | // add movement in that direction 153 | AddMovementInput(GetActorForwardVector(), Value); 154 | } 155 | } 156 | 157 | void AFirstPersonCharacter::MoveRight(float Value) 158 | { 159 | if (Value != 0.0f) 160 | { 161 | // add movement in that direction 162 | AddMovementInput(GetActorRightVector(), Value); 163 | } 164 | } 165 | 166 | void AFirstPersonCharacter::TurnAtRate(float Rate) 167 | { 168 | // calculate delta for this frame from the rate information 169 | AddControllerYawInput(Rate * BaseTurnRate * GetWorld()->GetDeltaSeconds()); 170 | } 171 | 172 | void AFirstPersonCharacter::LookUpAtRate(float Rate) 173 | { 174 | // calculate delta for this frame from the rate information 175 | AddControllerPitchInput(Rate * BaseLookUpRate * GetWorld()->GetDeltaSeconds()); 176 | } 177 | 178 | bool AFirstPersonCharacter::EnableTouchscreenMovement(class UInputComponent* InputComponent) 179 | { 180 | bool bResult = false; 181 | if (FPlatformMisc::GetUseVirtualJoysticks() || GetDefault()->bUseMouseForTouch) 182 | { 183 | bResult = true; 184 | InputComponent->BindTouch(EInputEvent::IE_Pressed, this, &AFirstPersonCharacter::BeginTouch); 185 | InputComponent->BindTouch(EInputEvent::IE_Released, this, &AFirstPersonCharacter::EndTouch); 186 | InputComponent->BindTouch(EInputEvent::IE_Repeat, this, &AFirstPersonCharacter::TouchUpdate); 187 | } 188 | return bResult; 189 | } 190 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Player/FirstPersonCharacter.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | #pragma once 3 | #include "GameFramework/Character.h" 4 | #include "FirstPersonCharacter.generated.h" 5 | 6 | class UInputComponent; 7 | 8 | UCLASS(config=Game) 9 | class AFirstPersonCharacter : public ACharacter 10 | { 11 | GENERATED_BODY() 12 | 13 | /** Pawn mesh: 1st person view (arms; seen only by self) */ 14 | UPROPERTY(VisibleDefaultsOnly, Category=Mesh) 15 | class USkeletalMeshComponent* Mesh1P; 16 | 17 | /** First person camera */ 18 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true")) 19 | class UCameraComponent* FirstPersonCameraComponent; 20 | public: 21 | AFirstPersonCharacter(); 22 | 23 | virtual void BeginPlay(); 24 | 25 | /** Base turn rate, in deg/sec. Other scaling may affect final turn rate. */ 26 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Camera) 27 | float BaseTurnRate; 28 | 29 | /** Base look up/down rate, in deg/sec. Other scaling may affect final rate. */ 30 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=Camera) 31 | float BaseLookUpRate; 32 | 33 | /** Gun muzzle's offset from the characters location */ 34 | UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Gameplay) 35 | FVector GunOffset; 36 | 37 | UPROPERTY(EditDefaultsOnly, Category = "Setup") 38 | TSubclassOf GunBlueprint; 39 | 40 | private: 41 | 42 | AGun* Gun; 43 | 44 | protected: 45 | 46 | /** Handles moving forward/backward */ 47 | void MoveForward(float Val); 48 | 49 | /** Handles stafing movement, left and right */ 50 | void MoveRight(float Val); 51 | 52 | /** 53 | * Called via input to turn at a given rate. 54 | * @param Rate This is a normalized rate, i.e. 1.0 means 100% of desired turn rate 55 | */ 56 | void TurnAtRate(float Rate); 57 | 58 | /** 59 | * Called via input to turn look up/down at a given rate. 60 | * @param Rate This is a normalized rate, i.e. 1.0 means 100% of desired turn rate 61 | */ 62 | void LookUpAtRate(float Rate); 63 | 64 | struct TouchData 65 | { 66 | TouchData() { bIsPressed = false;Location=FVector::ZeroVector;} 67 | bool bIsPressed; 68 | ETouchIndex::Type FingerIndex; 69 | FVector Location; 70 | bool bMoved; 71 | }; 72 | void BeginTouch(const ETouchIndex::Type FingerIndex, const FVector Location); 73 | void EndTouch(const ETouchIndex::Type FingerIndex, const FVector Location); 74 | void TouchUpdate(const ETouchIndex::Type FingerIndex, const FVector Location); 75 | TouchData TouchItem; 76 | 77 | protected: 78 | // APawn interface 79 | virtual void SetupPlayerInputComponent(UInputComponent* InputComponent) override; 80 | // End of APawn interface 81 | 82 | /* 83 | * Configures input for touchscreen devices if there is a valid touch interface for doing so 84 | * 85 | * @param InputComponent The input component pointer to bind controls to 86 | * @returns true if touch controls were enabled. 87 | */ 88 | bool EnableTouchscreenMovement(UInputComponent* InputComponent); 89 | 90 | public: 91 | /** Returns Mesh1P subobject **/ 92 | FORCEINLINE class USkeletalMeshComponent* GetMesh1P() const { return Mesh1P; } 93 | /** Returns FirstPersonCameraComponent subobject **/ 94 | FORCEINLINE class UCameraComponent* GetFirstPersonCameraComponent() const { return FirstPersonCameraComponent; } 95 | 96 | }; 97 | 98 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGrounds.Build.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | 5 | public class S05_TestingGrounds : ModuleRules 6 | { 7 | public S05_TestingGrounds(ReadOnlyTargetRules Target) : base(Target) 8 | { 9 | PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "AIModule", "GameplayTasks" }); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGrounds.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "S05_TestingGrounds.h" 4 | 5 | 6 | IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, S05_TestingGrounds, "S05_TestingGrounds" ); 7 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGrounds.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | #ifndef __S05_TESTINGGROUNDS_H__ 4 | #define __S05_TESTINGGROUNDS_H__ 5 | 6 | #include "EngineMinimal.h" 7 | 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGroundsGameMode.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "S05_TestingGroundsGameMode.h" 5 | #include "S05_TestingGroundsHUD.h" 6 | #include "Player/FirstPersonCharacter.h" 7 | 8 | AS05_TestingGroundsGameMode::AS05_TestingGroundsGameMode() 9 | : Super() 10 | { 11 | // set default pawn class to our Blueprinted character 12 | static ConstructorHelpers::FClassFinder PlayerPawnClassFinder(TEXT("/Game/Dynamic/Character/Behaviour/Character")); 13 | DefaultPawnClass = PlayerPawnClassFinder.Class; 14 | 15 | // use our custom HUD class 16 | HUDClass = AS05_TestingGroundsHUD::StaticClass(); 17 | } 18 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGroundsGameMode.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | #pragma once 3 | #include "GameFramework/GameMode.h" 4 | #include "S05_TestingGroundsGameMode.generated.h" 5 | 6 | UCLASS(minimalapi) 7 | class AS05_TestingGroundsGameMode : public AGameMode 8 | { 9 | GENERATED_BODY() 10 | 11 | public: 12 | AS05_TestingGroundsGameMode(); 13 | }; 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGroundsHUD.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "S05_TestingGroundsHUD.h" 5 | #include "Engine/Canvas.h" 6 | #include "TextureResource.h" 7 | #include "CanvasItem.h" 8 | 9 | AS05_TestingGroundsHUD::AS05_TestingGroundsHUD() 10 | { 11 | // Set the crosshair texture 12 | static ConstructorHelpers::FObjectFinder CrosshiarTexObj(TEXT("/Game/Static/Player/Textures/FirstPersonCrosshair")); 13 | CrosshairTex = CrosshiarTexObj.Object; 14 | } 15 | 16 | 17 | void AS05_TestingGroundsHUD::DrawHUD() 18 | { 19 | Super::DrawHUD(); 20 | 21 | // Draw very simple crosshair 22 | 23 | // find center of the Canvas 24 | const FVector2D Center(Canvas->ClipX * 0.5f, Canvas->ClipY * 0.5f); 25 | 26 | // offset by half the texture's dimensions so that the center of the texture aligns with the center of the Canvas 27 | const FVector2D CrosshairDrawPosition( (Center.X), 28 | (Center.Y)); 29 | 30 | // draw the crosshair 31 | FCanvasTileItem TileItem( CrosshairDrawPosition, CrosshairTex->Resource, FLinearColor::White); 32 | TileItem.BlendMode = SE_BLEND_Translucent; 33 | Canvas->DrawItem( TileItem ); 34 | } 35 | 36 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/S05_TestingGroundsHUD.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | #pragma once 3 | #include "GameFramework/HUD.h" 4 | #include "S05_TestingGroundsHUD.generated.h" 5 | 6 | UCLASS() 7 | class AS05_TestingGroundsHUD : public AHUD 8 | { 9 | GENERATED_BODY() 10 | 11 | public: 12 | AS05_TestingGroundsHUD(); 13 | 14 | /** Primary draw call for the HUD */ 15 | virtual void DrawHUD() override; 16 | 17 | private: 18 | /** Crosshair asset pointer */ 19 | class UTexture2D* CrosshairTex; 20 | 21 | }; 22 | 23 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Terrain/GrassComponent.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "GrassComponent.h" 5 | 6 | 7 | // Sets default values for this component's properties 8 | UGrassComponent::UGrassComponent() 9 | { 10 | // Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features 11 | // off to improve performance if you don't need them. 12 | PrimaryComponentTick.bCanEverTick = true; 13 | 14 | // ... 15 | } 16 | 17 | 18 | // Called when the game starts 19 | void UGrassComponent::BeginPlay() 20 | { 21 | Super::BeginPlay(); 22 | 23 | SpawnGrass(); 24 | } 25 | 26 | void UGrassComponent::SpawnGrass() 27 | { 28 | for (size_t i = 0; i < SpawnCount; i++) 29 | { 30 | FVector Location = FMath::RandPointInBox(SpawningExtents); 31 | AddInstance(FTransform(Location)); 32 | } 33 | } 34 | 35 | // Called every frame 36 | void UGrassComponent::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) 37 | { 38 | Super::TickComponent(DeltaTime, TickType, ThisTickFunction); 39 | 40 | // ... 41 | } 42 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Terrain/GrassComponent.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "Components/HierarchicalInstancedStaticMeshComponent.h" 6 | #include "GrassComponent.generated.h" 7 | 8 | UCLASS(ClassGroup = (Custom), meta = (BlueprintSpawnableComponent)) 9 | class S05_TESTINGGROUNDS_API UGrassComponent : public UHierarchicalInstancedStaticMeshComponent 10 | { 11 | GENERATED_BODY() 12 | 13 | public: 14 | // Sets default values for this component's properties 15 | UGrassComponent(); 16 | 17 | UPROPERTY(EditDefaultsOnly, Category = Spawning) 18 | FBox SpawningExtents; 19 | UPROPERTY(EditDefaultsOnly, Category = Spawning) 20 | int SpawnCount; 21 | 22 | protected: 23 | // Called when the game starts 24 | virtual void BeginPlay() override; 25 | 26 | public: 27 | // Called every frame 28 | virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; 29 | 30 | private: 31 | void SpawnGrass(); 32 | 33 | }; 34 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Terrain/Tile.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "Tile.h" 5 | #include "DrawDebugHelpers.h" 6 | #include "ActorPool.h" 7 | 8 | // Sets default values 9 | ATile::ATile() 10 | { 11 | // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. 12 | PrimaryActorTick.bCanEverTick = true; 13 | 14 | NavigationBoundsOffset = FVector(2000, 0, 0); 15 | 16 | MinExtent = FVector(0, -2000, 0); 17 | MaxExtent = FVector(4000, 2000, 0); 18 | } 19 | 20 | void ATile::SetPool(UActorPool* InPool) 21 | { 22 | UE_LOG(LogTemp, Warning, TEXT("[%s] Setting Pool %s"), *(this->GetName()), *(InPool->GetName())); 23 | Pool = InPool; 24 | 25 | PositionNavMeshBoundsVolume(); 26 | } 27 | 28 | void ATile::PositionNavMeshBoundsVolume() 29 | { 30 | NavMeshBoundsVolume = Pool->Checkout(); 31 | if (NavMeshBoundsVolume == nullptr) 32 | { 33 | UE_LOG(LogTemp, Warning, TEXT("[%s] Not enough actors in pool."), *GetName()); 34 | return; 35 | } 36 | UE_LOG(LogTemp, Warning, TEXT("[%s] Checked out: {%s}"), *GetName(), *NavMeshBoundsVolume->GetName()); 37 | NavMeshBoundsVolume->SetActorLocation(GetActorLocation() + NavigationBoundsOffset); 38 | GetWorld()->GetNavigationSystem()->Build(); 39 | } 40 | 41 | 42 | void ATile::PlaceActors(TSubclassOf ToSpawn, int MinSpawn, int MaxSpawn, float Radius, float MinScale, float MaxScale) 43 | { 44 | TArray SpawnPositions = RandomSpawnPositions(MinSpawn, MaxSpawn, Radius, MinScale, MaxScale); 45 | for (FSpawnPosition SpawnPosition : SpawnPositions) 46 | { 47 | PlaceActor(ToSpawn, SpawnPosition); 48 | } 49 | } 50 | 51 | void ATile::PlaceAIPawns(TSubclassOf ToSpawn, int MinSpawn, int MaxSpawn, float Radius) 52 | { 53 | TArray SpawnPositions = RandomSpawnPositions(MinSpawn, MaxSpawn, Radius, 1, 1); 54 | for (FSpawnPosition SpawnPosition : SpawnPositions) 55 | { 56 | PlaceAIPawn(ToSpawn, SpawnPosition); 57 | } 58 | 59 | } 60 | 61 | TArray ATile::RandomSpawnPositions(int MinSpawn, int MaxSpawn, float Radius, float MinScale, float MaxScale) 62 | { 63 | TArray SpawnPositions; 64 | int NumberToSpawn = FMath::RandRange(MinSpawn, MaxSpawn); 65 | for (size_t i = 0; i < NumberToSpawn; i++) 66 | { 67 | FSpawnPosition SpawnPosition; 68 | SpawnPosition.Scale = FMath::RandRange(MinScale, MaxScale); 69 | bool found = FindEmptyLocation(SpawnPosition.Location, Radius * SpawnPosition.Scale); 70 | if (found) 71 | { 72 | SpawnPosition.Rotation = FMath::RandRange(-180.f, 180.f); 73 | SpawnPositions.Add(SpawnPosition); 74 | } 75 | } 76 | 77 | return SpawnPositions; 78 | } 79 | 80 | bool ATile::FindEmptyLocation(FVector& OutLocation, float Radius) { 81 | FBox Bounds(MinExtent, MaxExtent); 82 | const int MAX_ATTEMPTS = 100; 83 | for (size_t i = 0; i < MAX_ATTEMPTS; i++) 84 | { 85 | FVector CandidatePoint = FMath::RandPointInBox(Bounds); 86 | if (CanSpawnAtLocation(CandidatePoint, Radius)) { 87 | OutLocation = CandidatePoint; 88 | return true; 89 | } 90 | } 91 | return false; 92 | } 93 | 94 | void ATile::PlaceActor(TSubclassOf ToSpawn, FSpawnPosition SpawnPosition) { 95 | AActor* Spawned = GetWorld()->SpawnActor(ToSpawn); 96 | Spawned->SetActorRelativeLocation(SpawnPosition.Location); 97 | Spawned->AttachToActor(this, FAttachmentTransformRules(EAttachmentRule::KeepRelative, false)); 98 | Spawned->SetActorRotation(FRotator(0, SpawnPosition.Rotation, 0)); 99 | Spawned->SetActorScale3D(FVector(SpawnPosition.Scale)); 100 | } 101 | 102 | void ATile::PlaceAIPawn(TSubclassOf ToSpawn, FSpawnPosition SpawnPosition) 103 | { 104 | FRotator Rotation = FRotator(0, SpawnPosition.Rotation, 0); 105 | APawn* Spawned = GetWorld()->SpawnActor(ToSpawn, SpawnPosition.Location, Rotation); 106 | if (Spawned == nullptr) 107 | { 108 | return; 109 | } 110 | Spawned->AttachToActor(this, FAttachmentTransformRules(EAttachmentRule::KeepRelative, false)); 111 | Spawned->SpawnDefaultController(); 112 | Spawned->Tags.Add(FName("Enemy")); 113 | } 114 | 115 | // Called when the game starts or when spawned 116 | void ATile::BeginPlay() 117 | { 118 | Super::BeginPlay(); 119 | } 120 | 121 | void ATile::EndPlay(const EEndPlayReason::Type EndPlayReason) 122 | { 123 | if (Pool != nullptr && NavMeshBoundsVolume != nullptr) { 124 | Pool->Return(NavMeshBoundsVolume); 125 | } 126 | } 127 | 128 | // Called every frame 129 | void ATile::Tick(float DeltaTime) 130 | { 131 | Super::Tick(DeltaTime); 132 | 133 | } 134 | 135 | bool ATile::CanSpawnAtLocation(FVector Location, float Radius) 136 | { 137 | FHitResult HitResult; 138 | FVector GlobalLocation = ActorToWorld().TransformPosition(Location); 139 | bool HasHit = GetWorld()->SweepSingleByChannel( 140 | HitResult, 141 | GlobalLocation, 142 | GlobalLocation, 143 | FQuat::Identity, 144 | ECollisionChannel::ECC_GameTraceChannel2, 145 | FCollisionShape::MakeSphere(Radius) 146 | ); 147 | return !HasHit; 148 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Terrain/Tile.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "GameFramework/Actor.h" 6 | #include "Tile.generated.h" 7 | 8 | USTRUCT() 9 | struct FSpawnPosition 10 | { 11 | GENERATED_USTRUCT_BODY() 12 | 13 | FVector Location; 14 | float Rotation; 15 | float Scale; 16 | }; 17 | 18 | 19 | class UActorPool; 20 | 21 | UCLASS() 22 | class S05_TESTINGGROUNDS_API ATile : public AActor 23 | { 24 | GENERATED_BODY() 25 | 26 | public: 27 | // Sets default values for this actor's properties 28 | ATile(); 29 | 30 | UFUNCTION(BlueprintCallable, Category = "Spawning") 31 | void PlaceActors(TSubclassOf ToSpawn, int MinSpawn = 1, int MaxSpawn = 1, float Radius = 500, float MinScale = 1, float MaxScale = 1); 32 | 33 | UFUNCTION(BlueprintCallable, Category = "Spawning") 34 | void PlaceAIPawns(TSubclassOf ToSpawn, int MinSpawn = 1, int MaxSpawn = 1, float Radius = 500); 35 | 36 | protected: 37 | // Called when the game starts or when spawned 38 | virtual void BeginPlay() override; 39 | virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override; 40 | 41 | UPROPERTY(EditDefaultsOnly, Category = "Navigation") 42 | FVector NavigationBoundsOffset; 43 | 44 | UPROPERTY(EditDefaultsOnly, Category="Spawning") 45 | FVector MinExtent; 46 | UPROPERTY(EditDefaultsOnly, Category = "Spawning") 47 | FVector MaxExtent; 48 | 49 | public: 50 | // Called every frame 51 | virtual void Tick(float DeltaTime) override; 52 | 53 | UFUNCTION(BlueprintCallable, Category = "Pool") 54 | void SetPool(UActorPool* Pool); 55 | 56 | private: 57 | 58 | void PositionNavMeshBoundsVolume(); 59 | 60 | TArray RandomSpawnPositions(int MinSpawn, int MaxSpawn, float Radius, float MinScale, float MaxScale); 61 | 62 | bool FindEmptyLocation(FVector& OutLocation, float Radius); 63 | 64 | void PlaceActor(TSubclassOf ToSpawn, FSpawnPosition SpawnPosition); 65 | 66 | void PlaceAIPawn(TSubclassOf ToSpawn, FSpawnPosition SpawnPosition); 67 | 68 | bool CanSpawnAtLocation(FVector Location, float Radius); 69 | 70 | UActorPool* Pool; 71 | 72 | AActor* NavMeshBoundsVolume; 73 | }; 74 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Weapons/BallProjectile.cpp: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "BallProjectile.h" 5 | #include "GameFramework/ProjectileMovementComponent.h" 6 | 7 | ABallProjectile::ABallProjectile() 8 | { 9 | // Use a sphere as a simple collision representation 10 | CollisionComp = CreateDefaultSubobject(TEXT("SphereComp")); 11 | CollisionComp->InitSphereRadius(5.0f); 12 | CollisionComp->BodyInstance.SetCollisionProfileName("Projectile"); 13 | CollisionComp->OnComponentHit.AddDynamic(this, &ABallProjectile::OnHit); // set up a notification for when this component hits something blocking 14 | 15 | // Players can't walk on it 16 | CollisionComp->SetWalkableSlopeOverride(FWalkableSlopeOverride(WalkableSlope_Unwalkable, 0.f)); 17 | CollisionComp->CanCharacterStepUpOn = ECB_No; 18 | 19 | // Set as root component 20 | RootComponent = CollisionComp; 21 | 22 | // Use a ProjectileMovementComponent to govern this projectile's movement 23 | ProjectileMovement = CreateDefaultSubobject(TEXT("ProjectileComp")); 24 | ProjectileMovement->UpdatedComponent = CollisionComp; 25 | ProjectileMovement->InitialSpeed = 3000.f; 26 | ProjectileMovement->MaxSpeed = 3000.f; 27 | ProjectileMovement->bRotationFollowsVelocity = true; 28 | ProjectileMovement->bShouldBounce = true; 29 | 30 | // Die after 3 seconds by default 31 | InitialLifeSpan = 3.0f; 32 | } 33 | 34 | void ABallProjectile::OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit) 35 | { 36 | // Only add impulse and destroy projectile if we hit a physics 37 | if ((OtherActor != NULL) && (OtherActor != this) && (OtherComp != NULL) && OtherComp->IsSimulatingPhysics()) 38 | { 39 | OtherComp->AddImpulseAtLocation(GetVelocity() * 100.0f, GetActorLocation()); 40 | 41 | Destroy(); 42 | } 43 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Weapons/BallProjectile.h: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | #pragma once 3 | #include "GameFramework/Actor.h" 4 | #include "BallProjectile.generated.h" 5 | 6 | UCLASS(config=Game) 7 | class ABallProjectile : public AActor 8 | { 9 | GENERATED_BODY() 10 | 11 | /** Sphere collision component */ 12 | UPROPERTY(VisibleDefaultsOnly, Category=Projectile) 13 | class USphereComponent* CollisionComp; 14 | 15 | /** Projectile movement component */ 16 | UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Movement, meta = (AllowPrivateAccess = "true")) 17 | class UProjectileMovementComponent* ProjectileMovement; 18 | 19 | public: 20 | ABallProjectile(); 21 | 22 | /** called when projectile hits something */ 23 | UFUNCTION() 24 | void OnHit(UPrimitiveComponent* HitComp, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); 25 | 26 | /** Returns CollisionComp subobject **/ 27 | FORCEINLINE class USphereComponent* GetCollisionComp() const { return CollisionComp; } 28 | /** Returns ProjectileMovement subobject **/ 29 | FORCEINLINE class UProjectileMovementComponent* GetProjectileMovement() const { return ProjectileMovement; } 30 | }; 31 | 32 | -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Weapons/Gun.cpp: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #include "S05_TestingGrounds.h" 4 | #include "Gun.h" 5 | #include "BallProjectile.h" 6 | #include "Animation/AnimInstance.h" 7 | 8 | 9 | // Sets default values 10 | AGun::AGun() 11 | { 12 | // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. 13 | PrimaryActorTick.bCanEverTick = true; 14 | 15 | // Create a gun mesh component 16 | FP_Gun = CreateDefaultSubobject(TEXT("FP_Gun")); 17 | FP_Gun->bCastDynamicShadow = false; 18 | FP_Gun->CastShadow = false; 19 | // FP_Gun->SetupAttachment(Mesh1P, TEXT("GripPoint")); 20 | 21 | FP_MuzzleLocation = CreateDefaultSubobject(TEXT("MuzzleLocation")); 22 | FP_MuzzleLocation->SetupAttachment(FP_Gun); 23 | FP_MuzzleLocation->SetRelativeLocation(FVector(0.2f, 48.4f, -10.6f)); 24 | } 25 | 26 | // Called when the game starts or when spawned 27 | void AGun::BeginPlay() 28 | { 29 | Super::BeginPlay(); 30 | 31 | } 32 | 33 | // Called every frame 34 | void AGun::Tick( float DeltaTime ) 35 | { 36 | Super::Tick( DeltaTime ); 37 | 38 | } 39 | 40 | void AGun::OnFire() 41 | { 42 | // try and fire a projectile 43 | if (ProjectileClass != NULL) 44 | { 45 | const FRotator SpawnRotation = FP_MuzzleLocation->GetComponentRotation(); 46 | // MuzzleOffset is in camera space, so transform it to world space before offsetting from the character location to find the final muzzle position 47 | const FVector SpawnLocation = FP_MuzzleLocation->GetComponentLocation(); 48 | 49 | UWorld* const World = GetWorld(); 50 | if (World != NULL) 51 | { 52 | // spawn the projectile at the muzzle 53 | World->SpawnActor(ProjectileClass, SpawnLocation, SpawnRotation); 54 | } 55 | } 56 | 57 | // try and play the sound if specified 58 | if (FireSound != NULL) 59 | { 60 | UGameplayStatics::PlaySoundAtLocation(this, FireSound, GetActorLocation()); 61 | } 62 | 63 | // try and play a firing animation if specified 64 | if (FireAnimation1P != nullptr && AnimInstance1P != nullptr) 65 | { 66 | AnimInstance1P->Montage_Play(FireAnimation1P, 1.f); 67 | } 68 | if (FireAnimation3P != nullptr && AnimInstance3P != nullptr) 69 | { 70 | AnimInstance3P->Montage_Play(FireAnimation3P, 1.f); 71 | } 72 | 73 | } -------------------------------------------------------------------------------- /Source/S05_TestingGrounds/Weapons/Gun.h: -------------------------------------------------------------------------------- 1 | // Fill out your copyright notice in the Description page of Project Settings. 2 | 3 | #pragma once 4 | 5 | #include "GameFramework/Actor.h" 6 | #include "Gun.generated.h" 7 | 8 | UCLASS() 9 | class S05_TESTINGGROUNDS_API AGun : public AActor 10 | { 11 | GENERATED_BODY() 12 | 13 | /** Gun mesh: 1st person view (seen only by self) */ 14 | UPROPERTY(VisibleDefaultsOnly, Category = Mesh) 15 | class USkeletalMeshComponent* FP_Gun; 16 | 17 | /** Location on gun mesh where projectiles should spawn. */ 18 | UPROPERTY(VisibleDefaultsOnly, Category = Mesh) 19 | class USceneComponent* FP_MuzzleLocation; 20 | 21 | public: 22 | // Sets default values for this actor's properties 23 | AGun(); 24 | 25 | // Called when the game starts or when spawned 26 | virtual void BeginPlay() override; 27 | 28 | // Called every frame 29 | virtual void Tick( float DeltaSeconds ) override; 30 | 31 | /** Projectile class to spawn */ 32 | UPROPERTY(EditDefaultsOnly, Category = Projectile) 33 | TSubclassOf ProjectileClass; 34 | 35 | /** Sound to play each time we fire */ 36 | UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay) 37 | class USoundBase* FireSound; 38 | 39 | /** AnimMontages to play each time we fire */ 40 | UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay) 41 | class UAnimMontage* FireAnimation1P; 42 | UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Gameplay) 43 | class UAnimMontage* FireAnimation3P; 44 | 45 | class UAnimInstance* AnimInstance1P; 46 | class UAnimInstance* AnimInstance3P; 47 | 48 | /** Fires a projectile. */ 49 | UFUNCTION(BlueprintCallable, Category = "Input") 50 | void OnFire(); 51 | 52 | }; 53 | -------------------------------------------------------------------------------- /Source/S05_TestingGroundsEditor.Target.cs: -------------------------------------------------------------------------------- 1 | // Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. 2 | 3 | using UnrealBuildTool; 4 | using System.Collections.Generic; 5 | 6 | public class S05_TestingGroundsEditorTarget : TargetRules 7 | { 8 | public S05_TestingGroundsEditorTarget(TargetInfo Target) : base(Target) 9 | { 10 | Type = TargetType.Editor; 11 | ExtraModuleNames.Add("S05_TestingGrounds"); 12 | } 13 | } 14 | --------------------------------------------------------------------------------