diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..69d52a8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +*.blend filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.glb filter=lfs diff=lfs merge=lfs -text +*.flp filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.kra filter=lfs diff=lfs merge=lfs -text +*.uasset filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.vcxproj filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/ai_fighter/.gitignore b/ai_fighter/.gitignore new file mode 100644 index 0000000..6582eaf --- /dev/null +++ b/ai_fighter/.gitignore @@ -0,0 +1,74 @@ +# Visual Studio 2015 user specific files +.vs/ + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +*.ipa + +# These project files can be generated by the engine +*.xcodeproj +*.xcworkspace +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* +Plugins/*/Binaries/* + +# Builds +Build/* + +# Whitelist PakBlacklist-.txt files +!Build/*/ +Build/*/** +!Build/*/PakBlacklist*.txt + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* +Plugins/*/Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* diff --git a/ai_fighter/AI_Fight_Sim/.gitignore b/ai_fighter/AI_Fight_Sim/.gitignore new file mode 100644 index 0000000..6582eaf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/.gitignore @@ -0,0 +1,74 @@ +# Visual Studio 2015 user specific files +.vs/ + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll + +# Fortran module files +*.mod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app +*.ipa + +# These project files can be generated by the engine +*.xcodeproj +*.xcworkspace +*.sln +*.suo +*.opensdf +*.sdf +*.VC.db +*.VC.opendb + +# Precompiled Assets +SourceArt/**/*.png +SourceArt/**/*.tga + +# Binary Files +Binaries/* +Plugins/*/Binaries/* + +# Builds +Build/* + +# Whitelist PakBlacklist-.txt files +!Build/*/ +Build/*/** +!Build/*/PakBlacklist*.txt + +# Don't ignore icon files in Build +!Build/**/*.ico + +# Built data for maps +*_BuiltData.uasset + +# Configuration files generated by the Editor +Saved/* + +# Compiled source files for the engine to use +Intermediate/* +Plugins/*/Intermediate/* + +# Cache files for the editor to use +DerivedDataCache/* diff --git a/ai_fighter/AI_Fight_Sim/.vsconfig b/ai_fighter/AI_Fight_Sim/.vsconfig new file mode 100644 index 0000000..0b1fc2f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/.vsconfig @@ -0,0 +1,14 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.Net.Component.4.6.2.TargetingPack", + "Microsoft.VisualStudio.Component.VC.14.34.17.4.x86.x64", + "Microsoft.VisualStudio.Component.VC.Tools.x86.x64", + "Microsoft.VisualStudio.Component.Windows10SDK", + "Microsoft.VisualStudio.Workload.CoreEditor", + "Microsoft.VisualStudio.Workload.ManagedDesktop", + "Microsoft.VisualStudio.Workload.NativeCrossPlat", + "Microsoft.VisualStudio.Workload.NativeDesktop", + "Microsoft.VisualStudio.Workload.NativeGame" + ] +} diff --git a/ai_fighter/AI_Fight_Sim/AI_Fight_Sim.uproject b/ai_fighter/AI_Fight_Sim/AI_Fight_Sim.uproject new file mode 100644 index 0000000..c9a63be --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/AI_Fight_Sim.uproject @@ -0,0 +1,33 @@ +{ + "FileVersion": 3, + "EngineAssociation": "5.2", + "Category": "", + "Description": "", + "Modules": [ + { + "Name": "AI_Fight_Sim", + "Type": "Runtime", + "LoadingPhase": "Default", + "AdditionalDependencies": [ + "Engine" + ] + } + ], + "Plugins": [ + { + "Name": "ModelingToolsEditorMode", + "Enabled": true, + "TargetAllowList": [ + "Editor" + ] + }, + { + "Name": "VisualStudioTools", + "Enabled": true, + "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/product/362651520df94e4fa65492dbcba44ae2", + "SupportedTargetPlatforms": [ + "Win64" + ] + } + ] +} \ No newline at end of file diff --git a/ai_fighter/AI_Fight_Sim/Config/DefaultEditor.ini b/ai_fighter/AI_Fight_Sim/Config/DefaultEditor.ini new file mode 100644 index 0000000..42106a6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/DefaultEditor.ini @@ -0,0 +1,11 @@ +[UnrealEd.SimpleMap] +SimpleMapName=/Game/TP_ThirdPerson/Maps/ThirdPersonExampleMap + +[EditoronlyBP] +bAllowClassAndBlueprintPinMatching=true +bReplaceBlueprintWithClass= true +bDontLoadBlueprintOutsideEditor= true +bBlueprintIsNotBlueprintType= true + +[/Script/AdvancedPreviewScene.SharedProfiles] + diff --git a/ai_fighter/AI_Fight_Sim/Config/DefaultEditorPerProjectUserSettings.ini b/ai_fighter/AI_Fight_Sim/Config/DefaultEditorPerProjectUserSettings.ini new file mode 100644 index 0000000..d3d6cc0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/DefaultEditorPerProjectUserSettings.ini @@ -0,0 +1,2 @@ +[ContentBrowser] +ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonBP \ No newline at end of file diff --git a/ai_fighter/AI_Fight_Sim/Config/DefaultEngine.ini b/ai_fighter/AI_Fight_Sim/Config/DefaultEngine.ini new file mode 100644 index 0000000..440c4c2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/DefaultEngine.ini @@ -0,0 +1,298 @@ +[URL] +GameName=AI_Fight_Sim + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/ThirdPerson/Maps/Main.Main +GameDefaultMap=/Game/ThirdPerson/Maps/Main.Main +TransitionMap= +bUseSplitscreen=True +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +GlobalDefaultGameMode=/Game/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.BP_ThirdPersonGameMode_C +GlobalDefaultServerGameMode=None +GameInstanceClass=/Script/AI_Fight_Sim.NeuralNetworkCommandLineParsing + +[/Script/Engine.RendererSettings] +r.Mobile.ShadingPath=0 +r.Mobile.SupportGPUScene=False +r.Mobile.AntiAliasing=1 +r.Mobile.FloatPrecisionMode=0 +r.Mobile.AllowDitheredLODTransition=False +r.Mobile.VirtualTextures=False +r.DiscardUnusedQuality=False +r.Shaders.CompressionFormat=2 +r.AllowOcclusionQueries=True +r.MinScreenRadiusForLights=0.030000 +r.MinScreenRadiusForDepthPrepass=0.030000 +r.MinScreenRadiusForCSMDepth=0.010000 +r.PrecomputedVisibilityWarning=False +r.TextureStreaming=True +Compat.UseDXT5NormalMaps=False +r.VirtualTextures=False +r.VT.EnableAutoImport=True +r.VirtualTexturedLightmaps=False +r.VT.AnisotropicFiltering=False +bEnableVirtualTextureOpacityMask=False +r.VT.TileSize=128 +r.VT.TileBorderSize=4 +r.vt.FeedbackFactor=16 +WorkingColorSpaceChoice=sRGB +RedChromaticityCoordinate=(X=0.640000,Y=0.330000) +GreenChromaticityCoordinate=(X=0.300000,Y=0.600000) +BlueChromaticityCoordinate=(X=0.150000,Y=0.060000) +WhiteChromaticityCoordinate=(X=0.312700,Y=0.329000) +r.ClearCoatNormal=False +r.DynamicGlobalIlluminationMethod=1 +r.ReflectionMethod=1 +r.ReflectionCaptureResolution=128 +r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True +r.Lumen.HardwareRayTracing=False +r.Lumen.HardwareRayTracing.LightingMode=0 +r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject=False +r.Lumen.TraceMeshSDFs=0 +r.Shadow.Virtual.Enable=0 +r.RayTracing=False +r.RayTracing.Shadows=False +r.RayTracing.Skylight=False +r.RayTracing.UseTextureLod=False +r.PathTracing=True +r.GenerateMeshDistanceFields=True +r.DistanceFields.DefaultVoxelDensity=0.200000 +r.Nanite.ProjectEnabled=True +r.AllowStaticLighting=True +r.NormalMapsForStaticLighting=False +r.ForwardShading=False +r.VertexFoggingForOpaque=True +r.SeparateTranslucency=True +r.TranslucentSortPolicy=0 +TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) +vr.VRS.HMDFixedFoveationLevel=0 +vr.VRS.HMDFixedFoveationDynamic=False +r.CustomDepth=1 +r.CustomDepthTemporalAAJitter=True +r.PostProcessing.PropagateAlpha=0 +r.DefaultFeature.Bloom=True +r.DefaultFeature.AmbientOcclusion=True +r.DefaultFeature.AmbientOcclusionStaticFraction=True +r.DefaultFeature.AutoExposure=False +r.DefaultFeature.AutoExposure.Method=0 +r.DefaultFeature.AutoExposure.Bias=1.000000 +r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=True +r.DefaultFeature.MotionBlur=False +r.DefaultFeature.LensFlare=False +r.TemporalAA.Upsampling=True +r.AntiAliasingMethod=0 +r.MSAACount=4 +r.DefaultFeature.LightUnits=1 +r.DefaultBackBufferPixelFormat=4 +r.Shadow.UnbuiltPreviewInGame=True +r.StencilForLODDither=False +r.EarlyZPass=3 +r.EarlyZPassOnlyMaterialMasking=False +r.Shadow.CSMCaching=False +r.DBuffer=True +r.ClearSceneMethod=1 +r.VelocityOutputPass=1 +r.Velocity.EnableVertexDeformation=2 +r.SelectiveBasePassOutputs=False +bDefaultParticleCutouts=False +fx.GPUSimulationTextureSizeX=1024 +fx.GPUSimulationTextureSizeY=1024 +r.AllowGlobalClipPlane=False +r.GBufferFormat=1 +r.MorphTarget.Mode=True +r.GPUCrashDebugging=False +vr.InstancedStereo=False +r.MobileHDR=True +vr.MobileMultiView=False +r.Mobile.UseHWsRGBEncoding=False +vr.RoundRobinOcclusion=False +r.MeshStreaming=False +r.HeterogeneousVolumes=True +r.WireframeCullThreshold=5.000000 +r.SupportStationarySkylight=True +r.SupportLowQualityLightmaps=True +r.SupportPointLightWholeSceneShadows=True +r.SupportSkyAtmosphere=True +r.SupportSkyAtmosphereAffectsHeightFog=True +r.SupportCloudShadowOnForwardLitTranslucent=False +r.Shadow.TranslucentPerObject.ProjectEnabled=False +r.Water.SingleLayerWater.SupportCloudShadow=False +r.Substrate=False +r.Substrate.OpaqueMaterialRoughRefraction=False +r.Substrate.Debug.AdvancedVisualizationShaders=False +r.Material.RoughDiffuse=False +r.Material.EnergyConservation=False +r.OIT.SortedPixels=False +r.SkinCache.CompileShaders=False +r.SkinCache.SkipCompilingGPUSkinVF=False +r.SkinCache.DefaultBehavior=1 +r.SkinCache.SceneMemoryLimitInMB=128.000000 +r.Mobile.EnableStaticAndCSMShadowReceivers=True +r.Mobile.EnableMovableLightCSMShaderCulling=True +r.Mobile.Forward.EnableLocalLights=True +r.Mobile.Forward.EnableClusteredReflections=False +r.Mobile.EnableNoPrecomputedLightingCSMShader=True +r.Mobile.AllowDistanceFieldShadows=True +r.Mobile.AllowMovableDirectionalLights=True +r.Mobile.EnableMovableSpotlightsShadow=False +r.GPUSkin.Support16BitBoneIndex=False +r.GPUSkin.Limit2BoneInfluences=False +r.SupportDepthOnlyIndexBuffers=True +r.SupportReversedIndexBuffers=True +r.Mobile.AmbientOcclusion=False +r.GPUSkin.UnlimitedBoneInfluences=False +r.GPUSkin.UnlimitedBoneInfluencesThreshold=8 +DefaultBoneInfluenceLimit=(Default=0,PerPlatform=()) +MaxSkinBones=(Default=65536,PerPlatform=(("Mobile", 256))) +r.Mobile.PlanarReflectionMode=0 +r.Mobile.SupportsGen4TAA=True +bStreamSkeletalMeshLODs=(Default=False,PerPlatform=()) +bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=()) +VisualizeCalibrationColorMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor +VisualizeCalibrationCustomMaterialPath=None +VisualizeCalibrationGrayscaleMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +DefaultGraphicsRHI=DefaultGraphicsRHI_DX12 +-D3D12TargetedShaderFormats=PCD3D_SM5 ++D3D12TargetedShaderFormats=PCD3D_SM6 +-D3D11TargetedShaderFormats=PCD3D_SM5 ++D3D11TargetedShaderFormats=PCD3D_SM5 +Compiler=Default +AudioSampleRate=48000 +AudioCallbackBufferFrameSize=1024 +AudioNumBuffersToEnqueue=1 +AudioMaxChannels=0 +AudioNumSourceWorkers=4 +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) +CacheSizeKB=65536 +MaxChunkSizeOverrideKB=0 +bResampleForDevice=False +MaxSampleRate=48000.000000 +HighSampleRate=32000.000000 +MedSampleRate=24000.000000 +LowSampleRate=12000.000000 +MinSampleRate=8000.000000 +CompressionQualityModifier=1.000000 +AutoStreamingThreshold=0.000000 +SoundCueCookQualityIndex=-1 + +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Scalable +AppliedDefaultGraphicsPerformance=Scalable + +[/Script/Engine.Engine] ++ActiveGameNameRedirects=(OldGameName="TP_ThirdPersonBP",NewGameName="/Script/AI_Fight_Sim") ++ActiveGameNameRedirects=(OldGameName="/Script/TP_ThirdPersonBP",NewGameName="/Script/AI_Fight_Sim") +bUseFixedFrameRate=True + +[/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] +bEnablePlugin=True +bAllowNetworkConnection=True +SecurityToken=E929BDA04CF25111B6C69A96B207217C +bIncludeInShipping=False +bAllowExternalStartInShipping=False +bCompileAFSProject=False +bUseCompression=False +bLogFiles=False +bReportStats=False +ConnectionType=USBOnly +bUseManualIPAddress=False +ManualIPAddress= + +[/Script/Engine.CollisionProfile] +-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) +-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) +-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) +-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) +-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) +-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) +-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) +-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) ++Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision") ++Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,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. ") ++Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ") ++Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,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. ") ++Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,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.") ++Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,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. ") ++Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ") ++Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,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.") ++Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,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.") ++Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors") ++Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors") ++Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.") ++Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.") ++Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,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.") ++Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,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.") ++Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.") ++Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,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. ") ++Profiles=(Name="DamageDealer",CollisionEnabled=QueryOnly,bCanModify=True,ObjectTypeName="DamageDealer",CustomResponses=((Channel="WorldStatic",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore),(Channel="DamageDealer",Response=ECR_Ignore)),HelpMessage="Needs description") ++Profiles=(Name="DamageReceiver",CollisionEnabled=QueryOnly,bCanModify=True,ObjectTypeName="DamageReceiver",CustomResponses=((Channel="WorldStatic",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore),(Channel="DamageReceiver",Response=ECR_Ignore)),HelpMessage="Needs description") ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Overlap,bTraceType=False,bStaticObject=False,Name="DamageDealer") ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,DefaultResponse=ECR_Overlap,bTraceType=False,bStaticObject=False,Name="DamageReceiver") ++EditProfiles=(Name="NoCollision",CustomResponses=((Channel="DamageDealer",Response=ECR_Ignore),(Channel="DamageReceiver",Response=ECR_Ignore))) ++EditProfiles=(Name="CharacterMesh",CustomResponses=((Channel="DamageDealer",Response=ECR_Ignore),(Channel="DamageReceiver",Response=ECR_Ignore),(Channel="Pawn"),(Channel="Camera",Response=ECR_Overlap))) +-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") +-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") +-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") +-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") +-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") ++ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") ++ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") ++ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") ++ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") ++ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") +-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") +-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") +-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") ++CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") ++CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") ++CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") ++CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") + +[Core.Log] +LogTemp=Warning +LogBlueprint=Warning +LogActor=Warning +LogAI=Warning +LogBlueprintUserMessages=Warning +LogRHI=Error +LogPluginManager=Error +LogCsvProfiler=Error +LogPackageName=Error +LogWindows=Error +LogInit=Error +LogOnline=Error +LogDevObjectVersion=Error +LogConfig=Error +LogDeviceProfileManager=Error +LogAudio=Error +LogAudioMixer=Error +LogSlate=Error +LogPakFile=Error +LogD3D12RHI=Error +LogShaderLibrary=Error +LogUObjectArray=Error +LogWorld=Error +LogUObjectHash=Error +LogLoad=Error +LogMemory=Error \ No newline at end of file diff --git a/ai_fighter/AI_Fight_Sim/Config/DefaultGame.ini b/ai_fighter/AI_Fight_Sim/Config/DefaultGame.ini new file mode 100644 index 0000000..bae13af --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/DefaultGame.ini @@ -0,0 +1,7 @@ +[/Script/EngineSettings.GeneralProjectSettings] +ProjectID=63B401E74DB269637F1E79A85E18A4FA +ProjectName=Third Person BP Game Template + +[StartupActions] +bAddPacks=True +InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent") diff --git a/ai_fighter/AI_Fight_Sim/Config/DefaultGameUserSettings.ini b/ai_fighter/AI_Fight_Sim/Config/DefaultGameUserSettings.ini new file mode 100644 index 0000000..823e253 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/DefaultGameUserSettings.ini @@ -0,0 +1,14 @@ +[/Script/Engine.GameUserSettings] +bUseVSync=False +ResolutionSizeX=480 +ResolutionSizeY=480 +LastUserConfirmedResolutionSizeX=480 +LastUserConfirmedResolutionSizeY=480 +WindowPosX=-1 +WindowPosY=-1 +bUseDesktopResolutionForFullscreen=False +FullscreenMode=1 +LastConfirmedFullscreenMode=1 +PreferredFullscreenMode=1 +Version=5 + diff --git a/ai_fighter/AI_Fight_Sim/Config/DefaultInput.ini b/ai_fighter/AI_Fight_Sim/Config/DefaultInput.ini new file mode 100644 index 0000000..f57b41d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/DefaultInput.ini @@ -0,0 +1,88 @@ + + +[/Script/Engine.InputSettings] +-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) +-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) +-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) ++AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Touch",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) ++AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) +bAltEnterTogglesFullscreen=True +bF11TogglesFullscreen=True +bUseMouseForTouch=False +bEnableMouseSmoothing=True +bEnableFOVScaling=True +bCaptureMouseOnLaunch=True +bEnableLegacyInputScales=True +bEnableMotionControls=True +bFilterInputByPlatformUser=False +bShouldFlushPressedKeysOnViewportFocusLost=True +bAlwaysShowTouchInterface=False +bShowConsoleOnFourFingerTap=True +bEnableGestureRecognizer=False +bUseAutocorrect=False +DefaultViewportMouseCaptureMode=CapturePermanently +DefaultViewportMouseLockMode=LockOnCapture +FOVScale=0.011110 +DoubleClickTime=0.200000 +DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput +DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent +DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks +-ConsoleKeys=Tilde ++ConsoleKeys=Tilde ++ConsoleKeys=Caret + diff --git a/ai_fighter/AI_Fight_Sim/Config/Scalability.ini b/ai_fighter/AI_Fight_Sim/Config/Scalability.ini new file mode 100644 index 0000000..470b4f8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Config/Scalability.ini @@ -0,0 +1,10 @@ +[ScalabilitySettings] +; Set all quality settings to the lowest +sg.ResolutionQuality=10 ; Adjust as necessary, 100 is full quality +sg.ViewDistanceQuality=0 +sg.AntiAliasingQuality=0 +sg.ShadowQuality=0 +sg.PostProcessQuality=0 +sg.TextureQuality=0 +sg.EffectsQuality=0 +sg.FoliageQuality=0 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/AIFighter_Albedo.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/AIFighter_Albedo.uasset new file mode 100644 index 0000000..80557e3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/AIFighter_Albedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6c1d204e6c285c471eb0e64e7269ff8263006ebe7ae4b64e847471fb589de68 +size 18727 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/AIFighter_Roughness.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/AIFighter_Roughness.uasset new file mode 100644 index 0000000..060c872 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/AIFighter_Roughness.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:998be1dc88940b2971ff7a0956ec3e9066cf08bfd9aa389c76e1cbcddcb781aa +size 22586 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/ExtractRootMotion.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/ExtractRootMotion.uasset new file mode 100644 index 0000000..dc27e4e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/ExtractRootMotion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56f4385fa662beb882f241d3c5d6cca129a35b48bf12e479cdd6e7d9de55f7c7 +size 137743 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/Fighter.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/Fighter.uasset new file mode 100644 index 0000000..66cb18e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/Fighter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f0ab3c328755e07cdd817fb312df419e3ed13ea99d71155d701b1703d2fee01 +size 10008 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/FighterAction.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/FighterAction.uasset new file mode 100644 index 0000000..6608d97 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/FighterAction.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab10f3ca08c9927e546a1533504b577e30c2c9e122d9505f198960fb324b6029 +size 3436 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/FighterAnimation.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/FighterAnimation.uasset new file mode 100644 index 0000000..7d79731 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/FighterAnimation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce41d533f66ad240a6cbc0a09976f81224131404e0c9a6e5c25d19f7a3fd15d7 +size 999696 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/Moonlight.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/Moonlight.uasset new file mode 100644 index 0000000..d34dda4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/Moonlight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b427bf0ec008ee556f25afd33cde03ee53ba08103c83be8313c18a6954f10e2 +size 110878 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/MoonlightSword.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/MoonlightSword.uasset new file mode 100644 index 0000000..21571ab --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/MoonlightSword.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b09955b67c35bdfead6ff823f93baa02d8c9909a339b126a14bb4a53f219fc2a +size 11864 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/MoonlightWave.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/MoonlightWave.uasset new file mode 100644 index 0000000..9efd98a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/MoonlightWave.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9ed4e42e4567aa046d9db2989c2767d75ea4ee7a7c101967d4a0ae7a151851e +size 70020 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter.uasset new file mode 100644 index 0000000..8bc2efa --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6e4def76b7d38261ff358720f4147648cea1552d8b8f162c6cac9add43829a7 +size 2002491 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Heavy_Attack_1.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Heavy_Attack_1.uasset new file mode 100644 index 0000000..f8a5992 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Heavy_Attack_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70930ab7365abfe42cdfa26f71acf44dbb1e1d340193bfaf9e39869e2852b3ea +size 238709 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Idle.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Idle.uasset new file mode 100644 index 0000000..6930fe3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aea60f2d6f3baeb0c7be5c975dd69e5223bacbf2d6081cbb38a3dd18c0dc3c7 +size 259207 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Knockback.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Knockback.uasset new file mode 100644 index 0000000..9a5bd6c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Knockback.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15b21364f274cd1f4faa1b86ff5460e1cac213ad0ef240dbac22dd380f564b92 +size 134499 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Light_Attack_1.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Light_Attack_1.uasset new file mode 100644 index 0000000..204242b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Light_Attack_1.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3008ec91882f62a1af6df20f1b1121526c747fc885d1eb663f961c057c7784 +size 134274 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Light_Attack_2.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Light_Attack_2.uasset new file mode 100644 index 0000000..e465d1a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Light_Attack_2.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccbb8739f3925504aaff834180d8bddbeea026b25ae7811ec5c51ad39a5b962d +size 142432 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Roll.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Roll.uasset new file mode 100644 index 0000000..4a78ebe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Roll.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f05d6650d7812346efce86e9d71198da37d72cb5df7eee6a02ec9457e5ea1ca6 +size 120603 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Special_Attack.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Special_Attack.uasset new file mode 100644 index 0000000..93d8713 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Special_Attack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b66d0cc4c7f9046af0ee1ebe7c46de5ded8c9afc55db663ada920d0637741c0 +size 274317 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Walk.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Walk.uasset new file mode 100644 index 0000000..213784e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Anim_Skeleton_Walk.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6463df3dde2f0a2d57023ae3837a95a991cb4a37e7ddd237512646d5d02213cb +size 106645 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_PhysicsAsset.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_PhysicsAsset.uasset new file mode 100644 index 0000000..d388d35 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8d503943302068668c2888117ad02f2a633ff1e2d43a6521cc73ce95e14bb9d +size 15055 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Skeleton.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Skeleton.uasset new file mode 100644 index 0000000..c21ebb4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SK_AIFighter_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6431199ce9cfc2ec9574d1b2df38d3bc07d26ea5681791f07f1f5c00c28db5a5 +size 30406 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SpecialWave.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SpecialWave.uasset new file mode 100644 index 0000000..2611e22 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SpecialWave.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc7cd0805d5e14b571076343231dd74f640b7803bf1c79826a13677e0a7ccdb8 +size 493285 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SwordAlbedo.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SwordAlbedo.uasset new file mode 100644 index 0000000..f6624b5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SwordAlbedo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0cff510da699fe5935034239e314c68f27cd63a2863e4615fa59a8e506c7dab +size 4207300 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SwordFlash.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SwordFlash.uasset new file mode 100644 index 0000000..6600d7b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Fighter/SwordFlash.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:222243ff18c6bcf43a4183ba3f88fff827e6911ab0e872990f2aa178e4ec0aa8 +size 865633 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset new file mode 100644 index 0000000..b915e8e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Animations/Jog_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81b4dd2a00331ba3086ce06a8673667359183399c5fb1ab924060e2c84720691 +size 203111 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset new file mode 100644 index 0000000..4d2cc64 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_Latex_Black.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa87ecdbb722402bdb4decef1a53487d6b74789076cb7aa51a4521553f478a89 +size 13710 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset new file mode 100644 index 0000000..26c98f4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b544f3c62bdc242ceb673eb94a30a1bb881ea3b126d849e8e969ea6b30c25772 +size 10382 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset new file mode 100644 index 0000000..71812b7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_ShinyPlastic_Beige_Logo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff2747888cb753414087d94c0aaa824e88aae93ca25584419a1ace2de31bb048 +size 11197 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset new file mode 100644 index 0000000..3fbbe60 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/Layers/ML_SoftMetal.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28ffa6db34aa484d7f36d872c88b5628a5a9aff7279c1e0d819fb20fe29459ed +size 14647 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset new file mode 100644 index 0000000..ab712a1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4042ac871e2df59386ec9b28ce4c8436753e92ba1e0c69b8ba1b75220a386e96 +size 28440 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset new file mode 100644 index 0000000..86a96e3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Materials/M_MannequinUE4_ChestLogo.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03e96660ce9ddd947d06b73332cc5e3ce76339f937d2cd7ef5396e20a1bdd968 +size 11162 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset new file mode 100644 index 0000000..f595931 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:add4a29562eefee1f38203b6377e56cdb62ad5f109776e845d05e4050552926c +size 5583495 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset new file mode 100644 index 0000000..063f935 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_PhysicsAsset.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e0bf4f4a7a8702be683d64e382e0994d56a24f6ef94a0e13d0d3504df9e490 +size 46446 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset new file mode 100644 index 0000000..5ee88a5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Meshes/SK_Mannequin_Skeleton.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44ad784e4e3635f78abc34c3f266522218994b20714ddda144bbcbaa5972c4ed +size 22962 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset new file mode 100644 index 0000000..80b681c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/IK_UE4_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce8694572ad9b6bf3f7b4bfb00f12aba5d5253d65389475ebcc8f9d8d43c37b2 +size 68924 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset new file mode 100644 index 0000000..4c60e88 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/RTG_UE4Manny_UE5Manny.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:592717cabe08dd57e5ee625c860879be13a18932f8654fe73ee0bbaee063caf6 +size 23985 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset new file mode 100644 index 0000000..11f762e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Rigs/RTG_UE5Manny_UE4Manny.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b34deb079185dedefe04151a3c824a6981b25e12c65f89e7bcd120c68d0f7cac +size 19357 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset new file mode 100644 index 0000000..0909fde --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf805e02f583024a7f5a40f4b2a249809ce711a46de5c84bcd74609b73fed351 +size 395400 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset new file mode 100644 index 0000000..7eceba1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Aluminum01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:582564da5dbbe8e30e6d65babae05ff22edce4a0bc8833f95180b505f0837447 +size 404289 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset new file mode 100644 index 0000000..e18a52a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64a3293fbe4df89c9040bc8d5e9cc6cebc945715ca1c8dc62a7682acc526a524 +size 429026 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset new file mode 100644 index 0000000..e984535 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_ML_Rubber_Blue_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c84157238dd3d148b4f51e44a46f82d5dfd714beaa67c4c9c2998bdc7ec3365 +size 358524 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset new file mode 100644 index 0000000..5e4c2a3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin_MAT_MASKA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec1d27963fc08f75eeee585f78d96ffbd8727bfe86c7c1fe0e7e2a2dd57d5a26 +size 211489 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset new file mode 100644 index 0000000..8fd335b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UE4_Mannequin__normals.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:354c99110df3d84a5cf4bb01de49d994a5c674c9788bd4b5fc779bf3030c54cf +size 5427488 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset new file mode 100644 index 0000000..6c32cbe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UELogo_Mask.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a6f7d178353537343355bd9e8021951aac860c189c1393f57777df90c720466a +size 41868 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset new file mode 100644 index 0000000..3236d1f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequin_UE4/Textures/T_UELogo_N_TGA.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a30f20159eb0e91b89c5f36aa9e6699b4c1a2af7328296c3fd77c392e10b2c7 +size 56343 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/ABP_Manny.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/ABP_Manny.uasset new file mode 100644 index 0000000..9e5b15d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/ABP_Manny.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:698ad59b091eadff740a7ed78bb18cfad875fa3143d2ae614e0317d5e9680a79 +size 368180 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset new file mode 100644 index 0000000..ae1cbad --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/ABP_Quinn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd84317778ba8ee13b7addf2bd11988a07c38cffbebb129562a25785e5215abb +size 39313 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset new file mode 100644 index 0000000..c1625d5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/BS_MM_WalkRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17534cfadb0ecbfec9556f6b116d3cc4276b2d8ea5b451062ba3919c5ce24a6c +size 8993 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset new file mode 100644 index 0000000..391c245 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Fall_Loop.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:732b4cb73137a34d510f774b0ab63934bf2ee5532b0333d401fa450f88e44010 +size 698209 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset new file mode 100644 index 0000000..00049a8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d03e57ab6829b8f60cf19ba1ee5e0ac82e37e5429427edaad472fb473f71d1c +size 897634 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset new file mode 100644 index 0000000..360bd01 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Jump.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:771ad470861e3bec955b22c889d2b9acb844a6ae91565b0e647c7adace39878b +size 290962 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset new file mode 100644 index 0000000..f5e0d2c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Land.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24f34cf736992c09b7502185c3d71ef1c79278fb558dacc91fa494ecfe452fe5 +size 300335 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset new file mode 100644 index 0000000..84ca078 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Run_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aff51ddb72b98d9cd2f4c1351f132dfcfde83d905f4f37d1f35b793b26c95b96 +size 293237 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset new file mode 100644 index 0000000..16d2289 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_T_Pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b7e4d1ff30352e296f446e77eed841ad7d5344430c5f7141fd09aad7e0af2c3 +size 30458 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset new file mode 100644 index 0000000..5e734eb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:226e6affa1682ddf630a2e7759bc8b08dae033490a0449400af18a97941440c4 +size 382783 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset new file mode 100644 index 0000000..18e0680 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Manny/MM_Walk_InPlace.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55a005cf4d673d8fcef1b93e2be270b8c47a8a82b7cbf895a915d27710d4a40b +size 609238 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset new file mode 100644 index 0000000..41ae1f8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/BS_MF_Unarmed_WalkRun.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f327022361559eaa6f0e301cb008d03bc1c022c9c4b432c1d94c942e4c2c296 +size 9270 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset new file mode 100644 index 0000000..56a8a86 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Idle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98c6ee27d23ad13b69cd51e466058ff8f75e55ec69ab78911d43eb2d54151022 +size 919278 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset new file mode 100644 index 0000000..a022266 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Run_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:069b7d70641be0a4f2c0d9f0cb4662c796da0f2969c6f1297ae3e22dd3479026 +size 431040 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset new file mode 100644 index 0000000..a334b55 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Animations/Quinn/MF_Walk_Fwd.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a277d4a34033b8e5b336eace9857a4abf1f255a2a4687fa1709b5a5a464ea137 +size 449906 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset new file mode 100644 index 0000000..33b7e4d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/CA_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5564d59ac367f94d06d6eafc8eafbc1144eec525ebcaf0bd20c3effd400bcf8b +size 4812 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset new file mode 100644 index 0000000..b66dfad --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/ChromaticCurve.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32f26545999f01c55f8900c2d491d4cb39f3c545b061225deee2c8b70e760b70 +size 6306 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset new file mode 100644 index 0000000..fbe47aa --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/MF_Diffraction.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1248c9176bcd4693cab74b63249bd9f0434758dda1c4f4b5c53da5e2a2b91ec2 +size 32183 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset new file mode 100644 index 0000000..96a2e85 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/MF_logo3layers.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1f542fd354f8ff82fb685318e3665da4e9a9207add267de9ce6cf8779b5e147 +size 56603 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset new file mode 100644 index 0000000..2c79117 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Functions/ML_BaseColorFallOff.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:242a332a47b300d429e94147a7ffd38ed09b5c2467dede5e90525494af7c5e18 +size 13437 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset new file mode 100644 index 0000000..4c76d43 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2492fbdc6d6af64af264159aeab1b4ed6fc859e2adbd1be4aef59dd8221c7d49 +size 21590 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset new file mode 100644 index 0000000..8027144 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Manny/MI_Manny_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e6b0c28b5f10768f406776c4fc9d853eb915efdcff8e79465e96aff8c11872b +size 24853 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset new file mode 100644 index 0000000..b486efd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc66db2c2b3f8f37191aad8bc59bbdecda0a19a03a995c602df3b2d8cb3f19e9 +size 19667 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset new file mode 100644 index 0000000..7f69c8a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/Instances/Quinn/MI_Quinn_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46e73fecdb44bdf4bbbd661ee36798f7956f76360594023cb51b96f92ca4c01c +size 25230 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/M_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/M_Mannequin.uasset new file mode 100644 index 0000000..8c4ba13 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Materials/M_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c19c44d3a63f9975bb2e777d37d44341cf24907674c36cca79c558383406f0d5 +size 83079 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset new file mode 100644 index 0000000..b342d7b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/Mannequin_LODSettings.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae6203ccee7839e886951796d05315fe1dd9b9aa44c8a60a9525d5ccd905d5b6 +size 18996 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset new file mode 100644 index 0000000..9f1f7d2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Manny.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1df1a6b3db170cd80f14c40653fbc9a692af00f7abd575872d9cd8a707e05c6 +size 34534883 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset new file mode 100644 index 0000000..efc750c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Manny_Simple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc39b456f2700d3f7aa0dfa99432424c78464b723a143bdf337dcc96867aaab9 +size 18527372 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset new file mode 100644 index 0000000..113ac4e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Quinn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0fdd468262ff66fd30eb55f7bac167063959e5d9dbfa36abf853a5d77616a59 +size 36495654 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset new file mode 100644 index 0000000..0a0d0d1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SKM_Quinn_Simple.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01031c54550174f0a09f13787b128229316afa699302577044e13b6c71d830ed +size 19371553 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset new file mode 100644 index 0000000..e864a47 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Meshes/SK_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:777b2aa0a679b5d326814440204787ff0ba56b4ad9477a407b24d689155b050c +size 160872 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset new file mode 100644 index 0000000..dd58011 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/ABP_Manny_PostProcess.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f58d1ac6047ec45bf31bec1071a5afc0e9dde9d50849bd8e74ca1c4271495c8 +size 463451 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset new file mode 100644 index 0000000..2bb81b5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/ABP_Quinn_PostProcess.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f57ba4350e61b3a5fac6cff45c3d21b81d0ab289765dac797b150b8bac98f34 +size 463249 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset new file mode 100644 index 0000000..f9c827a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_BasicFootIK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:968ba2fa8bf2bca36556b5623b895b9ac9db162f9c2936acda0b0504239543b4 +size 580522 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset new file mode 100644 index 0000000..f58f765 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_Body.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d6092d8eb4a158e99568dffe0f036a5310b03d5a917e3b58529c7d5fd4088ce +size 16036573 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset new file mode 100644 index 0000000..98e0204 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/CR_Mannequin_Procedural.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d1abd304377e26c3c7e5a3b7488c522b118cc62ba0f574e9a63ec2e6ca22ac6 +size 2267523 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset new file mode 100644 index 0000000..c35c1ab --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/IK_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edd623de3bde5afa06348d226eb98ba4f7d66c962ad7c93b4d25feef5de4b124 +size 143479 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset new file mode 100644 index 0000000..72b3611 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/PA_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0b163ae42f4717b12d4a9ab0c6b9da218e2d0d64e891b508e81586ac2a3adee +size 289285 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset new file mode 100644 index 0000000..3c14e35 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec42316c0d0e642867721ab1ac8b58452ee537c9dde5e4d4389d745ccc44e9a6 +size 141452 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset new file mode 100644 index 0000000..44ba84b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26f5c00f4b1a7000505a233e217aa55c5e32b0473128b7cb96f34051dc330da5 +size 207430 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset new file mode 100644 index 0000000..bd39dac --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:afe97fa82d46c150d56573b1d1c3d59fbac288f498c3de5fecedd8ac64c2263a +size 141462 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset new file mode 100644 index 0000000..13f2622 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_calf_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fb5783ac00efbfb039007568246d1ac33d36da09eec69e3cf0d01e1f96d13fe +size 207430 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset new file mode 100644 index 0000000..31710ac --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b4292d4d3cc8c3a23c0d2ea80461f9c05379a22e97c94094a1c4e342e6f0fa9 +size 141484 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset new file mode 100644 index 0000000..18cd550 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:56c0e188c3d854c92956755b9c89b8cb6cdb75f1bc4aac655f0d5f6524fb8160 +size 205732 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset new file mode 100644 index 0000000..d7cc735 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9263821d96862a7121442b54bcaff72775c4758fb2218747bd3540207aa0fecd +size 141486 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset new file mode 100644 index 0000000..8fe32e5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_clavicle_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d21639ca1cd7876ba408a4e6603f66d3d4c9a65d2bbf7c76b59f28e4d020e3 +size 206334 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset new file mode 100644 index 0000000..46f2b70 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5d2ef5f757409ad457660e4388272646155d5bcdfecc4705b85b41d338835c6 +size 129460 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset new file mode 100644 index 0000000..e022eed --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b0c29406e6b6a8074edb2b2d1107d62972059ccae5c0bfe3dc6d99d932f00ed +size 132176 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset new file mode 100644 index 0000000..b347990 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f872db9323bc78b01d91dea5e406cfa348ef10aeed5b9e66a97ddc87b58704e +size 129462 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset new file mode 100644 index 0000000..f35a314 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_foot_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0313dfda857c8a37ae26a104bee21803eb49acc138a18fd7a6864320d025ef40 +size 132176 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset new file mode 100644 index 0000000..b2d1b80 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ad7d36e92954cf783be7be2c7ce8e2e6b3b4376645985a6a772b5890977c381 +size 135460 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset new file mode 100644 index 0000000..05550aa --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1d40437f02274fec5ff3cad47fa3e1cb2997db9397507823c299f0749e1c5f0 +size 169206 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset new file mode 100644 index 0000000..64537c2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e52609e89b719e493df4ed2a196996db3c4dfff4b20a83f68a747099f31827c9 +size 135462 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset new file mode 100644 index 0000000..0cd5c37 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_hand_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9b7b4ce565d7c55919dfeea6b785e2704cba7cc2ca8ad786145739a7eac36bc +size 169206 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset new file mode 100644 index 0000000..3653416 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1761fa57b6504be33ac4c346839446698f20fcc8942a36574ae579e99d6311b +size 203916 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset new file mode 100644 index 0000000..9009fa1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a75265541e206479aabe98ede22dad0ae72aedd9b43fa8c33741422f4c5ec38 +size 361644 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset new file mode 100644 index 0000000..68f69cb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bad38ef33364282ad783d13ff05ac64235fbd94f735f7970aa690f302927139 +size 165486 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset new file mode 100644 index 0000000..ad01a2d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_lowerarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02a9cb1c077531f9bc0acd2f5868d25d42e7f1edaf21d29b0a89a67f277bb2d2 +size 361644 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset new file mode 100644 index 0000000..6abd3af --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46328ac897d55c35ed2c5f7d28443c963b6e4ed348adaf74980b1b7e64514975 +size 195468 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset new file mode 100644 index 0000000..30332d0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac1fba41bdc8d3832f26bee507b7f83d2e51051cae58ecbea0a1e73f3d1e8198 +size 557972 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset new file mode 100644 index 0000000..a18ad76 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b17348bde6d9bd17838698331f08c1babf8a120aab05553ddcbf658cef3d6caf +size 195470 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset new file mode 100644 index 0000000..c673e13 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_thigh_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3bd106c4cf63362f741611edf562149e7d928c4e12a5debac2a27265bc315775 +size 557972 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset new file mode 100644 index 0000000..e4c5ebe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59995bd0fd055a0c29809abcec8ab593a4cfb517a8c52d09b56870ad46a6a431 +size 207486 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset new file mode 100644 index 0000000..91540fe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b56619a8bff783926b5bc17770f90ca5b6dae18cfce0cfde29c69db26df8c968 +size 641633 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset new file mode 100644 index 0000000..cef74d7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55a49a9b5f1d55df4733f651d7110c677fff421e8ccf317a7b5604d46380df9c +size 207488 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset new file mode 100644 index 0000000..00174b7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Manny/Manny_upperarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed2b9dab16c319539175975f14ed906f2e442ebb3705a0f1bfb932b8b2752eec +size 630195 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset new file mode 100644 index 0000000..41247fa --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:315c606d481e66842161f6d640843049c1bb8fad801817cdc01b5347459fe663 +size 190030 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset new file mode 100644 index 0000000..7c0c664 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ee7e7490da8bc5da27bee03d313475c546418b9aa15186cc1e342ac314d1599 +size 245188 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset new file mode 100644 index 0000000..54c61de --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46a6c2f1c8b50afe1849072f062ead508a2f570682f1b21b2e85334776c5f315 +size 228099 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset new file mode 100644 index 0000000..c7c2930 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_calf_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf41bdfdbbcde2f668b07dd932baac1b5517312d04d75b77dce1e82272b31b4 +size 245269 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset new file mode 100644 index 0000000..89f006a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:def1eceb6484991a242bd5bd4bf2c9c1b857861ff5b981ee916a23d4db023b4b +size 222063 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset new file mode 100644 index 0000000..da6c387 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2225dbb5778c1529862086865e86272e574cc993ac0a48cb1c0cc28fafb27c1 +size 205936 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset new file mode 100644 index 0000000..3fc197f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97a0673daaa10512b94608a6ff11d82914e0812760b75ea7e86c3b43c0b4c97b +size 183734 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset new file mode 100644 index 0000000..7c90b80 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_clavicle_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aba097887d167f4b9277338de16c7feb689882acb393b32a0ac176d27f62e2b8 +size 205980 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset new file mode 100644 index 0000000..500df25 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6995c1603c3553af502c2ef04f6fb685d9183f0668266c6562f16238e08f80fb +size 171708 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset new file mode 100644 index 0000000..16a952a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98e401355f6f5bdba83fc2e84ecd9d7e5128f1d6f0c585f368b9d971da58273c +size 132123 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset new file mode 100644 index 0000000..b79204b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91500b65453319b136c33e0b3edb161adf1030a5c3c30c8602390f1725af65b3 +size 171710 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset new file mode 100644 index 0000000..a1b9497 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_foot_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4af5fd34572deb49a2335651c0a311e4db80ed2394c6c1ad633735fa1cf5e44 +size 132123 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset new file mode 100644 index 0000000..30a8ffb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b0b0e92c4297c40bf94f63ccebd938acc49fc4b1ce45f1680fa533c5ea923cc +size 177708 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset new file mode 100644 index 0000000..01c8105 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7c66da3c6a7b2801d9ada447fff4a2593a4b6054a178141f1eae26e21e4b3a7 +size 169153 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset new file mode 100644 index 0000000..635dce7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6128ed9b666f06dde9df5e3d647aff8994b07ad1b4b36fedf693726d63ce138 +size 158608 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset new file mode 100644 index 0000000..622cc1b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_hand_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:973ad5984394de84cfbe2dd3021f7f64f8c4c2e85b6573866382df76c0d9d2f3 +size 169153 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset new file mode 100644 index 0000000..5a95d70 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecd03a972b3109a14840c924efe7d5f6b486ad3e7764773d33eacfb8032bea64 +size 194631 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset new file mode 100644 index 0000000..f2c2239 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:106aa8dc6d3493474f24e4d3240212c3c24428249d5f09f078c65d0372cc3d4d +size 399529 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset new file mode 100644 index 0000000..d830514 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93be05fdf4241bdc152877416175f804bd2e1976d7588919192316bd7b21e936 +size 194633 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset new file mode 100644 index 0000000..a979165 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_lowerarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:610877f087e4e77eba703036159d4abc95b52a1f196b7a317da97963e7477455 +size 399529 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset new file mode 100644 index 0000000..d39f203 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae59b67795d102845bd680e15d74a9b70688315a0ca489232f56cc9005de5597 +size 218614 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset new file mode 100644 index 0000000..591b42b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04d95febf97f6a4d406c53efc6551eb20b378c8a91fef18c151b92a8b3df1abb +size 557618 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset new file mode 100644 index 0000000..0062c43 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b808aa71712168bf1905b91a238f152347579523c2eeec52401b67bf6de6ad27 +size 218616 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset new file mode 100644 index 0000000..49e65e6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_thigh_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f65a5466dd4cd84abd48bef6245bb84930f7b8efff23807a88d4b23df3c1b3 +size 557618 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset new file mode 100644 index 0000000..81727ce --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1de49cf76ee2b6e93936cad3a1ace2bb849e3cd84a24bb84e566abde3a035758 +size 206632 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset new file mode 100644 index 0000000..782027a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_l_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d72952cdf9066cd84e1e5ea11cc2f6a754b0e79f8f037e1f2c8fc8c86ddb408f +size 485440 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset new file mode 100644 index 0000000..a756ff3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_anim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d1fd8bad84e7c6c45884137870261dc78789def4c72683b3775790722d1894d +size 206634 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset new file mode 100644 index 0000000..ed588fc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/Poses/Quinn/Quinn_upperarm_r_pose.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee8b8e737a19894faf44176bcd5aca3405b3a1879eeea792ebdb0c534691cf1c +size 488450 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset new file mode 100644 index 0000000..88c8cd2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Rigs/RTG_Mannequin.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:710754e06ca383f6333958aea11321463736f5ffe6b1f82dfcf79896e2a5228b +size 23721 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset new file mode 100644 index 0000000..110ab26 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_ASAOPMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac817a2d33aa0cd0a8695b9fba9a925a1c71cfbe6de32986a51e6acb1ca598c0 +size 3612605 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset new file mode 100644 index 0000000..0875d1d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8036d465bf677ee48f2c45bb50911cbd085a3d5208959e0b70377bb8d9bc26a6 +size 18514168 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..83b1a1f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3502ef8e4e68f4968b52510cf1fbf2fc0ccc1eb8d7c1e1afeb350d650c2e8ab +size 10271972 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset new file mode 100644 index 0000000..eb17abe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc929bd4eb67ba8610069c601709062d142cca925eedc40c89a940037650b524 +size 5740376 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset new file mode 100644 index 0000000..f341498 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b54209191bfa9dc3c8e195661e0d7807a24f039a3010d54f04e984f63669881c +size 11038184 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset new file mode 100644 index 0000000..6168d14 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b90b6df5b96b505495be378ecb268a17640ba88b40cfe5b0fc764aac26a07c40 +size 7198251 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset new file mode 100644 index 0000000..ed6ba96 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_01_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:251a25a1ac777fddadd2845c84edca5b4ce15b749e9f46d8169c001b9be9c4ea +size 1357770 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset new file mode 100644 index 0000000..66c12c4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_ASAOPMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51d2a2a0683e0c5654d4c5c724e8360c83e4ffe5181ae740872ca3fc0533e85a +size 8341381 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset new file mode 100644 index 0000000..779cd91 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0361a08e270d688814e73adf503937c3012771b0a939f839a06f7c6c8d5269c3 +size 21139527 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..acd53f1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:651eac4091121b27a09f3b13110ec307e9bd815f9a6e573618d051c24387de46 +size 13144043 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset new file mode 100644 index 0000000..4c97af8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42864bd62f0f0d9510453038ff284cc1c1fc09630af8da0cb496e0563a2ffacb +size 9033544 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset new file mode 100644 index 0000000..264d373 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb66b07e8c8621bf361a9d18f97c668677e51164b5892c2577c94703531482e8 +size 13677610 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset new file mode 100644 index 0000000..709611b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:790e9d4e061af061c727d118634801c4834b46e119dd1917ffe5d18f6601d53f +size 7269335 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset new file mode 100644 index 0000000..fd9ae9f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Manny/T_Manny_02_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:187e5fb0047bcc653c7a6e014c49e3d6582e955a3c034579cfb756c80b68dc53 +size 2153790 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset new file mode 100644 index 0000000..cd4420a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:267382e5ca6dcb468e63545e09778b0e16dbd7652cb6d735b487cff1990e809f +size 16108599 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset new file mode 100644 index 0000000..a9ba547 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:792f234ebadad1dc45153c9b1987326d3a4da485d88cf8b1234e3395f5165070 +size 4711156 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset new file mode 100644 index 0000000..d692b9f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e765500d0458a2b4612541ae714281afc376b1d4758403017eb1ca6bc6892de9 +size 11656141 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset new file mode 100644 index 0000000..2c453f3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8266e8da977f915cbd75329eb02feee571f92067ee749b45099c290519bf20b +size 5217676 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset new file mode 100644 index 0000000..552a695 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01ID_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57d9b50418e742ee22fc67783d9db3afb5027c3ef943753e4137742a692b4e01 +size 1104627 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset new file mode 100644 index 0000000..044d1f5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_ASAOMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d5583b02c8b943d60f91f5d9bb59466c9fb1ab3aa811d599c54a20f2a19661b2 +size 5834834 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..de237dd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_01_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2134af63f2d5037e8fcab8e4f50593d62c731f4a8af43bdbd7c2613debea0cbb +size 12399926 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset new file mode 100644 index 0000000..d47e6fd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_BN.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa063b2ea5c44fbc95b17b6a6c093c39a6bbbee1082137c42cbf23b311c75cef +size 19706883 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset new file mode 100644 index 0000000..779799d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:40f579c2a83087c90b7f36744a15798194e9ecbe7c6560d0da2903653ed17723 +size 6732524 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset new file mode 100644 index 0000000..282d0b6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_MSR_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98195f96efbfcf97ddf05c69f2f04388a5e5aefa22d2c9d771f37b22aba8fc2a +size 13169771 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset new file mode 100644 index 0000000..be61334 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:637241dcbbff574ea1032881f60ddb007ce4a33a61864c6b0d3b3b7aa392d0d9 +size 5217676 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset new file mode 100644 index 0000000..9b9edc4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02ID_Tan.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcb445b1af4f07ce1b59ab3c8c25af3da7eb1f9c019559b0fd9172c31f38fa5f +size 1758494 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset new file mode 100644 index 0000000..977a24f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_ASAOMASK_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53b15563df73f76b904d67eec1f7f7ad3c27166bdb1aa21d99c7f9eec0116d60 +size 6901973 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset new file mode 100644 index 0000000..717049b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Quinn/T_Quinn_02_CCRCCPlastic_MSK.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe4e287b727a2b1d18f26557d1569111eda715219f8c73bd96cb74ff87c2cb8c +size 13427858 diff --git a/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset new file mode 100644 index 0000000..51bc908 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/Characters/Mannequins/Textures/Shared/T_UE_Logo_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0571397248a1f4acc7607d1e53676cbb154e3c9c8a19d570915d76b70caaf99c +size 69960 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset new file mode 100644 index 0000000..767cf20 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MF_ProcGrid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa5d22837af536b9690ed2f790e288a59ca659c63e669fca99685afc2364ce82 +size 48741 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset new file mode 100644 index 0000000..3fd81bc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65022a590b73953153898dfd370aa8c2609a84670cdb06dd205d813712d1c1a4 +size 12785 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset new file mode 100644 index 0000000..d727d35 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_Gray_02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa0f2a06a7d937127d7d737c13bacb3f8fe88c8e0479f5e6b7cda81fd225d077 +size 11922 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset new file mode 100644 index 0000000..1eae7f9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_PrototypeGrid_TopDark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:838034e5afc7ab3a70bfff6de2e1237aa02337fb423e95c1b536b3e30c61c982 +size 11957 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_Solid_Blue.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_Solid_Blue.uasset new file mode 100644 index 0000000..a6e284e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/MI_Solid_Blue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:417952e4c6986a99f1bc3fb25ebceb1308806028bd2b602501b66b874aa87cc6 +size 8669 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset new file mode 100644 index 0000000..32a19d9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/M_PrototypeGrid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1a5b000cfbe3030ff6f0bb67a2e4cc4bb803769d74ebd88d54f98918616d2d1 +size 40328 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/M_Solid.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/M_Solid.uasset new file mode 100644 index 0000000..abe7dda --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Materials/M_Solid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d754d45a7f34228c043d5389af994f3f6c9d6e4bd579bba6c65f11813db11662 +size 9609 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset new file mode 100644 index 0000000..7a5b944 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_ChamferCube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6301fc4690ae3dbdc0b77203c6e5f662561351252c7df36c334fb72f6ffe2205 +size 22332 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Cube.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Cube.uasset new file mode 100644 index 0000000..c4909ff --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Cube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79cf9bb71346c1f0386362238aef3e01400be06211e6813dc1ce9bbae969fb07 +size 17034 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset new file mode 100644 index 0000000..0ab270f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Cylinder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a59270c4e29b708c93c0872970bd7f8cc2a9db0e898ba6792605364b25fee585 +size 20348 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset new file mode 100644 index 0000000..5edf332 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_QuarterCylinder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8da43997ae75f32c7fba7047ca3f34ca88d68613845d556072b74c93de74e6a5 +size 17827 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Ramp.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Ramp.uasset new file mode 100644 index 0000000..d099706 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Meshes/SM_Ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81a46d90c20408e4246e37c4c00bf764b5a05d3752eadd1c3b10e8946a79ffbe +size 17169 diff --git a/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset new file mode 100644 index 0000000..37cf466 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/LevelPrototyping/Textures/T_GridChecker_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb8334767064b107ec4f4407ef1365e8b9e2dfeff5984e66d4a6232254ddd02a +size 9600 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Floor_400x400.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Floor_400x400.uasset new file mode 100644 index 0000000..c2a34af --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Floor_400x400.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c0ecf0ac0702cc2bd355ec050232a61c49e10f102448efbeb735a51824adef6 +size 14948 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Pillar_50x500.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Pillar_50x500.uasset new file mode 100644 index 0000000..a74124f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Pillar_50x500.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ef6566b8a58d89c7c7de52e4c1723c9ad3e9636fc801766e89757eb98ec3cbb +size 15861 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/SM_AssetPlatform.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/SM_AssetPlatform.uasset new file mode 100644 index 0000000..b6ef400 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/SM_AssetPlatform.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c0f8fbbe377ca3d96f2671c0eb941bb8b3755d2d60b69e71719f8727149bbe1 +size 160364 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x200.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x200.uasset new file mode 100644 index 0000000..8df10ff --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x200.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05ad5630567f96399a57fec69383564321660e8e32dc2bfe4b206159475b6959 +size 14683 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x300.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x300.uasset new file mode 100644 index 0000000..e195f24 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f3b60af00eae705effeb499f368c376bb5bdb8620ec9790eceab8f1b6129bb0 +size 13933 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x400.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x400.uasset new file mode 100644 index 0000000..1c97beb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_400x400.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71738b34263d8579795bc65719c0ccfe1cf9bd7c8fe64ca02af09bce8b93fb53 +size 14660 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_500x500.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_500x500.uasset new file mode 100644 index 0000000..75e7f96 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_500x500.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59404b543ab051363ca22f47d8696264c20fb87012e5ffc3d0b370a3a7acbf41 +size 17336 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Door_400x300.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Door_400x300.uasset new file mode 100644 index 0000000..59c6efc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Door_400x300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30948daf1661aa95461de492c66d0a8b5a03a607893da56ad03bc7a114b8b62a +size 16508 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Door_400x400.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Door_400x400.uasset new file mode 100644 index 0000000..05fda56 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Door_400x400.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31cbec41a1f814fb1aed3263b1b50f70f8d465f57934d5acda6004df67ae6a0b +size 16392 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Window_400x300.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Window_400x300.uasset new file mode 100644 index 0000000..15c0eaf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Window_400x300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1988d1310934ef357e8a7638ba7cb109d8a151d2a3ea8c0fe8744dfe96fd7d25 +size 17385 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Window_400x400.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Window_400x400.uasset new file mode 100644 index 0000000..5596705 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Architecture/Wall_Window_400x400.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f34a11fa24048a7600f7b87d88d6c12f723fd955fd6c590f38745287e4f5957 +size 17251 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse01.uasset new file mode 100644 index 0000000..5e3ff30 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85c827023ee4b466228ec65e92b4b4a0415a106de041ac1c2cab481a2a5dfa8d +size 348532 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse02.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse02.uasset new file mode 100644 index 0000000..f45a091 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5690c3cdc857ea7d3ae21ed1c6a22e82bb15e8bb24b995228af244c2bb4f0d3 +size 346701 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse_Cue.uasset new file mode 100644 index 0000000..81e69e1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Collapse_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bbd215bbb20c2a86f7b9ba4d90aa1870edd1999e00b5ff64a52a657a50a690b +size 6517 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion01.uasset new file mode 100644 index 0000000..5a0119b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16c3e6decfc990f2bc468b309a9652d7eb98d4481fbd26563ff88139052ace5c +size 282440 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion02.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion02.uasset new file mode 100644 index 0000000..dfdedf4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d44ed6a6a3a6dec3a4ec729cc4b5ecd3ac4477ca4c9f32107b357ea02dafcddc +size 289195 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion_Cue.uasset new file mode 100644 index 0000000..a67301e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Explosion_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91b66cedcfeedcaa25d7b2afe79c3dfb636e625f626fb56ce9b410fc6495ef3b +size 8088 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire01.uasset new file mode 100644 index 0000000..67eb428 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2a6926e93f33107f58a79edd09d5a4ed06196b797f5fc284efc35fbe2df073d +size 549696 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire01_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire01_Cue.uasset new file mode 100644 index 0000000..b723ef5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire01_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3c93dca255ffe4fcd045103b0cf1341adda3640b47a5656c82ef6236639a51c +size 4280 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire_Sparks01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire_Sparks01.uasset new file mode 100644 index 0000000..8159b34 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire_Sparks01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad12649c70f5ef2acd9c19835c59855aaecd4c946260bf6aee182d3fe317d0f2 +size 796274 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire_Sparks01_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire_Sparks01_Cue.uasset new file mode 100644 index 0000000..693d437 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Fire_Sparks01_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c13448535c552552c0216aa5a9d5af5957d4606153a004cdcec934ea5e9a22b +size 4299 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light01.uasset new file mode 100644 index 0000000..dcb7c70 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:267cbc3d508a60edd5aaa8efe0d62e0097c9741782a57fab3d63ffda96314586 +size 364532 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light01_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light01_Cue.uasset new file mode 100644 index 0000000..24a1775 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light01_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc123926fc005aceaa148edfc4cf3778e694a8c17e1e359448377462d4a63d95 +size 4237 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light02.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light02.uasset new file mode 100644 index 0000000..55b3882 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light02.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4ac34417b5db1bf38044e258066d93415e7439dbfec09465c70eb3b96e9a201 +size 308156 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light02_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light02_Cue.uasset new file mode 100644 index 0000000..da4e413 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Light02_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c65561c4b6d3767df9e90d24684abfb9fd7b8f980c1a812e329d319b15ab1c87 +size 4237 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Smoke01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Smoke01.uasset new file mode 100644 index 0000000..97d92a1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Smoke01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9d9cdaab035abab672f71362fe0710533dac23e0c4b4f7fc0f48fa1dd613758 +size 476002 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Smoke01_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Smoke01_Cue.uasset new file mode 100644 index 0000000..d0d0bbf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Smoke01_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97a08e7214107b0f39835ba844b7dcbc69b6613b3573de87e3e9c0e9cfe1a057 +size 4257 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Background_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Background_Cue.uasset new file mode 100644 index 0000000..8eed863 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Background_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36bc3a7bbeaad1ecf33a97465da041171bdd205f780a171d8ec712b16174e8b8 +size 10330 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Birds01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Birds01.uasset new file mode 100644 index 0000000..48fe853 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Birds01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e17fb5652999970bbd06344540cdfd616331a382da43a82de082374883bdc84e +size 2689459 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Music01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Music01.uasset new file mode 100644 index 0000000..9034d40 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Music01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7eb074ff2fea1ac87017ca6638cb140b26ec60733878503ea2c618d726a780c +size 8445372 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Music_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Music_Cue.uasset new file mode 100644 index 0000000..9b4e0b5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Music_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6fdbda2320b26aa806d967ca88390fbd6dd6078432952800fd029cf313bb2ce +size 3753 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Wind05.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Wind05.uasset new file mode 100644 index 0000000..5b51a8b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Wind05.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57ff816d0d35668e42096d85b2beabd89d6a87751f4f2c4ab030f4ee32b64ce7 +size 2312702 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Wind06.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Wind06.uasset new file mode 100644 index 0000000..13d7d30 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Starter_Wind06.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:517dad0128fbc9bf1acc611065a47892ff48f23e68fdde1d37d84cecb8dc0c7f +size 2195539 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Steam01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Steam01.uasset new file mode 100644 index 0000000..96b5845 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Steam01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaf02809b4d2541d2f851691f852afe55587710645207cea7bf01e0b8418473f +size 819028 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Steam01_Cue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Steam01_Cue.uasset new file mode 100644 index 0000000..2050940 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Audio/Steam01_Cue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c43fb733ebfc395af98ce820de46fed7d2b3f2a42ad03f55c8cf8e12d1bd417f +size 4285 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/FogBrightnessLUT.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/FogBrightnessLUT.uasset new file mode 100644 index 0000000..4b7f0d2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/FogBrightnessLUT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c04c6cdec2455c8b6fa4c0dafd4a572d4003eacba85b923de671eece901238f6 +size 1858 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Arrows.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Arrows.uasset new file mode 100644 index 0000000..49b49d4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Arrows.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21b7d8fa958eaa3e8324f3a762cd445877c7bbdc3b5a8eb2b2d6d858cb276c52 +size 10372 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_Black.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_Black.uasset new file mode 100644 index 0000000..bae5b52 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_Black.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da01afa9d1cc164ac85b7a3d8329ee509485b29886e37a1288f84777e24ae85b +size 5250 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_HDRI.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_HDRI.uasset new file mode 100644 index 0000000..d5828c0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_HDRI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b2b575f499de972bf4f97524adba121cc8c8c903abdb844e0a677477489d22b +size 13553 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_Master.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_Master.uasset new file mode 100644 index 0000000..c213dea --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/M_LightStage_Skybox_Master.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fdf80a5102d6178944912fb4b2a242a96e3368baa3f8a0c1be38a94ae2d6e30 +size 15870 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/SM_Arrows.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/SM_Arrows.uasset new file mode 100644 index 0000000..6218325 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/SM_Arrows.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6cc69849eb29034f71b88b8c3765ae353efb3c1f3e51a3f6117631529b24d52 +size 190020 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/Skybox.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/Skybox.uasset new file mode 100644 index 0000000..2e67e29 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/Skybox.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c4555ecd203a7c2993d604fce22f6526b56ce59b39b6c069a1e3cdd5a456cdc +size 209212 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/SunlightColorLUT.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/SunlightColorLUT.uasset new file mode 100644 index 0000000..dc478e6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Assets/SunlightColorLUT.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83865c6b24e80dc62f792fdfbdb63abca1be425b02b3164cbf1f2eecb8afb786 +size 5128 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/BP_LightStudio.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/BP_LightStudio.uasset new file mode 100644 index 0000000..2ea4332 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/BP_LightStudio.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33349930c4785a2bcd4f90e8c4e13df4ea6e29e33a1a8e5c8f576e0bf6a6663f +size 646714 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset new file mode 100644 index 0000000..c5c3b84 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_CeilingLight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a60a29ad596546d481e43dfb8698842a78cc07f4a4b1000fa397cfba4e72331 +size 158206 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Explosion.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Explosion.uasset new file mode 100644 index 0000000..4269e35 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Explosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcd9abdc6a00b26e0721b48a0bb06e3100c4c1ac407fcc3e4141225572d56cc2 +size 16095 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Fire.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Fire.uasset new file mode 100644 index 0000000..97e76f4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dad0a791b92c961cde738111acefeab728b3b4e61589d133144b5a1c84b3a6fc +size 16096 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Smoke.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Smoke.uasset new file mode 100644 index 0000000..ca8a053 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Smoke.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad60f189780f8ae94abd489b48cbd5de03a539e118a842c78585a174a09280eb +size 16117 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Sparks.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Sparks.uasset new file mode 100644 index 0000000..d1cd7fc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Sparks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b80b6d88fabd6b817e73b3b1da4b33def861812ea41b1971154f34c8f8420658 +size 14539 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Steam.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Steam.uasset new file mode 100644 index 0000000..a2ee9aa --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_Effect_Steam.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ae4ddbe5ac59963ae5a3177f417bb812d01be33076308bb1bd352a934149c38 +size 16133 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_WallSconce.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_WallSconce.uasset new file mode 100644 index 0000000..d4c7b4e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Blueprints/Blueprint_WallSconce.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c6ae820b88cfa7250fa16726c0dedcb150760c0e0b7c824993b01e152751607 +size 158241 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset new file mode 100644 index 0000000..0f99058 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/HDRI/HDRI_Epic_Courtyard_Daylight.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc35eb2d43a47427d30aba0196f9eac90d089dd3abca319528c5d25c83510d0d +size 72364642 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/Advanced_Lighting.umap b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/Advanced_Lighting.umap new file mode 100644 index 0000000..ebf6966 Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/Advanced_Lighting.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/Minimal_Default.umap b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/Minimal_Default.umap new file mode 100644 index 0000000..378270c Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/Minimal_Default.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/StarterMap.umap b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/StarterMap.umap new file mode 100644 index 0000000..3d55147 Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Maps/StarterMap.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_AssetPlatform.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_AssetPlatform.uasset new file mode 100644 index 0000000..9cffede --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_AssetPlatform.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cbe10edc23286ddb3d2dd176d410aa8cb134b9cd7ba08e0c565c7ef764d335a +size 8824 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Basic_Floor.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Basic_Floor.uasset new file mode 100644 index 0000000..07401c9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Basic_Floor.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38e9963796183aa39c6cd4219fe60403740c902dadd223b96e37158f5b8e07f8 +size 9515 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Basic_Wall.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Basic_Wall.uasset new file mode 100644 index 0000000..8180e21 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Basic_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d98628a1928336e234cf6b0c1b65a394bc7b6ba7b8ced62bc2fb9e029b45c0b +size 8910 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_Beveled.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_Beveled.uasset new file mode 100644 index 0000000..14c4569 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_Beveled.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71a2e69e0398d164f1102135139e33310e0818cd3adbc8ae1b22f180c4206c55 +size 22893 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_New.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_New.uasset new file mode 100644 index 0000000..0dc4a46 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_New.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94593f357a232f51687df14189072afeee85164e3ce42dfe65b402f80d63561c +size 26366 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_Old.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_Old.uasset new file mode 100644 index 0000000..0d955cf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Clay_Old.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7ff7197aa1809106da243f9d8bd22fb0e1305ca2f67d934ac3fcea7629861c1 +size 34264 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Cut_Stone.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Cut_Stone.uasset new file mode 100644 index 0000000..07408d2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Cut_Stone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5931125b271156e0f931ee93de70fd48b4408467b9deb868f9fcb903972943c3 +size 33809 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Hewn_Stone.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Hewn_Stone.uasset new file mode 100644 index 0000000..3150c05 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Brick_Hewn_Stone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60200347bddea342b9e489b8642f8fafef462b6a36a87fe8e5cb4091e3647162 +size 26468 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset new file mode 100644 index 0000000..219b01e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ceramic_Tile_Checker.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:508d56703e09a7dc8bdd308eb1ac523a391a4be5373f3ee98ee7a4ecda979234 +size 26818 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Pebble.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Pebble.uasset new file mode 100644 index 0000000..7485ad0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Pebble.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b581105dc4109a3688351d8c4a71a5df9b4d3f142d54c8f405e4395fa9e25d51 +size 25680 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Rough.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Rough.uasset new file mode 100644 index 0000000..2fabccc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Rough.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35a3c495a0160ba64b0a312c64c744452ebd7c5d4a5a2320792ffc1636137462 +size 108929 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Smooth.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Smooth.uasset new file mode 100644 index 0000000..5cb2bf4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_CobbleStone_Smooth.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47689b5ede44d19cd095d31e9dfbb9eb444ffc04bb0fc5e4ad2c73c51628b6f7 +size 117888 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_ColorGrid_LowSpec.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_ColorGrid_LowSpec.uasset new file mode 100644 index 0000000..0ebcc43 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_ColorGrid_LowSpec.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d57780881466f2243edf382d5be4378852e02b68847565c45462ffdf7765588 +size 9385 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Grime.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Grime.uasset new file mode 100644 index 0000000..4d6c696 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Grime.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95e4252dc15dbc22432a756fd77a66a1ba8e4acf4fe112469530ff75b6b855bb +size 36137 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Panels.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Panels.uasset new file mode 100644 index 0000000..5645f01 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Panels.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edbb25f1df295f3d81ca5daff4d1fa14abc599e2f56252fcdeacd96a27114651 +size 32155 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Poured.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Poured.uasset new file mode 100644 index 0000000..604f867 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Poured.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69d453cc3372ddb78381716e4eafa298a39c10564cd6bf4ce6f269f8d5c5001e +size 30606 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Tiles.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Tiles.uasset new file mode 100644 index 0000000..f616c4f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Concrete_Tiles.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:409815ab89d05e92ee115c677f210e72f09c9eb3b7ff3a42bcda77059def5afd +size 32196 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Glass.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Glass.uasset new file mode 100644 index 0000000..e52df69 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Glass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2b9f8dbc501536bcf1725e58187b15f24dd0ca7c47eecbd963d77ecb5226c8e +size 13502 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Grass.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Grass.uasset new file mode 100644 index 0000000..d6b21bc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Grass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d44f22d05be5c7aa2286979bddd4c98ef7f22a5950ce101f673a03d85eb4e8cd +size 38110 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Gravel.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Gravel.uasset new file mode 100644 index 0000000..3384221 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Gravel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07b4f6e7eb26e5e474181b534461bd2e06bb4837d3ce943d6d180a6bef018d24 +size 31861 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Moss.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Moss.uasset new file mode 100644 index 0000000..8039767 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Ground_Moss.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08be31e96cd9ab8983dd2330353bff3a48835d41f331e912515b5071e93d4caa +size 37696 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Brushed_Nickel.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Brushed_Nickel.uasset new file mode 100644 index 0000000..919edd6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Brushed_Nickel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ef7f067abc9a0d9e9d5093b8bd777bf549453c1ef50b2e89935a21d89ba08e3 +size 17036 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Burnished_Steel.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Burnished_Steel.uasset new file mode 100644 index 0000000..c51d39d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Burnished_Steel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffe4c1b8afb6b84a011fa000d874b78bc4e78ec66d3bf00b20a279c6ca37967e +size 22803 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Chrome.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Chrome.uasset new file mode 100644 index 0000000..beb7abe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Chrome.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f6e1363960ae18a6406f76bf39787d453d5a705f012726c5d0a20ef38c84bd0 +size 17008 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Copper.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Copper.uasset new file mode 100644 index 0000000..661bef6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Copper.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d0bc6b599b4a0744bd6f3f388983cef577239546b956d1e0e0e1395061ae0ad +size 21999 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Gold.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Gold.uasset new file mode 100644 index 0000000..5c96059 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Gold.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a616be2be9912db10fc0a1263fc0468ab2b4d520e69a3f4e10d82de84f390825 +size 22232 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Rust.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Rust.uasset new file mode 100644 index 0000000..74afde3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Rust.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da8fcb44b3ba9b64dff8fb7da2b48201ffcebf4fd4b3fd84d16d45c0fb705a87 +size 24149 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Steel.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Steel.uasset new file mode 100644 index 0000000..7b19500 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Metal_Steel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1c84656ac5d9301a55b7c48fe1c6607bdaf57db1f3f3a2f90a13965e3e8e88e +size 23634 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Basalt.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Basalt.uasset new file mode 100644 index 0000000..48e574d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Basalt.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2356c40885bc0674e975505f07ab8a01f43e98ec099667bbd67d58c1cabfc6a9 +size 40498 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Marble_Polished.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Marble_Polished.uasset new file mode 100644 index 0000000..63bbea1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Marble_Polished.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8f09428e5aacb9b2ba948c0845b765315e776cee4c6d00872fd99725896efd46 +size 34113 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Sandstone.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Sandstone.uasset new file mode 100644 index 0000000..f19b524 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Sandstone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3206845341fd89bf1e51a23599d504eea53ea289f6e066df32def3a603095bb3 +size 36603 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Slate.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Slate.uasset new file mode 100644 index 0000000..28b5225 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Rock_Slate.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4e74dd3dc691ecf669006b8084181297040396881a33090f12f6ee81db44035 +size 38163 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Checker_Dot.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Checker_Dot.uasset new file mode 100644 index 0000000..03651bf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Checker_Dot.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff1183cab4442a5fa1c47d55c734edf08a77ca34fd786f1f96aebf9b51a3f941 +size 26338 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Hex_Tile.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Hex_Tile.uasset new file mode 100644 index 0000000..a5204a6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Hex_Tile.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:620426859edd8dbbbfac831c7f1dcd6a5038ebf6df527aec80883a4758c273d0 +size 27325 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Hex_Tile_Pulse.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Hex_Tile_Pulse.uasset new file mode 100644 index 0000000..8757f2d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Hex_Tile_Pulse.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27a5b0fab4f9af5c6a0aa9950f44068194d41176e15142833e2cc994d2b48ebb +size 25902 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Panel.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Panel.uasset new file mode 100644 index 0000000..e3d57d6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Tech_Panel.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:479286a2b64dc7d6fecd43f82f2819657ced6d938061f77503946582a01d3300 +size 25957 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Water_Lake.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Water_Lake.uasset new file mode 100644 index 0000000..662a11e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Water_Lake.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69e6c50e3714db9a3e64abfdee4294ded227aea1629dc3167b08c171996bef45 +size 32687 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Water_Ocean.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Water_Ocean.uasset new file mode 100644 index 0000000..1d82bcf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Water_Ocean.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a95baf816b67cfb63343cb7c80c89308619f03a7c2dd48a0f5b20b7cc9212166 +size 35894 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Floor_Walnut_Polished.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Floor_Walnut_Polished.uasset new file mode 100644 index 0000000..9850ec3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Floor_Walnut_Polished.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dcb981b3f68f6d9594003af8cbd2b5449ceaf116399230e46781ea45dd02a2b +size 22926 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Floor_Walnut_Worn.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Floor_Walnut_Worn.uasset new file mode 100644 index 0000000..93e56c5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Floor_Walnut_Worn.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c8cf6b2fa1a56a04df5d66950e31f154d7bf615c0c4e4c6f6a867bdff52c750 +size 23528 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Oak.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Oak.uasset new file mode 100644 index 0000000..de1747e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Oak.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dad76cd1109c8b4a3594e23dd83351170764980c3ccfe57859a3a2f60fef5cdd +size 23499 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Pine.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Pine.uasset new file mode 100644 index 0000000..eafee70 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Pine.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b12c6d7285dd95b1c5669e07fc665f8859a17ee78c51f139170726848c06ee67 +size 31142 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Walnut.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Walnut.uasset new file mode 100644 index 0000000..2e92619 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Materials/M_Wood_Walnut.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8491e0b8978a41999e0f4fc6520cab088fcbe6ddf8b51655f34753aa45234c66 +size 20495 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Burst.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Burst.uasset new file mode 100644 index 0000000..8b6ae42 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Burst.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19bf8a8995e63597472be08617fc5c11494c214561d92ba58cc866bbd3fc9258 +size 15675 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Dust_Particle.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Dust_Particle.uasset new file mode 100644 index 0000000..6a1195e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Dust_Particle.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e054c7225139c4ed10e8695158b930b64c97deabca1f3c8160b382d40b082e94 +size 8718 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Fire_SubUV.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Fire_SubUV.uasset new file mode 100644 index 0000000..20bce43 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Fire_SubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c354f936265a8af7e8be784f38742943669fd17f128d163339565680962b31f +size 19541 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Heat_Distortion.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Heat_Distortion.uasset new file mode 100644 index 0000000..ffb5899 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Heat_Distortion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90e749c0af988f6f35a783853dd5f29a2556a1c6844187c6faa7175f8beac337 +size 13877 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Radial_Gradient.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Radial_Gradient.uasset new file mode 100644 index 0000000..96f3272 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Radial_Gradient.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:969f0add70f571adb7e14da5ca542a15955166103efd54168a5e248826564781 +size 10357 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Spark.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Spark.uasset new file mode 100644 index 0000000..1754977 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_Spark.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4d87a9647f2c232d84745d5c6379f3ad1d6dd2f11310af74f48c20c981d2cd5 +size 9786 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_explosion_subUV.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_explosion_subUV.uasset new file mode 100644 index 0000000..a09186a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_explosion_subUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:137d164ab8e2ae79e3345d7ee75e4052857726c824617cf08276a9edeebf0e95 +size 12568 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_radial_ramp.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_radial_ramp.uasset new file mode 100644 index 0000000..bc957b9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_radial_ramp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:880794e3875c4394f93e280b35524a677e72a5a1edb06b03c8a0ae9efc2b51a6 +size 10366 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_smoke_subUV.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_smoke_subUV.uasset new file mode 100644 index 0000000..29506ef --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/M_smoke_subUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dbf2d29f4c50de40b74aef19e9a39a86891b9b617f971ea0136f90a6e4420ec +size 16561 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/m_flare_01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/m_flare_01.uasset new file mode 100644 index 0000000..4b49de3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/Materials/m_flare_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57377e5d237609372f0837407d7c9f35a5ba00bf81aa049102d699105af8a025 +size 14010 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Ambient_Dust.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Ambient_Dust.uasset new file mode 100644 index 0000000..844cb4c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Ambient_Dust.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:680ace57ca1316b03bcf2fba554552d79333e2058c5da70b6044036d3cd17442 +size 53272 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Explosion.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Explosion.uasset new file mode 100644 index 0000000..d3796ba --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Explosion.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f21bbb2c9d69226415dd25268ce3c3f74af71981018c537d0080ec7df5d32309 +size 280221 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Fire.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Fire.uasset new file mode 100644 index 0000000..38533cc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Fire.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2d1cb2ba9933d298c62788996e50a3015632eff8908f08ec28d85fe116cc073 +size 259431 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Smoke.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Smoke.uasset new file mode 100644 index 0000000..b1b00f9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Smoke.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e66c5b6ed61896f44a837c0c88ac7cdd6ed16e7bdc9e0ded78e0742e83c4d60e +size 65670 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Sparks.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Sparks.uasset new file mode 100644 index 0000000..061ebce --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Sparks.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ae32a7cc9882bcb982df7db98dac68bbe0db2bf08c40f49fcd85c8e1407d415 +size 171805 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Steam_Lit.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Steam_Lit.uasset new file mode 100644 index 0000000..7f3b1e0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Particles/P_Steam_Lit.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:018c1d52865cea019dd1607b284acc89e0363c2e832d16e0d3f9e1164d337494 +size 117332 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/MaterialSphere.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/MaterialSphere.uasset new file mode 100644 index 0000000..56bddfc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/MaterialSphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a8777c01491888bba9f40eda9d2bed76a611f0e80f75917501ce69c1a321342 +size 47333 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Bush.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Bush.uasset new file mode 100644 index 0000000..152e540 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Bush.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85a4a6e7aa928fa57dd41b42f64a267793a41a01d17a5789eafe2ccf0d27ba20 +size 16429 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Chair.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Chair.uasset new file mode 100644 index 0000000..800b7f8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Chair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a7f31c580095e67771be87cdadc420847f26d71118fb75d31e5946a8366253d +size 17834 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Door.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Door.uasset new file mode 100644 index 0000000..270fab8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5f9b85b032dd4c49bbfec94ad295ed70c530f2d193c0b7c02fdcc597536f772 +size 21015 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Frame.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Frame.uasset new file mode 100644 index 0000000..2a6f32f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Frame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2790b944cee372200c299d4fad42fe31bf16a54233aa26700ef5be8a109f4e8 +size 13268 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Lamp.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Lamp.uasset new file mode 100644 index 0000000..f1eeabe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Lamp.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d37cb1a4137fa7ee0b3782d5d0f4c4968d2982d3d37a79d4d124bfc9d5a644c6 +size 21945 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Rock.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Rock.uasset new file mode 100644 index 0000000..f76ba83 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Rock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a2a237cfc23c8d44bb96b71cca8fe3f2da4bcf37bf03c4890cb1788e2ea3dd3 +size 22583 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Shelf.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Shelf.uasset new file mode 100644 index 0000000..11fbc3b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Shelf.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3a633e42f4a149f8846cda390b26211dc51bc1dbff29f17269679ef6fb15708 +size 14571 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Statue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Statue.uasset new file mode 100644 index 0000000..b93e6f5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_Statue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19507688a5451c6958f24e9ef4aaf9617dd2523306925e6b4240540e906c5cbf +size 16585 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_StatueGlass.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_StatueGlass.uasset new file mode 100644 index 0000000..a4a342e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_StatueGlass.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e8269b7fc68d891c81f7600452dc8336cc193c2013d5441a9772c85d0b4eece +size 19243 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_TableRound.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_TableRound.uasset new file mode 100644 index 0000000..572996b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/Materials/M_TableRound.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:80511b0e6fb4265c716167e0032c7a4578881f93084caa6647f5c299ba199e36 +size 16288 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Bush.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Bush.uasset new file mode 100644 index 0000000..883ca53 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Bush.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d590cc11d0237d03c8eaef929c412e9bf79b92532b8b84de91d0aa95cd82f34 +size 66229 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Chair.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Chair.uasset new file mode 100644 index 0000000..4e6aa98 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Chair.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6330daf603205c63a66ae7ccba450a28edf5c7001cc572c407e6bc471cc1582 +size 99160 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_CornerFrame.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_CornerFrame.uasset new file mode 100644 index 0000000..8cb6f39 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_CornerFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f3c6f7d31d9adcb610643bce0424dc087e3319e725367af568779d4deab5a1 +size 38228 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Couch.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Couch.uasset new file mode 100644 index 0000000..f2ac558 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Couch.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c5d0dc6306a79e974b23102451801c80cd3108d9a6fca175e5084d6488c74c9 +size 108540 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Door.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Door.uasset new file mode 100644 index 0000000..9495967 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Door.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b72cc7534989fca4045a1d2ef743d929d8c001ac4450d2027c30d18b38628348 +size 63947 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_DoorFrame.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_DoorFrame.uasset new file mode 100644 index 0000000..33b635c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_DoorFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44589f94b37599863cbac38e4dec7c4717fed858a7af56958bc7f20bbd59b035 +size 23125 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_GlassWindow.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_GlassWindow.uasset new file mode 100644 index 0000000..5d56628 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_GlassWindow.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:006ac3da047529479d0af8768be4d9bc85f81f0f88d48a8a952eebde69b4b10f +size 36547 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Lamp_Ceiling.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Lamp_Ceiling.uasset new file mode 100644 index 0000000..e4d57ce --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Lamp_Ceiling.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c2bddbd1708467c5e926d34497d42a8c777b679310ceadbaba8040b88e02382 +size 113036 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Lamp_Wall.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Lamp_Wall.uasset new file mode 100644 index 0000000..e200d4b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Lamp_Wall.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b9716ccfb79da747e76090223e4767c7df90a95f8c9e742335477d577a8342d +size 60277 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_PillarFrame.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_PillarFrame.uasset new file mode 100644 index 0000000..d627cac --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_PillarFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c321f6bc2d7980ffc49a68d59d06e890154323aafc9b51828a08c02d18c03b7b +size 43484 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_PillarFrame300.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_PillarFrame300.uasset new file mode 100644 index 0000000..1e6e260 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_PillarFrame300.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbd6ff279f4666fca756ce3247fab616c6476871639bfd6f54039e24e90c2f4a +size 44444 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Rock.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Rock.uasset new file mode 100644 index 0000000..5d81020 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Rock.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b469ad02dfe591fc1024c356598344afeb9c2c10c0dfce44f86057b76b39cce5 +size 71152 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Shelf.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Shelf.uasset new file mode 100644 index 0000000..06533ac --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Shelf.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31f0effa39ebff7ff69958023b6462cf5541d619b924f932701163b2fb306a6e +size 46806 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Stairs.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Stairs.uasset new file mode 100644 index 0000000..271ce20 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Stairs.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:edbf2ae1f1df84510fdd2cb6fd6fdd0e3572bc7cedef8c316618a147e9ebcfc3 +size 27358 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Statue.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Statue.uasset new file mode 100644 index 0000000..f16fd8b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_Statue.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91f1f18aa4bf9483b857271161824a212acf76615e825b80d42ff623ae39b2fc +size 191942 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_TableRound.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_TableRound.uasset new file mode 100644 index 0000000..f90ae6e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_TableRound.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff5d2b89bc0361b3b401d747fe0a365642db5a361f7940620791c73a9d2d1515 +size 242868 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_WindowFrame.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_WindowFrame.uasset new file mode 100644 index 0000000..ca23fab --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Props/SM_WindowFrame.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0339ea48549fc000cd25679a2aa17bb34333b161c3d05ffa58ca33179f21d7a3 +size 25448 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cone.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cone.uasset new file mode 100644 index 0000000..6cd3c0a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cone.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4358682c6f6bff5ae3dd11bf13f31155b5aa74774647ffa4029f979e3bfc659 +size 27018 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cube.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cube.uasset new file mode 100644 index 0000000..29e694f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18e5e66d74e5bfeff80dd0cd93dee475ab35d0cc384262ab640109a3dd188dac +size 16145 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cylinder.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cylinder.uasset new file mode 100644 index 0000000..c814b02 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Cylinder.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8846205c866a82d9abfeb84b35d1f82e4e71e72df65337ea2e738455c4902f19 +size 31341 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_NarrowCapsule.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_NarrowCapsule.uasset new file mode 100644 index 0000000..fda653e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_NarrowCapsule.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59bbaddb435bd43505fb8b6051b119e844e6d575185f177411837700609deead +size 47855 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe.uasset new file mode 100644 index 0000000..883aa14 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a531ca154269866bb4a23b25e455de9215eea38d8afe5bfb2cc801f88a54be +size 26253 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe_180.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe_180.uasset new file mode 100644 index 0000000..ea19046 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe_180.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ed0652b8fed0405700dd6635ebb6d52902d4c3444bec19c3404ef3124a71d6c +size 85759 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe_90.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe_90.uasset new file mode 100644 index 0000000..511b037 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Pipe_90.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36a4e17228e6f85fe4600a88ea6bb2939737671a8cba62e45c0a285e8b60a185 +size 59989 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Plane.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Plane.uasset new file mode 100644 index 0000000..c37e7c4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Plane.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc27b5ffb949957289c59122b26b55464ac2cab8013dfa8d9b01cc6ef1781935 +size 16473 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_QuadPyramid.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_QuadPyramid.uasset new file mode 100644 index 0000000..10464e5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_QuadPyramid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2b5549375a2425fba0127c8f2efc85d400a781009c7124a99ca2b9b214ebfd0 +size 16296 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Sphere.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Sphere.uasset new file mode 100644 index 0000000..1801574 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Sphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9441fb1037a41686be1ccc4f8e45a25f4f7126a16e831ff4b587820d48059543 +size 37887 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Torus.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Torus.uasset new file mode 100644 index 0000000..651f88a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Torus.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9842e266d0bbeca032e107bdb4b809cbb0f043b12527fdad3dc690b43de5d95f +size 70998 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_TriPyramid.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_TriPyramid.uasset new file mode 100644 index 0000000..9b4b0b8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_TriPyramid.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29481245fedbf1fbf6d37a7b49f064119fa9b61b8cde0f8a71634f3695fde42a +size 16154 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim.uasset new file mode 100644 index 0000000..21b93aa --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d9ae1dad00a411a316ada5f41d16fe0491a299a4981e010fbc0a33d4fdc2bd8 +size 20918 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim_90_In.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim_90_In.uasset new file mode 100644 index 0000000..8bc7d55 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim_90_In.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98f0162abad4d75bb1794e7a1f11cac718637459a7d0d0600a63abe652ddcb16 +size 30650 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim_90_Out.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim_90_Out.uasset new file mode 100644 index 0000000..3742d00 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Trim_90_Out.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd2e1073a23e135dce25c377ee94ef017f0626cadb665bcd762757dc59fa47fc +size 31102 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Tube.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Tube.uasset new file mode 100644 index 0000000..e124cb8 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Tube.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fec9fc112a4fb0eea12c8d6d6a08e869ecf0401fa1c903b35cb956615060c839 +size 41303 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Wedge_A.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Wedge_A.uasset new file mode 100644 index 0000000..e729d86 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Wedge_A.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78daa6706b75d7cdb8d0b20bfced79f634ad87f017496b8edb077ff9b71ceb81 +size 16633 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Wedge_B.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Wedge_B.uasset new file mode 100644 index 0000000..63b5e93 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_Wedge_B.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec1df8e160b090074b21098ea608b8191482368c23683ae4f599331105285188 +size 16760 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_WideCapsule.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_WideCapsule.uasset new file mode 100644 index 0000000..ba744a9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Shapes/Shape_WideCapsule.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11308fae1e1d7835780372aada5fb86c8eae88bc8b757af7f7e4a082e0c5b5b6 +size 42421 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_D.uasset new file mode 100644 index 0000000..51d2802 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7fd6c18ebbb8d8b97f5fcfa6fa33a7409ae841f1bbb3350c09631718ac9a886 +size 7591336 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_M.uasset new file mode 100644 index 0000000..71ff220 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:337b0f23251965e1b3ae95e1e5defa1be387ed9fa12f7e8b27929897ccd6f8d7 +size 8291521 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_N.uasset new file mode 100644 index 0000000..452fd92 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Beveled_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0da0eb1e0c83fcb8b65fa8310e7bfc4dd31be7087d42545091129d7fa8baa7c +size 7530431 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_D.uasset new file mode 100644 index 0000000..27ecdf9 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d49f52bd21c9400139010b6918a2b8bff1c12aba2b2040be66394aeaa3db8cd4 +size 5993577 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_M.uasset new file mode 100644 index 0000000..465c25d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6ee66163a117e18a55e3014fb188c5295618d17b68a2db98b6fcfefed2f0704 +size 9129111 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_N.uasset new file mode 100644 index 0000000..29fcc08 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_New_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75dfb02a6aa4aba8ab593d5c428dd91b2c4ce6b130737ca027df872a9c7644cb +size 7801784 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Old_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Old_D.uasset new file mode 100644 index 0000000..0309878 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Old_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5833d1ff5e20eae43c8fe2e6f043dd494fcae47d295bb7d480f1c9dff6e44acc +size 11372796 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Old_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Old_N.uasset new file mode 100644 index 0000000..fbac302 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Clay_Old_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e35cc57e8471e856d725d2df968a4ca4dbe8404979136dfe30ba8502f329d851 +size 7761834 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Cut_Stone_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Cut_Stone_D.uasset new file mode 100644 index 0000000..3f92d6c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Cut_Stone_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:680c9eb5f07808e05325b17354618628d1d156b5e00a9d041729a9a157d5e1fc +size 13302492 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Cut_Stone_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Cut_Stone_N.uasset new file mode 100644 index 0000000..08d46f1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Cut_Stone_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:053fd7df91ed5f90629c24833503f42d688d7e1d7072f6c9cfcaaa505e314307 +size 6646267 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_D.uasset new file mode 100644 index 0000000..1d9e119 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b41c37360bbd4100366f9f70337f0045b29bfc3a35eb7325e90d03fd8c184e1 +size 7376796 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_M.uasset new file mode 100644 index 0000000..f75a9bf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69428e6a424a1a0524052e50b7266b73b89eb0b35a307d111b1e0b594f23d32b +size 6771724 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_N.uasset new file mode 100644 index 0000000..4595078 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Brick_Hewn_Stone_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:724271213b0fced0a2fa2ae812f070fedd592add2a63ead98804471a9dbeaa95 +size 8948214 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Burst_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Burst_M.uasset new file mode 100644 index 0000000..3acb768 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Burst_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ac59f9d0d57613887da39523e07557689038fb455dd4e934ea98bf5199f382 +size 123288 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Bush_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Bush_D.uasset new file mode 100644 index 0000000..8437d31 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Bush_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b938fcd6fa2f33f011994454e945c2029114e977a44b834df5e07e603586257 +size 481332 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Bush_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Bush_N.uasset new file mode 100644 index 0000000..cd99430 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Bush_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44359d480f07e2ff25fc1dea4d65250737afa4d73395c882c4ec0d642ab0b8c3 +size 351932 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ceramic_Tile_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ceramic_Tile_M.uasset new file mode 100644 index 0000000..f9bf48c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ceramic_Tile_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fa96b66150d87ec4a54bcccb5946a1421278a04f720272de945980e499d19b9 +size 275476 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ceramic_Tile_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ceramic_Tile_N.uasset new file mode 100644 index 0000000..55f8e53 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ceramic_Tile_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9e9cb0ac4766d1b050edcbb7f6ec15a7354a10b8df13c1547121a2e45fd19fb +size 233782 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Chair_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Chair_M.uasset new file mode 100644 index 0000000..ef6bedb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Chair_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6486c196f80542ef1dd9b058f0ca1de9a05be34f1cc13ef2d4e379726488c13e +size 539588 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Chair_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Chair_N.uasset new file mode 100644 index 0000000..d6e200b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Chair_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62ca4539f06c12c4ffcfb2d3e3d059c8d9379ce6a7b9c388d8c3084b47516c90 +size 1922495 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Checker_Noise_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Checker_Noise_M.uasset new file mode 100644 index 0000000..1694883 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Checker_Noise_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89ad0bbce973bfb000760bc7e5d5af5c968970a2f4ff838b4997251d7322197e +size 134687 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_D.uasset new file mode 100644 index 0000000..7ac1beb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f6258c8fc41deaf078df6780ba05ca0d82eee09912233202ac160810703e52a +size 11730856 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_M.uasset new file mode 100644 index 0000000..7439177 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83f100e71981f39cda279f585ff6eaa4fe880d309d87f09fcef3bc55c37ff63c +size 1274336 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_N.uasset new file mode 100644 index 0000000..c6866a7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Pebble_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aff439802109893e1c0af4cd492033b54d6ff20441d049c3f99bb0244ef5d0ea +size 11790577 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Rough_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Rough_D.uasset new file mode 100644 index 0000000..d7725e3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Rough_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46a663f5677bff0dafcad922400335269de036b93cf483724247926a57ee5074 +size 2888502 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Rough_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Rough_N.uasset new file mode 100644 index 0000000..07b0a3a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Rough_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9e64b707962b97c42ac2cd37fe14013d87a07e48afe67b1495c24c59270c5914 +size 2617708 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_D.uasset new file mode 100644 index 0000000..4108c83 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69a12473b1cd94e0c0d3702f1abd58f0423393304e72a0265c77ff3ad0993ee5 +size 6532491 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_M.uasset new file mode 100644 index 0000000..1bb9638 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adbd4fcd12e92334148416cebbee9938c5f89cde1e2e139f8f6e476172191206 +size 5705923 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_N.uasset new file mode 100644 index 0000000..c64132a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_CobbleStone_Smooth_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5af71f25f0d2b429a300808fc1836652cb1fce9795cca2f64a3ca2fde85fc2d +size 8796793 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Grime_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Grime_D.uasset new file mode 100644 index 0000000..a7d3fab --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Grime_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6798aac85a9a686c6a6c5fc956b6f76346eba6fc2200b4f4227e0ea9b0e98375 +size 10650746 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Panels_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Panels_D.uasset new file mode 100644 index 0000000..83f39ed --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Panels_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6cc1e1e3803791f92ed99c9807f6165063e2b0bf2075c3f4821437dd5246a38 +size 8441488 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Panels_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Panels_N.uasset new file mode 100644 index 0000000..57687e0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Panels_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a2d2573425bd7177b4dee1e91d1ff1ae03983db9b87685711582b73eb7ef9f1 +size 6547780 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Poured_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Poured_D.uasset new file mode 100644 index 0000000..30faa70 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Poured_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38af0336aa522c5835aae766d54ce2596793164421b90a67d56098798e7c4219 +size 11585076 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Poured_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Poured_N.uasset new file mode 100644 index 0000000..0360614 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Poured_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2855eccdb5ec7106250e1e38eb0f68789a140cd6c1a80325104e937e37d48681 +size 7435085 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_D.uasset new file mode 100644 index 0000000..4c74361 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:356e28b941e40f27de4745ceb135a97c95313884695140f340853c7911ccf9fd +size 4929050 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_M.uasset new file mode 100644 index 0000000..29ddf1e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d0a4ab623474c06c2787b76d25c66b32d8aa587cc9d99c7d2306b0f65b6a702 +size 5740835 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_N.uasset new file mode 100644 index 0000000..6f9f7dd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d127d14c8bb438abc79b00417f3fa032baa55949f34c410d3fedd84d6919eec +size 6602390 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_Variation_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_Variation_M.uasset new file mode 100644 index 0000000..fac4da1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Concrete_Tiles_Variation_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f126bec6a6c1e52c3c26d9f57250487f641a89f1558d112b0dacb64c1eda97e +size 6521 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Detail_Rocky_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Detail_Rocky_N.uasset new file mode 100644 index 0000000..5932182 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Detail_Rocky_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c677deccbe0ad92b089a28e63da2c50f5354861ff189fb465cbfb45b1fafcda6 +size 2798883 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Door_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Door_M.uasset new file mode 100644 index 0000000..ccca748 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Door_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1816807e795ab36ad16b0fc6d2ceb8c94badae605ebf77000bab1bc1006ac08e +size 555613 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Door_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Door_N.uasset new file mode 100644 index 0000000..4d63741 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Door_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c47b017bffcd8cd11f09d4a19b378c365e053d17ead804c39e3e0eb35dcc73a2 +size 1074435 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Dust_Particle_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Dust_Particle_D.uasset new file mode 100644 index 0000000..7bf767b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Dust_Particle_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:172fa478144c2b0b4d20df5a10bea4a97641c686b9f49da05aea7b4669698806 +size 20548 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Explosion_SubUV.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Explosion_SubUV.uasset new file mode 100644 index 0000000..3c022dc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Explosion_SubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54bd4308cd9195c1c4c177d9a57875bd73c73b5f27843421ce25f6d82c7be76b +size 2957540 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Fire_SubUV.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Fire_SubUV.uasset new file mode 100644 index 0000000..98ea6ae --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Fire_SubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1fc6355dce68750de251fdd42dfeaaca4514945bad3d6141da2937ae24e94f1 +size 495113 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Fire_Tiled_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Fire_Tiled_D.uasset new file mode 100644 index 0000000..468da16 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Fire_Tiled_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:785975fbfa81ef0e0c94e97e2f941d5df7b74682e8cd0cb38f1764dd3db8be90 +size 500022 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Frame_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Frame_M.uasset new file mode 100644 index 0000000..a42e91f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Frame_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d046c8b25245f637ea4e087f01b4d40a58a210678de303f67c07ee55abd476d5 +size 534405 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Frame_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Frame_N.uasset new file mode 100644 index 0000000..a1e9af0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Frame_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34f0830b05503a3ba496d56546a0140425f8e8ecaab371e8213492d4defd5c68 +size 1246201 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Gradinet_01.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Gradinet_01.uasset new file mode 100644 index 0000000..c1b5485 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Gradinet_01.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9347fa6dd73d59f53fb39c454d19821a7a22e6879bb56018a3859777a497f870 +size 7415 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Grass_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Grass_D.uasset new file mode 100644 index 0000000..b27e9cd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Grass_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47ba5414c8da7999dafb37e9c76bd0eceab97f394bea6f5c5adca5832adcd342 +size 11963236 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Grass_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Grass_N.uasset new file mode 100644 index 0000000..40b4f8d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Grass_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19c42ca6b12658235c152998fceeb207b9a1119611ff1ef7f85cc4cc431d37f2 +size 11592596 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Gravel_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Gravel_D.uasset new file mode 100644 index 0000000..7a5aa75 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Gravel_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adf23999b628f5ae55a1635ce63e09924f23df5822955e86b3e1f0bfc49704ba +size 10606442 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Gravel_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Gravel_N.uasset new file mode 100644 index 0000000..31f6229 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Gravel_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94c35e1a2d16fa2fced8f966f061c08aa7a62c3ca41a5264e5e079eacc74e4c8 +size 7370852 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Moss_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Moss_N.uasset new file mode 100644 index 0000000..14686fe --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Ground_Moss_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18deaa6e9634beafecc3e2f7ccf16477bde02e2a3b488ecdccfe4ff3fc50dce1 +size 8341278 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Lamp_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Lamp_M.uasset new file mode 100644 index 0000000..786ceb2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Lamp_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4a3a2b018a4fd96b7e934dc3c73d055f6f182bf3c15798b5a1b188b631c4082 +size 753129 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Lamp_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Lamp_N.uasset new file mode 100644 index 0000000..da95204 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Lamp_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61c55d75f215dae417ca438690e79f77badc612e2a5912a1abd7cb3368eb6fd2 +size 2059569 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_MacroVariation.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_MacroVariation.uasset new file mode 100644 index 0000000..ec7086e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_MacroVariation.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eeb1fb942acf8721eb4678223e160fd35668c507355fce4132f334c6284a7342 +size 10744761 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Aluminum_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Aluminum_D.uasset new file mode 100644 index 0000000..3c11d7f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Aluminum_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a6f5743eecc990c80391163b7fd93629d338a3a3a7c4a646988bd4612edca9d +size 9683327 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Copper_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Copper_D.uasset new file mode 100644 index 0000000..22358dd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Copper_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f75f9fb29212ef71bc5ca3c710cf5d2cb5672697ed45f0c004d33a078ea9177 +size 8806136 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Gold_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Gold_D.uasset new file mode 100644 index 0000000..881ff7a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Gold_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bde39c57011fb1d814710d58cd475f2c6249ebeb68bbb2d2e13f2bd349ed9692 +size 8787638 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Gold_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Gold_N.uasset new file mode 100644 index 0000000..6c7a61d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Gold_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd6500c67b3f17aa699bb6cb4b3f2da4038845f45fe38ecc9abe49b26f1be3e6 +size 2811609 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Rust_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Rust_D.uasset new file mode 100644 index 0000000..6e8b074 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Rust_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97244d9d61bb141a499125f6a21c719caa4e0917e513912aa6b139440d0ac01d +size 9290171 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Rust_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Rust_N.uasset new file mode 100644 index 0000000..c15a7f6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Rust_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c63fd1a729903d1c48486998561550a9cf461e3bf154477504c16fd6c19b9511 +size 7473783 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Steel_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Steel_D.uasset new file mode 100644 index 0000000..985216b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Steel_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:553beb8d69dc61963c6566d2f18db4787ebdc76c43796dacf627118ee1b47569 +size 3572066 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Steel_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Steel_N.uasset new file mode 100644 index 0000000..675c5d3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Metal_Steel_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf83e43c2a3c66c7222af7db215596de955cf09a7d9cd3d5bf645eba0078b9fd +size 4912078 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Perlin_Noise_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Perlin_Noise_M.uasset new file mode 100644 index 0000000..fc9a1de --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Perlin_Noise_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51d78b11e74d7da8b446d4552363ef0227a5b8a3812329740139e9f30002eac5 +size 7834324 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_RockMesh_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_RockMesh_M.uasset new file mode 100644 index 0000000..1ef71b4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_RockMesh_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e349fe2778d117f94fbb047ea0ac19be770c895801a3fe7a814eaf9046881899 +size 2679820 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_RockMesh_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_RockMesh_N.uasset new file mode 100644 index 0000000..0670981 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_RockMesh_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01e5d9182e9a4010b5d3ad91968ca3db192d521d03b6cbffecb65897d39d7035 +size 5337671 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Basalt_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Basalt_D.uasset new file mode 100644 index 0000000..1639282 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Basalt_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7092b9f5b20d16e9058242ca91a4f7fb061f637f631f10cdddc7cd5674448efa +size 9299763 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Basalt_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Basalt_N.uasset new file mode 100644 index 0000000..07c670c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Basalt_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1802155501e6982e68fa04c43bea492740b28b30ec52266516a0d1aae4c44578 +size 7804770 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset new file mode 100644 index 0000000..550cd6f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Marble_Polished_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38e952a9d0f3696eb56521bf7e9ce525236da3bfb8d49d1d67b292a892568af1 +size 5288078 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Sandstone_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Sandstone_D.uasset new file mode 100644 index 0000000..20b40e6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Sandstone_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82cf5b1f377f0bf932854bbb5df7b4d1b0cee804180ea1dcdaba0184736bc3ea +size 9170780 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Sandstone_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Sandstone_N.uasset new file mode 100644 index 0000000..fa37985 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Sandstone_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bf856d55f538aa455cc834890d9f61cf90354d01e984cb78ea5e598509758322 +size 8366788 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Slate_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Slate_D.uasset new file mode 100644 index 0000000..569360e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Slate_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46947bc63546540839a3f3df00d9596142464dc35dc1e4abc5fb146cb8f19af1 +size 12264193 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Slate_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Slate_N.uasset new file mode 100644 index 0000000..1708abb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Slate_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31dee677b3e69a3be40bfaadae0398ed14ff1154060ce13ff09618b8ea7ae359 +size 9608113 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Smooth_Granite_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Smooth_Granite_D.uasset new file mode 100644 index 0000000..6cc463f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Rock_Smooth_Granite_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e77e684ee82a9a1dc5c97ad0308cfff19987d5090cf4cd152830d37f25f14763 +size 8782207 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Shelf_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Shelf_M.uasset new file mode 100644 index 0000000..f5ad59f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Shelf_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c18efac4dcf4b88c5ecaac68e2d456b170d97ab7624e2a1fd7aadde8931c372a +size 645532 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Shelf_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Shelf_N.uasset new file mode 100644 index 0000000..53322a3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Shelf_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec277e89e0ccdae7a554698699c311a5e0ee9428f240b87def1a8779bfe60ea7 +size 1634736 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Single_Tile_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Single_Tile_N.uasset new file mode 100644 index 0000000..a37ddbf --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Single_Tile_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:570549d4aaa657171fbfd8031af38dfca19b313dcdc5d8b1318a65d04e6cbbb8 +size 9172 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Smoke_SubUV.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Smoke_SubUV.uasset new file mode 100644 index 0000000..12c905f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Smoke_SubUV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f8c2a528a4d367921b6108d95f79766e6d8bad57868a4546b70dbacec6065de +size 2588122 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Smoke_Tiled_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Smoke_Tiled_D.uasset new file mode 100644 index 0000000..9d6f986 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Smoke_Tiled_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dda54aea84888edb638319ae3fa00fbc334759bce3683680ff62daa61fa90d10 +size 56487 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Spark_Core.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Spark_Core.uasset new file mode 100644 index 0000000..614a8b6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Spark_Core.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e994095844eafd889151bd94672120f0989644a45956d4f613aa3f4810d293b +size 136231 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Statue_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Statue_M.uasset new file mode 100644 index 0000000..f6cd4bd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Statue_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:416b08a867057d7a19496f8dcad72b10db6b23d70aa36fd693c60cbc6d6349ed +size 542689 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Statue_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Statue_N.uasset new file mode 100644 index 0000000..e55a7c3 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Statue_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8810fd046b77a99192742daaa0f15dbf023327ffdcec86e66dce2b83dbf21a56 +size 504347 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_TableRound_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_TableRound_M.uasset new file mode 100644 index 0000000..734aadc --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_TableRound_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1d336121b0c08daa46e37300cafce3fa195a298b0dba7fedcc5bd4bd31aa90b +size 853624 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_TableRound_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_TableRound_N.uasset new file mode 100644 index 0000000..cb4c719 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_TableRound_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65470b69a6797b1520b26492f43f6a5cb75dc4e424bd2850454f00a8350dc983 +size 1539628 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Dot_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Dot_M.uasset new file mode 100644 index 0000000..7c72269 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Dot_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7b1ba3deb1cceb2f6ff0808262c5abdd74c8b9022dda4e51da8542559537034 +size 87410 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Dot_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Dot_N.uasset new file mode 100644 index 0000000..5195758 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Dot_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc3ad34c61120aea1112a6846856b3596655df3371168c831ec69475ce424a13 +size 179482 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Hex_Tile_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Hex_Tile_M.uasset new file mode 100644 index 0000000..a59e13a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Hex_Tile_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:454e8b9be045075a1aad36d9177e6a7d1da3e74966661cc8511a66e43c0ff0c4 +size 762987 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Hex_Tile_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Hex_Tile_N.uasset new file mode 100644 index 0000000..4fb62e1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Hex_Tile_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:544320ffc2d7f4ea90f0226c1be6cb1f4baf455bc335a3a0ad1ff4b2354747d0 +size 463065 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Panel_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Panel_M.uasset new file mode 100644 index 0000000..2a4b188 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Panel_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21648f92e4001e53537be3b6cd310afc382d41c8b033a6aeb5bf83d5d9a7690e +size 949083 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Panel_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Panel_N.uasset new file mode 100644 index 0000000..0336dff --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Tech_Panel_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d021b18adec23ed357d0a8f29c958c1245ec7b21226c856195cca6f9f2143a39 +size 1857006 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Water_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Water_M.uasset new file mode 100644 index 0000000..a97725c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Water_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:990a6e33285d33e53cb6956f1a7a30360c66477f9737ece4721aad36e07584cc +size 1651409 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Water_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Water_N.uasset new file mode 100644 index 0000000..65370c5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Water_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d683c8f67d1a1639bcc2939f1fb23ee61289a0c3bbc44cb0db689a23348ba1bc +size 2064469 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_D.uasset new file mode 100644 index 0000000..3c72685 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c1683ee19b2be98916e3b0869ddb3cb6911a715fb2caff560f70ebdc25f1246 +size 4548392 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_M.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_M.uasset new file mode 100644 index 0000000..9690785 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_M.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12901c3b39ac9338e27c9ab0729188145690e9d361a0729371c7598f394eb835 +size 3923225 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_N.uasset new file mode 100644 index 0000000..5200275 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Floor_Walnut_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d77f652374989bbf21c449d9de8979c8c9856509caca2f823337abd466c005c +size 2859583 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Oak_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Oak_D.uasset new file mode 100644 index 0000000..0ab273e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Oak_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f55386ba1743f0a9e6c2a0580d08be6fdad756ac6d08ff496ffa2cde371e9f2 +size 6678190 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Oak_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Oak_N.uasset new file mode 100644 index 0000000..7af102d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Oak_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90646b164c5018e2268e14831af332128202d18a9dad38d438754b27ddc1d723 +size 6244254 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Pine_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Pine_D.uasset new file mode 100644 index 0000000..31ddb19 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Pine_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b0f9afde310f6e49b2dd2dcb755926bd317c851111a2709397e15a7d571ee38 +size 9827131 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Pine_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Pine_N.uasset new file mode 100644 index 0000000..b53b21f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Pine_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dafc4eed7a793910c95c4a9d1b1cf95f248589776ea7caa2f0667b7cd23a57e +size 3460305 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Walnut_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Walnut_D.uasset new file mode 100644 index 0000000..75fc93b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Walnut_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5756b81ce5abd2c786ec568be95ab9d255da0230e389c3c98d6ecf5faef8d990 +size 6485570 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Walnut_N.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Walnut_N.uasset new file mode 100644 index 0000000..7a28b52 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_Wood_Walnut_N.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68f5d2cf1d93100036006e7af9ab6306b0afabd8156b167606a7c48952f42949 +size 3834899 diff --git a/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_ground_Moss_D.uasset b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_ground_Moss_D.uasset new file mode 100644 index 0000000..62cfc6e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/StarterContent/Textures/T_ground_Moss_D.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1aef65bf6ef89648cb6ffd875e3ddb3747349bfecd2854583c874b2d7d180f29 +size 12978098 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/AISimulationGameMode.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/AISimulationGameMode.uasset new file mode 100644 index 0000000..36e7eb7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/AISimulationGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ce2393d55d0f06c30faa5acacfe3d30765408a7c6766f00bab4f73a7bfc9d65 +size 304131 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset new file mode 100644 index 0000000..1bd7540 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c1c7c2061cbc4a30375a8c358116fc819d81e286aeb4d521bb724c87229ddf2 +size 1666698 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset new file mode 100644 index 0000000..21e899d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/BP_ThirdPersonGameMode.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f6bebcb902d3a1a4f5b7058fcdd04e1d9fe26dc93705d9eaa58f509ca901c8ee +size 14092 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/SpectateAI.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/SpectateAI.uasset new file mode 100644 index 0000000..74def3a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/SpectateAI.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c45bb83de2a839dcf888eb23cf3ac7b1d7a01287dc7dee87d8d02c18ea4a507e +size 71273 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/ThirdPersonController.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/ThirdPersonController.uasset new file mode 100644 index 0000000..9fa9611 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Blueprints/ThirdPersonController.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bda4b459555682ac873ffb0e34de47fb7fb821094af179ae9b35efa136b3dfeb +size 790920 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Dodge.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Dodge.uasset new file mode 100644 index 0000000..8903ce4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Dodge.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75470d8c2f8f86d1ad31ef1650aec92c7a9745b6216569cffa6f68b7f30f4deb +size 1359 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_HeavyAttack.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_HeavyAttack.uasset new file mode 100644 index 0000000..e97c5c2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_HeavyAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f798c5ec7d7161c5ac98ce85ebd68c70d0af2036c9e78345c36c5fd155e306f1 +size 1389 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_LightAttack.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_LightAttack.uasset new file mode 100644 index 0000000..f80f7c1 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_LightAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:151fa534106bc67cce4f43495089e27f90f69f84557fd4974e699a754c0931f2 +size 1389 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Look.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Look.uasset new file mode 100644 index 0000000..66b846e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Look.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f31e273949de9b9798743f238b895cd422d9b14e77f73e11d993ff3527bbb735 +size 1454 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Move.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Move.uasset new file mode 100644 index 0000000..7b57d9b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_Move.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8ece438a653b29d1c64011ef11d4bd05245413994ecf4ad80ef4da1694b666f +size 1454 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_SpecialAttack.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_SpecialAttack.uasset new file mode 100644 index 0000000..cb2b4cd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/Actions/IA_SpecialAttack.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38ace4aede5f68cd806d3bf2d9b8415d4277db50aa3bfd9eda9da668de194fdd +size 1399 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/IMC_Default.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/IMC_Default.uasset new file mode 100644 index 0000000..7c6abcd --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Input/IMC_Default.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77f93df00a3cc214993a7cb2ae9908481edfb5f4ec6909b558f3ce10077cbb7f +size 16004 diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/EVE.umap b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/EVE.umap new file mode 100644 index 0000000..35270c0 Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/EVE.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/Main.umap b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/Main.umap new file mode 100644 index 0000000..b48c56b Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/Main.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/PVE.umap b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/PVE.umap new file mode 100644 index 0000000..f589e37 Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/PVE.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/ThirdPersonMap.umap b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/ThirdPersonMap.umap new file mode 100644 index 0000000..3a31350 Binary files /dev/null and b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/Maps/ThirdPersonMap.umap differ diff --git a/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/WarningSphere.uasset b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/WarningSphere.uasset new file mode 100644 index 0000000..6a0b9b6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/ThirdPerson/WarningSphere.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71cea32e7b2e4daf8f51edc326b4892892beefb81dd7b3b734bbc10298805c40 +size 28936 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset new file mode 100644 index 0000000..b8c3e94 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/0/43/HYQWORMY4JDQ5X3OKZXFLC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ee19a411c93433575bbc5f242543689e32d55dbbe6570e88b7a3bf2111052b3 +size 2448 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset new file mode 100644 index 0000000..9dbe100 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/AZ/A7GPT109Y6ZTTJD4A7TXER.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7eea6251337f80ee118b398dd3f4510b44b51192c0f0df72fd066441a28edd6a +size 10766 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/Y9/Y4DCA3ZRI4ZCX9ZD1RDKXZ.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/Y9/Y4DCA3ZRI4ZCX9ZD1RDKXZ.uasset new file mode 100644 index 0000000..1715239 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/1/Y9/Y4DCA3ZRI4ZCX9ZD1RDKXZ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e896fe70c5ef3c30d716a2a1b7afe359b084f7b65b39192caed392e09ea0ef24 +size 13633 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/EY/87SHEJN5UBEAN2K5OV1G6R.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/EY/87SHEJN5UBEAN2K5OV1G6R.uasset new file mode 100644 index 0000000..617a82d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/3/EY/87SHEJN5UBEAN2K5OV1G6R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:487aff000c0bb4665369aa1400b560f129c464ff01f8653bd03369f0b68e65a5 +size 3718 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/LN/30UBDLYFFA5ZR7U4W4L4GG.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/LN/30UBDLYFFA5ZR7U4W4L4GG.uasset new file mode 100644 index 0000000..df8e14c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/4/LN/30UBDLYFFA5ZR7U4W4L4GG.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93e5bd0f6ecc605aba378d69c2de9395f0edaeb1bee19ea5b7aec94bae0fd361 +size 4436 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/R1/TS5OQ5CRUWFZYL1ZQ7I416.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/R1/TS5OQ5CRUWFZYL1ZQ7I416.uasset new file mode 100644 index 0000000..ecc6528 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/5/R1/TS5OQ5CRUWFZYL1ZQ7I416.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:008afa33cf7ddb6e017318fd75d1c3e7613b82a5dd4a44aeab43b429c6340bfe +size 5061 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/J7/N10XDC9G27EMLS5AGZ6AVV.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/J7/N10XDC9G27EMLS5AGZ6AVV.uasset new file mode 100644 index 0000000..ec0972e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/J7/N10XDC9G27EMLS5AGZ6AVV.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23ea0eabd4f255df9b01f2f834dc7589891feee794f84a645840fd999fe75a3d +size 3378 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/YO/NG2R9BPZVA7ZDN0Z4VSTG6.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/YO/NG2R9BPZVA7ZDN0Z4VSTG6.uasset new file mode 100644 index 0000000..69ef4f2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/6/YO/NG2R9BPZVA7ZDN0Z4VSTG6.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f89d00bf07450104247d5b291089d8bd0e1f1ad98f57b874e13c1ea33446abee +size 4283 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/7/P2/KI1QUDQD4R9U3CQWSUIT9C.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/7/P2/KI1QUDQD4R9U3CQWSUIT9C.uasset new file mode 100644 index 0000000..9133eb6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/7/P2/KI1QUDQD4R9U3CQWSUIT9C.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ac422b5dd65afde237837139f19e63cc4aa2911f6c3ffdcaf2a6e9936d230d7 +size 13806 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/7/P7/2DG5NCMKLDUQREJ11HCKIC.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/7/P7/2DG5NCMKLDUQREJ11HCKIC.uasset new file mode 100644 index 0000000..9542bd2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/7/P7/2DG5NCMKLDUQREJ11HCKIC.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15e47aa50eb94e234734eb951d46a5c7e3f61a1f650bb6e22054cc82d190c7b8 +size 13806 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/S1/DXUWD12MD3HRWVVXX076BY.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/S1/DXUWD12MD3HRWVVXX076BY.uasset new file mode 100644 index 0000000..f2d61be --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/S1/DXUWD12MD3HRWVVXX076BY.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:191a1915f3861231652ee3f812e823d9d8ed277fb731b08fbe06dca24f3c7696 +size 3364 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/ZB/279PSBZ71DZQ28VJB8U9LQ.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/ZB/279PSBZ71DZQ28VJB8U9LQ.uasset new file mode 100644 index 0000000..b82d38a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/8/ZB/279PSBZ71DZQ28VJB8U9LQ.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:282344e312dbd22387f84701248b2db2d7b707b87cbf207312591ec14dca9cbe +size 13806 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset new file mode 100644 index 0000000..2579e4b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/DE/SWSI13675DVYIZ0N4NF7Y3.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bb3ad71c6bde272c9bee6d6efea96c59d8d67843548504a9053834f8008d283 +size 3866 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset new file mode 100644 index 0000000..f11a8a5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/D/SY/Z4CTQ4LG3YV10EKPD0UE8Q.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:995cdd512dce13ac9558af165778c54f71b12b16898400599f86fa6ca30444ed +size 849 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/55/2A05V9ECJEXL9S32YHMZ2W.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/55/2A05V9ECJEXL9S32YHMZ2W.uasset new file mode 100644 index 0000000..920dbb4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/55/2A05V9ECJEXL9S32YHMZ2W.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9fc9defc573c8849991664101d9b1e5173b76d62615ff59e719d8bfad0b5dab +size 13806 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset new file mode 100644 index 0000000..b59459f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalActors__/ThirdPerson/Maps/ThirdPersonMap/E/FR/LBG6LPN5JCL3FMVSI2CK6R.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdd4d1f61d282938625bce254ecd9b6dbb344fb5f06c2f92c62b660319ead582 +size 2580 diff --git a/ai_fighter/AI_Fight_Sim/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/VW/TY7TSUER9KKGHX2BMKSL0L.uasset b/ai_fighter/AI_Fight_Sim/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/VW/TY7TSUER9KKGHX2BMKSL0L.uasset new file mode 100644 index 0000000..226bcbb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Content/__ExternalObjects__/ThirdPerson/Maps/ThirdPersonMap/4/VW/TY7TSUER9KKGHX2BMKSL0L.uasset @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6076afd5293482c4f21d2acdf64fd0ee7f7ae8aa2707d774c567da6d93955b5f +size 2011 diff --git a/ai_fighter/AI_Fight_Sim/Platforms/HoloLens/Config/HoloLensEngine.ini b/ai_fighter/AI_Fight_Sim/Platforms/HoloLens/Config/HoloLensEngine.ini new file mode 100644 index 0000000..7a24085 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Platforms/HoloLens/Config/HoloLensEngine.ini @@ -0,0 +1,32 @@ + + +[/Script/HoloLensPlatformEditor.HoloLensTargetSettings] +bBuildForEmulation=False +bBuildForDevice=True +bUseNameForLogo=True +bBuildForRetailWindowsStore=False +bAutoIncrementVersion=False +bShouldCreateAppInstaller=False +AppInstallerInstallationURL= +HoursBetweenUpdateChecks=0 +bEnablePIXProfiling=False +TileBackgroundColor=(B=64,G=0,R=0,A=255) +SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255) ++PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=()) +TargetDeviceFamily=Windows.Holographic +MinimumPlatformVersion=10.0.18362.0 +MaximumPlatformVersionTested=10.0.19041.0 +MaxTrianglesPerCubicMeter=500.000000 +SpatialMeshingVolumeSize=20.000000 +CompilerVersion=Default +Windows10SDKVersion=10.0.18362.0 ++CapabilityList=internetClientServer ++CapabilityList=privateNetworkClientServer ++Uap2CapabilityList=spatialPerception +bSetDefaultCapabilities=False +SpatializationPlugin= +SourceDataOverridePlugin= +ReverbPlugin= +OcclusionPlugin= +SoundCueCookQualityIndex=-1 + diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/NeuralNetworkAIController.uplugin b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/NeuralNetworkAIController.uplugin new file mode 100644 index 0000000..27cdcf5 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/NeuralNetworkAIController.uplugin @@ -0,0 +1,24 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.0", + "FriendlyName": "NeuralNetworkAIController", + "Description": "", + "Category": "Other", + "CreatedBy": "Jacob VanDomelen", + "CreatedByURL": "", + "DocsURL": "", + "MarketplaceURL": "", + "SupportURL": "", + "CanContainContent": true, + "IsBetaVersion": false, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "NeuralNetworkAIController", + "Type": "Runtime", + "LoadingPhase": "PostEngineInit" + } + ] +} \ No newline at end of file diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Resources/Icon128.png b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Resources/Icon128.png new file mode 100644 index 0000000..26245f6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Resources/Icon128.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7239efaeefbd82de33ebe18518e50de075ea4188a468a9e4991396433d2275f +size 12699 diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/NeuralNetworkAIController.Build.cs b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/NeuralNetworkAIController.Build.cs new file mode 100644 index 0000000..9a5dd92 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/NeuralNetworkAIController.Build.cs @@ -0,0 +1,59 @@ +// Copyright Epic Games, Inc. All Rights Reserved. + +using System.IO; +using UnrealBuildTool; + +public class NeuralNetworkAIController : ModuleRules +{ + public NeuralNetworkAIController(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicIncludePaths.AddRange( + new string[] { + // ... add public include paths required here ... + Path.Combine(ModuleDirectory, "ThirdParty", "FANN", "include") + } + ); + PublicSystemLibraryPaths.Add(Path.Combine(ModuleDirectory, "ThirdParty", "FANN", "include")); + + + PrivateIncludePaths.AddRange( + new string[] { + // ... add other private include paths required here ... + } + ); + + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + // ... add other public dependencies that you statically link with here ... + } + ); + + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + // ... add private dependencies that you statically link with here ... + } + ); + + + DynamicallyLoadedModuleNames.AddRange( + new string[] + { + // ... add any modules that your module loads dynamically here ... + //Path.Combine(ModuleDirectory, "ThirdParty", "FANN", "bin", "fann.dll") + } + ); + + PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, "ThirdParty", "FANN", "lib", "fann.lib")); + } +} diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Private/FannAIController.cpp b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Private/FannAIController.cpp new file mode 100644 index 0000000..a678121 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Private/FannAIController.cpp @@ -0,0 +1,91 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "FannAIController.h" +#include "string" +#include "fann.h" + +UFannAIController::UFannAIController() : NeuralNetwork(nullptr) +{ +} + +UFannAIController::~UFannAIController() +{ + if (NeuralNetwork != nullptr) + { + // Clean up the neural network when the handler is destroyed + fann_destroy(NeuralNetwork); + } +} + +void UFannAIController::LoadNeuralNetworkFromFile(const FString& FilePath) +{ + std::string FilePathSTD = TCHAR_TO_UTF8(*FilePath); + + // Attempt to load the neural network + NeuralNetwork = fann_create_from_file(FilePathSTD.c_str()); + + if (NeuralNetwork) { + // Neural network loaded successfully, print a message + UE_LOG(LogTemp, Display, TEXT("Neural network loaded successfully.")) + } + else { + // Failed to load neural network, print an error message + UE_LOG(LogTemp, Error, TEXT("Failed to load neural network.")) + } +} + +FNeuralNetworkOutput UFannAIController::RunNeuralNetwork(const FNeuralNetworkInput& Input) +{ + FNeuralNetworkOutput Output; + + if (NeuralNetwork == nullptr) + { + UE_LOG(LogTemp, Warning, TEXT("NeuralNetwork is not loaded.")); + return Output; // Return empty output if neural network is not loaded + } + + // Prepare the input array for the neural network based on the input struct + float inputArray[] = { + Input.Distance, + Input.EnemyOrientationVertical, + Input.EnemyOrientationHorizontal, + Input.EnemyCharacterWorldOrientation, + Input.CameraWorldOrientation, + Input.CharacterWorldOrientation, + Input.EnemyPerformingAction, + Input.EnemyRolling, + Input.EnemyKnockback, + Input.EnemyLightAttack, + Input.EnemyHeavyAttack, + Input.EnemySpecialAttack, + Input.PlayerRolling, + Input.PlayerKnockback, + Input.PlayerLightAttack, + Input.PlayerHeavyAttack, + Input.PlayerSpecialAttack, + Input.PlayerStamina, + Input.PlayerLightAttackLimit, + Input.PlayerHeavyAttackLimit, + Input.PlayerSpecialAttackLimit, + Input.Time + }; + + // Assuming fann_run returns a pointer to the output array from the neural network + float* outputArray = fann_run(NeuralNetwork, inputArray); + + // Map the neural network's output back to the FNeuralNetworkOutput struct + // Ensure the size of outputArray matches the expected output size + Output.VerticalMovement = outputArray[0]; + Output.HorizontalMovement = outputArray[1]; + Output.RotationYaw = outputArray[2]; + Output.RotationPitch = outputArray[3]; + Output.LightAttack = outputArray[4]; + Output.HeavyAttack = outputArray[5]; + Output.SpecialAttack = outputArray[6]; + Output.Roll = outputArray[7]; + + return Output; +} + + diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Private/NeuralNetworkAIController.cpp b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Private/NeuralNetworkAIController.cpp new file mode 100644 index 0000000..20db679 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Private/NeuralNetworkAIController.cpp @@ -0,0 +1,18 @@ +#include "NeuralNetworkAIController.h" +#include "Modules/ModuleManager.h" + +#define LOCTEXT_NAMESPACE "FNeuralNetworkAIControllerModule" + +void FNeuralNetworkAIControllerModule::StartupModule() +{ + // Initialization logic here +} + +void FNeuralNetworkAIControllerModule::ShutdownModule() +{ + // Cleanup logic here +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FNeuralNetworkAIControllerModule, NeuralNetworkAIController) \ No newline at end of file diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Public/FannAIController.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Public/FannAIController.h new file mode 100644 index 0000000..74bf275 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Public/FannAIController.h @@ -0,0 +1,142 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "fann.h" +#include "FannAIController.generated.h" + +USTRUCT(BlueprintType) +struct FNeuralNetworkInput +{ + GENERATED_BODY() + +public: + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float Distance; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyOrientationVertical; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyOrientationHorizontal; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyCharacterWorldOrientation; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float CameraWorldOrientation; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float CharacterWorldOrientation; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyPerformingAction; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyRolling; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyKnockback; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyLightAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemyHeavyAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float EnemySpecialAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerRolling; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerKnockback; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerLightAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerHeavyAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerSpecialAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerStamina; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerLightAttackLimit; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerHeavyAttackLimit; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float PlayerSpecialAttackLimit; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float Time; + + // Constructor for easy initialization + FNeuralNetworkInput() {} +}; + +USTRUCT(BlueprintType) +struct FNeuralNetworkOutput +{ + GENERATED_BODY() + +public: + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float VerticalMovement; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float HorizontalMovement; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float RotationYaw; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float RotationPitch; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float LightAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float HeavyAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float SpecialAttack; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Neural Network") + float Roll; + + // Constructor for easy initialization + FNeuralNetworkOutput() {} +}; + +/** + * + */ +UCLASS(Blueprintable) +class NEURALNETWORKAICONTROLLER_API UFannAIController : public UObject +{ + GENERATED_BODY() + +public: + UFannAIController(); + virtual ~UFannAIController(); + + // Load a neural network from a file + UFUNCTION(BlueprintCallable, Category="Neural Network") + void LoadNeuralNetworkFromFile(const FString& FilePath); + + UFUNCTION(BlueprintCallable, Category = "Neural Network") + FNeuralNetworkOutput RunNeuralNetwork(const FNeuralNetworkInput& Input); + +private: + struct fann* NeuralNetwork; + +}; diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Public/NeuralNetworkAIController.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Public/NeuralNetworkAIController.h new file mode 100644 index 0000000..0251b0f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/Public/NeuralNetworkAIController.h @@ -0,0 +1,10 @@ +#pragma once + +#include "Modules/ModuleManager.h" + +class FNeuralNetworkAIControllerModule : public IModuleInterface +{ +public: + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/doublefann.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/doublefann.h new file mode 100644 index 0000000..247779f --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/doublefann.h @@ -0,0 +1,33 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __doublefann_h__ +#define __doublefann_h__ + +typedef double fann_type; + +#undef DOUBLEFANN +#define DOUBLEFANN +#define FANNPRINTF "%.20e" +#define FANNSCANF "%le" + +#define FANN_INCLUDE +#include "fann.h" + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann.h new file mode 100644 index 0000000..5d4c0b7 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann.h @@ -0,0 +1,661 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +/* This file defines the user interface to the fann library. + It is included from fixedfann.h, floatfann.h and doublefann.h and should + NOT be included directly. If included directly it will react as if + floatfann.h was included. +*/ + +/* Section: FANN Creation/Execution + + The FANN library is designed to be very easy to use. + A feedforward ann can be created by a simple function, while + other ANNs can be created just as easily. The ANNs can be trained by + and executed by . + + All of this can be done without much knowledge of the internals of ANNs, although the ANNs + created will still be powerful and effective. If you have more knowledge about ANNs, and desire + more control, almost every part of the ANNs can be parametrized to create specialized and highly + optimal ANNs. + */ +/* Group: Creation, Destruction & Execution */ + +#ifndef FANN_INCLUDE +/* just to allow for inclusion of fann.h in normal stuations where only floats are needed */ +#ifdef FIXEDFANN +#include "fixedfann.h" +#else +#include "floatfann.h" +#endif /* FIXEDFANN */ + +#else + +/* COMPAT_TIME REPLACEMENT */ +#ifndef _WIN32 +#include +#else /* _WIN32 */ +#if !defined(_MSC_EXTENSIONS) && !defined(_INC_WINDOWS) +extern unsigned long __stdcall GetTickCount(void); + +#else /* _MSC_EXTENSIONS */ +#define WIN32_LEAN_AND_MEAN +#include +#endif /* _MSC_EXTENSIONS */ +#endif /* _WIN32 */ + +#ifndef __fann_h__ +#define __fann_h__ + +#ifdef __cplusplus +extern "C" { + +#ifndef __cplusplus +} /* to fool automatic indention engines */ +#endif +#endif /* __cplusplus */ + +#ifndef NULL +#define NULL 0 +#endif /* NULL */ + +/* ----- Macros used to define DLL external entrypoints ----- */ +/* + DLL Export, import and calling convention for Windows. + Only defined for Microsoft VC++ FANN_EXTERNAL indicates + that a function will be exported/imported from a dll + FANN_API ensures that the DLL calling convention + will be used for a function regardless of the calling convention + used when compiling. + + For a function to be exported from a DLL its prototype and + declaration must be like this: + FANN_EXTERNAL void FANN_API function(char *argument) + + The following ifdef block is a way of creating macros which + make exporting from a DLL simple. All files within a DLL are + compiled with the FANN_DLL_EXPORTS symbol defined on the + command line. This symbol should not be defined on any project + that uses this DLL. This way any other project whose source + files include this file see FANN_EXTERNAL functions as being imported + from a DLL, whereas a DLL sees symbols defined with this + macro as being exported which makes calls more efficient. + The __stdcall calling convention is used for functions in a + windows DLL. + + The callback functions for fann_set_callback must be declared as FANN_API + so the DLL and the application program both use the same + calling convention. +*/ + +/* + The following sets the default for MSVC++ 2003 or later to use + the fann dll's. To use a lib or fixedfann.c, floatfann.c or doublefann.c + with those compilers FANN_NO_DLL has to be defined before + including the fann headers. + The default for previous MSVC compilers such as VC++ 6 is not + to use dll's. To use dll's FANN_USE_DLL has to be defined before + including the fann headers. +*/ +#if defined(_MSC_VER) && (_MSC_VER > 1300) +#ifndef FANN_NO_DLL +#define FANN_USE_DLL +#endif /* FANN_USE_LIB */ +#endif /* _MSC_VER */ +#if defined(_MSC_VER) && (defined(FANN_USE_DLL) || defined(FANN_DLL_EXPORTS)) +#ifdef FANN_DLL_EXPORTS +#define FANN_EXTERNAL __declspec(dllexport) +#else /* */ +#define FANN_EXTERNAL __declspec(dllimport) +#endif /* FANN_DLL_EXPORTS*/ +#define FANN_API __stdcall +#else /* */ +#define FANN_EXTERNAL +#define FANN_API +#endif /* _MSC_VER */ +/* ----- End of macros used to define DLL external entrypoints ----- */ + +#include "fann_error.h" +#include "fann_activation.h" +#include "fann_data.h" +#include "fann_internal.h" +#include "fann_train.h" +#include "fann_cascade.h" +#include "fann_io.h" + +/* Function: fann_create_standard + + Creates a standard fully connected backpropagation neural network. + + There will be a bias neuron in each layer (except the output layer), + and this bias neuron will be connected to all neurons in the next layer. + When running the network, the bias nodes always emits 1. + + To destroy a use the function. + + Parameters: + num_layers - The total number of layers including the input and the output layer. + ... - Integer values determining the number of neurons in each layer starting with + the input layer and ending with the output layer. + + Returns: + A pointer to the newly created . + + Example: + > // Creating an ANN with 2 input neurons, 1 output neuron, + > // and two hidden layers with 8 and 9 neurons + > struct fann *ann = fann_create_standard(4, 2, 8, 9, 1); + + See also: + , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_create_standard(unsigned int num_layers, ...); + +/* Function: fann_create_standard_array + Just like , but with an array of layer sizes + instead of individual parameters. + + Example: + > // Creating an ANN with 2 input neurons, 1 output neuron, + > // and two hidden layers with 8 and 9 neurons + > unsigned int layers[4] = {2, 8, 9, 1}; + > struct fann *ann = fann_create_standard_array(4, layers); + + See also: + , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_create_standard_array(unsigned int num_layers, + const unsigned int *layers); + +/* Function: fann_create_sparse + + Creates a standard backpropagation neural network, which is not fully connected. + + Parameters: + connection_rate - The connection rate controls how many connections there will be in + the network. If the connection rate is set to 1, the network will be fully connected, but if it + is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the + same result as num_layers - The total number of layers including the input + and the output layer. + ... - Integer values determining the number of neurons in each layer starting with + the input layer and ending with the output layer. + + Returns: + A pointer to the newly created . + + See also: + , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_create_sparse(float connection_rate, + unsigned int num_layers, ...); + +/* Function: fann_create_sparse_array + Just like , but with an array of layer sizes + instead of individual parameters. + + See for a description of the parameters. + + See also: + , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_create_sparse_array(float connection_rate, + unsigned int num_layers, + const unsigned int *layers); + +/* Function: fann_create_shortcut + + Creates a standard backpropagation neural network, which is fully connected and which + also has shortcut connections. + + Shortcut connections are connections that skip layers. A fully connected network with + shortcut connections is a network where all neurons are connected to all neurons in later layers. + Including direct connections from the input layer to the output layer. + + See for a description of the parameters. + + See also: + , , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_create_shortcut(unsigned int num_layers, ...); + +/* Function: fann_create_shortcut_array + Just like , but with an array of layer sizes + instead of individual parameters. + + See for a description of the parameters. + + See also: + , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_create_shortcut_array(unsigned int num_layers, + const unsigned int *layers); +/* Function: fann_destroy + Destroys the entire network, properly freeing all the associated memory. + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL void FANN_API fann_destroy(struct fann *ann); + +/* Function: fann_copy + Creates a copy of a fann structure. + + Data in the user data is not copied, but the user data pointer is copied. + + This function appears in FANN >= 2.2.0. +*/ +FANN_EXTERNAL struct fann *FANN_API fann_copy(struct fann *ann); + +/* Function: fann_run + Will run input through the neural network, returning an array of outputs, the number of + which being equal to the number of neurons in the output layer. + + See also: + + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL fann_type *FANN_API fann_run(struct fann *ann, fann_type *input); + +/* Function: fann_randomize_weights + Give each connection a random weight between *min_weight* and *max_weight* + + From the beginning the weights are random between -0.1 and 0.1. + + See also: + + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL void FANN_API fann_randomize_weights(struct fann *ann, fann_type min_weight, + fann_type max_weight); + +/* Function: fann_init_weights + Initialize the weights using Widrow + Nguyen's algorithm. + + This function behaves similarly to fann_randomize_weights. It will use the algorithm + developed by Derrick Nguyen and Bernard Widrow to set the weights in such a way as to speed up + training. This technique is not always successful, and in some cases can be less efficient than a + purely random initialization. + + The algorithm requires access to the range of the input data (ie, largest and smallest + input), and therefore accepts a second argument, data, which is the training data that will be + used to train the network. + + See also: + , + + This function appears in FANN >= 1.1.0. +*/ +FANN_EXTERNAL void FANN_API fann_init_weights(struct fann *ann, struct fann_train_data *train_data); + +/* Function: fann_print_connections + Will print the connections of the ann in a compact matrix, for easy viewing of the internals + of the ann. + + The output from fann_print_connections on a small (2 2 1) network trained on the xor problem + >Layer / Neuron 012345 + >L 1 / N 3 BBa... + >L 1 / N 4 BBA... + >L 1 / N 5 ...... + >L 2 / N 6 ...BBA + >L 2 / N 7 ...... + + This network has five real neurons and two bias neurons. This gives a total of seven neurons + named from 0 to 6. The connections between these neurons can be seen in the matrix. "." is a + place where there is no connection, while a character tells how strong the connection is on + a scale from a-z. The two real neurons in the hidden layer (neuron 3 and 4 in layer 1) have + connections from the three neurons in the previous layer as is visible in the first two + lines. The output neuron (6) has connections from the three neurons in the hidden layer 3 - 5 as + is visible in the fourth line. + + To simplify the matrix output neurons are not visible as neurons that connections can come + from, and input and bias neurons are not visible as neurons that connections can go to. + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_print_connections(struct fann *ann); + +/* Group: Parameters */ +/* Function: fann_print_parameters + + Prints all of the parameters and options of the ANN + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_print_parameters(struct fann *ann); + +/* Function: fann_get_num_input + + Get the number of input neurons. + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_num_input(struct fann *ann); + +/* Function: fann_get_num_output + + Get the number of output neurons. + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_num_output(struct fann *ann); + +/* Function: fann_get_total_neurons + + Get the total number of neurons in the entire network. This number does also include the + bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons. + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_total_neurons(struct fann *ann); + +/* Function: fann_get_total_connections + + Get the total number of connections in the entire network. + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_total_connections(struct fann *ann); + +/* Function: fann_get_network_type + + Get the type of neural network it was created as. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + Returns: + The neural network type from enum + + See Also: + + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL enum fann_nettype_enum FANN_API fann_get_network_type(struct fann *ann); + +/* Function: fann_get_connection_rate + + Get the connection rate used when the network was created + + Parameters: + ann - A previously created neural network structure of + type pointer. + + Returns: + The connection rate + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL float FANN_API fann_get_connection_rate(struct fann *ann); + +/* Function: fann_get_num_layers + + Get the number of layers in the network + + Parameters: + ann - A previously created neural network structure of + type pointer. + + Returns: + The number of layers in the neural network + + Example: + > // Obtain the number of layers in a neural network + > struct fann *ann = fann_create_standard(4, 2, 8, 9, 1); + > unsigned int num_layers = fann_get_num_layers(ann); + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_num_layers(struct fann *ann); + +/*Function: fann_get_layer_array + + Get the number of neurons in each layer in the network. + + Bias is not included so the layers match the fann_create functions. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + The layers array must be preallocated to at least + sizeof(unsigned int) * fann_num_layers() long. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_get_layer_array(struct fann *ann, unsigned int *layers); + +/* Function: fann_get_bias_array + + Get the number of bias in each layer in the network. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + The bias array must be preallocated to at least + sizeof(unsigned int) * fann_num_layers() long. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_get_bias_array(struct fann *ann, unsigned int *bias); + +/* Function: fann_get_connection_array + + Get the connections in the network. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + The connections array must be preallocated to at least + sizeof(struct fann_connection) * fann_get_total_connections() long. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_get_connection_array(struct fann *ann, + struct fann_connection *connections); + +/* Function: fann_set_weight_array + + Set connections in the network. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + Only the weights can be changed, connections and weights are ignored + if they do not already exist in the network. + + The array must have sizeof(struct fann_connection) * num_connections size. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_set_weight_array(struct fann *ann, + struct fann_connection *connections, + unsigned int num_connections); + +/* Function: fann_set_weight + + Set a connection in the network. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + Only the weights can be changed. The connection/weight is + ignored if it does not already exist in the network. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_set_weight(struct fann *ann, unsigned int from_neuron, + unsigned int to_neuron, fann_type weight); + +/* Function: fann_get_weights + + Get all the network weights. + + Parameters: + ann - A previously created neural network structure of + type pointer. + weights - A fann_type pointer to user data. It is the responsibility + of the user to allocate sufficient space to store all the weights. + + This function appears in FANN >= x.y.z +*/ +FANN_EXTERNAL void FANN_API fann_get_weights(struct fann *ann, fann_type *weights); + +/* Function: fann_set_weights + + Set network weights. + + Parameters: + ann - A previously created neural network structure of + type pointer. + weights - A fann_type pointer to user data. It is the responsibility + of the user to make the weights array sufficient long + to store all the weights. + + This function appears in FANN >= x.y.z +*/ +FANN_EXTERNAL void FANN_API fann_set_weights(struct fann *ann, fann_type *weights); + +/* Function: fann_set_user_data + + Store a pointer to user defined data. The pointer can be + retrieved with for example in a + callback. It is the user's responsibility to allocate and + deallocate any data that the pointer might point to. + + Parameters: + ann - A previously created neural network structure of + type pointer. + user_data - A void pointer to user defined data. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_set_user_data(struct fann *ann, void *user_data); + +/* Function: fann_get_user_data + + Get a pointer to user defined data that was previously set + with . It is the user's responsibility to + allocate and deallocate any data that the pointer might point to. + + Parameters: + ann - A previously created neural network structure of + type pointer. + + Returns: + A void pointer to user defined data. + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void *FANN_API fann_get_user_data(struct fann *ann); + +/* Function: fann_disable_seed_rand + + Disables the automatic random generator seeding that happens in FANN. + + Per default FANN will always seed the random generator when creating a new network, + unless FANN_NO_SEED is defined during compilation of the library. This method can + disable this at runtime. + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL void FANN_API fann_disable_seed_rand(); + +/* Function: fann_enable_seed_rand + + Enables the automatic random generator seeding that happens in FANN. + + Per default FANN will always seed the random generator when creating a new network, + unless FANN_NO_SEED is defined during compilation of the library. This method can + disable this at runtime. + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL void FANN_API fann_enable_seed_rand(); + +#ifdef FIXEDFANN + +/* Function: fann_get_decimal_point + + Returns the position of the decimal point in the ann. + + This function is only available when the ANN is in fixed point mode. + + The decimal point is described in greater detail in the tutorial . + + See also: + , , , + + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_decimal_point(struct fann *ann); + +/* Function: fann_get_multiplier + + returns the multiplier that fix point data is multiplied with. + + This function is only available when the ANN is in fixed point mode. + + The multiplier is the used to convert between floating point and fixed point notation. + A floating point number is multiplied with the multiplier in order to get the fixed point + number and visa versa. + + The multiplier is described in greater detail in the tutorial . + + See also: + , , , + + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_multiplier(struct fann *ann); + +#endif /* FIXEDFANN */ + +#ifdef __cplusplus +#ifndef __cplusplus +/* to fool automatic indention engines */ +{ + +#endif +} +#endif /* __cplusplus */ + +#endif /* __fann_h__ */ + +#endif /* NOT FANN_INCLUDE */ diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_activation.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_activation.h new file mode 100644 index 0000000..9c634ee --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_activation.h @@ -0,0 +1,183 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_activation_h__ +#define __fann_activation_h__ +/* internal include file, not to be included directly + */ + +/* Implementation of the activation functions + */ + +/* stepwise linear functions used for some of the activation functions */ + +/* defines used for the stepwise linear functions */ + +/* Uses the single precision version of math.h functions if +__doublefann_h__ is not defined +*/ +#ifndef __doublefann_h__ +#define FANN_EXP(x) expf(x) +#define FANN_SIN(x) sinf(x) +#define FANN_COS(x) cosf(x) +#else +#define FANN_EXP(x) exp(x) +#define FANN_SIN(x) sin(x) +#define FANN_COS(x) cos(x) +#endif + +#define fann_linear_func(v1, r1, v2, r2, sum) \ + (((((r2) - (r1)) * ((sum) - (v1))) / ((v2) - (v1))) + (r1)) +#define fann_stepwise(v1, v2, v3, v4, v5, v6, r1, r2, r3, r4, r5, r6, min, max, sum) \ + (sum < v5 ? (sum < v3 ? (sum < v2 ? (sum < v1 ? min : fann_linear_func(v1, r1, v2, r2, sum)) \ + : fann_linear_func(v2, r2, v3, r3, sum)) \ + : (sum < v4 ? fann_linear_func(v3, r3, v4, r4, sum) \ + : fann_linear_func(v4, r4, v5, r5, sum))) \ + : (sum < v6 ? fann_linear_func(v5, r5, v6, r6, sum) : max)) + +/* FANN_LINEAR */ +/* #define fann_linear(steepness, sum) fann_mult(steepness, sum) */ +#define fann_linear_derive(steepness, value) (steepness) + +/* FANN_SIGMOID */ +/* #define fann_sigmoid(steepness, sum) (1.0f/(1.0f + exp(-2.0f * steepness * sum))) */ +#define fann_sigmoid_real(sum) (1.0f / (1.0f + FANN_EXP(-2.0f * sum))) +#define fann_sigmoid_derive(steepness, value) (2.0f * steepness * value * (1.0f - value)) + +/* FANN_SIGMOID_SYMMETRIC */ +/* #define fann_sigmoid_symmetric(steepness, sum) (2.0f/(1.0f + exp(-2.0f * steepness * sum)) + * - 1.0f) */ +#define fann_sigmoid_symmetric_real(sum) (2.0f / (1.0f + FANN_EXP(-2.0f * sum)) - 1.0f) +#define fann_sigmoid_symmetric_derive(steepness, value) steepness*(1.0f - (value * value)) + +/* FANN_GAUSSIAN */ +/* #define fann_gaussian(steepness, sum) (exp(-sum * steepness * sum * steepness)) */ +#define fann_gaussian_real(sum) (FANN_EXP(-sum * sum)) +#define fann_gaussian_derive(steepness, value, sum) (-2.0f * sum * value * steepness * steepness) + +/* FANN_GAUSSIAN_SYMMETRIC */ +/* #define fann_gaussian_symmetric(steepness, sum) ((exp(-sum * steepness * sum * + * steepness)*2.0)-1.0) */ +#define fann_gaussian_symmetric_real(sum) ((FANN_EXP(-sum * sum) * 2.0f) - 1.0f) +#define fann_gaussian_symmetric_derive(steepness, value, sum) \ + (-2.0f * sum * (value + 1.0f) * steepness * steepness) + +/* FANN_ELLIOT */ +/* #define fann_elliot(steepness, sum) (((sum * steepness) / 2.0f) / (1.0f + fann_abs(sum * + * steepness)) + 0.5f) */ +#define fann_elliot_real(sum) (((sum) / 2.0f) / (1.0f + fann_abs(sum)) + 0.5f) +#define fann_elliot_derive(steepness, value, sum) \ + (steepness * 1.0f / (2.0f * (1.0f + fann_abs(sum)) * (1.0f + fann_abs(sum)))) + +/* FANN_ELLIOT_SYMMETRIC */ +/* #define fann_elliot_symmetric(steepness, sum) ((sum * steepness) / (1.0f + fann_abs(sum * + * steepness)))*/ +#define fann_elliot_symmetric_real(sum) ((sum) / (1.0f + fann_abs(sum))) +#define fann_elliot_symmetric_derive(steepness, value, sum) \ + (steepness * 1.0f / ((1.0f + fann_abs(sum)) * (1.0f + fann_abs(sum)))) + +/* FANN_SIN_SYMMETRIC */ +#define fann_sin_symmetric_real(sum) (FANN_SIN(sum)) +#define fann_sin_symmetric_derive(steepness, sum) (steepness * cos(steepness * sum)) + +/* FANN_COS_SYMMETRIC */ +#define fann_cos_symmetric_real(sum) (FANN_COS(sum)) +#define fann_cos_symmetric_derive(steepness, sum) (steepness * -sin(steepness * sum)) + +/* FANN_SIN */ +#define fann_sin_real(sum) (FANN_SIN(sum) / 2.0f + 0.5f) +#define fann_sin_derive(steepness, sum) (steepness * cos(steepness * sum) / 2.0f) + +/* FANN_COS */ +#define fann_cos_real(sum) (FANN_COS(sum) / 2.0f + 0.5f) +#define fann_cos_derive(steepness, sum) (steepness * -sin(steepness * sum) / 2.0f) + +#define fann_activation_switch(activation_function, value, result) \ + switch (activation_function) { \ + case FANN_LINEAR: \ + result = (fann_type)value; \ + break; \ + case FANN_LINEAR_PIECE: \ + result = (fann_type)((value < 0) ? 0 : (value > 1) ? 1 : value); \ + break; \ + case FANN_LINEAR_PIECE_SYMMETRIC: \ + result = (fann_type)((value < -1) ? -1 : (value > 1) ? 1 : value); \ + break; \ + case FANN_SIGMOID: \ + result = (fann_type)fann_sigmoid_real(value); \ + break; \ + case FANN_SIGMOID_SYMMETRIC: \ + result = (fann_type)fann_sigmoid_symmetric_real(value); \ + break; \ + case FANN_SIGMOID_SYMMETRIC_STEPWISE: \ + result = (fann_type)fann_stepwise( \ + ((fann_type)-2.64665293693542480469e+00), ((fann_type)-1.47221934795379638672e+00), \ + ((fann_type)-5.49306154251098632812e-01), ((fann_type)5.49306154251098632812e-01), \ + ((fann_type)1.47221934795379638672e+00), ((fann_type)2.64665293693542480469e+00), \ + ((fann_type)-9.90000009536743164062e-01), ((fann_type)-8.99999976158142089844e-01), \ + ((fann_type)-5.00000000000000000000e-01), ((fann_type)5.00000000000000000000e-01), \ + ((fann_type)8.99999976158142089844e-01), ((fann_type)9.90000009536743164062e-01), -1, 1, \ + value); \ + break; \ + case FANN_SIGMOID_STEPWISE: \ + result = (fann_type)fann_stepwise( \ + ((fann_type)-2.64665246009826660156e+00), ((fann_type)-1.47221946716308593750e+00), \ + ((fann_type)-5.49306154251098632812e-01), ((fann_type)5.49306154251098632812e-01), \ + ((fann_type)1.47221934795379638672e+00), ((fann_type)2.64665293693542480469e+00), \ + ((fann_type)4.99999988824129104614e-03), ((fann_type)5.00000007450580596924e-02), \ + ((fann_type)2.50000000000000000000e-01), ((fann_type)7.50000000000000000000e-01), \ + ((fann_type)9.49999988079071044922e-01), ((fann_type)9.95000004768371582031e-01), 0, 1, \ + value); \ + break; \ + case FANN_THRESHOLD: \ + result = (fann_type)((value < 0) ? 0 : 1); \ + break; \ + case FANN_THRESHOLD_SYMMETRIC: \ + result = (fann_type)((value < 0) ? -1 : 1); \ + break; \ + case FANN_GAUSSIAN: \ + result = (fann_type)fann_gaussian_real(value); \ + break; \ + case FANN_GAUSSIAN_SYMMETRIC: \ + result = (fann_type)fann_gaussian_symmetric_real(value); \ + break; \ + case FANN_ELLIOT: \ + result = (fann_type)fann_elliot_real(value); \ + break; \ + case FANN_ELLIOT_SYMMETRIC: \ + result = (fann_type)fann_elliot_symmetric_real(value); \ + break; \ + case FANN_SIN_SYMMETRIC: \ + result = (fann_type)fann_sin_symmetric_real(value); \ + break; \ + case FANN_COS_SYMMETRIC: \ + result = (fann_type)fann_cos_symmetric_real(value); \ + break; \ + case FANN_SIN: \ + result = (fann_type)fann_sin_real(value); \ + break; \ + case FANN_COS: \ + result = (fann_type)fann_cos_real(value); \ + break; \ + case FANN_GAUSSIAN_STEPWISE: \ + result = 0; \ + break; \ + } + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_cascade.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_cascade.h new file mode 100644 index 0000000..fd56367 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_cascade.h @@ -0,0 +1,550 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_cascade_h__ +#define __fann_cascade_h__ + +/* Section: FANN Cascade Training + Cascade training differs from ordinary training in the sense that it starts with an empty neural + network and then adds neurons one by one, while it trains the neural network. The main benefit of + this approach is that you do not have to guess the number of hidden layers and neurons prior to + training, but cascade training has also proved better at solving some problems. + + The basic idea of cascade training is that a number of candidate neurons are trained separate + from the real network, then the most promising of these candidate neurons is inserted into the + neural network. Then the output connections are trained and new candidate neurons are prepared. + The candidate neurons are created as shortcut connected neurons in a new hidden layer, which + means that the final neural network will consist of a number of hidden layers with one shortcut + connected neuron in each. +*/ + +/* Group: Cascade Training */ + +#ifndef FIXEDFANN +/* Function: fann_cascadetrain_on_data + + Trains on an entire dataset, for a period of time using the Cascade2 training algorithm. + This algorithm adds neurons to the neural network while training, which means that it + needs to start with an ANN without any hidden layers. The neural network should also use + shortcut connections, so should be used to create the ANN like this: + >struct fann *ann = fann_create_shortcut(2, fann_num_input_train_data(train_data), + fann_num_output_train_data(train_data)); + + This training uses the parameters set using the fann_set_cascade_..., but it also uses another + training algorithm as it's internal training algorithm. This algorithm can be set to either + FANN_TRAIN_RPROP or FANN_TRAIN_QUICKPROP by , and the parameters + set for these training algorithms will also affect the cascade training. + + Parameters: + ann - The neural network + data - The data, which should be used during training + max_neuron - The maximum number of neurons to be added to neural network + neurons_between_reports - The number of neurons between printing a status report to + stdout. A value of zero means no reports should be printed. desired_error - The desired + or , depending on which stop function is chosen by + . + + Instead of printing out reports every neurons_between_reports, a callback function can be + called (see ). + + See also: + , , + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL void FANN_API fann_cascadetrain_on_data(struct fann *ann, + struct fann_train_data *data, + unsigned int max_neurons, + unsigned int neurons_between_reports, + float desired_error); + +/* Function: fann_cascadetrain_on_file + + Does the same as , but reads the training data directly from a file. + + See also: + + + This function appears in FANN >= 2.0.0. +*/ +FANN_EXTERNAL void FANN_API fann_cascadetrain_on_file(struct fann *ann, const char *filename, + unsigned int max_neurons, + unsigned int neurons_between_reports, + float desired_error); + +/* Group: Parameters */ + +/* Function: fann_get_cascade_output_change_fraction + + The cascade output change fraction is a number between 0 and 1 determining how large a fraction + the value should change within during + training of the output connections, in order for the training not to stagnate. If the training + stagnates, the training of the output connections will be ended and new candidates will be + prepared. + + This means: + If the MSE does not change by a fraction of during a + period of , the training of the output connections + is stopped because the training has stagnated. + + If the cascade output change fraction is low, the output connections will be trained more and if + the fraction is high they will be trained less. + + The default cascade output change fraction is 0.01, which is equivalent to a 1% change in MSE. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL float FANN_API fann_get_cascade_output_change_fraction(struct fann *ann); + +/* Function: fann_set_cascade_output_change_fraction + + Sets the cascade output change fraction. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API +fann_set_cascade_output_change_fraction(struct fann *ann, float cascade_output_change_fraction); + +/* Function: fann_get_cascade_output_stagnation_epochs + + The number of cascade output stagnation epochs determines the number of epochs training is + allowed to continue without changing the MSE by a fraction of + . + + See more info about this parameter in . + + The default number of cascade output stagnation epochs is 12. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_output_stagnation_epochs(struct fann *ann); + +/* Function: fann_set_cascade_output_stagnation_epochs + + Sets the number of cascade output stagnation epochs. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_output_stagnation_epochs( + struct fann *ann, unsigned int cascade_output_stagnation_epochs); + +/* Function: fann_get_cascade_candidate_change_fraction + + The cascade candidate change fraction is a number between 0 and 1 determining how large a + fraction the value should change within + during training of the candidate neurons, in order + for the training not to stagnate. If the training stagnates, the training of the candidate + neurons will be ended and the best candidate will be selected. + + This means: + If the MSE does not change by a fraction of during a + period of , the training of the candidate neurons + is stopped because the training has stagnated. + + If the cascade candidate change fraction is low, the candidate neurons will be trained more and + if the fraction is high they will be trained less. + + The default cascade candidate change fraction is 0.01, which is equivalent to a 1% change in MSE. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL float FANN_API fann_get_cascade_candidate_change_fraction(struct fann *ann); + +/* Function: fann_set_cascade_candidate_change_fraction + + Sets the cascade candidate change fraction. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_candidate_change_fraction( + struct fann *ann, float cascade_candidate_change_fraction); + +/* Function: fann_get_cascade_candidate_stagnation_epochs + + The number of cascade candidate stagnation epochs determines the number of epochs training is + allowed to continue without changing the MSE by a fraction of + . + + See more info about this parameter in . + + The default number of cascade candidate stagnation epochs is 12. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_candidate_stagnation_epochs(struct fann *ann); + +/* Function: fann_set_cascade_candidate_stagnation_epochs + + Sets the number of cascade candidate stagnation epochs. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_candidate_stagnation_epochs( + struct fann *ann, unsigned int cascade_candidate_stagnation_epochs); + +/* Function: fann_get_cascade_weight_multiplier + + The weight multiplier is a parameter which is used to multiply the weights from the candidate + neuron before adding the neuron to the neural network. This parameter is usually between 0 and 1, + and is used to make the training a bit less aggressive. + + The default weight multiplier is 0.4 + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL fann_type FANN_API fann_get_cascade_weight_multiplier(struct fann *ann); + +/* Function: fann_set_cascade_weight_multiplier + + Sets the weight multiplier. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_weight_multiplier(struct fann *ann, + fann_type cascade_weight_multiplier); + +/* Function: fann_get_cascade_candidate_limit + + The candidate limit is a limit for how much the candidate neuron may be trained. + The limit is a limit on the proportion between the MSE and candidate score. + + Set this to a lower value to avoid overfitting and to a higher if overfitting is + not a problem. + + The default candidate limit is 1000.0 + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL fann_type FANN_API fann_get_cascade_candidate_limit(struct fann *ann); + +/* Function: fann_set_cascade_candidate_limit + + Sets the candidate limit. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_candidate_limit(struct fann *ann, + fann_type cascade_candidate_limit); + +/* Function: fann_get_cascade_max_out_epochs + + The maximum out epochs determines the maximum number of epochs the output connections + may be trained after adding a new candidate neuron. + + The default max out epochs is 150 + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_max_out_epochs(struct fann *ann); + +/* Function: fann_set_cascade_max_out_epochs + + Sets the maximum out epochs. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_max_out_epochs(struct fann *ann, + unsigned int cascade_max_out_epochs); + +/* Function: fann_get_cascade_min_out_epochs + + The minimum out epochs determines the minimum number of epochs the output connections + must be trained after adding a new candidate neuron. + + The default min out epochs is 50 + + See also: + + + This function appears in FANN >= 2.2.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_min_out_epochs(struct fann *ann); + +/* Function: fann_set_cascade_min_out_epochs + + Sets the minimum out epochs. + + See also: + + + This function appears in FANN >= 2.2.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_min_out_epochs(struct fann *ann, + unsigned int cascade_min_out_epochs); + +/* Function: fann_get_cascade_max_cand_epochs + + The maximum candidate epochs determines the maximum number of epochs the input + connections to the candidates may be trained before adding a new candidate neuron. + + The default max candidate epochs is 150 + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_max_cand_epochs(struct fann *ann); + +/* Function: fann_set_cascade_max_cand_epochs + + Sets the max candidate epochs. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_max_cand_epochs(struct fann *ann, + unsigned int cascade_max_cand_epochs); + +/* Function: fann_get_cascade_min_cand_epochs + + The minimum candidate epochs determines the minimum number of epochs the input + connections to the candidates may be trained before adding a new candidate neuron. + + The default min candidate epochs is 50 + + See also: + + + This function appears in FANN >= 2.2.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_min_cand_epochs(struct fann *ann); + +/* Function: fann_set_cascade_min_cand_epochs + + Sets the min candidate epochs. + + See also: + + + This function appears in FANN >= 2.2.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_min_cand_epochs(struct fann *ann, + unsigned int cascade_min_cand_epochs); + +/* Function: fann_get_cascade_num_candidates + + The number of candidates used during training (calculated by multiplying + , + and ). + + The actual candidates is defined by the and + arrays. These arrays define the activation functions + and activation steepnesses used for the candidate neurons. If there are 2 activation functions + in the activation function array and 3 steepnesses in the steepness array, then there will be + 2x3=6 different candidates which will be trained. These 6 different candidates can be copied into + several candidate groups, where the only difference between these groups is the initial weights. + If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The + number of candidate groups is defined by . + + The default number of candidates is 6x4x2 = 48 + + See also: + , + , , + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_num_candidates(struct fann *ann); + +/* Function: fann_get_cascade_activation_functions_count + + The number of activation functions in the array. + + The default number of activation functions is 10. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_activation_functions_count(struct fann *ann); + +/* Function: fann_get_cascade_activation_functions + + The cascade activation functions array is an array of the different activation functions used by + the candidates. + + See for a description of which candidate neurons will be + generated by this array. + + The default activation functions are {FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, + FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC, FANN_SIN_SYMMETRIC, + FANN_COS_SYMMETRIC, FANN_SIN, FANN_COS} + + See also: + , + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL enum fann_activationfunc_enum *FANN_API +fann_get_cascade_activation_functions(struct fann *ann); + +/* Function: fann_set_cascade_activation_functions + + Sets the array of cascade candidate activation functions. The array must be just as long + as defined by the count. + + See for a description of which candidate neurons will be + generated by this array. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_cascade_activation_functions( + struct fann *ann, enum fann_activationfunc_enum *cascade_activation_functions, + unsigned int cascade_activation_functions_count); + +/* Function: fann_get_cascade_activation_steepnesses_count + + The number of activation steepnesses in the array. + + The default number of activation steepnesses is 4. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_activation_steepnesses_count(struct fann *ann); + +/* Function: fann_get_cascade_activation_steepnesses + + The cascade activation steepnesses array is an array of the different activation functions used + by the candidates. + + See for a description of which candidate neurons will be + generated by this array. + + The default activation steepnesses is {0.25, 0.50, 0.75, 1.00} + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL fann_type *FANN_API fann_get_cascade_activation_steepnesses(struct fann *ann); + +/* Function: fann_set_cascade_activation_steepnesses + + Sets the array of cascade candidate activation steepnesses. The array must be just as long + as defined by the count. + + See for a description of which candidate neurons will be + generated by this array. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API +fann_set_cascade_activation_steepnesses(struct fann *ann, fann_type *cascade_activation_steepnesses, + unsigned int cascade_activation_steepnesses_count); + +/* Function: fann_get_cascade_num_candidate_groups + + The number of candidate groups is the number of groups of identical candidates which will be used + during training. + + This number can be used to have more candidates without having to define new parameters for the + candidates. + + See for a description of which candidate neurons will be + generated by this parameter. + + The default number of candidate groups is 2 + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_get_cascade_num_candidate_groups(struct fann *ann); + +/* Function: fann_set_cascade_num_candidate_groups + + Sets the number of candidate groups. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API +fann_set_cascade_num_candidate_groups(struct fann *ann, unsigned int cascade_num_candidate_groups); + +#endif /* FIXEDFANN */ + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_cpp.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_cpp.h new file mode 100644 index 0000000..412b752 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_cpp.h @@ -0,0 +1,2968 @@ +#ifndef FANN_CPP_H_INCLUDED +#define FANN_CPP_H_INCLUDED + +#include +#include +/* + * Fast Artificial Neural Network (fann) C++ Wrapper + * Copyright (C) 2004-2006 created by freegoldbar (at) yahoo dot com + * + * This wrapper is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This wrapper is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ + +/* + * Title: FANN C++ Wrapper + * + * Overview: + * + * The Fann Wrapper for C++ provides two classes: + * and . To use the wrapper include + * doublefann.h, floatfann.h or fixedfann.h before the + * fann_cpp.h header file. + * + * To get started see xor_sample.cpp in the examples directory. + * The license is LGPL. Copyright (C) 2004-2006 created by . + * + * + * Note: Notes and differences from C API + * + * - The Fann Wrapper for C++ is a minimal wrapper without use of + * templates or exception handling for efficient use in any environment. + * Benefits include stricter type checking, simpler memory + * management and possibly code completion in program editor. + * - Method names are the same as the function names in the C + * API except the fann_ prefix has been removed. Enums in the + * namespace are similarly defined without the FANN_ prefix. + * - The arguments to the methods are the same as the C API + * except that the struct fann *ann/struct fann_train_data *data + * arguments are encapsulated so they are not present in the + * method signatures or are translated into class references. + * - C++ style constructors have been implemented to make network creation + * easier + * - The neural network and training data is automatically cleaned + * up in the destructors + * - To make the destructors virtual define USE_VIRTUAL_DESTRUCTOR + * before including the header file. + * - Additional methods are available on the training_data class to + * give access to the underlying training data. They are get_input, + * get_output and set_train_data. Finally fann_duplicate_train_data + * has been replaced by a copy constructor. + * + */ + +#include +#include +#include +#include "fann_data_cpp.h" +#include "fann_training_data_cpp.h" + +/* Namespace: FANN + The FANN namespace groups the C++ wrapper definitions */ +namespace FANN { +/* Class: neural_net + is the main neural network class used for both training and execution + + Encapsulation of a neural network and + associated C API functions. +*/ +class neural_net { + public: + /* Constructor: neural_net(network_type_enum net_type, unsigned int num_layers, const unsigned int + *layers) + + Creates a neural network of the desired net_type, based on array of + layers. + + Parameters: + net_type - The desired network type of the neural network + num_layers - The total number of layers including the input and the output layer. + layers - array of the layer sizes + + NOTE: if layers does not have the same size as num_layers, the result is undefined + + Example: + >FANN::neural_net net(LAYER, 3, (unsigned int[]) {2, 3, 1}); + + This function appears in FANN >= 2.3.0. + */ + neural_net(network_type_enum net_type, unsigned int num_layers, const unsigned int *layers) { + switch (net_type) { + case LAYER: + ann = fann_create_standard_array(num_layers, layers); + break; + case SHORTCUT: + ann = fann_create_shortcut_array(num_layers, layers); + break; + } + assert(ann != NULL); + } + + /* Constructor: neural_net(network_type_enum net_type, InputIterator layersBeginIterator, + InputIterator layersEndIterator) + + Creates a neural network of the desired net_type, based on iterator to the + layers. + + Parameters: + net_type - The desired network type of the neural network + layersBeginIterator - begin iterator to the collection of unsigned int layers + layersEndIterator - end iterator to the collection of unsigned int layers + + Example: + >vector layers{2, 3, 4, 5}; + >neural_net net(LAYER, layers.begin(), layers.end()); + + This function appears in FANN >= 2.3.0. + */ + template + neural_net(network_type_enum net_type, InputIterator layersBeginIterator, + InputIterator layersEndIterator) { + unsigned int num_layers = + static_cast(std::distance(layersBeginIterator, layersEndIterator)); + unsigned int *layers = new unsigned int[num_layers]; + std::copy(layersBeginIterator, layersEndIterator, layers); + + switch (net_type) { + case LAYER: + ann = fann_create_standard_array(num_layers, layers); + break; + case SHORTCUT: + ann = fann_create_shortcut_array(num_layers, layers); + break; + } + delete[] layers; + assert(ann != NULL); + } + + /* Constructor: neural_net(network_type_enum net_type, unsigned int num_layers, ...) + + Creates a neural network of the desired net_type. + + Parameters: + num_layers - The total number of layers including the input and the output layer. + ... - Integer values determining the number of neurons in each layer starting with + the input layer and ending with the output layer. + + Example: + >const unsigned int num_layers = 3; + >const unsigned int num_input = 2; + >const unsigned int num_hidden = 3; + >const unsigned int num_output = 1; + > + >FANN::neural_net net(num_layers, num_input, num_hidden, num_output); + + This function appears in FANN >= 2.3.0. + */ + neural_net(network_type_enum net_type, unsigned int num_layers, ...) { + std::unique_ptr data(new unsigned int[num_layers]); + + va_list layers; + va_start(layers, num_layers); + for (unsigned int i = 0; i < num_layers; i++) data.get()[i] = va_arg(layers, unsigned int); + va_end(layers); + + switch (net_type) { + case LAYER: + ann = fann_create_standard_array(num_layers, data.get()); + break; + case SHORTCUT: + ann = fann_create_shortcut_array(num_layers, data.get()); + break; + } + assert(ann != NULL); + } + + /* Constructor: neural_net(float connection_rate, unsigned int num_layers, ...) + + Creates a standard backpropagation neural network, which is sparsely connected, this will + default the to + + Parameters: + connection_rate - The connection rate controls how many connections there will be + in the network. If the connection rate is set to 1, the network will be fully connected, but if + it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield + the same result as num_layers - The total number of layers including the + input and the output layer. + ... - Integer values determining the number of neurons in each layer starting with + the input layer and ending with the output layer. + + This function appears in FANN >= 2.3.0. + */ + neural_net(float connection_rate, unsigned int num_layers, ...) { + std::unique_ptr data(new unsigned int[num_layers]); + + va_list layers; + va_start(layers, num_layers); + for (unsigned int i = 0; i < num_layers; i++) data.get()[i] = va_arg(layers, unsigned int); + va_end(layers); + + ann = fann_create_sparse_array(connection_rate, num_layers, data.get()); + assert(ann != NULL); + } + + /* Constructor: neural_net(float connection_rate, unsigned int num_layers, const unsigned int + *layers) + + Creates a standard backpropagation neural network, which is sparsely connected, this will + default the to + + Parameters: + connection_rate - The connection rate controls how many connections there will be + in the network. If the connection rate is set to 1, the network will be fully connected, but if + it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield + the same result as num_layers - The total number of layers including the + input and the output layer. layers - Integer values determining the number of neurons in each + layer starting with the input layer and ending with the output layer. + + This function appears in FANN >= 2.3.0. + */ + neural_net(float connection_rate, unsigned int num_layers, const unsigned int *layers) { + ann = fann_create_sparse_array(connection_rate, num_layers, layers); + assert(ann != NULL); + } + + /* Constructor: neural_net(const std::string &configuration_file) + + Constructs a backpropagation neural network from a configuration file, + which have been saved by . + + See also: + , + + This function appears in FANN >= 2.3.0. + */ + neural_net(const std::string &configuration_file) { + ann = fann_create_from_file(configuration_file.c_str()); + assert(ann != NULL); + } + + /* Constructor neural_net(const neural_net &other) + + Creates a copy the other neural_net. + */ + neural_net(const neural_net &other) : ann(NULL) { copy_from_struct_fann(other.ann); } + + /* Constructor: neural_net(struct fann *other) + + Creates a copy the other neural_net. + */ + neural_net(struct fann *other) { copy_from_struct_fann(other); } + + /* Constructor: neural_net() - DEPRECATED + + Creates an empty neural net. + Use one of the create functions to create the neural network. + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + , , + */ + neural_net() : ann(NULL) {} + + /* Method: copy_from_struct_fann - DEPRECATED + + Set the internal fann struct to a copy of other + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + */ + void copy_from_struct_fann(struct fann *other) { + destroy(); + if (other != NULL) ann = fann_copy(other); + } + + /* Destructor: ~neural_net + + Provides automatic cleanup of data. + Define USE_VIRTUAL_DESTRUCTOR if you need the destructor to be virtual. + + See also: + + */ +#ifdef USE_VIRTUAL_DESTRUCTOR + virtual +#endif + + ~neural_net() { + destroy(); + } + + /* Method: destroy + + Destructs the entire network. Called automatically by the destructor. + + See also: + <~neural_net> + */ + void destroy() { + if (ann != NULL) { + user_context *user_data = static_cast(fann_get_user_data(ann)); + if (user_data != NULL) delete user_data; + + fann_destroy(ann); + ann = NULL; + } + } + + /* Method: create_standard - DEPRECATED + + Creates a standard fully connected backpropagation neural network. + + There will be a bias neuron in each layer (except the output layer), + and this bias neuron will be connected to all neurons in the next layer. + When running the network, the bias nodes always emits 1. + + Parameters: + num_layers - The total number of layers including the input and the output layer. + ... - Integer values determining the number of neurons in each layer starting with + the input layer and ending with the output layer. + + Returns: + Boolean true if the network was created, false otherwise. + + Example: + >const unsigned int num_layers = 3; + >const unsigned int num_input = 2; + >const unsigned int num_hidden = 3; + >const unsigned int num_output = 1; + > + >FANN::neural_net net; + >net.create_standard(num_layers, num_input, num_hidden, num_output); + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + + + This function appears in FANN >= 2.0.0. + */ + bool create_standard(unsigned int num_layers, ...) { + std::unique_ptr data(new unsigned int[num_layers]); + + va_list layers; + va_start(layers, num_layers); + for (unsigned int i = 0; i < num_layers; i++) data.get()[i] = va_arg(layers, unsigned int); + va_end(layers); + + bool status = create_standard_array(num_layers, data.get()); + return status; + } + + /* Method: create_standard_array - DEPRECATED + + Just like , but with an array of layer sizes + instead of individual parameters. + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + + + This function appears in FANN >= 2.0.0. + */ + bool create_standard_array(unsigned int num_layers, const unsigned int *layers) { + destroy(); + ann = fann_create_standard_array(num_layers, layers); + return (ann != NULL); + } + + /* Method: create_sparse - DEPRECATED + + Creates a standard backpropagation neural network, which is not fully connected. + + Parameters: + connection_rate - The connection rate controls how many connections there will be + in the network. If the connection rate is set to 1, the network will be fully connected, but if + it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield + the same result as num_layers - The total number of layers including the + input and the output layer. + ... - Integer values determining the number of neurons in each layer starting with + the input layer and ending with the output layer. + + Returns: + Boolean true if the network was created, false otherwise. + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + + + This function appears in FANN >= 2.0.0. + */ + bool create_sparse(float connection_rate, unsigned int num_layers, ...) { + std::unique_ptr data(new unsigned int[num_layers]); + + va_list layers; + va_start(layers, num_layers); + for (unsigned int i = 0; i < num_layers; i++) data.get()[i] = va_arg(layers, unsigned int); + va_end(layers); + + bool status = create_sparse_array(connection_rate, num_layers, data.get()); + return status; + } + + /* Method: create_sparse_array - DEPRECATED + Just like , but with an array of layer sizes + instead of individual parameters. + + See for a description of the parameters. + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + + + This function appears in FANN >= 2.0.0. + */ + bool create_sparse_array(float connection_rate, unsigned int num_layers, + const unsigned int *layers) { + destroy(); + ann = fann_create_sparse_array(connection_rate, num_layers, layers); + return (ann != NULL); + } + + /* Method: create_shortcut - DEPRECATED + + Creates a standard backpropagation neural network, which is fully connected and which + also has shortcut connections. + + Shortcut connections are connections that skip layers. A fully connected network with + shortcut connections, is a network where all neurons are connected to all neurons in later + layers. Including direct connections from the input layer to the output layer. + + See for a description of the parameters. + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + + + This function appears in FANN >= 2.0.0. + */ + bool create_shortcut(unsigned int num_layers, ...) { + std::unique_ptr data(new unsigned int[num_layers]); + + va_list layers; + va_start(layers, num_layers); + for (unsigned int i = 0; i < num_layers; i++) data.get()[i] = va_arg(layers, unsigned int); + va_end(layers); + + bool status = create_shortcut_array(num_layers, data.get()); + return status; + } + + /* Method: create_shortcut_array - DEPRECATED + + Just like , but with an array of layer sizes + instead of individual parameters. + + See for a description of the parameters. + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , , + + + This function appears in FANN >= 2.0.0. + */ + bool create_shortcut_array(unsigned int num_layers, const unsigned int *layers) { + destroy(); + ann = fann_create_shortcut_array(num_layers, layers); + return (ann != NULL); + } + + /* Method: run + + Will run input through the neural network, returning an array of outputs, the number of + which being equal to the number of neurons in the output layer. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ + fann_type *run(fann_type *input) { + if (ann == NULL) { + return NULL; + } + return fann_run(ann, input); + } + + /* Method: randomize_weights + + Give each connection a random weight between *min_weight* and *max_weight* + + From the beginning the weights are random between -0.1 and 0.1. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ + void randomize_weights(fann_type min_weight, fann_type max_weight) { + if (ann != NULL) { + fann_randomize_weights(ann, min_weight, max_weight); + } + } + + /* Method: init_weights + + Initialize the weights using Widrow + Nguyen's algorithm. + + This function behaves similarly to fann_randomize_weights. It will use the algorithm + developed by Derrick Nguyen and Bernard Widrow to set the weights in such a way as to speed up + training. This technique is not always successful, and in some cases can be less efficient than + a purely random initialization. + + The algorithm requires access to the range of the input data (ie, largest and smallest + input), and therefore accepts a second argument, data, which is the training data that will be + used to train the network. + + See also: + , , + + + This function appears in FANN >= 1.1.0. + */ + void init_weights(const training_data &data) { + if ((ann != NULL) && (data.train_data != NULL)) { + fann_init_weights(ann, data.train_data); + } + } + + /* Method: print_connections + + Will print the connections of the ann in a compact matrix, for easy viewing of the + internals of the ann. + + The output from fann_print_connections on a small (2 2 1) network trained on the xor + problem >Layer / Neuron 012345 >L 1 / N 3 BBa... >L 1 / N 4 BBA... >L 1 / N 5 + ...... >L 2 / N 6 ...BBA >L 2 / N 7 ...... + + This network have five real neurons and two bias neurons. This gives a total of seven + neurons named from 0 to 6. The connections between these neurons can be seen in the matrix. "." + is a place where there is no connection, while a character tells how strong the connection is + on a scale from a-z. The two real neurons in the hidden layer (neuron 3 and 4 in layer 1) has + connection from the three neurons in the previous layer as is visible in the first two + lines. The output neuron (6) has connections form the three neurons in the hidden layer 3 - 5 + as is visible in the fourth line. + + To simplify the matrix output neurons is not visible as neurons that connections can come + from, and input and bias neurons are not visible as neurons that connections can go to. + + This function appears in FANN >= 1.2.0. + */ + void print_connections() { + if (ann != NULL) { + fann_print_connections(ann); + } + } + + /* Method: create_from_file - DEPRECATED + + Constructs a backpropagation neural network from a configuration file, + which have been saved by . + + NOTE: As of version 2.3.0 it recommended to create neural networks using the constructors + instead of creating an empty network and setting the internal structure of that. This method is + hence discouraged and will be deprecated later on. + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + bool create_from_file(const std::string &configuration_file) { + destroy(); + ann = fann_create_from_file(configuration_file.c_str()); + return (ann != NULL); + } + + /* Method: save + + Save the entire network to a configuration file. + + The configuration file contains all information about the neural network and enables + to create an exact copy of the neural network and all of the + parameters associated with the neural network. + + These two parameters (, ) are *NOT* saved + to the file because they cannot safely be ported to a different location. Also temporary + parameters generated during training like is not saved. + + Return: + The function returns 0 on success and -1 on failure. + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + bool save(const std::string &configuration_file) { + if (ann == NULL) { + return false; + } + if (fann_save(ann, configuration_file.c_str()) == -1) { + return false; + } + return true; + } + + /* Method: save_to_fixed + + Saves the entire network to a configuration file. + But it is saved in fixed point format no matter which + format it is currently in. + + This is useful for training a network in floating points, + and then later executing it in fixed point. + + The function returns the bit position of the fix point, which + can be used to find out how accurate the fixed point network will be. + A high value indicates high precision, and a low value indicates low + precision. + + A negative value indicates very low precision, and a very + strong possibility for overflow. + (the actual fix point will be set to 0, since a negative + fix point does not make sence). + + Generally, a fix point lower than 6 is bad, and should be avoided. + The best way to avoid this, is to have less connections to each neuron, + or just less neurons in each layer. + + The fixed point use of this network is only intended for use on machines that + have no floating point processor, like an iPAQ. On normal computers the floating + point version is actually faster. + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + int save_to_fixed(const std::string &configuration_file) { + int fixpoint = 0; + if (ann != NULL) { + fixpoint = fann_save_to_fixed(ann, configuration_file.c_str()); + } + return fixpoint; + } + +#ifndef FIXEDFANN + + /* Method: train + + Train one iteration with a set of inputs, and a set of desired outputs. + This training is always incremental training (see ), + since only one pattern is presented. + + Parameters: + ann - The neural network structure + input - an array of inputs. This array must be exactly long. + desired_output - an array of desired outputs. This array must be exactly + long. + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + void train(fann_type *input, fann_type *desired_output) { + if (ann != NULL) { + fann_train(ann, input, desired_output); + } + } + + /* Method: train_epoch + Train one epoch with a set of training data. + + Train one epoch with the training data stored in data. One epoch is where all of + the training data is considered exactly once. + + This function returns the MSE error as it is calculated either before or during + the actual training. This is not the actual MSE after the training epoch, but since + calculating this will require to go through the entire training set once more, it is + more than adequate to use this value during training. + + The training algorithm used by this function is chosen by the + function. + + See also: + , , + + This function appears in FANN >= 1.2.0. + */ + float train_epoch(const training_data &data) { + float mse = 0.0f; + if ((ann != NULL) && (data.train_data != NULL)) { + mse = fann_train_epoch(ann, data.train_data); + } + return mse; + } + + /* Method: train_on_data + + Trains on an entire dataset, for a period of time. + + This training uses the training algorithm chosen by , + and the parameters set for these training algorithms. + + Parameters: + ann - The neural network + data - The data, which should be used during training + max_epochs - The maximum number of epochs the training should continue + epochs_between_reports - The number of epochs between printing a status report to + stdout. A value of zero means no reports should be printed. desired_error - The desired + or , depending on which stop function is chosen by + . + + Instead of printing out reports every epochs_between_reports, a callback function can be + called (see ). + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + void train_on_data(const training_data &data, unsigned int max_epochs, + unsigned int epochs_between_reports, float desired_error) { + if ((ann != NULL) && (data.train_data != NULL)) { + fann_train_on_data(ann, data.train_data, max_epochs, epochs_between_reports, desired_error); + } + } + + /* Method: train_on_file + + Does the same as , but reads the training data directly from a file. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ + void train_on_file(const std::string &filename, unsigned int max_epochs, + unsigned int epochs_between_reports, float desired_error) { + if (ann != NULL) { + fann_train_on_file(ann, filename.c_str(), max_epochs, epochs_between_reports, desired_error); + } + } + +#endif /* NOT FIXEDFANN */ + + /* Method: test + + Test with a set of inputs, and a set of desired outputs. + This operation updates the mean square error, but does not + change the network in any way. + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + fann_type *test(fann_type *input, fann_type *desired_output) { + fann_type *output = NULL; + if (ann != NULL) { + output = fann_test(ann, input, desired_output); + } + return output; + } + + /* Method: test_data + + Test a set of training data and calculates the MSE for the training data. + + This function updates the MSE and the bit fail values. + + See also: + , , , + + This function appears in FANN >= 1.2.0. + */ + float test_data(const training_data &data) { + float mse = 0.0f; + if ((ann != NULL) && (data.train_data != NULL)) { + mse = fann_test_data(ann, data.train_data); + } + return mse; + } + + /* Method: get_MSE + Reads the mean square error from the network. + + Reads the mean square error from the network. This value is calculated during + training or testing, and can therefore sometimes be a bit off if the weights + have been changed since the last calculation of the value. + + See also: + , + + This function appears in FANN >= 1.1.0. + */ + float get_MSE() { + float mse = 0.0f; + if (ann != NULL) { + mse = fann_get_MSE(ann); + } + return mse; + } + + /* Method: reset_MSE + + Resets the mean square error from the network. + + This function also resets the number of bits that fail. + + See also: + , , + + This function appears in FANN >= 1.1.0 + */ + void reset_MSE() { + if (ann != NULL) { + fann_reset_MSE(ann); + } + } + +#ifndef FIXEDFANN + + /* Method: set_callback + + Sets the callback function for use during training. The user_data is passed to + the callback. It can point to arbitrary data that the callback might require and + can be NULL if it is not used. + + See for more information about the callback function. + + The default callback function simply prints out some status information. + + This function appears in FANN >= 2.0.0. + */ + void set_callback(callback_type callback, void *user_data) { + if (ann != NULL) { + // Allocated data is also deleted in the destroy method called by the destructor + user_context *user_instance = static_cast(fann_get_user_data(ann)); + if (user_instance != NULL) delete user_instance; + + user_instance = new user_context(); + user_instance->user_callback = callback; + user_instance->user_data = user_data; + user_instance->net = this; + fann_set_user_data(ann, user_instance); + + if (callback != NULL) + fann_set_callback(ann, &FANN::neural_net::internal_callback); + else + fann_set_callback(ann, NULL); + } + } + +#endif /* NOT FIXEDFANN */ + + /* Method: print_parameters + + Prints all of the parameters and options of the neural network + + See also: + + + This function appears in FANN >= 1.2.0. + */ + void print_parameters() { + if (ann != NULL) { + fann_print_parameters(ann); + } + } + + /* Method: get_training_algorithm + + Return the training algorithm as described by . + This training algorithm is used by and associated functions. + + Note that this algorithm is also used during , although only + FANN::TRAIN_RPROP and FANN::TRAIN_QUICKPROP is allowed during cascade training. + + The default training algorithm is FANN::TRAIN_RPROP. + + See also: + , , + + + This function appears in FANN >= 1.0.0. + */ + training_algorithm_enum get_training_algorithm() { + fann_train_enum training_algorithm = FANN_TRAIN_INCREMENTAL; + if (ann != NULL) { + training_algorithm = fann_get_training_algorithm(ann); + } + return static_cast(training_algorithm); + } + + /* Method: set_training_algorithm + + Set the training algorithm. + + More info available in + + This function appears in FANN >= 1.0.0. + */ + void set_training_algorithm(training_algorithm_enum training_algorithm) { + if (ann != NULL) { + fann_set_training_algorithm(ann, static_cast(training_algorithm)); + } + } + + /* Method: get_learning_rate + + Return the learning rate. + + The learning rate is used to determine how aggressive training should be for some of the + training algorithms (FANN::TRAIN_INCREMENTAL, FANN::TRAIN_BATCH, FANN::TRAIN_QUICKPROP). + Do however note that it is not used in FANN::TRAIN_RPROP. + + The default learning rate is 0.7. + + See also: + , , + + + This function appears in FANN >= 1.0.0. + */ + float get_learning_rate() { + float learning_rate = 0.0f; + if (ann != NULL) { + learning_rate = fann_get_learning_rate(ann); + } + return learning_rate; + } + + /* Method: set_learning_rate + + Set the learning rate. + + More info available in + + This function appears in FANN >= 1.0.0. + */ + void set_learning_rate(float learning_rate) { + if (ann != NULL) { + fann_set_learning_rate(ann, learning_rate); + } + } + + /*************************************************************************************************************/ + + /* Method: get_activation_function + + Get the activation function for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to get activation functions for the neurons in the input layer. + + Information about the individual activation functions is available at + . + + Returns: + The activation function for the neuron or -1 if the neuron is not defined in the neural + network. + + See also: + , , + , , + , + + This function appears in FANN >= 2.1.0 + */ + activation_function_enum get_activation_function(int layer, int neuron) { + unsigned int activation_function = 0; + if (ann != NULL) { + activation_function = fann_get_activation_function(ann, layer, neuron); + } + return static_cast(activation_function); + } + + /* Method: set_activation_function + + Set the activation function for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation functions for the neurons in the input layer. + + When choosing an activation function it is important to note that the activation + functions have different range. FANN::SIGMOID is e.g. in the 0 - 1 range while + FANN::SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN::LINEAR is unbounded. + + Information about the individual activation functions is available at + . + + The default activation function is FANN::SIGMOID_STEPWISE. + + See also: + , , + , , + , + + This function appears in FANN >= 2.0.0. + */ + void set_activation_function(activation_function_enum activation_function, int layer, + int neuron) { + if (ann != NULL) { + fann_set_activation_function(ann, static_cast(activation_function), + layer, neuron); + } + } + + /* Method: set_activation_function_layer + + Set the activation function for all the neurons in the layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation functions for the neurons in the input layer. + + See also: + , , + , , + + + This function appears in FANN >= 2.0.0. + */ + void set_activation_function_layer(activation_function_enum activation_function, int layer) { + if (ann != NULL) { + fann_set_activation_function_layer( + ann, static_cast(activation_function), layer); + } + } + + /* Method: set_activation_function_hidden + + Set the activation function for all of the hidden layers. + + See also: + , , + , , + + + This function appears in FANN >= 1.0.0. + */ + void set_activation_function_hidden(activation_function_enum activation_function) { + if (ann != NULL) { + fann_set_activation_function_hidden( + ann, static_cast(activation_function)); + } + } + + /* Method: set_activation_function_output + + Set the activation function for the output layer. + + See also: + , , + , , + + + This function appears in FANN >= 1.0.0. + */ + void set_activation_function_output(activation_function_enum activation_function) { + if (ann != NULL) { + fann_set_activation_function_output( + ann, static_cast(activation_function)); + } + } + + /* Method: get_activation_steepness + + Get the activation steepness for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to get activation steepness for the neurons in the input layer. + + The steepness of an activation function says something about how fast the activation function + goes from the minimum to the maximum. A high value for the activation function will also + give a more aggressive training. + + When training neural networks where the output values should be at the extremes (usually 0 and + 1, depending on the activation function), a steep activation function can be used (e.g. 1.0). + + The default activation steepness is 0.5. + + Returns: + The activation steepness for the neuron or -1 if the neuron is not defined in the neural + network. + + See also: + , , + , , + , + + This function appears in FANN >= 2.1.0 + */ + fann_type get_activation_steepness(int layer, int neuron) { + fann_type activation_steepness = 0; + if (ann != NULL) { + activation_steepness = fann_get_activation_steepness(ann, layer, neuron); + } + return activation_steepness; + } + + /* Method: set_activation_steepness + + Set the activation steepness for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation steepness for the neurons in the input layer. + + The steepness of an activation function says something about how fast the activation function + goes from the minimum to the maximum. A high value for the activation function will also + give a more aggressive training. + + When training neural networks where the output values should be at the extremes (usually 0 and + 1, depending on the activation function), a steep activation function can be used (e.g. 1.0). + + The default activation steepness is 0.5. + + See also: + , , + , , + , + + This function appears in FANN >= 2.0.0. + */ + void set_activation_steepness(fann_type steepness, int layer, int neuron) { + if (ann != NULL) { + fann_set_activation_steepness(ann, steepness, layer, neuron); + } + } + + /* Method: set_activation_steepness_layer + + Set the activation steepness all of the neurons in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation steepness for the neurons in the input layer. + + See also: + , , + , , + + + This function appears in FANN >= 2.0.0. + */ + void set_activation_steepness_layer(fann_type steepness, int layer) { + if (ann != NULL) { + fann_set_activation_steepness_layer(ann, steepness, layer); + } + } + + /* Method: set_activation_steepness_hidden + + Set the steepness of the activation steepness in all of the hidden layers. + + See also: + , , + , , + + + This function appears in FANN >= 1.2.0. + */ + void set_activation_steepness_hidden(fann_type steepness) { + if (ann != NULL) { + fann_set_activation_steepness_hidden(ann, steepness); + } + } + + /* Method: set_activation_steepness_output + + Set the steepness of the activation steepness in the output layer. + + See also: + , , + , , + + + This function appears in FANN >= 1.2.0. + */ + void set_activation_steepness_output(fann_type steepness) { + if (ann != NULL) { + fann_set_activation_steepness_output(ann, steepness); + } + } + + /*************************************************************************************************************/ + + /* Method: get_train_error_function + + Returns the error function used during training. + + The error functions is described further in + + The default error function is FANN::ERRORFUNC_TANH + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + error_function_enum get_train_error_function() { + fann_errorfunc_enum train_error_function = FANN_ERRORFUNC_LINEAR; + if (ann != NULL) { + train_error_function = fann_get_train_error_function(ann); + } + return static_cast(train_error_function); + } + + /* Method: set_train_error_function + + Set the error function used during training. + + The error functions is described further in + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + void set_train_error_function(error_function_enum train_error_function) { + if (ann != NULL) { + fann_set_train_error_function(ann, static_cast(train_error_function)); + } + } + + /* Method: get_quickprop_decay + + The decay is a small negative valued number which is the factor that the weights + should become smaller in each iteration during quickprop training. This is used + to make sure that the weights do not become too high during training. + + The default decay is -0.0001. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + float get_quickprop_decay() { + float quickprop_decay = 0.0f; + if (ann != NULL) { + quickprop_decay = fann_get_quickprop_decay(ann); + } + return quickprop_decay; + } + + /* Method: set_quickprop_decay + + Sets the quickprop decay factor. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + void set_quickprop_decay(float quickprop_decay) { + if (ann != NULL) { + fann_set_quickprop_decay(ann, quickprop_decay); + } + } + + /* Method: get_quickprop_mu + + The mu factor is used to increase and decrease the step-size during quickprop training. + The mu factor should always be above 1, since it would otherwise decrease the step-size + when it was suppose to increase it. + + The default mu factor is 1.75. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + float get_quickprop_mu() { + float quickprop_mu = 0.0f; + if (ann != NULL) { + quickprop_mu = fann_get_quickprop_mu(ann); + } + return quickprop_mu; + } + + /* Method: set_quickprop_mu + + Sets the quickprop mu factor. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + void set_quickprop_mu(float quickprop_mu) { + if (ann != NULL) { + fann_set_quickprop_mu(ann, quickprop_mu); + } + } + + /* Method: get_rprop_increase_factor + + The increase factor is a value larger than 1, which is used to + increase the step-size during RPROP training. + + The default increase factor is 1.2. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + float get_rprop_increase_factor() { + float factor = 0.0f; + if (ann != NULL) { + factor = fann_get_rprop_increase_factor(ann); + } + return factor; + } + + /* Method: set_rprop_increase_factor + + The increase factor used during RPROP training. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + void set_rprop_increase_factor(float rprop_increase_factor) { + if (ann != NULL) { + fann_set_rprop_increase_factor(ann, rprop_increase_factor); + } + } + + /* Method: get_rprop_decrease_factor + + The decrease factor is a value smaller than 1, which is used to decrease the step-size during + RPROP training. + + The default decrease factor is 0.5. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + float get_rprop_decrease_factor() { + float factor = 0.0f; + if (ann != NULL) { + factor = fann_get_rprop_decrease_factor(ann); + } + return factor; + } + + /* Method: set_rprop_decrease_factor + + The decrease factor is a value smaller than 1, which is used to decrease the step-size during + RPROP training. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + void set_rprop_decrease_factor(float rprop_decrease_factor) { + if (ann != NULL) { + fann_set_rprop_decrease_factor(ann, rprop_decrease_factor); + } + } + + /* Method: get_rprop_delta_zero + + The initial step-size is a small positive number determining how small the initial step-size + may be. + + The default value delta zero is 0.1. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + float get_rprop_delta_zero() { + float delta = 0.0f; + if (ann != NULL) { + delta = fann_get_rprop_delta_zero(ann); + } + return delta; + } + + /* Method: set_rprop_delta_zero + + The initial step-size is a small positive number determining how small the initial step-size + may be. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + void set_rprop_delta_zero(float rprop_delta_zero) { + if (ann != NULL) { + fann_set_rprop_delta_zero(ann, rprop_delta_zero); + } + } + + /* Method: get_rprop_delta_min + + The minimum step-size is a small positive number determining how small the minimum step-size + may be. + + The default value delta min is 0.0. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + float get_rprop_delta_min() { + float delta = 0.0f; + if (ann != NULL) { + delta = fann_get_rprop_delta_min(ann); + } + return delta; + } + + /* Method: set_rprop_delta_min + + The minimum step-size is a small positive number determining how small the minimum step-size + may be. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ + void set_rprop_delta_min(float rprop_delta_min) { + if (ann != NULL) { + fann_set_rprop_delta_min(ann, rprop_delta_min); + } + } + + /* Method: get_rprop_delta_max + + The maximum step-size is a positive number determining how large the maximum step-size may be. + + The default delta max is 50.0. + + See also: + , , + + This function appears in FANN >= 1.2.0. + */ + float get_rprop_delta_max() { + float delta = 0.0f; + if (ann != NULL) { + delta = fann_get_rprop_delta_max(ann); + } + return delta; + } + + /* Method: set_rprop_delta_max + + The maximum step-size is a positive number determining how large the maximum step-size may be. + + See also: + , , + + This function appears in FANN >= 1.2.0. + */ + void set_rprop_delta_max(float rprop_delta_max) { + if (ann != NULL) { + fann_set_rprop_delta_max(ann, rprop_delta_max); + } + } + + /* Method: get_sarprop_weight_decay_shift + + The sarprop weight decay shift. + + The default delta max is -6.644. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + float get_sarprop_weight_decay_shift() { + float res = 0.0f; + if (ann != NULL) { + res = fann_get_rprop_delta_max(ann); + } + return res; + } + + /* Method: set_sarprop_weight_decay_shift + + Set the sarprop weight decay shift. + + This function appears in FANN >= 2.1.0. + + See also: + , + */ + void set_sarprop_weight_decay_shift(float sarprop_weight_decay_shift) { + if (ann != NULL) { + fann_set_sarprop_weight_decay_shift(ann, sarprop_weight_decay_shift); + } + } + + /* Method: get_sarprop_step_error_threshold_factor + + The sarprop step error threshold factor. + + The default delta max is 0.1. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + float get_sarprop_step_error_threshold_factor() { + float res = 0.0f; + if (ann != NULL) { + res = fann_get_rprop_delta_max(ann); + } + return res; + } + + /* Method: set_sarprop_step_error_threshold_factor + + Set the sarprop step error threshold factor. + + This function appears in FANN >= 2.1.0. + + See also: + , + */ + void set_sarprop_step_error_threshold_factor(float sarprop_step_error_threshold_factor) { + if (ann != NULL) { + fann_set_sarprop_step_error_threshold_factor(ann, sarprop_step_error_threshold_factor); + } + } + + /* Method: get_sarprop_step_error_shift + + The get sarprop step error shift. + + The default delta max is 1.385. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + float get_sarprop_step_error_shift() { + float res = 0.0f; + if (ann != NULL) { + res = fann_get_rprop_delta_max(ann); + } + return res; + } + + /* Method: set_sarprop_step_error_shift + + Set the sarprop step error shift. + + This function appears in FANN >= 2.1.0. + + See also: + , + */ + void set_sarprop_step_error_shift(float sarprop_step_error_shift) { + if (ann != NULL) { + fann_set_sarprop_step_error_shift(ann, sarprop_step_error_shift); + } + } + + /* Method: get_sarprop_temperature + + The sarprop weight decay shift. + + The default delta max is 0.015. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + float get_sarprop_temperature() { + float res = 0.0f; + if (ann != NULL) { + res = fann_get_rprop_delta_max(ann); + } + return res; + } + + /* Method: set_sarprop_temperature + + Set the sarprop_temperature. + + This function appears in FANN >= 2.1.0. + + See also: + , + */ + void set_sarprop_temperature(float sarprop_temperature) { + if (ann != NULL) { + fann_set_sarprop_temperature(ann, sarprop_temperature); + } + } + + /* Method: get_num_input + + Get the number of input neurons. + + This function appears in FANN >= 1.0.0. + */ + unsigned int get_num_input() { + unsigned int num_input = 0; + if (ann != NULL) { + num_input = fann_get_num_input(ann); + } + return num_input; + } + + /* Method: get_num_output + + Get the number of output neurons. + + This function appears in FANN >= 1.0.0. + */ + unsigned int get_num_output() { + unsigned int num_output = 0; + if (ann != NULL) { + num_output = fann_get_num_output(ann); + } + return num_output; + } + + /* Method: get_total_neurons + + Get the total number of neurons in the entire network. This number does also include the + bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons. + + This function appears in FANN >= 1.0.0. + */ + unsigned int get_total_neurons() { + if (ann == NULL) { + return 0; + } + return fann_get_total_neurons(ann); + } + + /* Method: get_total_connections + + Get the total number of connections in the entire network. + + This function appears in FANN >= 1.0.0. + */ + unsigned int get_total_connections() { + if (ann == NULL) { + return 0; + } + return fann_get_total_connections(ann); + } + +#ifdef FIXEDFANN + /* Method: get_decimal_point + + Returns the position of the decimal point in the ann. + + This function is only available when the ANN is in fixed point mode. + + The decimal point is described in greater detail in the tutorial . + + See also: + , , , + , + + This function appears in FANN >= 1.0.0. + */ + unsigned int get_decimal_point() { + if (ann == NULL) { + return 0; + } + return fann_get_decimal_point(ann); + } + + /* Method: get_multiplier + + Returns the multiplier that fix point data is multiplied with. + + This function is only available when the ANN is in fixed point mode. + + The multiplier is the used to convert between floating point and fixed point notation. + A floating point number is multiplied with the multiplier in order to get the fixed point + number and visa versa. + + The multiplier is described in greater detail in the tutorial . + + See also: + , , , + , + + This function appears in FANN >= 1.0.0. + */ + unsigned int get_multiplier() { + if (ann == NULL) { + return 0; + } + return fann_get_multiplier(ann); + } +#endif /* FIXEDFANN */ + + /*********************************************************************/ + + /* Method: get_network_type + + Get the type of neural network it was created as. + + Returns: + The neural network type from enum + + See Also: + + + This function appears in FANN >= 2.1.0 + */ + network_type_enum get_network_type() { + fann_nettype_enum network_type = FANN_NETTYPE_LAYER; + if (ann != NULL) { + network_type = fann_get_network_type(ann); + } + return static_cast(network_type); + } + + /* Method: get_connection_rate + + Get the connection rate used when the network was created + + Returns: + The connection rate + + See also: + + + This function appears in FANN >= 2.1.0 + */ + float get_connection_rate() { + if (ann == NULL) { + return 0; + } + return fann_get_connection_rate(ann); + } + + /* Method: get_num_layers + + Get the number of layers in the network + + Returns: + The number of layers in the neural network + + See also: + + + This function appears in FANN >= 2.1.0 + */ + unsigned int get_num_layers() { + if (ann == NULL) { + return 0; + } + return fann_get_num_layers(ann); + } + + /* Method: get_layer_array + + Get the number of neurons in each layer in the network. + + Bias is not included so the layers match the create methods. + + The layers array must be preallocated to at least + sizeof(unsigned int) * get_num_layers() long. + + See also: + + + This function appears in FANN >= 2.1.0 + */ + void get_layer_array(unsigned int *layers) { + if (ann != NULL) { + fann_get_layer_array(ann, layers); + } + } + + /* Method: get_bias_array + + Get the number of bias in each layer in the network. + + The bias array must be preallocated to at least + sizeof(unsigned int) * get_num_layers() long. + + See also: + + + This function appears in FANN >= 2.1.0 + */ + void get_bias_array(unsigned int *bias) { + if (ann != NULL) { + fann_get_bias_array(ann, bias); + } + } + + /* Method: get_connection_array + + Get the connections in the network. + + The connections array must be preallocated to at least + sizeof(struct fann_connection) * get_total_connections() long. + + See also: + + + This function appears in FANN >= 2.1.0 + */ + void get_connection_array(connection *connections) { + if (ann != NULL) { + fann_get_connection_array(ann, connections); + } + } + + /* Method: set_weight_array + + Set connections in the network. + + Only the weights can be changed, connections and weights are ignored + if they do not already exist in the network. + + The array must have sizeof(struct fann_connection) * num_connections size. + + See also: + + + This function appears in FANN >= 2.1.0 + */ + void set_weight_array(connection *connections, unsigned int num_connections) { + if (ann != NULL) { + fann_set_weight_array(ann, connections, num_connections); + } + } + + /* Method: set_weight + + Set a connection in the network. + + Only the weights can be changed. The connection/weight is + ignored if it does not already exist in the network. + + See also: + + + This function appears in FANN >= 2.1.0 + */ + void set_weight(unsigned int from_neuron, unsigned int to_neuron, fann_type weight) { + if (ann != NULL) { + fann_set_weight(ann, from_neuron, to_neuron, weight); + } + } + + /* Method: get_weights + + Get all the network weights. + + See also: + + + This function appears in FANN >= x.y.z + */ + void get_weights(fann_type *weights) { + if (ann != NULL) { + fann_get_weights(ann, weights); + } + } + + /* Method: set_weights + + Set network weights. + + See also: + + + This function appears in FANN >= x.y.z + */ + void set_weights(fann_type *weights) { + if (ann != NULL) { + fann_set_weights(ann, weights); + } + } + + /*********************************************************************/ + + /* Method: get_learning_momentum + + Get the learning momentum. + + The learning momentum can be used to speed up FANN::TRAIN_INCREMENTAL training. + A too high momentum will however not benefit training. Setting momentum to 0 will + be the same as not using the momentum parameter. The recommended value of this parameter + is between 0.0 and 1.0. + + The default momentum is 0. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + float get_learning_momentum() { + float learning_momentum = 0.0f; + if (ann != NULL) { + learning_momentum = fann_get_learning_momentum(ann); + } + return learning_momentum; + } + + /* Method: set_learning_momentum + + Set the learning momentum. + + More info available in + + This function appears in FANN >= 2.0.0. + */ + void set_learning_momentum(float learning_momentum) { + if (ann != NULL) { + fann_set_learning_momentum(ann, learning_momentum); + } + } + + /* Method: get_train_stop_function + + Returns the the stop function used during training. + + The stop function is described further in + + The default stop function is FANN::STOPFUNC_MSE + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + stop_function_enum get_train_stop_function() { + enum fann_stopfunc_enum stopfunc = FANN_STOPFUNC_MSE; + if (ann != NULL) { + stopfunc = fann_get_train_stop_function(ann); + } + return static_cast(stopfunc); + } + + /* Method: set_train_stop_function + + Set the stop function used during training. + + The stop function is described further in + + See also: + + + This function appears in FANN >= 2.0.0. + */ + void set_train_stop_function(stop_function_enum train_stop_function) { + if (ann != NULL) { + fann_set_train_stop_function(ann, static_cast(train_stop_function)); + } + } + + /* Method: get_bit_fail_limit + + Returns the bit fail limit used during training. + + The bit fail limit is used during training when the is set to + FANN_STOPFUNC_BIT. + + The limit is the maximum accepted difference between the desired output and the actual output + during training. Each output that diverges more than this limit is counted as an error bit. + This difference is divided by two when dealing with symmetric activation functions, + so that symmetric and not symmetric activation functions can use the same limit. + + The default bit fail limit is 0.35. + + See also: + + + This function appears in FANN >= 2.0.0. + */ + fann_type get_bit_fail_limit() { + fann_type bit_fail_limit = 0.0f; + + if (ann != NULL) { + bit_fail_limit = fann_get_bit_fail_limit(ann); + } + return bit_fail_limit; + } + + /* Method: set_bit_fail_limit + + Set the bit fail limit used during training. + + See also: + + + This function appears in FANN >= 2.0.0. + */ + void set_bit_fail_limit(fann_type bit_fail_limit) { + if (ann != NULL) { + fann_set_bit_fail_limit(ann, bit_fail_limit); + } + } + + /* Method: get_bit_fail + + The number of fail bits; means the number of output neurons which differ more + than the bit fail limit (see , ). + The bits are counted in all of the training data, so this number can be higher than + the number of training data. + + This value is reset by and updated by all the same functions which also + updates the MSE value (e.g. , ) + + See also: + , + + This function appears in FANN >= 2.0.0 + */ + unsigned int get_bit_fail() { + unsigned int bit_fail = 0; + if (ann != NULL) { + bit_fail = fann_get_bit_fail(ann); + } + return bit_fail; + } + +#ifndef FIXEDFANN + /*********************************************************************/ + + /* Method: cascadetrain_on_data + + Trains on an entire dataset, for a period of time using the Cascade2 training algorithm. + This algorithm adds neurons to the neural network while training, which means that it + needs to start with an ANN without any hidden layers. The neural network should also use + shortcut connections, so should be used to create the ANN like this: + >net.create_shortcut(2, train_data.num_input_train_data(), train_data.num_output_train_data()); + + This training uses the parameters set using the set_cascade_..., but it also uses another + training algorithm as it's internal training algorithm. This algorithm can be set to either + FANN::TRAIN_RPROP or FANN::TRAIN_QUICKPROP by , and the parameters + set for these training algorithms will also affect the cascade training. + + Parameters: + data - The data, which should be used during training + max_neuron - The maximum number of neurons to be added to neural network + neurons_between_reports - The number of neurons between printing a status report + to stdout. A value of zero means no reports should be printed. desired_error - The desired + or , depending on which stop function is chosen by + . + + Instead of printing out reports every neurons_between_reports, a callback function can be + called (see ). + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + void cascadetrain_on_data(const training_data &data, unsigned int max_neurons, + unsigned int neurons_between_reports, float desired_error) { + if ((ann != NULL) && (data.train_data != NULL)) { + fann_cascadetrain_on_data(ann, data.train_data, max_neurons, neurons_between_reports, + desired_error); + } + } + + /* Method: cascadetrain_on_file + + Does the same as , but reads the training data directly from a file. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void cascadetrain_on_file(const std::string &filename, unsigned int max_neurons, + unsigned int neurons_between_reports, float desired_error) { + if (ann != NULL) { + fann_cascadetrain_on_file(ann, filename.c_str(), max_neurons, neurons_between_reports, + desired_error); + } + } + + /* Method: get_cascade_output_change_fraction + + The cascade output change fraction is a number between 0 and 1 determining how large a fraction + the value should change within during + training of the output connections, in order for the training not to stagnate. If the training + stagnates, the training of the output connections will be ended and new candidates will be + prepared. + + This means: + If the MSE does not change by a fraction of during a + period of , the training of the output connections + is stopped because the training has stagnated. + + If the cascade output change fraction is low, the output connections will be trained more and + if the fraction is high they will be trained less. + + The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE. + + See also: + , , + , + + This function appears in FANN >= 2.0.0. + */ + float get_cascade_output_change_fraction() { + float change_fraction = 0.0f; + if (ann != NULL) { + change_fraction = fann_get_cascade_output_change_fraction(ann); + } + return change_fraction; + } + + /* Method: set_cascade_output_change_fraction + + Sets the cascade output change fraction. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_output_change_fraction(float cascade_output_change_fraction) { + if (ann != NULL) { + fann_set_cascade_output_change_fraction(ann, cascade_output_change_fraction); + } + } + + /* Method: get_cascade_output_stagnation_epochs + + The number of cascade output stagnation epochs determines the number of epochs training is + allowed to continue without changing the MSE by a fraction of + . + + See more info about this parameter in . + + The default number of cascade output stagnation epochs is 12. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_output_stagnation_epochs() { + unsigned int stagnation_epochs = 0; + if (ann != NULL) { + stagnation_epochs = fann_get_cascade_output_stagnation_epochs(ann); + } + return stagnation_epochs; + } + + /* Method: set_cascade_output_stagnation_epochs + + Sets the number of cascade output stagnation epochs. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_output_stagnation_epochs(unsigned int cascade_output_stagnation_epochs) { + if (ann != NULL) { + fann_set_cascade_output_stagnation_epochs(ann, cascade_output_stagnation_epochs); + } + } + + /* Method: get_cascade_candidate_change_fraction + + The cascade candidate change fraction is a number between 0 and 1 determining how large a + fraction the value should change within + during training of the candidate neurons, in order for the training not to stagnate. If the + training stagnates, the training of the candidate neurons will be ended and the best candidate + will be selected. + + This means: + If the MSE does not change by a fraction of during a + period of , the training of the candidate neurons + is stopped because the training has stagnated. + + If the cascade candidate change fraction is low, the candidate neurons will be trained more and + if the fraction is high they will be trained less. + + The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE. + + See also: + , , + , + + This function appears in FANN >= 2.0.0. + */ + float get_cascade_candidate_change_fraction() { + float change_fraction = 0.0f; + if (ann != NULL) { + change_fraction = fann_get_cascade_candidate_change_fraction(ann); + } + return change_fraction; + } + + /* Method: set_cascade_candidate_change_fraction + + Sets the cascade candidate change fraction. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_candidate_change_fraction(float cascade_candidate_change_fraction) { + if (ann != NULL) { + fann_set_cascade_candidate_change_fraction(ann, cascade_candidate_change_fraction); + } + } + + /* Method: get_cascade_candidate_stagnation_epochs + + The number of cascade candidate stagnation epochs determines the number of epochs training is + allowed to continue without changing the MSE by a fraction of + . + + See more info about this parameter in . + + The default number of cascade candidate stagnation epochs is 12. + + See also: + , + , + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_candidate_stagnation_epochs() { + unsigned int stagnation_epochs = 0; + if (ann != NULL) { + stagnation_epochs = fann_get_cascade_candidate_stagnation_epochs(ann); + } + return stagnation_epochs; + } + + /* Method: set_cascade_candidate_stagnation_epochs + + Sets the number of cascade candidate stagnation epochs. + + See also: + , + + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_candidate_stagnation_epochs(unsigned int cascade_candidate_stagnation_epochs) { + if (ann != NULL) { + fann_set_cascade_candidate_stagnation_epochs(ann, cascade_candidate_stagnation_epochs); + } + } + + /* Method: get_cascade_weight_multiplier + + The weight multiplier is a parameter which is used to multiply the weights from the candidate + neuron before adding the neuron to the neural network. This parameter is usually between 0 and + 1, and is used to make the training a bit less aggressive. + + The default weight multiplier is 0.4 + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + fann_type get_cascade_weight_multiplier() { + fann_type weight_multiplier = 0; + if (ann != NULL) { + weight_multiplier = fann_get_cascade_weight_multiplier(ann); + } + return weight_multiplier; + } + + /* Method: set_cascade_weight_multiplier + + Sets the weight multiplier. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_weight_multiplier(fann_type cascade_weight_multiplier) { + if (ann != NULL) { + fann_set_cascade_weight_multiplier(ann, cascade_weight_multiplier); + } + } + + /* Method: get_cascade_candidate_limit + + The candidate limit is a limit for how much the candidate neuron may be trained. + The limit is a limit on the proportion between the MSE and candidate score. + + Set this to a lower value to avoid overfitting and to a higher if overfitting is + not a problem. + + The default candidate limit is 1000.0 + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + fann_type get_cascade_candidate_limit() { + fann_type candidate_limit = 0; + if (ann != NULL) { + candidate_limit = fann_get_cascade_candidate_limit(ann); + } + return candidate_limit; + } + + /* Method: set_cascade_candidate_limit + + Sets the candidate limit. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_candidate_limit(fann_type cascade_candidate_limit) { + if (ann != NULL) { + fann_set_cascade_candidate_limit(ann, cascade_candidate_limit); + } + } + + /* Method: get_cascade_max_out_epochs + + The maximum out epochs determines the maximum number of epochs the output connections + may be trained after adding a new candidate neuron. + + The default max out epochs is 150 + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_max_out_epochs() { + unsigned int max_out_epochs = 0; + if (ann != NULL) { + max_out_epochs = fann_get_cascade_max_out_epochs(ann); + } + return max_out_epochs; + } + + /* Method: set_cascade_max_out_epochs + + Sets the maximum out epochs. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_max_out_epochs(unsigned int cascade_max_out_epochs) { + if (ann != NULL) { + fann_set_cascade_max_out_epochs(ann, cascade_max_out_epochs); + } + } + + /* Method: get_cascade_max_cand_epochs + + The maximum candidate epochs determines the maximum number of epochs the input + connections to the candidates may be trained before adding a new candidate neuron. + + The default max candidate epochs is 150 + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_max_cand_epochs() { + unsigned int max_cand_epochs = 0; + if (ann != NULL) { + max_cand_epochs = fann_get_cascade_max_cand_epochs(ann); + } + return max_cand_epochs; + } + + /* Method: set_cascade_max_cand_epochs + + Sets the max candidate epochs. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_max_cand_epochs(unsigned int cascade_max_cand_epochs) { + if (ann != NULL) { + fann_set_cascade_max_cand_epochs(ann, cascade_max_cand_epochs); + } + } + + /* Method: get_cascade_num_candidates + + The number of candidates used during training (calculated by multiplying + , and + ). + + The actual candidates is defined by the and + arrays. These arrays define the activation functions + and activation steepnesses used for the candidate neurons. If there are 2 activation functions + in the activation function array and 3 steepnesses in the steepness array, then there will be + 2x3=6 different candidates which will be trained. These 6 different candidates can be copied + into several candidate groups, where the only difference between these groups is the initial + weights. If the number of groups is set to 2, then the number of candidate neurons will be + 2x3x2=12. The number of candidate groups is defined by . + + The default number of candidates is 6x4x2 = 48 + + See also: + , , + , , + , + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_num_candidates() { + unsigned int num_candidates = 0; + if (ann != NULL) { + num_candidates = fann_get_cascade_num_candidates(ann); + } + return num_candidates; + } + + /* Method: get_cascade_activation_functions_count + + The number of activation functions in the array. + + The default number of activation functions is 10. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_activation_functions_count() { + unsigned int activation_functions_count = 0; + if (ann != NULL) { + activation_functions_count = fann_get_cascade_activation_functions_count(ann); + } + return activation_functions_count; + } + + /* Method: get_cascade_activation_functions + + The cascade activation functions array is an array of the different activation functions used + by the candidates. + + See for a description of which candidate neurons will be + generated by this array. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + activation_function_enum *get_cascade_activation_functions() { + enum fann_activationfunc_enum *activation_functions = NULL; + if (ann != NULL) { + activation_functions = fann_get_cascade_activation_functions(ann); + } + return reinterpret_cast(activation_functions); + } + + /* Method: set_cascade_activation_functions + + Sets the array of cascade candidate activation functions. The array must be just as long + as defined by the count. + + See for a description of which candidate neurons will be + generated by this array. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_activation_functions(activation_function_enum *cascade_activation_functions, + unsigned int cascade_activation_functions_count) { + if (ann != NULL) { + fann_set_cascade_activation_functions( + ann, reinterpret_cast(cascade_activation_functions), + cascade_activation_functions_count); + } + } + + /* Method: get_cascade_activation_steepnesses_count + + The number of activation steepnesses in the array. + + The default number of activation steepnesses is 4. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_activation_steepnesses_count() { + unsigned int activation_steepness_count = 0; + if (ann != NULL) { + activation_steepness_count = fann_get_cascade_activation_steepnesses_count(ann); + } + return activation_steepness_count; + } + + /* Method: get_cascade_activation_steepnesses + + The cascade activation steepnesses array is an array of the different activation functions used + by the candidates. + + See for a description of which candidate neurons will be + generated by this array. + + The default activation steepnesses is {0.25, 0.50, 0.75, 1.00} + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + fann_type *get_cascade_activation_steepnesses() { + fann_type *activation_steepnesses = NULL; + if (ann != NULL) { + activation_steepnesses = fann_get_cascade_activation_steepnesses(ann); + } + return activation_steepnesses; + } + + /* Method: set_cascade_activation_steepnesses + + Sets the array of cascade candidate activation steepnesses. The array must be just as long + as defined by the count. + + See for a description of which candidate neurons will be + generated by this array. + + See also: + , , + + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_activation_steepnesses(fann_type *cascade_activation_steepnesses, + unsigned int cascade_activation_steepnesses_count) { + if (ann != NULL) { + fann_set_cascade_activation_steepnesses(ann, cascade_activation_steepnesses, + cascade_activation_steepnesses_count); + } + } + + /* Method: get_cascade_num_candidate_groups + + The number of candidate groups is the number of groups of identical candidates which will be + used during training. + + This number can be used to have more candidates without having to define new parameters for the + candidates. + + See for a description of which candidate neurons will be + generated by this parameter. + + The default number of candidate groups is 2 + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + unsigned int get_cascade_num_candidate_groups() { + unsigned int num_candidate_groups = 0; + if (ann != NULL) { + num_candidate_groups = fann_get_cascade_num_candidate_groups(ann); + } + return num_candidate_groups; + } + + /* Method: set_cascade_num_candidate_groups + + Sets the number of candidate groups. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + void set_cascade_num_candidate_groups(unsigned int cascade_num_candidate_groups) { + if (ann != NULL) { + fann_set_cascade_num_candidate_groups(ann, cascade_num_candidate_groups); + } + } + + /*********************************************************************/ + + /* Method: scale_train + + Scale input and output data based on previously calculated parameters. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + void scale_train(training_data &data) { + if (ann != NULL) { + fann_scale_train(ann, data.train_data); + } + } + + /* Method: descale_train + + Descale input and output data based on previously calculated parameters. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + void descale_train(training_data &data) { + if (ann != NULL) { + fann_descale_train(ann, data.train_data); + } + } + + /* Method: set_input_scaling_params + + Calculate scaling parameters for future use based on training data. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + bool set_input_scaling_params(const training_data &data, float new_input_min, + float new_input_max) { + bool status = false; + if (ann != NULL) { + status = + (fann_set_input_scaling_params(ann, data.train_data, new_input_min, new_input_max) != -1); + } + return status; + } + + /* Method: set_output_scaling_params + + Calculate scaling parameters for future use based on training data. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + bool set_output_scaling_params(const training_data &data, float new_output_min, + float new_output_max) { + bool status = false; + if (ann != NULL) { + status = (fann_set_output_scaling_params(ann, data.train_data, new_output_min, + new_output_max) != -1); + } + return status; + } + + /* Method: set_scaling_params + + Calculate scaling parameters for future use based on training data. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + bool set_scaling_params(const training_data &data, float new_input_min, float new_input_max, + float new_output_min, float new_output_max) { + bool status = false; + if (ann != NULL) { + status = (fann_set_scaling_params(ann, data.train_data, new_input_min, new_input_max, + new_output_min, new_output_max) != -1); + } + return status; + } + + /* Method: clear_scaling_params + + Clears scaling parameters. + + See also: + , + + This function appears in FANN >= 2.1.0. + */ + bool clear_scaling_params() { + bool status = false; + if (ann != NULL) { + status = (fann_clear_scaling_params(ann) != -1); + } + return status; + } + + /* Method: scale_input + + Scale data in input vector before feed it to ann based on previously calculated parameters. + + See also: + , , + + This function appears in FANN >= 2.1.0. + */ + void scale_input(fann_type *input_vector) { + if (ann != NULL) { + fann_scale_input(ann, input_vector); + } + } + + /* Method: scale_output + + Scale data in output vector before feed it to ann based on previously calculated parameters. + + See also: + , , + + This function appears in FANN >= 2.1.0. + */ + void scale_output(fann_type *output_vector) { + if (ann != NULL) { + fann_scale_output(ann, output_vector); + } + } + + /* Method: descale_input + + Scale data in input vector after get it from ann based on previously calculated parameters. + + See also: + , , + + This function appears in FANN >= 2.1.0. + */ + void descale_input(fann_type *input_vector) { + if (ann != NULL) { + fann_descale_input(ann, input_vector); + } + } + + /* Method: descale_output + + Scale data in output vector after get it from ann based on previously calculated parameters. + + See also: + , , + + This function appears in FANN >= 2.1.0. + */ + void descale_output(fann_type *output_vector) { + if (ann != NULL) { + fann_descale_output(ann, output_vector); + } + } + +#endif /* FIXEDFANN */ + + /*********************************************************************/ + + /* Method: set_error_log + + Change where errors are logged to. + + If log_file is NULL, no errors will be printed. + + If neural_net is empty i.e. ann is NULL, the default log will be set. + The default log is the log used when creating a neural_net. + This default log will also be the default for all new structs + that are created. + + The default behavior is to log them to stderr. + + See also: + , + + This function appears in FANN >= 1.1.0. + */ + void set_error_log(FILE *log_file) { + fann_set_error_log(reinterpret_cast(ann), log_file); + } + + /* Method: get_errno + + Returns the last error number. + + See also: + , , + + This function appears in FANN >= 1.1.0. + */ + unsigned int get_errno() { return fann_get_errno(reinterpret_cast(ann)); } + + /* Method: reset_errno + + Resets the last error number. + + This function appears in FANN >= 1.1.0. + */ + void reset_errno() { fann_reset_errno(reinterpret_cast(ann)); } + + /* Method: reset_errstr + + Resets the last error string. + + This function appears in FANN >= 1.1.0. + */ + void reset_errstr() { fann_reset_errstr(reinterpret_cast(ann)); } + + /* Method: get_errstr + + Returns the last errstr. + + This function calls and + + This function appears in FANN >= 1.1.0. + */ + std::string get_errstr() { + return std::string(fann_get_errstr(reinterpret_cast(ann))); + } + + /* Method: print_error + + Prints the last error to stderr. + + This function appears in FANN >= 1.1.0. + */ + void print_error() { fann_print_error(reinterpret_cast(ann)); } + + /* Function: disable_seed_rand + + Disables the automatic random generator seeding that happens in FANN. + + Per default FANN will always seed the random generator when creating a new network, + unless FANN_NO_SEED is defined during compilation of the library. This method can + disable this at runtime. + + This function appears in FANN >= 2.3.0 + */ + void disable_seed_rand() { fann_disable_seed_rand(); } + + /* Function: enable_seed_rand + + Enables the automatic random generator seeding that happens in FANN. + + Per default FANN will always seed the random generator when creating a new network, + unless FANN_NO_SEED is defined during compilation of the library. This method can + disable this at runtime. + + This function appears in FANN >= 2.3.0 + */ + void enable_seed_rand() { fann_enable_seed_rand(); } + + /*********************************************************************/ + + private: + // Structure used by set_callback to hold information about a user callback + typedef struct user_context_type { + callback_type user_callback; // Pointer to user callback function + void *user_data; // Arbitrary data pointer passed to the callback + neural_net *net; // This pointer for the neural network + } user_context; + +#ifndef FIXEDFANN + + // Internal callback used to convert from pointers to class references + static int FANN_API internal_callback(struct fann *ann, struct fann_train_data *train, + unsigned int max_epochs, + unsigned int epochs_between_reports, float desired_error, + unsigned int epochs) { + user_context *user_data = static_cast(fann_get_user_data(ann)); + if (user_data != NULL) { + FANN::training_data data; + data.train_data = train; + + int result = + (*user_data->user_callback)(*user_data->net, data, max_epochs, epochs_between_reports, + desired_error, epochs, user_data->user_data); + + data.train_data = NULL; // Prevent automatic cleanup + return result; + } else { + return -1; // This should not occur except if out of memory + } + } + +#endif /* NOT FIXEDFANN */ + + protected: + // Pointer the encapsulated fann neural net structure + struct fann *ann; +}; + +/*************************************************************************/ +} // namespace FANN + +#endif /* FANN_CPP_H_INCLUDED */ diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_data.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_data.h new file mode 100644 index 0000000..1425305 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_data.h @@ -0,0 +1,800 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_data_h__ +#define __fann_data_h__ + +#include + +/* Section: FANN Datatypes + + The two main datatypes used in the fann library are , + which represents an artificial neural network, and , + which represents training data. + */ + +/* Type: fann_type + fann_type is the type used for the weights, inputs and outputs of the neural network. + + fann_type is defined as a: + float - if you include fann.h or floatfann.h + double - if you include doublefann.h + int - if you include fixedfann.h (please be aware that fixed point usage is + only to be used during execution, and not during training). +*/ + +/* Enum: fann_train_enum + The Training algorithms used when training on with functions like + or . The incremental training alters the weights + after each time it is presented an input pattern, while batch only alters the weights once + after it has been presented to all the patterns. + + FANN_TRAIN_INCREMENTAL - Standard backpropagation algorithm, where the weights are + updated after each training pattern. This means that the weights are updated many + times during a single epoch. For this reason some problems will train very fast with + this algorithm, while other more advanced problems will not train very well. + FANN_TRAIN_BATCH - Standard backpropagation algorithm, where the weights are updated after + calculating the mean square error for the whole training set. This means that the + weights are only updated once during an epoch. For this reason some problems will train slower + with this algorithm. But since the mean square error is calculated more correctly than in + incremental training, some problems will reach better solutions with this algorithm. + FANN_TRAIN_RPROP - A more advanced batch training algorithm which achieves good results + for many problems. The RPROP training algorithm is adaptive, and does therefore not + use the learning_rate. Some other parameters can however be set to change the way + the RPROP algorithm works, but it is only recommended for users with insight in how the RPROP + training algorithm works. The RPROP training algorithm is described by + [Riedmiller and Braun, 1993], but the actual learning algorithm used here is the + iRPROP- training algorithm which is described by [Igel and Husken, 2000] which + is a variant of the standard RPROP training algorithm. + FANN_TRAIN_QUICKPROP - A more advanced batch training algorithm which achieves good results + for many problems. The quickprop training algorithm uses the learning_rate parameter + along with other more advanced parameters, but it is only recommended to change + these advanced parameters, for users with insight in how the quickprop training algorithm works. + The quickprop training algorithm is described by [Fahlman, 1988]. + FANN_TRAIN_SARPROP - THE SARPROP ALGORITHM: A SIMULATED ANNEALING ENHANCEMENT TO RESILIENT + BACK PROPAGATION + http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.8197&rep=rep1&type=pdf + + See also: + , +*/ +enum fann_train_enum { + FANN_TRAIN_INCREMENTAL = 0, + FANN_TRAIN_BATCH, + FANN_TRAIN_RPROP, + FANN_TRAIN_QUICKPROP, + FANN_TRAIN_SARPROP +}; + +/* Constant: FANN_TRAIN_NAMES + + Constant array consisting of the names for the training algorithms, so that the name of an + training function can be received by: + (code) + char *name = FANN_TRAIN_NAMES[train_function]; + (end) + + See Also: + +*/ +static char const *const FANN_TRAIN_NAMES[] = {"FANN_TRAIN_INCREMENTAL", "FANN_TRAIN_BATCH", + "FANN_TRAIN_RPROP", "FANN_TRAIN_QUICKPROP", + "FANN_TRAIN_SARPROP"}; + +/* Enums: fann_activationfunc_enum + + The activation functions used for the neurons during training. The activation functions + can either be defined for a group of neurons by and + or it can be defined for a single neuron by + . + + The steepness of an activation function is defined in the same way by + , and + . + + The functions are described with functions where: + * x is the input to the activation function, + * y is the output, + * s is the steepness and + * d is the derivation. + + FANN_LINEAR - Linear activation function. + * span: -inf < y < inf + * y = x*s, d = 1*s + * Can NOT be used in fixed point. + + FANN_THRESHOLD - Threshold activation function. + * x < 0 -> y = 0, x >= 0 -> y = 1 + * Can NOT be used during training. + + FANN_THRESHOLD_SYMMETRIC - Threshold activation function. + * x < 0 -> y = -1, x >= 0 -> y = 1 + * Can NOT be used during training. + + FANN_SIGMOID - Sigmoid activation function. + * One of the most used activation functions. + * span: 0 < y < 1 + * y = 1/(1 + exp(-2*s*x)) + * d = 2*s*y*(1 - y) + + FANN_SIGMOID_STEPWISE - Stepwise linear approximation to sigmoid. + * Faster than sigmoid but a bit less precise. + + FANN_SIGMOID_SYMMETRIC - Symmetric sigmoid activation function, aka. tanh. + * One of the most used activation functions. + * span: -1 < y < 1 + * y = tanh(s*x) = 2/(1 + exp(-2*s*x)) - 1 + * d = s*(1-(y*y)) + + FANN_SIGMOID_SYMMETRIC_STEPWISE - Stepwise linear approximation to symmetric sigmoid. + * Faster than symmetric sigmoid but a bit less precise. + + FANN_GAUSSIAN - Gaussian activation function. + * 0 when x = -inf, 1 when x = 0 and 0 when x = inf + * span: 0 < y < 1 + * y = exp(-x*s*x*s) + * d = -2*x*s*y*s + + FANN_GAUSSIAN_SYMMETRIC - Symmetric gaussian activation function. + * -1 when x = -inf, 1 when x = 0 and 0 when x = inf + * span: -1 < y < 1 + * y = exp(-x*s*x*s)*2-1 + * d = -2*x*s*(y+1)*s + + FANN_ELLIOT - Fast (sigmoid like) activation function defined by David Elliott + * span: 0 < y < 1 + * y = ((x*s) / 2) / (1 + |x*s|) + 0.5 + * d = s*1/(2*(1+|x*s|)*(1+|x*s|)) + + FANN_ELLIOT_SYMMETRIC - Fast (symmetric sigmoid like) activation function defined by David + Elliott + * span: -1 < y < 1 + * y = (x*s) / (1 + |x*s|) + * d = s*1/((1+|x*s|)*(1+|x*s|)) + + FANN_LINEAR_PIECE - Bounded linear activation function. + * span: 0 <= y <= 1 + * y = x*s, d = 1*s + + FANN_LINEAR_PIECE_SYMMETRIC - Bounded linear activation function. + * span: -1 <= y <= 1 + * y = x*s, d = 1*s + + FANN_SIN_SYMMETRIC - Periodical sinus activation function. + * span: -1 <= y <= 1 + * y = sin(x*s) + * d = s*cos(x*s) + + FANN_COS_SYMMETRIC - Periodical cosinus activation function. + * span: -1 <= y <= 1 + * y = cos(x*s) + * d = s*-sin(x*s) + + FANN_SIN - Periodical sinus activation function. + * span: 0 <= y <= 1 + * y = sin(x*s)/2+0.5 + * d = s*cos(x*s)/2 + + FANN_COS - Periodical cosinus activation function. + * span: 0 <= y <= 1 + * y = cos(x*s)/2+0.5 + * d = s*-sin(x*s)/2 + + See also: + , , + , , + +*/ +enum fann_activationfunc_enum { + FANN_LINEAR = 0, + FANN_THRESHOLD, + FANN_THRESHOLD_SYMMETRIC, + FANN_SIGMOID, + FANN_SIGMOID_STEPWISE, + FANN_SIGMOID_SYMMETRIC, + FANN_SIGMOID_SYMMETRIC_STEPWISE, + FANN_GAUSSIAN, + FANN_GAUSSIAN_SYMMETRIC, + /* Stepwise linear approximation to gaussian. + * Faster than gaussian but a bit less precise. + * NOT implemented yet. + */ + FANN_GAUSSIAN_STEPWISE, + FANN_ELLIOT, + FANN_ELLIOT_SYMMETRIC, + FANN_LINEAR_PIECE, + FANN_LINEAR_PIECE_SYMMETRIC, + FANN_SIN_SYMMETRIC, + FANN_COS_SYMMETRIC, + FANN_SIN, + FANN_COS +}; + +/* Constant: FANN_ACTIVATIONFUNC_NAMES + + Constant array consisting of the names for the activation function, so that the name of an + activation function can be received by: + (code) + char *name = FANN_ACTIVATIONFUNC_NAMES[activation_function]; + (end) + + See Also: + +*/ +static char const *const FANN_ACTIVATIONFUNC_NAMES[] = {"FANN_LINEAR", + "FANN_THRESHOLD", + "FANN_THRESHOLD_SYMMETRIC", + "FANN_SIGMOID", + "FANN_SIGMOID_STEPWISE", + "FANN_SIGMOID_SYMMETRIC", + "FANN_SIGMOID_SYMMETRIC_STEPWISE", + "FANN_GAUSSIAN", + "FANN_GAUSSIAN_SYMMETRIC", + "FANN_GAUSSIAN_STEPWISE", + "FANN_ELLIOT", + "FANN_ELLIOT_SYMMETRIC", + "FANN_LINEAR_PIECE", + "FANN_LINEAR_PIECE_SYMMETRIC", + "FANN_SIN_SYMMETRIC", + "FANN_COS_SYMMETRIC", + "FANN_SIN", + "FANN_COS"}; + +/* Enum: fann_errorfunc_enum + Error function used during training. + + FANN_ERRORFUNC_LINEAR - Standard linear error function. + FANN_ERRORFUNC_TANH - Tanh error function, usually better + but can require a lower learning rate. This error function aggressively targets + outputs that differ much from the desired, while not targeting outputs that only differ a little + that much. This activation function is not recommended for cascade training and incremental + training. + + See also: + , +*/ +enum fann_errorfunc_enum { FANN_ERRORFUNC_LINEAR = 0, FANN_ERRORFUNC_TANH }; + +/* Constant: FANN_ERRORFUNC_NAMES + + Constant array consisting of the names for the training error functions, so that the name of an + error function can be received by: + (code) + char *name = FANN_ERRORFUNC_NAMES[error_function]; + (end) + + See Also: + +*/ +static char const *const FANN_ERRORFUNC_NAMES[] = {"FANN_ERRORFUNC_LINEAR", "FANN_ERRORFUNC_TANH"}; + +/* Enum: fann_stopfunc_enum + Stop criteria used during training. + + FANN_STOPFUNC_MSE - Stop criterion is Mean Square Error (MSE) value. + FANN_STOPFUNC_BIT - Stop criterion is number of bits that fail. The number of bits; means + the number of output neurons which differ more than the bit fail limit (see + , ). The bits are counted in all of the + training data, so this number can be higher than the number of training data. + + See also: + , +*/ +enum fann_stopfunc_enum { FANN_STOPFUNC_MSE = 0, FANN_STOPFUNC_BIT }; + +/* Constant: FANN_STOPFUNC_NAMES + + Constant array consisting of the names for the training stop functions, so that the name of a + stop function can be received by: + (code) + char *name = FANN_STOPFUNC_NAMES[stop_function]; + (end) + + See Also: + +*/ +static char const *const FANN_STOPFUNC_NAMES[] = {"FANN_STOPFUNC_MSE", "FANN_STOPFUNC_BIT"}; + +/* Enum: fann_network_type_enum + + Definition of network types used by + + FANN_NETTYPE_LAYER - Each layer only has connections to the next layer + FANN_NETTYPE_SHORTCUT - Each layer has connections to all following layers + + See Also: + + + This enumeration appears in FANN >= 2.1.0 +*/ +enum fann_nettype_enum { + FANN_NETTYPE_LAYER = 0, /* Each layer only has connections to the next layer */ + FANN_NETTYPE_SHORTCUT /* Each layer has connections to all following layers */ +}; + +/* Constant: FANN_NETWORK_TYPE_NAMES + + Constant array consisting of the names for the network types, so that the name of an + network type can be received by: + (code) + char *network_type_name = FANN_NETWORK_TYPE_NAMES[fann_get_network_type(ann)]; + (end) + + See Also: + + + This constant appears in FANN >= 2.1.0 +*/ +static char const *const FANN_NETTYPE_NAMES[] = {"FANN_NETTYPE_LAYER", "FANN_NETTYPE_SHORTCUT"}; + +/* forward declarations for use with the callback */ +struct fann; +struct fann_train_data; +/* Type: fann_callback_type + This callback function can be called during training when using , + or . + + >typedef int (FANN_API * fann_callback_type) (struct fann *ann, struct fann_train_data + *train, + > unsigned int max_epochs, > unsigned int + epochs_between_reports, > float desired_error, + unsigned int epochs); + + The callback can be set by using and is very useful for doing custom + things during training. It is recommended to use this function when implementing custom + training procedures, or when visualizing the training in a GUI etc. The parameters which the + callback function takes are the parameters given to , plus an epochs + parameter which tells how many epochs the training has taken so far. + + The callback function should return an integer, if the callback function returns -1, the + training will terminate. + + Example of a callback function: + >int FANN_API test_callback(struct fann *ann, struct fann_train_data *train, + > unsigned int max_epochs, unsigned int + epochs_between_reports, + > float desired_error, unsigned int + epochs) + >{ + > printf("Epochs %8d. MSE: %.5f. Desired-MSE: %.5f\n", epochs, + fann_get_MSE(ann), desired_error); > return 0; + >} + + See also: + , + */ +FANN_EXTERNAL typedef int(FANN_API *fann_callback_type)(struct fann *ann, + struct fann_train_data *train, + unsigned int max_epochs, + unsigned int epochs_between_reports, + float desired_error, unsigned int epochs); + +/* ----- Data structures ----- + * No data within these structures should be altered directly by the user. + */ + +struct fann_neuron { + /* Index to the first and last connection + * (actually the last is a past end index) + */ + unsigned int first_con; + unsigned int last_con; + /* The sum of the inputs multiplied with the weights */ + fann_type sum; + /* The value of the activation function applied to the sum */ + fann_type value; + /* The steepness of the activation function */ + fann_type activation_steepness; + /* Used to choose which activation function to use */ + enum fann_activationfunc_enum activation_function; +#ifdef __GNUC__ +} __attribute__((packed)); +#else +}; +#endif + +/* A single layer in the neural network. + */ +struct fann_layer { + /* A pointer to the first neuron in the layer + * When allocated, all the neurons in all the layers are actually + * in one long array, this is because we want to easily clear all + * the neurons at once. + */ + struct fann_neuron *first_neuron; + + /* A pointer to the neuron past the last neuron in the layer */ + /* the number of neurons is last_neuron - first_neuron */ + struct fann_neuron *last_neuron; +}; + +/* Struct: struct fann_error + + Structure used to store error-related information, both + and can be casted to this type. + + See also: + , +*/ +struct fann_error { + enum fann_errno_enum errno_f; + FILE *error_log; + char *errstr; +}; + +/* Struct: struct fann + The fast artificial neural network (fann) structure. + + Data within this structure should never be accessed directly, but only by using the + *fann_get_...* and *fann_set_...* functions. + + The fann structure is created using one of the *fann_create_...* functions and each of + the functions which operates on the structure takes *struct fann * ann* as the first + parameter. + + See also: + , + */ +struct fann { + /* The type of error that last occured. */ + enum fann_errno_enum errno_f; + + /* Where to log error messages. */ + FILE *error_log; + + /* A string representation of the last error. */ + char *errstr; + + /* the learning rate of the network */ + float learning_rate; + + /* The learning momentum used for backpropagation algorithm. */ + float learning_momentum; + + /* the connection rate of the network + * between 0 and 1, 1 meaning fully connected + */ + float connection_rate; + + /* is 1 if shortcut connections are used in the ann otherwise 0 + * Shortcut connections are connections that skip layers. + * A fully connected ann with shortcut connections are a ann where + * neurons have connections to all neurons in all later layers. + */ + enum fann_nettype_enum network_type; + + /* pointer to the first layer (input layer) in an array af all the layers, + * including the input and outputlayers + */ + struct fann_layer *first_layer; + + /* pointer to the layer past the last layer in an array af all the layers, + * including the input and outputlayers + */ + struct fann_layer *last_layer; + + /* Total number of neurons. + * very useful, because the actual neurons are allocated in one long array + */ + unsigned int total_neurons; + + /* Number of input neurons (not calculating bias) */ + unsigned int num_input; + + /* Number of output neurons (not calculating bias) */ + unsigned int num_output; + + /* The weight array */ + fann_type *weights; + + /* The connection array */ + struct fann_neuron **connections; + + /* Used to contain the errors used during training + * Is allocated during first training session, + * which means that if we do not train, it is never allocated. + */ + fann_type *train_errors; + + /* Training algorithm used when calling fann_train_on_.. + */ + enum fann_train_enum training_algorithm; + +#ifdef FIXEDFANN + /* the decimal_point, used for shifting the fix point + * in fixed point integer operatons. + */ + unsigned int decimal_point; + + /* the multiplier, used for multiplying the fix point + * in fixed point integer operatons. + * Only used in special cases, since the decimal_point is much faster. + */ + unsigned int multiplier; + + /* When in choosen (or in fixed point), the sigmoid function is + * calculated as a stepwise linear function. In the + * activation_results array, the result is saved, and in the + * two values arrays, the values that gives the results are saved. + */ + fann_type sigmoid_results[6]; + fann_type sigmoid_values[6]; + fann_type sigmoid_symmetric_results[6]; + fann_type sigmoid_symmetric_values[6]; +#endif + + /* Total number of connections. + * very useful, because the actual connections + * are allocated in one long array + */ + unsigned int total_connections; + + /* used to store outputs in */ + fann_type *output; + + /* the number of data used to calculate the mean square error. + */ + unsigned int num_MSE; + + /* the total error value. + * the real mean square error is MSE_value/num_MSE + */ + float MSE_value; + + /* The number of outputs which would fail (only valid for classification problems) + */ + unsigned int num_bit_fail; + + /* The maximum difference between the actual output and the expected output + * which is accepted when counting the bit fails. + * This difference is multiplied by two when dealing with symmetric activation functions, + * so that symmetric and not symmetric activation functions can use the same limit. + */ + fann_type bit_fail_limit; + + /* The error function used during training. (default FANN_ERRORFUNC_TANH) + */ + enum fann_errorfunc_enum train_error_function; + + /* The stop function used during training. (default FANN_STOPFUNC_MSE) + */ + enum fann_stopfunc_enum train_stop_function; + + /* The callback function used during training. (default NULL) + */ + fann_callback_type callback; + + /* A pointer to user defined data. (default NULL) + */ + void *user_data; + + /* Variables for use with Cascade Correlation */ + + /* The error must change by at least this + * fraction of its old value to count as a + * significant change. + */ + float cascade_output_change_fraction; + + /* No change in this number of epochs will cause + * stagnation. + */ + unsigned int cascade_output_stagnation_epochs; + + /* The error must change by at least this + * fraction of its old value to count as a + * significant change. + */ + float cascade_candidate_change_fraction; + + /* No change in this number of epochs will cause + * stagnation. + */ + unsigned int cascade_candidate_stagnation_epochs; + + /* The current best candidate, which will be installed. + */ + unsigned int cascade_best_candidate; + + /* The upper limit for a candidate score + */ + fann_type cascade_candidate_limit; + + /* Scale of copied candidate output weights + */ + fann_type cascade_weight_multiplier; + + /* Maximum epochs to train the output neurons during cascade training + */ + unsigned int cascade_max_out_epochs; + + /* Maximum epochs to train the candidate neurons during cascade training + */ + unsigned int cascade_max_cand_epochs; + + /* Minimum epochs to train the output neurons during cascade training + */ + unsigned int cascade_min_out_epochs; + + /* Minimum epochs to train the candidate neurons during cascade training + */ + unsigned int cascade_min_cand_epochs; + + /* An array consisting of the activation functions used when doing + * cascade training. + */ + enum fann_activationfunc_enum *cascade_activation_functions; + + /* The number of elements in the cascade_activation_functions array. + */ + unsigned int cascade_activation_functions_count; + + /* An array consisting of the steepnesses used during cascade training. + */ + fann_type *cascade_activation_steepnesses; + + /* The number of elements in the cascade_activation_steepnesses array. + */ + unsigned int cascade_activation_steepnesses_count; + + /* The number of candidates of each type that will be present. + * The actual number of candidates is then + * cascade_activation_functions_count * + * cascade_activation_steepnesses_count * + * cascade_num_candidate_groups + */ + unsigned int cascade_num_candidate_groups; + + /* An array consisting of the score of the individual candidates, + * which is used to decide which candidate is the best + */ + fann_type *cascade_candidate_scores; + + /* The number of allocated neurons during cascade correlation algorithms. + * This number might be higher than the actual number of neurons to avoid + * allocating new space too often. + */ + unsigned int total_neurons_allocated; + + /* The number of allocated connections during cascade correlation algorithms. + * This number might be higher than the actual number of neurons to avoid + * allocating new space too often. + */ + unsigned int total_connections_allocated; + + /* Variables for use with Quickprop training */ + + /* Decay is used to make the weights not go so high */ + float quickprop_decay; + + /* Mu is a factor used to increase and decrease the stepsize */ + float quickprop_mu; + + /* Variables for use with with RPROP training */ + + /* Tells how much the stepsize should increase during learning */ + float rprop_increase_factor; + + /* Tells how much the stepsize should decrease during learning */ + float rprop_decrease_factor; + + /* The minimum stepsize */ + float rprop_delta_min; + + /* The maximum stepsize */ + float rprop_delta_max; + + /* The initial stepsize */ + float rprop_delta_zero; + + /* Defines how much the weights are constrained to smaller values at the beginning */ + float sarprop_weight_decay_shift; + + /* Decides if the stepsize is too big with regard to the error */ + float sarprop_step_error_threshold_factor; + + /* Defines how much the stepsize is influenced by the error */ + float sarprop_step_error_shift; + + /* Defines how much the epoch influences weight decay and noise */ + float sarprop_temperature; + + /* Current training epoch */ + unsigned int sarprop_epoch; + + /* Used to contain the slope errors used during batch training + * Is allocated during first training session, + * which means that if we do not train, it is never allocated. + */ + fann_type *train_slopes; + + /* The previous step taken by the quickprop/rprop procedures. + * Not allocated if not used. + */ + fann_type *prev_steps; + + /* The slope values used by the quickprop/rprop procedures. + * Not allocated if not used. + */ + fann_type *prev_train_slopes; + + /* The last delta applied to a connection weight. + * This is used for the momentum term in the backpropagation algorithm. + * Not allocated if not used. + */ + fann_type *prev_weights_deltas; + +#ifndef FIXEDFANN + /* Arithmetic mean used to remove steady component in input data. */ + float *scale_mean_in; + + /* Standart deviation used to normalize input data (mostly to [-1;1]). */ + float *scale_deviation_in; + + /* User-defined new minimum for input data. + * Resulting data values may be less than user-defined minimum. + */ + float *scale_new_min_in; + + /* Used to scale data to user-defined new maximum for input data. + * Resulting data values may be greater than user-defined maximum. + */ + float *scale_factor_in; + + /* Arithmetic mean used to remove steady component in output data. */ + float *scale_mean_out; + + /* Standart deviation used to normalize output data (mostly to [-1;1]). */ + float *scale_deviation_out; + + /* User-defined new minimum for output data. + * Resulting data values may be less than user-defined minimum. + */ + float *scale_new_min_out; + + /* Used to scale data to user-defined new maximum for output data. + * Resulting data values may be greater than user-defined maximum. + */ + float *scale_factor_out; +#endif +}; + +/* Type: fann_connection + + Describes a connection between two neurons and its weight + + from_neuron - Unique number used to identify source neuron + to_neuron - Unique number used to identify destination neuron + weight - The numerical value of the weight + + See Also: + , + + This structure appears in FANN >= 2.1.0 +*/ +struct fann_connection { + /* Unique number used to identify source neuron */ + unsigned int from_neuron; + /* Unique number used to identify destination neuron */ + unsigned int to_neuron; + /* The numerical value of the weight */ + fann_type weight; +}; + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_data_cpp.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_data_cpp.h new file mode 100644 index 0000000..62ebf34 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_data_cpp.h @@ -0,0 +1,295 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef FANN_FANN_DATA_CPP_H_H +#define FANN_FANN_DATA_CPP_H_H + +#include +#include + +/* Section: FANN C++ Datatypes + This section includes enums and helper data types used by the two main classes and + + */ + +/* Type: fann_type + fann_type is the type used for the weights, inputs and outputs of the neural network. + + fann_type is defined as a: + float - if you include fann.h or floatfann.h + double - if you include doublefann.h + int - if you include fixedfann.h (please be aware that fixed point usage is + only to be used during execution, and not during training). +*/ + +namespace FANN { +/* Enum: error_function_enum + Error function used during training. + + ERRORFUNC_LINEAR - Standard linear error function. + ERRORFUNC_TANH - Tanh error function, usually better + but can require a lower learning rate. This error function aggressively targets + outputs that differ much from the desired, while not targeting outputs that only differ a little + that much. This activation function is not recommended for cascade training and incremental + training. + + See also: + , +*/ +enum error_function_enum { ERRORFUNC_LINEAR = FANN_ERRORFUNC_LINEAR, ERRORFUNC_TANH }; + +/* Enum: stop_function_enum + Stop criteria used during training. + + STOPFUNC_MSE - Stop criteria is Mean Square Error (MSE) value. + STOPFUNC_BIT - Stop criteria is number of bits that fail. The number of bits; means the + number of output neurons which differ more than the bit fail limit + (see , ). + The bits are counted in all of the training data, so this number can be higher than + the number of training data. + + See also: + , +*/ +enum stop_function_enum { STOPFUNC_MSE = FANN_STOPFUNC_MSE, STOPFUNC_BIT }; + +/* Enum: training_algorithm_enum + The Training algorithms used when training on with functions like + or . The incremental training + looks alters the weights after each time it is presented an input pattern, while batch + only alters the weights once after it has been presented to all the patterns. + + TRAIN_INCREMENTAL - Standard backpropagation algorithm, where the weights are + updated after each training pattern. This means that the weights are updated many + times during a single epoch. For this reason some problems, will train very fast + with this algorithm, while other more advanced problems will not train very well. TRAIN_BATCH - + Standard backpropagation algorithm, where the weights are updated after calculating the mean + square error for the whole training set. This means that the weights are only updated once during + an epoch. For this reason some problems, will train slower with this algorithm. But since the + mean square error is calculated more correctly than in incremental training, some problems will + reach a better solutions with this algorithm. TRAIN_RPROP - A more advanced batch training + algorithm which achieves good results for many problems. The RPROP training algorithm is + adaptive, and does therefore not use the learning_rate. Some other parameters can however be set + to change the way the RPROP algorithm works, but it is only recommended for users with insight in + how the RPROP training algorithm works. The RPROP training algorithm is described by [Riedmiller + and Braun, 1993], but the actual learning algorithm used here is the iRPROP- training algorithm + which is described by [Igel and Husken, 2000] which is a variant of the standard RPROP training + algorithm. TRAIN_QUICKPROP - A more advanced batch training algorithm which achieves good results + for many problems. The quickprop training algorithm uses the learning_rate parameter + along with other more advanced parameters, but it is only recommended to change + these advanced parameters, for users with insight in how the quickprop training algorithm works. + The quickprop training algorithm is described by [Fahlman, 1988]. + FANN_TRAIN_SARPROP - THE SARPROP ALGORITHM: A SIMULATED ANNEALING ENHANCEMENT TO + RESILIENT BACK PROPAGATION + http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.47.8197&rep=rep1&type=pdf + + + See also: + , +*/ +enum training_algorithm_enum { + TRAIN_INCREMENTAL = FANN_TRAIN_INCREMENTAL, + TRAIN_BATCH, + TRAIN_RPROP, + TRAIN_QUICKPROP, + TRAIN_SARPROP +}; + +/* Enum: activation_function_enum + + The activation functions used for the neurons during training. The activation functions + can either be defined for a group of neurons by + and or it can be defined for a single neuron by + . + + The steepness of an activation function is defined in the same way by + , + and . + + The functions are described with functions where: + * x is the input to the activation function, + * y is the output, + * s is the steepness and + * d is the derivation. + + FANN_LINEAR - Linear activation function. + * span: -inf < y < inf + * y = x*s, d = 1*s + * Can NOT be used in fixed point. + + FANN_THRESHOLD - Threshold activation function. + * x < 0 -> y = 0, x >= 0 -> y = 1 + * Can NOT be used during training. + + FANN_THRESHOLD_SYMMETRIC - Threshold activation function. + * x < 0 -> y = 0, x >= 0 -> y = 1 + * Can NOT be used during training. + + FANN_SIGMOID - Sigmoid activation function. + * One of the most used activation functions. + * span: 0 < y < 1 + * y = 1/(1 + exp(-2*s*x)) + * d = 2*s*y*(1 - y) + + FANN_SIGMOID_STEPWISE - Stepwise linear approximation to sigmoid. + * Faster than sigmoid but a bit less precise. + + FANN_SIGMOID_SYMMETRIC - Symmetric sigmoid activation function, aka. tanh. + * One of the most used activation functions. + * span: -1 < y < 1 + * y = tanh(s*x) = 2/(1 + exp(-2*s*x)) - 1 + * d = s*(1-(y*y)) + + FANN_SIGMOID_SYMMETRIC - Stepwise linear approximation to symmetric sigmoid. + * Faster than symmetric sigmoid but a bit less precise. + + FANN_GAUSSIAN - Gaussian activation function. + * 0 when x = -inf, 1 when x = 0 and 0 when x = inf + * span: 0 < y < 1 + * y = exp(-x*s*x*s) + * d = -2*x*s*y*s + + FANN_GAUSSIAN_SYMMETRIC - Symmetric gaussian activation function. + * -1 when x = -inf, 1 when x = 0 and 0 when x = inf + * span: -1 < y < 1 + * y = exp(-x*s*x*s)*2-1 + * d = -2*x*s*(y+1)*s + + FANN_ELLIOT - Fast (sigmoid like) activation function defined by David Elliott + * span: 0 < y < 1 + * y = ((x*s) / 2) / (1 + |x*s|) + 0.5 + * d = s*1/(2*(1+|x*s|)*(1+|x*s|)) + + FANN_ELLIOT_SYMMETRIC - Fast (symmetric sigmoid like) activation function defined by David + Elliott + * span: -1 < y < 1 + * y = (x*s) / (1 + |x*s|) + * d = s*1/((1+|x*s|)*(1+|x*s|)) + + FANN_LINEAR_PIECE - Bounded linear activation function. + * span: 0 < y < 1 + * y = x*s, d = 1*s + + FANN_LINEAR_PIECE_SYMMETRIC - Bounded Linear activation function. + * span: -1 < y < 1 + * y = x*s, d = 1*s + + FANN_SIN_SYMMETRIC - Periodical sinus activation function. + * span: -1 <= y <= 1 + * y = sin(x*s) + * d = s*cos(x*s) + + FANN_COS_SYMMETRIC - Periodical cosinus activation function. + * span: -1 <= y <= 1 + * y = cos(x*s) + * d = s*-sin(x*s) + + See also: + , + +*/ +enum activation_function_enum { + LINEAR = FANN_LINEAR, + THRESHOLD, + THRESHOLD_SYMMETRIC, + SIGMOID, + SIGMOID_STEPWISE, + SIGMOID_SYMMETRIC, + SIGMOID_SYMMETRIC_STEPWISE, + GAUSSIAN, + GAUSSIAN_SYMMETRIC, + GAUSSIAN_STEPWISE, + ELLIOT, + ELLIOT_SYMMETRIC, + LINEAR_PIECE, + LINEAR_PIECE_SYMMETRIC, + SIN_SYMMETRIC, + COS_SYMMETRIC +}; + +/* Enum: network_type_enum + + Definition of network types used by + + LAYER - Each layer only has connections to the next layer + SHORTCUT - Each layer has connections to all following layers + + See Also: + , + + This enumeration appears in FANN >= 2.1.0 +*/ +enum network_type_enum { LAYER = FANN_NETTYPE_LAYER, SHORTCUT }; + +/* Type: connection + + Describes a connection between two neurons and its weight + + from_neuron - Unique number used to identify source neuron + to_neuron - Unique number used to identify destination neuron + weight - The numerical value of the weight + + See Also: + , + + This structure appears in FANN >= 2.1.0 +*/ +typedef struct fann_connection connection; + +/* Forward declaration of class neural_net and training_data */ +class neural_net; + +class training_data; + +/* Type: callback_type + This callback function can be called during training when using , + or . + + >typedef int (*callback_type) (neural_net &net, training_data &train, + > unsigned int max_epochs, unsigned int epochs_between_reports, + > float desired_error, unsigned int epochs, void *user_data); + + The callback can be set by using and is very useful for doing + custom things during training. It is recommended to use this function when implementing custom + training procedures, or when visualizing the training in a GUI etc. The parameters which the + callback function takes is the parameters given to the , plus an + epochs parameter which tells how many epochs the training have taken so far. + + The callback function should return an integer, if the callback function returns -1, the + training will terminate. + + Example of a callback function that prints information to cout: + >int print_callback(FANN::neural_net &net, FANN::training_data &train, + > unsigned int max_epochs, unsigned int epochs_between_reports, + > float desired_error, unsigned int epochs, void *user_data) + >{ + > cout << "Epochs " << setw(8) << epochs << ". " + > << "Current Error: " << left << net.get_MSE() << right << endl; + > return 0; + >} + + See also: + , + */ +typedef int (*callback_type)(neural_net &net, training_data &train, unsigned int max_epochs, + unsigned int epochs_between_reports, float desired_error, + unsigned int epochs, void *user_data); +} // namespace FANN + +#endif // FANN_FANN_DATA_CPP_H_H diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_error.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_error.h new file mode 100644 index 0000000..9c79c0c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_error.h @@ -0,0 +1,162 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_error_h__ +#define __fann_error_h__ + +#include + +#define FANN_ERRSTR_MAX 128 +struct fann_error; + +/* Section: FANN Error Handling + + Errors from the fann library are usually reported on stderr. + It is however possible to redirect these error messages to a file, + or completely ignore them by the function. + + It is also possible to inspect the last error message by using the + and functions. + */ + +/* Enum: fann_errno_enum + Used to define error events on and . + + See also: + , , + + FANN_E_NO_ERROR - No error + FANN_E_CANT_OPEN_CONFIG_R - Unable to open configuration file for reading + FANN_E_CANT_OPEN_CONFIG_W - Unable to open configuration file for writing + FANN_E_WRONG_CONFIG_VERSION - Wrong version of configuration file + FANN_E_CANT_READ_CONFIG - Error reading info from configuration file + FANN_E_CANT_READ_NEURON - Error reading neuron info from configuration file + FANN_E_CANT_READ_CONNECTIONS - Error reading connections from configuration file + FANN_E_WRONG_NUM_CONNECTIONS - Number of connections not equal to the number expected + FANN_E_CANT_OPEN_TD_W - Unable to open train data file for writing + FANN_E_CANT_OPEN_TD_R - Unable to open train data file for reading + FANN_E_CANT_READ_TD - Error reading training data from file + FANN_E_CANT_ALLOCATE_MEM - Unable to allocate memory + FANN_E_CANT_TRAIN_ACTIVATION - Unable to train with the selected activation function + FANN_E_CANT_USE_ACTIVATION - Unable to use the selected activation function + FANN_E_TRAIN_DATA_MISMATCH - Irreconcilable differences between two + structures FANN_E_CANT_USE_TRAIN_ALG - Unable to use the selected training algorithm + FANN_E_TRAIN_DATA_SUBSET - Trying to take subset which is not within the training set + FANN_E_INDEX_OUT_OF_BOUND - Index is out of bound + FANN_E_SCALE_NOT_PRESENT - Scaling parameters not present + FANN_E_INPUT_NO_MATCH - The number of input neurons in the ann and data don't match + FANN_E_OUTPUT_NO_MATCH - The number of output neurons in the ann and data don't match + FANN_E_WRONG_PARAMETERS_FOR_CREATE - The parameters for create_standard are wrong, either + too few parameters provided or a negative/very high value provided +*/ +enum fann_errno_enum { + FANN_E_NO_ERROR = 0, + FANN_E_CANT_OPEN_CONFIG_R, + FANN_E_CANT_OPEN_CONFIG_W, + FANN_E_WRONG_CONFIG_VERSION, + FANN_E_CANT_READ_CONFIG, + FANN_E_CANT_READ_NEURON, + FANN_E_CANT_READ_CONNECTIONS, + FANN_E_WRONG_NUM_CONNECTIONS, + FANN_E_CANT_OPEN_TD_W, + FANN_E_CANT_OPEN_TD_R, + FANN_E_CANT_READ_TD, + FANN_E_CANT_ALLOCATE_MEM, + FANN_E_CANT_TRAIN_ACTIVATION, + FANN_E_CANT_USE_ACTIVATION, + FANN_E_TRAIN_DATA_MISMATCH, + FANN_E_CANT_USE_TRAIN_ALG, + FANN_E_TRAIN_DATA_SUBSET, + FANN_E_INDEX_OUT_OF_BOUND, + FANN_E_SCALE_NOT_PRESENT, + FANN_E_INPUT_NO_MATCH, + FANN_E_OUTPUT_NO_MATCH, + FANN_E_WRONG_PARAMETERS_FOR_CREATE +}; + +/* Group: Error Handling */ + +/* Function: fann_set_error_log + + Change where errors are logged to. Both and can be + casted to , so this function can be used to set either of these. + + If log_file is NULL, no errors will be printed. + + If errdat is NULL, the default log will be set. The default log is the log used when creating + and . This default log will also be the default for all new + structs that are created. + + The default behavior is to log them to stderr. + + See also: + + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL void FANN_API fann_set_error_log(struct fann_error *errdat, FILE *log_file); + +/* Function: fann_get_errno + + Returns the last error number. + + See also: + , + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL enum fann_errno_enum FANN_API fann_get_errno(struct fann_error *errdat); + +/* Function: fann_reset_errno + + Resets the last error number. + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL void FANN_API fann_reset_errno(struct fann_error *errdat); + +/* Function: fann_reset_errstr + + Resets the last error string. + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL void FANN_API fann_reset_errstr(struct fann_error *errdat); + +/* Function: fann_get_errstr + + Returns the last errstr. + + This function calls and + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL char *FANN_API fann_get_errstr(struct fann_error *errdat); + +/* Function: fann_print_error + + Prints the last error to stderr. + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL void FANN_API fann_print_error(struct fann_error *errdat); + +FANN_EXTERNAL extern FILE *fann_default_error_log; + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_internal.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_internal.h new file mode 100644 index 0000000..4aac070 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_internal.h @@ -0,0 +1,158 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_internal_h__ +#define __fann_internal_h__ +/* internal include file, not to be included directly + */ + +#include +#include +#include +#include "fann_data.h" + +#define FANN_FIX_VERSION "FANN_FIX_2.0" +#define FANN_FLO_VERSION "FANN_FLO_2.1" + +#ifdef FIXEDFANN +#define FANN_CONF_VERSION FANN_FIX_VERSION +#else +#define FANN_CONF_VERSION FANN_FLO_VERSION +#endif + +#define FANN_GET(type, name) \ + FANN_EXTERNAL type FANN_API fann_get_##name(struct fann *ann) { return ann->name; } + +#define FANN_SET(type, name) \ + FANN_EXTERNAL void FANN_API fann_set_##name(struct fann *ann, type value) { ann->name = value; } + +#define FANN_GET_SET(type, name) \ + FANN_GET(type, name) \ + FANN_SET(type, name) + +struct fann_train_data; + +struct fann *fann_allocate_structure(unsigned int num_layers); +void fann_allocate_neurons(struct fann *ann); + +void fann_allocate_connections(struct fann *ann); + +int fann_save_internal(struct fann *ann, const char *configuration_file, + unsigned int save_as_fixed); +int fann_save_internal_fd(struct fann *ann, FILE *conf, const char *configuration_file, + unsigned int save_as_fixed); +int fann_save_train_internal(struct fann_train_data *data, const char *filename, + unsigned int save_as_fixed, unsigned int decimal_point); +int fann_save_train_internal_fd(struct fann_train_data *data, FILE *file, const char *filename, + unsigned int save_as_fixed, unsigned int decimal_point); + +void fann_update_stepwise(struct fann *ann); +void fann_seed_rand(); + +void fann_error(struct fann_error *errdat, const enum fann_errno_enum errno_f, ...); +void fann_init_error_data(struct fann_error *errdat); + +struct fann *fann_create_from_fd(FILE *conf, const char *configuration_file); +struct fann_train_data *fann_read_train_from_fd(FILE *file, const char *filename); + +void fann_compute_MSE(struct fann *ann, fann_type *desired_output); +void fann_update_output_weights(struct fann *ann); +void fann_backpropagate_MSE(struct fann *ann); +void fann_update_weights(struct fann *ann); +void fann_update_slopes_batch(struct fann *ann, struct fann_layer *layer_begin, + struct fann_layer *layer_end); +void fann_update_weights_quickprop(struct fann *ann, unsigned int num_data, + unsigned int first_weight, unsigned int past_end); +void fann_update_weights_batch(struct fann *ann, unsigned int num_data, unsigned int first_weight, + unsigned int past_end); +void fann_update_weights_irpropm(struct fann *ann, unsigned int first_weight, + unsigned int past_end); +void fann_update_weights_sarprop(struct fann *ann, unsigned int epoch, unsigned int first_weight, + unsigned int past_end); + +void fann_clear_train_arrays(struct fann *ann); + +fann_type fann_activation(struct fann *ann, unsigned int activation_function, fann_type steepness, + fann_type value); + +fann_type fann_activation_derived(unsigned int activation_function, fann_type steepness, + fann_type value, fann_type sum); + +int fann_desired_error_reached(struct fann *ann, float desired_error); + +/* Some functions for cascade */ +int fann_train_outputs(struct fann *ann, struct fann_train_data *data, float desired_error); + +float fann_train_outputs_epoch(struct fann *ann, struct fann_train_data *data); + +int fann_train_candidates(struct fann *ann, struct fann_train_data *data); + +fann_type fann_train_candidates_epoch(struct fann *ann, struct fann_train_data *data); + +void fann_install_candidate(struct fann *ann); +int fann_check_input_output_sizes(struct fann *ann, struct fann_train_data *data); + +int fann_initialize_candidates(struct fann *ann); + +void fann_set_shortcut_connections(struct fann *ann); + +int fann_allocate_scale(struct fann *ann); + +FANN_EXTERNAL void FANN_API fann_scale_data_to_range(fann_type **data, unsigned int num_data, + unsigned int num_elem, fann_type old_min, + fann_type old_max, fann_type new_min, + fann_type new_max); + +/* called fann_max, in order to not interferre with predefined versions of max */ +#define fann_max(x, y) (((x) > (y)) ? (x) : (y)) +#define fann_min(x, y) (((x) < (y)) ? (x) : (y)) +#define fann_safe_free(x) \ + { \ + if (x) { \ + free(x); \ + x = NULL; \ + } \ + } +#define fann_clip(x, lo, hi) (((x) < (lo)) ? (lo) : (((x) > (hi)) ? (hi) : (x))) +#define fann_exp2(x) exp(0.69314718055994530942 * (x)) +/*#define fann_clip(x, lo, hi) (x)*/ + +#define fann_rand(min_value, max_value) \ + (((float)(min_value)) + \ + (((float)(max_value) - ((float)(min_value))) * rand() / (RAND_MAX + 1.0f))) + +#define fann_abs(value) (((value) > 0) ? (value) : -(value)) + +#ifdef FIXEDFANN + +#define fann_mult(x, y) ((x * y) >> decimal_point) +#define fann_div(x, y) (((x) << decimal_point) / y) +#define fann_random_weight() (fann_type)(fann_rand(0, multiplier / 10)) +#define fann_random_bias_weight() (fann_type)(fann_rand((0 - multiplier) / 10, multiplier / 10)) + +#else + +#define fann_mult(x, y) (x * y) +#define fann_div(x, y) (x / y) +#define fann_random_weight() (fann_rand(-0.1f, 0.1f)) +#define fann_random_bias_weight() (fann_rand(-0.1f, 0.1f)) + +#endif + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_io.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_io.h new file mode 100644 index 0000000..c72e072 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_io.h @@ -0,0 +1,100 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_io_h__ +#define __fann_io_h__ + +/* Section: FANN File Input/Output + + It is possible to save an entire ann to a file with for future loading with + . + */ + +/* Group: File Input and Output */ + +/* Function: fann_create_from_file + + Constructs a backpropagation neural network from a configuration file, which has been saved by + . + + See also: + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL struct fann *FANN_API fann_create_from_file(const char *configuration_file); + +/* Function: fann_save + + Save the entire network to a configuration file. + + The configuration file contains all information about the neural network and enables + to create an exact copy of the neural network and all of the + parameters associated with the neural network. + + These three parameters (, , + ) are *NOT* saved to the file because they cannot safely be + ported to a different location. Also temporary parameters generated during training + like are not saved. + + Return: + The function returns 0 on success and -1 on failure. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL int FANN_API fann_save(struct fann *ann, const char *configuration_file); + +/* Function: fann_save_to_fixed + + Saves the entire network to a configuration file. + But it is saved in fixed point format no matter which + format it is currently in. + + This is useful for training a network in floating points, + and then later executing it in fixed point. + + The function returns the bit position of the fix point, which + can be used to find out how accurate the fixed point network will be. + A high value indicates high precision, and a low value indicates low + precision. + + A negative value indicates very low precision, and a very + strong possibility for overflow. + (the actual fix point will be set to 0, since a negative + fix point does not make sense). + + Generally, a fix point lower than 6 is bad, and should be avoided. + The best way to avoid this, is to have less connections to each neuron, + or just less neurons in each layer. + + The fixed point use of this network is only intended for use on machines that + have no floating point processor, like an iPAQ. On normal computers the floating + point version is actually faster. + + See also: + , + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL int FANN_API fann_save_to_fixed(struct fann *ann, const char *configuration_file); + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_train.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_train.h new file mode 100644 index 0000000..18f0486 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_train.h @@ -0,0 +1,1391 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fann_train_h__ +#define __fann_train_h__ + +/* Section: FANN Training + + There are many different ways of training neural networks and the FANN library supports + a number of different approaches. + + Two fundamentally different approaches are the most commonly used: + + Fixed topology training - The size and topology of the ANN is determined in advance + and the training alters the weights in order to minimize the difference + between the desired output values and the actual output values. This kind of training is + supported by . + + Evolving topology training - The training start out with an empty ANN, only + consisting of input and output neurons. Hidden neurons and connections are added during training, + in order to reach the same goal as for fixed topology training. This kind of + training is supported by . + */ + +/* Struct: struct fann_train_data + Structure used to store data, for use with training. + + The data inside this structure should never be manipulated directly, but should use some + of the supplied functions in . + + The training data structure is very usefull for storing data during training and testing of + a neural network. + + See also: + , , +*/ +struct fann_train_data { + enum fann_errno_enum errno_f; + FILE *error_log; + char *errstr; + + unsigned int num_data; + unsigned int num_input; + unsigned int num_output; + fann_type **input; + fann_type **output; +}; + +/* Section: FANN Training */ + +/* Group: Training */ + +#ifndef FIXEDFANN +/* Function: fann_train + + Train one iteration with a set of inputs, and a set of desired outputs. + This training is always incremental training (see ), since + only one pattern is presented. + + Parameters: + ann - The neural network structure + input - an array of inputs. This array must be exactly long. + desired_output - an array of desired outputs. This array must be exactly + long. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL void FANN_API fann_train(struct fann *ann, fann_type *input, + fann_type *desired_output); + +#endif /* NOT FIXEDFANN */ + +/* Function: fann_test + Test with a set of inputs, and a set of desired outputs. + This operation updates the mean square error, but does not + change the network in any way. + + See also: + , + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL fann_type *FANN_API fann_test(struct fann *ann, fann_type *input, + fann_type *desired_output); + +/* Function: fann_get_MSE + Reads the mean square error from the network. + + Reads the mean square error from the network. This value is calculated during + training or testing, and can therefore sometimes be a bit off if the weights + have been changed since the last calculation of the value. + + See also: + + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL float FANN_API fann_get_MSE(struct fann *ann); + +/* Function: fann_get_bit_fail + + The number of fail bits; means the number of output neurons which differ more + than the bit fail limit (see , ). + The bits are counted in all of the training data, so this number can be higher than + the number of training data. + + This value is reset by and updated by all the same functions which also + update the MSE value (e.g. , ) + + See also: + , + + This function appears in FANN >= 2.0.0 +*/ +FANN_EXTERNAL unsigned int FANN_API fann_get_bit_fail(struct fann *ann); + +/* Function: fann_reset_MSE + Resets the mean square error from the network. + + This function also resets the number of bits that fail. + + See also: + , + + This function appears in FANN >= 1.1.0 + */ +FANN_EXTERNAL void FANN_API fann_reset_MSE(struct fann *ann); + +/* Group: Training Data Training */ + +#ifndef FIXEDFANN + +/* Function: fann_train_on_data + + Trains on an entire dataset, for a period of time. + + This training uses the training algorithm chosen by , + and the parameters set for these training algorithms. + + Parameters: + ann - The neural network + data - The data, which should be used during training + max_epochs - The maximum number of epochs the training should continue + epochs_between_reports - The number of epochs between printing a status report to + stdout. A value of zero means no reports should be printed. desired_error - The desired + or , depending on which stop function is chosen by + . + + Instead of printing out reports every epochs_between_reports, a callback function can be + called (see ). + + See also: + , , + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL void FANN_API fann_train_on_data(struct fann *ann, struct fann_train_data *data, + unsigned int max_epochs, + unsigned int epochs_between_reports, + float desired_error); + +/* Function: fann_train_on_file + + Does the same as , but reads the training data directly from a file. + + See also: + + + This function appears in FANN >= 1.0.0. +*/ +FANN_EXTERNAL void FANN_API fann_train_on_file(struct fann *ann, const char *filename, + unsigned int max_epochs, + unsigned int epochs_between_reports, + float desired_error); + +/* Function: fann_train_epoch + Train one epoch with a set of training data. + + Train one epoch with the training data stored in data. One epoch is where all of + the training data is considered exactly once. + + This function returns the MSE error as it is calculated either before or during + the actual training. This is not the actual MSE after the training epoch, but since + calculating this will require to go through the entire training set once more, it is + more than adequate to use this value during training. + + The training algorithm used by this function is chosen by the + function. + + See also: + , + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL float FANN_API fann_train_epoch(struct fann *ann, struct fann_train_data *data); +#endif /* NOT FIXEDFANN */ + +/* Function: fann_test_data + + Test a set of training data and calculates the MSE for the training data. + + This function updates the MSE and the bit fail values. + + See also: + , , + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL float FANN_API fann_test_data(struct fann *ann, struct fann_train_data *data); + +/* Group: Training Data Manipulation */ + +/* Function: fann_read_train_from_file + Reads a file that stores training data. + + The file must be formatted like: + >num_train_data num_input num_output + >inputdata separated by space + >outputdata separated by space + > + >. + >. + >. + > + >inputdata separated by space + >outputdata separated by space + + See also: + , , + + This function appears in FANN >= 1.0.0 +*/ +FANN_EXTERNAL struct fann_train_data *FANN_API fann_read_train_from_file(const char *filename); + +/* Function: fann_create_train + Creates an empty training data struct. + + See also: + , , , + , + + This function appears in FANN >= 2.2.0 +*/ +FANN_EXTERNAL struct fann_train_data *FANN_API fann_create_train(unsigned int num_data, + unsigned int num_input, + unsigned int num_output); + +/* Function: fann_create_train_pointer_array + Creates an training data struct and fills it with data from provided arrays of pointer. + + A copy of the data is made so there are no restrictions on the + allocation of the input/output data and the caller is responsible + for the deallocation of the data pointed to by input and output. + + See also: + , , , + , , + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL struct fann_train_data *FANN_API +fann_create_train_pointer_array(unsigned int num_data, unsigned int num_input, fann_type **input, + unsigned int num_output, fann_type **output); + +/* Function: fann_create_train_array + Creates an training data struct and fills it with data from provided arrays, where the arrays + must have the dimensions: input[num_data*num_input] output[num_data*num_output] + + A copy of the data is made so there are no restrictions on the + allocation of the input/output data and the caller is responsible + for the deallocation of the data pointed to by input and output. + + See also: + , , , + , , + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL struct fann_train_data *FANN_API fann_create_train_array(unsigned int num_data, + unsigned int num_input, + fann_type *input, + unsigned int num_output, + fann_type *output); + +/* Function: fann_create_train_from_callback + Creates the training data struct from a user supplied function. + As the training data are numerable (data 1, data 2...), the user must write + a function that receives the number of the training data set (input,output) + and returns the set. fann_create_train_from_callback will call the user + supplied function 'num_data' times, one input-output pair each time. Each + time the user supplied function is called, the time of the call will be passed + as the 'num' parameter and the user supplied function must write the input + and output to the corresponding parameters. + + + Parameters: + num_data - The number of training data + num_input - The number of inputs per training data + num_output - The number of ouputs per training data + user_function - The user supplied function + + Parameters for the user function: + num - The number of the training data set + num_input - The number of inputs per training data + num_output - The number of ouputs per training data + input - The set of inputs + output - The set of desired outputs + + See also: + , , , + + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL struct fann_train_data *FANN_API fann_create_train_from_callback( + unsigned int num_data, unsigned int num_input, unsigned int num_output, + void(FANN_API *user_function)(unsigned int, unsigned int, unsigned int, fann_type *, + fann_type *)); + +/* Function: fann_destroy_train + Destructs the training data and properly deallocates all of the associated data. + Be sure to call this function when finished using the training data. + + This function appears in FANN >= 1.0.0 + */ +FANN_EXTERNAL void FANN_API fann_destroy_train(struct fann_train_data *train_data); + +/* Function: fann_get_train_input + Gets the training input data at the given position + + See also: + + + This function appears in FANN >= 2.3.0 + */ +FANN_EXTERNAL fann_type *FANN_API fann_get_train_input(struct fann_train_data *data, + unsigned int position); + +/* Function: fann_get_train_output + Gets the training output data at the given position + + See also: + + + This function appears in FANN >= 2.3.0 + */ +FANN_EXTERNAL fann_type *FANN_API fann_get_train_output(struct fann_train_data *data, + unsigned int position); + +/* Function: fann_shuffle_train_data + + Shuffles training data, randomizing the order. + This is recommended for incremental training, while it has no influence during batch training. + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL void FANN_API fann_shuffle_train_data(struct fann_train_data *train_data); + +#ifndef FIXEDFANN + +/* Function: fann_get_min_train_input + + Get the minimum value of all in the input data + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL fann_type FANN_API fann_get_min_train_input(struct fann_train_data *train_data); + +/* Function: fann_get_max_train_input + + Get the maximum value of all in the input data + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL fann_type FANN_API fann_get_max_train_input(struct fann_train_data *train_data); + +/* Function: fann_get_min_train_output + + Get the minimum value of all in the output data + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL fann_type FANN_API fann_get_min_train_output(struct fann_train_data *train_data); + +/* Function: fann_get_max_train_output + + Get the maximum value of all in the output data + + This function appears in FANN >= 2.3.0 +*/ +FANN_EXTERNAL fann_type FANN_API fann_get_max_train_output(struct fann_train_data *train_data); + +/* Function: fann_scale_train + + Scale input and output data based on previously calculated parameters. + + Parameters: + ann - ann for which trained parameters were calculated before + data - training data that needs to be scaled + + See also: + , + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_scale_train(struct fann *ann, struct fann_train_data *data); + +/* Function: fann_descale_train + + Descale input and output data based on previously calculated parameters. + + Parameters: + ann - ann for which trained parameters were calculated before + data - training data that needs to be descaled + + See also: + , + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL void FANN_API fann_descale_train(struct fann *ann, struct fann_train_data *data); + +/* Function: fann_set_input_scaling_params + + Calculate input scaling parameters for future use based on training data. + + Parameters: + ann - ann for which parameters need to be calculated + data - training data that will be used to calculate scaling parameters + new_input_min - desired lower bound in input data after scaling (not strictly followed) + new_input_max - desired upper bound in input data after scaling (not strictly followed) + + See also: + + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL int FANN_API fann_set_input_scaling_params(struct fann *ann, + const struct fann_train_data *data, + float new_input_min, float new_input_max); + +/* Function: fann_set_output_scaling_params + + Calculate output scaling parameters for future use based on training data. + + Parameters: + ann - ann for which parameters need to be calculated + data - training data that will be used to calculate scaling parameters + new_output_min - desired lower bound in output data after scaling (not strictly followed) + new_output_max - desired upper bound in output data after scaling (not strictly followed) + + See also: + + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL int FANN_API fann_set_output_scaling_params(struct fann *ann, + const struct fann_train_data *data, + float new_output_min, + float new_output_max); + +/* Function: fann_set_scaling_params + + Calculate input and output scaling parameters for future use based on training data. + + Parameters: + ann - ann for which parameters need to be calculated + data - training data that will be used to calculate scaling parameters + new_input_min - desired lower bound in input data after scaling (not strictly followed) + new_input_max - desired upper bound in input data after scaling (not strictly followed) + new_output_min - desired lower bound in output data after scaling (not strictly followed) + new_output_max - desired upper bound in output data after scaling (not strictly followed) + + See also: + , + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL int FANN_API fann_set_scaling_params(struct fann *ann, + const struct fann_train_data *data, + float new_input_min, float new_input_max, + float new_output_min, float new_output_max); + +/* Function: fann_clear_scaling_params + + Clears scaling parameters. + + Parameters: + ann - ann for which to clear scaling parameters + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL int FANN_API fann_clear_scaling_params(struct fann *ann); + +/* Function: fann_scale_input + + Scale data in input vector before feeding it to ann based on previously calculated parameters. + + Parameters: + ann - for which scaling parameters were calculated + input_vector - input vector that will be scaled + + See also: + , + + This function appears in FANN >= 2.1.0 +*/ +FANN_EXTERNAL void FANN_API fann_scale_input(struct fann *ann, fann_type *input_vector); + +/* Function: fann_scale_output + + Scale data in output vector before feeding it to ann based on previously calculated parameters. + + Parameters: + ann - for which scaling parameters were calculated + output_vector - output vector that will be scaled + + See also: + , + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL void FANN_API fann_scale_output(struct fann *ann, fann_type *output_vector); + +/* Function: fann_descale_input + + Scale data in input vector after getting it from ann based on previously calculated parameters. + + Parameters: + ann - for which scaling parameters were calculated + input_vector - input vector that will be descaled + + See also: + , + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL void FANN_API fann_descale_input(struct fann *ann, fann_type *input_vector); + +/* Function: fann_descale_output + + Scale data in output vector after getting it from ann based on previously calculated parameters. + + Parameters: + ann - for which scaling parameters were calculated + output_vector - output vector that will be descaled + + See also: + , + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL void FANN_API fann_descale_output(struct fann *ann, fann_type *output_vector); + +#endif + +/* Function: fann_scale_input_train_data + + Scales the inputs in the training data to the specified range. + + A simplified scaling method, which is mostly useful in examples where it's known that all the + data will be in one range and it should be transformed to another range. + + It is not recommended to use this on subsets of data as the complete input range might not be + available in that subset. + + For more powerful scaling, please consider + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_scale_input_train_data(struct fann_train_data *train_data, + fann_type new_min, fann_type new_max); + +/* Function: fann_scale_output_train_data + + Scales the outputs in the training data to the specified range. + + A simplified scaling method, which is mostly useful in examples where it's known that all the + data will be in one range and it should be transformed to another range. + + It is not recommended to use this on subsets of data as the complete input range might not be + available in that subset. + + For more powerful scaling, please consider + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_scale_output_train_data(struct fann_train_data *train_data, + fann_type new_min, fann_type new_max); + +/* Function: fann_scale_train_data + + Scales the inputs and outputs in the training data to the specified range. + + A simplified scaling method, which is mostly useful in examples where it's known that all the + data will be in one range and it should be transformed to another range. + + It is not recommended to use this on subsets of data as the complete input range might not be + available in that subset. + + For more powerful scaling, please consider + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_scale_train_data(struct fann_train_data *train_data, + fann_type new_min, fann_type new_max); + +/* Function: fann_merge_train_data + + Merges the data from *data1* and *data2* into a new . + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL struct fann_train_data *FANN_API fann_merge_train_data(struct fann_train_data *data1, + struct fann_train_data *data2); + +/* Function: fann_duplicate_train_data + + Returns an exact copy of a . + + This function appears in FANN >= 1.1.0. + */ +FANN_EXTERNAL struct fann_train_data *FANN_API +fann_duplicate_train_data(struct fann_train_data *data); + +/* Function: fann_subset_train_data + + Returns an copy of a subset of the , starting at position *pos* + and *length* elements forward. + + >fann_subset_train_data(train_data, 0, fann_length_train_data(train_data)) + + Will do the same as . + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL struct fann_train_data *FANN_API fann_subset_train_data(struct fann_train_data *data, + unsigned int pos, + unsigned int length); + +/* Function: fann_length_train_data + + Returns the number of training patterns in the . + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_length_train_data(struct fann_train_data *data); + +/* Function: fann_num_input_train_data + + Returns the number of inputs in each of the training patterns in the . + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_num_input_train_data(struct fann_train_data *data); + +/* Function: fann_num_output_train_data + + Returns the number of outputs in each of the training patterns in the . + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL unsigned int FANN_API fann_num_output_train_data(struct fann_train_data *data); + +/* Function: fann_save_train + + Save the training structure to a file, with the format as specified in + + + Return: + The function returns 0 on success and -1 on failure. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL int FANN_API fann_save_train(struct fann_train_data *data, const char *filename); + +/* Function: fann_save_train_to_fixed + + Saves the training structure to a fixed point data file. + + This function is very useful for testing the quality of a fixed point network. + + Return: + The function returns 0 on success and -1 on failure. + + See also: + + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL int FANN_API fann_save_train_to_fixed(struct fann_train_data *data, + const char *filename, + unsigned int decimal_point); + +/* Group: Parameters */ + +/* Function: fann_get_training_algorithm + + Return the training algorithm as described by . This training algorithm + is used by and associated functions. + + Note that this algorithm is also used during , although only + FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP is allowed during cascade training. + + The default training algorithm is FANN_TRAIN_RPROP. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL enum fann_train_enum FANN_API fann_get_training_algorithm(struct fann *ann); + +/* Function: fann_set_training_algorithm + + Set the training algorithm. + + More info available in + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_training_algorithm(struct fann *ann, + enum fann_train_enum training_algorithm); + +/* Function: fann_get_learning_rate + + Return the learning rate. + + The learning rate is used to determine how aggressive training should be for some of the + training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). + Do however note that it is not used in FANN_TRAIN_RPROP. + + The default learning rate is 0.7. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL float FANN_API fann_get_learning_rate(struct fann *ann); + +/* Function: fann_set_learning_rate + + Set the learning rate. + + More info available in + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_learning_rate(struct fann *ann, float learning_rate); + +/* Function: fann_get_learning_momentum + + Get the learning momentum. + + The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training. + A too high momentum will however not benefit training. Setting momentum to 0 will + be the same as not using the momentum parameter. The recommended value of this parameter + is between 0.0 and 1.0. + + The default momentum is 0. + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL float FANN_API fann_get_learning_momentum(struct fann *ann); + +/* Function: fann_set_learning_momentum + + Set the learning momentum. + + More info available in + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_learning_momentum(struct fann *ann, float learning_momentum); + +/* Function: fann_get_activation_function + + Get the activation function for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to get activation functions for the neurons in the input layer. + + Information about the individual activation functions is available at . + + Returns: + The activation function for the neuron or -1 if the neuron is not defined in the neural network. + + See also: + , , + , , + + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL enum fann_activationfunc_enum FANN_API fann_get_activation_function(struct fann *ann, + int layer, + int neuron); + +/* Function: fann_set_activation_function + + Set the activation function for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation functions for the neurons in the input layer. + + When choosing an activation function it is important to note that the activation + functions have different range. FANN_SIGMOID is e.g. in the 0 - 1 range while + FANN_SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN_LINEAR is unbounded. + + Information about the individual activation functions is available at . + + The default activation function is FANN_SIGMOID_STEPWISE. + + See also: + , , + , , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_function( + struct fann *ann, enum fann_activationfunc_enum activation_function, int layer, int neuron); + +/* Function: fann_set_activation_function_layer + + Set the activation function for all the neurons in the layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation functions for the neurons in the input layer. + + See also: + , , + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_function_layer( + struct fann *ann, enum fann_activationfunc_enum activation_function, int layer); + +/* Function: fann_set_activation_function_hidden + + Set the activation function for all of the hidden layers. + + See also: + , , + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_function_hidden( + struct fann *ann, enum fann_activationfunc_enum activation_function); + +/* Function: fann_set_activation_function_output + + Set the activation function for the output layer. + + See also: + , , + , + + This function appears in FANN >= 1.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_function_output( + struct fann *ann, enum fann_activationfunc_enum activation_function); + +/* Function: fann_get_activation_steepness + + Get the activation steepness for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to get activation steepness for the neurons in the input layer. + + The steepness of an activation function says something about how fast the activation function + goes from the minimum to the maximum. A high value for the activation function will also + give a more aggressive training. + + When training neural networks where the output values should be at the extremes (usually 0 and 1, + depending on the activation function), a steep activation function can be used (e.g. 1.0). + + The default activation steepness is 0.5. + + Returns: + The activation steepness for the neuron or -1 if the neuron is not defined in the neural + network. + + See also: + , , + , , + + + This function appears in FANN >= 2.1.0 + */ +FANN_EXTERNAL fann_type FANN_API fann_get_activation_steepness(struct fann *ann, int layer, + int neuron); + +/* Function: fann_set_activation_steepness + + Set the activation steepness for neuron number *neuron* in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation steepness for the neurons in the input layer. + + The steepness of an activation function says something about how fast the activation function + goes from the minimum to the maximum. A high value for the activation function will also + give a more aggressive training. + + When training neural networks where the output values should be at the extremes (usually 0 and 1, + depending on the activation function), a steep activation function can be used (e.g. 1.0). + + The default activation steepness is 0.5. + + See also: + , , + , , + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_steepness(struct fann *ann, fann_type steepness, + int layer, int neuron); + +/* Function: fann_set_activation_steepness_layer + + Set the activation steepness for all of the neurons in layer number *layer*, + counting the input layer as layer 0. + + It is not possible to set activation steepness for the neurons in the input layer. + + See also: + , , + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_layer(struct fann *ann, + fann_type steepness, int layer); + +/* Function: fann_set_activation_steepness_hidden + + Set the steepness of the activation steepness in all of the hidden layers. + + See also: + , , + , + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_hidden(struct fann *ann, + fann_type steepness); + +/* Function: fann_set_activation_steepness_output + + Set the steepness of the activation steepness in the output layer. + + See also: + , , + , + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL void FANN_API fann_set_activation_steepness_output(struct fann *ann, + fann_type steepness); + +/* Function: fann_get_train_error_function + + Returns the error function used during training. + + The error functions are described further in + + The default error function is FANN_ERRORFUNC_TANH + + See also: + + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL enum fann_errorfunc_enum FANN_API fann_get_train_error_function(struct fann *ann); + +/* Function: fann_set_train_error_function + + Set the error function used during training. + + The error functions are described further in + + See also: + + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL void FANN_API +fann_set_train_error_function(struct fann *ann, enum fann_errorfunc_enum train_error_function); + +/* Function: fann_get_train_stop_function + + Returns the the stop function used during training. + + The stop function is described further in + + The default stop function is FANN_STOPFUNC_MSE + + See also: + , + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL enum fann_stopfunc_enum FANN_API fann_get_train_stop_function(struct fann *ann); + +/* Function: fann_set_train_stop_function + + Set the stop function used during training. + + Returns the the stop function used during training. + + The stop function is described further in + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API +fann_set_train_stop_function(struct fann *ann, enum fann_stopfunc_enum train_stop_function); + +/* Function: fann_get_bit_fail_limit + + Returns the bit fail limit used during training. + + The bit fail limit is used during training where the is set to + FANN_STOPFUNC_BIT. + + The limit is the maximum accepted difference between the desired output and the actual output + during training. Each output that diverges more than this limit is counted as an error bit. This + difference is divided by two when dealing with symmetric activation functions, so that symmetric + and not symmetric activation functions can use the same limit. + + The default bit fail limit is 0.35. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL fann_type FANN_API fann_get_bit_fail_limit(struct fann *ann); + +/* Function: fann_set_bit_fail_limit + + Set the bit fail limit used during training. + + See also: + + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_bit_fail_limit(struct fann *ann, fann_type bit_fail_limit); + +/* Function: fann_set_callback + + Sets the callback function for use during training. + + See for more information about the callback function. + + The default callback function simply prints out some status information. + + This function appears in FANN >= 2.0.0. + */ +FANN_EXTERNAL void FANN_API fann_set_callback(struct fann *ann, fann_callback_type callback); + +/* Function: fann_get_quickprop_decay + + The decay is a small negative valued number which is the factor that the weights + should become smaller in each iteration during quickprop training. This is used + to make sure that the weights do not become too high during training. + + The default decay is -0.0001. + + See also: + + + This function appears in FANN >= 1.2.0. + */ +FANN_EXTERNAL float FANN_API fann_get_quickprop_decay(struct fann *ann); + +/* Function: fann_set_quickprop_decay + + Sets the quickprop decay factor. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_quickprop_decay(struct fann *ann, float quickprop_decay); + +/* Function: fann_get_quickprop_mu + + The mu factor is used to increase and decrease the step-size during quickprop training. + The mu factor should always be above 1, since it would otherwise decrease the step-size + when it was supposed to increase it. + + The default mu factor is 1.75. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL float FANN_API fann_get_quickprop_mu(struct fann *ann); + +/* Function: fann_set_quickprop_mu + + Sets the quickprop mu factor. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_quickprop_mu(struct fann *ann, float quickprop_mu); + +/* Function: fann_get_rprop_increase_factor + + The increase factor is a value larger than 1, which is used to + increase the step-size during RPROP training. + + The default increase factor is 1.2. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL float FANN_API fann_get_rprop_increase_factor(struct fann *ann); + +/* Function: fann_set_rprop_increase_factor + + The increase factor used during RPROP training. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_rprop_increase_factor(struct fann *ann, + float rprop_increase_factor); + +/* Function: fann_get_rprop_decrease_factor + + The decrease factor is a value smaller than 1, which is used to decrease the step-size during + RPROP training. + + The default decrease factor is 0.5. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL float FANN_API fann_get_rprop_decrease_factor(struct fann *ann); + +/* Function: fann_set_rprop_decrease_factor + + The decrease factor is a value smaller than 1, which is used to decrease the step-size during + RPROP training. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_rprop_decrease_factor(struct fann *ann, + float rprop_decrease_factor); + +/* Function: fann_get_rprop_delta_min + + The minimum step-size is a small positive number determining how small the minimum step-size may + be. + + The default value delta min is 0.0. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL float FANN_API fann_get_rprop_delta_min(struct fann *ann); + +/* Function: fann_set_rprop_delta_min + + The minimum step-size is a small positive number determining how small the minimum step-size may + be. + + See also: + + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_rprop_delta_min(struct fann *ann, float rprop_delta_min); + +/* Function: fann_get_rprop_delta_max + + The maximum step-size is a positive number determining how large the maximum step-size may be. + + The default delta max is 50.0. + + See also: + , + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL float FANN_API fann_get_rprop_delta_max(struct fann *ann); + +/* Function: fann_set_rprop_delta_max + + The maximum step-size is a positive number determining how large the maximum step-size may be. + + See also: + , + + This function appears in FANN >= 1.2.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_rprop_delta_max(struct fann *ann, float rprop_delta_max); + +/* Function: fann_get_rprop_delta_zero + + The initial step-size is a positive number determining the initial step size. + + The default delta zero is 0.1. + + See also: + , , + + This function appears in FANN >= 2.1.0. +*/ +FANN_EXTERNAL float FANN_API fann_get_rprop_delta_zero(struct fann *ann); + +/* Function: fann_set_rprop_delta_zero + + The initial step-size is a positive number determining the initial step size. + + See also: + , + + This function appears in FANN >= 2.1.0. +*/ +FANN_EXTERNAL void FANN_API fann_set_rprop_delta_zero(struct fann *ann, float rprop_delta_max); + +/* Method: fann_get_sarprop_weight_decay_shift + + The sarprop weight decay shift. + + The default delta max is -6.644. + + See also: + + + This function appears in FANN >= 2.1.0. + */ +FANN_EXTERNAL float FANN_API fann_get_sarprop_weight_decay_shift(struct fann *ann); + +/* Method: fann_set_sarprop_weight_decay_shift + + Set the sarprop weight decay shift. + + This function appears in FANN >= 2.1.0. + + See also: + + */ +FANN_EXTERNAL void FANN_API fann_set_sarprop_weight_decay_shift(struct fann *ann, + float sarprop_weight_decay_shift); + +/* Method: fann_get_sarprop_step_error_threshold_factor + + The sarprop step error threshold factor. + + The default delta max is 0.1. + + See also: + + + This function appears in FANN >= 2.1.0. + */ +FANN_EXTERNAL float FANN_API fann_get_sarprop_step_error_threshold_factor(struct fann *ann); + +/* Method: fann_set_sarprop_step_error_threshold_factor + + Set the sarprop step error threshold factor. + + This function appears in FANN >= 2.1.0. + + See also: + + */ +FANN_EXTERNAL void FANN_API fann_set_sarprop_step_error_threshold_factor( + struct fann *ann, float sarprop_step_error_threshold_factor); + +/* Method: fann_get_sarprop_step_error_shift + + The get sarprop step error shift. + + The default delta max is 1.385. + + See also: + + + This function appears in FANN >= 2.1.0. + */ +FANN_EXTERNAL float FANN_API fann_get_sarprop_step_error_shift(struct fann *ann); + +/* Method: fann_set_sarprop_step_error_shift + + Set the sarprop step error shift. + + This function appears in FANN >= 2.1.0. + + See also: + + */ +FANN_EXTERNAL void FANN_API fann_set_sarprop_step_error_shift(struct fann *ann, + float sarprop_step_error_shift); + +/* Method: fann_get_sarprop_temperature + + The sarprop weight decay shift. + + The default delta max is 0.015. + + See also: + + + This function appears in FANN >= 2.1.0. + */ +FANN_EXTERNAL float FANN_API fann_get_sarprop_temperature(struct fann *ann); + +/* Method: fann_set_sarprop_temperature + + Set the sarprop_temperature. + + This function appears in FANN >= 2.1.0. + + See also: + + */ +FANN_EXTERNAL void FANN_API fann_set_sarprop_temperature(struct fann *ann, + float sarprop_temperature); + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_training_data_cpp.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_training_data_cpp.h new file mode 100644 index 0000000..04248f6 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fann_training_data_cpp.h @@ -0,0 +1,543 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef FANN_FANN_TRAINING_DATA_CPP_H +#define FANN_FANN_TRAINING_DATA_CPP_H + +#include +#include + +namespace FANN { + +/* Section: FANN C++ Training Data + */ + +/* Class: training_data + + is used to create and manipulate training data used by the + +Encapsulation of a training data set and +associated C API functions. +*/ +class training_data { + public: + /* Constructor: training_data + + Default constructor creates an empty training data. + Use , or to initialize. + */ + training_data() : train_data(NULL) {} + + /* Constructor: training_data + + Copy constructor constructs a copy of the training data. + Corresponds to the C API function. + */ + training_data(const training_data &data) { + train_data = fann_duplicate_train_data(data.train_data); + } + + /* Destructor: ~training_data + + Provides automatic cleanup of data. + Define USE_VIRTUAL_DESTRUCTOR if you need the destructor to be virtual. + + See also: + + */ +#ifdef USE_VIRTUAL_DESTRUCTOR + virtual +#endif + + ~training_data() { + destroy_train(); + } + + /* Method: destroy + + Destructs the training data. Called automatically by the destructor. + + See also: + <~training_data> + */ + void destroy_train() { + if (train_data != NULL) { + fann_destroy_train(train_data); + train_data = NULL; + } + } + + /* Method: read_train_from_file + Reads a file that stores training data. + + The file must be formatted like: + >num_train_data num_input num_output + >inputdata seperated by space + >outputdata seperated by space + > + >. + >. + >. + > + >inputdata seperated by space + >outputdata seperated by space + + See also: + , , + + This function appears in FANN >= 1.0.0 + */ + bool read_train_from_file(const std::string &filename) { + destroy_train(); + train_data = fann_read_train_from_file(filename.c_str()); + return (train_data != NULL); + } + + /* Method: save_train + + Save the training structure to a file, with the format as specified in + + Return: + The function returns true on success and false on failure. + + See also: + , , + + This function appears in FANN >= 1.0.0. + */ + bool save_train(const std::string &filename) { + if (train_data == NULL) { + return false; + } + if (fann_save_train(train_data, filename.c_str()) == -1) { + return false; + } + return true; + } + + /* Method: save_train_to_fixed + + Saves the training structure to a fixed point data file. + + This function is very useful for testing the quality of a fixed point network. + + Return: + The function returns true on success and false on failure. + + See also: + , + + This function appears in FANN >= 1.0.0. + */ + bool save_train_to_fixed(const std::string &filename, unsigned int decimal_point) { + if (train_data == NULL) { + return false; + } + if (fann_save_train_to_fixed(train_data, filename.c_str(), decimal_point) == -1) { + return false; + } + return true; + } + + /* Method: shuffle_train_data + + Shuffles training data, randomizing the order. + This is recommended for incremental training, while it have no influence during batch training. + + This function appears in FANN >= 1.1.0. + */ + void shuffle_train_data() { + if (train_data != NULL) { + fann_shuffle_train_data(train_data); + } + } + + /* Method: merge_train_data + + Merges the data into the data contained in the . + + This function appears in FANN >= 1.1.0. + */ + void merge_train_data(const training_data &data) { + fann_train_data *new_data = fann_merge_train_data(train_data, data.train_data); + if (new_data != NULL) { + destroy_train(); + train_data = new_data; + } + } + + /* Method: length_train_data + + Returns the number of training patterns in the . + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + unsigned int length_train_data() { + if (train_data == NULL) { + return 0; + } else { + return fann_length_train_data(train_data); + } + } + + /* Method: num_input_train_data + + Returns the number of inputs in each of the training patterns in the . + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + unsigned int num_input_train_data() { + if (train_data == NULL) { + return 0; + } else { + return fann_num_input_train_data(train_data); + } + } + + /* Method: num_output_train_data + + Returns the number of outputs in each of the training patterns in the . + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + unsigned int num_output_train_data() { + if (train_data == NULL) { + return 0; + } else { + return fann_num_output_train_data(train_data); + } + } + + /* Method: get_input + Grant access to the encapsulated data since many situations + and applications creates the data from sources other than files + or uses the training data for testing and related functions + + Returns: + A pointer to the array of input training data + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + fann_type **get_input() { + if (train_data == NULL) { + return NULL; + } else { + return train_data->input; + } + } + + /* Method: get_output + + Grant access to the encapsulated data since many situations + and applications creates the data from sources other than files + or uses the training data for testing and related functions + + Returns: + A pointer to the array of output training data + + See also: + , + + This function appears in FANN >= 2.0.0. + */ + fann_type **get_output() { + if (train_data == NULL) { + return NULL; + } else { + return train_data->output; + } + } + + /* Method: get_train_input + Gets the training input data at the given position + + Returns: + A pointer to the array of input training data at the given position + + See also: + , + + This function appears in FANN >= 2.3.0. + */ + fann_type *get_train_input(unsigned int position) { + return fann_get_train_input(train_data, position); + } + + /* Method: get_train_output + Gets the training output data at the given position + + Returns: + A pointer to the array of output training data at the given position + + See also: + + + This function appears in FANN >= 2.3.0. + */ + fann_type *get_train_output(unsigned int position) { + return fann_get_train_output(train_data, position); + } + + /* Method: set_train_data + + Set the training data to the input and output data provided. + + A copy of the data is made so there are no restrictions on the + allocation of the input/output data and the caller is responsible + for the deallocation of the data pointed to by input and output. + + Parameters: + num_data - The number of training data + num_input - The number of inputs per training data + num_output - The number of ouputs per training data + input - The set of inputs (a pointer to an array of pointers to arrays of floating point + data) output - The set of desired outputs (a pointer to an array of pointers to arrays of + floating point data) + + See also: + , + */ + void set_train_data(unsigned int num_data, unsigned int num_input, fann_type **input, + unsigned int num_output, fann_type **output) { + set_train_data(fann_create_train_pointer_array(num_data, num_input, input, num_output, output)); + } + + /* Method: set_train_data + + Set the training data to the input and output data provided. + + A copy of the data is made so there are no restrictions on the + allocation of the input/output data and the caller is responsible + for the deallocation of the data pointed to by input and output. + + Parameters: + num_data - The number of training data + num_input - The number of inputs per training data + num_output - The number of ouputs per training data + input - The set of inputs (an array with the dimension num_data*num_input) + output - The set of desired outputs (an array with the dimension num_data*num_output) + + See also: + , + */ + void set_train_data(unsigned int num_data, unsigned int num_input, fann_type *input, + unsigned int num_output, fann_type *output) { + set_train_data(fann_create_train_array(num_data, num_input, input, num_output, output)); + } + + private: + /* Set the training data to the struct fann_training_data pointer. + The struct has to be allocated with malloc to be compatible + with fann_destroy. */ + void set_train_data(struct fann_train_data *data) { + destroy_train(); + train_data = data; + } + + public: + /*********************************************************************/ + + /* Method: create_train_from_callback + Creates the training data struct from a user supplied function. + As the training data are numerable (data 1, data 2...), the user must write + a function that receives the number of the training data set (input,output) + and returns the set. + + Parameters: + num_data - The number of training data + num_input - The number of inputs per training data + num_output - The number of ouputs per training data + user_function - The user suplied function + + Parameters for the user function: + num - The number of the training data set + num_input - The number of inputs per training data + num_output - The number of ouputs per training data + input - The set of inputs + output - The set of desired outputs + + See also: + , , + + + This function appears in FANN >= 2.1.0 + */ + void create_train_from_callback(unsigned int num_data, unsigned int num_input, + unsigned int num_output, + void(FANN_API *user_function)(unsigned int, unsigned int, + unsigned int, fann_type *, + fann_type *)) { + destroy_train(); + train_data = fann_create_train_from_callback(num_data, num_input, num_output, user_function); + } + +#ifndef FIXEDFANN + /* Function: get_min_input + + Get the minimum value of all in the input data + + This function appears in FANN >= 2.3.0 + */ + fann_type get_min_input() { return fann_get_min_train_input(train_data); } + + /* Function: get_max_input + + Get the maximum value of all in the input data + + This function appears in FANN >= 2.3.0 + */ + fann_type get_max_input() { return fann_get_max_train_input(train_data); } + + /* Function: get_min_output + + Get the minimum value of all in the output data + + This function appears in FANN >= 2.3.0 + */ + fann_type get_min_output() { return fann_get_min_train_output(train_data); } + + /* Function: get_max_output + + Get the maximum value of all in the output data + + This function appears in FANN >= 2.3.0 + */ + fann_type get_max_output() { return fann_get_max_train_output(train_data); } +#endif /* FIXEDFANN */ + + /* Method: scale_input_train_data + + Scales the inputs in the training data to the specified range. + + A simplified scaling method, which is mostly useful in examples where it's known that all the + data will be in one range and it should be transformed to another range. + + It is not recommended to use this on subsets of data as the complete input range might not be + available in that subset. + + For more powerful scaling, please consider + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + void scale_input_train_data(fann_type new_min, fann_type new_max) { + if (train_data != NULL) { + fann_scale_input_train_data(train_data, new_min, new_max); + } + } + + /* Method: scale_output_train_data + + Scales the outputs in the training data to the specified range. + + A simplified scaling method, which is mostly useful in examples where it's known that all the + data will be in one range and it should be transformed to another range. + + It is not recommended to use this on subsets of data as the complete input range might not be + available in that subset. + + For more powerful scaling, please consider + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + void scale_output_train_data(fann_type new_min, fann_type new_max) { + if (train_data != NULL) { + fann_scale_output_train_data(train_data, new_min, new_max); + } + } + + /* Method: scale_train_data + + Scales the inputs and outputs in the training data to the specified range. + + A simplified scaling method, which is mostly useful in examples where it's known that all the + data will be in one range and it should be transformed to another range. + + It is not recommended to use this on subsets of data as the complete input range might not be + available in that subset. + + For more powerful scaling, please consider + + See also: + , , + + This function appears in FANN >= 2.0.0. + */ + void scale_train_data(fann_type new_min, fann_type new_max) { + if (train_data != NULL) { + fann_scale_train_data(train_data, new_min, new_max); + } + } + + /* Method: subset_train_data + + Changes the training data to a subset, starting at position *pos* + and *length* elements forward. Use the copy constructor to work + on a new copy of the training data. + + >FANN::training_data full_data_set; + >full_data_set.read_train_from_file("somefile.train"); + >FANN::training_data *small_data_set = new FANN::training_data(full_data_set); + >small_data_set->subset_train_data(0, 2); // Only use first two + >// Use small_data_set ... + >delete small_data_set; + + See also: + + + This function appears in FANN >= 2.0.0. + */ + void subset_train_data(unsigned int pos, unsigned int length) { + if (train_data != NULL) { + struct fann_train_data *temp = fann_subset_train_data(train_data, pos, length); + destroy_train(); + train_data = temp; + } + } + + /*********************************************************************/ + + protected: + /* The neural_net class has direct access to the training data */ + friend class neural_net; + + /* Pointer to the encapsulated training data */ + struct fann_train_data *train_data; +}; + +} // namespace FANN + +#endif // FANN_FANN_TRAINING_DATA_CPP_H diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fixedfann.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fixedfann.h new file mode 100644 index 0000000..df3bcd4 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/fixedfann.h @@ -0,0 +1,33 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __fixedfann_h__ +#define __fixedfann_h__ + +typedef int fann_type; + +#undef FIXEDFANN +#define FIXEDFANN +#define FANNPRINTF "%d" +#define FANNSCANF "%d" + +#define FANN_INCLUDE +#include "fann.h" + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/floatfann.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/floatfann.h new file mode 100644 index 0000000..ab876ca --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/floatfann.h @@ -0,0 +1,33 @@ +/* +Fast Artificial Neural Network Library (fann) +Copyright (C) 2003-2016 Steffen Nissen (steffen.fann@gmail.com) + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __floatfann_h__ +#define __floatfann_h__ + +typedef float fann_type; + +#undef FLOATFANN +#define FLOATFANN +#define FANNPRINTF "%.20e" +#define FANNSCANF "%f" + +#define FANN_INCLUDE +#include "fann.h" + +#endif diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/parallel_fann.h b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/parallel_fann.h new file mode 100644 index 0000000..28d0781 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/parallel_fann.h @@ -0,0 +1,53 @@ +/* + * parallel_FANN.h + * + * Author: Alessandro Pietro Bardelli + */ +#ifndef DISABLE_PARALLEL_FANN +#ifndef PARALLEL_FANN_H_ +#define PARALLEL_FANN_H_ + +#include "fann.h" + +#ifdef __cplusplus +extern "C" { + +#ifndef __cplusplus +} /* to fool automatic indention engines */ +#endif +#endif /* __cplusplus */ + +#ifndef FIXEDFANN +FANN_EXTERNAL float FANN_API fann_train_epoch_batch_parallel(struct fann *ann, + struct fann_train_data *data, + const unsigned int threadnumb); + +FANN_EXTERNAL float FANN_API fann_train_epoch_irpropm_parallel(struct fann *ann, + struct fann_train_data *data, + const unsigned int threadnumb); + +FANN_EXTERNAL float FANN_API fann_train_epoch_quickprop_parallel(struct fann *ann, + struct fann_train_data *data, + const unsigned int threadnumb); + +FANN_EXTERNAL float FANN_API fann_train_epoch_sarprop_parallel(struct fann *ann, + struct fann_train_data *data, + const unsigned int threadnumb); + +FANN_EXTERNAL float FANN_API fann_train_epoch_incremental_mod(struct fann *ann, + struct fann_train_data *data); + +FANN_EXTERNAL float FANN_API fann_test_data_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb); +#endif /* FIXEDFANN */ + +#ifdef __cplusplus +#ifndef __cplusplus +/* to fool automatic indention engines */ +{ +#endif +} +#endif /* __cplusplus */ + +#endif /* PARALLEL_FANN_H_ */ +#endif /* DISABLE_PARALLEL_FANN */ diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/parallel_fann.hpp b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/parallel_fann.hpp new file mode 100644 index 0000000..ff5ee6d --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/include/parallel_fann.hpp @@ -0,0 +1,55 @@ +/* + * parallel_FANN.hpp + * Author: Alessandro Pietro Bardelli + */ +#ifndef DISABLE_PARALLEL_FANN +#ifndef PARALLEL_FANN_HPP_ +#define PARALLEL_FANN_HPP_ +#include +#include +#include "fann.h" + +#ifndef FIXEDFANN +namespace parallel_fann { +float train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb); + +float train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb); + +float train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb); + +float train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb); + +float train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data); + +float train_epoch_batch_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb, + std::vector > &predicted_outputs); + +float train_epoch_irpropm_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb, + std::vector > &predicted_outputs); + +float train_epoch_quickprop_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb, + std::vector > &predicted_outputs); + +float train_epoch_sarprop_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb, + std::vector > &predicted_outputs); + +float train_epoch_incremental_mod(struct fann *ann, struct fann_train_data *data, + std::vector > &predicted_outputs); + +float test_data_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb); +float test_data_parallel(struct fann *ann, struct fann_train_data *data, + const unsigned int threadnumb, + std::vector > &predicted_outputs); +} // namespace parallel_fann +#endif /* FIXEDFANN */ +#endif /* PARALLEL_FANN_HPP_ */ +#endif /* DISABLE_PARALLEL_FANN */ diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/lib/pkgconfig/fann.pc b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/lib/pkgconfig/fann.pc new file mode 100644 index 0000000..9d80ccb --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/lib/pkgconfig/fann.pc @@ -0,0 +1,11 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix}/bin +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: fann +Description: Fast Artificial Neural Network Library +Version: +Libs: "-L${libdir}" -lm -lfann +Cflags: "-I${includedir}" + diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/copyright b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/copyright new file mode 100644 index 0000000..b1e3f5a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/copyright @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/fann-config.cmake b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/fann-config.cmake new file mode 100644 index 0000000..97d27c2 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/fann-config.cmake @@ -0,0 +1,53 @@ +get_filename_component(VCPKG_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) +# -*- cmake -*- +# +# fann-config.cmake(.in) +# + +# Use the following variables to compile and link against FANN: +# FANN_FOUND - True if FANN was found on your system +# FANN_USE_FILE - The file making FANN usable +# FANN_DEFINITIONS - Definitions needed to build with FANN +# FANN_INCLUDE_DIR - Directory where fann.h can be found +# FANN_INCLUDE_DIRS - List of directories of FANN and it's dependencies +# FANN_LIBRARY - FANN library location +# FANN_LIBRARIES - List of libraries to link against FANN library +# FANN_LIBRARY_DIRS - List of directories containing FANN' libraries +# FANN_ROOT_DIR - The base directory of FANN +# FANN_VERSION_STRING - A human-readable string containing the version +# FANN_VERSION_MAJOR - The major version of FANN +# FANN_VERSION_MINOR - The minor version of FANN +# FANN_VERSION_PATCH - The patch version of FANN + + +####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### +####### Any changes to this file will be overwritten by the next CMake run #### +####### The input file was fann-config.cmake.in ######## + +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../" ABSOLUTE) + +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +#################################################################################### + +set ( FANN_FOUND 1 ) +set ( FANN_USE_FILE "${VCPKG_IMPORT_PREFIX}/lib/cmake/fann/fann-use.cmake" ) + +set ( FANN_DEFINITIONS "" ) +set ( FANN_INCLUDE_DIR "${VCPKG_IMPORT_PREFIX}/include" ) +set ( FANN_INCLUDE_DIRS "${VCPKG_IMPORT_PREFIX}/include" ) +set ( FANN_LIBRARY "fann" ) +set ( FANN_LIBRARIES "fann" ) +set ( FANN_LIBRARY_DIRS "${VCPKG_IMPORT_PREFIX}/lib" ) +set ( FANN_ROOT_DIR "${VCPKG_IMPORT_PREFIX}" ) + +set ( FANN_VERSION_STRING "2.2.0" ) +set ( FANN_VERSION_MAJOR "2" ) +set ( FANN_VERSION_MINOR "2" ) +set ( FANN_VERSION_PATCH "0" ) + diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/fann-use.cmake b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/fann-use.cmake new file mode 100644 index 0000000..7f04255 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/fann-use.cmake @@ -0,0 +1,9 @@ +# -*- cmake -*- +# +# fann-use.cmake +# + +add_definitions ( ${FANN_DEFINITIONS} ) +include_directories ( ${FANN_INCLUDE_DIRS} ) +link_directories ( ${FANN_LIBRARY_DIRS} ) + diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/vcpkg.spdx.json b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/vcpkg.spdx.json new file mode 100644 index 0000000..66604e0 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/vcpkg.spdx.json @@ -0,0 +1,198 @@ +{ + "$schema": "https://raw.githubusercontent.com/spdx/spdx-spec/v2.2.1/schemas/spdx-schema.json", + "spdxVersion": "SPDX-2.2", + "dataLicense": "CC0-1.0", + "SPDXID": "SPDXRef-DOCUMENT", + "documentNamespace": "https://spdx.org/spdxdocs/fann-x64-windows-2023-01-26-ce8397b7-6f7b-4dbc-b19b-e00cdba7c913", + "name": "fann:x64-windows@2023-01-26 ec3e8660f6be2382038aa9415c905fcbf1fe448b16400cd48d2ff4d126526ba5", + "creationInfo": { + "creators": [ + "Tool: vcpkg-8a83681f921b10d86ae626fd833c253f4f8c355b" + ], + "created": "2024-03-10T08:55:29Z" + }, + "relationships": [ + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "GENERATES", + "relatedSpdxElement": "SPDXRef-binary" + }, + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "CONTAINS", + "relatedSpdxElement": "SPDXRef-file-0" + }, + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "CONTAINS", + "relatedSpdxElement": "SPDXRef-file-1" + }, + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "CONTAINS", + "relatedSpdxElement": "SPDXRef-file-2" + }, + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "CONTAINS", + "relatedSpdxElement": "SPDXRef-file-3" + }, + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "CONTAINS", + "relatedSpdxElement": "SPDXRef-file-4" + }, + { + "spdxElementId": "SPDXRef-port", + "relationshipType": "CONTAINS", + "relatedSpdxElement": "SPDXRef-file-5" + }, + { + "spdxElementId": "SPDXRef-binary", + "relationshipType": "GENERATED_FROM", + "relatedSpdxElement": "SPDXRef-port" + }, + { + "spdxElementId": "SPDXRef-file-0", + "relationshipType": "CONTAINED_BY", + "relatedSpdxElement": "SPDXRef-port" + }, + { + "spdxElementId": "SPDXRef-file-1", + "relationshipType": "CONTAINED_BY", + "relatedSpdxElement": "SPDXRef-port" + }, + { + "spdxElementId": "SPDXRef-file-2", + "relationshipType": "CONTAINED_BY", + "relatedSpdxElement": "SPDXRef-port" + }, + { + "spdxElementId": "SPDXRef-file-3", + "relationshipType": "CONTAINED_BY", + "relatedSpdxElement": "SPDXRef-port" + }, + { + "spdxElementId": "SPDXRef-file-4", + "relationshipType": "CONTAINED_BY", + "relatedSpdxElement": "SPDXRef-port" + }, + { + "spdxElementId": "SPDXRef-file-5", + "relationshipType": "CONTAINED_BY", + "relatedSpdxElement": "SPDXRef-port" + } + ], + "packages": [ + { + "name": "fann", + "SPDXID": "SPDXRef-port", + "versionInfo": "2023-01-26", + "downloadLocation": "git+https://github.com/Microsoft/vcpkg#ports/fann", + "homepage": "https://github.com/libfann/fann", + "licenseConcluded": "LGPL-2.1-only", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "description": "Fast Artificial Neural Network (FANN) Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks.", + "comment": "This is the port (recipe) consumed by vcpkg." + }, + { + "name": "fann:x64-windows", + "SPDXID": "SPDXRef-binary", + "versionInfo": "ec3e8660f6be2382038aa9415c905fcbf1fe448b16400cd48d2ff4d126526ba5", + "downloadLocation": "NONE", + "licenseConcluded": "LGPL-2.1-only", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "comment": "This is a binary package built by vcpkg." + }, + { + "SPDXID": "SPDXRef-resource-1", + "name": "libfann/fann", + "downloadLocation": "git+https://github.com/libfann/fann@8409b42d308bf9428b9d3e60927595e53a797bbc", + "licenseConcluded": "NOASSERTION", + "licenseDeclared": "NOASSERTION", + "copyrightText": "NOASSERTION", + "checksums": [ + { + "algorithm": "SHA512", + "checksumValue": "4ad66808d7c88911d4c6d63368240ece2d0cbc73d89a95d32261b95dc551c47c46b3a34cc81b8cb0e03fe3f9ea61cb304e028780357bcf332d660824b066fd1e" + } + ] + } + ], + "files": [ + { + "fileName": "./F:/vandomej/Downloads/vcpkg/ports/fann/fix-build_type.patch", + "SPDXID": "SPDXRef-file-0", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "24b138e38b90893e2e69830aa3fb9abce52c9edfbd8a8e5f3d1022e44ad28888" + } + ], + "licenseConcluded": "NOASSERTION", + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./F:/vandomej/Downloads/vcpkg/ports/fann/fix-installation.patch", + "SPDXID": "SPDXRef-file-1", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "cf8fb095fe040aaba230bc20ca45918808104a1d264a7e619993c5bd16795722" + } + ], + "licenseConcluded": "NOASSERTION", + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./F:/vandomej/Downloads/vcpkg/ports/fann/fix-uwp-build.patch", + "SPDXID": "SPDXRef-file-2", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "6fd094c7eab67fd8cc8b2832a0f78231b0df8f55c1af705b48f2148f1241497b" + } + ], + "licenseConcluded": "NOASSERTION", + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./F:/vandomej/Downloads/vcpkg/ports/fann/portfile.cmake", + "SPDXID": "SPDXRef-file-3", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "fcf360a46b2d257f7d7de63f6a04f04fe9511cd55611cb22e6a96d11628605d6" + } + ], + "licenseConcluded": "NOASSERTION", + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./F:/vandomej/Downloads/vcpkg/ports/fann/remove-nouse-target.patch", + "SPDXID": "SPDXRef-file-4", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "1e337a505a1c74f5d35d28296d8e1fa04d4acfe49e9b73e27edfc237d553496f" + } + ], + "licenseConcluded": "NOASSERTION", + "copyrightText": "NOASSERTION" + }, + { + "fileName": "./F:/vandomej/Downloads/vcpkg/ports/fann/vcpkg.json", + "SPDXID": "SPDXRef-file-5", + "checksums": [ + { + "algorithm": "SHA256", + "checksumValue": "62e752bacc2f5fd3b0bf3f9d58dc4d0d1606ce5456a0e1244bf3c09dbe490fbe" + } + ], + "licenseConcluded": "NOASSERTION", + "copyrightText": "NOASSERTION" + } + ] +} diff --git a/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/vcpkg_abi_info.txt b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/vcpkg_abi_info.txt new file mode 100644 index 0000000..d969670 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Plugins/NeuralNetworkAIController/Source/NeuralNetworkAIController/ThirdParty/FANN/share/fann/vcpkg_abi_info.txt @@ -0,0 +1,20 @@ +cmake 3.27.1 +features core +fix-build_type.patch 24b138e38b90893e2e69830aa3fb9abce52c9edfbd8a8e5f3d1022e44ad28888 +fix-installation.patch cf8fb095fe040aaba230bc20ca45918808104a1d264a7e619993c5bd16795722 +fix-uwp-build.patch 6fd094c7eab67fd8cc8b2832a0f78231b0df8f55c1af705b48f2148f1241497b +portfile.cmake fcf360a46b2d257f7d7de63f6a04f04fe9511cd55611cb22e6a96d11628605d6 +ports.cmake 0500e9e2422fe0084c99bdd0c9de4c7069b76da14c8b58228a7e95ebac43058a +post_build_checks 2 +powershell 7.2.16 +remove-nouse-target.patch 1e337a505a1c74f5d35d28296d8e1fa04d4acfe49e9b73e27edfc237d553496f +triplet x64-windows +triplet_abi 4556164a2cd3dd6f4742101eabb46def7e71b6e5856faa88e5d005aac12a803c-e36df1c7f50ab25f9c182fa927d06c19ae082e0d599f132b3f655784b49e4b33-37ddf335dc10d14fa90c13a22cc1ec1cdbd1efcd +vcpkg-cmake 60e25dfd2d1ab5afe209de30eee1a8a9428fc7faa4dfb087874027758bfd9348 +vcpkg-cmake-config 22296a1b86e887eb28cbf7acb600c3e0cdf98358cb8b61f48bcb79d78e7534df +vcpkg.json 62e752bacc2f5fd3b0bf3f9d58dc4d0d1606ce5456a0e1244bf3c09dbe490fbe +vcpkg_copy_pdbs d57e4f196c82dc562a9968c6155073094513c31e2de475694143d3aa47954b1c +vcpkg_fixup_pkgconfig 904e67c46ecbb67379911bc1d7222855c0cbfcf1129bf47783858bcf0cc44970 +vcpkg_from_git 96ed81968f76354c00096dd8cd4e63c6a235fa969334a11ab18d11c0c512ff58 +vcpkg_from_github b743742296a114ea1b18ae99672e02f142c4eb2bef7f57d36c038bedbfb0502f +vcpkg_install_copyright ba6c169ab4e59fa05682e530cdeb883767de22c8391f023d4e6844a7ec5dd3d2 diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim.Target.cs b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim.Target.cs new file mode 100644 index 0000000..d0f5e77 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class AI_Fight_SimTarget : TargetRules +{ + public AI_Fight_SimTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Game; + DefaultBuildSettings = BuildSettingsVersion.V2; + + ExtraModuleNames.AddRange( new string[] { "AI_Fight_Sim" } ); + } +} diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.Build.cs b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.Build.cs new file mode 100644 index 0000000..291c928 --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.Build.cs @@ -0,0 +1,23 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; + +public class AI_Fight_Sim : ModuleRules +{ + public AI_Fight_Sim(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" }); + + PrivateDependencyModuleNames.AddRange(new string[] { }); + + // Uncomment if you are using Slate UI + // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" }); + + // Uncomment if you are using online features + // PrivateDependencyModuleNames.Add("OnlineSubsystem"); + + // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true + } +} diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.cpp b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.cpp new file mode 100644 index 0000000..91413da --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.cpp @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#include "AI_Fight_Sim.h" +#include "Modules/ModuleManager.h" + +IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, AI_Fight_Sim, "AI_Fight_Sim" ); diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.h b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.h new file mode 100644 index 0000000..90aad9e --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/AI_Fight_Sim.h @@ -0,0 +1,6 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +#pragma once + +#include "CoreMinimal.h" + diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/Private/NeuralNetworkCommandLineParsing.cpp b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/Private/NeuralNetworkCommandLineParsing.cpp new file mode 100644 index 0000000..5439f2b --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/Private/NeuralNetworkCommandLineParsing.cpp @@ -0,0 +1,36 @@ +#include "NeuralNetworkCommandLineParsing.h" + +void UNeuralNetworkCommandLineParsing::Init() +{ + Super::Init(); // Call the base class's Init function + + // Initialize ConfigFilePath to an empty string to ensure it has a default value + NeuralNetwork1ConfigPath = TEXT(""); + NeuralNetwork2ConfigPath = TEXT(""); + + // Temporary variable to hold the command line argument value + FString CommandLineConfigPath; + // Check for a "-NNConfig=" argument in the command line + if (FParse::Value(FCommandLine::Get(), TEXT("-NN1Config="), CommandLineConfigPath)) + { + // If found, assign the command line argument to the class variable + NeuralNetwork1ConfigPath = CommandLineConfigPath; + } + + // Check for a "-NNConfig=" argument in the command line + if (FParse::Value(FCommandLine::Get(), TEXT("-NN2Config="), CommandLineConfigPath)) + { + // If found, assign the command line argument to the class variable + NeuralNetwork2ConfigPath = CommandLineConfigPath; + } + + // Optional: Log the config file path for debugging purposes + UE_LOG(LogTemp, Warning, TEXT("Neural Network 1 Config File Path: %s"), *NeuralNetwork1ConfigPath); + UE_LOG(LogTemp, Warning, TEXT("Neural Network 2 Config File Path: %s"), *NeuralNetwork2ConfigPath); +} + +// Implementation of WriteStringToFile +bool UNeuralNetworkCommandLineParsing::WriteStringToFile(const FString& FilePath, const FString& Data) +{ + return FFileHelper::SaveStringToFile(Data, *FilePath); +} diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/Public/NeuralNetworkCommandLineParsing.h b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/Public/NeuralNetworkCommandLineParsing.h new file mode 100644 index 0000000..c7fa58c --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_Sim/Public/NeuralNetworkCommandLineParsing.h @@ -0,0 +1,27 @@ +#include "CoreMinimal.h" +#include "Engine/GameInstance.h" +#include "Misc/FileHelper.h" +#include "HAL/PlatformFilemanager.h" +#include "NeuralNetworkCommandLineParsing.generated.h" + +UCLASS() +class AI_FIGHT_SIM_API UNeuralNetworkCommandLineParsing : public UGameInstance +{ + GENERATED_BODY() + +public: + // Override the Init function + virtual void Init() override; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Neural Network") + FString NeuralNetwork1ConfigPath; + + UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Neural Network") + FString NeuralNetwork2ConfigPath; + + // Function to write a string to a file + UFUNCTION(BlueprintCallable, Category = "File Operations") + bool WriteStringToFile(const FString& FilePath, const FString& Data); +}; + + diff --git a/ai_fighter/AI_Fight_Sim/Source/AI_Fight_SimEditor.Target.cs b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_SimEditor.Target.cs new file mode 100644 index 0000000..c2c0e4a --- /dev/null +++ b/ai_fighter/AI_Fight_Sim/Source/AI_Fight_SimEditor.Target.cs @@ -0,0 +1,15 @@ +// Fill out your copyright notice in the Description page of Project Settings. + +using UnrealBuildTool; +using System.Collections.Generic; + +public class AI_Fight_SimEditorTarget : TargetRules +{ + public AI_Fight_SimEditorTarget(TargetInfo Target) : base(Target) + { + Type = TargetType.Editor; + DefaultBuildSettings = BuildSettingsVersion.V2; + + ExtraModuleNames.AddRange( new string[] { "AI_Fight_Sim" } ); + } +}