From a423542b19d932934a7d9bb6be8850ad0ceb786f Mon Sep 17 00:00:00 2001
From: Felix Marnat <79101178+lautreloutre@users.noreply.github.com>
Date: Thu, 7 Sep 2023 10:53:04 +0200
Subject: [PATCH] Wwise new integration part 1
---
Pawn_Unreal/Config/DefaultGame.ini | 75 +-
.../Developers/maxim/BP_TriggerTest.uasset | 4 +-
.../GeneratedSoundBanks/ProjectInfo.json | 29 +
.../GeneratedSoundBanks/ProjectInfo.xml | 12 +
.../Windows/Event/10/Stop_BIP.bnk | Bin 0 -> 95 bytes
.../Windows/Event/10/Stop_BIP.json | 33 +
.../Windows/Event/10/Stop_BIP.txt | 3 +
.../Windows/Event/10/Stop_BIP.xml | 14 +
.../Windows/Event/30/Play_BIP.bnk | Bin 0 -> 374 bytes
.../Windows/Event/30/Play_BIP.json | 49 +
.../Windows/Event/30/Play_BIP.txt | 9 +
.../Windows/Event/30/Play_BIP.xml | 25 +
.../GeneratedSoundBanks/Windows/Init.bnk | Bin 0 -> 474 bytes
.../GeneratedSoundBanks/Windows/Init.json | 49 +
.../GeneratedSoundBanks/Windows/Init.txt | 7 +
.../GeneratedSoundBanks/Windows/Init.xml | 20 +
.../GeneratedSoundBanks/Windows/Pawn_SB.bnk | Bin 0 -> 48 bytes
.../GeneratedSoundBanks/Windows/Pawn_SB.json | 21 +
.../GeneratedSoundBanks/Windows/Pawn_SB.txt | 0
.../GeneratedSoundBanks/Windows/Pawn_SB.xml | 11 +
.../Windows/PlatformInfo.json | 37 +
.../Windows/PlatformInfo.xml | 32 +
.../Windows/PluginInfo.json | 26 +
.../Windows/PluginInfo.xml | 9 +
.../Windows/SoundbanksInfo.json | 137 +
.../Windows/SoundbanksInfo.xml | 65 +
.../GeneratedSoundBanks/Windows/TEST.bnk | Bin 0 -> 48 bytes
.../GeneratedSoundBanks/Windows/TEST.json | 21 +
.../GeneratedSoundBanks/Windows/TEST.txt | 0
.../GeneratedSoundBanks/Windows/TEST.xml | 11 +
.../Content/WwiseAudio/InitBank.uasset | 3 +
.../Content/WwiseAudio/Play_BIP.uasset | 3 +
.../Content/WwiseAudio/Stop_BIP.uasset | 3 +
.../Plugins/Wwise/Config/BaseWwise.ini | 11 +
.../Plugins/Wwise/Config/DefaultWwise.ini | 11 +
.../Wwise/Content/AkMacroLibrary.uasset | 3 +
.../Wwise/Content/AnimNotify_AkEvent.uasset | 3 +
.../DefaultForegroundTextMaterial.uasset | 3 +
.../Wwise/Content/S_AkComponent.uasset | 3 +
.../Wwise/Content/S_AkSpotReflector.uasset | 3 +
.../Icons/Titlebar_WwiseAppIcon.uasset | 3 +
.../WwiseTree/Icons/acoutex_nor.uasset | 3 +
.../WwiseTree/Icons/actor_mixer_nor.uasset | 3 +
.../Content/WwiseTree/Icons/auxbus_nor.uasset | 3 +
.../Content/WwiseTree/Icons/bus_nor.uasset | 3 +
.../container_random_sequence_nor.uasset | 3 +
.../Icons/container_switch_nor.uasset | 3 +
.../Icons/effect_shareset_nor.uasset | 3 +
.../Content/WwiseTree/Icons/event_nor.uasset | 3 +
.../Content/WwiseTree/Icons/folder_nor.uasset | 3 +
.../WwiseTree/Icons/gameparameter_nor.uasset | 3 +
.../Icons/layer_container_nor.uasset | 3 +
.../WwiseTree/Icons/motion_bus_nor.uasset | 3 +
.../Icons/physical_folder_nor.uasset | 3 +
.../WwiseTree/Icons/sound_fx_nor.uasset | 3 +
.../Content/WwiseTree/Icons/state_nor.uasset | 3 +
.../WwiseTree/Icons/stategroup_nor.uasset | 3 +
.../Content/WwiseTree/Icons/switch_nor.uasset | 3 +
.../WwiseTree/Icons/switchgroup_nor.uasset | 3 +
.../WwiseTree/Icons/trigger_nor.uasset | 3 +
.../WwiseTree/Icons/workunit_nor.uasset | 3 +
.../Content/WwiseTree/Icons/wproj.uasset | 3 +
.../WwiseTree/Icons/wwise_icon_16.uasset | 3 +
.../WwiseTree/Icons/wwise_icon_512.uasset | 3 +
.../WwiseTree/Icons/wwise_logo_32.uasset | 3 +
.../WwiseTypes/AK_Acoustic_Portal.uasset | 3 +
.../AK_Acoustic_Portal_Explorer.uasset | 3 +
.../WwiseTypes/AK_Reverb_Volume.uasset | 3 +
.../AK_Reverb_Volume_Explorer.uasset | 3 +
.../WwiseTypes/AK_Spatial_Audio_Volume.uasset | 3 +
.../AK_Spatial_Audio_Volume_Explorer.uasset | 3 +
.../WwiseTypes/AkAcousticTexture.uasset | 3 +
.../Content/WwiseTypes/AkAudioBank.uasset | 3 +
.../Content/WwiseTypes/AkAudioEvent.uasset | 3 +
.../Wwise/Content/WwiseTypes/AkAuxBus.uasset | 3 +
.../WwiseTypes/AkEffectShareSet.uasset | 3 +
.../WwiseTypes/AkExternalMediaAsset.uasset | 3 +
.../WwiseTypes/AkLocalizedMediaAsset.uasset | 3 +
.../Content/WwiseTypes/AkMediaAsset.uasset | 3 +
.../Wwise/Content/WwiseTypes/AkRtpc.uasset | 3 +
.../Content/WwiseTypes/AkStateValue.uasset | 3 +
.../Content/WwiseTypes/AkSwitchValue.uasset | 3 +
.../Wwise/Content/WwiseTypes/AkTrigger.uasset | 3 +
Pawn_Unreal/Plugins/Wwise/LauncherInfo.json | 52 +
.../Plugins/Wwise/Resources/Icon128.png | 3 +
.../Wwise/Source/AkAudio/AkAudio.Build.cs | 123 +
.../Source/AkAudio/Classes/AkAcousticPortal.h | 269 +
.../AkAudio/Classes/AkAcousticTexture.h | 57 +
.../Classes/AkAcousticTextureSetComponent.h | 91 +
.../Source/AkAudio/Classes/AkAmbientSound.h | 111 +
.../Source/AkAudio/Classes/AkAudioBank.h | 36 +
.../Source/AkAudio/Classes/AkAudioEvent.h | 397 ++
.../AkAudio/Classes/AkAudioInputComponent.h | 64 +
.../AkAudio/Classes/AkAudioInputManager.h | 166 +
.../Source/AkAudio/Classes/AkAudioStyle.h | 47 +
.../Source/AkAudio/Classes/AkAudioType.h | 128 +
.../Wwise/Source/AkAudio/Classes/AkAuxBus.h | 73 +
.../AkAudio/Classes/AkCallbackInfoPool.h | 42 +
.../Source/AkAudio/Classes/AkComponent.h | 488 ++
.../AkAudio/Classes/AkComponentHelpers.h | 94 +
.../Source/AkAudio/Classes/AkDeprecated.h | 143 +
.../AkAudio/Classes/AkDrawPortalComponent.h | 53 +
.../AkAudio/Classes/AkDrawRoomComponent.h | 53 +
.../Source/AkAudio/Classes/AkEffectShareSet.h | 63 +
.../AkAudio/Classes/AkEnvironmentIndex.h | 167 +
.../Source/AkAudio/Classes/AkGameObject.h | 163 +
.../AkAudio/Classes/AkGameplayStatics.h | 616 +++
.../Source/AkAudio/Classes/AkGameplayTypes.h | 1131 ++++
.../AkAudio/Classes/AkGeometryComponent.h | 216 +
.../Source/AkAudio/Classes/AkGeometryData.h | 95 +
.../Source/AkAudio/Classes/AkGroupValue.h | 63 +
.../Wwise/Source/AkAudio/Classes/AkInitBank.h | 72 +
.../AkAudio/Classes/AkJobWorkerScheduler.h | 35 +
.../AkAudio/Classes/AkLateReverbComponent.h | 216 +
.../AkAudio/Classes/AkReverbDescriptor.h | 75 +
.../Source/AkAudio/Classes/AkReverbVolume.h | 79 +
.../Source/AkAudio/Classes/AkRoomComponent.h | 169 +
.../Wwise/Source/AkAudio/Classes/AkRtpc.h | 54 +
.../Wwise/Source/AkAudio/Classes/AkSettings.h | 405 ++
.../AkAudio/Classes/AkSettingsPerUser.h | 94 +
.../AkAudio/Classes/AkSpatialAudioDrawUtils.h | 88 +
.../AkAudio/Classes/AkSpatialAudioHelper.h | 39 +
.../AkAudio/Classes/AkSpatialAudioVolume.h | 162 +
.../Source/AkAudio/Classes/AkSpotReflector.h | 110 +
.../Source/AkAudio/Classes/AkStateValue.h | 40 +
.../AkAudio/Classes/AkSubmixInputComponent.h | 67 +
.../Classes/AkSurfaceReflectorSetComponent.h | 190 +
.../Classes/AkSurfaceReflectorSetUtils.h | 115 +
.../Source/AkAudio/Classes/AkSwitchValue.h | 39 +
.../Wwise/Source/AkAudio/Classes/AkTrigger.h | 60 +
.../Classes/AkWaapiBlueprints/AkWaapiCalls.h | 117 +
.../AkWaapiBlueprints/AkWaapiFieldNames.h | 141 +
.../AkWaapiFieldNamesCustomization.h | 60 +
.../AkWaapiBlueprints/AkWaapiJsonManager.h | 107 +
.../Classes/AkWaapiBlueprints/AkWaapiUri.h | 141 +
.../AkWaapiUriCustomization.h | 59 +
.../AkWaapiSlate/Widgets/Input/AkSSlider.h | 160 +
.../AkBoolPropertyToControlCustomization.h | 59 +
.../AkWaapiUMG/Components/AkCheckBox.h | 208 +
.../Components/AkItemBoolProperties.h | 138 +
.../AkWaapiUMG/Components/AkItemProperties.h | 136 +
.../AkPropertyToControlCustomization.h | 60 +
.../Classes/AkWaapiUMG/Components/AkSlider.h | 253 +
.../AkWwiseObjectDetailsStructCustomization.h | 63 +
.../AkWaapiUMG/Components/AkWwiseTree.h | 99 +
.../Components/AkWwiseTreeSelector.h | 93 +
.../Components/SAkItemBoolProperties.h | 106 +
.../AkWaapiUMG/Components/SAkItemProperties.h | 108 +
.../Components/WwiseBoolPropertyDragDropOp.h | 93 +
.../Components/WwisePropertyDragDropOp.h | 100 +
.../Components/WwiseUmgDragDropOp.h | 114 +
.../Source/AkAudio/Classes/AkWaapiUtils.h | 118 +
.../AssetManagement/WwiseProjectInfo.h | 81 +
.../Classes/BlueprintNodes/PostEventAsync.h | 61 +
.../BlueprintNodes/PostEventAtLocationAsync.h | 52 +
.../Classes/GTE/Mathematics/ACosEstimate.h | 137 +
.../Classes/GTE/Mathematics/APConversion.h | 503 ++
.../Classes/GTE/Mathematics/APInterval.h | 434 ++
.../Classes/GTE/Mathematics/ASinEstimate.h | 32 +
.../Classes/GTE/Mathematics/ATanEstimate.h | 135 +
.../Mathematics/AdaptiveSkeletonClimbing2.h | 936 ++++
.../Mathematics/AdaptiveSkeletonClimbing3.h | 2872 ++++++++++
.../Classes/GTE/Mathematics/AlignedBox.h | 107 +
.../Classes/GTE/Mathematics/ApprCircle2.h | 157 +
.../Classes/GTE/Mathematics/ApprCone3.h | 339 ++
.../Classes/GTE/Mathematics/ApprCylinder3.h | 466 ++
.../Classes/GTE/Mathematics/ApprEllipse2.h | 128 +
.../GTE/Mathematics/ApprEllipseByArcs.h | 119 +
.../Classes/GTE/Mathematics/ApprEllipsoid3.h | 204 +
.../Classes/GTE/Mathematics/ApprGaussian2.h | 128 +
.../Classes/GTE/Mathematics/ApprGaussian3.h | 139 +
.../GTE/Mathematics/ApprGreatCircle3.h | 129 +
.../Classes/GTE/Mathematics/ApprHeightLine2.h | 108 +
.../GTE/Mathematics/ApprHeightPlane3.h | 116 +
.../GTE/Mathematics/ApprOrthogonalLine2.h | 117 +
.../GTE/Mathematics/ApprOrthogonalLine3.h | 129 +
.../GTE/Mathematics/ApprOrthogonalPlane3.h | 129 +
.../Classes/GTE/Mathematics/ApprParaboloid3.h | 129 +
.../GTE/Mathematics/ApprParallelLines2.h | 333 ++
.../Classes/GTE/Mathematics/ApprPolynomial2.h | 178 +
.../Classes/GTE/Mathematics/ApprPolynomial3.h | 235 +
.../Classes/GTE/Mathematics/ApprPolynomial4.h | 280 +
.../GTE/Mathematics/ApprPolynomialSpecial2.h | 272 +
.../GTE/Mathematics/ApprPolynomialSpecial3.h | 319 ++
.../GTE/Mathematics/ApprPolynomialSpecial4.h | 358 ++
.../Classes/GTE/Mathematics/ApprQuadratic2.h | 203 +
.../Classes/GTE/Mathematics/ApprQuadratic3.h | 269 +
.../Classes/GTE/Mathematics/ApprQuery.h | 215 +
.../Classes/GTE/Mathematics/ApprSphere3.h | 170 +
.../Classes/GTE/Mathematics/ApprTorus3.h | 396 ++
.../GTE/Mathematics/ArbitraryPrecision.h | 15 +
.../AkAudio/Classes/GTE/Mathematics/Arc2.h | 129 +
.../AkAudio/Classes/GTE/Mathematics/Array2.h | 144 +
.../AkAudio/Classes/GTE/Mathematics/Array3.h | 165 +
.../AkAudio/Classes/GTE/Mathematics/Array4.h | 186 +
.../Classes/GTE/Mathematics/AtomicMinMax.h | 43 +
.../Classes/GTE/Mathematics/AxisAngle.h | 41 +
.../Classes/GTE/Mathematics/BSNumber.h | 1335 +++++
.../Classes/GTE/Mathematics/BSPPolygon2.h | 848 +++
.../Classes/GTE/Mathematics/BSPrecision.h | 239 +
.../Classes/GTE/Mathematics/BSRational.h | 1013 ++++
.../Classes/GTE/Mathematics/BSplineCurve.h | 155 +
.../Classes/GTE/Mathematics/BSplineCurveFit.h | 238 +
.../Classes/GTE/Mathematics/BSplineGeodesic.h | 70 +
.../GTE/Mathematics/BSplineReduction.h | 226 +
.../Classes/GTE/Mathematics/BSplineSurface.h | 173 +
.../GTE/Mathematics/BSplineSurfaceFit.h | 243 +
.../Classes/GTE/Mathematics/BSplineVolume.h | 204 +
.../Classes/GTE/Mathematics/BandedMatrix.h | 520 ++
.../Classes/GTE/Mathematics/BasisFunction.h | 474 ++
.../Classes/GTE/Mathematics/BezierCurve.h | 178 +
.../Classes/GTE/Mathematics/BitHacks.h | 209 +
.../Classes/GTE/Mathematics/BoxManager.h | 279 +
.../Classes/GTE/Mathematics/CLODPolyline.h | 336 ++
.../AkAudio/Classes/GTE/Mathematics/Capsule.h | 87 +
.../Classes/GTE/Mathematics/ChebyshevRatio.h | 155 +
.../GTE/Mathematics/CholeskyDecomposition.h | 551 ++
.../AkAudio/Classes/GTE/Mathematics/Circle3.h | 99 +
.../AkAudio/Classes/GTE/Mathematics/Cone.h | 333 ++
.../GTE/Mathematics/ConformalMapGenus0.h | 412 ++
.../GTE/Mathematics/ConstrainedDelaunay2.h | 686 +++
.../Classes/GTE/Mathematics/ContAlignedBox.h | 50 +
.../Classes/GTE/Mathematics/ContCapsule3.h | 269 +
.../Classes/GTE/Mathematics/ContCircle2.h | 88 +
.../Classes/GTE/Mathematics/ContCone.h | 22 +
.../Classes/GTE/Mathematics/ContCylinder3.h | 76 +
.../Classes/GTE/Mathematics/ContEllipse2.h | 149 +
.../GTE/Mathematics/ContEllipse2MinCR.h | 225 +
.../Classes/GTE/Mathematics/ContEllipsoid3.h | 164 +
.../GTE/Mathematics/ContEllipsoid3MinCR.h | 298 +
.../Classes/GTE/Mathematics/ContLozenge3.h | 214 +
.../GTE/Mathematics/ContOrientedBox2.h | 176 +
.../GTE/Mathematics/ContOrientedBox3.h | 198 +
.../GTE/Mathematics/ContPointInPolygon2.h | 202 +
.../GTE/Mathematics/ContPointInPolyhedron3.h | 575 ++
.../GTE/Mathematics/ContScribeCircle2.h | 61 +
.../Mathematics/ContScribeCircle3Sphere3.h | 169 +
.../Classes/GTE/Mathematics/ContSphere3.h | 88 +
.../GTE/Mathematics/ConvertCoordinates.h | 354 ++
.../Classes/GTE/Mathematics/ConvexHull2.h | 386 ++
.../Classes/GTE/Mathematics/ConvexHull3.h | 394 ++
.../GTE/Mathematics/ConvexPolyhedron3.h | 98 +
.../Classes/GTE/Mathematics/CosEstimate.h | 139 +
.../Classes/GTE/Mathematics/CubicRootsQR.h | 216 +
.../Classes/GTE/Mathematics/CurvatureFlow2.h | 56 +
.../Classes/GTE/Mathematics/CurvatureFlow3.h | 61 +
.../Classes/GTE/Mathematics/CurveExtractor.h | 282 +
.../GTE/Mathematics/CurveExtractorSquares.h | 470 ++
.../GTE/Mathematics/CurveExtractorTriangles.h | 227 +
.../Classes/GTE/Mathematics/Cylinder3.h | 100 +
.../Classes/GTE/Mathematics/DCPQuery.h | 33 +
.../Classes/GTE/Mathematics/DarbouxFrame.h | 148 +
.../Classes/GTE/Mathematics/Delaunay2.h | 793 +++
.../Classes/GTE/Mathematics/Delaunay2Mesh.h | 125 +
.../Classes/GTE/Mathematics/Delaunay3.h | 849 +++
.../Classes/GTE/Mathematics/Delaunay3Mesh.h | 126 +
.../GTE/Mathematics/DisjointIntervals.h | 401 ++
.../GTE/Mathematics/DisjointRectangles.h | 449 ++
.../Mathematics/DistAlignedBox3OrientedBox3.h | 150 +
.../Mathematics/DistAlignedBoxAlignedBox.h | 73 +
.../GTE/Mathematics/DistCircle3Circle3.h | 387 ++
.../GTE/Mathematics/DistLine3AlignedBox3.h | 514 ++
.../GTE/Mathematics/DistLine3Circle3.h | 431 ++
.../GTE/Mathematics/DistLine3OrientedBox3.h | 57 +
.../GTE/Mathematics/DistLine3Rectangle3.h | 127 +
.../GTE/Mathematics/DistLine3Triangle3.h | 116 +
.../Classes/GTE/Mathematics/DistLineLine.h | 70 +
.../Classes/GTE/Mathematics/DistLineRay.h | 84 +
.../Classes/GTE/Mathematics/DistLineSegment.h | 103 +
.../DistOrientedBox3OrientedBox3.h | 157 +
.../GTE/Mathematics/DistPoint3Circle3.h | 66 +
.../Mathematics/DistPoint3ConvexPolyhedron3.h | 182 +
.../GTE/Mathematics/DistPoint3Cylinder3.h | 109 +
.../GTE/Mathematics/DistPoint3Frustum3.h | 422 ++
.../GTE/Mathematics/DistPoint3Plane3.h | 35 +
.../GTE/Mathematics/DistPoint3Rectangle3.h | 74 +
.../GTE/Mathematics/DistPoint3Tetrahedron3.h | 73 +
.../GTE/Mathematics/DistPointAlignedBox.h | 77 +
.../GTE/Mathematics/DistPointHyperellipsoid.h | 352 ++
.../Classes/GTE/Mathematics/DistPointLine.h | 51 +
.../GTE/Mathematics/DistPointOrientedBox.h | 61 +
.../Classes/GTE/Mathematics/DistPointRay.h | 58 +
.../GTE/Mathematics/DistPointSegment.h | 83 +
.../GTE/Mathematics/DistPointTriangle.h | 487 ++
.../GTE/Mathematics/DistPointTriangleExact.h | 229 +
.../GTE/Mathematics/DistRay3AlignedBox3.h | 55 +
.../GTE/Mathematics/DistRay3OrientedBox3.h | 56 +
.../GTE/Mathematics/DistRay3Rectangle3.h | 60 +
.../GTE/Mathematics/DistRay3Triangle3.h | 62 +
.../Classes/GTE/Mathematics/DistRayRay.h | 153 +
.../Classes/GTE/Mathematics/DistRaySegment.h | 169 +
.../Mathematics/DistRectangle3AlignedBox3.h | 141 +
.../Mathematics/DistRectangle3OrientedBox3.h | 150 +
.../Mathematics/DistRectangle3Rectangle3.h | 93 +
.../GTE/Mathematics/DistSegment3AlignedBox3.h | 74 +
.../Mathematics/DistSegment3OrientedBox3.h | 76 +
.../GTE/Mathematics/DistSegment3Rectangle3.h | 77 +
.../GTE/Mathematics/DistSegment3Triangle3.h | 78 +
.../GTE/Mathematics/DistSegmentSegment.h | 408 ++
.../GTE/Mathematics/DistSegmentSegmentExact.h | 276 +
.../Mathematics/DistTriangle3AlignedBox3.h | 131 +
.../Mathematics/DistTriangle3OrientedBox3.h | 139 +
.../GTE/Mathematics/DistTriangle3Rectangle3.h | 86 +
.../GTE/Mathematics/DistTriangle3Triangle3.h | 87 +
.../Classes/GTE/Mathematics/ETManifoldMesh.h | 465 ++
.../GTE/Mathematics/ETNonmanifoldMesh.h | 381 ++
.../AkAudio/Classes/GTE/Mathematics/EdgeKey.h | 60 +
.../Classes/GTE/Mathematics/Ellipse3.h | 133 +
.../GTE/Mathematics/EllipsoidGeodesic.h | 137 +
.../Classes/GTE/Mathematics/EulerAngles.h | 69 +
.../Classes/GTE/Mathematics/Exp2Estimate.h | 128 +
.../Classes/GTE/Mathematics/ExpEstimate.h | 44 +
.../Classes/GTE/Mathematics/ExtremalQuery3.h | 66 +
.../GTE/Mathematics/ExtremalQuery3BSP.h | 419 ++
.../GTE/Mathematics/ExtremalQuery3PRJ.h | 60 +
.../AkAudio/Classes/GTE/Mathematics/FIQuery.h | 33 +
.../Classes/GTE/Mathematics/FPInterval.h | 462 ++
.../GTE/Mathematics/FastGaussianBlur1.h | 100 +
.../GTE/Mathematics/FastGaussianBlur2.h | 160 +
.../GTE/Mathematics/FastGaussianBlur3.h | 184 +
.../Classes/GTE/Mathematics/FastMarch.h | 193 +
.../Classes/GTE/Mathematics/FastMarch2.h | 351 ++
.../Classes/GTE/Mathematics/FastMarch3.h | 609 +++
.../Classes/GTE/Mathematics/FeatureKey.h | 65 +
.../Classes/GTE/Mathematics/FrenetFrame.h | 132 +
.../Classes/GTE/Mathematics/Frustum3.h | 220 +
.../AkAudio/Classes/GTE/Mathematics/GMatrix.h | 692 +++
.../AkAudio/Classes/GTE/Mathematics/GVector.h | 510 ++
.../GTE/Mathematics/GaussNewtonMinimizer.h | 220 +
.../Classes/GTE/Mathematics/GaussianBlur2.h | 51 +
.../Classes/GTE/Mathematics/GaussianBlur3.h | 51 +
.../GTE/Mathematics/GaussianElimination.h | 275 +
.../Classes/GTE/Mathematics/GenerateMeshUV.h | 661 +++
.../GTE/Mathematics/GradientAnisotropic2.h | 112 +
.../GTE/Mathematics/GradientAnisotropic3.h | 148 +
.../Classes/GTE/Mathematics/Halfspace.h | 90 +
.../Classes/GTE/Mathematics/Histogram.h | 338 ++
.../Classes/GTE/Mathematics/Hyperellipsoid.h | 321 ++
.../Classes/GTE/Mathematics/Hyperplane.h | 118 +
.../Classes/GTE/Mathematics/Hypersphere.h | 91 +
.../Classes/GTE/Mathematics/IEEEBinary.h | 374 ++
.../Classes/GTE/Mathematics/IEEEBinary16.h | 592 ++
.../AkAudio/Classes/GTE/Mathematics/Image.h | 192 +
.../AkAudio/Classes/GTE/Mathematics/Image2.h | 512 ++
.../AkAudio/Classes/GTE/Mathematics/Image3.h | 749 +++
.../Classes/GTE/Mathematics/ImageUtility2.h | 1486 +++++
.../Classes/GTE/Mathematics/ImageUtility3.h | 562 ++
.../Classes/GTE/Mathematics/IndexAttribute.h | 85 +
.../Classes/GTE/Mathematics/Integration.h | 217 +
.../Classes/GTE/Mathematics/IntpAkima1.h | 154 +
.../GTE/Mathematics/IntpAkimaNonuniform1.h | 112 +
.../GTE/Mathematics/IntpAkimaUniform1.h | 108 +
.../GTE/Mathematics/IntpAkimaUniform2.h | 563 ++
.../GTE/Mathematics/IntpAkimaUniform3.h | 1415 +++++
.../GTE/Mathematics/IntpBSplineUniform.h | 1440 +++++
.../Classes/GTE/Mathematics/IntpBicubic2.h | 395 ++
.../Classes/GTE/Mathematics/IntpBilinear2.h | 296 +
.../GTE/Mathematics/IntpLinearNonuniform2.h | 72 +
.../GTE/Mathematics/IntpLinearNonuniform3.h | 72 +
.../Mathematics/IntpQuadraticNonuniform2.h | 459 ++
.../Classes/GTE/Mathematics/IntpSphere2.h | 116 +
.../GTE/Mathematics/IntpThinPlateSpline2.h | 273 +
.../GTE/Mathematics/IntpThinPlateSpline3.h | 289 +
.../Classes/GTE/Mathematics/IntpTricubic3.h | 528 ++
.../Classes/GTE/Mathematics/IntpTrilinear3.h | 398 ++
.../GTE/Mathematics/IntpVectorField2.h | 75 +
.../Mathematics/IntrAlignedBox2AlignedBox2.h | 93 +
.../GTE/Mathematics/IntrAlignedBox2Circle2.h | 348 ++
.../Mathematics/IntrAlignedBox2OrientedBox2.h | 102 +
.../Mathematics/IntrAlignedBox3AlignedBox3.h | 93 +
.../GTE/Mathematics/IntrAlignedBox3Cone3.h | 997 ++++
.../Mathematics/IntrAlignedBox3Cylinder3.h | 138 +
.../Mathematics/IntrAlignedBox3OrientedBox3.h | 325 ++
.../GTE/Mathematics/IntrAlignedBox3Sphere3.h | 596 ++
.../Classes/GTE/Mathematics/IntrArc2Arc2.h | 217 +
.../GTE/Mathematics/IntrCapsule3Capsule3.h | 35 +
.../Classes/GTE/Mathematics/IntrCircle2Arc2.h | 73 +
.../GTE/Mathematics/IntrCircle2Circle2.h | 156 +
.../Mathematics/IntrConvexPolygonHyperplane.h | 401 ++
.../GTE/Mathematics/IntrDisk2Sector2.h | 184 +
.../GTE/Mathematics/IntrEllipse2Ellipse2.h | 1249 +++++
.../Mathematics/IntrEllipsoid3Ellipsoid3.h | 524 ++
.../GTE/Mathematics/IntrHalfspace2Polygon2.h | 159 +
.../GTE/Mathematics/IntrHalfspace3Capsule3.h | 43 +
.../GTE/Mathematics/IntrHalfspace3Cylinder3.h | 47 +
.../Mathematics/IntrHalfspace3Ellipsoid3.h | 47 +
.../Mathematics/IntrHalfspace3OrientedBox3.h | 48 +
.../GTE/Mathematics/IntrHalfspace3Segment3.h | 142 +
.../GTE/Mathematics/IntrHalfspace3Sphere3.h | 42 +
.../GTE/Mathematics/IntrHalfspace3Triangle3.h | 228 +
.../Classes/GTE/Mathematics/IntrIntervals.h | 562 ++
.../GTE/Mathematics/IntrLine2AlignedBox2.h | 168 +
.../Classes/GTE/Mathematics/IntrLine2Arc2.h | 80 +
.../GTE/Mathematics/IntrLine2Circle2.h | 99 +
.../Classes/GTE/Mathematics/IntrLine2Line2.h | 156 +
.../GTE/Mathematics/IntrLine2OrientedBox2.h | 93 +
.../Classes/GTE/Mathematics/IntrLine2Ray2.h | 121 +
.../GTE/Mathematics/IntrLine2Segment2.h | 130 +
.../GTE/Mathematics/IntrLine2Triangle2.h | 222 +
.../GTE/Mathematics/IntrLine3AlignedBox3.h | 191 +
.../GTE/Mathematics/IntrLine3Capsule3.h | 329 ++
.../Classes/GTE/Mathematics/IntrLine3Cone3.h | 480 ++
.../GTE/Mathematics/IntrLine3Cylinder3.h | 249 +
.../GTE/Mathematics/IntrLine3Ellipsoid3.h | 125 +
.../GTE/Mathematics/IntrLine3OrientedBox3.h | 99 +
.../Classes/GTE/Mathematics/IntrLine3Plane3.h | 123 +
.../GTE/Mathematics/IntrLine3Sphere3.h | 105 +
.../GTE/Mathematics/IntrLine3Triangle3.h | 172 +
.../GTE/Mathematics/IntrOrientedBox2Circle2.h | 96 +
.../GTE/Mathematics/IntrOrientedBox2Cone2.h | 105 +
.../IntrOrientedBox2OrientedBox2.h | 278 +
.../GTE/Mathematics/IntrOrientedBox2Sector2.h | 130 +
.../GTE/Mathematics/IntrOrientedBox3Cone3.h | 86 +
.../Mathematics/IntrOrientedBox3Cylinder3.h | 47 +
.../Mathematics/IntrOrientedBox3Frustum3.h | 364 ++
.../IntrOrientedBox3OrientedBox3.h | 325 ++
.../GTE/Mathematics/IntrOrientedBox3Sphere3.h | 94 +
.../GTE/Mathematics/IntrPlane3Capsule3.h | 48 +
.../GTE/Mathematics/IntrPlane3Circle3.h | 151 +
.../GTE/Mathematics/IntrPlane3Cylinder3.h | 149 +
.../GTE/Mathematics/IntrPlane3Ellipsoid3.h | 39 +
.../GTE/Mathematics/IntrPlane3OrientedBox3.h | 40 +
.../GTE/Mathematics/IntrPlane3Plane3.h | 141 +
.../GTE/Mathematics/IntrPlane3Sphere3.h | 89 +
.../GTE/Mathematics/IntrPlane3Triangle3.h | 273 +
.../GTE/Mathematics/IntrRay2AlignedBox2.h | 127 +
.../Classes/GTE/Mathematics/IntrRay2Arc2.h | 80 +
.../Classes/GTE/Mathematics/IntrRay2Circle2.h | 82 +
.../GTE/Mathematics/IntrRay2OrientedBox2.h | 93 +
.../Classes/GTE/Mathematics/IntrRay2Ray2.h | 221 +
.../GTE/Mathematics/IntrRay2Segment2.h | 191 +
.../GTE/Mathematics/IntrRay2Triangle2.h | 80 +
.../GTE/Mathematics/IntrRay3AlignedBox3.h | 125 +
.../GTE/Mathematics/IntrRay3Capsule3.h | 92 +
.../Classes/GTE/Mathematics/IntrRay3Cone3.h | 107 +
.../GTE/Mathematics/IntrRay3Cylinder3.h | 71 +
.../GTE/Mathematics/IntrRay3Ellipsoid3.h | 129 +
.../GTE/Mathematics/IntrRay3OrientedBox3.h | 98 +
.../Classes/GTE/Mathematics/IntrRay3Plane3.h | 98 +
.../Classes/GTE/Mathematics/IntrRay3Sphere3.h | 110 +
.../GTE/Mathematics/IntrRay3Triangle3.h | 180 +
.../GTE/Mathematics/IntrSegment2AlignedBox2.h | 153 +
.../GTE/Mathematics/IntrSegment2Arc2.h | 78 +
.../GTE/Mathematics/IntrSegment2Circle2.h | 87 +
.../Mathematics/IntrSegment2OrientedBox2.h | 112 +
.../GTE/Mathematics/IntrSegment2Segment2.h | 185 +
.../GTE/Mathematics/IntrSegment2Triangle2.h | 84 +
.../GTE/Mathematics/IntrSegment3AlignedBox3.h | 157 +
.../GTE/Mathematics/IntrSegment3Capsule3.h | 97 +
.../GTE/Mathematics/IntrSegment3Cone3.h | 128 +
.../GTE/Mathematics/IntrSegment3Cylinder3.h | 76 +
.../GTE/Mathematics/IntrSegment3Ellipsoid3.h | 169 +
.../Mathematics/IntrSegment3OrientedBox3.h | 115 +
.../GTE/Mathematics/IntrSegment3Plane3.h | 100 +
.../GTE/Mathematics/IntrSegment3Sphere3.h | 120 +
.../GTE/Mathematics/IntrSegment3Triangle3.h | 192 +
.../GTE/Mathematics/IntrSphere3Cone3.h | 345 ++
.../GTE/Mathematics/IntrSphere3Frustum3.h | 34 +
.../GTE/Mathematics/IntrSphere3Sphere3.h | 138 +
.../GTE/Mathematics/IntrSphere3Triangle3.h | 599 +++
.../GTE/Mathematics/IntrTriangle2Triangle2.h | 150 +
.../Mathematics/IntrTriangle3OrientedBox3.h | 207 +
.../Classes/GTE/Mathematics/InvSqrtEstimate.h | 160 +
.../Classes/GTE/Mathematics/IsPlanarGraph.h | 485 ++
.../Classes/GTE/Mathematics/LCPSolver.h | 628 +++
.../Mathematics/LevenbergMarquardtMinimizer.h | 277 +
.../Classes/GTE/Mathematics/LexicoArray2.h | 160 +
.../AkAudio/Classes/GTE/Mathematics/Line.h | 89 +
.../Classes/GTE/Mathematics/LinearSystem.h | 342 ++
.../Classes/GTE/Mathematics/Log2Estimate.h | 147 +
.../Classes/GTE/Mathematics/LogEstimate.h | 44 +
.../Classes/GTE/Mathematics/LogToFile.h | 61 +
.../Classes/GTE/Mathematics/LogToStdout.h | 30 +
.../GTE/Mathematics/LogToStringArray.h | 49 +
.../AkAudio/Classes/GTE/Mathematics/Logger.h | 193 +
.../Classes/GTE/Mathematics/Lozenge3.h | 82 +
.../Classes/GTE/Mathematics/MarchingCubes.h | 1254 +++++
.../GTE/Mathematics/MassSpringArbitrary.h | 121 +
.../Classes/GTE/Mathematics/MassSpringCurve.h | 112 +
.../GTE/Mathematics/MassSpringSurface.h | 226 +
.../GTE/Mathematics/MassSpringVolume.h | 282 +
.../AkAudio/Classes/GTE/Mathematics/Math.h | 654 +++
.../AkAudio/Classes/GTE/Mathematics/Matrix.h | 724 +++
.../Classes/GTE/Mathematics/Matrix2x2.h | 159 +
.../Classes/GTE/Mathematics/Matrix3x3.h | 142 +
.../Classes/GTE/Mathematics/Matrix4x4.h | 369 ++
.../AkAudio/Classes/GTE/Mathematics/Mesh.h | 682 +++
.../Classes/GTE/Mathematics/MeshCurvature.h | 285 +
.../AkAudio/Classes/GTE/Mathematics/MinHeap.h | 412 ++
.../GTE/Mathematics/MinimalCycleBasis.h | 681 +++
.../Classes/GTE/Mathematics/Minimize1.h | 339 ++
.../Classes/GTE/Mathematics/MinimizeN.h | 200 +
.../Classes/GTE/Mathematics/MinimumAreaBox2.h | 649 +++
.../GTE/Mathematics/MinimumAreaCircle2.h | 443 ++
.../GTE/Mathematics/MinimumVolumeBox3.h | 1195 ++++
.../GTE/Mathematics/MinimumVolumeSphere3.h | 694 +++
.../Classes/GTE/Mathematics/NURBSCircle.h | 143 +
.../Classes/GTE/Mathematics/NURBSCurve.h | 216 +
.../Classes/GTE/Mathematics/NURBSSphere.h | 459 ++
.../Classes/GTE/Mathematics/NURBSSurface.h | 244 +
.../Classes/GTE/Mathematics/NURBSVolume.h | 246 +
.../GTE/Mathematics/NaturalSplineCurve.h | 390 ++
.../GTE/Mathematics/NearestNeighborQuery.h | 336 ++
.../Classes/GTE/Mathematics/OBBTreeOfPoints.h | 330 ++
.../Classes/GTE/Mathematics/OdeEuler.h | 42 +
.../GTE/Mathematics/OdeImplicitEuler.h | 59 +
.../Classes/GTE/Mathematics/OdeMidpoint.h | 49 +
.../Classes/GTE/Mathematics/OdeRungeKutta4.h | 58 +
.../Classes/GTE/Mathematics/OdeSolver.h | 56 +
.../Classes/GTE/Mathematics/OrientedBox.h | 138 +
.../Classes/GTE/Mathematics/ParametricCurve.h | 312 ++
.../GTE/Mathematics/ParametricSurface.h | 114 +
.../Classes/GTE/Mathematics/ParticleSystem.h | 226 +
.../Classes/GTE/Mathematics/PdeFilter.h | 164 +
.../Classes/GTE/Mathematics/PdeFilter1.h | 290 +
.../Classes/GTE/Mathematics/PdeFilter2.h | 495 ++
.../Classes/GTE/Mathematics/PdeFilter3.h | 951 ++++
.../Classes/GTE/Mathematics/PlanarMesh.h | 448 ++
.../Classes/GTE/Mathematics/Polygon2.h | 270 +
.../Mathematics/PolyhedralMassProperties.h | 142 +
.../Classes/GTE/Mathematics/Polyhedron3.h | 172 +
.../Classes/GTE/Mathematics/Polynomial1.h | 598 ++
.../Classes/GTE/Mathematics/PolynomialCurve.h | 118 +
.../Classes/GTE/Mathematics/PrimalQuery2.h | 400 ++
.../Classes/GTE/Mathematics/PrimalQuery3.h | 293 +
.../Classes/GTE/Mathematics/Projection.h | 61 +
.../Classes/GTE/Mathematics/QFNumber.h | 408 ++
.../Classes/GTE/Mathematics/QuadricSurface.h | 700 +++
.../Classes/GTE/Mathematics/QuarticRootsQR.h | 283 +
.../Classes/GTE/Mathematics/Quaternion.h | 455 ++
.../Classes/GTE/Mathematics/RangeIteration.h | 66 +
.../AkAudio/Classes/GTE/Mathematics/Ray.h | 89 +
.../Classes/GTE/Mathematics/Rectangle.h | 144 +
.../GTE/Mathematics/RectangleManager.h | 263 +
.../Classes/GTE/Mathematics/RectangleMesh.h | 154 +
.../GTE/Mathematics/RectanglePatchMesh.h | 196 +
.../Classes/GTE/Mathematics/RevolutionMesh.h | 317 ++
.../GTE/Mathematics/RiemannianGeodesic.h | 451 ++
.../Classes/GTE/Mathematics/RigidBody.h | 348 ++
.../Classes/GTE/Mathematics/RootsBisection.h | 169 +
.../GTE/Mathematics/RootsBrentsMethod.h | 225 +
.../Classes/GTE/Mathematics/RootsPolynomial.h | 1068 ++++
.../Classes/GTE/Mathematics/Rotation.h | 829 +++
.../AkAudio/Classes/GTE/Mathematics/Sector2.h | 137 +
.../AkAudio/Classes/GTE/Mathematics/Segment.h | 112 +
.../Classes/GTE/Mathematics/SeparatePoints2.h | 205 +
.../Classes/GTE/Mathematics/SeparatePoints3.h | 227 +
.../GTE/Mathematics/SharedPtrCompare.h | 86 +
.../Classes/GTE/Mathematics/SinEstimate.h | 136 +
.../Mathematics/SingularValueDecomposition.h | 1101 ++++
.../Classes/GTE/Mathematics/SlerpEstimate.h | 151 +
.../GTE/Mathematics/SplitMeshByPlane.h | 397 ++
.../Classes/GTE/Mathematics/SqrtEstimate.h | 161 +
.../Classes/GTE/Mathematics/StringUtility.h | 138 +
.../GTE/Mathematics/SurfaceExtractor.h | 462 ++
.../GTE/Mathematics/SurfaceExtractorCubes.h | 1031 ++++
.../GTE/Mathematics/SurfaceExtractorMC.h | 332 ++
.../Mathematics/SurfaceExtractorTetrahedra.h | 995 ++++
.../GTE/Mathematics/SymmetricEigensolver.h | 802 +++
.../GTE/Mathematics/SymmetricEigensolver2x2.h | 83 +
.../GTE/Mathematics/SymmetricEigensolver3x3.h | 734 +++
.../Classes/GTE/Mathematics/TCBSplineCurve.h | 209 +
.../AkAudio/Classes/GTE/Mathematics/TIQuery.h | 33 +
.../Classes/GTE/Mathematics/TSManifoldMesh.h | 320 ++
.../Classes/GTE/Mathematics/TanEstimate.h | 160 +
.../Classes/GTE/Mathematics/Tetrahedron3.h | 148 +
.../Classes/GTE/Mathematics/TetrahedronKey.h | 160 +
.../Classes/GTE/Mathematics/ThreadSafeMap.h | 131 +
.../Classes/GTE/Mathematics/ThreadSafeQueue.h | 95 +
.../AkAudio/Classes/GTE/Mathematics/Torus3.h | 230 +
.../Classes/GTE/Mathematics/Transform.h | 824 +++
.../Classes/GTE/Mathematics/Triangle.h | 84 +
.../Classes/GTE/Mathematics/TriangleKey.h | 122 +
.../Classes/GTE/Mathematics/TriangulateCDT.h | 497 ++
.../Classes/GTE/Mathematics/TriangulateEC.h | 1239 +++++
.../Classes/GTE/Mathematics/TubeMesh.h | 231 +
.../Classes/GTE/Mathematics/UIntegerALU32.h | 547 ++
.../Classes/GTE/Mathematics/UIntegerAP32.h | 231 +
.../Classes/GTE/Mathematics/UIntegerFP32.h | 226 +
.../GTE/Mathematics/UniqueVerticesTriangles.h | 133 +
.../GTE/Mathematics/UnsymmetricEigenvalues.h | 374 ++
.../Classes/GTE/Mathematics/VEManifoldMesh.h | 271 +
.../Classes/GTE/Mathematics/VETManifoldMesh.h | 197 +
.../GTE/Mathematics/VETNonmanifoldMesh.h | 213 +
.../AkAudio/Classes/GTE/Mathematics/Vector.h | 578 ++
.../AkAudio/Classes/GTE/Mathematics/Vector2.h | 254 +
.../AkAudio/Classes/GTE/Mathematics/Vector3.h | 358 ++
.../AkAudio/Classes/GTE/Mathematics/Vector4.h | 167 +
.../Classes/GTE/Mathematics/VertexAttribute.h | 42 +
.../GTE/Mathematics/VertexCollapseMesh.h | 517 ++
.../Classes/GTE/Mathematics/WeakPtrCompare.h | 81 +
.../AkAudio/Classes/ISoundBankInfoCache.h | 30 +
.../InitializationSettings/AkAudioSession.h | 72 +
.../AkInitializationSettings.h | 341 ++
.../AkPlatformInitialisationSettingsBase.h | 40 +
.../Classes/MovieSceneAkAudioEventSection.h | 232 +
.../Classes/MovieSceneAkAudioEventTrack.h | 66 +
.../Classes/MovieSceneAkAudioRTPCSection.h | 92 +
.../Classes/MovieSceneAkAudioRTPCTrack.h | 59 +
.../AkAudio/Classes/MovieSceneAkTrack.h | 60 +
.../MovieSceneBackwardsCompatibility.h | 21 +
...ovieSceneFloatChannelSerializationHelper.h | 167 +
...kComponentObstructionAndOcclusionService.h | 43 +
.../AkObstructionAndOcclusionService.h | 131 +
.../AkPortalObstructionAndOcclusionService.h | 44 +
.../Classes/Platforms/AkPlatformBase.h | 28 +
.../Classes/Platforms/AkPlatformInfo.h | 122 +
.../AkAndroidInitializationSettings.h | 78 +
.../AkPlatform_Android/AkAndroidPlatform.h | 44 +
.../AkAndroidPlatformInfo.h | 39 +
.../AkHololensInitializationSettings.h | 66 +
.../AkPlatform_Hololens/AkHololensPlatform.h | 44 +
.../AkHololensPlatformInfo.h | 45 +
.../AkLinuxInitializationSettings.h | 54 +
.../AkPlatform_Linux/AkLinuxPlatform.h | 46 +
.../AkPlatform_Linux/AkLinuxPlatformInfo.h | 40 +
.../AkMacInitializationSettings.h | 54 +
.../Platforms/AkPlatform_Mac/AkMacPlatform.h | 44 +
.../AkPlatform_Mac/AkMacPlatformInfo.h | 39 +
.../AkWindowsInitializationSettings.h | 69 +
.../AkPlatform_Windows/AkWindowsPlatform.h | 44 +
.../AkWindowsPlatformInfo.h | 82 +
.../AkIOSInitializationSettings.h | 52 +
.../Platforms/AkPlatform_iOS/AkIOSPlatform.h | 44 +
.../AkPlatform_iOS/AkIOSPlatformInfo.h | 39 +
.../AkTVOSInitializationSettings.h | 52 +
.../AkPlatform_tvOS/AkTVOSPlatform.h | 44 +
.../AkPlatform_tvOS/AkTVOSPlatformInfo.h | 39 +
.../AkAudio/Classes/Platforms/AkUEPlatform.h | 62 +
.../Classes/WaapiPicker/SWaapiPicker.h | 369 ++
.../Classes/WaapiPicker/SWaapiPickerRow.h | 122 +
.../WaapiPicker/WaapiPickerViewCommands.h | 89 +
.../Classes/WaapiPicker/WwiseTreeItem.h | 306 ++
.../AkAudio/Classes/WwiseEventTracking.h | 106 +
.../WwiseInitBankLoader/WwiseInitBankLoader.h | 44 +
.../Source/AkAudio/Classes/WwiseItemType.h | 194 +
.../AkAudio/Private/AkAcousticPortal.cpp | 1026 ++++
.../AkAudio/Private/AkAcousticTexture.cpp | 129 +
.../Private/AkAcousticTextureSetComponent.cpp | 252 +
.../Source/AkAudio/Private/AkAmbientSound.cpp | 136 +
.../Source/AkAudio/Private/AkAudioDevice.cpp | 4791 +++++++++++++++++
.../Source/AkAudio/Private/AkAudioEvent.cpp | 856 +++
.../AkAudio/Private/AkAudioInputComponent.cpp | 75 +
.../AkAudio/Private/AkAudioInputManager.cpp | 395 ++
.../Source/AkAudio/Private/AkAudioModule.cpp | 321 ++
.../Source/AkAudio/Private/AkAudioStyle.cpp | 349 ++
.../Source/AkAudio/Private/AkAudioType.cpp | 328 ++
.../Wwise/Source/AkAudio/Private/AkAuxBus.cpp | 191 +
.../AkAudio/Private/AkCallbackInfoPool.cpp | 43 +
.../Source/AkAudio/Private/AkComponent.cpp | 1126 ++++
.../Private/AkComponentCallbackManager.cpp | 343 ++
.../Private/AkComponentCallbackManager.h | 145 +
.../AkAudio/Private/AkComponentHelpers.cpp | 212 +
.../AkAudio/Private/AkCustomVersion.cpp | 25 +
.../AkAudio/Private/AkDrawPortalComponent.cpp | 200 +
.../AkAudio/Private/AkDrawRoomComponent.cpp | 156 +
.../AkAudio/Private/AkEffectShareSet.cpp | 187 +
.../AkAudio/Private/AkEnvironmentIndex.cpp | 78 +
.../Source/AkAudio/Private/AkGameObject.cpp | 275 +
.../AkAudio/Private/AkGameplayStatics.cpp | 1078 ++++
.../AkAudio/Private/AkGameplayTypes.cpp | 414 ++
.../AkAudio/Private/AkGeometryComponent.cpp | 1199 +++++
.../Source/AkAudio/Private/AkGeometryData.cpp | 281 +
.../Source/AkAudio/Private/AkGroupValue.cpp | 126 +
.../Source/AkAudio/Private/AkInitBank.cpp | 162 +
.../AkAudio/Private/AkJobWorkerScheduler.cpp | 94 +
.../AkAudio/Private/AkLateReverbComponent.cpp | 903 ++++
.../AkAudio/Private/AkReverbDescriptor.cpp | 440 ++
.../Source/AkAudio/Private/AkReverbVolume.cpp | 80 +
.../AkAudio/Private/AkRoomComponent.cpp | 627 +++
.../Wwise/Source/AkAudio/Private/AkRtpc.cpp | 126 +
.../Source/AkAudio/Private/AkSettings.cpp | 1520 ++++++
.../AkAudio/Private/AkSettingsPerUser.cpp | 87 +
.../Private/AkSpatialAudioDrawUtils.cpp | 148 +
.../AkAudio/Private/AkSpatialAudioHelper.cpp | 63 +
.../AkAudio/Private/AkSpatialAudioVolume.cpp | 856 +++
.../AkAudio/Private/AkSpotReflector.cpp | 190 +
.../Source/AkAudio/Private/AkStateValue.cpp | 180 +
.../Private/AkSubmixInputComponent.cpp | 162 +
.../AkSurfaceReflectorSetComponent.cpp | 1370 +++++
.../Private/AkSurfaceReflectorSetUtils.cpp | 75 +
.../Source/AkAudio/Private/AkSwitchValue.cpp | 190 +
.../Source/AkAudio/Private/AkTrigger.cpp | 136 +
.../AkAudio/Private/AkUnrealEditorHelper.cpp | 208 +
.../AkWaapiBlueprints/AkWaapiCalls.cpp | 141 +
.../AkWaapiBlueprints/AkWaapiFieldNames.cpp | 254 +
.../AkWaapiFieldNamesCustomization.cpp | 126 +
.../AkWaapiBlueprints/AkWaapiJsonManager.cpp | 185 +
.../Private/AkWaapiBlueprints/AkWaapiUri.cpp | 208 +
.../AkWaapiUriCustomization.cpp | 123 +
.../AkWaapiBlueprints/AkWaapiUriList.inc | 278 +
.../Source/AkAudio/Private/AkWaapiClient.cpp | 1222 +++++
.../AkWaapiSlate/Widgets/Input/AkSSlider.cpp | 322 ++
.../AkBoolPropertyToControlCustomization.cpp | 126 +
.../AkWaapiUMG/Components/AkCheckBox.cpp | 496 ++
.../Components/AkItemBoolProperties.cpp | 166 +
.../Components/AkItemProperties.cpp | 172 +
.../AkPropertyToControlCustomization.cpp | 126 +
.../AkWaapiUMG/Components/AkSlider.cpp | 408 ++
...kWwiseObjectDetailsStructCustomization.cpp | 129 +
.../AkWaapiUMG/Components/AkWwiseTree.cpp | 164 +
.../Components/AkWwiseTreeSelector.cpp | 175 +
.../Components/SAkItemBoolProperties.cpp | 268 +
.../Components/SAkItemProperties.cpp | 263 +
.../Source/AkAudio/Private/AkWaapiUtils.cpp | 167 +
.../AssetManagement/WwiseProjectInfo.cpp | 230 +
.../Private/BlueprintNodes/PostEventAsync.cpp | 82 +
.../PostEventAtLocationAsync.cpp | 63 +
.../InitializationSettings/AkAudioSession.cpp | 29 +
.../AkInitializationSettings.cpp | 552 ++
.../Private/MovieSceneAkAudioEventSection.cpp | 694 +++
.../MovieSceneAkAudioEventTemplate.cpp | 325 ++
.../Private/MovieSceneAkAudioEventTemplate.h | 48 +
.../Private/MovieSceneAkAudioEventTrack.cpp | 88 +
.../Private/MovieSceneAkAudioRTPCSection.cpp | 143 +
.../Private/MovieSceneAkAudioRTPCTemplate.cpp | 99 +
.../Private/MovieSceneAkAudioRTPCTemplate.h | 60 +
.../Private/MovieSceneAkAudioRTPCTrack.cpp | 72 +
...omponentObstructionAndOcclusionService.cpp | 51 +
.../AkObstructionAndOcclusionService.cpp | 452 ++
...AkPortalObstructionAndOcclusionService.cpp | 43 +
.../Private/Platforms/AkPlatformBase.cpp | 42 +
.../AkAndroidInitializationSettings.cpp | 69 +
.../AkHololensInitializationSettings.cpp | 77 +
.../AkLinuxInitializationSettings.cpp | 46 +
.../AkPlatform_Linux/AkLinuxPlatform.cpp | 29 +
.../AkMacInitializationSettings.cpp | 43 +
.../AkWindowsInitializationSettings.cpp | 83 +
.../AkIOSInitializationSettings.cpp | 47 +
.../AkTVOSInitializationSettings.cpp | 47 +
.../Private/Platforms/AkUEPlatform.cpp | 117 +
.../Private/StringMatchAlgos/Array2D.h | 68 +
.../StringMatchAlgos/StringMatching.cpp | 40 +
.../Private/StringMatchAlgos/StringMatching.h | 85 +
.../Private/WaapiPicker/SWaapiPicker.cpp | 1998 +++++++
.../Private/WaapiPicker/SWaapiPickerRow.cpp | 276 +
.../Private/WaapiPicker/WwiseTreeItem.cpp | 382 ++
.../AkAudio/Private/Wwise/Stats/AkAudio.cpp | 23 +
.../AkAudio/Private/WwiseEventTracking.cpp | 400 ++
.../WwiseInitBankLoader.cpp | 155 +
.../Source/AkAudio/Public/AkAudioDevice.h | 2029 +++++++
.../Source/AkAudio/Public/AkAudioModule.h | 80 +
.../Source/AkAudio/Public/AkCustomVersion.h | 59 +
.../AkAudio/Public/AkUnrealEditorHelper.h | 42 +
.../Source/AkAudio/Public/AkWaapiClient.h | 429 ++
.../AkAudio/Public/Wwise/Stats/AkAudio.h | 36 +
.../Source/AkAudioMixer/AkAudioMixer.Build.cs | 45 +
.../AkAudioMixer/Private/AkAudioMixer.cpp | 46 +
.../AkAudioMixer/Private/AkMixerPlatform.cpp | 520 ++
.../Private/AudioMixerInputComponent.cpp | 93 +
.../Source/AkAudioMixer/Public/AkAudioMixer.h | 69 +
.../AkAudioMixer/Public/AkMixerPlatform.h | 82 +
.../Public/AudioMixerInputComponent.h | 47 +
.../AudiokineticTools.Build.cs | 105 +
.../AssetManagement/AkMigrationCommandlet.h | 40 +
.../GenerateSoundBanksCommandlet.h | 40 +
.../GeneratedSoundBanksDirectoryWatcher.h | 80 +
.../Factories/ActorFactoryAkAmbientSound.h | 46 +
.../Classes/Factories/AkJsonFactory.h | 64 +
.../Classes/GeneratedSoundBanksWarning.h | 37 +
.../AudiokineticTools/Classes/ReloadPopup.h | 33 +
.../WwiseBrowser/WwiseAssetDragDropOp.h | 62 +
.../Private/AkAudioBankGenerationHelpers.cpp | 147 +
.../Private/AkEventAssetBroker.h | 60 +
.../Private/AkUnrealAssetDataHelper.cpp | 226 +
.../AssetManagement/AkAssetDatabase.cpp | 262 +
.../Private/AssetManagement/AkAssetDatabase.h | 60 +
.../AkAssetMigrationHelper.cpp | 877 +++
.../AssetManagement/AkAssetMigrationHelper.h | 124 +
.../AkAssetMigrationManager.cpp | 517 ++
.../AssetManagement/AkAssetMigrationManager.h | 60 +
.../AkGenerateSoundBanksTask.cpp | 64 +
.../AkGenerateSoundBanksTask.h | 43 +
.../AssetManagement/AkMigrationCommandlet.cpp | 255 +
.../AssetManagement/AkMigrationWidgets.cpp | 993 ++++
.../AssetManagement/AkMigrationWidgets.h | 220 +
.../AkSoundBankGenerationManager.h | 94 +
.../AkSoundbankGenerationManager.cpp | 448 ++
.../GenerateSoundBanksCommandlet.cpp | 135 +
.../GeneratedSoundBanksDirectoryWatcher.cpp | 414 ++
.../AssetManagement/StaticPluginWriter.cpp | 218 +
.../AssetManagement/StaticPluginWriter.h | 53 +
.../Private/AudiokineticToolsModule.cpp | 957 ++++
.../Private/AudiokineticToolsPrivatePCH.h | 24 +
...kGeometryComponentDetailsCustomization.cpp | 296 +
.../AkGeometryComponentDetailsCustomization.h | 44 +
...ateReverbComponentDetailsCustomization.cpp | 113 +
...kLateReverbComponentDetailsCustomization.h | 41 +
.../AkPortalComponentDetailsCustomization.cpp | 68 +
.../AkPortalComponentDetailsCustomization.h | 36 +
.../AkRoomComponentDetailsCustomization.cpp | 109 +
.../AkRoomComponentDetailsCustomization.h | 41 +
.../AkSettingsDetailsCustomization.cpp | 332 ++
.../AkSettingsDetailsCustomization.h | 35 +
...urfaceReflectorSetDetailsCustomization.cpp | 356 ++
...kSurfaceReflectorSetDetailsCustomization.h | 60 +
.../Factories/ActorFactoryAkAmbientSound.cpp | 98 +
.../Private/Factories/AkAssetFactories.cpp | 288 +
.../Private/Factories/AkAssetTypeActions.cpp | 186 +
.../Private/Factories/AkAssetTypeActions.h | 107 +
.../Private/Factories/AkJsonFactory.cpp | 65 +
.../Private/GeneratedSoundBanksWarning.cpp | 108 +
.../AudiokineticTools/Private/ReloadPopup.cpp | 98 +
.../MovieSceneAkAudioEventTrackEditor.cpp | 1095 ++++
.../MovieSceneAkAudioEventTrackEditor.h | 75 +
.../MovieSceneAkAudioRTPCTrackEditor.cpp | 408 ++
.../MovieSceneAkAudioRTPCTrackEditor.h | 66 +
.../UI/SAcousticSurfacesController.cpp | 881 +++
.../Private/UI/SAcousticSurfacesController.h | 139 +
.../SAkGeometrySurfaceOverrideController.cpp | 333 ++
.../UI/SAkGeometrySurfaceOverrideController.h | 105 +
.../Private/UI/SGenerateSoundBanks.cpp | 278 +
.../Private/UI/SGenerateSoundBanks.h | 66 +
.../Visualizer/AkAcousticPortalVisualizer.cpp | 154 +
.../Visualizer/AkAcousticPortalVisualizer.h | 29 +
.../Visualizer/AkComponentVisualizer.cpp | 104 +
.../Visualizer/AkComponentVisualizer.h | 30 +
...SurfaceReflectorSetComponentVisualizer.cpp | 258 +
...AkSurfaceReflectorSetComponentVisualizer.h | 38 +
.../WaapiPlaybackTransport.cpp | 225 +
.../DataSource/IWwiseBrowserDataSource.h | 32 +
.../DataSource/UAssetDataSource.cpp | 219 +
.../DataSource/UAssetDataSource.h | 75 +
.../DataSource/WaapiDataSource.cpp | 1169 ++++
.../WwiseBrowser/DataSource/WaapiDataSource.h | 171 +
.../DataSource/WwiseBrowserDataSource.cpp | 746 +++
.../DataSource/WwiseBrowserDataSource.h | 196 +
.../DataSource/WwiseProjectDatabaseSource.cpp | 636 +++
.../DataSource/WwiseProjectDatabaseSource.h | 82 +
.../WwiseBrowser/IWwiseBrowserColumn.h | 36 +
.../Private/WwiseBrowser/SWwiseBrowser.cpp | 1516 ++++++
.../Private/WwiseBrowser/SWwiseBrowser.h | 265 +
.../WwiseBrowser/SWwiseBrowserTreeView.cpp | 204 +
.../WwiseBrowser/SWwiseBrowserTreeView.h | 67 +
.../WwiseBrowser/SoundBankStatusColumn.cpp | 84 +
.../WwiseBrowser/SoundBankStatusColumn.h | 34 +
.../WwiseBrowser/WwiseAssetDragDropOp.cpp | 219 +
.../WwiseBrowser/WwiseBrowserForwards.h | 27 +
.../WwiseBrowser/WwiseBrowserHelpers.cpp | 452 ++
.../WwiseBrowser/WwiseBrowserHelpers.h | 107 +
.../WwiseBrowser/WwiseBrowserTreeColumn.cpp | 75 +
.../WwiseBrowser/WwiseBrowserTreeColumn.h | 43 +
.../WwiseBrowser/WwiseBrowserViewCommands.cpp | 18 +
.../WwiseBrowser/WwiseBrowserViewCommands.h | 82 +
.../Private/WwiseBrowser/WwiseObjectsColumn.h | 33 +
.../WwiseBrowser/WwiseStatusColumn.cpp | 91 +
.../Private/WwiseBrowser/WwiseStatusColumn.h | 43 +
.../WwiseBrowser/WwiseUEAssetStatusColumn.cpp | 81 +
.../WwiseBrowser/WwiseUEAssetStatusColumn.h | 35 +
.../AcousticTextureParamLookup.cpp | 98 +
.../WwiseProject/AcousticTextureParamLookup.h | 25 +
.../WwiseProject/WwiseSoundBankInfoCache.cpp | 232 +
.../WwiseProject/WwiseSoundBankInfoCache.h | 123 +
.../Public/AkAssetFactories.h | 126 +
.../Public/AkAudioBankGenerationHelpers.h | 50 +
.../Public/AkUnrealAssetDataHelper.h | 60 +
.../Public/AudiokineticToolsModule.h | 205 +
.../Public/IAudiokineticTools.h | 35 +
.../Public/WaapiPlaybackTransport.h | 51 +
.../Wwise/Private/Wwise/Stats/Wwise.cpp | 20 +
.../Wwise/Private/Wwise/WwiseModule.cpp | 97 +
.../Source/Wwise/Public/Wwise/Stats/Wwise.h | 25 +
.../Plugins/Wwise/Source/Wwise/Wwise.Build.cs | 70 +
.../Wwise/Source/Wwise/WwiseHelper.Build.cs | 42 +
.../WwiseAudioLinkSettingsFactory.cpp | 76 +
.../AudioLink/WwiseAudioLinkSettingsFactory.h | 46 +
.../Wwise/WwiseAudioLinkEditorModule.h | 52 +
...iseAudioLinkEditor_OptionalModule.Build.cs | 31 +
.../Private/Wwise/AudioLink/WwiseAudioLink.h | 42 +
.../AudioLink/WwiseAudioLinkComponent.cpp | 146 +
.../Wwise/AudioLink/WwiseAudioLinkFactory.cpp | 276 +
.../Wwise/AudioLink/WwiseAudioLinkFactory.h | 43 +
.../AudioLink/WwiseAudioLinkInputClient.cpp | 488 ++
.../AudioLink/WwiseAudioLinkInputClient.h | 72 +
.../AudioLink/WwiseAudioLinkSettings.cpp | 188 +
.../AudioLink/WwiseAudioLinkSourcePushed.cpp | 113 +
.../AudioLink/WwiseAudioLinkSourcePushed.h | 38 +
.../AudioLink/WwiseAudioLinkSynchronizer.cpp | 168 +
.../AudioLink/WwiseAudioLinkSynchronizer.h | 70 +
.../Private/Wwise/Stats/AudioLink.cpp | 21 +
.../Wwise/WwiseAudioLinkRuntimeModule.h | 34 +
.../Wwise/AudioLink/WwiseAudioLinkComponent.h | 63 +
.../Wwise/AudioLink/WwiseAudioLinkSettings.h | 121 +
.../Public/Wwise/Stats/AudioLink.h | 24 +
...seAudioLinkRuntime_OptionalModule.Build.cs | 36 +
.../Private/Wwise/Stats/Concurrency.cpp | 33 +
.../Wwise/WwiseConcurrencyModuleImpl.cpp | 163 +
.../Private/Wwise/WwiseDeferredQueue.cpp | 240 +
.../Private/Wwise/WwiseExecutionQueue.cpp | 414 ++
.../Private/Wwise/WwiseGlobalCallbacks.cpp | 606 +++
.../Public/Wwise/Stats/Concurrency.h | 43 +
.../Public/Wwise/WwiseConcurrencyModule.h | 91 +
.../Public/Wwise/WwiseConcurrencyModuleImpl.h | 45 +
.../Public/Wwise/WwiseDeferredQueue.h | 119 +
.../Public/Wwise/WwiseExecutionQueue.h | 164 +
.../Public/Wwise/WwiseFuture.h | 1383 +++++
.../Public/Wwise/WwiseGlobalCallbacks.h | 268 +
.../Tests/ExecutionQueueTests.cpp | 319 ++
.../WwiseConcurrency.Build.cs | 36 +
.../WwiseExternalSourceCookedData.cpp | 50 +
.../CookedData/WwiseLanguageCookedData.cpp | 55 +
.../Wwise/CookedData/WwiseMediaCookedData.cpp | 57 +
.../CookedData/WwiseSoundBankCookedData.cpp | 58 +
.../Private/Wwise/Stats/FileHandler.cpp | 60 +
.../Wwise/WwiseExternalSourceFileState.cpp | 306 ++
.../Wwise/WwiseExternalSourceManagerImpl.cpp | 394 ++
.../Wwise/WwiseExternalSourceStatics.cpp | 43 +
.../Private/Wwise/WwiseFileCache.cpp | 330 ++
.../Private/Wwise/WwiseFileHandlerBase.cpp | 239 +
.../Wwise/WwiseFileHandlerModuleImpl.cpp | 171 +
.../Private/Wwise/WwiseFileState.cpp | 796 +++
.../Private/Wwise/WwiseFileStateTools.cpp | 217 +
.../Private/Wwise/WwiseIOHook.cpp | 80 +
.../Private/Wwise/WwiseIOHookImpl.cpp | 471 ++
.../Private/Wwise/WwiseMediaFileState.cpp | 331 ++
.../Private/Wwise/WwiseMediaManagerImpl.cpp | 62 +
.../Private/Wwise/WwiseSoundBankFileState.cpp | 316 ++
.../Wwise/WwiseSoundBankManagerImpl.cpp | 54 +
.../Private/Wwise/WwiseWriteFileState.cpp | 97 +
.../WwiseExternalSourceCookedData.h | 53 +
.../CookedData/WwiseLanguageCookedData.h | 76 +
.../Wwise/CookedData/WwiseMediaCookedData.h | 83 +
.../CookedData/WwiseSoundBankCookedData.h | 102 +
.../Public/Wwise/Stats/FileHandler.h | 73 +
.../Wwise/WwiseExternalSourceFileState.h | 97 +
.../Public/Wwise/WwiseExternalSourceManager.h | 70 +
.../Wwise/WwiseExternalSourceManagerImpl.h | 91 +
.../Public/Wwise/WwiseExternalSourceStatics.h | 40 +
.../Public/Wwise/WwiseFileCache.h | 92 +
.../Public/Wwise/WwiseFileHandlerBase.h | 50 +
.../Public/Wwise/WwiseFileHandlerModule.h | 101 +
.../Public/Wwise/WwiseFileHandlerModuleImpl.h | 50 +
.../Public/Wwise/WwiseFileState.h | 147 +
.../Public/Wwise/WwiseFileStateTools.h | 46 +
.../Public/Wwise/WwiseIOHook.h | 58 +
.../Public/Wwise/WwiseIOHookImpl.h | 122 +
.../Public/Wwise/WwiseMediaFileState.h | 71 +
.../Public/Wwise/WwiseMediaManager.h | 44 +
.../Public/Wwise/WwiseMediaManagerImpl.h | 42 +
.../Public/Wwise/WwiseSoundBankFileState.h | 112 +
.../Public/Wwise/WwiseSoundBankManager.h | 43 +
.../Public/Wwise/WwiseSoundBankManagerImpl.h | 42 +
.../Public/Wwise/WwiseStreamableFileHandler.h | 29 +
.../Wwise/WwiseStreamableFileStateInfo.h | 63 +
.../Public/Wwise/WwiseStreamingManagerHooks.h | 33 +
.../Public/Wwise/WwiseWriteFileState.h | 45 +
.../WwiseFileHandler.Build.cs | 37 +
.../Metadata/WwiseMetadataAcousticTexture.cpp | 37 +
.../Metadata/WwiseMetadataActionEntries.cpp | 43 +
.../Metadata/WwiseMetadataBasicReference.cpp | 34 +
.../Wwise/Metadata/WwiseMetadataBus.cpp | 34 +
.../Wwise/Metadata/WwiseMetadataDialogue.cpp | 38 +
.../Wwise/Metadata/WwiseMetadataEvent.cpp | 85 +
.../Metadata/WwiseMetadataExternalSource.cpp | 34 +
.../Metadata/WwiseMetadataGameParameter.cpp | 31 +
.../WwiseMetadataGroupValueReference.cpp | 32 +
.../Wwise/Metadata/WwiseMetadataLanguage.cpp | 35 +
.../Wwise/Metadata/WwiseMetadataLoadable.cpp | 60 +
.../Wwise/Metadata/WwiseMetadataLoader.cpp | 173 +
.../Wwise/Metadata/WwiseMetadataLoader.h | 226 +
.../Wwise/Metadata/WwiseMetadataMedia.cpp | 81 +
.../Wwise/Metadata/WwiseMetadataPlatform.cpp | 54 +
.../Metadata/WwiseMetadataPlatformInfo.cpp | 29 +
.../Wwise/Metadata/WwiseMetadataPlugin.cpp | 42 +
.../Metadata/WwiseMetadataPluginGroup.cpp | 35 +
.../Metadata/WwiseMetadataPluginInfo.cpp | 34 +
.../Wwise/Metadata/WwiseMetadataPluginLib.cpp | 61 +
.../Wwise/Metadata/WwiseMetadataProject.cpp | 33 +
.../Metadata/WwiseMetadataProjectInfo.cpp | 32 +
.../Wwise/Metadata/WwiseMetadataRootFile.cpp | 194 +
.../Wwise/Metadata/WwiseMetadataRootPaths.cpp | 36 +
.../Wwise/Metadata/WwiseMetadataSettings.cpp | 65 +
.../Wwise/Metadata/WwiseMetadataSoundBank.cpp | 123 +
.../Metadata/WwiseMetadataSoundBanksInfo.cpp | 48 +
.../Wwise/Metadata/WwiseMetadataState.cpp | 25 +
.../Metadata/WwiseMetadataStateGroup.cpp | 26 +
.../Wwise/Metadata/WwiseMetadataSwitch.cpp | 25 +
.../Metadata/WwiseMetadataSwitchContainer.cpp | 92 +
.../Metadata/WwiseMetadataSwitchGroup.cpp | 27 +
.../Metadata/WwiseMetadataSwitchValue.cpp | 58 +
.../Wwise/Metadata/WwiseMetadataTrigger.cpp | 25 +
.../Private/Wwise/Ref/WwiseAnyRef.cpp | 901 ++++
.../Wwise/Ref/WwiseRefAcousticTexture.cpp | 91 +
.../Private/Wwise/Ref/WwiseRefAudioDevice.cpp | 119 +
.../Private/Wwise/Ref/WwiseRefAuxBus.cpp | 191 +
.../Private/Wwise/Ref/WwiseRefBus.cpp | 91 +
.../Wwise/Ref/WwiseRefCustomPlugin.cpp | 119 +
.../Wwise/Ref/WwiseRefDialogueArgument.cpp | 89 +
.../Wwise/Ref/WwiseRefDialogueEvent.cpp | 122 +
.../Private/Wwise/Ref/WwiseRefEvent.cpp | 583 ++
.../Wwise/Ref/WwiseRefExternalSource.cpp | 90 +
.../Wwise/Ref/WwiseRefGameParameter.cpp | 90 +
.../Private/Wwise/Ref/WwiseRefLanguage.cpp | 81 +
.../Private/Wwise/Ref/WwiseRefMedia.cpp | 81 +
.../Private/Wwise/Ref/WwiseRefPlatform.cpp | 132 +
.../Wwise/Ref/WwiseRefPlatformInfo.cpp | 35 +
.../Private/Wwise/Ref/WwiseRefPluginInfo.cpp | 34 +
.../Private/Wwise/Ref/WwiseRefPluginLib.cpp | 70 +
.../Wwise/Ref/WwiseRefPluginShareSet.cpp | 187 +
.../Private/Wwise/Ref/WwiseRefProjectInfo.cpp | 35 +
.../Private/Wwise/Ref/WwiseRefRootFile.cpp | 40 +
.../Private/Wwise/Ref/WwiseRefSoundBank.cpp | 516 ++
.../Wwise/Ref/WwiseRefSoundBanksInfo.cpp | 35 +
.../Private/Wwise/Ref/WwiseRefState.cpp | 91 +
.../Private/Wwise/Ref/WwiseRefStateGroup.cpp | 92 +
.../Private/Wwise/Ref/WwiseRefSwitch.cpp | 91 +
.../Wwise/Ref/WwiseRefSwitchContainer.cpp | 269 +
.../Private/Wwise/Ref/WwiseRefSwitchGroup.cpp | 102 +
.../Private/Wwise/Ref/WwiseRefTrigger.cpp | 92 +
.../Private/Wwise/Stats/ProjectDatabase.cpp | 22 +
.../Private/Wwise/WwiseDataStructure.cpp | 829 +++
.../Wwise/WwiseDatabaseIdentifiers.cpp | 60 +
.../Private/Wwise/WwiseDirectoryVisitor.cpp | 480 ++
.../Private/Wwise/WwiseDirectoryVisitor.h | 65 +
.../Private/Wwise/WwiseGeneratedFiles.cpp | 44 +
.../Private/Wwise/WwiseProjectDatabase.cpp | 501 ++
.../Wwise/WwiseProjectDatabaseImpl.cpp | 157 +
.../Wwise/WwiseProjectDatabaseModuleImpl.cpp | 62 +
.../Metadata/WwiseMetadataAcousticTexture.h | 35 +
.../Metadata/WwiseMetadataActionEntries.h | 40 +
.../Metadata/WwiseMetadataBasicReference.h | 56 +
.../Public/Wwise/Metadata/WwiseMetadataBus.h | 33 +
.../Wwise/Metadata/WwiseMetadataCollections.h | 29 +
.../Wwise/Metadata/WwiseMetadataDialogue.h | 37 +
.../Wwise/Metadata/WwiseMetadataEvent.h | 60 +
.../Metadata/WwiseMetadataExternalSource.h | 49 +
.../WwiseMetadataForwardDeclarations.h | 74 +
.../Metadata/WwiseMetadataGameParameter.h | 32 +
.../WwiseMetadataGroupValueReference.h | 42 +
.../Wwise/Metadata/WwiseMetadataLanguage.h | 36 +
.../Wwise/Metadata/WwiseMetadataLoadable.h | 49 +
.../Wwise/Metadata/WwiseMetadataMedia.h | 74 +
.../Wwise/Metadata/WwiseMetadataPlatform.h | 47 +
.../Metadata/WwiseMetadataPlatformInfo.h | 33 +
.../Wwise/Metadata/WwiseMetadataPlugin.h | 57 +
.../Wwise/Metadata/WwiseMetadataPluginGroup.h | 39 +
.../Wwise/Metadata/WwiseMetadataPluginInfo.h | 37 +
.../Wwise/Metadata/WwiseMetadataPluginLib.h | 48 +
.../Wwise/Metadata/WwiseMetadataProject.h | 31 +
.../Wwise/Metadata/WwiseMetadataProjectInfo.h | 33 +
.../Wwise/Metadata/WwiseMetadataRootFile.h | 37 +
.../Wwise/Metadata/WwiseMetadataRootPaths.h | 32 +
.../Wwise/Metadata/WwiseMetadataSettings.h | 44 +
.../Wwise/Metadata/WwiseMetadataSoundBank.h | 101 +
.../Metadata/WwiseMetadataSoundBanksInfo.h | 43 +
.../Wwise/Metadata/WwiseMetadataState.h | 25 +
.../Wwise/Metadata/WwiseMetadataStateGroup.h | 27 +
.../Wwise/Metadata/WwiseMetadataSwitch.h | 25 +
.../Metadata/WwiseMetadataSwitchContainer.h | 37 +
.../Wwise/Metadata/WwiseMetadataSwitchGroup.h | 28 +
.../Wwise/Metadata/WwiseMetadataSwitchValue.h | 48 +
.../Wwise/Metadata/WwiseMetadataTrigger.h | 25 +
.../Public/Wwise/Ref/WwiseAnyRef.h | 167 +
.../Wwise/Ref/WwiseRefAcousticTexture.h | 66 +
.../Public/Wwise/Ref/WwiseRefAudioDevice.h | 59 +
.../Public/Wwise/Ref/WwiseRefAuxBus.h | 62 +
.../Public/Wwise/Ref/WwiseRefBus.h | 58 +
.../Public/Wwise/Ref/WwiseRefCollections.h | 73 +
.../Public/Wwise/Ref/WwiseRefCustomPlugin.h | 59 +
.../Wwise/Ref/WwiseRefDialogueArgument.h | 59 +
.../Public/Wwise/Ref/WwiseRefDialogueEvent.h | 59 +
.../Public/Wwise/Ref/WwiseRefEvent.h | 77 +
.../Public/Wwise/Ref/WwiseRefExternalSource.h | 58 +
.../Wwise/Ref/WwiseRefForwardDeclarations.h | 47 +
.../Public/Wwise/Ref/WwiseRefGameParameter.h | 58 +
.../Public/Wwise/Ref/WwiseRefLanguage.h | 52 +
.../Public/Wwise/Ref/WwiseRefMedia.h | 57 +
.../Public/Wwise/Ref/WwiseRefPlatform.h | 67 +
.../Public/Wwise/Ref/WwiseRefPlatformInfo.h | 34 +
.../Public/Wwise/Ref/WwiseRefPluginInfo.h | 34 +
.../Public/Wwise/Ref/WwiseRefPluginLib.h | 57 +
.../Public/Wwise/Ref/WwiseRefPluginShareSet.h | 62 +
.../Public/Wwise/Ref/WwiseRefProjectInfo.h | 34 +
.../Public/Wwise/Ref/WwiseRefRootFile.h | 54 +
.../Public/Wwise/Ref/WwiseRefSoundBank.h | 78 +
.../Public/Wwise/Ref/WwiseRefSoundBanksInfo.h | 35 +
.../Public/Wwise/Ref/WwiseRefState.h | 59 +
.../Public/Wwise/Ref/WwiseRefStateGroup.h | 58 +
.../Public/Wwise/Ref/WwiseRefSwitch.h | 59 +
.../Wwise/Ref/WwiseRefSwitchContainer.h | 55 +
.../Public/Wwise/Ref/WwiseRefSwitchGroup.h | 59 +
.../Public/Wwise/Ref/WwiseRefTrigger.h | 58 +
.../Public/Wwise/Ref/WwiseRefType.h | 60 +
.../Public/Wwise/Stats/ProjectDatabase.h | 35 +
.../Public/Wwise/WwiseDataStructure.h | 719 +++
.../Public/Wwise/WwiseDatabaseIdentifiers.h | 207 +
.../Public/Wwise/WwiseGeneratedFiles.h | 64 +
.../Public/Wwise/WwiseProjectDatabase.h | 207 +
.../Wwise/WwiseProjectDatabaseDelegates.h | 38 +
.../Public/Wwise/WwiseProjectDatabaseImpl.h | 47 +
.../Public/Wwise/WwiseProjectDatabaseModule.h | 99 +
.../Wwise/WwiseProjectDatabaseModuleImpl.h | 34 +
.../WwiseProjectDatabase.Build.cs | 52 +
.../Private/Wwise/Stats/Reconcile.cpp | 20 +
.../Wwise/WwiseReconcileCommandlet.cpp | 544 ++
.../Private/Wwise/WwiseReconcileModule.cpp | 31 +
.../Public/Wwise/Stats/Reconcile.h | 22 +
.../Public/Wwise/WwiseReconcile.h | 42 +
.../Public/Wwise/WwiseReconcileCommandlet.h | 83 +
.../Public/Wwise/WwiseReconcileModule.h | 29 +
.../Source/WwiseReconcile/RunCommandlet.bat | 4 +
.../WwiseReconcile/WwiseReconcile.Build.cs | 41 +
.../Private/Wwise/Stats/ResourceCooker.cpp | 20 +
.../Private/Wwise/WwiseCookingCache.h | 59 +
.../Private/Wwise/WwiseResourceCooker.cpp | 563 ++
.../Private/Wwise/WwiseResourceCookerImpl.cpp | 2281 ++++++++
.../Wwise/WwiseResourceCookerModule.cpp | 55 +
.../Wwise/WwiseResourceCookerModuleImpl.cpp | 260 +
.../Public/Wwise/Stats/ResourceCooker.h | 23 +
.../Public/Wwise/WwiseResourceCooker.h | 159 +
.../Public/Wwise/WwiseResourceCookerImpl.h | 83 +
.../Public/Wwise/WwiseResourceCookerModule.h | 148 +
.../Wwise/WwiseResourceCookerModuleImpl.h | 47 +
.../WwiseResourceCooker.Build.cs | 60 +
.../WwiseAcousticTextureCookedData.cpp | 47 +
.../CookedData/WwiseAuxBusCookedData.cpp | 77 +
.../Wwise/CookedData/WwiseEventCookedData.cpp | 121 +
.../WwiseGameParameterCookedData.cpp | 46 +
.../CookedData/WwiseGroupValueCookedData.cpp | 66 +
.../CookedData/WwiseInitBankCookedData.cpp | 62 +
.../WwiseLocalizedAuxBusCookedData.cpp | 39 +
.../WwiseLocalizedEventCookedData.cpp | 39 +
.../WwiseLocalizedShareSetCookedData.cpp | 39 +
.../WwiseLocalizedSoundBankCookedData.cpp | 39 +
.../CookedData/WwiseShareSetCookedData.cpp | 50 +
.../WwiseSwitchContainerLeafCookedData.cpp | 84 +
.../CookedData/WwiseTriggerCookedData.cpp | 46 +
.../Wwise/Info/WwiseEventInfoLibrary.cpp | 18 +
.../Wwise/Info/WwiseEventInfoLibrary.h | 189 +
.../Wwise/Info/WwiseGroupValueInfoLibrary.cpp | 18 +
.../Wwise/Info/WwiseGroupValueInfoLibrary.h | 141 +
.../Private/Wwise/Info/WwiseObjectInfo.cpp | 20 +
.../Wwise/Info/WwiseObjectInfoLibrary.cpp | 18 +
.../Wwise/Info/WwiseObjectInfoLibrary.h | 141 +
.../Wwise/Loaded/WwiseLoadedAuxBus.cpp | 55 +
.../Private/Wwise/Loaded/WwiseLoadedEvent.cpp | 55 +
.../Loaded/WwiseLoadedExternalSource.cpp | 41 +
.../Wwise/Loaded/WwiseLoadedGroupValue.cpp | 41 +
.../Wwise/Loaded/WwiseLoadedInitBank.cpp | 41 +
.../Private/Wwise/Loaded/WwiseLoadedMedia.cpp | 41 +
.../Wwise/Loaded/WwiseLoadedShareSet.cpp | 55 +
.../Wwise/Loaded/WwiseLoadedSoundBank.cpp | 55 +
.../Private/Wwise/Stats/ResourceLoader.cpp | 32 +
.../Private/Wwise/WwiseLanguageId.cpp | 20 +
.../Private/Wwise/WwiseResourceLoader.cpp | 1162 ++++
.../Private/Wwise/WwiseResourceLoaderImpl.cpp | 2511 +++++++++
.../Wwise/WwiseResourceLoaderModuleImpl.cpp | 67 +
.../Private/Wwise/WwiseSharedLanguageId.cpp | 42 +
.../WwiseAcousticTextureCookedData.h | 41 +
.../Wwise/CookedData/WwiseAuxBusCookedData.h | 50 +
.../Wwise/CookedData/WwiseEventCookedData.h | 69 +
.../CookedData/WwiseGameParameterCookedData.h | 41 +
.../CookedData/WwiseGroupValueCookedData.h | 99 +
.../CookedData/WwiseInitBankCookedData.h | 42 +
.../WwiseLocalizedAuxBusCookedData.h | 45 +
.../WwiseLocalizedEventCookedData.h | 48 +
.../WwiseLocalizedShareSetCookedData.h | 48 +
.../WwiseLocalizedSoundBankCookedData.h | 45 +
.../CookedData/WwiseShareSetCookedData.h | 49 +
.../WwiseSwitchContainerLeafCookedData.h | 51 +
.../Wwise/CookedData/WwiseTriggerCookedData.h | 41 +
.../Public/Wwise/Info/WwiseEventInfo.h | 105 +
.../Public/Wwise/Info/WwiseGroupValueInfo.h | 82 +
.../Public/Wwise/Info/WwiseObjectInfo.h | 101 +
.../Public/Wwise/Loaded/WwiseLoadedAuxBus.h | 55 +
.../Public/Wwise/Loaded/WwiseLoadedEvent.h | 58 +
.../Wwise/Loaded/WwiseLoadedExternalSource.h | 53 +
.../Wwise/Loaded/WwiseLoadedGroupValue.h | 53 +
.../Public/Wwise/Loaded/WwiseLoadedInitBank.h | 54 +
.../Public/Wwise/Loaded/WwiseLoadedMedia.h | 53 +
.../Public/Wwise/Loaded/WwiseLoadedShareSet.h | 55 +
.../Wwise/Loaded/WwiseLoadedSoundBank.h | 54 +
.../Public/Wwise/Stats/ResourceLoader.h | 48 +
.../Public/Wwise/WwiseLanguageId.h | 78 +
.../Public/Wwise/WwisePlatformId.h | 78 +
.../Public/Wwise/WwiseResourceLoader.h | 149 +
.../Public/Wwise/WwiseResourceLoaderFuture.h | 25 +
.../Public/Wwise/WwiseResourceLoaderImpl.h | 562 ++
.../Public/Wwise/WwiseResourceLoaderModule.h | 94 +
.../Wwise/WwiseResourceLoaderModuleImpl.h | 35 +
.../Public/Wwise/WwiseSharedGroupValueKey.h | 73 +
.../Public/Wwise/WwiseSharedLanguageId.h | 91 +
.../Public/Wwise/WwiseSharedPlatformId.h | 69 +
.../WwiseResourceLoader.Build.cs | 39 +
.../SimpleExtSrc/WwiseSimpleExtScrManager.cpp | 487 ++
.../Private/Wwise/Stats/SimpleExtSrc.cpp | 20 +
.../Private/Wwise/WwiseSimpleExtSrcModule.cpp | 65 +
.../WwiseExternalSourceCookieDefaultMedia.h | 51 +
.../WwiseExternalSourceMediaInfo.h | 53 +
.../WwiseExternalSourceSettings.h | 81 +
.../SimpleExtSrc/WwiseSimpleExtSrcManager.h | 77 +
.../Public/Wwise/Stats/SimpleExtSrc.h | 22 +
.../Public/Wwise/WwiseSimpleExtSrcModule.h | 30 +
.../WwiseSimpleExternalSource.Build.cs | 63 +
.../Private/AkUnrealHelper.cpp | 251 +
.../Private/Wwise/Stats/Global.cpp | 20 +
.../Private/Wwise/Stats/NamedEvents.cpp | 27 +
.../Private/Wwise/Stats/SoundEngine.cpp | 20 +
.../Private/Wwise/WwiseSoundEngineModule.cpp | 100 +
.../WwiseSoundEngine/Public/AkInclude.h | 31 +
.../WwiseSoundEngine/Public/AkUEFeatures.h | 51 +
.../WwiseSoundEngine/Public/AkUnrealHelper.h | 124 +
.../Public/Generated/AkSwitchPlugins.h | 24 +
.../Public/Generated/AkiOSPlugins.h | 24 +
.../Public/Generated/AktvOSPlugins.h | 21 +
.../Wwise/API/Platforms/Android/AndroidAPI.h | 58 +
.../Public/Wwise/API/Platforms/HoloLensAPI.h | 96 +
.../Public/Wwise/API/Platforms/IOS/IOSAPI.h | 59 +
.../Wwise/API/Platforms/Linux/LinuxAPI.h | 45 +
.../Public/Wwise/API/Platforms/Mac/MacAPI.h | 45 +
.../Public/Wwise/API/Platforms/TVOS/TVOSAPI.h | 57 +
.../Wwise/API/Platforms/Windows/WindowsAPI.h | 90 +
.../WwiseSoundEngine/Public/Wwise/API/WAAPI.h | 65 +
.../Public/Wwise/API/WwiseCommAPI.h | 107 +
.../Public/Wwise/API/WwiseMemoryMgrAPI.h | 238 +
.../Public/Wwise/API/WwiseMonitorAPI.h | 178 +
.../Public/Wwise/API/WwiseMusicEngineAPI.h | 97 +
.../Public/Wwise/API/WwisePlatformAPI.h | 25 +
.../Public/Wwise/API/WwiseSoundEngineAPI.h | 4543 ++++++++++++++++
.../Public/Wwise/API/WwiseSpatialAudioAPI.h | 449 ++
.../Public/Wwise/API/WwiseStreamMgrAPI.h | 201 +
.../Public/Wwise/PostSoundEngineInclude.h | 155 +
.../Public/Wwise/PreSoundEngineInclude.h | 111 +
.../Public/Wwise/Stats/AsyncStats.h | 126 +
.../Public/Wwise/Stats/Global.h | 23 +
.../Public/Wwise/Stats/NamedEvents.h | 54 +
.../Public/Wwise/Stats/SoundEngine.h | 34 +
.../Public/Wwise/WwiseFileLocationResolver.h | 31 +
.../Public/Wwise/WwiseLowLevelIOHook.h | 31 +
.../Public/Wwise/WwiseSoundEngineModule.h | 77 +
.../Wwise/WwiseSoundEngineVersionModule.h | 45 +
.../Public/Wwise/WwiseUnitTests.h | 51 +
.../WwiseSoundEngine/Public/WwiseDefines.h | 55 +
.../WwiseSoundEngine.Build.cs | 84 +
.../WwiseSoundEngineVersion.Build.cs | 138 +
.../WwiseSoundEngine/WwiseUEPlatform.Build.cs | 149 +
1236 files changed, 238264 insertions(+), 39 deletions(-)
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.bnk
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.txt
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/30/Play_BIP.bnk
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/30/Play_BIP.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/30/Play_BIP.txt
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/30/Play_BIP.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Init.bnk
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Init.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Init.txt
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Init.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.bnk
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.txt
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.bnk
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.json
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.txt
create mode 100644 Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.xml
create mode 100644 Pawn_Unreal/Content/WwiseAudio/InitBank.uasset
create mode 100644 Pawn_Unreal/Content/WwiseAudio/Play_BIP.uasset
create mode 100644 Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Config/BaseWwise.ini
create mode 100644 Pawn_Unreal/Plugins/Wwise/Config/DefaultWwise.ini
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/AkMacroLibrary.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/DefaultForegroundTextMaterial.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/S_AkComponent.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/S_AkSpotReflector.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/Titlebar_WwiseAppIcon.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/acoutex_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/actor_mixer_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/auxbus_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/bus_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_random_sequence_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_switch_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/effect_shareset_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/event_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/folder_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/gameparameter_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/layer_container_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/motion_bus_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/physical_folder_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/sound_fx_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/state_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/stategroup_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switch_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switchgroup_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/trigger_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/workunit_nor.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wproj.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_16.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_512.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_logo_32.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal_Explorer.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume_Explorer.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume_Explorer.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAcousticTexture.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioBank.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioEvent.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkEffectShareSet.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkExternalMediaAsset.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkLocalizedMediaAsset.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkMediaAsset.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkStateValue.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkSwitchValue.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkTrigger.uasset
create mode 100644 Pawn_Unreal/Plugins/Wwise/LauncherInfo.json
create mode 100644 Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/AkAudio.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTexture.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTextureSetComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAmbientSound.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioBank.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioEvent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioStyle.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioType.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAuxBus.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkCallbackInfoPool.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponentHelpers.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDeprecated.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawPortalComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawRoomComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEffectShareSet.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEnvironmentIndex.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameObject.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayStatics.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayTypes.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGroupValue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkInitBank.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkJobWorkerScheduler.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkLateReverbComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbDescriptor.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbVolume.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRoomComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRtpc.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettingsPerUser.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioDrawUtils.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioHelper.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioVolume.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpotReflector.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkStateValue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSubmixInputComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetUtils.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSwitchValue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkTrigger.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiCalls.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNames.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNamesCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiJsonManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUri.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUriCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiSlate/Widgets/Input/AkSSlider.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkBoolPropertyToControlCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkCheckBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemBoolProperties.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemProperties.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkPropertyToControlCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkSlider.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseObjectDetailsStructCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTree.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTreeSelector.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemBoolProperties.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemProperties.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwiseBoolPropertyDragDropOp.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwisePropertyDragDropOp.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwiseUmgDragDropOp.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUtils.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AssetManagement/WwiseProjectInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/BlueprintNodes/PostEventAsync.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/BlueprintNodes/PostEventAtLocationAsync.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ACosEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/APConversion.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/APInterval.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ASinEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ATanEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/AdaptiveSkeletonClimbing2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/AdaptiveSkeletonClimbing3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/AlignedBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprCircle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprCone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprCylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprEllipse2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprEllipseByArcs.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprEllipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprGaussian2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprGaussian3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprGreatCircle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprHeightLine2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprHeightPlane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprOrthogonalLine2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprOrthogonalLine3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprOrthogonalPlane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprParaboloid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprParallelLines2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprPolynomial2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprPolynomial3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprPolynomial4.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprPolynomialSpecial2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprPolynomialSpecial3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprPolynomialSpecial4.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprQuadratic2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprQuadratic3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprQuery.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprSphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ApprTorus3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ArbitraryPrecision.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Arc2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Array2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Array3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Array4.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/AtomicMinMax.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/AxisAngle.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSNumber.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSPPolygon2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSPrecision.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSRational.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineCurveFit.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineGeodesic.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineReduction.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineSurface.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineSurfaceFit.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BSplineVolume.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BandedMatrix.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BasisFunction.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BezierCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BitHacks.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/BoxManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CLODPolyline.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Capsule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ChebyshevRatio.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CholeskyDecomposition.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Circle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Cone.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ConformalMapGenus0.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ConstrainedDelaunay2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContAlignedBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContCapsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContCircle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContCone.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContCylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContEllipse2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContEllipse2MinCR.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContEllipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContEllipsoid3MinCR.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContLozenge3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContOrientedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContOrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContPointInPolygon2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContPointInPolyhedron3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContScribeCircle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContScribeCircle3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ContSphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ConvertCoordinates.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ConvexHull2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ConvexHull3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ConvexPolyhedron3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CosEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CubicRootsQR.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CurvatureFlow2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CurvatureFlow3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CurveExtractor.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CurveExtractorSquares.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/CurveExtractorTriangles.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DCPQuery.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DarbouxFrame.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Delaunay2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Delaunay2Mesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Delaunay3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Delaunay3Mesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DisjointIntervals.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DisjointRectangles.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistAlignedBox3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistAlignedBoxAlignedBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistCircle3Circle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLine3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLine3Circle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLine3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLine3Rectangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLine3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLineLine.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLineRay.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistLineSegment.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistOrientedBox3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3Circle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3ConvexPolyhedron3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3Frustum3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3Plane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3Rectangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPoint3Tetrahedron3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointAlignedBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointHyperellipsoid.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointLine.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointOrientedBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointRay.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointSegment.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointTriangle.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistPointTriangleExact.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRay3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRay3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRay3Rectangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRay3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRayRay.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRaySegment.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRectangle3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRectangle3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistRectangle3Rectangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistSegment3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistSegment3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistSegment3Rectangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistSegment3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistSegmentSegment.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistSegmentSegmentExact.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistTriangle3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistTriangle3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistTriangle3Rectangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/DistTriangle3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ETManifoldMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ETNonmanifoldMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/EdgeKey.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Ellipse3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/EllipsoidGeodesic.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/EulerAngles.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Exp2Estimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ExpEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ExtremalQuery3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ExtremalQuery3BSP.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ExtremalQuery3PRJ.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FIQuery.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FPInterval.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FastGaussianBlur1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FastGaussianBlur2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FastGaussianBlur3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FastMarch.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FastMarch2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FastMarch3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FeatureKey.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/FrenetFrame.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Frustum3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GMatrix.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GVector.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GaussNewtonMinimizer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GaussianBlur2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GaussianBlur3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GaussianElimination.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GenerateMeshUV.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GradientAnisotropic2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/GradientAnisotropic3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Halfspace.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Histogram.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Hyperellipsoid.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Hyperplane.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Hypersphere.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IEEEBinary.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IEEEBinary16.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Image.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Image2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Image3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ImageUtility2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ImageUtility3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IndexAttribute.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Integration.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpAkima1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpAkimaNonuniform1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpAkimaUniform1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpAkimaUniform2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpAkimaUniform3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpBSplineUniform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpBicubic2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpBilinear2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpLinearNonuniform2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpLinearNonuniform3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpQuadraticNonuniform2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpSphere2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpThinPlateSpline2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpThinPlateSpline3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpTricubic3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpTrilinear3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntpVectorField2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox2AlignedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox2Circle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox2OrientedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox3Cone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrAlignedBox3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrArc2Arc2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrCapsule3Capsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrCircle2Arc2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrCircle2Circle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrConvexPolygonHyperplane.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrDisk2Sector2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrEllipse2Ellipse2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrEllipsoid3Ellipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace2Polygon2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3Capsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3Ellipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3Segment3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrHalfspace3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrIntervals.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2AlignedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2Arc2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2Circle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2Line2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2OrientedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2Ray2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2Segment2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine2Triangle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Capsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Cone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Ellipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Plane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrLine3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox2Circle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox2Cone2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox2OrientedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox2Sector2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox3Cone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox3Frustum3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrOrientedBox3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Capsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Circle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Ellipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Plane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrPlane3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2AlignedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2Arc2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2Circle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2OrientedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2Ray2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2Segment2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay2Triangle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Capsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Cone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Ellipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Plane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrRay3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment2AlignedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment2Arc2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment2Circle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment2OrientedBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment2Segment2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment2Triangle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3AlignedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Capsule3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Cone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Cylinder3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Ellipsoid3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Plane3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSegment3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSphere3Cone3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSphere3Frustum3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSphere3Sphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrSphere3Triangle3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrTriangle2Triangle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IntrTriangle3OrientedBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/InvSqrtEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/IsPlanarGraph.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LCPSolver.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LevenbergMarquardtMinimizer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LexicoArray2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Line.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LinearSystem.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Log2Estimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LogEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LogToFile.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LogToStdout.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/LogToStringArray.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Logger.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Lozenge3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MarchingCubes.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MassSpringArbitrary.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MassSpringCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MassSpringSurface.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MassSpringVolume.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Math.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Matrix.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Matrix2x2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Matrix3x3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Matrix4x4.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Mesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MeshCurvature.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinHeap.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinimalCycleBasis.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Minimize1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinimizeN.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinimumAreaBox2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinimumAreaCircle2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinimumVolumeBox3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/MinimumVolumeSphere3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NURBSCircle.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NURBSCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NURBSSphere.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NURBSSurface.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NURBSVolume.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NaturalSplineCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/NearestNeighborQuery.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OBBTreeOfPoints.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OdeEuler.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OdeImplicitEuler.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OdeMidpoint.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OdeRungeKutta4.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OdeSolver.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/OrientedBox.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ParametricCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ParametricSurface.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ParticleSystem.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PdeFilter.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PdeFilter1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PdeFilter2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PdeFilter3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PlanarMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Polygon2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PolyhedralMassProperties.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Polyhedron3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Polynomial1.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PolynomialCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PrimalQuery2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/PrimalQuery3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Projection.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/QFNumber.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/QuadricSurface.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/QuarticRootsQR.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Quaternion.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RangeIteration.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Ray.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Rectangle.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RectangleManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RectangleMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RectanglePatchMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RevolutionMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RiemannianGeodesic.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RigidBody.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RootsBisection.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RootsBrentsMethod.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/RootsPolynomial.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Rotation.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Sector2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Segment.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SeparatePoints2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SeparatePoints3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SharedPtrCompare.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SinEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SingularValueDecomposition.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SlerpEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SplitMeshByPlane.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SqrtEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/StringUtility.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SurfaceExtractor.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SurfaceExtractorCubes.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SurfaceExtractorMC.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SurfaceExtractorTetrahedra.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SymmetricEigensolver.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SymmetricEigensolver2x2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/SymmetricEigensolver3x3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TCBSplineCurve.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TIQuery.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TSManifoldMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TanEstimate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Tetrahedron3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TetrahedronKey.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ThreadSafeMap.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/ThreadSafeQueue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Torus3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Transform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Triangle.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TriangleKey.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TriangulateCDT.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TriangulateEC.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/TubeMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/UIntegerALU32.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/UIntegerAP32.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/UIntegerFP32.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/UniqueVerticesTriangles.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/UnsymmetricEigenvalues.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/VEManifoldMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/VETManifoldMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/VETNonmanifoldMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Vector.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Vector2.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Vector3.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/Vector4.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/VertexAttribute.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/VertexCollapseMesh.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/GTE/Mathematics/WeakPtrCompare.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/ISoundBankInfoCache.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/InitializationSettings/AkAudioSession.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/InitializationSettings/AkInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/InitializationSettings/AkPlatformInitialisationSettingsBase.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneAkAudioEventSection.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneAkAudioEventTrack.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneAkAudioRTPCSection.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneAkAudioRTPCTrack.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneAkTrack.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneBackwardsCompatibility.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/MovieSceneFloatChannelSerializationHelper.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/ObstructionAndOcclusionService/AkComponentObstructionAndOcclusionService.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/ObstructionAndOcclusionService/AkObstructionAndOcclusionService.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/ObstructionAndOcclusionService/AkPortalObstructionAndOcclusionService.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatformBase.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Android/AkAndroidInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Android/AkAndroidPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Android/AkAndroidPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Hololens/AkHololensInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Hololens/AkHololensPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Hololens/AkHololensPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Linux/AkLinuxInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Linux/AkLinuxPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Linux/AkLinuxPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Mac/AkMacInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Mac/AkMacPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Mac/AkMacPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Windows/AkWindowsInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Windows/AkWindowsPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_Windows/AkWindowsPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_iOS/AkIOSInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_iOS/AkIOSPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_iOS/AkIOSPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_tvOS/AkTVOSInitializationSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_tvOS/AkTVOSPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkPlatform_tvOS/AkTVOSPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/Platforms/AkUEPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WaapiPicker/SWaapiPicker.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WaapiPicker/SWaapiPickerRow.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WaapiPicker/WaapiPickerViewCommands.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WaapiPicker/WwiseTreeItem.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WwiseEventTracking.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WwiseInitBankLoader/WwiseInitBankLoader.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/WwiseItemType.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAcousticPortal.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAcousticTexture.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAcousticTextureSetComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAmbientSound.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioDevice.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioEvent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioInputComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioInputManager.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioStyle.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAudioType.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkAuxBus.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkCallbackInfoPool.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkComponentCallbackManager.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkComponentCallbackManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkComponentHelpers.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkCustomVersion.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkDrawPortalComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkDrawRoomComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkEffectShareSet.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkEnvironmentIndex.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkGameObject.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkGameplayStatics.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkGameplayTypes.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkGeometryComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkGeometryData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkGroupValue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkInitBank.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkJobWorkerScheduler.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkLateReverbComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkReverbDescriptor.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkReverbVolume.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkRoomComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkRtpc.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSettingsPerUser.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSpatialAudioDrawUtils.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSpatialAudioHelper.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSpatialAudioVolume.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSpotReflector.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkStateValue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSubmixInputComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSurfaceReflectorSetComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSurfaceReflectorSetUtils.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkSwitchValue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkTrigger.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkUnrealEditorHelper.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiCalls.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiFieldNames.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiFieldNamesCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiJsonManager.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiUri.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiUriCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiBlueprints/AkWaapiUriList.inc
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiClient.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiSlate/Widgets/Input/AkSSlider.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkBoolPropertyToControlCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkCheckBox.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkItemBoolProperties.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkItemProperties.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkPropertyToControlCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkSlider.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkWwiseObjectDetailsStructCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkWwiseTree.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/AkWwiseTreeSelector.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/SAkItemBoolProperties.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUMG/Components/SAkItemProperties.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AkWaapiUtils.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/AssetManagement/WwiseProjectInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/BlueprintNodes/PostEventAsync.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/BlueprintNodes/PostEventAtLocationAsync.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/InitializationSettings/AkAudioSession.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/InitializationSettings/AkInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioEventSection.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioEventTemplate.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioEventTemplate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioEventTrack.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioRTPCSection.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioRTPCTemplate.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioRTPCTemplate.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/MovieSceneAkAudioRTPCTrack.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/ObstructionAndOcclusionService/AkComponentObstructionAndOcclusionService.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/ObstructionAndOcclusionService/AkObstructionAndOcclusionService.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/ObstructionAndOcclusionService/AkPortalObstructionAndOcclusionService.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatformBase.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_Android/AkAndroidInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_Hololens/AkHololensInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_Linux/AkLinuxInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_Linux/AkLinuxPlatform.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_Mac/AkMacInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_Windows/AkWindowsInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_iOS/AkIOSInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkPlatform_tvOS/AkTVOSInitializationSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Platforms/AkUEPlatform.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/StringMatchAlgos/Array2D.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/StringMatchAlgos/StringMatching.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/StringMatchAlgos/StringMatching.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/WaapiPicker/SWaapiPicker.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/WaapiPicker/SWaapiPickerRow.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/WaapiPicker/WwiseTreeItem.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/Wwise/Stats/AkAudio.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/WwiseEventTracking.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Private/WwiseInitBankLoader/WwiseInitBankLoader.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Public/AkAudioDevice.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Public/AkAudioModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Public/AkCustomVersion.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Public/AkUnrealEditorHelper.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Public/AkWaapiClient.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Public/Wwise/Stats/AkAudio.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/AkAudioMixer.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/Private/AkAudioMixer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/Private/AkMixerPlatform.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/Private/AudioMixerInputComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/Public/AkAudioMixer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/Public/AkMixerPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AkAudioMixer/Public/AudioMixerInputComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/AudiokineticTools.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/AssetManagement/AkMigrationCommandlet.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/AssetManagement/GenerateSoundBanksCommandlet.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/AssetManagement/GeneratedSoundBanksDirectoryWatcher.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/Factories/ActorFactoryAkAmbientSound.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/Factories/AkJsonFactory.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/GeneratedSoundBanksWarning.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/ReloadPopup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Classes/WwiseBrowser/WwiseAssetDragDropOp.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AkAudioBankGenerationHelpers.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AkEventAssetBroker.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AkUnrealAssetDataHelper.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkAssetDatabase.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkAssetDatabase.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkAssetMigrationHelper.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkAssetMigrationHelper.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkAssetMigrationManager.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkAssetMigrationManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkGenerateSoundBanksTask.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkGenerateSoundBanksTask.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkMigrationCommandlet.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkMigrationWidgets.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkMigrationWidgets.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkSoundBankGenerationManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/AkSoundbankGenerationManager.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/GenerateSoundBanksCommandlet.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/GeneratedSoundBanksDirectoryWatcher.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/StaticPluginWriter.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AssetManagement/StaticPluginWriter.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AudiokineticToolsModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/AudiokineticToolsPrivatePCH.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkGeometryComponentDetailsCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkGeometryComponentDetailsCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkLateReverbComponentDetailsCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkLateReverbComponentDetailsCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkPortalComponentDetailsCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkPortalComponentDetailsCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkRoomComponentDetailsCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkRoomComponentDetailsCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkSettingsDetailsCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkSettingsDetailsCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkSurfaceReflectorSetDetailsCustomization.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/DetailsCustomization/AkSurfaceReflectorSetDetailsCustomization.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Factories/ActorFactoryAkAmbientSound.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Factories/AkAssetFactories.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Factories/AkAssetTypeActions.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Factories/AkAssetTypeActions.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Factories/AkJsonFactory.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/GeneratedSoundBanksWarning.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/ReloadPopup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Sequencer/MovieSceneAkAudioEventTrackEditor.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Sequencer/MovieSceneAkAudioEventTrackEditor.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Sequencer/MovieSceneAkAudioRTPCTrackEditor.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Sequencer/MovieSceneAkAudioRTPCTrackEditor.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/UI/SAcousticSurfacesController.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/UI/SAcousticSurfacesController.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/UI/SAkGeometrySurfaceOverrideController.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/UI/SAkGeometrySurfaceOverrideController.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/UI/SGenerateSoundBanks.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/UI/SGenerateSoundBanks.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Visualizer/AkAcousticPortalVisualizer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Visualizer/AkAcousticPortalVisualizer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Visualizer/AkComponentVisualizer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Visualizer/AkComponentVisualizer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Visualizer/AkSurfaceReflectorSetComponentVisualizer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/Visualizer/AkSurfaceReflectorSetComponentVisualizer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WaapiPlaybackTransport/WaapiPlaybackTransport.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/IWwiseBrowserDataSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/UAssetDataSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/UAssetDataSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/WaapiDataSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/WaapiDataSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/WwiseBrowserDataSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/WwiseBrowserDataSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/WwiseProjectDatabaseSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/DataSource/WwiseProjectDatabaseSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/IWwiseBrowserColumn.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/SWwiseBrowser.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/SWwiseBrowser.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/SWwiseBrowserTreeView.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/SWwiseBrowserTreeView.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/SoundBankStatusColumn.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/SoundBankStatusColumn.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseAssetDragDropOp.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserForwards.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserHelpers.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserHelpers.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserTreeColumn.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserTreeColumn.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserViewCommands.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseBrowserViewCommands.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseObjectsColumn.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseStatusColumn.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseStatusColumn.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseUEAssetStatusColumn.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseBrowser/WwiseUEAssetStatusColumn.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseProject/AcousticTextureParamLookup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseProject/AcousticTextureParamLookup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseProject/WwiseSoundBankInfoCache.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Private/WwiseProject/WwiseSoundBankInfoCache.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Public/AkAssetFactories.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Public/AkAudioBankGenerationHelpers.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Public/AkUnrealAssetDataHelper.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Public/AudiokineticToolsModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Public/IAudiokineticTools.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/AudiokineticTools/Public/WaapiPlaybackTransport.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/Wwise/Private/Wwise/Stats/Wwise.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/Wwise/Private/Wwise/WwiseModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/Wwise/Public/Wwise/Stats/Wwise.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/Wwise/Wwise.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/Wwise/WwiseHelper.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkEditor/Private/Wwise/AudioLink/WwiseAudioLinkSettingsFactory.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkEditor/Private/Wwise/AudioLink/WwiseAudioLinkSettingsFactory.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkEditor/Private/Wwise/WwiseAudioLinkEditorModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkEditor/WwiseAudioLinkEditor_OptionalModule.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLink.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkComponent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkFactory.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkFactory.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkInputClient.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkInputClient.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkSourcePushed.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkSourcePushed.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkSynchronizer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/AudioLink/WwiseAudioLinkSynchronizer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/Stats/AudioLink.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Private/Wwise/WwiseAudioLinkRuntimeModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Public/Wwise/AudioLink/WwiseAudioLinkComponent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Public/Wwise/AudioLink/WwiseAudioLinkSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/Public/Wwise/Stats/AudioLink.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseAudioLinkRuntime/WwiseAudioLinkRuntime_OptionalModule.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Private/Wwise/Stats/Concurrency.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Private/Wwise/WwiseConcurrencyModuleImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Private/Wwise/WwiseDeferredQueue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Private/Wwise/WwiseExecutionQueue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Private/Wwise/WwiseGlobalCallbacks.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/Stats/Concurrency.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/WwiseConcurrencyModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/WwiseConcurrencyModuleImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/WwiseDeferredQueue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/WwiseExecutionQueue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/WwiseFuture.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Public/Wwise/WwiseGlobalCallbacks.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/Tests/ExecutionQueueTests.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseConcurrency/WwiseConcurrency.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/CookedData/WwiseExternalSourceCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/CookedData/WwiseLanguageCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/CookedData/WwiseMediaCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/CookedData/WwiseSoundBankCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/Stats/FileHandler.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseExternalSourceFileState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseExternalSourceManagerImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseExternalSourceStatics.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseFileCache.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseFileHandlerBase.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseFileHandlerModuleImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseFileState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseFileStateTools.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseIOHook.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseIOHookImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseMediaFileState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseMediaManagerImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseSoundBankFileState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseSoundBankManagerImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Private/Wwise/WwiseWriteFileState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/CookedData/WwiseExternalSourceCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/CookedData/WwiseLanguageCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/CookedData/WwiseMediaCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/CookedData/WwiseSoundBankCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/Stats/FileHandler.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseExternalSourceFileState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseExternalSourceManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseExternalSourceManagerImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseExternalSourceStatics.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseFileCache.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseFileHandlerBase.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseFileHandlerModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseFileHandlerModuleImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseFileState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseFileStateTools.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseIOHook.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseIOHookImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseMediaFileState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseMediaManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseMediaManagerImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseSoundBankFileState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseSoundBankManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseSoundBankManagerImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseStreamableFileHandler.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseStreamableFileStateInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseStreamingManagerHooks.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/Public/Wwise/WwiseWriteFileState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseFileHandler/WwiseFileHandler.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataAcousticTexture.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataActionEntries.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataBasicReference.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataBus.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataDialogue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataEvent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataExternalSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataGameParameter.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataGroupValueReference.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataLanguage.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataLoadable.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataLoader.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataLoader.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataMedia.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataPlatform.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataPlatformInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataPlugin.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataPluginGroup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataPluginInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataPluginLib.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataProject.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataProjectInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataRootFile.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataRootPaths.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSettings.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSoundBank.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSoundBanksInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataStateGroup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSwitch.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSwitchContainer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSwitchGroup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataSwitchValue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Metadata/WwiseMetadataTrigger.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseAnyRef.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefAcousticTexture.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefAudioDevice.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefAuxBus.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefBus.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefCustomPlugin.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefDialogueArgument.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefDialogueEvent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefEvent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefExternalSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefGameParameter.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefLanguage.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefMedia.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefPlatform.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefPlatformInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefPluginInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefPluginLib.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefPluginShareSet.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefProjectInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefRootFile.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefSoundBank.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefSoundBanksInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefState.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefStateGroup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefSwitch.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefSwitchContainer.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefSwitchGroup.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Ref/WwiseRefTrigger.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/Stats/ProjectDatabase.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseDataStructure.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseDatabaseIdentifiers.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseDirectoryVisitor.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseDirectoryVisitor.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseGeneratedFiles.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseProjectDatabase.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseProjectDatabaseImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Private/Wwise/WwiseProjectDatabaseModuleImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataAcousticTexture.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataActionEntries.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataBasicReference.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataBus.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataCollections.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataDialogue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataEvent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataExternalSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataForwardDeclarations.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataGameParameter.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataGroupValueReference.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataLanguage.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataLoadable.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataMedia.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataPlugin.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataPluginGroup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataPluginInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataPluginLib.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataProject.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataProjectInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataRootFile.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataRootPaths.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSoundBank.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSoundBanksInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataStateGroup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSwitch.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSwitchContainer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSwitchGroup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataSwitchValue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Metadata/WwiseMetadataTrigger.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseAnyRef.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefAcousticTexture.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefAudioDevice.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefAuxBus.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefBus.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefCollections.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefCustomPlugin.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefDialogueArgument.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefDialogueEvent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefEvent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefExternalSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefForwardDeclarations.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefGameParameter.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefLanguage.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefMedia.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefPlatform.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefPlatformInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefPluginInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefPluginLib.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefPluginShareSet.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefProjectInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefRootFile.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefSoundBank.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefSoundBanksInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefState.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefStateGroup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefSwitch.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefSwitchContainer.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefSwitchGroup.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefTrigger.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Ref/WwiseRefType.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/Stats/ProjectDatabase.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseDataStructure.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseDatabaseIdentifiers.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseGeneratedFiles.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseProjectDatabase.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseProjectDatabaseDelegates.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseProjectDatabaseImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseProjectDatabaseModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/Public/Wwise/WwiseProjectDatabaseModuleImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseProjectDatabase/WwiseProjectDatabase.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Private/Wwise/Stats/Reconcile.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Private/Wwise/WwiseReconcileCommandlet.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Private/Wwise/WwiseReconcileModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Public/Wwise/Stats/Reconcile.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Public/Wwise/WwiseReconcile.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Public/Wwise/WwiseReconcileCommandlet.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/Public/Wwise/WwiseReconcileModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/RunCommandlet.bat
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseReconcile/WwiseReconcile.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Private/Wwise/Stats/ResourceCooker.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Private/Wwise/WwiseCookingCache.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Private/Wwise/WwiseResourceCooker.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Private/Wwise/WwiseResourceCookerImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Private/Wwise/WwiseResourceCookerModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Private/Wwise/WwiseResourceCookerModuleImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Public/Wwise/Stats/ResourceCooker.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Public/Wwise/WwiseResourceCooker.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Public/Wwise/WwiseResourceCookerImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Public/Wwise/WwiseResourceCookerModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/Public/Wwise/WwiseResourceCookerModuleImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceCooker/WwiseResourceCooker.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseAcousticTextureCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseAuxBusCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseEventCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseGameParameterCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseGroupValueCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseInitBankCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseLocalizedAuxBusCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseLocalizedEventCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseLocalizedShareSetCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseLocalizedSoundBankCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseShareSetCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseSwitchContainerLeafCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/CookedData/WwiseTriggerCookedData.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseEventInfoLibrary.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseEventInfoLibrary.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseGroupValueInfoLibrary.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseGroupValueInfoLibrary.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseObjectInfo.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseObjectInfoLibrary.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Info/WwiseObjectInfoLibrary.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedAuxBus.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedEvent.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedExternalSource.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedGroupValue.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedInitBank.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedMedia.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedShareSet.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Loaded/WwiseLoadedSoundBank.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/Stats/ResourceLoader.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/WwiseLanguageId.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/WwiseResourceLoader.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/WwiseResourceLoaderImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/WwiseResourceLoaderModuleImpl.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Private/Wwise/WwiseSharedLanguageId.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseAcousticTextureCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseAuxBusCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseEventCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseGameParameterCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseGroupValueCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseInitBankCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseLocalizedAuxBusCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseLocalizedEventCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseLocalizedShareSetCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseLocalizedSoundBankCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseShareSetCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseSwitchContainerLeafCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/CookedData/WwiseTriggerCookedData.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Info/WwiseEventInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Info/WwiseGroupValueInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Info/WwiseObjectInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedAuxBus.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedEvent.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedExternalSource.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedGroupValue.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedInitBank.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedMedia.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedShareSet.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Loaded/WwiseLoadedSoundBank.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/Stats/ResourceLoader.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseLanguageId.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwisePlatformId.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseResourceLoader.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseResourceLoaderFuture.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseResourceLoaderImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseResourceLoaderModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseResourceLoaderModuleImpl.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseSharedGroupValueKey.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseSharedLanguageId.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/Public/Wwise/WwiseSharedPlatformId.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseResourceLoader/WwiseResourceLoader.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Private/Wwise/SimpleExtSrc/WwiseSimpleExtScrManager.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Private/Wwise/Stats/SimpleExtSrc.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Private/Wwise/WwiseSimpleExtSrcModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Public/Wwise/SimpleExtSrc/WwiseExternalSourceCookieDefaultMedia.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Public/Wwise/SimpleExtSrc/WwiseExternalSourceMediaInfo.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Public/Wwise/SimpleExtSrc/WwiseExternalSourceSettings.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Public/Wwise/SimpleExtSrc/WwiseSimpleExtSrcManager.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Public/Wwise/Stats/SimpleExtSrc.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/Public/Wwise/WwiseSimpleExtSrcModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSimpleExternalSource/WwiseSimpleExternalSource.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Private/AkUnrealHelper.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Private/Wwise/Stats/Global.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Private/Wwise/Stats/NamedEvents.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Private/Wwise/Stats/SoundEngine.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Private/Wwise/WwiseSoundEngineModule.cpp
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/AkInclude.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/AkUEFeatures.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/AkUnrealHelper.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Generated/AkSwitchPlugins.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Generated/AkiOSPlugins.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Generated/AktvOSPlugins.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/Android/AndroidAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/HoloLensAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/IOS/IOSAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/Linux/LinuxAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/Mac/MacAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/TVOS/TVOSAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/Platforms/Windows/WindowsAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WAAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseCommAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseMemoryMgrAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseMonitorAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseMusicEngineAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwisePlatformAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseSoundEngineAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseSpatialAudioAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/API/WwiseStreamMgrAPI.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/PostSoundEngineInclude.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/PreSoundEngineInclude.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/Stats/AsyncStats.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/Stats/Global.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/Stats/NamedEvents.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/Stats/SoundEngine.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/WwiseFileLocationResolver.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/WwiseLowLevelIOHook.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/WwiseSoundEngineModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/WwiseSoundEngineVersionModule.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/Wwise/WwiseUnitTests.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/Public/WwiseDefines.h
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/WwiseSoundEngine.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/WwiseSoundEngineVersion.Build.cs
create mode 100644 Pawn_Unreal/Plugins/Wwise/Source/WwiseSoundEngine/WwiseUEPlatform.Build.cs
diff --git a/Pawn_Unreal/Config/DefaultGame.ini b/Pawn_Unreal/Config/DefaultGame.ini
index 109cecd..9833d8f 100644
--- a/Pawn_Unreal/Config/DefaultGame.ini
+++ b/Pawn_Unreal/Config/DefaultGame.ini
@@ -6,43 +6,6 @@ ProjectName=Third Person BP Game Template
bAddPacks=True
InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
-[/Script/AkAudio.AkSettings]
-MaxSimultaneousReverbVolumes=4
-WwiseProjectPath=(FilePath="../Pawn_Wwise/Pawn_Wwise.wproj")
-GeneratedSoundBanksFolder=(Path="WwiseAudio/GeneratedSoundbanks")
-WwiseStagingDirectory=(Path="WwiseAudio")
-bSoundBanksTransfered=True
-bAssetsMigrated=True
-bProjectMigrated=True
-DefaultOcclusionCollisionChannel=ECC_Visibility
-DefaultFitToGeometryCollisionChannel=ECC_WorldStatic
-AkGeometryMap=(("/Engine/EngineMaterials/DefaultDestructiblePhysicalMaterial.DefaultDestructiblePhysicalMaterial", ()),("/Engine/EngineMaterials/DefaultPhysicalMaterial.DefaultPhysicalMaterial", ()),("/Engine/EngineMaterials/LandscapeHolePhysicalMaterial.LandscapeHolePhysicalMaterial", ()),("/Engine/EngineMaterials/PhysMat_Carboard.PhysMat_Carboard", ()),("/Engine/EngineMaterials/PhysMat_Ice.PhysMat_Ice", ()),("/Engine/EngineMaterials/PhysMat_Metal.PhysMat_Metal", ()),("/Engine/EngineMaterials/PhysMat_Rubber.PhysMat_Rubber", ()),("/Engine/EngineMaterials/PhysMat_Vehicle.PhysMat_Vehicle", ()),("/Engine/EngineMaterials/PhysMat_VehicleRagdoll.PhysMat_VehicleRagdoll", ()))
-GlobalDecayAbsorption=0.500000
-DefaultReverbAuxBus=None
-EnvironmentDecayAuxBusMap=()
-HFDampingName=
-DecayEstimateName=
-TimeToFirstReflectionName=
-HFDampingRTPC=None
-DecayEstimateRTPC=None
-TimeToFirstReflectionRTPC=None
-AudioInputEvent=None
-AcousticTextureParamsMap=()
-SplitSwitchContainerMedia=False
-SplitMediaPerFolder=False
-UseEventBasedPackaging=False
-UnrealCultureToWwiseCulture=(("en", "English(US)"))
-DefaultAssetCreationPath=/Game/WwiseAudio
-InitBank=/Game/WwiseAudio/InitBank.InitBank
-AudioRouting=Custom
-bWwiseSoundEngineEnabled=True
-bWwiseAudioLinkEnabled=False
-bAkAudioMixerEnabled=False
-MigratedEnableMultiCoreRendering=True
-FixupRedirectorsDuringMigration=False
-VisualizeRoomsAndPortals=False
-bShowReverbInfo=True
-
[/Script/UnrealEd.ProjectPackagingSettings]
Build=IfProjectHasCode
BuildConfiguration=PPBC_Development
@@ -134,3 +97,41 @@ bSkipMovies=False
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTree")
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTypes")
+
+[/Script/AkAudio.AkSettings]
+MaxSimultaneousReverbVolumes=4
+WwiseProjectPath=(FilePath="../Pawn_Wwise/Pawn_Wwise.wproj")
+GeneratedSoundBanksFolder=(Path="WwiseAudio/GeneratedSoundBanks")
+WwiseStagingDirectory=(Path="WwiseAudio")
+bSoundBanksTransfered=True
+bAssetsMigrated=True
+bProjectMigrated=True
+DefaultOcclusionCollisionChannel=ECC_Visibility
+DefaultFitToGeometryCollisionChannel=ECC_WorldStatic
+AkGeometryMap=(("/Engine/EngineMaterials/DefaultDestructiblePhysicalMaterial.DefaultDestructiblePhysicalMaterial", ()),("/Engine/EngineMaterials/DefaultPhysicalMaterial.DefaultPhysicalMaterial", ()),("/Engine/EngineMaterials/LandscapeHolePhysicalMaterial.LandscapeHolePhysicalMaterial", ()),("/Engine/EngineMaterials/PhysMat_Carboard.PhysMat_Carboard", ()),("/Engine/EngineMaterials/PhysMat_Ice.PhysMat_Ice", ()),("/Engine/EngineMaterials/PhysMat_Metal.PhysMat_Metal", ()),("/Engine/EngineMaterials/PhysMat_Rubber.PhysMat_Rubber", ()),("/Engine/EngineMaterials/PhysMat_Vehicle.PhysMat_Vehicle", ()),("/Engine/EngineMaterials/PhysMat_VehicleRagdoll.PhysMat_VehicleRagdoll", ()))
+GlobalDecayAbsorption=0.500000
+DefaultReverbAuxBus=None
+EnvironmentDecayAuxBusMap=()
+HFDampingName=
+DecayEstimateName=
+TimeToFirstReflectionName=
+HFDampingRTPC=None
+DecayEstimateRTPC=None
+TimeToFirstReflectionRTPC=None
+AudioInputEvent=None
+AcousticTextureParamsMap=()
+SplitSwitchContainerMedia=False
+SplitMediaPerFolder=False
+UseEventBasedPackaging=False
+UnrealCultureToWwiseCulture=(("en", "English(US)"))
+DefaultAssetCreationPath=/Game/WwiseAudio
+InitBank=/Game/WwiseAudio/InitBank.InitBank
+AudioRouting=Custom
+bWwiseSoundEngineEnabled=True
+bWwiseAudioLinkEnabled=False
+bAkAudioMixerEnabled=False
+MigratedEnableMultiCoreRendering=True
+FixupRedirectorsDuringMigration=False
+VisualizeRoomsAndPortals=False
+bShowReverbInfo=True
+
diff --git a/Pawn_Unreal/Content/Developers/maxim/BP_TriggerTest.uasset b/Pawn_Unreal/Content/Developers/maxim/BP_TriggerTest.uasset
index 166bca8..f5124c0 100644
--- a/Pawn_Unreal/Content/Developers/maxim/BP_TriggerTest.uasset
+++ b/Pawn_Unreal/Content/Developers/maxim/BP_TriggerTest.uasset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:002141d7c90f83fbdd0ded1a666630e95015fbcd43b0c531ae0d4b63353f63d8
-size 138508
+oid sha256:c1a23c8ad93ac711573549346536c1606a4532096a49637d009016717c43f144
+size 137801
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.json
new file mode 100644
index 0000000..963708e
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.json
@@ -0,0 +1,29 @@
+{
+ "ProjectInfo": {
+ "Project": {
+ "Name": "Pawn_Wwise",
+ "GUID": "{4CC4225E-6E29-4CFB-9AD5-8BDBBE21C951}",
+ "Generator": "2022.1.5.8242"
+ },
+ "CacheRoot": "../../../../Pawn_Wwise/.cache",
+ "Platforms": [
+ {
+ "Name": "Windows",
+ "GUID": "{A65AA759-FD18-4B50-8050-E2B5EBB888BD}",
+ "BasePlatform": "Windows",
+ "BasePlatformGUID": "{6E0CB257-C6C8-4C5C-8366-2740DFC441EB}",
+ "Path": "Windows"
+ }
+ ],
+ "Languages": [
+ {
+ "Name": "English(US)",
+ "Id": "684519430",
+ "GUID": "{BB071A3B-DE40-4833-BE43-32DD5C317011}",
+ "Default": "true",
+ "UseAsStandIn": "true"
+ }
+ ],
+ "FileHash": "{D34E3E88-D55D-2954-AC8F-DD1FDAF0EC73}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.xml
new file mode 100644
index 0000000..61378e6
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/ProjectInfo.xml
@@ -0,0 +1,12 @@
+
+
+
+ ../../../../Pawn_Wwise/.cache
+
+
+
+
+
+
+ {6F2A8120-A7D2-EA96-155C-FB793397F94C}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.bnk b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.bnk
new file mode 100644
index 0000000000000000000000000000000000000000..f2150f32de8c3b1cd15a115dff2f9e075db210c3
GIT binary patch
literal 95
zcmZ?r_HfZ)U|^UC#IC1)+uFqzhzkJO$Hf^K9pyRf9}nVPjz71kxar7(p@slMfeu
literal 0
HcmV?d00001
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.json
new file mode 100644
index 0000000..6b5f0e7
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.json
@@ -0,0 +1,33 @@
+{
+ "SoundBanksInfo": {
+ "Platform": "Windows",
+ "BasePlatform": "Windows",
+ "SchemaVersion": "16",
+ "SoundBankVersion": "145",
+ "SoundBanks": [
+ {
+ "Id": "1039911493",
+ "Type": "Event",
+ "GUID": "{EADC1A47-B16B-42B7-9E29-7BCD157F1C27}",
+ "Language": "SFX",
+ "Hash": "{C32B739D-90BD-A874-86F0-F05F42AB3A7B}",
+ "ObjectPath": "Stop_BIP",
+ "ShortName": "Stop_BIP",
+ "Path": "Event/10/Stop_BIP.bnk",
+ "Events": [
+ {
+ "Id": "1039911493",
+ "Name": "Stop_BIP",
+ "ObjectPath": "\\Events\\Default Work Unit\\DOSSIER\\Stop_BIP",
+ "GUID": "{EADC1A47-B16B-42B7-9E29-7BCD157F1C27}",
+ "MaxAttenuation": "0",
+ "DurationType": "OneShot",
+ "DurationMin": "0",
+ "DurationMax": "0"
+ }
+ ]
+ }
+ ],
+ "FileHash": "{B54F2D03-7EA1-354F-5609-8D9D0128F793}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.txt b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.txt
new file mode 100644
index 0000000..218d327
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.txt
@@ -0,0 +1,3 @@
+Event ID Name Wwise Object Path Notes
+ 1039911493 Stop_BIP \Default Work Unit\DOSSIER\Stop_BIP
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.xml
new file mode 100644
index 0000000..ca83727
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/10/Stop_BIP.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ Stop_BIP
+ Stop_BIP
+ Event/10/Stop_BIP.bnk
+
+
+
+
+
+ {C9BBA052-BACC-EB83-7D21-FF9788B84326}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/30/Play_BIP.bnk b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Event/30/Play_BIP.bnk
new file mode 100644
index 0000000000000000000000000000000000000000..0242104194db4a2a37d0fc4a2f5651172a2eb234
GIT binary patch
literal 374
zcmZ?r_HfZ)U|^UC#PxIHw%ElMhzkJO$Hf^K6I29y&~0}|_0%>>yPIJvla_<+I;T-TLt7#KX9&YtnHV_-Pp1QfCdV!?bMv7)M4
zlZjypg8`5Y1XV5&nt|cKArK3s9SjZ}0GR;gFhF^XV4GN&SZ@5P6kuWk%YOS;zn=xn
zY5-Zn0AVvSuz;nRtbsz`<*GG6c7iPjD@7q>j`4GVEmk-P6Nfv4T^A?>RsfPR-?RM@
rR0%T&gaKCxVt_1S76URkoGPrDSwLJMhXoX-pm1d21QH+)BS;
+
+
+
+ Play_BIP
+ Play_BIP
+ Event/30/Play_BIP.bnk
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {CFA376BB-60C5-C239-96B1-CDA83F87774E}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Init.bnk b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Init.bnk
new file mode 100644
index 0000000000000000000000000000000000000000..6f762b2f4633463ff68c832178c25f455372689a
GIT binary patch
literal 474
zcmZ?r_HZ#^U|^UC#L8C30_SZlT%<2$P1_n<*
z&k$K4hZ%^O7^W~dW(Qa1m1Owmr82NHtYZKYTNxOFLwwz(pgI;DVqi3a>4wuDo
+
+
+
+ Init
+ Init
+ Init.bnk
+
+
+
+
+
+
+
+
+
+
+
+ {4385C389-27FB-4E54-9CE2-F38127C1DE0A}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.bnk b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.bnk
new file mode 100644
index 0000000000000000000000000000000000000000..a57acfbd6d6f74500290213822c2ecd0eb594c2f
GIT binary patch
literal 48
ycmZ?r_HfZ)U|^UC#8+3Gjkb#|5ElTlkBb8dAaK`-xbG36d^Bm3okc*^)vEv;DGj&)
literal 0
HcmV?d00001
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.json
new file mode 100644
index 0000000..466cf0a
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.json
@@ -0,0 +1,21 @@
+{
+ "SoundBanksInfo": {
+ "Platform": "Windows",
+ "BasePlatform": "Windows",
+ "SchemaVersion": "16",
+ "SoundBankVersion": "145",
+ "SoundBanks": [
+ {
+ "Id": "1540204757",
+ "Type": "User",
+ "GUID": "{E9ADB960-EADA-4D0F-AE36-552B2ADE74E5}",
+ "Language": "SFX",
+ "Hash": "{DF582C47-5848-C523-62B2-3E38507AD5D5}",
+ "ObjectPath": "\\SoundBanks\\Default Work Unit\\Pawn_SB",
+ "ShortName": "Pawn_SB",
+ "Path": "Pawn_SB.bnk"
+ }
+ ],
+ "FileHash": "{E0262292-C9D9-D8B8-7E47-7C9FB4E1AA95}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.txt b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.xml
new file mode 100644
index 0000000..dfab6dd
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/Pawn_SB.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ \SoundBanks\Default Work Unit\Pawn_SB
+ Pawn_SB
+ Pawn_SB.bnk
+
+
+ {807BA9E4-B148-96AE-FB94-30918123C4C0}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.json
new file mode 100644
index 0000000..6621030
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.json
@@ -0,0 +1,37 @@
+{
+ "PlatformInfo": {
+ "Platform": {
+ "Name": "Windows",
+ "BasePlatform": "Windows",
+ "Generator": "2022.1.5.8242"
+ },
+ "RootPaths": {
+ "ProjectRoot": "../../../../../Pawn_Wwise",
+ "SourceFilesRoot": "../../../../../Pawn_Wwise/.cache/Windows",
+ "SoundBanksRoot": ".",
+ "ExternalSourcesInputFile": "",
+ "ExternalSourcesOutputRoot": "../../../../../Pawn_Wwise/GeneratedSoundBanks/Windows"
+ },
+ "DefaultAlign": "16",
+ "Settings": {
+ "AutoSoundBankDefinition": "true",
+ "CopyLooseStreamedMediaFiles": "true",
+ "SubFoldersForGeneratedFiles": "true",
+ "RemoveUnusedGeneratedFiles": "true",
+ "SourceControlGeneratedFiles": "false",
+ "GenerateHeaderFile": "false",
+ "GenerateContentTxtFile": "true",
+ "GenerateMetadataXML": "true",
+ "GenerateMetadataJSON": "true",
+ "GenerateAllBanksMetadata": "true",
+ "GeneratePerBankMetadata": "true",
+ "UseSoundBankNames": "true",
+ "AllowExceedingMaxSize": "false",
+ "MaxAttenuationInfo": "true",
+ "EstimatedDurationInfo": "true",
+ "PrintObjectGuid": "true",
+ "PrintObjectPath": "true"
+ },
+ "FileHash": "{AFE34640-9838-E38F-BB0C-4F9C543DC99F}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.xml
new file mode 100644
index 0000000..c3f389e
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PlatformInfo.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ ../../../../../Pawn_Wwise
+ ../../../../../Pawn_Wwise/.cache/Windows
+ .
+
+ ../../../../../Pawn_Wwise/GeneratedSoundBanks/Windows
+
+ 16
+
+ true
+ true
+ true
+ true
+ false
+ false
+ true
+ true
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ true
+ true
+
+ {48C86647-7400-B841-5F6F-2AACB35CC1DE}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.json
new file mode 100644
index 0000000..37129fc
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.json
@@ -0,0 +1,26 @@
+{
+ "PluginInfo": {
+ "Platform": "Windows",
+ "BasePlatform": "Windows",
+ "PluginLibs": [
+ {
+ "LibName": "Wwise Synth One",
+ "LibId": "9699330",
+ "Type": "Source",
+ "DLL": "AkSynthOne",
+ "StaticLib": "AkSynthOneSource"
+ },
+ {
+ "LibName": "System",
+ "LibId": "11403271",
+ "Type": "AudioDevice"
+ },
+ {
+ "LibName": "No Output",
+ "LibId": "11862023",
+ "Type": "AudioDevice"
+ }
+ ],
+ "FileHash": "{E2467BCD-FD66-8921-B109-95E8A86729CA}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.xml
new file mode 100644
index 0000000..5926329
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/PluginInfo.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+ {48D3DF48-B305-932A-3413-98783B7E50F4}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.json
new file mode 100644
index 0000000..5f51edf
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.json
@@ -0,0 +1,137 @@
+{
+ "SoundBanksInfo": {
+ "Platform": "Windows",
+ "BasePlatform": "Windows",
+ "SchemaVersion": "16",
+ "SoundBankVersion": "145",
+ "RootPaths": {
+ "ProjectRoot": "../../../../../Pawn_Wwise",
+ "SourceFilesRoot": "../../../../../Pawn_Wwise/.cache/Windows",
+ "SoundBanksRoot": ".",
+ "ExternalSourcesInputFile": "",
+ "ExternalSourcesOutputRoot": "../../../../../Pawn_Wwise/GeneratedSoundBanks/Windows"
+ },
+ "DialogueEvents": [],
+ "SoundBanks": [
+ {
+ "Id": "1039911493",
+ "Type": "Event",
+ "GUID": "{EADC1A47-B16B-42B7-9E29-7BCD157F1C27}",
+ "Language": "SFX",
+ "Hash": "{C32B739D-90BD-A874-86F0-F05F42AB3A7B}",
+ "ObjectPath": "Stop_BIP",
+ "ShortName": "Stop_BIP",
+ "Path": "Event/10/Stop_BIP.bnk",
+ "Events": [
+ {
+ "Id": "1039911493",
+ "Name": "Stop_BIP",
+ "ObjectPath": "\\Events\\Default Work Unit\\DOSSIER\\Stop_BIP",
+ "GUID": "{EADC1A47-B16B-42B7-9E29-7BCD157F1C27}",
+ "MaxAttenuation": "0",
+ "DurationType": "OneShot",
+ "DurationMin": "0",
+ "DurationMax": "0"
+ }
+ ]
+ },
+ {
+ "Id": "1355168291",
+ "Type": "User",
+ "GUID": "{701ECBBD-9C7B-4030-8CDB-749EE5D1C7B9}",
+ "Language": "SFX",
+ "Hash": "{28F53A09-3ECF-7CC0-9EEE-ABA684220327}",
+ "ObjectPath": "Init",
+ "ShortName": "Init",
+ "Path": "Init.bnk",
+ "Plugins": {
+ "AudioDevices": [
+ {
+ "Id": "2317455096",
+ "Name": "No_Output",
+ "ObjectPath": "\\Audio Devices\\Default Work Unit\\No_Output",
+ "GUID": "{15DF71CC-DC43-486E-A93A-F9E834612849}",
+ "LibName": "No Output",
+ "LibId": "11862023"
+ },
+ {
+ "Id": "3859886410",
+ "Name": "System",
+ "ObjectPath": "\\Audio Devices\\Default Work Unit\\System",
+ "GUID": "{886A7822-C338-4EF8-9149-7E0D2A477BD3}",
+ "LibName": "System",
+ "LibId": "11403271"
+ }
+ ]
+ },
+ "Busses": [
+ {
+ "Id": "3803692087",
+ "Name": "Master Audio Bus",
+ "ObjectPath": "\\Master-Mixer Hierarchy\\Default Work Unit\\Master Audio Bus",
+ "GUID": "{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"
+ }
+ ]
+ },
+ {
+ "Id": "1540204757",
+ "Type": "User",
+ "GUID": "{E9ADB960-EADA-4D0F-AE36-552B2ADE74E5}",
+ "Language": "SFX",
+ "Hash": "{DF582C47-5848-C523-62B2-3E38507AD5D5}",
+ "ObjectPath": "\\SoundBanks\\Default Work Unit\\Pawn_SB",
+ "ShortName": "Pawn_SB",
+ "Path": "Pawn_SB.bnk"
+ },
+ {
+ "Id": "3026099327",
+ "Type": "Event",
+ "GUID": "{F1674A16-CA17-4824-A837-3F1D32936CE8}",
+ "Language": "SFX",
+ "Hash": "{7B1EBB1D-F8C0-4905-DF6E-CF18094DAC1E}",
+ "ObjectPath": "Play_BIP",
+ "ShortName": "Play_BIP",
+ "Path": "Event/30/Play_BIP.bnk",
+ "Plugins": {
+ "Custom": [
+ {
+ "Id": "695958184",
+ "Name": "Synth One",
+ "ObjectPath": "\\Actor-Mixer Hierarchy\\Default Work Unit\\dossier\\test\\BIP\\Synth One",
+ "GUID": "{8E2B503A-4155-45E3-B81C-F7F6BB899CA6}",
+ "LibName": "Wwise Synth One",
+ "LibId": "9699330"
+ }
+ ]
+ },
+ "Events": [
+ {
+ "Id": "3026099327",
+ "Name": "Play_BIP",
+ "ObjectPath": "\\Events\\Default Work Unit\\DOSSIER\\Play_BIP",
+ "GUID": "{F1674A16-CA17-4824-A837-3F1D32936CE8}",
+ "DurationType": "Unknown",
+ "PluginRefs": {
+ "Custom": [
+ {
+ "Id": "695958184"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "Id": "3157003241",
+ "Type": "User",
+ "GUID": "{3E02EDE0-14E2-48C1-922B-7B89EAF86F5B}",
+ "Language": "SFX",
+ "Hash": "{8C6995F3-59C1-72D6-CF1A-7B0F8850DF48}",
+ "ObjectPath": "\\SoundBanks\\Default Work Unit\\TEST",
+ "ShortName": "TEST",
+ "Path": "TEST.bnk"
+ }
+ ],
+ "FileHash": "{42486F5F-2FA8-0CE1-C029-5CAC0556E0D5}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.xml
new file mode 100644
index 0000000..69dd630
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/SoundbanksInfo.xml
@@ -0,0 +1,65 @@
+
+
+
+ ../../../../../Pawn_Wwise
+ ../../../../../Pawn_Wwise/.cache/Windows
+ .
+
+ ../../../../../Pawn_Wwise/GeneratedSoundBanks/Windows
+
+
+
+
+ Stop_BIP
+ Stop_BIP
+ Event/10/Stop_BIP.bnk
+
+
+
+
+
+ Init
+ Init
+ Init.bnk
+
+
+
+
+
+
+
+
+
+
+
+ \SoundBanks\Default Work Unit\Pawn_SB
+ Pawn_SB
+ Pawn_SB.bnk
+
+
+ Play_BIP
+ Play_BIP
+ Event/30/Play_BIP.bnk
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ \SoundBanks\Default Work Unit\TEST
+ TEST
+ TEST.bnk
+
+
+ {058AD0CA-1DE0-E9F6-08B8-3A0252BB92AC}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.bnk b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.bnk
new file mode 100644
index 0000000000000000000000000000000000000000..a4495a3e1c8d6d90067c3cfea2d4c845ef0279ac
GIT binary patch
literal 48
ycmZ?r_HfZ)U|^UC#4ovZ_SnT1hzkJO$HjpJ5PY7R*>f=RTG4r_YW|LZ`yK!n(+&^-
literal 0
HcmV?d00001
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.json b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.json
new file mode 100644
index 0000000..fb80450
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.json
@@ -0,0 +1,21 @@
+{
+ "SoundBanksInfo": {
+ "Platform": "Windows",
+ "BasePlatform": "Windows",
+ "SchemaVersion": "16",
+ "SoundBankVersion": "145",
+ "SoundBanks": [
+ {
+ "Id": "3157003241",
+ "Type": "User",
+ "GUID": "{3E02EDE0-14E2-48C1-922B-7B89EAF86F5B}",
+ "Language": "SFX",
+ "Hash": "{8C6995F3-59C1-72D6-CF1A-7B0F8850DF48}",
+ "ObjectPath": "\\SoundBanks\\Default Work Unit\\TEST",
+ "ShortName": "TEST",
+ "Path": "TEST.bnk"
+ }
+ ],
+ "FileHash": "{5EA540BB-7786-1033-A790-810C1859DA33}"
+ }
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.txt b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.txt
new file mode 100644
index 0000000..e69de29
diff --git a/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.xml b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.xml
new file mode 100644
index 0000000..3d027c3
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/GeneratedSoundBanks/Windows/TEST.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ \SoundBanks\Default Work Unit\TEST
+ TEST
+ TEST.bnk
+
+
+ {72213C34-6E35-7AB0-D8EF-1EEF69320458}
+
diff --git a/Pawn_Unreal/Content/WwiseAudio/InitBank.uasset b/Pawn_Unreal/Content/WwiseAudio/InitBank.uasset
new file mode 100644
index 0000000..95bd650
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/InitBank.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0754850e70e5ab6bdad24a869b1f9c193fad2c6353076836cd749f2bb15104b6
+size 1315
diff --git a/Pawn_Unreal/Content/WwiseAudio/Play_BIP.uasset b/Pawn_Unreal/Content/WwiseAudio/Play_BIP.uasset
new file mode 100644
index 0000000..e1a01ab
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/Play_BIP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7502aca25c782e5f49a4fa55beda8305d3a93548be3642192fd70ce1c07ae60c
+size 1679
diff --git a/Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset b/Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset
new file mode 100644
index 0000000..c89e68d
--- /dev/null
+++ b/Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf998719b1b29adb93821771f5a4fb2c4e2f78f02b9867d5a9469ee5fb80598a
+size 1678
diff --git a/Pawn_Unreal/Plugins/Wwise/Config/BaseWwise.ini b/Pawn_Unreal/Plugins/Wwise/Config/BaseWwise.ini
new file mode 100644
index 0000000..e9bdd84
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Config/BaseWwise.ini
@@ -0,0 +1,11 @@
+[CoreRedirects]
++StructRedirects=(OldName="AkPoly",NewName="AkSurfacePoly")
++StructRedirects=(OldName="AkEdgeInfo ",NewName="AkSurfaceEdgeInfo")
+
++StructRedirects=(OldName="WwiseAssetInfo",NewName="WwiseObjectInfo")
++PropertyRedirects=(OldName="WwiseObjectInfo.AssetGuid",NewName="WwiseObjectInfo.WwiseGuid")
++PropertyRedirects=(OldName="WwiseObjectInfo.AssetName",NewName="WwiseObjectInfo.WwiseName")
++PropertyRedirects=(OldName="WwiseObjectInfo.AssetShortId",NewName="WwiseObjectInfo.WwiseShortId")
+
++PropertyRedirects=(OldName="AkMainOutputSettings.AudioDeviceShareset",NewName="AkMainOutputSettings.AudioDeviceShareSet")
++PropertyRedirects=(OldName="AkEffectShareSet.SharesetInfo",NewName="AkEffectShareSet.ShareSetInfo")
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Config/DefaultWwise.ini b/Pawn_Unreal/Plugins/Wwise/Config/DefaultWwise.ini
new file mode 100644
index 0000000..e9bdd84
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Config/DefaultWwise.ini
@@ -0,0 +1,11 @@
+[CoreRedirects]
++StructRedirects=(OldName="AkPoly",NewName="AkSurfacePoly")
++StructRedirects=(OldName="AkEdgeInfo ",NewName="AkSurfaceEdgeInfo")
+
++StructRedirects=(OldName="WwiseAssetInfo",NewName="WwiseObjectInfo")
++PropertyRedirects=(OldName="WwiseObjectInfo.AssetGuid",NewName="WwiseObjectInfo.WwiseGuid")
++PropertyRedirects=(OldName="WwiseObjectInfo.AssetName",NewName="WwiseObjectInfo.WwiseName")
++PropertyRedirects=(OldName="WwiseObjectInfo.AssetShortId",NewName="WwiseObjectInfo.WwiseShortId")
+
++PropertyRedirects=(OldName="AkMainOutputSettings.AudioDeviceShareset",NewName="AkMainOutputSettings.AudioDeviceShareSet")
++PropertyRedirects=(OldName="AkEffectShareSet.SharesetInfo",NewName="AkEffectShareSet.ShareSetInfo")
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/AkMacroLibrary.uasset b/Pawn_Unreal/Plugins/Wwise/Content/AkMacroLibrary.uasset
new file mode 100644
index 0000000..c550ac1
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/AkMacroLibrary.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46d3cbbb9a6dd5eec497b1eaf7540a93a824e7976d4fcf444773ea6455dca19c
+size 125688
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset b/Pawn_Unreal/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset
new file mode 100644
index 0000000..58d0d8b
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46cd5ef3baffdbb3d5fd86049192f72312e2d9b60ff2190d68a4011b325f2342
+size 88976
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/DefaultForegroundTextMaterial.uasset b/Pawn_Unreal/Plugins/Wwise/Content/DefaultForegroundTextMaterial.uasset
new file mode 100644
index 0000000..e7d9fde
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/DefaultForegroundTextMaterial.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:45417a8050d65843445c8a7c920125b811cf35592ea4c1f7ceb3cf91b6cc8897
+size 89347
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/S_AkComponent.uasset b/Pawn_Unreal/Plugins/Wwise/Content/S_AkComponent.uasset
new file mode 100644
index 0000000..4c09ea2
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/S_AkComponent.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:00f7bca9c135563dd783ab06caaa1d9bbc3da802ae02a1ad57b373e0ae24f729
+size 39524
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/S_AkSpotReflector.uasset b/Pawn_Unreal/Plugins/Wwise/Content/S_AkSpotReflector.uasset
new file mode 100644
index 0000000..2383691
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/S_AkSpotReflector.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba3e7157c86c7082762b59a590c419f1b06c24a2baef7dd667f9678041ab1ba6
+size 40033
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/Titlebar_WwiseAppIcon.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/Titlebar_WwiseAppIcon.uasset
new file mode 100644
index 0000000..07e8ffc
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/Titlebar_WwiseAppIcon.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e663a8d78ffce58bacaa3f0cd0782885c7f8313421c5aa23b951fbfd3ece3f3
+size 6520
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/acoutex_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/acoutex_nor.uasset
new file mode 100644
index 0000000..6096dcc
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/acoutex_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1405278ce2bd11981232dcc1bf562ac6fd491851f490311247b38de3c05c1a63
+size 3931
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/actor_mixer_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/actor_mixer_nor.uasset
new file mode 100644
index 0000000..e23494f
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/actor_mixer_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa5d3848fc692d56bd994fbf6c5bb58b5e59d46ec6fd8173777083ad8d4d440b
+size 3912
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/auxbus_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/auxbus_nor.uasset
new file mode 100644
index 0000000..9818324
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/auxbus_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fbfdfa807435d29538c295ffa2099b99c35453144ccb4d58d1505c8bde602cbe
+size 4065
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/bus_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/bus_nor.uasset
new file mode 100644
index 0000000..cc431af
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/bus_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7a5bd5c3682cfaf9f2c2a300716cf7713c07a39deef53a22dc0495e595a7e16e
+size 3769
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_random_sequence_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_random_sequence_nor.uasset
new file mode 100644
index 0000000..6665c40
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_random_sequence_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:925ea9cd08514e7ecff6a0a99d88ef245dc55c99071a43d6a25e9014b7f6a8c6
+size 3993
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_switch_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_switch_nor.uasset
new file mode 100644
index 0000000..406f94c
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_switch_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c53fd0077cee7d1ed6d473e632331bde9eada1ad526b9914b72be4d6d289488
+size 4119
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/effect_shareset_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/effect_shareset_nor.uasset
new file mode 100644
index 0000000..650e1f5
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/effect_shareset_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:20eb326bdfd38a20320de207f631d2cac7484dbe26ff1dd49467a947aff49fd2
+size 4390
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/event_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/event_nor.uasset
new file mode 100644
index 0000000..1cdc039
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/event_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:116b907012897aaffeb3c0711d13680d519a82f6e86501700dbc5a4cb183cdd0
+size 3907
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/folder_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/folder_nor.uasset
new file mode 100644
index 0000000..c3b2cbf
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/folder_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62a893e7eed1cc2eda60905b9ce3f3ba85fa947ac508ad08f1702e87cff1e7ea
+size 3789
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/gameparameter_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/gameparameter_nor.uasset
new file mode 100644
index 0000000..8f502e2
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/gameparameter_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a72255c94e6dc8a6dead4609dd3f56f75e1c9cbe8cc98bc6d0060391a04208df
+size 4295
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/layer_container_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/layer_container_nor.uasset
new file mode 100644
index 0000000..fa99c83
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/layer_container_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:13f81d2b43b0804489e74f9794b739f42e8e1e4131b6cfcf720aba02f5885c56
+size 4388
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/motion_bus_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/motion_bus_nor.uasset
new file mode 100644
index 0000000..5b2f2c0
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/motion_bus_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b12055d44e4f9aab78be3ad0b5db04b5ef8c33f64af54b51c037f6ff0a5e485
+size 4460
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/physical_folder_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/physical_folder_nor.uasset
new file mode 100644
index 0000000..92c40cf
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/physical_folder_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2cf91ecb2f5b59b3db9114b96d88344f04f6b8cdf61a791a72c70bceead7cb38
+size 3732
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/sound_fx_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/sound_fx_nor.uasset
new file mode 100644
index 0000000..a656b1a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/sound_fx_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14068072b462abc001c1452f04cd962497a28becc68d76dab28c3c2c0851b55e
+size 4891
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/state_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/state_nor.uasset
new file mode 100644
index 0000000..2b4711e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/state_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ed4e3fcc78d36b7d3acedd3374623ddeeaa4f10b2f6c40ee59fd9da988b345f
+size 4421
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/stategroup_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/stategroup_nor.uasset
new file mode 100644
index 0000000..56a86b9
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/stategroup_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ef1040eb5c00ddfc083e402f952dd298ed386c85fc91a4a14a637aace7c106d
+size 4269
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switch_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switch_nor.uasset
new file mode 100644
index 0000000..578814e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switch_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cf1e59cd8419b02b6e94854b171aef7cbfd0399b267f6d6398a5a7c05fa3b564
+size 3829
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switchgroup_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switchgroup_nor.uasset
new file mode 100644
index 0000000..c55cb9b
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switchgroup_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98d67b58ddac762c26ea667b515c253dfba108bcbc7ff294c6d41745dd94709d
+size 3919
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/trigger_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/trigger_nor.uasset
new file mode 100644
index 0000000..85fd930
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/trigger_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:405497dcfe2411744cdbc4bc0c5661217b93a3ad7c71648971ac10e5361099d0
+size 3993
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/workunit_nor.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/workunit_nor.uasset
new file mode 100644
index 0000000..b2efb1c
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/workunit_nor.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4dc1d1cc1848b1f10fe0af35ec683fe74bedba6ce3799823d89294d5e80201c7
+size 4435
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wproj.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wproj.uasset
new file mode 100644
index 0000000..2e01cf8
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wproj.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c7b69323d5f042a66dd478054fdc0a6165db3a8631e0967e6ba7232893ff7e5
+size 4796
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_16.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_16.uasset
new file mode 100644
index 0000000..1b9823a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_16.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c79ed942262d4490f3b21d7ae867bf86dba6ae54683784abba4d1e8618e13aa1
+size 3961
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_512.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_512.uasset
new file mode 100644
index 0000000..c7f6931
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_512.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9751b0d2b0520a108ebb07ebb3e27509bb108a47850be51443b9d7b09f70e6b
+size 64737
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_logo_32.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_logo_32.uasset
new file mode 100644
index 0000000..a54a073
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_logo_32.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:005d0657189956b4a709a1882edfaffb58be3c7a38982c8cf1481e6590b5aff0
+size 6482
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal.uasset
new file mode 100644
index 0000000..fefdba9
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9d93971b9b71396c86a36cbefc42873f5b77bbe343be4e5be8aa76005b6904e2
+size 35783
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal_Explorer.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal_Explorer.uasset
new file mode 100644
index 0000000..6d6fa9a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal_Explorer.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:55761259beb1ea79c2f29ff078abc67c7f74aeb29d52b97bc8255a10b1e2f867
+size 3711
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume.uasset
new file mode 100644
index 0000000..ffb2939
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:09acd00f1c05b3878b169c7a3f7771e931786dec911c2fcbbdc8058182275f14
+size 44050
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume_Explorer.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume_Explorer.uasset
new file mode 100644
index 0000000..98897e9
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume_Explorer.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5fc02c61b6d3ce1fd27da54bdb212633052f61cb484769b30751318fd925077
+size 4115
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume.uasset
new file mode 100644
index 0000000..788341e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:34090948bb8e3ca6da7d44c07dc060b7cca9579f31ef61faf5ed0d8016c8d7a7
+size 55918
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume_Explorer.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume_Explorer.uasset
new file mode 100644
index 0000000..234f6f9
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume_Explorer.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6b8a9aa71416ba996dd8988339527660e31a412884d074e728bedee143659614
+size 3951
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAcousticTexture.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAcousticTexture.uasset
new file mode 100644
index 0000000..877b71a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAcousticTexture.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17a484c295dabb87dd9faa12cbd8a8bcc38f4234ff1a8677936088ad77ed01ec
+size 14582
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioBank.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioBank.uasset
new file mode 100644
index 0000000..7a7786f
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioBank.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc9f1c75dbf713cb196ffbc5ea60bd55b69ed9678b5e75fba2cac59ed4ee13bb
+size 42296
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioEvent.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioEvent.uasset
new file mode 100644
index 0000000..676545c
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioEvent.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae702db314998f8f90ccee4d398bf5c321538163b349930b841940ccdc896797
+size 14679
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset
new file mode 100644
index 0000000..f42b998
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35db22d30ae3c694b918a2afed29162a7ca311ace9099c107bd3eccb48d6651a
+size 15077
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkEffectShareSet.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkEffectShareSet.uasset
new file mode 100644
index 0000000..fc6ad8e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkEffectShareSet.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:822209dcf8821603919011db59a8d1878dc66eb3d10381c589ffc8e4a6f55469
+size 25368
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkExternalMediaAsset.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkExternalMediaAsset.uasset
new file mode 100644
index 0000000..5b3b672
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkExternalMediaAsset.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:434f309d470a6346da8f957e1fa68e201f0afc52e348d8b67e5ada72ef4a0090
+size 27459
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkLocalizedMediaAsset.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkLocalizedMediaAsset.uasset
new file mode 100644
index 0000000..b662682
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkLocalizedMediaAsset.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df06cf4845990edaa69fc312ddd45885a347e2e646aea81b0a498e0130cf628f
+size 39608
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkMediaAsset.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkMediaAsset.uasset
new file mode 100644
index 0000000..1b26712
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkMediaAsset.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5803ee3f09a42c4dfa08ec617a1f2974a75a0a455b371a536bc715dcc8f0f0f1
+size 15243
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset
new file mode 100644
index 0000000..dd9c140
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dfbc6626da1e61061714e90caab12ba47854706ecb969e6d9d88a2692da2eb1a
+size 20999
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkStateValue.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkStateValue.uasset
new file mode 100644
index 0000000..c0713a0
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkStateValue.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69d58d2eb99b5c7c14eea452884bfb6e78c97f5e137459c664d7ab9cc63779f5
+size 44436
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkSwitchValue.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkSwitchValue.uasset
new file mode 100644
index 0000000..f8df40f
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkSwitchValue.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a9a1c3a5179eaf1cd052723cde91ba5b768a039c1b2eb3a32290cbccefca8780
+size 18289
diff --git a/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkTrigger.uasset b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkTrigger.uasset
new file mode 100644
index 0000000..ce7dceb
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkTrigger.uasset
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:276066e82586e730b0522f167567b021f003179e4f42e00bb4188d0ee4dd7e5f
+size 14862
diff --git a/Pawn_Unreal/Plugins/Wwise/LauncherInfo.json b/Pawn_Unreal/Plugins/Wwise/LauncherInfo.json
new file mode 100644
index 0000000..ee0c60c
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/LauncherInfo.json
@@ -0,0 +1,52 @@
+{
+ "originalSdkFolder": "E:\\logiciel\\Audiokinetic\\SDK",
+ "currentVersion": {
+ "nickname": "",
+ "build": 2714,
+ "major": 1,
+ "minor": 5,
+ "year": 2022
+ },
+ "installedBundleGroups": [
+ {
+ "id": "Packages",
+ "valueId": "Unreal"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealSwitch"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealStadia"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealPS4"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealPS5"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealXboxSeriesX"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealXboxOne"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealXboxOneGC"
+ },
+ {
+ "id": "Packages",
+ "valueId": "UnrealWinGC"
+ },
+ {
+ "id": "DeploymentPlatforms",
+ "valueId": "UE52"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png b/Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png
new file mode 100644
index 0000000..bdd0e17
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2013608c596a2b8ada0ae8513010028b9dd672a9f4b54ff00ac427c3037554d5
+size 8990
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/AkAudio.Build.cs b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/AkAudio.Build.cs
new file mode 100644
index 0000000..01a189a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/AkAudio.Build.cs
@@ -0,0 +1,123 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+using UnrealBuildTool;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Reflection;
+
+public class AkAudio : ModuleRules
+{
+ public AkAudio(ReadOnlyTargetRules Target) : base(Target)
+ {
+ // If packaging as an Engine plugin, the UBT expects to already have a precompiled plugin available
+ // This can be set to true so long as plugin was already precompiled
+ bUsePrecompiled = false;
+ bPrecompile = false;
+
+ PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
+ bAllowConfidentialPlatformDefines = true;
+
+ PrivateIncludePathModuleNames.AddRange(
+ new string[]
+ {
+ "Settings",
+ "UMG",
+ "TargetPlatform"
+ }
+ );
+
+ PublicDependencyModuleNames.AddRange(
+ new string[]
+ {
+ "UMG",
+#if !UE_5_1_OR_LATER
+ "APEX",
+ "PhysX",
+#endif
+ "WwiseConcurrency",
+ "WwiseResourceLoader",
+ }
+ );
+
+ PrivateDependencyModuleNames.AddRange(
+ new string[]
+ {
+ "Core",
+ "CoreUObject",
+ "Engine",
+
+ "AudioMixer",
+ "Chaos",
+ "InputCore",
+ "Json",
+ "MovieScene",
+ "MovieSceneTracks",
+ "NetworkReplayStreaming",
+ "PhysicsCore",
+ "Projects",
+ "Slate",
+ "SlateCore",
+ "XmlParser",
+
+ "WwiseFileHandler",
+ "WwiseSoundEngine"
+ }
+ );
+
+ if (Target.bBuildEditor)
+ {
+ PrivateDependencyModuleNames.AddRange(
+ new string[]
+ {
+ "DesktopPlatform",
+#if UE_5_0_OR_LATER
+ "DeveloperToolSettings",
+#endif
+ "EditorStyle",
+
+ "GeometryMode",
+ "RenderCore",
+ "SharedSettingsWidgets",
+ "SourceControl",
+ "TargetPlatform",
+ "UnrealEd"
+ }
+ );
+ }
+
+ if (Target.bBuildWithEditorOnlyData)
+ {
+ PublicDependencyModuleNames.AddRange(
+ new String[]
+ {
+ "WwiseProjectDatabase"
+ }
+ );
+ PrivateDependencyModuleNames.AddRange(
+ new string[]
+ {
+ "WwiseResourceCooker"
+ }
+ );
+ }
+
+ PrivateIncludePaths.Add("AkAudio/Private");
+ PrivateIncludePaths.Add("AkAudio/Classes/GTE");
+ }
+}
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
new file mode 100644
index 0000000..421d04e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticPortal.h
@@ -0,0 +1,269 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Components/TextRenderComponent.h"
+#include "GameFramework/Volume.h"
+#include "ObstructionAndOcclusionService/AkPortalObstructionAndOcclusionService.h"
+#include "AkGameplayTypes.h"
+#if WITH_EDITOR
+#include "AkSettings.h"
+#endif
+#include "AkAcousticPortal.generated.h"
+
+class UAkRoomComponent;
+class UAkLateReverbComponent;
+
+UCLASS(ClassGroup = Audiokinetic, hidecategories = (Advanced, Attachment, Volume), BlueprintType, meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkPortalComponent : public USceneComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkPortalComponent(const class FObjectInitializer& ObjectInitializer);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkPortalComponent")
+ void OpenPortal();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkPortalComponent")
+ void ClosePortal();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkPortalComponent")
+ AkAcousticPortalState GetCurrentState() const;
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkPortalComponent")
+ UPrimitiveComponent* GetPrimitiveParent() const;
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkPortalComponent")
+ bool PortalPlacementValid() const { return GetFrontRoom() != GetBackRoom(); }
+
+ /** If true, the room connections for this portal can change during runtime when this portal moves. For worlds containing many rooms, this can be expensive. Note that this portal's room connections may still change, even when bDynamic = false, when dynamic rooms are moved (i.e. when rooms move who have bDynamic = true). */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkPortalComponent", meta = (DisplayName = "Is Dynamic"))
+ bool bDynamic = false;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "AkPortalComponent")
+ AkAcousticPortalState InitialState = AkAcousticPortalState::Open;
+
+ /** Time interval between obstruction checks (direct line of sight between listener and portal opening). Set to 0 to disable obstruction checks. We recommend disabling it if you want to use full Spatial Audio diffraction. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkPortalComponent|Obstruction")
+ float ObstructionRefreshInterval = .0f;
+
+ /** Collision channel for obstruction checks (between listener and portal opening). */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkPortalComponent|Obstruction")
+ TEnumAsByte ObstructionCollisionChannel = ECollisionChannel::ECC_Visibility;
+
+ void ResetPortalState();
+
+ FVector GetExtent() const;
+ AkRoomID GetFrontRoom() const;
+ AkRoomID GetBackRoom() const;
+ AkPortalID GetPortalID() const { return AkPortalID(this); }
+
+ /** Update the room connections for the portal, given the portals current transform.
+ Return true if the room connections have changed.
+ */
+ bool UpdateConnectedRooms();
+
+ const UAkRoomComponent* GetFrontRoomComponent() const { return FrontRoom; }
+ const UAkRoomComponent* GetBackRoomComponent() const { return BackRoom; }
+
+ virtual void BeginPlay() override;
+#if WITH_EDITOR
+ virtual void BeginDestroy() override;
+ virtual void InitializeComponent() override;
+ virtual void OnComponentCreated() override;
+ virtual void PostLoad() override;
+ virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
+ void UpdateTextRotations() const;
+#endif // WITH_EDITOR
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) override;
+ virtual void OnRegister() override;
+ virtual void OnUnregister() override;
+ virtual void OnUpdateTransform(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) override;
+ virtual bool MoveComponentImpl(
+ const FVector & Delta,
+ const FQuat & NewRotation,
+ bool bSweep,
+ FHitResult * Hit,
+ EMoveComponentFlags MoveFlags,
+ ETeleportType Teleport) override;
+
+private:
+ class UPrimitiveComponent* Parent;
+
+ void InitializeParent();
+ void SetSpatialAudioPortal();
+
+ template
+ void FindConnectedComponents(FAkEnvironmentIndex& RoomQuery, tComponent*& out_pFront, tComponent*& out_pBack);
+
+ AkAcousticPortalState PortalState;
+
+#if WITH_EDITOR
+ static const float RoomsRefreshIntervalEditor;
+#endif
+ static const float RoomsRefreshIntervalGame;
+ static const float RoomsRefreshDistanceThreshold;
+ static const float RoomsRefreshMinRotationThreshold_Degrees;
+ float RoomsRefreshIntervalSeconds = 0.5f;
+ float LastRoomsUpdate = 0.0f;
+ FVector PreviousLocation;
+ FRotator PreviousRotation;
+
+ bool PortalNeedUpdated = false;
+ UAkRoomComponent* FrontRoom;
+ UAkRoomComponent* BackRoom;
+
+ AkPortalObstructionAndOcclusionService ObstructionService;
+
+#if WITH_EDITOR
+ void HandleObjectsReplaced(const TMap& ReplacementMap);
+ class UDrawPortalComponent* DrawPortalComponent = nullptr;
+ void RegisterVisEnabledCallback();
+ void InitializeDrawComponent();
+ void DestroyDrawComponent();
+ FDelegateHandle ShowPortalsChangedHandle;
+
+ bool AreTextVisualizersInitialized() const;
+ void InitTextVisualizers();
+ void DestroyTextVisualizers();
+ void UpdateRoomNames();
+ void UpdateTextVisibility();
+ // Updates the location, rotation and visibility of the text visualizers
+ void UpdateTextLocRotVis();
+ bool bWasSelected = false;
+#endif
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(SkipSerialization, NonTransactional)
+ mutable UTextRenderComponent* FrontRoomText = nullptr;
+
+ UPROPERTY(SkipSerialization, NonTransactional)
+ mutable UTextRenderComponent* BackRoomText = nullptr;
+#endif
+};
+
+UCLASS(ClassGroup = Audiokinetic, hidecategories = (Advanced, Attachment, Volume), BlueprintType)
+class AKAUDIO_API AAkAcousticPortal : public AVolume
+{
+ GENERATED_BODY()
+
+public:
+ AAkAcousticPortal(const class FObjectInitializer& ObjectInitializer);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkAcousticPortal")
+ void OpenPortal();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkAcousticPortal")
+ void ClosePortal();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkAcousticPortal")
+ AkAcousticPortalState GetCurrentState() const;
+
+ AkRoomID GetFrontRoom() const;
+ AkRoomID GetBackRoom() const;
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Portal", meta = (ShowOnlyInnerProperties))
+ UAkPortalComponent* Portal = nullptr;
+
+ virtual void PostRegisterAllComponents() override;
+ virtual void PostLoad() override;
+ virtual void Serialize(FArchive& Ar) override;
+
+#if WITH_EDITOR
+ void FitRaycast();
+ void FitPortal();
+ virtual void PostEditMove(bool bFinished) override;
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+
+ bool GetBestHits(FVector& Start0, FVector& End0, FVector& Start1, FVector& End1)
+ {
+ if (BestFitValid)
+ {
+ Start0 = BestFit[0];
+ End0 = BestFit[1];
+ Start1 = BestFit[2];
+ End1 = BestFit[3];
+
+ return true;
+ }
+ return false;
+ }
+ float GetDetectionRadius() const { return DetectionRadius; }
+ bool GetFitToGeometry() const { return FitToGeometry; }
+ bool GetIsDragging() const { return IsDragging; }
+
+ virtual FName GetCustomIconName() const override
+ {
+ static const FName IconName("ClassIcon.AkAcousticPortal");
+ return IconName;
+ }
+#endif
+
+protected:
+ static const int kNumRaycasts = 128;
+
+#if WITH_EDITORONLY_DATA
+ void ClearBestFit();
+
+ /**
+ Automatically fit the Ak Acoustic Portal to surrounding geometry. The fitting operation is performed after enabling this property, or after moving the actor to a new location.
+ To find portals in surrounding geometry, rays emanating spherically outwards are cast from the origin of the actor in an attempt to detect sets of parallel surfaces.
+ The "best" detected parallel surfaces are indicated with yellow outline when dragging the actor to a new location.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry")
+ bool FitToGeometry = false;
+
+ /**
+ Sets the collision channel for the ray traces performed to fit the portal to the surrounding geometry. When set to 'Use Integration Settings Default', the value will be taken from the DefaultFitToGeometryCollisionChannel in the Wwise Integration Settings.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry")
+ TEnumAsByte CollisionChannel = { EAkCollisionChannel::EAKCC_UseIntegrationSettingsDefault };
+
+#if WITH_EDITOR
+ /**
+ Converts between EAkCollisionChannel and ECollisionChannel. Returns Wwise Integration Settings default if CollisionChannel == UseIntegrationSettingsDefault. Otherwise, casts CollisionChannel to ECollisionChannel.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Fit to Geometry")
+ ECollisionChannel GetCollisionChannel();
+#endif
+
+ /**
+ Limits the effective portal opening size that can be detected when fitting the portal to surrounding geometry.
+ Increase this value to find larger openings; decrease it if large portals are erroneously detected, for example ones that span whole rooms.
+ The slider range can be expanded by entering a text value into this field.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry", meta = (ClampMin = 1.0f, ClampMax = 100000.0f, UIMin = 100.0f, UIMax = 5000.0f))
+ float DetectionRadius = 500.0f;
+
+ FVector SavedRaycastOrigin;
+ bool bUseSavedRaycastOrigin = false;
+ FVector BestFit[4];
+ bool BestFitValid = false;
+ bool IsDragging = false;
+#endif
+
+private:
+ /** As of Wwise 2020.1, the InitialState is contained in the AkPortalComponent */
+ UPROPERTY()
+ AkAcousticPortalState InitialState;
+
+ UPROPERTY(Transient)
+ bool bRequiresStateMigration = false;
+ bool bRequiresTransformMigration = false;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTexture.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTexture.h
new file mode 100644
index 0000000..cce3ba8
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTexture.h
@@ -0,0 +1,57 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "Wwise/CookedData/WwiseAcousticTextureCookedData.h"
+#if WITH_EDITORONLY_DATA
+#include "Wwise/Info/WwiseObjectInfo.h"
+#endif
+#include "AkAcousticTexture.generated.h"
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkAcousticTexture : public UAkAudioType
+{
+ GENERATED_BODY()
+
+public :
+ UPROPERTY(Transient, VisibleAnywhere, Category = "AkTexture")
+ FWwiseAcousticTextureCookedData AcousticTextureCookedData;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category="AkTexture")
+ FLinearColor EditColor = FLinearColor(EForceInit::ForceInitToZero);
+
+ UPROPERTY(EditAnywhere, Category = "AkTexture")
+ FWwiseObjectInfo AcousticTextureInfo;
+#endif
+
+public:
+ void Serialize(FArchive& Ar) override;
+ virtual AkUInt32 GetShortID() const override {return AcousticTextureCookedData.ShortId;}
+
+#if WITH_EDITORONLY_DATA
+ virtual void LoadData() override { GetAcousticTextureCookedData(); }
+ void GetAcousticTextureCookedData();
+
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &AcousticTextureInfo;}
+ virtual FWwiseObjectInfo GetInfo() const override{return AcousticTextureInfo;}
+ virtual bool ObjectIsInSoundBanks() override;
+ virtual void FillInfo() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTextureSetComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTextureSetComponent.h
new file mode 100644
index 0000000..7719736
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAcousticTextureSetComponent.h
@@ -0,0 +1,91 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "AkInclude.h"
+#include "AkSettings.h"
+#include "AkAcousticTexture.h"
+#include "Components/SceneComponent.h"
+#include "AkAcousticTextureSetComponent.generated.h"
+
+struct FAkReverbDescriptor;
+
+UCLASS(ClassGroup = Audiokinetic, abstract)
+class AKAUDIO_API UAkAcousticTextureSetComponent : public USceneComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkAcousticTextureSetComponent(const class FObjectInitializer& ObjectInitializer);
+
+ virtual void GetTexturesAndSurfaceAreas(TArray& textures, TArray& surfaceAreas) const { check(0 && "This function must be overidden"); }
+
+ void SetReverbDescriptor(FAkReverbDescriptor* reverbDescriptor);
+
+ virtual void OnRegister() override;
+ virtual void OnUnregister() override;
+ virtual void BeginPlay() override;
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
+
+ virtual AkGeometrySetID GetGeometrySetID() const { return AkGeometrySetID(this); }
+
+ virtual bool GetGeometryHasBeenSent() const { return GeometryHasBeenSent; }
+ virtual bool GetGeometryInstanceHasBeenSent() const { return GeometryInstanceHasBeenSent; }
+
+protected:
+ void RecalculateHFDamping();
+#if WITH_EDITOR
+ virtual void BeginDestroy() override;
+ virtual void HandleObjectsReplaced(const TMap& ReplacementMap);
+ void RegisterReverbRTPCChangedCallback();
+ FDelegateHandle RTPCChangedHandle;
+ virtual void RegisterAllTextureParamCallbacks() { check(0 && "This function must be overidden"); }
+ void RegisterTextureParamChangeCallback(FGuid textureID);
+ void UnregisterTextureParamChangeCallbacks();
+ /* Register param changed callbacks for any textures that have not been registered. Called when the AcousticPolys array is updated */
+ TMap TextureDelegateHandles;
+#endif
+
+ FAkReverbDescriptor* ReverbDescriptor = nullptr;
+ bool DampingEstimationNeedsUpdate = false;
+
+ virtual bool ShouldSendGeometry() const;
+ /* Add or update a geometry in Spatial Audio. It is necessary to create at least one geometry instance
+ * for each geometry that is to be used for diffraction and reflection simulation. See SendGeometryInstanceToWwise(). */
+ void SendGeometryToWwise(const AkGeometryParams& params);
+ /* Add or update an instance of the geometry. A geometry instance is a unique instance of a geometry set with a specified transform (position, rotation and scale) and room association.
+ * It is necessary to create at least one geometry instance for each geometry set that is to be used for diffraction and reflection simulation. */
+ void SendGeometryInstanceToWwise(const FRotator& rotation, const FVector& location, const FVector& scale, const AkRoomID roomID);
+ /* Remove a geometry and the corresponding instance from Wwise. */
+ void RemoveGeometryFromWwise();
+ /* Remove a geometry instance from Wwise. */
+ void RemoveGeometryInstanceFromWwise();
+
+private:
+#if WITH_EDITOR
+ virtual bool ContainsTexture(const FGuid& textureID)
+ {
+ check(0 && "This function must be overidden");
+ return false;
+ }
+#endif
+
+ float SecondsSinceDampingUpdate = 0.0f;
+
+ bool GeometryHasBeenSent = false;
+ bool GeometryInstanceHasBeenSent = false;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAmbientSound.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAmbientSound.h
new file mode 100644
index 0000000..7288e86
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAmbientSound.h
@@ -0,0 +1,111 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkAmbientSound.h:
+=============================================================================*/
+#pragma once
+
+#include "GameFramework/Actor.h"
+#include "AkAmbientSound.generated.h"
+
+/*------------------------------------------------------------------------------------
+ AAkAmbientSound
+------------------------------------------------------------------------------------*/
+UCLASS(config=Engine, hidecategories=Audio, AutoExpandCategories=AkAmbientSound, BlueprintType)
+class AKAUDIO_API AAkAmbientSound : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ AAkAmbientSound(const class FObjectInitializer& ObjectInitializer);
+
+ /** AkAudioEvent to play. Deprecated as UE4.7 integration: Use AkComponent->AkAudioEvent instead */
+ UPROPERTY()
+ class UAkAudioEvent * AkAudioEvent_DEPRECATED = nullptr;
+
+ /** AkComponent to handle playback */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=AkAmbientSound, meta=(ShowOnlyInnerProperties) )
+ class UAkComponent* AkComponent = nullptr;
+
+ /** Stop playback if the owner is destroyed */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkAmbientSound, SimpleDisplay)
+ bool StopWhenOwnerIsDestroyed = false;
+
+ /** Automatically post the associated AkAudioEvent on BeginPlay */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkAmbientSound, SimpleDisplay)
+ bool AutoPost = false;
+
+ /*
+ * Start an Ak ambient sound.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkAmbientSound")
+ void StartAmbientSound();
+
+ /*
+ * Stop an Ak ambient sound.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkAmbientSound")
+ void StopAmbientSound();
+
+
+#if CPP
+public:
+
+ /**
+ * Start the ambience playback
+ */
+ void StartPlaying();
+
+ /**
+ * Stop the ambience playback
+ */
+ void StopPlaying();
+
+ /**
+ * Is whether this ambient sound currently playing
+ *
+ * @return True if ambient sound is currently playing, false if not.
+ */
+ bool IsCurrentlyPlaying();
+
+
+protected:
+ /*------------------------------------------------------------------------------------
+ AActor interface.
+ ------------------------------------------------------------------------------------*/
+
+ virtual void BeginPlay() override;
+
+#if WITH_EDITOR
+ /**
+ * Check for errors
+ */
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+#endif
+
+ virtual void PostInitializeComponents() override;
+ virtual void PostLoad() override;
+
+#endif
+
+private:
+ /** used to update status of toggleable level placed ambient sounds on clients */
+ bool CurrentlyPlaying;
+
+ FCriticalSection PlayingCriticalSection;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioBank.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioBank.h
new file mode 100644
index 0000000..1b64add
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioBank.h
@@ -0,0 +1,36 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "AkAudioBank.generated.h"
+
+UCLASS()
+class AKAUDIO_API UAkAudioBank : public UAkAudioType
+{
+ GENERATED_BODY()
+
+#if WITH_EDITORONLY_DATA
+ virtual FWwiseObjectInfo* GetInfoMutable() override { return nullptr; }
+#endif
+
+public:
+ UPROPERTY(meta=(Deprecated))
+ bool AutoLoad_DEPRECATED = true;
+
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioEvent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioEvent.h
new file mode 100644
index 0000000..d397fe3
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioEvent.h
@@ -0,0 +1,397 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "AkGameplayTypes.h"
+#include "Wwise/CookedData/WwiseLocalizedEventCookedData.h"
+#include "Wwise/Loaded/WwiseLoadedEvent.h"
+
+#if WITH_EDITORONLY_DATA
+#include "Wwise/Info/WwiseEventInfo.h"
+#endif
+
+#include "AkAudioEvent.generated.h"
+
+class UAkGameObject;
+class UAkGroupValue;
+class UAkAuxBus;
+class UAkAudioBank;
+class UAkTrigger;
+
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkAudioEvent : public UAkAudioType
+{
+ GENERATED_BODY()
+
+ //
+ // Unreal properties
+ //
+public:
+ UPROPERTY(Transient, VisibleAnywhere, BlueprintReadOnly, Category = "AkAudioEvent")
+ float MaxAttenuationRadius = .0f;
+
+ /** Whether this event is infinite (looping) or finite (duration parameters are valid) */
+ UPROPERTY(Transient, VisibleAnywhere, BlueprintReadOnly, Category = "AkAudioEvent")
+ bool IsInfinite = false;
+
+ /** Minimum duration */
+ UPROPERTY(Transient, VisibleAnywhere, BlueprintReadOnly, Category = "AkAudioEvent")
+ float MinimumDuration = .0f;
+
+ /** Maximum duration */
+ UPROPERTY(Transient, VisibleAnywhere, BlueprintReadOnly, Category = "AkAudioEvent")
+ float MaximumDuration = .0f;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category = "AkAudioEvent")
+ FWwiseEventInfo EventInfo;
+#endif
+
+ UPROPERTY(Transient, VisibleAnywhere, Category = "AkAudioEvent")
+ FWwiseLocalizedEventCookedData EventCookedData;
+
+ UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Used for migration"))
+ UAkAudioBank* RequiredBank_DEPRECATED = nullptr;
+
+public:
+ /**
+ * @brief Posts the Wwise Event on the root component of the specified actor.
+ *
+ * @param Actor Actor on which to play the event. This actor gets followed automatically by the Event. If the Actor is left empty,
+ * the Event will be played as an Ambient sound.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param bStopWhenAttachedObjectDestroyed Specifies whether the sound should stop playing when the owner of the attach to component
+ * is destroyed. This parameter modifies the AkComponent itself, you can only have one behavior per actor's root component.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta=(AdvancedDisplay="1", AutoCreateRefTerm = "Delegate"))
+ int32 PostOnActor(const AActor* Actor,
+ const FOnAkPostEventCallback& Delegate,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) const int32 CallbackMask,
+ const bool bStopWhenAttachedObjectDestroyed);
+
+ /**
+ * @brief Posts the Wwise Event on the specified component.
+ *
+ * @param Component Component on which to play the event.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param bStopWhenAttachedObjectDestroyed Specifies whether the sound should stop playing when the owner of the attach to component
+ * is destroyed. This parameter modifies the AkComponent itself, you can only have one behavior per actor's root component.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent", meta=(AdvancedDisplay="1", AutoCreateRefTerm = "Delegate"))
+ int32 PostOnComponent(UAkComponent* Component,
+ const FOnAkPostEventCallback& Delegate,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) const int32 CallbackMask,
+ const bool bStopWhenAttachedObjectDestroyed);
+
+ /**
+ * @brief Posts the Wwise Event on the specified game object.
+ *
+ * @param GameObject Game object on which to play the event.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkGameObject", meta=(AdvancedDisplay="1", AutoCreateRefTerm = "Delegate"))
+ int32 PostOnGameObject(UAkGameObject* GameObject,
+ const FOnAkPostEventCallback& Delegate,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) const int32 CallbackMask);
+
+ /**
+ * @brief Posts the Wwise Event on the root component of the specified actor, and waits for the end of the event to continue execution.
+ *
+ * Additional calls made while an event is active on a particular actor's root component are ignored.
+ *
+ * @param Actor Actor on which to play the event. This actor gets followed automatically by the Event.
+ * @param bStopWhenAttachedObjectDestroyed Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
+ * This parameter modifies the AkComponent itself, you can only have one behavior per actor's root component.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (Latent, LatentInfo = "LatentActionInfo", AdvancedDisplay = "1", bStopWhenAttachedObjectDestroyed="false"))
+ int32 PostOnActorAndWait(const AActor* Actor,
+ const bool bStopWhenAttachedObjectDestroyed,
+ const FLatentActionInfo LatentActionInfo);
+
+ /**
+ * @brief Posts the Wwise Event on the specified component, and waits for the end of the event to continue execution.
+ *
+ * Additional calls made while an event is active on a particular component are ignored.
+ *
+ * @param Component component on which to play the event. This component gets followed automatically by the Event.
+ * @param bStopWhenAttachedObjectDestroyed Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
+ * This parameter modifies the AkComponent itself, you can only have one behavior per actor's root component.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent", meta = (Latent, LatentInfo = "LatentActionInfo", AdvancedDisplay = "1", bStopWhenAttachedObjectDestroyed="false"))
+ int32 PostOnComponentAndWait(UAkComponent* Component,
+ const bool bStopWhenAttachedObjectDestroyed,
+ const FLatentActionInfo LatentActionInfo);
+
+ /**
+ * @brief Posts the Wwise Event on the specified game object, and waits for the end of the event to continue execution.
+ *
+ * Additional calls made while an event is active on a particular game object are ignored.
+ *
+ * @param GameObject Game object on which to play the event. This game object gets followed automatically by the Event.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkGameObject", meta = (Latent, LatentInfo = "LatentActionInfo", AdvancedDisplay = "1", bStopWhenAttachedObjectDestroyed="false"))
+ int32 PostOnGameObjectAndWait(UAkGameObject* GameObject,
+ const FLatentActionInfo LatentActionInfo);
+
+ /**
+ * @brief Posts a Wwise Event at the specified location.
+ *
+ * This is a fire and forget sound, created on a temporary Wwise Game Object. Replication is also not handled at this point.
+ *
+ * @param Location Location from which to post the Wwise Event.
+ * @param Orientation Orientation of the event.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param WorldContextObject An object having the world we target as context.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", AdvancedDisplay = "2"))
+ int32 PostAtLocation(const FVector Location,
+ const FRotator Orientation,
+ const FOnAkPostEventCallback& Callback,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) const int32 CallbackMask,
+ const UObject* WorldContextObject);
+
+ /**
+ * @brief Executes action on the different playing IDs from this event that were previously posted on the
+ * Actor's root component.
+ *
+ * @param ActionType What action to do.
+ * @param Actor The actor that initially got some event posted.
+ * @param PlayingID Use the return value of a Post Event to act only on this specific instance of an event.
+ * Use 0 for all the posted operations from this event.
+ * @param TransitionDuration Transition duration in milliseconds.
+ * @param FadeCurve The interpolation curve of the transition.
+ * @return AKRESULT for the operation. AK_Success (0) if successful.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor", meta=(AdvancedDisplay = "2"))
+ int32 ExecuteAction(const AkActionOnEventType ActionType,
+ const AActor* Actor,
+ const int32 PlayingID = 0,
+ const int32 TransitionDuration = 0,
+ const EAkCurveInterpolation FadeCurve = EAkCurveInterpolation::Linear);
+
+public:
+ /**
+ * @brief Posts the Wwise Event on the root component of the specified actor.
+ *
+ * @param Actor Actor on which to play the event. This actor gets followed automatically by the Event. If the Actor is left empty,
+ * the Event will be played as an Ambient sound.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * This version is useful for Blueprint callbacks. This is mutually exclusive with AkCallback and LatentAction.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed,
+ * with the Cookie parameter to provide data. This is mutually exclusive with Delegate and LatentAction.
+ * @param Cookie Parameter provided for AkCallback to provide data.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param LatentAction Function called when the posted event is done playing for latent Blueprint operation.
+ * This is mutually exclusive with Delegate and Callback.
+ * @param bStopWhenAttachedObjectDestroyed Specifies whether the sound should stop playing when the owner of the attach
+ * to component is destroyed. This parameter modifies the AkComponent itself, you can only have one behavior per
+ * actor's root component.
+ * @param AudioContext Context in which the Event's sounds are played. Only GamePlayAudio sounds are affected by PIE pause/stop.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ AkPlayingID PostOnActor(const AActor* Actor,
+ const FOnAkPostEventCallback* Delegate,
+ AkCallbackFunc Callback,
+ void* Cookie,
+ const AkCallbackType CallbackMask,
+ FWaitEndOfEventAction* LatentAction,
+ const bool bStopWhenAttachedObjectDestroyed,
+ const EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio);
+
+ /**
+ * @brief Posts the Wwise Event on the specified component.
+ *
+ * @param Component Component on which to play the event.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * This version is useful for Blueprint callbacks. This is mutually exclusive with AkCallback and LatentAction.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed,
+ * with the Cookie parameter to provide data. This is mutually exclusive with Delegate and LatentAction.
+ * @param Cookie Parameter provided for AkCallback to provide data.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param LatentAction Function called when the posted event is done playing for latent Blueprint operation.
+ * This is mutually exclusive with Delegate and Callback.
+ * @param bStopWhenAttachedObjectDestroyed Specifies whether the sound should stop playing when the owner of the attach
+ * to component is destroyed. This parameter modifies the AkComponent itself, you can only have one behavior per
+ * actor's root component.
+ * @param AudioContext Context in which the Event's sounds are played. Only GamePlayAudio sounds are affected by PIE pause/stop.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ AkPlayingID PostOnComponent(UAkComponent* Component,
+ const FOnAkPostEventCallback* Delegate,
+ AkCallbackFunc Callback,
+ void* Cookie,
+ const AkCallbackType CallbackMask,
+ FWaitEndOfEventAction* LatentAction,
+ const bool bStopWhenAttachedObjectDestroyed,
+ const EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio);
+
+ /**
+ * @brief Posts a Wwise Event at the specified location.
+ *
+ * This is a fire and forget sound, created on a temporary Wwise Game Object. Replication is also not handled at this point.
+ *
+ * @param Location Location from which to post the Wwise Event.
+ * @param Orientation Orientation of the event.
+ * @param World The world that defines the Location's coordinates.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * This version is useful for Blueprint callbacks. This is mutually exclusive with AkCallback and LatentAction.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed,
+ * with the Cookie parameter to provide data. This is mutually exclusive with Delegate and LatentAction.
+ * @param Cookie Parameter provided for AkCallback to provide data.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param LatentAction Function called when the posted event is done playing for latent Blueprint operation.
+ * This is mutually exclusive with Delegate and Callback.
+ * @param AudioContext Context in which the Event's sounds are played. Only GamePlayAudio sounds are affected by PIE pause/stop.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ AkPlayingID PostAtLocation(const FVector& Location, const FRotator& Orientation, const UWorld* World,
+ const FOnAkPostEventCallback* Delegate,
+ AkCallbackFunc Callback,
+ void* Cookie,
+ const AkCallbackType CallbackMask,
+ FWaitEndOfEventAction* LatentAction,
+ const EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio);
+
+ /**
+ * @brief Posts a Wwise Event onto a dummy object.
+ *
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * This version is useful for Blueprint callbacks. This is mutually exclusive with AkCallback and LatentAction.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed,
+ * with the Cookie parameter to provide data. This is mutually exclusive with Delegate and LatentAction.
+ * @param Cookie Parameter provided for AkCallback to provide data.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param LatentAction Function called when the posted event is done playing for latent Blueprint operation.
+ * This is mutually exclusive with Delegate and Callback.
+ * @param AudioContext Context in which the Event's sounds are played. Only GamePlayAudio sounds are affected by PIE pause/stop.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ AkPlayingID PostAmbient(
+ const FOnAkPostEventCallback* Delegate,
+ AkCallbackFunc Callback,
+ void* Cookie,
+ const AkCallbackType CallbackMask,
+ FWaitEndOfEventAction* LatentAction,
+ const EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio);
+
+ /**
+ * @brief Posts the Wwise Event on the specified game object.
+ *
+ * @param GameObject Game object on which to play the event.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * This version is useful for Blueprint callbacks. This is mutually exclusive with AkCallback and LatentAction.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed,
+ * with the Cookie parameter to provide data. This is mutually exclusive with Delegate and LatentAction.
+ * @param Cookie Parameter provided for AkCallback to provide data.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param LatentAction Function called when the posted event is done playing for latent Blueprint operation.
+ * This is mutually exclusive with Delegate and Callback.
+ * @param AudioContext Context in which the Event's sounds are played. Only GamePlayAudio sounds are affected by PIE pause/stop.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ AkPlayingID PostOnGameObject(UAkGameObject* GameObject,
+ const FOnAkPostEventCallback* Delegate,
+ AkCallbackFunc Callback,
+ void* Cookie,
+ const AkCallbackType CallbackMask,
+ FWaitEndOfEventAction* LatentAction,
+ const EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio);
+
+ /**
+ * @brief Posts the Wwise Event on the specified game object ID.
+ *
+ * @param GameObjectID Game object's ID on which to play the event.
+ * @param Delegate Function that gets called every time the operation defined by CallbackMask is processed.
+ * This version is useful for Blueprint callbacks. This is mutually exclusive with AkCallback and LatentAction.
+ * @param Callback Function that gets called every time the operation defined by CallbackMask is processed,
+ * with the Cookie parameter to provide data. This is mutually exclusive with Delegate and LatentAction.
+ * @param Cookie Parameter provided for AkCallback to provide data.
+ * @param CallbackMask Bitmask defining all the operations that will call the Callback. See \ref AkCallbackType.
+ * @param LatentAction Function called when the posted event is done playing for latent Blueprint operation.
+ * This is mutually exclusive with Delegate and Callback.
+ * @param AudioContext Context in which the Event's sounds are played. Only GamePlayAudio sounds are affected by PIE pause/stop.
+ * @return The Playing ID returned by the SoundEngine's PostEvent, or AK_INVALID_PLAYING_ID (0) if invalid.
+ */
+ AkPlayingID PostOnGameObjectID(const AkGameObjectID GameObjectID,
+ const FOnAkPostEventCallback* Delegate,
+ AkCallbackFunc Callback,
+ void* Cookie,
+ const AkCallbackType CallbackMask,
+ FWaitEndOfEventAction* LatentAction,
+ const EAkAudioContext AudioContext = EAkAudioContext::GameplayAudio);
+
+private:
+ template
+ AkPlayingID PostEvent(const AkGameObjectID GameObjectID,
+ FCreateCallbackPackage&& CreateCallbackPackage,
+ const EAkAudioContext AudioContext
+ );
+
+public:
+ void Serialize(FArchive& Ar) override;
+ void BeginDestroy() override;
+
+ virtual void LoadData() override {LoadEventData();}
+ virtual void UnloadData(bool bAsync = false) override {UnloadEventData(bAsync);}
+ virtual AkUInt32 GetShortID() const override {return EventCookedData.EventId;}
+ bool IsDataFullyLoaded() const;
+ bool IsLoaded() const;
+
+#if WITH_EDITOR
+ // Allow for content browser preview to work, even if asset is not auto-loaded.
+ // This method will load the content, and register to BeginPIE. When a PIE session
+ // begins, data will be unloaded, allowing to replicate in-game behaviour more
+ // closely.
+ void LoadEventDataForContentBrowserPreview();
+
+private:
+ void OnBeginPIE(const bool bIsSimulating);
+ FDelegateHandle OnBeginPIEDelegateHandle;
+#endif
+#if WITH_EDITORONLY_DATA
+public:
+ virtual void FillInfo() override;
+ virtual void FillMetadata(FWwiseProjectDatabase* ProjectDatabase) override;
+ void CookAdditionalFilesOverride(const TCHAR* PackageFilename, const ITargetPlatform* TargetPlatform,
+ TFunctionRef WriteAdditionalFile) override;
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &EventInfo;}
+ virtual FWwiseObjectInfo GetInfo() const override{return EventInfo;}
+ virtual bool ObjectIsInSoundBanks() override;
+#endif
+
+ TArray GetAllExternalSources() const;
+
+private:
+ void LoadEventData();
+ void UnloadEventData(bool bAsync);
+ FWwiseLoadedEvent LoadedEvent;
+};
+
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputComponent.h
new file mode 100644
index 0000000..44f8503
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputComponent.h
@@ -0,0 +1,64 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+UAkAudioInputComponent.h:
+=============================================================================*/
+
+#pragma once
+
+#include "AkAudioInputManager.h"
+#include "AkInclude.h"
+#include "AkComponent.h"
+#include "AkAudioInputComponent.generated.h"
+
+
+/*------------------------------------------------------------------------------------
+UAkAudioInputComponent
+------------------------------------------------------------------------------------*/
+UCLASS(ClassGroup = Audiokinetic, abstract, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation), meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkAudioInputComponent : public UAkComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkAudioInputComponent(const class FObjectInitializer& ObjectInitializer);
+
+ /**
+ * Posts this component's AkAudioEvent to Wwise along with associated AudioSamples callback and AudioFormat callback, using this component as the game object source
+ *
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkAudioInputComponent")
+ virtual int32 PostAssociatedAudioInputEvent();
+
+protected:
+ /** This is called after the GameObject that owns this component is unregistered from the Wwise sound engine. */
+ virtual void PostUnregisterGameObject() override;
+ /** The audio callback. This will be called continuously by the Wwise sound engine,
+ * and is used to provide the sound engine with audio samples. If this function returns false, the audio
+ * input event will be stopped and the functino will stop being called.
+ */
+ virtual bool FillSamplesBuffer(uint32 NumChannels, uint32 NumSamples, float** BufferToFill) PURE_VIRTUAL(AkAudioInputComponent::FillSamplesBuffer, return false;);
+ /** This callback is used to provide the Wwise sound engine with the required audio format. */
+ virtual void GetChannelConfig(AkAudioFormat& AudioFormat) PURE_VIRTUAL(UAkAudioInputComponent::GetChannelConfig,);
+
+ TArray CurrentlyPlayingIDs;
+
+private:
+ FAkGlobalAudioInputDelegate AudioInputDelegate;
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputManager.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputManager.h
new file mode 100644
index 0000000..77779a3
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioInputManager.h
@@ -0,0 +1,166 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkInclude.h"
+#include "AkAudioDevice.h"
+#include "Templates/Function.h"
+
+/*------------------------------------------------------------------------------------
+AkAudioInput Delegates
+------------------------------------------------------------------------------------*/
+
+DECLARE_DELEGATE_RetVal_ThreeParams(bool, FAkGlobalAudioInputDelegate, uint32, uint32, float**);
+DECLARE_DELEGATE_OneParam(FAkGlobalAudioFormatDelegate, AkAudioFormat&);
+
+/*------------------------------------------------------------------------------------
+FAkAudioInputManager
+------------------------------------------------------------------------------------*/
+
+class AKAUDIO_API FAkAudioInputManager
+{
+public:
+
+ /**
+ * Post an Input event to Wwise SoundEngine linked to an actor
+ *
+ * @param Event Event to post
+ * @param Actor Actor on which to play the event
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @param AudioContext Context where this input is used (Editor, Player, or other)
+ * @return ID assigned by Wwise SoundEngine
+ */
+ static AkPlayingID PostAudioInputEvent(
+ UAkAudioEvent* Event,
+ AActor* Actor,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate,
+ EAkAudioContext AudioContext = EAkAudioContext::Foreign
+ );
+
+ /**
+ * Post an Input event to Wwise SoundEngine linked to a Component
+ *
+ * @param Event Event to post
+ * @param Component Component on which to play the event
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @param AudioContext Context where this input is used (Editor, Player, or other)
+ * @return ID assigned by Wwise SoundEngine
+ */
+ static AkPlayingID PostAudioInputEvent(
+ UAkAudioEvent* Event,
+ UAkComponent* Component,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate,
+ EAkAudioContext AudioContext = EAkAudioContext::Foreign
+ );
+
+ /**
+ * Post an Input event to Wwise SoundEngine linked to a GameObject
+ *
+ * @param Event Event to post
+ * @param GameObject GameObject on which to play the event
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @param AudioContext Context where this input is used (Editor, Player, or other)
+ * @return ID assigned by Wwise SoundEngine
+ */
+ static AkPlayingID PostAudioInputEvent(
+ UAkAudioEvent* Event,
+ AkGameObjectID GameObject,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate,
+ EAkAudioContext AudioContext = EAkAudioContext::Foreign
+ );
+
+ /**
+ * Post an Input event to Wwise SoundEngine not linked to any GameObject
+ *
+ * @param Event Event to post
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @param AudioContext Context where this input is used (Editor, Player, or other)
+ * @return ID assigned by Wwise SoundEngine
+ */
+ static AkPlayingID PostAudioInputEvent(
+ UAkAudioEvent* Event,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate,
+ EAkAudioContext AudioContext = EAkAudioContext::Foreign
+ );
+
+ /**
+ * Post an event to ak soundengine
+ *
+ * @param AkEvent Event UObject, if null EventName is used to determine the ShortID
+ * @param EventName Name of the event to post
+ * @param Actor Actor on which to play the event
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @return ID assigned by ak soundengine
+ *
+ * @deprecated Use a PostAudioInputEvent without EventName.
+ */
+ static AkPlayingID PostAudioInputEvent(
+ class UAkAudioEvent* AkEvent,
+ const FString& EventName,
+ AActor * Actor,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate
+ );
+
+ /**
+ * Post an event to ak soundengine
+ *
+ * @param AkEvent Event UObject, if null EventName is used to determine the ShortID
+ * @param EventName Name of the event to post
+ * @param Component AkComponent on which to play the event
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @return ID assigned by ak soundengine
+ *
+ * @deprecated Use a PostAudioInputEvent without EventName.
+ */
+ static AkPlayingID PostAudioInputEvent(
+ class UAkAudioEvent* AkEvent,
+ const FString& EventName,
+ UAkComponent* Component,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate
+ );
+
+ /**
+ * Post an event to ak soundengine by name
+ *
+ * @param EventName Name of the event to post
+ * @param GameObject AkGameObject on which to play the event
+ * @param AudioSamplesDelegate Callback that fills the audio samples buffer
+ * @param AudioFormatDelegate Callback that sets the audio format
+ * @return ID assigned by ak soundengine
+ *
+ * @deprecated Use a PostAudioInputEvent without EventName.
+ */
+ static AkPlayingID PostAudioInputEvent(
+ const FString& EventName,
+ AkGameObjectID GameObject,
+ FAkGlobalAudioInputDelegate AudioSamplesDelegate,
+ FAkGlobalAudioFormatDelegate AudioFormatDelegate
+ );
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioStyle.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioStyle.h
new file mode 100644
index 0000000..9f2e2b8
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioStyle.h
@@ -0,0 +1,47 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "WaapiPicker/WwiseTreeItem.h"
+#include "Materials/Material.h"
+
+/**
+* Implements the visual style of Wwise Browser.
+*/
+class AKAUDIO_API FAkAudioStyle
+{
+public:
+ static const ISlateStyle& Get();
+ static void Initialize();
+ static void Shutdown();
+
+ static void DisplayEditorMessage(const FText& messageText, EWwiseItemType::Type wwiseItemType = EWwiseItemType::Type::None, float duration = 1.5f);
+
+ static FName GetStyleSetName();
+
+ static const FSlateBrush* GetWwiseIcon();
+ static const FSlateBrush* GetBrush(EWwiseItemType::Type ItemType);
+ static const FSlateBrush* GetBrush(FName PropertyName, const ANSICHAR* Specifier = NULL);
+ static const FSlateFontInfo GetFontStyle(FName PropertyName, const ANSICHAR* Specifier = NULL);
+ static UMaterial* GetAkForegroundTextMaterial();
+ /** returns a color from the WwiseUnrealColorPalette (taken from the dark theme in the Wwise Authoring tool). Use a colorIndex of -1 to use the 'default' color. */
+ static FLinearColor GetWwiseObjectColor(int colorIndex);
+private:
+ static TSharedPtr< class FSlateStyleSet > StyleInstance;
+ static UMaterial* TextMaterial;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioType.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioType.h
new file mode 100644
index 0000000..ea20400
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioType.h
@@ -0,0 +1,128 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+
+#include "AkInclude.h"
+#include "UObject/Object.h"
+#include "Wwise/Info/WwiseObjectInfo.h"
+#include "Wwise/WwiseResourceLoaderFuture.h"
+
+#include "AkAudioType.generated.h"
+
+class FWwiseProjectDatabase;
+class FWwiseAnyRef;
+UCLASS(Abstract)
+class AKAUDIO_API UAkAudioType : public UObject
+{
+ GENERATED_BODY()
+
+public:
+ virtual ~UAkAudioType() override;
+
+ ///< When true, SoundBanks and medias associated with this asset will be loaded in the Wwise SoundEngine when Unreal loads this asset.
+ UPROPERTY(EditAnywhere, Category = "AkAudioType|Behaviour")
+ bool bAutoLoad = true;
+
+// Deprecated ID properties used in migration
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(meta=(Deprecated))
+ FGuid ID_DEPRECATED;
+
+ UPROPERTY(meta=(Deprecated))
+ uint32 ShortID_DEPRECATED = 0;
+#endif
+
+ UPROPERTY(EditAnywhere, Category = "AkAudioType")
+ TArray UserData;
+
+public:
+ void Serialize(FArchive& Ar) override;
+ void PostLoad() override;
+ void BeginDestroy() override;
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkAudioType")
+ virtual void LoadData() {}
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkAudioType")
+ virtual void UnloadData(bool bAsync = false) {}
+
+ void LogSerializationState(const FArchive& Ar);
+ virtual AkUInt32 GetShortID() const;
+
+ bool IsPostLoadThreadSafe() const override { return true; }
+ bool IsDestructionThreadSafe() const override { return true; }
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkAudioType")
+ int32 GetWwiseShortID() const { return GetShortID();}
+
+ template
+ T* GetUserData()
+ {
+ for (auto Entry : UserData)
+ {
+ if (Entry && Entry->GetClass()->IsChildOf(T::StaticClass()))
+ {
+ return Entry;
+ }
+ }
+
+ return nullptr;
+ }
+
+#if WITH_EDITORONLY_DATA
+ virtual FWwiseObjectInfo* GetInfoMutable();
+ virtual FWwiseObjectInfo GetInfo() const {return {};}
+ virtual FGuid GetWwiseGuid() const { return GetInfo().WwiseGuid; }
+ virtual FName GetWwiseName() const { return GetInfo().WwiseName; }
+ virtual FName GetWwiseGroupName() { return {}; }
+ virtual FName GetAssetDefaultName();
+ virtual FName GetAssetDefaultPackagePath();
+ virtual bool ObjectIsInSoundBanks() { return false; }
+ virtual void BeginCacheForCookedPlatformData(const ITargetPlatform* TargetPlatform) override;
+
+ // Checks whether the metadata for this UAkAudioType matches what is in the Project Database
+ virtual bool IsAssetOutOfDate(const FWwiseAnyRef& CurrentWwiseRef);
+ virtual void FillInfo(const FWwiseAnyRef& CurrentWwiseRef);
+ virtual void FillInfo() {}
+ virtual void FillMetadata(FWwiseProjectDatabase* ProjectDatabase) {}
+ virtual void CheckWwiseObjectInfo();
+ virtual void MigrateWwiseObjectInfo();
+ void WaitForResourceUnloaded();
+
+ template
+ InfoType GetValidatedInfo(const InfoType& InInfo)
+ {
+ InfoType TempInfo(InInfo);
+ ValidateShortID(TempInfo);
+ return TempInfo;
+ }
+ virtual void ValidateShortID(FWwiseObjectInfo& WwiseInfo) const;
+#endif
+
+#if WITH_EDITOR
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+ virtual void GetAssetRegistryTags(TArray& OutTags) const override;
+#endif
+
+protected:
+ FWwiseResourceUnloadFuture ResourceUnload;
+
+ static bool CanLoadObjects();
+ void LoadOnceSoundEngineReady();
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAuxBus.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAuxBus.h
new file mode 100644
index 0000000..2a23426
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAuxBus.h
@@ -0,0 +1,73 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+
+#include "Wwise/CookedData/WwiseLocalizedAuxBusCookedData.h"
+#include "Wwise/Info/WwiseObjectInfo.h"
+#include "Wwise/Loaded/WwiseLoadedAuxBus.h"
+
+#include "AkAudioBank.h"
+
+#include "AkAuxBus.generated.h"
+
+class UAkAudioBank;
+
+UCLASS(hidecategories=(Advanced, Attachment, Volume), BlueprintType)
+class AKAUDIO_API UAkAuxBus : public UAkAudioType
+{
+ GENERATED_BODY()
+
+public:
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category = "AkAuxBus")
+ FWwiseObjectInfo AuxBusInfo;
+#endif
+
+ UPROPERTY(Transient, EditAnywhere, Category = "AkAuxBus")
+ FWwiseLocalizedAuxBusCookedData AuxBusCookedData;
+
+ UPROPERTY()
+ UAkAudioBank* RequiredBank_DEPRECATED = nullptr;
+
+public:
+ void Serialize(FArchive& Ar) override;
+
+ virtual void LoadData() override {LoadAuxBus();}
+ virtual void UnloadData(bool bAsync = false) override {UnloadAuxBus(bAsync);}
+ virtual AkUInt32 GetShortID() const override {return AuxBusCookedData.AuxBusId;}
+
+#if WITH_EDITORONLY_DATA
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &AuxBusInfo;}
+ virtual FWwiseObjectInfo GetInfo() const override{return AuxBusInfo;}
+ virtual bool ObjectIsInSoundBanks() override;
+#endif
+
+private:
+ void LoadAuxBus();
+ void UnloadAuxBus(bool bAsync);
+ FWwiseLoadedAuxBus LoadedAuxBus;
+
+#if WITH_EDITORONLY_DATA
+ virtual void CookAdditionalFilesOverride(const TCHAR* PackageFilename, const ITargetPlatform* TargetPlatform,
+ TFunctionRef WriteAdditionalFile) override;
+ virtual void FillInfo() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkCallbackInfoPool.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkCallbackInfoPool.h
new file mode 100644
index 0000000..dad16ee
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkCallbackInfoPool.h
@@ -0,0 +1,42 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Engine/EngineTypes.h"
+#include "CoreUObject/Public/UObject/StrongObjectPtr.h"
+
+class UAkCallbackInfo;
+
+class AkCallbackInfoPool final
+{
+public:
+ template
+ CallbackType* Acquire()
+ {
+ return static_cast(InternalAcquire(CallbackType::StaticClass()));
+ }
+
+ void Release(UAkCallbackInfo* instance);
+
+private:
+ UAkCallbackInfo* InternalAcquire(UClass* type);
+
+private:
+ TMap> Pool;
+ TArray> gcStorage;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponent.h
new file mode 100644
index 0000000..7421404
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponent.h
@@ -0,0 +1,488 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkComponent.h:
+=============================================================================*/
+
+#pragma once
+
+#include "Runtime/Launch/Resources/Version.h"
+#include "AkInclude.h"
+#include "AkGameplayTypes.h"
+#include "AkSettings.h" // for EAkCollisionChannel
+#include "Components/SceneComponent.h"
+#include "ObstructionAndOcclusionService/AkComponentObstructionAndOcclusionService.h"
+#include "AkGameObject.h"
+#include "AkComponent.generated.h"
+
+
+UENUM(Meta = (Bitflags))
+enum class EReflectionFilterBits
+{
+ Wall,
+ Ceiling,
+ Floor
+};
+
+// PostEvent functions need to return the PlayingID (uint32), but Blueprints only work with int32.
+// Make sure AkPlayingID is always 32 bits, or else we're gonna have a bad time.
+static_assert(sizeof(AkPlayingID) == sizeof(int32), "AkPlayingID is not 32 bits anymore. Change return value of PostEvent functions!");
+
+struct AkReverbFadeControl
+{
+public:
+ uint32 AuxBusId;
+ bool bIsFadingOut;
+ void* FadeControlUniqueId;
+
+private:
+ float CurrentControlValue;
+ float TargetControlValue;
+ float FadeRate;
+ float Priority;
+
+public:
+ AkReverbFadeControl(const class UAkLateReverbComponent& LateReverbComponent);
+ void UpdateValues(const class UAkLateReverbComponent& LateReverbComponent);
+ bool Update(float DeltaTime);
+ void ForceCurrentToTargetValue() { CurrentControlValue = TargetControlValue; }
+ AkAuxSendValue ToAkAuxSendValue() const;
+
+ static bool Prioritize(const AkReverbFadeControl& A, const AkReverbFadeControl& B);
+};
+
+/*------------------------------------------------------------------------------------
+ UAkComponent
+------------------------------------------------------------------------------------*/
+UCLASS(ClassGroup=Audiokinetic, BlueprintType, Blueprintable, hidecategories=(Transform,Rendering,Mobility,LOD,Component,Activation), AutoExpandCategories=AkComponent, meta=(BlueprintSpawnableComponent))
+class AKAUDIO_API UAkComponent: public UAkGameObject
+{
+ GENERATED_BODY()
+
+public:
+ UAkComponent(const class FObjectInitializer& ObjectInitializer);
+
+ UPROPERTY()
+ bool bUseSpatialAudio_DEPRECATED = false;
+
+ int32 ReflectionFilter_DEPRECATED;
+
+ /**
+ The line trace channel to use when doing line-of-sight traces for occlusion calculations. When set to 'Use Integration Settings Default', the value will be taken from the DefaultOcclusionCollisionChannel in the Wwise Integration Settings.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent|Occlusion")
+ TEnumAsByte OcclusionCollisionChannel = { EAkCollisionChannel::EAKCC_UseIntegrationSettingsDefault };
+
+ UFUNCTION(BlueprintCallable, Category="AkComponent|Occlusion")
+ ECollisionChannel GetOcclusionCollisionChannel();
+
+ /**Enable spot reflectors for this Ak Component **/
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "AkComponent|Spatial Audio")
+ bool EnableSpotReflectors = false;
+
+ /**
+ * Define an outer radius around each sound position to simulate a radial sound source.
+ * If the listener is outside the outer radius, the spread is defined by the area that the sphere takes in the listener field of view.
+ * When the listener intersects the outer radius, the spread is exactly 50%. When the listener is in between the inner and outer radius, the spread interpolates linearly from 50% to 100%.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "AkComponent|Spatial Audio|Radial Emitter", meta = (ClampMin = 0.0f) )
+ float outerRadius = .0f;
+
+ /**
+ * Define an inner radius around each sound position to simulate a radial sound source.
+ * If the listener is inside the inner radius, the spread is 100%.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "AkComponent|Spatial Audio|Radial Emitter", meta = (ClampMin = 0.0f))
+ float innerRadius = .0f;
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent")
+ void SetGameObjectRadius(float in_outerRadius, float in_innerRadius);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent")
+ void SetEnableSpotReflectors(bool in_enable);
+
+private:
+ /**
+ * Send to an Auxiliary Bus containing the Wwise Reflect plugin for early reflections rendering.
+ * Note that the Wwise Auxiliary Bus for early reflections can also be set per-sound in the Sound Property Editor in the Wwise Authoring tool.
+ * Setting a value here will apply only to sounds playing on the AK Component that do not have an Auxiliary Bus set in the Wwise Authoring tool.
+ */
+ UPROPERTY(EditAnywhere, Category = "AkComponent|Spatial Audio|Reflect")
+ class UAkAuxBus * EarlyReflectionAuxBus = nullptr;
+
+ /**
+ * Send to an Auxiliary Bus containing the Wwise Reflect plugin for early reflections rendering.
+ * Note that the Wwise Auxiliary Bus for early reflections can also be set per-sound in the Sound Property Editor in the Wwise Authoring tool.
+ * Setting a value here will apply only to sounds playing on the AK Component that do not have an Auxiliary Bus set in the Wwise Authoring tool.
+ */
+ UPROPERTY(EditAnywhere, Category = "AkComponent|Spatial Audio|Reflect")
+ FString EarlyReflectionAuxBusName;
+
+ /** As of 2019.2, the Reflection Order is set in the Spatial Audio Initialization Settings in Project Settings */
+ UPROPERTY(VisibleAnywhere, Category = "AkComponent|Spatial Audio|Reflect (DEPRECATED)", meta = (ClampMin = "0", ClampMax = "4"))
+ int EarlyReflectionOrder = 0;
+
+ /**
+ * Set the send volume for the early reflections Auxiliary Bus.
+ * The send volume applied to this AK Component will be applied additively to the Auxiliary Send volume defined per-sound in the Wwise Authoring tool.
+ */
+ UPROPERTY(EditAnywhere, Category = "AkComponent|Spatial Audio|Reflect", meta = (ClampMin = "0.0", ClampMax = "1.0"))
+ float EarlyReflectionBusSendGain = .0f;
+
+ /** As of 2019.2, the Reflection Max Path Length is set by the sound's Attenuation Max Distance value in the Authoring */
+ UPROPERTY(VisibleAnywhere, Category = "AkComponent|Spatial Audio|Reflect (DEPRECATED)", meta = (ClampMin = "0.0"))
+ float EarlyReflectionMaxPathLength = .0f;
+
+ /** As of 2019.2, the Room Reverb Aux Bus Gain is set by the Game-Defined Auxiliary Sends Volume in the Sound Property Editor in the Authoring */
+ UPROPERTY(VisibleAnywhere, Category = "AkComponent|Spatial Audio|Room (DEPRECATED)", meta = (ClampMin = "0.0", ClampMax = "1.0"))
+ float roomReverbAuxBusGain = .0f;
+
+ /** As of 2019.2, diffraction is enabled in the Sound Property Editor in the Authoring */
+ UPROPERTY(VisibleAnywhere, Category = "AkComponent|Spatial Audio|Geometric Diffraction (DEPRECATED)", meta = (ClampMin = "0"))
+ int diffractionMaxEdges = .0f;
+
+ /** As of 2019.2, diffraction is enabled in the Sound Property Editor in the Authoring */
+ UPROPERTY(VisibleAnywhere, Category = "AkComponent|Spatial Audio|Geometric Diffraction (DEPRECATED)", meta = (ClampMin = "0"))
+ int diffractionMaxPaths = .0f;
+
+ /** As of 2019.2, diffraction is enabled in the Sound Property Editor in the Authoring */
+ UPROPERTY(VisibleAnywhere, Category = "AkComponent|Spatial Audio|Geometric Diffraction (DEPRECATED)", meta = (ClampMin = "0.0"))
+ float diffractionMaxPathLength = .0f;
+
+public:
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent|Spatial Audio|Debug Draw")
+ bool DrawFirstOrderReflections = false;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent|Spatial Audio|Debug Draw")
+ bool DrawSecondOrderReflections = false;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent|Spatial Audio|Debug Draw")
+ bool DrawHigherOrderReflections = false;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent|Spatial Audio|Debug Draw")
+ bool DrawDiffraction = false;
+
+ /** Stop sound when owner is destroyed? */
+ UPROPERTY()
+ bool StopWhenOwnerDestroyed = false;
+
+ /**
+ * Posts this component's AkAudioEvent to Wwise, using this component as the game object source, and wait until the event is
+ * done playing to continue execution. Extra calls while the event is playing are ignored.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent", meta = (AdvancedDisplay = "0", Latent, LatentInfo = "LatentInfo"))
+ int32 PostAssociatedAkEventAndWaitForEnd(FLatentActionInfo LatentInfo);
+
+ /**
+ * @warning This function is deprecated. Use \ref PostAssociatedAkEventAndWaitForEnd.
+ * Async operations are deprecated.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent", meta = (AdvancedDisplay = "1", Latent, LatentInfo = "LatentInfo", DeprecatedFunction, DeprecationMessage = "Use \"PostAssociatedAkEventAndWaitForEnd\"."))
+ void PostAssociatedAkEventAndWaitForEndAsync(int32& PlayingID, FLatentActionInfo LatentInfo);
+
+ /**
+ * Posts an event to Wwise, using this component as the game object source, and wait until the event is
+ * done playing to continue execution. Extra calls while the event is playing are ignored.
+ *
+ * @params in_EventName Deprecated: You should ensure AkEvent is valid.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent", meta = (AdvancedDisplay = "1", Latent, LatentInfo = "LatentInfo"))
+ int32 PostAkEventAndWaitForEnd(
+ class UAkAudioEvent * AkEvent,
+ const FString& in_EventName,
+ FLatentActionInfo LatentInfo
+ );
+
+ /**
+ * Posts an event to Wwise, using this component as the game object source, and wait until the event is
+ * done playing to continue execution. Extra calls while the event is playing are ignored.
+ *
+ * @warning This function is deprecated. Use \ref PostAkEventAndWaitForEnd.
+ * Async operations are deprecated.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent", meta = (AdvancedDisplay = "2", Latent, LatentInfo = "LatentInfo", DeprecatedFunction, DeprecationMessage = "Use \"PostAkEventAndWaitForEnd\"."))
+ void PostAkEventAndWaitForEndAsync(
+ class UAkAudioEvent* AkEvent,
+ int32& PlayingID,
+ FLatentActionInfo LatentInfo
+ );
+
+ int32 PostAkEvent(UAkAudioEvent* AkEvent, int32 CallbackMask, const FOnAkPostEventCallback& PostEventCallback, const FString& InEventName) override;
+ AkPlayingID PostAkEvent(UAkAudioEvent* AkEvent, AkUInt32 Flags = 0, AkCallbackFunc UserCallback = nullptr, void* UserCookie = nullptr) override;
+
+ /**
+ * @warning Using EventName in this function is deprecated. Use \ref PostAkEvent.
+ */
+ AK_DEPRECATED(2022.1, "Use PostAkEvent.")
+ AkPlayingID PostAkEventByNameWithDelegate(UAkAudioEvent* AkEvent, const FString& in_EventName, int32 CallbackMask, const FOnAkPostEventCallback& PostEventCallback) override;
+
+ /**
+ * @warning This function is deprecated. You are expected to use an UAkAudioEvent. Use \ref PostAkEvent.
+ */
+ AK_DEPRECATED(2022.1, "Use PostAkEvent.")
+ AkPlayingID PostAkEventByIdWithCallback(const AkUInt32 EventShortID, AkUInt32 Flags = 0, AkCallbackFunc UserCallback = NULL, void * UserCookie = NULL, const TArray& ExternalSources = TArray());
+
+ /**
+ * Posts a trigger to wwise, using this component as the game object source
+ *
+ * @param Trigger The name of the trigger
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent", meta = (AdvancedDisplay = "1"))
+ void PostTrigger(class UAkTrigger const* TriggerValue, FString Trigger);
+
+ /**
+ * Sets a switch group in wwise, using this component as the game object source
+ *
+ * @param SwitchGroup The name of the switch group
+ * @param SwitchState The new state of the switch
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent", meta = (AdvancedDisplay = "1"))
+ void SetSwitch(class UAkSwitchValue const* SwitchValue, FString SwitchGroup, FString SwitchState);
+
+ /**
+ * Sets whether or not to stop sounds when the component's owner is destroyed
+ *
+ * @param bStopWhenOwnerDestroyed Whether or not to stop sounds when the component's owner is destroyed
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent")
+ void SetStopWhenOwnerDestroyed( bool bStopWhenOwnerDestroyed );
+
+ /**
+ * Set a game object's listeners
+ *
+ * @param Listeners The array of components that listen to this component
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent")
+ void SetListeners( const TArray& Listeners );
+
+ // Reverb volumes functions
+
+ /**
+ * Set UseReverbVolumes flag. Set value to true to use reverb volumes on this component.
+ *
+ * @param inUseReverbVolumes Whether to use reverb volumes or not.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent", meta = (DeprecatedFunction, DeprecationMessage = "Use the \"UseReverbVolume\" property", ScriptName="DEPRECATED_UseReverbVolumes"))
+ void UseReverbVolumes(bool inUseReverbVolumes);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkComponent", meta = (AdvancedDisplay = "5", DeprecatedFunction, DeprecationMessage = "This function is deprecated and will be removed in future releases."))
+ void UseEarlyReflections(class UAkAuxBus* AuxBus, int Order = 1, float BusSendGain = 1.f, float MaxPathLength = 100000.f, bool SpotReflectors = false, const FString& AuxBusName = FString(""));
+
+
+ /**
+ * Set the early reflections aux bus for this AK Component.
+ * Geometrical reflection calculation inside spatial audio is enabled for a game object if any sound playing on the game object has a valid early reflections aux bus specified in the authoring tool,
+ * or if an aux bus is specified via SetEarlyReflectionsAuxSend.
+ * The AuxBusName parameter of SetEarlyReflectionsAuxSend applies to sounds playing on the Wwise game object which have not specified an early reflection bus in the authoring tool -
+ * the parameter specified on individual sounds' reflection bus takes priority over the value passed in to SetEarlyReflectionsAuxSend.
+ * @param AuxBusName - Name of aux bus in the Wwise project.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkComponent")
+ void SetEarlyReflectionsAuxBus(const FString& AuxBusName);
+
+ /**
+ * Set the early reflections volume for this AK Component. The SendVolume parameter is used to control the volume of the early reflections send. It is combined with the early reflections volume specified in the authoring tool,
+ * and is applied to all sounds playing on the Wwise game object.
+ * @param SendVolume - Send volume to the early reflections aux bus.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkComponent")
+ void SetEarlyReflectionsVolume(float SendVolume);
+
+ /**
+ * Set the output bus volume (direct) to be used for the specified game object.
+ * The control value is a number ranging from 0.0f to 1.0f.
+ *
+ * @param BusVolume - Bus volume to set
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkComponent")
+ void SetOutputBusVolume(float BusVolume);
+
+
+ /** Modifies the attenuation computations on this game object to simulate sounds with a a larger or smaller area of effect. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="AkComponent")
+ float AttenuationScalingFactor = .0f;
+
+ /** Sets the attenuation scaling factor, which modifies the attenuation computations on this game object to simulate sounds with a a larger or smaller area of effect. */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkComponent")
+ void SetAttenuationScalingFactor(float Value);
+
+ /** Set the time interval between occlusion/obstruction checks (direct line of sight between the listener and this game object). Set to 0 to disable occlusion/obstruction on this component. We recommend disabling it if you want to use full Spatial Audio diffraction. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent|Occlusion")
+ float OcclusionRefreshInterval = .0f;
+
+ /** Whether to use reverb volumes or not */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkComponent")
+ bool bUseReverbVolumes = true;
+
+
+ /**
+ * Return the real attenuation radius for this component (AttenuationScalingFactor * AkAudioEvent->MaxAttenuationRadius)
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkComponent")
+ float GetAttenuationRadius() const;
+
+ void UpdateGameObjectPosition();
+
+ void GetAkGameObjectName(FString& Name) const;
+
+ bool IsDefaultListener = false;
+
+#if CPP
+
+ /*------------------------------------------------------------------------------------
+ UActorComponent interface.
+ ------------------------------------------------------------------------------------*/
+ /**
+ * Called after component is registered
+ */
+ virtual void OnRegister();
+
+ /**
+ * Called after component is unregistered
+ */
+ virtual void OnUnregister();
+
+ /**
+ * Clean up
+ */
+ virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
+
+ /**
+ * Clean up after error
+ */
+ virtual void ShutdownAfterError();
+
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
+
+ // Begin USceneComponent Interface
+ virtual void BeginPlay() override;
+ virtual void OnUpdateTransform(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport = ETeleportType::None) override;
+ // End USceneComponent Interface
+
+ /** Gets all AkLateReverbComponents at the AkComponent's current location, and puts them in a list
+ *
+ * @param Loc The location of the AkComponent
+ */
+ void UpdateAkLateReverbComponentList(FVector Loc);
+
+ /** Gets the current room the AkComponent is in.
+ *
+ * @param Location The location of the AkComponent
+ */
+ void UpdateSpatialAudioRoom(FVector Location);
+
+ void SetAutoDestroy(bool in_AutoDestroy) { bAutoDestroy = in_AutoDestroy; }
+
+ bool UseDefaultListeners() const { return bUseDefaultListeners; }
+
+ void OnListenerUnregistered(UAkComponent* in_pListener)
+ {
+ Listeners.Remove(in_pListener);
+ }
+
+ void OnDefaultListenerAdded(UAkComponent* in_pListener)
+ {
+ check(bUseDefaultListeners);
+ Listeners.Add(in_pListener);
+ }
+
+ const TSet& GetEmitters();
+
+ static UAkComponent* GetAkComponent(AkGameObjectID GameObjectID);
+
+ AkRoomID GetSpatialAudioRoom() const;
+
+ void UpdateObstructionAndOcclusion() { ObstructionService.UpdateObstructionAndOcclusion(Listeners, GetPosition(), GetOwner(), GetSpatialAudioRoom(), GetOcclusionCollisionChannel(), OcclusionRefreshInterval); }
+
+ FVector GetPosition() const;
+
+#if WITH_EDITOR
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+#endif
+
+private:
+ /**
+ * Register the component with Wwise
+ */
+ void RegisterGameObject();
+
+ /**
+ * Unregister the component from Wwise
+ */
+ void UnregisterGameObject();
+
+ /*
+ * Called after registering the component with Wwise
+ */
+ virtual void PostRegisterGameObject();
+
+ /*
+ * Called after unregistering the component from Wwise
+ */
+ virtual void PostUnregisterGameObject();
+
+ // Reverb Volume features ---------------------------------------------------------------------
+
+ /** Apply the current list of AkReverbVolumes
+ *
+ * @param DeltaTime The given time increment since last fade computation
+ */
+ void ApplyAkReverbVolumeList(float DeltaTime);
+
+ AkComponentObstructionAndOcclusionService ObstructionService;
+
+ /** Array of the active AkReverbVolumes at the AkComponent's location */
+ TArray ReverbFadeControls;
+
+ /** Aux Send values sent to the SoundEngine in the previous frame */
+ TArray CurrentAuxSendValues;
+
+ /** Do we need to refresh Aux Send values? */
+ bool NeedToUpdateAuxSends(const TArray& NewValues);
+
+ /** Room the AkComponent is currently in. nullptr if none */
+ class UAkRoomComponent* CurrentRoom;
+
+ /** Whether to automatically destroy the component when the event is finished */
+ bool bAutoDestroy;
+
+ /** Previous known position. Used to avoid Spamming SetPOsition on a listener */
+ AkSoundPosition CurrentSoundPosition;
+ bool HasMoved();
+
+#endif
+
+#if WITH_EDITORONLY_DATA
+ /** Utility function that updates which texture is displayed on the sprite dependent on the properties of the Audio Component. */
+ void UpdateSpriteTexture();
+#endif
+
+ bool bUseDefaultListeners;
+ TSet Listeners;
+
+ //NOTE: This set of emitters is only valid if this UAkComopnent is a listener, and it it is not a default listener. See GetEmitters().
+ TSet Emitters;
+
+ void CheckEmitterListenerConsistancy();
+
+ void DebugDrawReflections() const;
+ void _DebugDrawReflections(const AkVector64& akEmitterPos, const AkVector64& akListenerPos, const AkReflectionPathInfo* paths, AkUInt32 uNumPaths) const;
+
+ void DebugDrawDiffraction() const;
+ void _DebugDrawDiffraction(const AkVector64& akEmitterPos, const AkVector64& akListenerPos, const AkDiffractionPathInfo* paths, AkUInt32 uNumPaths) const;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponentHelpers.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponentHelpers.h
new file mode 100644
index 0000000..ac57881
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponentHelpers.h
@@ -0,0 +1,94 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkComponentHelpers.h:
+=============================================================================*/
+#pragma once
+#include "Components/SceneComponent.h"
+#include "PhysicsEngine/BodySetup.h"
+#include "AkInclude.h"
+
+namespace AkComponentHelpers
+{
+ /* Return true if the bodySetup has simple collision */
+ AKAUDIO_API bool HasSimpleCollisionGeometry(const UBodySetup* bodySetup);
+
+ /* Return true if the Point lies within the Primitive component. SphereRadius provides a margin of error for containment.
+ If OutDistanceToPoint is non-null it will be given the distance from Point to a point on the Primitive component. */
+ AKAUDIO_API bool EncompassesPoint(UPrimitiveComponent& Primitive, FVector Point, float SphereRadius = 0.f, float* OutDistanceToPoint = nullptr);
+
+ /* Return the unreal-units-to-meters ratio being used by this component */
+ AKAUDIO_API float UnrealUnitsPerMeter(const UActorComponent* component);
+
+ /* Return the square of the unreal-units-to-meters ratio being used by this component */
+ AKAUDIO_API float UnrealUnitsPerSquaredMeter(const UActorComponent* component);
+
+ /* Return the cube of the unreal-units-to-meters ratio being used by this component */
+ AKAUDIO_API float UnrealUnitsPerCubicMeter(const UActorComponent* component);
+
+ /* Convenience function for components based on AActor::FindComponentByClass.
+ Return the first child component of type COMPONENT_TYPE, or nullptr if there are none. */
+ template
+ AKAUDIO_API COMPONENT_TYPE* GetChildComponentOfType(const USceneComponent& ParentComponent)
+ {
+ const TArray parentChildren = ParentComponent.GetAttachChildren();
+
+ for (auto* const child : parentChildren)
+ {
+ if (child && child->IsA())
+ {
+ return Cast(child);
+ }
+ }
+ return nullptr;
+ }
+
+ AKAUDIO_API bool IsInGameWorld(const UActorComponent* InComponent);
+
+ /**/
+ AKAUDIO_API void GetPrimitiveTransformAndExtent(const UPrimitiveComponent& Primitive, AkWorldTransform& transform, AkExtent& extent);
+ AKAUDIO_API void GetPrimitiveUpAndFront(const UPrimitiveComponent& Primitive, AkVector& Up, AkVector& Front);
+
+ /* Return true if the movement would reset the child to (0, 0, 0) locally, with respect to the parent position. Return false otherwise.*/
+ AKAUDIO_API bool DoesMovementRecenterChild(USceneComponent* child, USceneComponent* parent, const FVector& Delta);
+
+ /* Log an error for invalid parent type */
+ AKAUDIO_API void LogAttachmentError(const UActorComponent* child, const UActorComponent* parent, const FString& requiredClassName);
+
+ /* Log a warning that parent has no simple geometry, so child will use component bounds */
+ AKAUDIO_API void LogSimpleGeometryWarning(const UPrimitiveComponent* parent, const UActorComponent* child);
+
+#if WITH_EDITOR
+ /* IsGameWorldBlueprintComponent() and ShouldDeferBeginPlay() are used to deal with a specific edge case concerning
+ Blueprint classes: For Blueprint class components, during Super::PostEditChangeProperty(), the component is
+ replaced with a new instance, and PostEditChangeProperty() is called on the old instance.
+ In our case this can lead to issues when we update Wwise from PostEditChangeProperty(). For example, duplicate
+ rooms or geometry could be sent. This check should be used to make sure we don't update Wwise in this scenario.
+ */
+ AKAUDIO_API bool IsGameWorldBlueprintComponent(const UActorComponent* InComponent);
+ /* IsGameWorldBlueprintComponent() and ShouldDeferBeginPlay() are used to deal with a specific edge case concerning
+ Blueprint classes. For Blueprint class components, during Super::PostEditChangeProperty(), the component is
+ replaced with a new instance.
+ The duplicated component instance initially has default values for all UPROPERTY members.
+ It is only later, after BeginPlay() has been called, that the values from the previous instance's UPROPERTYs are
+ copied to the new instance! So in that case, we need to defer the BeginPlay logic that depends on UPROPERTY values
+ that have been updated via user interaction, prior to the begin play call.
+ */
+ AKAUDIO_API bool ShouldDeferBeginPlay(const UActorComponent* InComponent);
+#endif
+}
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDeprecated.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDeprecated.h
new file mode 100644
index 0000000..a5c54c6
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDeprecated.h
@@ -0,0 +1,143 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "Serialization/BulkData.h"
+#include "UObject/Object.h"
+#include "AkAudioType.h"
+
+#include "AkDeprecated.generated.h"
+
+
+//These classes are deprecated but we use them during migration to clean up old assets
+
+UCLASS()
+class AKAUDIO_API UAkAssetData : public UObject
+{
+ GENERATED_BODY()
+
+ FByteBulkData Data;
+ void Serialize(FArchive& Ar) override
+ {
+ Super::Serialize(Ar);
+ Data.Serialize(Ar, this);
+ }
+};
+
+
+UCLASS()
+class AKAUDIO_API UAkAssetPlatformData : public UObject
+{
+ GENERATED_BODY()
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(transient, VisibleAnywhere, Category = "UAkAssetData")
+ TMap AssetDataPerPlatform;
+#endif
+
+ UPROPERTY(transient)
+ UAkAssetData* CurrentAssetData = nullptr;
+
+ void Serialize(FArchive& Ar) override
+ {
+ Super::Serialize(Ar);
+#if WITH_EDITORONLY_DATA
+ Ar << AssetDataPerPlatform;
+#endif
+ }
+
+};
+
+struct AKAUDIO_API FAkMediaDataChunk
+{
+ FByteBulkData Data;
+ bool IsPrefetch = false;
+
+ void Serialize(FArchive& Ar, UObject* Owner)
+ {
+ Ar << IsPrefetch;
+ Data.Serialize(Ar, Owner);
+ }
+};
+
+
+UCLASS()
+class AKAUDIO_API UAkMediaAssetData : public UObject
+{
+ GENERATED_BODY()
+
+ TIndirectArray DataChunks;
+
+ void Serialize(FArchive& Ar) override
+ {
+ Super::Serialize(Ar);
+
+ int32 numChunks = DataChunks.Num();
+ Ar << numChunks;
+
+ if (Ar.IsLoading())
+ {
+ DataChunks.Empty();
+ for (int32 i = 0; i < numChunks; ++i)
+ {
+ DataChunks.Add(new FAkMediaDataChunk());
+ }
+ }
+
+ for (int32 i = 0; i < numChunks; ++i)
+ {
+ DataChunks[i].Serialize(Ar, this);
+ }
+ }
+};
+
+UCLASS()
+class AKAUDIO_API UAkMediaAsset : public UObject
+{
+ GENERATED_BODY()
+
+ UPROPERTY(transient, VisibleAnywhere, Category = "AkMediaAsset")
+ TMap MediaAssetDataPerPlatform;
+
+ void Serialize(FArchive& Ar) override
+ {
+ Super::Serialize(Ar);
+ Ar << MediaAssetDataPerPlatform;
+ }
+};
+
+UCLASS()
+class AKAUDIO_API UAkLocalizedMediaAsset : public UAkMediaAsset
+{
+ GENERATED_BODY()
+};
+
+UCLASS()
+class AKAUDIO_API UAkExternalMediaAsset : public UAkMediaAsset
+{
+ GENERATED_BODY()
+
+};
+
+UCLASS()
+class AKAUDIO_API UAkFolder : public UAkAudioType
+{
+ GENERATED_BODY()
+#if WITH_EDITORONLY_DATA
+ virtual FWwiseObjectInfo* GetInfoMutable() override { return nullptr; }
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawPortalComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawPortalComponent.h
new file mode 100644
index 0000000..e9d9fb6
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawPortalComponent.h
@@ -0,0 +1,53 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkDrawPortalComponent.h:
+=============================================================================*/
+#pragma once
+
+#if WITH_EDITOR
+#include "CoreMinimal.h"
+#include "UObject/ObjectMacros.h"
+#include "AkAcousticPortal.h"
+#endif // WITH_EDITOR
+
+#include "Components/PrimitiveComponent.h"
+#include "AkDrawPortalComponent.generated.h"
+
+/**
+ * Utility component for drawing a portal in a scene.
+ */
+
+UCLASS(collapsecategories, hidecategories = Object, editinlinenew, MinimalAPI)
+class UDrawPortalComponent : public UPrimitiveComponent
+{
+ GENERATED_BODY()
+
+public:
+ UDrawPortalComponent(const FObjectInitializer& ObjectInitializer);
+
+#if WITH_EDITOR
+ void DrawPortalOutline(const FSceneView* View, FPrimitiveDrawInterface* PDI, FMeshElementCollector& Collector, int32 ViewIndex) const;
+ const UAkPortalComponent* GetPortalParent() const;
+
+private:
+ virtual class FPrimitiveSceneProxy* CreateSceneProxy() override;
+ virtual FBoxSphereBounds CalcBounds(const FTransform& LocalToWorld) const override;
+
+#endif // WITH_EDITOR
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawRoomComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawRoomComponent.h
new file mode 100644
index 0000000..4e4099a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkDrawRoomComponent.h
@@ -0,0 +1,53 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkDrawRoomComponent.h:
+=============================================================================*/
+#pragma once
+
+#if WITH_EDITOR
+#include "CoreMinimal.h"
+#include "UObject/ObjectMacros.h"
+#include "AkRoomComponent.h"
+#endif // WITH_EDITOR
+
+#include "Components/PrimitiveComponent.h"
+#include "AkDrawRoomComponent.generated.h"
+
+/**
+ * Utility component for drawing a Room in a scene.
+ */
+
+UCLASS(collapsecategories, hidecategories = Object, editinlinenew, MinimalAPI)
+class UDrawRoomComponent : public UPrimitiveComponent
+{
+ GENERATED_BODY()
+
+public:
+ UDrawRoomComponent(const FObjectInitializer& ObjectInitializer);
+
+#if WITH_EDITOR
+ void DrawRoom(const FSceneView* View, FPrimitiveDrawInterface* PDI, FMeshElementCollector& Collector, int32 ViewIndex) const;
+ const UAkRoomComponent* GetRoomParent() const;
+
+private:
+ virtual class FPrimitiveSceneProxy* CreateSceneProxy() override;
+ virtual FBoxSphereBounds CalcBounds(const FTransform& LocalToWorld) const override;
+
+#endif // WITH_EDITOR
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEffectShareSet.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEffectShareSet.h
new file mode 100644
index 0000000..ab4bfea
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEffectShareSet.h
@@ -0,0 +1,63 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "Wwise/CookedData/WwiseLocalizedShareSetCookedData.h"
+#include "Wwise/Loaded/WwiseLoadedShareSet.h"
+#if WITH_EDITORONLY_DATA
+#include "Wwise/Info/WwiseObjectInfo.h"
+#endif
+#include "AkEffectShareSet.generated.h"
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkEffectShareSet : public UAkAudioType
+{
+ GENERATED_BODY()
+public:
+
+ UPROPERTY(Transient, VisibleAnywhere, Category = "AkEffectShareSet")
+ FWwiseLocalizedShareSetCookedData ShareSetCookedData;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category = "AkEffectShareSet")
+ FWwiseObjectInfo ShareSetInfo;
+#endif
+
+public:
+ void Serialize(FArchive& Ar) override;
+
+ virtual void LoadData() override {LoadEffectShareSet();}
+ virtual void UnloadData(bool bAsync = false) override {UnloadEffectShareSet(bAsync);}
+ virtual AkUInt32 GetShortID() const override {return ShareSetCookedData.ShareSetId;}
+
+#if WITH_EDITORONLY_DATA
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &ShareSetInfo;};
+ virtual FWwiseObjectInfo GetInfo() const override{return ShareSetInfo;}
+ virtual bool ObjectIsInSoundBanks() override;
+
+ void CookAdditionalFilesOverride(const TCHAR* PackageFilename, const ITargetPlatform* TargetPlatform,
+ TFunctionRef WriteAdditionalFile) override;
+ virtual void FillInfo() override;
+#endif
+
+private :
+ void LoadEffectShareSet();
+ void UnloadEffectShareSet(bool bAsync);
+ FWwiseLoadedShareSet LoadedShareSet;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEnvironmentIndex.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEnvironmentIndex.h
new file mode 100644
index 0000000..7f3e3b2
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkEnvironmentIndex.h
@@ -0,0 +1,167 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Math/GenericOctree.h"
+#include "WwiseDefines.h"
+#include "Components/SceneComponent.h"
+#include "EngineDefines.h"
+
+class UAkEnvironmentOctree;
+
+#if UE_4_26_OR_LATER
+#define AK_OCTREE_TYPE TOctree2
+#define AK_OCTREE_ELEMENT_ID FOctreeElementId2
+#else
+#define AK_OCTREE_TYPE TOctree
+#define AK_OCTREE_ELEMENT_ID FOctreeElementId
+#endif
+
+struct FAkEnvironmentOctreeElement
+{
+ USceneComponent* Component;
+
+ FBoxCenterAndExtent BoundingBox;
+
+ FAkEnvironmentOctreeElement(USceneComponent* in_Component)
+ {
+ Component = in_Component;
+ BoundingBox = FBoxCenterAndExtent(Component->Bounds.GetBox().GetCenter(), Component->Bounds.GetBox().GetExtent());
+ }
+};
+
+struct FAkEnvironmentOctreeSemantics
+{
+ typedef AK_OCTREE_TYPE FOctree;
+
+ enum { MaxElementsPerLeaf = 16 };
+ enum { MinInclusiveElementsPerNode = 7 };
+ enum { MaxNodeDepth = 12 };
+
+ typedef TInlineAllocator ElementAllocator;
+
+ FORCEINLINE static FBoxCenterAndExtent GetBoundingBox(const FAkEnvironmentOctreeElement& Element)
+ {
+ return Element.BoundingBox;
+ }
+
+ FORCEINLINE static bool AreElementsEqual(const FAkEnvironmentOctreeElement& A, const FAkEnvironmentOctreeElement& B)
+ {
+ return (A.Component == B.Component);
+ }
+
+ static void SetElementId(FOctree& OctreeOwner, const FAkEnvironmentOctreeElement& Element, AK_OCTREE_ELEMENT_ID Id);
+};
+
+class UAkEnvironmentOctree : public AK_OCTREE_TYPE
+{
+public:
+
+ UAkEnvironmentOctree() : AK_OCTREE_TYPE(FVector::ZeroVector, HALF_WORLD_MAX) {}
+
+ TMap ObjectToOctreeId;
+};
+
+/** A spatial indexing data structure used to accelerate geometric queries.
+ Used for fast look up of UAkRoomComponents for Spatial Audio Rooms, and for UAkLateReverbComponents for auxiliary sends in Wwise.
+*/
+class FAkEnvironmentIndex
+{
+public:
+ /**
+ Query a world and location for an environmental rooms or late reverb components.
+ Returns an array of components that overlap Location, sorted by decreasing priority.
+ */
+ template
+ TArray Query(const FVector& Location, const UWorld* World)
+ {
+ TArray Result;
+
+ TUniquePtr* Octree = Map.Find(World);
+
+ if (Octree != nullptr)
+ {
+#if UE_4_26_OR_LATER
+ FBoxCenterAndExtent BoxBounds(Location, FVector::ZeroVector);
+ (*Octree)->FindElementsWithBoundsTest(BoxBounds, [&Result, Location](const FAkEnvironmentOctreeElement& Element)
+ {
+ EnvironmentType* Env = Cast(Element.Component);
+ if (Env &&
+ Env->bEnable &&
+ Env->HasEffectOnLocation(Location))
+ {
+ Result.Add(Env);
+ }
+ });
+#else
+ for (UAkEnvironmentOctree::TConstElementBoxIterator<> It(**Octree, FBoxCenterAndExtent(Location, FVector(ForceInitToZero)));
+ It.HasPendingElements();
+ It.Advance())
+ {
+ const FAkEnvironmentOctreeElement& Element = It.GetCurrentElement();
+ EnvironmentType* Env = Cast(Element.Component);
+ if (Env &&
+ Env->bEnable &&
+ Env->HasEffectOnLocation(Location))
+ {
+ Result.Add(Env);
+ }
+ }
+#endif
+ }
+
+ // Sort the found Volumes
+ if (Result.Num() > 1)
+ {
+ Result.Sort([](const EnvironmentType& A, const EnvironmentType& B)
+ {
+ return A.Priority > B.Priority;
+ });
+ }
+
+ return Result;
+ }
+
+ /**
+ Add a Component to the spatial index.
+ */
+ void Add(USceneComponent* EnvironmentToAdd);
+
+ /**
+ * Remove a Component from the spatial index.
+ */
+ bool Remove(USceneComponent* EnvironmentToRemove);
+
+ /**
+ * Update the bounds of a component that is already indexed. Must be called if the transform of the component changes.
+ */
+ void Update(USceneComponent* EnvironmentToUpdate);
+
+ /**
+ * Clear all components in the given World.
+ */
+ void Clear(const UWorld* WorldToClear);
+
+ /**
+ * Is the index empty for the given World.
+ */
+ bool IsEmpty(const UWorld* World);
+
+private:
+ TMap > Map;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameObject.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameObject.h
new file mode 100644
index 0000000..c6fdf3c
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameObject.h
@@ -0,0 +1,163 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkGameObject.h:
+=============================================================================*/
+
+#pragma once
+
+#include "AkAudioDevice.h"
+#include "AkGameplayTypes.h"
+#include "Components/SceneComponent.h"
+#include "AkGameObject.generated.h"
+
+
+UCLASS(ClassGroup=Audiokinetic, BlueprintType, Blueprintable, hidecategories=(Transform,Rendering,Mobility,LOD,Component,Activation), AutoExpandCategories=AkComponent, meta=(BlueprintSpawnableComponent))
+class AKAUDIO_API UAkGameObject: public USceneComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkGameObject(const class FObjectInitializer& ObjectInitializer);
+
+ /** Associated Wwise Event to be posted on this game object */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="AkEvent")
+ UAkAudioEvent* AkAudioEvent = nullptr;
+
+ /** Associated Event name to be posted on this game object. Deprecation warning: You should always use the associated AkAudioEvent to ensure the assets are properly loaded. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = "AkEvent")
+ FString EventName;
+
+ /**
+ * Posts this game object's AkAudioEvent to Wwise, using this as the game object source
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkGameObject", meta = (AdvancedDisplay = "2", AutoCreateRefTerm = "PostEventCallback,ExternalSources"))
+ virtual int32 PostAssociatedAkEvent(
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback);
+
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkGameObject", meta = (AutoCreateRefTerm = "PostEventCallback,ExternalSources", Latent, LatentInfo = "LatentInfo", WorldContext = "WorldContextObject"))
+ virtual void PostAssociatedAkEventAsync(const UObject* WorldContextObject,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback,
+ FLatentActionInfo LatentInfo,
+ int32& PlayingID);
+
+ /**
+ * Posts an event to Wwise, using this as the game object source
+ *
+ * @param AkEvent The event to post
+ * @param CallbackMask Mask of desired callbacks
+ * @param PostEventCallback Blueprint Event to execute on callback
+ * @param InEventName Deprecated: If AkEvent is not set, this is used. You should ensure your AkEvent is always set.
+ *
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkGameObject", meta = (AdvancedDisplay = "1", AutoCreateRefTerm = "PostEventCallback,ExternalSources"))
+ virtual int32 PostAkEvent(
+ class UAkAudioEvent * AkEvent,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback,
+ const FString& InEventName
+ );
+
+ virtual AkPlayingID PostAkEvent(UAkAudioEvent* AkEvent, AkUInt32 Flags = 0, AkCallbackFunc UserCallback = nullptr, void* UserCookie = nullptr);
+
+ /**
+ * Posts an event to Wwise, using this as the game object source
+ *
+ * @param AkEvent The event to post
+ * @param CallbackMask Mask of desired callbacks
+ * @param PostEventCallback Blueprint Event to execute on callback
+ *
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkGameObject", meta = (AdvancedDisplay = "3", AutoCreateRefTerm = "PostEventCallback,ExternalSources", Latent, LatentInfo = "LatentInfo", WorldContext = "WorldContextObject"))
+ virtual void PostAkEventAsync(const UObject* WorldContextObject,
+ class UAkAudioEvent* AkEvent,
+ int32& PlayingID,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback,
+ FLatentActionInfo LatentInfo
+ );
+
+ /**
+ * Stops playback using this game object as the game object to stop
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkComponent")
+ virtual void Stop();
+
+ /**
+ * @warning Using EventName in this function is deprecated. Use \ref PostAkEvent.
+ */
+ AK_DEPRECATED(2022.1, "Use PostAkEvent.")
+ virtual AkPlayingID PostAkEventByNameWithDelegate(
+ UAkAudioEvent* AkEvent,
+ const FString& InEventName,
+ int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback);
+
+ /**
+ * @warning This function is deprecated. You are expected to use an UAkAudioEvent. Use \ref PostAkEvent.
+ */
+ AK_DEPRECATED(2022.1, "Use PostAkEvent.")
+ virtual void PostAkEventAsyncByEvent(const UObject* WorldContextObject,
+ class UAkAudioEvent* AkEvent,
+ int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback,
+ FLatentActionInfo LatentInfo,
+ int32& PlayingID
+ );
+
+ /**
+ * Sets an RTPC value, using this game object as the game object source
+ *
+ * @param RTPC The name of the RTPC to set
+ * @param Value The value of the RTPC
+ * @param InterpolationTimeMs - Duration during which the RTPC is interpolated towards Value (in ms)
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkGameObject", meta = (AdvancedDisplay = "3"))
+ void SetRTPCValue(class UAkRtpc const* RTPCValue, float Value, int32 InterpolationTimeMs, FString RTPC) const;
+
+ /**
+ * Gets an RTPC value that was set on this game object as the game object source
+ *
+ * @param RTPC The name of the RTPC to set
+ * @param InputValueType The input value type
+ * @param Value The value of the RTPC
+ * @param OutputValueType The output value type
+ * @param PlayingID The playing ID of the posted event (Set to zero to ignore)
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|AkGameObject", meta = (AdvancedDisplay = "RTPC"))
+ void GetRTPCValue(class UAkRtpc const* RTPCValue, ERTPCValueType InputValueType, float& Value, ERTPCValueType& OutputValueType, FString RTPC, int32 PlayingID = 0) const;
+ AK_DEPRECATED(2019.1.3, "This function is deprecated and will be removed in future releases.")
+ void GetRTPCValue(FString RTPC, int32 PlayingID, ERTPCValueType InputValueType, float& Value, ERTPCValueType& OutputValueType) const;
+
+#if CPP
+ bool VerifyEventName(const FString& InEventName) const;
+ bool AllowAudioPlayback() const;
+ AkGameObjectID GetAkGameObjectID() const;
+ virtual void UpdateObstructionAndOcclusion() {};
+ bool HasActiveEvents() const;
+#endif
+
+ bool HasBeenRegisteredWithWwise() const { return IsRegisteredWithWwise; }
+ void EventPosted() {bEventPosted = true;}
+protected:
+ // Whether an event was posted on the game object. Never reset to false.
+ bool bEventPosted;
+ bool IsRegisteredWithWwise = false;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayStatics.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayStatics.h
new file mode 100644
index 0000000..db021e0
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayStatics.h
@@ -0,0 +1,616 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkGameplayStatics.h:
+=============================================================================*/
+#pragma once
+
+#include "AkAudioDevice.h"
+#include "AkInclude.h"
+#include "AkGameplayTypes.h"
+#include "AkUnrealHelper.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "AkGameplayStatics.generated.h"
+
+// PostEvent functions need to return the PlayingID (uint32), but Blueprints only work with int32.
+// Make sure AkPlayingID is always 32 bits, or else we're gonna have a bad time.
+static_assert(sizeof(AkPlayingID) == sizeof(int32), "AkPlayingID is not 32 bits anymore. Change return value of PostEvent functions and callback info structures members!");
+
+UCLASS()
+class AKAUDIO_API UAkGameplayStatics : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ UAkGameplayStatics(const class FObjectInitializer& ObjectInitializer);
+
+ /** Get an AkComponent attached to and following the specified component.
+ * @param AttachPointName - Optional named point within the AttachComponent to play the sound at.
+ */
+ UFUNCTION(BlueprintCallable, Category="Audiokinetic")
+ static class UAkComponent * GetAkComponent( class USceneComponent* AttachToComponent, bool& ComponentCreated, FName AttachPointName = NAME_None, FVector Location = FVector(ForceInit), EAttachLocation::Type LocationType = EAttachLocation::KeepRelativeOffset );
+
+ UFUNCTION(BlueprintCallable, Category="Audiokinetic")
+ static bool IsEditor();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static bool IsGame(UObject* WorldContextObject);
+
+ /** Posts a Wwise Event attached to and following the root component of the specified actor.
+ *
+ * @param AkEvent - Event to play.
+ * @param Actor - Actor on which to play the event. If the Actor is left empty, the Event will be played as an Ambient sound.
+ * @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
+ * @param EventName - Deprecated: Event name in case the AkEvent is not set.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta=(AdvancedDisplay="2", AutoCreateRefTerm = "PostEventCallback"))
+ static int32 PostEvent( class UAkAudioEvent* AkEvent,
+ class AActor* Actor,
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback,
+ bool bStopWhenAttachedToDestroyed = false,
+ FString EventName = FString(""));
+
+ /**
+ * Posts a Wwise Event attached to and following the root component of the specified actor, and waits for the end of the event to continue execution.
+ * Additional calls made while an event is active are ignored.
+ *
+ * @param AkEvent - Event to play.
+ * @param Actor - actor on which to play the event.
+ * @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (Latent, LatentInfo = "LatentInfo", AdvancedDisplay = "2"))
+ static int32 PostAndWaitForEndOfEvent(class UAkAudioEvent* AkEvent,
+ class AActor* Actor,
+ bool bStopWhenAttachedToDestroyed,
+ FLatentActionInfo LatentInfo);
+
+ /** Posts a Wwise Event attached and following the root component of the specified actor, wait for the media to be loaded and waits for the end of the event to continue execution.
+ * Additional calls made while an event is active are ignored.
+ *
+ * @warning This function is deprecated. Use \ref PostAndWaitForEndOfEvent or \ref UAkAudioEvent::PostOnActorAndWait.
+ * Async operations are deprecated.
+ *
+ * @param AkEvent - ak event to play.
+ * @param Actor - actor on which to play the event.
+ * @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (Latent, LatentInfo = "LatentInfo", AdvancedDisplay = "3", bStopWhenAttachedToDestroyed = "false", AutoCreateRefTerm = "ExternalSources", DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::PostOnActorAndWait\"."))
+ static void PostAndWaitForEndOfEventAsync(class UAkAudioEvent* AkEvent,
+ class AActor* Actor,
+ int32& PlayingID,
+ bool bStopWhenAttachedToDestroyed,
+ FLatentActionInfo LatentInfo
+ );
+
+ /** Posts a Wwise Event by name attached to and following the root component of the specified actor.
+ *
+ * @warning This function is deprecated. You are expected to use an UAkAudioEvent. Please see \ref PostEvent or \ref UAkAudioEvent::PostOnActor.
+ *
+ * @param AkEvent - ak event to play.
+ * @param Actor - actor on which to play the event.
+ * @param bStopWhenAttachedToDestroyed - Specifies whether the sound should stop playing when the owner of the attach to component is destroyed.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta=(DeprecatedFunction, DeprecationMessage = "Use the \"Event Name\" field of PostEvent"))
+ static void PostEventByName( const FString& EventName,
+ class AActor* Actor,
+ bool bStopWhenAttachedToDestroyed = false);
+
+ /** Posts a Wwise Event at the specified location. This is a fire and forget sound, created on a temporary Wwise Game Object. Replication is also not handled at this point.
+ *
+ * @param AkEvent - Wwise Event to post.
+ * @param Location - Location from which to post the Wwise Event.
+ * @param Orientation - Orientation of the event.
+ * @param EventName - Deprecated: Event name in case the AkEvent is not set.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", AdvancedDisplay = "3"))
+ static int32 PostEventAtLocation(UAkAudioEvent* AkEvent, FVector Location, FRotator Orientation,
+ const FString& EventName, UObject* WorldContextObject);
+
+ /** Posts a Wwise Event by name at the specified location. This is a fire and forget sound, created on a temporary Wwise Game Object. Replication is also not handled at this point.
+ *
+ * @warning This function is deprecated. You are expected to use an UAkAudioEvent. Please see \ref UAkAudioEvent::PostAtLocation.
+ *
+ * @param AkEvent - Wwise Event to post.
+ * @param Location - Location from which to post the Wwise Event.
+ * @param Orientation - Orientation of the event.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::PostAtLocation\"."))
+ static void PostEventAtLocationByName(const FString& EventName, FVector Location, FRotator Orientation, UObject* WorldContextObject );
+
+ /** Execute action on event attached to and following the root component of the specified actor
+ *
+ * @warning This function is deprecated. Please see \ref UAkAudioEvent::ExecuteAction.
+ *
+ * @param AkEvent - Wwise Event to act upon.
+ * @param ActionType - Which action to do.
+ * @param Actor - Which actor to use.
+ * @param TransitionDuration - Transition duration in milliseconds.
+ * @param FadeCurve - The interpolation curve of the transition.
+ * @param PlayingID - Use the return value of a Post Event to act only on this specific instance of an event.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor", meta=(DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::ExecuteAction\"."))
+ static void ExecuteActionOnEvent(class UAkAudioEvent* AkEvent, AkActionOnEventType ActionType, class AActor* Actor, int32 TransitionDuration = 0, EAkCurveInterpolation FadeCurve = EAkCurveInterpolation::Linear, int32 PlayingID = 0);
+
+ /** Execute action on specific playing ID
+ *
+ * @warning This function is deprecated. You are expected to use an UAkAudioEvent. Please see \ref UAkAudioEvent::ExecuteAction.
+ *
+ * @param ActionType - Which action to do.
+ * @param PlayingID - Use the return value of a Post Event to act only on this specific instance of an event.
+ * @param TransitionDuration - Transition duration in milliseconds.
+ * @param FadeCurve - The interpolation curve of the transition.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor", meta=(DeprecatedFunction, DeprecationMessage = "Use \"UAkAudioEvent::ExecuteAction\"."))
+ static void ExecuteActionOnPlayingID(AkActionOnEventType ActionType, int32 PlayingID, int32 TransitionDuration = 0, EAkCurveInterpolation FadeCurve = EAkCurveInterpolation::Linear);
+
+ /** Spawn an AkComponent at a location. Allows, for example, to set a switch on a fire and forget sound.
+ * @param AkEvent - Wwise Event to post.
+ * @param Location - Location from which to post the Wwise Event.
+ * @param Orientation - Orientation of the event.
+ * @param AutoPost - Automatically post the event once the AkComponent is created.
+ * @param AutoDestroy - Automatically destroy the AkComponent once the event is finished.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta=(WorldContext="WorldContextObject", AdvancedDisplay = "6"))
+ static class UAkComponent* SpawnAkComponentAtLocation(UObject* WorldContextObject, class UAkAudioEvent* AkEvent, FVector Location, FRotator Orientation, bool AutoPost, const FString& EventName, bool AutoDestroy = true);
+
+ /**
+ * Sets the value of a Game Parameter, optionally targetting the root component of a specified actor.
+ * @param RTPC - The name of the Game Parameter to set
+ * @param Value - The value of the Game Parameter
+ * @param InterpolationTimeMs - Duration during which the Game Parameter is interpolated towards Value (in ms)
+ * @param Actor - (Optional) Actor on which to set the Game Parameter value
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic", meta = (AdvancedDisplay = "4"))
+ static void SetRTPCValue(class UAkRtpc const* RTPCValue, float Value, int32 InterpolationTimeMs, class AActor* Actor, FName RTPC);
+
+ /**
+ * Gets the value of a Game Parameter, optionally targetting the root component of a specified actor.
+ * @param RTPC - The name of the Game Parameter to set
+ * @param Value - The value of the Game Parameter
+ * @param InterpolationTimeMs - Duration during which the Game Parameter is interpolated towards Value (in ms)
+ * @param Actor - (Optional) Actor on which to set the Game Parameter value
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic", meta = (AdvancedDisplay = "7"))
+ static void GetRTPCValue(class UAkRtpc const* RTPCValue, int32 PlayingID, ERTPCValueType InputValueType, float& Value, ERTPCValueType& OutputValueType, class AActor* Actor, FName RTPC);
+
+ /**
+ * Resets the value of a Game Parameter to its default value, optionally targetting the root component of a specified actor.
+ * @param RTPCValue - The name of the Game Parameter to reset
+ * @param InterpolationTimeMs - Duration during which the Game Parameter is interpolated towards its default value (in ms)
+ * @param Actor - (Optional) Actor on which to reset the Game Parameter value
+ * @param RTPC - The name of the Game Parameter to reset
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic", meta = (AdvancedDisplay = "8"))
+ static void ResetRTPCValue(class UAkRtpc const* RTPCValue, int32 InterpolationTimeMs, class AActor* Actor, FName RTPC);
+
+ /**
+ * Set the active State for a given State Group.
+ * @param StateGroup - Name of the State Group to be modified
+ * @param State - Name of the State to be made active
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic", meta = (AdvancedDisplay = "1"))
+ static void SetState(class UAkStateValue const* StateValue, FName StateGroup, FName State);
+
+ /**
+ * Posts a Trigger, targetting the root component of a specified actor.
+ * @param Trigger - Name of the Trigger
+ * @param Actor - Actor on which to post the Trigger
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta = (AdvancedDisplay = "2"))
+ static void PostTrigger(class UAkTrigger const* TriggerValue, class AActor* Actor, FName Trigger);
+
+ /**
+ * Sets the active Switch for a given Switch Group, targetting the root component of a specified actor.
+ * @param SwitchGroup - Name of the Switch Group to be modified
+ * @param SwitchState - Name of the Switch to be made active
+ * @param Actor - Actor on which to set the switch
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor", meta = (AdvancedDisplay = "2"))
+ static void SetSwitch(class UAkSwitchValue const* SwitchValue, class AActor* Actor, FName SwitchGroup, FName SwitchState);
+
+ /** Sets multiple positions to a single game object.
+ * Setting multiple positions on a single game object is a way to simulate multiple emission sources while using the resources of only one voice.
+ * This can be used to simulate wall openings, area sounds, or multiple objects emitting the same sound in the same area.
+ * Note: Calling SetMultiplePositions() with only one position is the same as calling SetPosition()
+ * @param GameObjectAkComponent AkComponent of the game object on which to set positions.
+ * @param Positions Array of transforms to apply.
+ * @param MultiPositionType Position type
+ * @return AK_Success when successful, AK_InvalidParameter if parameters are not valid.
+ *
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void SetMultiplePositions(UAkComponent* GameObjectAkComponent, TArray Positions,
+ AkMultiPositionType MultiPositionType = AkMultiPositionType::MultiDirections);
+
+ /** Sets multiple positions to a single game object, with flexible assignment of input channels.
+ * Setting multiple positions on a single game object is a way to simulate multiple emission sources while using the resources of only one voice.
+ * This can be used to simulate wall openings, area sounds, or multiple objects emitting the same sound in the same area.
+ * Note: Calling AK::SoundEngine::SetMultiplePositions() with only one position is the same as calling AK::SoundEngine::SetPosition()
+ * @param GameObjectAkComponent AkComponent of the game object on which to set positions.
+ * @param ChannelMasks Array of channel configuration to apply for each position.
+ * @param Positions Array of transforms to apply.
+ * @param MultiPositionType Position type
+ * @return AK_Success when successful, AK_InvalidParameter if parameters are not valid.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void SetMultipleChannelEmitterPositions(UAkComponent* GameObjectAkComponent,
+ TArray ChannelMasks,
+ TArray Positions,
+ AkMultiPositionType MultiPositionType = AkMultiPositionType::MultiDirections
+ );
+
+ /** Sets multiple positions to a single game object, with flexible assignment of input channels.
+ * Setting multiple positions on a single game object is a way to simulate multiple emission sources while using the resources of only one voice.
+ * This can be used to simulate wall openings, area sounds, or multiple objects emitting the same sound in the same area.
+ * Note: Calling AK::SoundEngine::SetMultiplePositions() with only one position is the same as calling AK::SoundEngine::SetPosition()
+ * @param GameObjectAkComponent AkComponent of the game object on which to set positions.
+ * @param ChannelMasks Array of channel mask to apply for each position.
+ * @param Positions Array of transforms to apply.
+ * @param MultiPositionType Position type
+ * @return AK_Success when successful, AK_InvalidParameter if parameters are not valid.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void SetMultipleChannelMaskEmitterPositions(UAkComponent* GameObjectAkComponent,
+ TArray ChannelMasks,
+ TArray Positions,
+ AkMultiPositionType MultiPositionType = AkMultiPositionType::MultiDirections
+ );
+
+ /**
+ * Sets UseReverbVolumes flag on a specified actor. Set value to true to use reverb volumes on this component.
+ *
+ * @param inUseReverbVolumes - Whether to use reverb volumes or not.
+ * @param Actor - Actor on which to set the flag
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor")
+ static void UseReverbVolumes(bool inUseReverbVolumes, class AActor* Actor);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor", meta = (AdvancedDisplay = "6", DeprecatedFunction, DeprecationMessage = "This function is deprecated and will be removed in future releases."))
+ static void UseEarlyReflections(class AActor* Actor,
+ class UAkAuxBus* AuxBus,
+ int Order = 1,
+ float BusSendGain = 1.f,
+ float MaxPathLength = 100000.f,
+ bool SpotReflectors = false,
+ const FString& AuxBusName = FString(""));
+
+ /**
+ * Sets the Reflections Order for Spatial Audio Reflect.
+ *
+ * @param Order - The order of Reflection. Can be 0 to 4.
+ * @param RefreshPaths - whether the paths should be refreshed immediately.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
+ static void SetReflectionsOrder(int Order, bool RefreshPaths);
+
+ /**
+ * Sets the obstruction and occlusion value of sounds going through this portal.
+ *
+ * @param PortalComponent - The portal through which sound path need to pass to get obstructed and occluded.
+ * @param ObstructionValue - The obstruction value. Can be 0 to 1.
+ * @param OcclusionValue - The occlusion value. Can be 0 to 1.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
+ static void SetPortalObstructionAndOcclusion(UAkPortalComponent* PortalComponent, float ObstructionValue, float OcclusionValue);
+
+ /**
+ * Sets the obstruction value of sounds going from this game object through this portal.
+ *
+ * @param GameObjectAkComponent - The game object emitting the sound that we want to obstruct.
+ * @param PortalComponent - The portal through which the sound from the game object can go.
+ * @param OcclusionValue - The occlusion value. Can be 0 to 1.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
+ static void SetGameObjectToPortalObstruction(UAkComponent* GameObjectAkComponent, UAkPortalComponent* PortalComponent, float ObstructionValue);
+
+ /**
+ * Sets the obstruction value of sounds going from a first portal through the next portal.
+ *
+ * @param PortalComponent0 - The first portal through which a sound path goes.
+ * @param PortalComponent1 - The next portal throuh which the sound path goes from the first portal.
+ * @param OcclusionValue - The occlusion value. Can be 0 to 1.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Spatial Audio")
+ static void SetPortalToPortalObstruction(UAkPortalComponent* PortalComponent0, UAkPortalComponent* PortalComponent1, float ObstructionValue);
+
+ /**
+ * Set the output bus volume (direct) to be used for the specified game object.
+ * The control value is a number ranging from 0.0f to 1.0f.
+ *
+ * @param BusVolume - Bus volume to set
+ * @param Actor - Actor on which to set the flag
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|Actor")
+ static void SetOutputBusVolume(float BusVolume, class AActor* Actor);
+
+ /**
+ * Force channel configuration for the specified bus.
+ * This function has unspecified behavior when changing the configuration of a bus that
+ * is currently playing.
+ * You cannot change the configuration of the master bus.
+ *
+ * @param BusName Bus Name
+ * @param ChannelConfiguration Desired channel configuration.
+ * @return Always returns AK_Success
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void SetBusConfig(const FString& BusName, AkChannelConfiguration ChannelConfiguration);
+
+ /**
+ * Set the panning rule of the specified output.
+ * This may be changed anytime once the sound engine is initialized.
+ * @warning This function posts a message through the sound engine's internal message queue, whereas GetPanningRule() queries the current panning rule directly.
+ *
+ * @param PanRule Panning rule.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void SetPanningRule(PanningRule PanRule);
+
+ /**
+ * Adds an output to the sound engine. Use this to add controller-attached headphones, controller speakers, DVR output, etc.
+ * The in_Settings parameter contains an Audio Device shareset to specify the output plugin to use and a device ID to specify the instance, if necessary (e.g. which game controller).
+ *
+ * Like most functions of AK::SoundEngine, AddOutput is asynchronous.
+ * A successful return code merely indicates that the request is properly queued. Error codes returned by this function indicate various invalid parameters.
+ * To know if this function succeeds or not, and the failure code, register an AkDeviceStatusCallbackFunc callback with RegisterAudioDeviceStatusCallback.
+ *
+ * @param in_Settings Creation parameters for this output.
+ * @param out_pDeviceID (Optional) Output ID to use with all other Output management functions. Leave to NULL if not required.
+ * @param in_pListenerIDs Specific listener(s) to attach to this device. If specified, only the sounds routed to game objects linked to those listeners will play in this device. It is necessary to have separate listeners if multiple devices of the same type can coexist (e.g. controller speakers) If not specified, sound routing simply obey the associations between Master Busses and Audio Devices setup in the Wwise Project.
+ */
+ UFUNCTION(BlueprintCallable, meta = (AutoCreateRefTerm = "in_ListenerIDs"), Category = "Audiokinetic")
+ static void AddOutput(const FAkOutputSettings& in_Settings, FAkOutputDeviceID& out_DeviceID, UPARAM(ref) TArray& in_ListenerIDs);
+
+ /**
+ * Removes one output added through AK::SoundEngine::AddOutput If a listener was associated with the device, you should consider unregistering the listener prior to call RemoveOutput so that Game Object/Listener routing is properly updated according to your game scenario.
+ *
+ * @param in_OutputDeviceId ID of the output to remove. Use the returned ID from AddOutput, GetOutputID, or ReplaceOutputt.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void RemoveOutput(FAkOutputDeviceID in_OutputDeviceId);
+
+ /**
+ * Replaces the main output device previously created during engine initialization with a new output device.
+ * In addition to simply removing one output device and adding a new one, the new output device will also be used on all of the master busses
+ * that the old output device was associated with, and preserve all listeners that were attached to the old output device.
+ *
+ * @param MainOutputSettings Creation parameters for this output
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void ReplaceMainOutput(const FAkOutputSettings& MainOutputSettings);
+
+ /**
+ * Gets speaker angles of the specified device. Speaker angles are used for 3D positioning of sounds over standard configurations.
+ * Note that the current version of Wwise only supports positioning on the plane.
+ * The speaker angles are expressed as an array of loudspeaker pairs, in degrees, relative to azimuth ]0,180].
+ * Supported loudspeaker setups are always symmetric; the center speaker is always in the middle and thus not specified by angles.
+ * Angles must be set in ascending order.
+ *
+ * @param SpeakerAngles Returned array of loudspeaker pair angles, in degrees relative to azimuth [0,180].
+ * @param HeightAngle Elevation of the height layer, in degrees relative to the plane [-90,90].
+ * @param DeviceShareSet ShareSet for which to get the angles.
+ *
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void GetSpeakerAngles(TArray& SpeakerAngles, float& HeightAngle, const FString& DeviceShareSet = "");
+
+ /**
+ * Sets speaker angles of the specified device. Speaker angles are used for 3D positioning of sounds over standard configurations.
+ * Note that the current version of Wwise only supports positioning on the plane.
+ * The speaker angles are expressed as an array of loudspeaker pairs, in degrees, relative to azimuth ]0,180].
+ * Supported loudspeaker setups are always symmetric; the center speaker is always in the middle and thus not specified by angles.
+ * Angles must be set in ascending order.
+ *
+ * @param SpeakerAngles Array of loudspeaker pair angles, in degrees relative to azimuth [0,180]
+ * @param HeightAngle Elevation of the height layer, in degrees relative to the plane [-90,90]
+ * @param DeviceShareSet ShareSet for which to set the angles on.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static void SetSpeakerAngles(const TArray& SpeakerAngles, float HeightAngle, const FString& DeviceShareSet = "");
+
+ /**
+ * Sets the occlusion calculation refresh interval, targetting the root component of a specified actor.
+ * @param RefreshInterval - Value of the wanted refresh interval
+ * @param Actor - Actor on which to set the refresh interval
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor")
+ static void SetOcclusionRefreshInterval(float RefreshInterval, class AActor* Actor );
+
+ /**
+ * Stop all sounds for an actor.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Actor")
+ static void StopActor(class AActor* Actor);
+
+ /**
+ * Stop all sounds.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic")
+ static void StopAll();
+
+ /**
+ * Cancels an Event callback
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ static void CancelEventCallback(const FOnAkPostEventCallback& PostEventCallback);
+
+ /**
+ * Start all Ak ambient sounds.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkAmbientSound", meta=(WorldContext = "WorldContextObject"))
+ static void StartAllAmbientSounds(UObject* WorldContextObject);
+
+ /**
+ * Stop all Ak ambient sounds.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|AkAmbientSound", meta=(WorldContext = "WorldContextObject"))
+ static void StopAllAmbientSounds(UObject* WorldContextObject);
+
+ /**
+ * Clear all loaded banks
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks", meta = (DeprecatedFunction, DeprecationMessage = "Use the \"ClearSoundBanksAndMedia\" instead."))
+ static void ClearBanks();
+
+ /**
+ * Clear all loaded banks
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks")
+ static void ClearSoundBanksAndMedia();
+
+ /**
+ * Loads the Init SoundBank
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks")
+ static void LoadInitBank();
+
+ /**
+ * Unloads the Init SoundBank
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks")
+ static void UnloadInitBank();
+
+ /**
+ * Loads a bank by its name.
+ * @param Bank - The bank to load.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks", meta = (DeprecatedFunction, DeprecationMessage = "To manually load and unload the bank and media resources for your Wwise Assets, use the Wwise Asset LoadData and UnloadData Blueprint functions."))
+ static void LoadBankByName(const FString& BankName);
+
+ /**
+ * Unloads a bank by its name.
+ * @param Bank - The bank to unload.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|SoundBanks", meta = (DeprecatedFunction, DeprecationMessage = "To manually load and unload the bank and media resources for your Wwise Assets, use the Wwise Asset LoadData and UnloadData Blueprint functions."))
+ static void UnloadBankByName(const FString& BankName);
+
+ /**
+ * Starts a Wwise output capture. The output file will be located in the same folder as the SoundBanks.
+ * @param Filename - The name to give to the output file.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
+ static void StartOutputCapture(const FString& Filename);
+
+ /**
+ * Add text marker in output capture file.
+ * @param MarkerText - The name text to put in the marker.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
+ static void AddOutputCaptureMarker(const FString& MarkerText);
+
+ /**
+ * Stops a Wwise output capture. The output file will be located in the same folder as the SoundBanks.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
+ static void StopOutputCapture();
+
+ /**
+ * Starts a Wwise profiler capture. The output file will be located in the same folder as the SoundBanks.
+ * @param Filename - The name to give to the output file.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
+ static void StartProfilerCapture(const FString& Filename);
+
+ /**
+ * Stops a Wwise profiler capture. The output file will be located in the same folder as the SoundBanks.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category="Audiokinetic|Debug")
+ static void StopProfilerCapture();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture")
+ static FString GetCurrentAudioCulture();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture")
+ static TArray GetAvailableAudioCultures();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture", meta = (WorldContext = "WorldContextObject", Latent, LatentInfo = "LatentInfo"))
+ static void SetCurrentAudioCulture(const FString& AudioCulture, FLatentActionInfo LatentInfo, UObject* WorldContextObject);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Culture")
+ static void SetCurrentAudioCultureAsync(const FString& AudioCulture, const FOnSetCurrentAudioCultureCallback& Completed);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static UObject* GetAkAudioTypeUserData(const UAkAudioType* Instance, const UClass* Type);
+
+ /** Sets an effect ShareSet on an output device
+ *
+ * @param InDeviceID Output ID, as returned from AddOutput or GetOutputID. You can pass 0 for the main (default) output
+ * @param InEffectIndex Effect slot index (0-3)
+ * @param InEffectShareSet Effect ShareSet asset
+ * @return Always returns True
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static bool SetOutputDeviceEffect(const FAkOutputDeviceID InDeviceID, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
+
+ /** Sets an Effect ShareSet at the specified Bus and Effect slot index.
+ *
+ * @param InBusName Bus name
+ * @param InEffectIndex Effect slot index (0-3)
+ * @param InEffectShareSet Effect ShareSet asset
+ * @return True when successfully posted, False otherwise.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static bool SetBusEffectByName(const FString InBusName, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
+
+ /** Sets an Effect ShareSet at the specified Bus and Effect slot index.
+ *
+ * @param InBusID Bus Short ID.
+ * @param InEffectIndex Effect slot index (0-3)
+ * @param InEffectShareSet Effect ShareSet asset
+ * @return True when successfully posted, False otherwise.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static bool SetBusEffectByID(const FAkUniqueID InBusID, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
+
+ /** Sets an Effect ShareSet at the specified Bus and Effect slot index.
+ *
+ * @param InAuxBus Aux Bus Asset.
+ * @param InEffectIndex Effect slot index (0-3)
+ * @param InEffectShareSet Effect ShareSet asset
+ * @return True when successfully posted, False otherwise.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static bool SetAuxBusEffect(const UAkAuxBus* InAuxBus, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
+
+ /** Sets an Effect ShareSet at the specified audio node and Effect slot index.
+ *
+ * @param InAudioNodeID Can be a member of the Actor-Mixer or Interactive Music Hierarchy (not a bus).
+ * @param InEffectIndex Effect slot index (0-3)
+ * @param InEffectShareSet Effect ShareSet asset
+ * @return Always returns True.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic")
+ static bool SetActorMixerEffect(const FAkUniqueID InAudioNodeID, const int32 InEffectIndex, const UAkEffectShareSet* InEffectShareSet);
+
+ /**
+ * Use the position of a separate Actor for distance calculations for a specified listener.
+ * When called, Wwise calculates distance attenuation and filtering
+ * based on the distance between the AkComponent on the distance probe Actor and the sound source.
+ * Useful for third-person perspective applications, the distance probe may be set to the player character's position,
+ * and the listener position to that of the camera. In this scenario, attenuation is based on
+ * the distance between the character and the sound, whereas panning, spatialization, and spread and focus calculations are base on the camera.
+ * @param Listener - The listener that is being affected. By default, the listener is attached to the Player Camera Manager.
+ * @param DistanceProbe - An actor to assign as the distance probe.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|Actor")
+ static void SetDistanceProbe(AActor* Listener, AActor* DistanceProbe);
+
+ static bool m_bSoundEngineRecording;
+
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayTypes.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayTypes.h
new file mode 100644
index 0000000..cc86f11
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGameplayTypes.h
@@ -0,0 +1,1131 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkGameplayStatics.h:
+=============================================================================*/
+#pragma once
+
+#include "Platforms/AkUEPlatform.h"
+#include "Async/Future.h"
+#include "Engine/EngineBaseTypes.h"
+#include "Engine/EngineTypes.h"
+#include "Engine/LatentActionManager.h"
+#include "HAL/ThreadSafeBool.h"
+#include "LatentActions.h"
+#include "AkDeprecated.h"
+#include "AkGameplayTypes.generated.h"
+
+
+UENUM(BlueprintType)
+enum class EAkAudioContext : uint8
+{
+ Foreign, // Sounds unrelated to gameplay or editor
+ GameplayAudio, // Sounds playing during gameplay, simulation, PIE, etc.
+ EditorAudio, // Editor sounds (e.g. UI)
+ AlwaysActive, // Sounds which should last for the entire runtime, and not be stopped
+};
+
+UENUM(BlueprintType)
+enum class PanningRule : uint8
+{
+ PanningRule_Speakers = 0, ///< Left and right positioned 60 degrees apart (by default - see AK::SoundEngine::GetSpeakerAngles()).
+ PanningRule_Headphones = 1 ///< Left and right positioned 180 degrees apart.
+};
+
+UENUM(BlueprintType)
+enum class AkAcousticPortalState : uint8
+{
+ Closed = 0,
+ Open = 1,
+};
+
+UENUM(BlueprintType)
+enum class AkChannelConfiguration : uint8
+{
+ Ak_Parent = 0,
+ Ak_MainMix,
+ Ak_Passthrough,
+ Ak_LFE,
+ AK_Audio_Objects,
+ Ak_1_0,
+ Ak_2_0,
+ Ak_2_1,
+ Ak_3_0,
+ Ak_3_1,
+ Ak_4_0,
+ Ak_4_1,
+ Ak_5_0,
+ Ak_5_1,
+ Ak_7_1,
+ Ak_5_1_2,
+ Ak_7_1_2,
+ Ak_7_1_4,
+ Ak_Auro_9_1,
+ Ak_Auro_10_1,
+ Ak_Auro_11_1,
+ Ak_Auro_13_1,
+ Ak_Ambisonics_1st_order,
+ Ak_Ambisonics_2nd_order,
+ Ak_Ambisonics_3rd_order,
+ Ak_Ambisonics_4th_order,
+ Ak_Ambisonics_5th_order
+};
+
+UENUM(meta=(Bitflags, UseEnumValuesAsMaskValuesInEditor = "true"))
+enum class AkSpeakerConfiguration
+{
+ Ak_Speaker_Front_Left = AK_SPEAKER_FRONT_LEFT,
+ Ak_Speaker_Front_Right = AK_SPEAKER_FRONT_RIGHT,
+ Ak_Speaker_Front_Center = AK_SPEAKER_FRONT_CENTER,
+ Ak_Speaker_Low_Frequency = AK_SPEAKER_LOW_FREQUENCY,
+ Ak_Speaker_Back_Left = AK_SPEAKER_BACK_LEFT,
+ Ak_Speaker_Back_Right = AK_SPEAKER_BACK_RIGHT,
+ Ak_Speaker_Back_Center = AK_SPEAKER_BACK_CENTER,
+ Ak_Speaker_Side_Left = AK_SPEAKER_SIDE_LEFT,
+ Ak_Speaker_Side_Right = AK_SPEAKER_SIDE_RIGHT,
+ Ak_Speaker_Top = AK_SPEAKER_TOP,
+ Ak_Speaker_Height_Front_Left = AK_SPEAKER_HEIGHT_FRONT_LEFT,
+ Ak_Speaker_Height_Front_Center = AK_SPEAKER_HEIGHT_FRONT_CENTER,
+ Ak_Speaker_Height_Front_Right = AK_SPEAKER_HEIGHT_FRONT_RIGHT,
+ Ak_Speaker_Height_Back_Left = AK_SPEAKER_HEIGHT_BACK_LEFT,
+ Ak_Speaker_Height_Back_Center = AK_SPEAKER_HEIGHT_BACK_CENTER,
+ Ak_Speaker_Height_Back_Right = AK_SPEAKER_HEIGHT_BACK_RIGHT,
+};
+
+UENUM(BlueprintType)
+enum class AkMultiPositionType : uint8
+{
+ SingleSource = 0, //AK::SoundEngine::MultiPositionType_SingleSource,
+ MultiSources = 1, //AK::SoundEngine::MultiPositionType_MultiSources,
+ MultiDirections = 2, //AK::SoundEngine::MultiPositionType_MultiDirections,
+};
+
+static_assert(static_cast(AkMultiPositionType::SingleSource) == AK::SoundEngine::MultiPositionType_SingleSource, "AkMultiPositionType::SingleSource does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(AkMultiPositionType::MultiSources) == AK::SoundEngine::MultiPositionType_MultiSources, "AkMultiPositionType::MultiSources does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(AkMultiPositionType::MultiDirections) == AK::SoundEngine::MultiPositionType_MultiDirections, "AkMultiPositionType::MultiDirections does not correspond with its internal Wwise counterpart.");
+
+UENUM(BlueprintType)
+enum class AkActionOnEventType : uint8
+{
+ // AK::SoundEngine::AkActionOnEventType_Stop
+ Stop = 0,
+ // AK::SoundEngine::AkActionOnEventType_Pause
+ Pause = 1,
+ // AK::SoundEngine::AkActionOnEventType_Resume
+ Resume = 2,
+ // AK::SoundEngine::AkActionOnEventType_Break
+ Break = 3,
+ // AK::SoundEngine::AkActionOnEventType_ReleaseEnvelope
+ ReleaseEnvelope = 4
+};
+
+static_assert(static_cast(AkActionOnEventType::Stop) == AK::SoundEngine::AkActionOnEventType_Stop, "AkActionOnEventType::Stop does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(AkActionOnEventType::Pause) == AK::SoundEngine::AkActionOnEventType_Pause, "AkActionOnEventType::Pause does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(AkActionOnEventType::Resume) == AK::SoundEngine::AkActionOnEventType_Resume, "AkActionOnEventType::Resume does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(AkActionOnEventType::Break) == AK::SoundEngine::AkActionOnEventType_Break, "AkActionOnEventType::Break does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(AkActionOnEventType::ReleaseEnvelope) == AK::SoundEngine::AkActionOnEventType_ReleaseEnvelope, "AkActionOnEventType::ReleaseEnvelope does not correspond with its internal Wwise counterpart.");
+
+UENUM(BlueprintType)
+enum class EAkCurveInterpolation : uint8
+{
+ // Log3
+ Log3 = 0,
+ // Sine
+ Sine = 1,
+ // Log1
+ Log1 = 2,
+ // Inversed S Curve
+ InvSCurve = 3,
+ // Linear (Default)
+ Linear = 4,
+ // S Curve
+ SCurve = 5,
+ // Exp1
+ Exp1 = 6,
+ // Reciprocal of sine curve
+ SineRecip = 7,
+ // Exp3
+ Exp3 = 8,
+ // Update this value to reflect last curve available for fades
+ LastFadeCurve = 8,
+ // Constant ( not valid for fading values )
+ Constant = 9
+};
+
+static_assert(static_cast(EAkCurveInterpolation::Log3) == AkCurveInterpolation_Log3, "AkCurveInterpolation::Log3 does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::Sine) == AkCurveInterpolation_Sine, "AkCurveInterpolation::Sine does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::Log1) == AkCurveInterpolation_Log1, "AkCurveInterpolation::Log1 does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::InvSCurve) == AkCurveInterpolation_InvSCurve, "AkCurveInterpolation::InvSCurve does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::Linear) == AkCurveInterpolation_Linear, "AkCurveInterpolation::Linear does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::SCurve) == AkCurveInterpolation_SCurve, "AkCurveInterpolation::SCurve does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::Exp1) == AkCurveInterpolation_Exp1, "AkCurveInterpolation::Exp1 does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::SineRecip) == AkCurveInterpolation_SineRecip, "AkCurveInterpolation::SineRecip does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::Exp3) == AkCurveInterpolation_Exp3, "AkCurveInterpolation::Exp3 does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::LastFadeCurve) == AkCurveInterpolation_LastFadeCurve, "AkCurveInterpolation::LastFadeCurve does not correspond with its internal Wwise counterpart.");
+static_assert(static_cast(EAkCurveInterpolation::Constant) == AkCurveInterpolation_Constant, "AkCurveInterpolation::Constant does not correspond with its internal Wwise counterpart.");
+
+static_assert(AK_NotImplemented == 0, "AK_NotImplemented is not equal to 0, please change the value in the EAkResult enum");
+UENUM(BlueprintType)
+enum class EAkResult : uint8
+{
+ NotImplemented = 0 UMETA(ToolTip = "This feature is not implemented."),
+ Success = AK_Success UMETA(ToolTip = "The operation was successful."),
+ Fail = AK_Fail UMETA(ToolTip = "The operation failed."),
+ PartialSuccess = AK_PartialSuccess UMETA(ToolTip = "The operation succeeded partially."),
+ NotCompatible = AK_NotCompatible UMETA(ToolTip = "Incompatible formats."),
+ AlreadyConnected = AK_AlreadyConnected UMETA(ToolTip = "The stream is already connected to another node."),
+ InvalidFile = AK_InvalidFile UMETA(ToolTip = "An unexpected value causes the file to be invalid."),
+ AudioFileHeaderTooLarge = AK_AudioFileHeaderTooLarge UMETA(ToolTip = "The file header is too large."),
+ MaxReached = AK_MaxReached UMETA(ToolTip = "The maximum was reached."),
+ InvalidID = AK_InvalidID UMETA(ToolTip = "The ID is invalid."),
+ IDNotFound = AK_IDNotFound UMETA(ToolTip = "The ID was not found.", DisplayName = "ID Not Found"),
+ InvalidInstanceID = AK_InvalidInstanceID UMETA(ToolTip = "The InstanceID is invalid."),
+ NoMoreData = AK_NoMoreData UMETA(ToolTip = "No more data is available from the source."),
+ InvalidStateGroup = AK_InvalidStateGroup UMETA(ToolTip = "The StateGroup is not a valid channel."),
+ ChildAlreadyHasAParent = AK_ChildAlreadyHasAParent UMETA(ToolTip = "The child already has a parent.", DisplayName = "Child Already Has A Parent"),
+ InvalidLanguage = AK_InvalidLanguage UMETA(ToolTip = "The language is invalid (applies to the Low-Level I/O)."),
+ CannotAddItseflAsAChild = AK_CannotAddItseflAsAChild UMETA(ToolTip = "It is not possible to add itself as its own child.", DisplayName = "Cannot Add Itself As A Child"),
+ InvalidParameter = AK_InvalidParameter UMETA(ToolTip = "Something is not within bounds."),
+ ElementAlreadyInList = AK_ElementAlreadyInList UMETA(ToolTip = "The item could not be added because it was already in the list."),
+ PathNotFound = AK_PathNotFound UMETA(ToolTip = "This path is not known."),
+ PathNoVertices = AK_PathNoVertices UMETA(ToolTip = "Stuff in vertices before trying to start it."),
+ PathNotRunning = AK_PathNotRunning UMETA(ToolTip = "Only a running path can be paused."),
+ PathNotPaused = AK_PathNotPaused UMETA(ToolTip = "Only a paused path can be resumed."),
+ PathNodeAlreadyInList = AK_PathNodeAlreadyInList UMETA(ToolTip = "This path is already there."),
+ PathNodeNotInList = AK_PathNodeNotInList UMETA(ToolTip = "This path is not there."),
+ DataNeeded = AK_DataNeeded UMETA(ToolTip = "The consumer needs more."),
+ NoDataNeeded = AK_NoDataNeeded UMETA(ToolTip = "The consumer does not need more."),
+ DataReady = AK_DataReady UMETA(ToolTip = "The provider has available data."),
+ NoDataReady = AK_NoDataReady UMETA(ToolTip = "The provider does not have available data."),
+ InsufficientMemory = AK_InsufficientMemory UMETA(ToolTip = "Memory error."),
+ Cancelled = AK_Cancelled UMETA(ToolTip = "The requested action was cancelled (not an error)."),
+ UnknownBankID = AK_UnknownBankID UMETA(ToolTip = "Trying to load a bank using an ID which is not defined."),
+ BankReadError = AK_BankReadError UMETA(ToolTip = "Error while reading a bank."),
+ InvalidSwitchType = AK_InvalidSwitchType UMETA(ToolTip = "Invalid switch type (used with the switch container)"),
+ FormatNotReady = AK_FormatNotReady UMETA(ToolTip = "Source format not known yet."),
+ WrongBankVersion = AK_WrongBankVersion UMETA(ToolTip = "The bank version is not compatible with the current bank reader."),
+ FileNotFound = AK_FileNotFound UMETA(ToolTip = "File not found."),
+ DeviceNotReady = AK_DeviceNotReady UMETA(ToolTip = "IO device not ready (may be because the tray is open)."),
+ BankAlreadyLoaded = AK_BankAlreadyLoaded UMETA(ToolTip = "The bank load failed because the bank is already loaded."),
+ RenderedFX = AK_RenderedFX UMETA(ToolTip = "The effect on the node is rendered."),
+ ProcessNeeded = AK_ProcessNeeded UMETA(ToolTip = "A routine needs to be executed on some CPU."),
+ ProcessDone = AK_ProcessDone UMETA(ToolTip = "The executed routine has finished its execution."),
+ MemManagerNotInitialized = AK_MemManagerNotInitialized UMETA(ToolTip = "The memory manager should have been initialized at this point."),
+ StreamMgrNotInitialized = AK_StreamMgrNotInitialized UMETA(ToolTip = "The stream manager should have been initialized at this point."),
+ SSEInstructionsNotSupported = AK_SSEInstructionsNotSupported UMETA(ToolTip = "The machine does not support SSE instructions (required on PC)."),
+ Busy = AK_Busy UMETA(ToolTip = "The system is busy and could not process the request."),
+ UnsupportedChannelConfig = AK_UnsupportedChannelConfig UMETA(ToolTip = "Channel configuration is not supported in the current execution context."),
+ PluginMediaNotAvailable = AK_PluginMediaNotAvailable UMETA(ToolTip = "Plugin media is not available for effect."),
+ MustBeVirtualized = AK_MustBeVirtualized UMETA(ToolTip = "Sound was Not Allowed to play."),
+ CommandTooLarge = AK_CommandTooLarge UMETA(ToolTip = "SDK command is too large to fit in the command queue."),
+ RejectedByFilter = AK_RejectedByFilter UMETA(ToolTip = "A play request was rejected due to the MIDI filter parameters."),
+ InvalidCustomPlatformName = AK_InvalidCustomPlatformName UMETA(ToolTip = "Detecting incompatibility between Custom platform of banks and custom platform of connected application."),
+ DLLCannotLoad = AK_DLLCannotLoad UMETA(ToolTip = "Plugin DLL could not be loaded, either because it is not found or one dependency is missing."),
+ DLLPathNotFound = AK_DLLPathNotFound UMETA(ToolTip = "Plugin DLL search path could not be found."),
+ NoJavaVM = AK_NoJavaVM UMETA(ToolTip = "No Java VM provided in AkInitSettings."),
+ OpenSLError = AK_OpenSLError UMETA(ToolTip = "OpenSL returned an error. Check error log for more details."),
+ PluginNotRegistered = AK_PluginNotRegistered UMETA(ToolTip = "Plugin is not registered. Make sure to implement a AK::PluginRegistration class for it and use AK_STATIC_LINK_PLUGIN in the game binary."),
+ DataAlignmentError = AK_DataAlignmentError UMETA(ToolTip = "A pointer to audio data was not aligned to the platform's required alignment (check AkTypes.h in the platform-specific folder)."),
+};
+
+#define CHECK_AKRESULT_VALUE(ValueName) static_assert(AK_##ValueName == (uint32)EAkResult::ValueName, #ValueName " value has changed in AKRESULT, please update the EAkResult::" #ValueName " value");
+CHECK_AKRESULT_VALUE(NotImplemented);
+CHECK_AKRESULT_VALUE(Success);
+CHECK_AKRESULT_VALUE(Fail);
+CHECK_AKRESULT_VALUE(PartialSuccess);
+CHECK_AKRESULT_VALUE(NotCompatible);
+CHECK_AKRESULT_VALUE(AlreadyConnected);
+CHECK_AKRESULT_VALUE(InvalidFile);
+CHECK_AKRESULT_VALUE(AudioFileHeaderTooLarge);
+CHECK_AKRESULT_VALUE(MaxReached);
+CHECK_AKRESULT_VALUE(InvalidID);
+CHECK_AKRESULT_VALUE(IDNotFound);
+CHECK_AKRESULT_VALUE(InvalidInstanceID);
+CHECK_AKRESULT_VALUE(NoMoreData);
+CHECK_AKRESULT_VALUE(InvalidStateGroup);
+CHECK_AKRESULT_VALUE(ChildAlreadyHasAParent);
+CHECK_AKRESULT_VALUE(InvalidLanguage);
+CHECK_AKRESULT_VALUE(CannotAddItseflAsAChild);
+CHECK_AKRESULT_VALUE(InvalidParameter);
+CHECK_AKRESULT_VALUE(ElementAlreadyInList);
+CHECK_AKRESULT_VALUE(PathNotFound);
+CHECK_AKRESULT_VALUE(PathNoVertices);
+CHECK_AKRESULT_VALUE(PathNotRunning);
+CHECK_AKRESULT_VALUE(PathNotPaused);
+CHECK_AKRESULT_VALUE(PathNodeAlreadyInList);
+CHECK_AKRESULT_VALUE(PathNodeNotInList);
+CHECK_AKRESULT_VALUE(DataNeeded);
+CHECK_AKRESULT_VALUE(NoDataNeeded);
+CHECK_AKRESULT_VALUE(DataReady);
+CHECK_AKRESULT_VALUE(NoDataReady);
+CHECK_AKRESULT_VALUE(InsufficientMemory);
+CHECK_AKRESULT_VALUE(Cancelled);
+CHECK_AKRESULT_VALUE(UnknownBankID);
+CHECK_AKRESULT_VALUE(BankReadError);
+CHECK_AKRESULT_VALUE(InvalidSwitchType);
+CHECK_AKRESULT_VALUE(FormatNotReady);
+CHECK_AKRESULT_VALUE(WrongBankVersion);
+CHECK_AKRESULT_VALUE(FileNotFound);
+CHECK_AKRESULT_VALUE(DeviceNotReady);
+CHECK_AKRESULT_VALUE(BankAlreadyLoaded);
+CHECK_AKRESULT_VALUE(RenderedFX);
+CHECK_AKRESULT_VALUE(ProcessNeeded);
+CHECK_AKRESULT_VALUE(ProcessDone);
+CHECK_AKRESULT_VALUE(MemManagerNotInitialized);
+CHECK_AKRESULT_VALUE(StreamMgrNotInitialized);
+CHECK_AKRESULT_VALUE(SSEInstructionsNotSupported);
+CHECK_AKRESULT_VALUE(Busy);
+CHECK_AKRESULT_VALUE(UnsupportedChannelConfig);
+CHECK_AKRESULT_VALUE(PluginMediaNotAvailable);
+CHECK_AKRESULT_VALUE(MustBeVirtualized);
+CHECK_AKRESULT_VALUE(CommandTooLarge);
+CHECK_AKRESULT_VALUE(RejectedByFilter);
+CHECK_AKRESULT_VALUE(InvalidCustomPlatformName);
+CHECK_AKRESULT_VALUE(DLLCannotLoad);
+CHECK_AKRESULT_VALUE(DLLPathNotFound);
+CHECK_AKRESULT_VALUE(NoJavaVM);
+CHECK_AKRESULT_VALUE(OpenSLError);
+CHECK_AKRESULT_VALUE(PluginNotRegistered);
+CHECK_AKRESULT_VALUE(DataAlignmentError);
+
+
+/*=============================================================================
+
+Begin - Ak Callback Blueprint classes and structures. Known limitations:
+- AkDynamicSequenceItemCallbackInfo is not exposed because Dynamic sequences are not part of this integration
+- AkSpeakerVolumeMatrixCallbackInfo cannot be exposed to Blueprint because it has to be executed in the audio thread
+- AkMusicPlaylistCallbackInfo cannot be exposed to Blueprint because it has to be executed in the audio thread
+
+=============================================================================*/
+
+/// Type of callback. Used as a bitfield in methods AK::SoundEngine::PostEvent() and AK::SoundEngine::DynamicSequence::Open().
+UENUM(BlueprintType, meta = (Bitmask))
+enum class EAkCallbackType : uint8
+{
+ EndOfEvent = 0 UMETA(ToolTip = "Callback triggered when reaching the end of an event. AkCallbackInfo can be cast to AkEventCallbackInfo."),
+ Marker = 2 UMETA(ToolTip = "Callback triggered when encountering a marker during playback. AkCallbackInfo can be cast to AkMarkerCallbackInfo."),
+ Duration = 3 UMETA(ToolTip = "Callback triggered when the duration of the sound is known by the sound engine. AkCallbackInfo can be cast to AkDurationCallbackInfo."),
+
+ Starvation = 5 UMETA(ToolTip = "Callback triggered when playback skips a frame due to stream starvation. AkCallbackInfo can be cast to AkEventCallbackInfo."),
+
+ MusicPlayStarted = 7 UMETA(ToolTip = "Callback triggered when a Play or Seek command has been executed (Seek commands are issued from AK::SoundEngine::SeekOnEvent()). Applies to objects of the Interactive-Music Hierarchy only. AkCallbackInfo can be cast to AkEventCallbackInfo."),
+
+ MusicSyncBeat = 8 UMETA(ToolTip = "Enable notifications on Music Beat. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+ MusicSyncBar = 9 UMETA(ToolTip = "Enable notifications on Music Bar. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+ MusicSyncEntry = 10 UMETA(ToolTip = "Enable notifications on Music Entry Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+ MusicSyncExit = 11 UMETA(ToolTip = "Enable notifications on Music Exit Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+ MusicSyncGrid = 12 UMETA(ToolTip = "Enable notifications on Music Grid. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+ MusicSyncUserCue = 13 UMETA(ToolTip = "Enable notifications on Music Custom Cue. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+ MusicSyncPoint = 14 UMETA(ToolTip = "Enable notifications on Music switch transition synchronization point. AkCallbackInfo can be cast to AkMusicSyncCallbackInfo."),
+
+ MIDIEvent = 16 UMETA(ToolTip = "Enable notifications for MIDI events. AkCallbackInfo can be cast to AkMIDIEventCallbackInfo."),
+};
+
+#define CHECK_CALLBACK_TYPE_VALUE(ValueName) static_assert(AK_##ValueName == (1 << (uint32)EAkCallbackType::ValueName), #ValueName " value has changed in AkCallbackType, please update the EAkCallbackType::" #ValueName " value");
+CHECK_CALLBACK_TYPE_VALUE(EndOfEvent);
+CHECK_CALLBACK_TYPE_VALUE(Marker);
+CHECK_CALLBACK_TYPE_VALUE(Duration);
+CHECK_CALLBACK_TYPE_VALUE(Starvation);
+CHECK_CALLBACK_TYPE_VALUE(MusicPlayStarted);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncBeat);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncBar);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncEntry);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncExit);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncGrid);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncUserCue);
+CHECK_CALLBACK_TYPE_VALUE(MusicSyncPoint);
+CHECK_CALLBACK_TYPE_VALUE(MIDIEvent);
+
+static_assert(AK::SoundEngine::Query::RTPCValue_Default == 0, "AK::SoundEngine::Query::RTPCValue_Default is not equal to 0, please change the value in the ERTPCValueType enum");
+UENUM(BlueprintType)
+enum class ERTPCValueType : uint8
+{
+ // Need to set hard-coded 0, or else UHT complains.
+ Default = 0, ///< The value is the Default RTPC.
+ Global = AK::SoundEngine::Query::RTPCValue_Global, ///< The value is the Global RTPC.
+ GameObject = AK::SoundEngine::Query::RTPCValue_GameObject, ///< The value is the game object specific RTPC.
+ PlayingID = AK::SoundEngine::Query::RTPCValue_PlayingID, ///< The value is the playing ID specific RTPC.
+ Unavailable = AK::SoundEngine::Query::RTPCValue_Unavailable ///< The value is not available for the RTPC specified.
+};
+
+class AkCallbackTypeHelpers
+{
+public:
+ static UAkCallbackInfo* GetBlueprintableCallbackInfo(EAkCallbackType CallbackType, AkCallbackInfo* CallbackInfo);
+ static AkCallbackInfo* CopyWwiseCallbackInfo(AkCallbackType CallbackType, AkCallbackInfo* SourceCallbackInfo);
+ static AkCallbackType GetCallbackMaskFromBlueprintMask(int32 CallbackMask);
+ static EAkCallbackType GetBlueprintCallbackTypeFromAkCallbackType(AkCallbackType CallbackType);
+};
+
+/// Callback information structure used as base for all notifications handled by \ref AkCallbackFunc.
+/// \sa
+/// - AK::SoundEngine::PostEvent()
+/// - \ref soundengine_events
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkCallbackInfo : public UObject
+{
+ GENERATED_BODY()
+public:
+ UAkCallbackInfo( class FObjectInitializer const & ObjectInitializer);
+
+ static UAkCallbackInfo* Create(AkGameObjectID GameObjectID);
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo")
+ class UAkComponent * AkComponent = nullptr;
+
+ virtual void Reset();
+};
+
+USTRUCT(BlueprintType)
+struct FAkChannelMask
+{
+ GENERATED_BODY()
+public:
+ UPROPERTY(EditAnywhere, Category="Channel Mask", BlueprintReadWrite, meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.AkSpeakerConfiguration"))
+ int32 ChannelMask = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkOutputSettings
+{
+ GENERATED_BODY()
+public:
+ UPROPERTY(EditAnywhere, Category = "Output Settings", BlueprintReadWrite)
+ FString AudioDeviceShareSetName;
+
+ UPROPERTY(EditAnywhere, Category = "Output Settings", BlueprintReadWrite)
+ int32 IdDevice = 0;
+
+ UPROPERTY(EditAnywhere, Category = "Output Settings", BlueprintReadWrite, meta=(DisplayName="PanningRule"))
+ PanningRule PanRule = PanningRule::PanningRule_Speakers;
+
+ UPROPERTY(EditAnywhere, Category = "Output Settings", BlueprintReadWrite)
+ AkChannelConfiguration ChannelConfig = AkChannelConfiguration::Ak_Parent;
+};
+
+/// Callback information structure corresponding to \ref AK_EndOfEvent, \ref AK_MusicPlayStarted and \ref AK_Starvation.
+/// \sa
+/// - AK::SoundEngine::PostEvent()
+/// - \ref soundengine_events
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkEventCallbackInfo : public UAkCallbackInfo
+{
+ GENERATED_BODY()
+public:
+ UAkEventCallbackInfo(class FObjectInitializer const & ObjectInitializer);
+
+ static UAkEventCallbackInfo* Create(AkEventCallbackInfo* AkEventCallbackInfo);
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|AkEvent")
+ int32 PlayingID = 0; ///< Playing ID of Event, returned by PostEvent()
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|AkEvent")
+ int32 EventID = 0; ///< Unique ID of Event, passed to PostEvent()
+};
+
+
+// List of MIDI event types
+static_assert(AK_MIDI_EVENT_TYPE_INVALID == 0, "AK_MIDI_EVENT_TYPE_INVALID is not equal to 0, please change the value in the EAkMidiEventType enum");
+UENUM(BlueprintType)
+enum class EAkMidiEventType : uint8
+{
+ // Need to set hard-coded 0, or else UHT complains.
+ AkMidiEventTypeInvalid = 0,
+ AkMidiEventTypeNoteOff = AK_MIDI_EVENT_TYPE_NOTE_OFF,
+ AkMidiEventTypeNoteOn = AK_MIDI_EVENT_TYPE_NOTE_ON,
+ AkMidiEventTypeNoteAftertouch = AK_MIDI_EVENT_TYPE_NOTE_AFTERTOUCH,
+ AkMidiEventTypeController = AK_MIDI_EVENT_TYPE_CONTROLLER,
+ AkMidiEventTypeProgramChange = AK_MIDI_EVENT_TYPE_PROGRAM_CHANGE,
+ AkMidiEventTypeChannelAftertouch = AK_MIDI_EVENT_TYPE_CHANNEL_AFTERTOUCH,
+ AkMidiEventTypePitchBend = AK_MIDI_EVENT_TYPE_PITCH_BEND,
+ AkMidiEventTypeSysex = AK_MIDI_EVENT_TYPE_SYSEX,
+ AkMidiEventTypeEscape = AK_MIDI_EVENT_TYPE_ESCAPE,
+ AkMidiEventTypeMeta = AK_MIDI_EVENT_TYPE_META,
+};
+
+// List of Continuous Controller (cc) values
+static_assert(AK_MIDI_CC_BANK_SELECT_COARSE == 0, "AK_MIDI_CC_BANK_SELECT_COARSE is not equal to 0, please change the value in the EAkMidiCcValues enum");
+UENUM(BlueprintType)
+enum class EAkMidiCcValues : uint8
+{
+ // Need to set hard-coded 0, or else UHT complains.
+ AkMidiCcBankSelectCoarse = 0,
+ AkMidiCcModWheelCoarse = AK_MIDI_CC_MOD_WHEEL_COARSE,
+ AkMidiCcBreathCtrlCoarse = AK_MIDI_CC_BREATH_CTRL_COARSE,
+ AkMidiCcCtrl3Coarse = AK_MIDI_CC_CTRL_3_COARSE,
+ AkMidiCcFootPedalCoarse = AK_MIDI_CC_FOOT_PEDAL_COARSE,
+ AkMidiCcPortamentoCoarse = AK_MIDI_CC_PORTAMENTO_COARSE,
+ AkMidiCcDataEntryCoarse = AK_MIDI_CC_DATA_ENTRY_COARSE,
+ AkMidiCcVolumeCoarse = AK_MIDI_CC_VOLUME_COARSE,
+ AkMidiCcBalanceCoarse = AK_MIDI_CC_BALANCE_COARSE,
+ AkMidiCcCtrl9Coarse = AK_MIDI_CC_CTRL_9_COARSE,
+ AkMidiCcPanPositionCoarse = AK_MIDI_CC_PAN_POSITION_COARSE,
+ AkMidiCcExpressionCoarse = AK_MIDI_CC_EXPRESSION_COARSE,
+ AkMidiCcEffectCtrl1Coarse = AK_MIDI_CC_EFFECT_CTRL_1_COARSE,
+ AkMidiCcEffectCtrl2Coarse = AK_MIDI_CC_EFFECT_CTRL_2_COARSE,
+ AkMidiCcCtrl14Coarse = AK_MIDI_CC_CTRL_14_COARSE,
+ AkMidiCcCtrl15Coarse = AK_MIDI_CC_CTRL_15_COARSE,
+ AkMidiCcGenSlider1 = AK_MIDI_CC_GEN_SLIDER_1,
+ AkMidiCcGenSlider2 = AK_MIDI_CC_GEN_SLIDER_2,
+ AkMidiCcGenSlider3 = AK_MIDI_CC_GEN_SLIDER_3,
+ AkMidiCcGenSlider4 = AK_MIDI_CC_GEN_SLIDER_4,
+ AkMidiCcCtrl20Coarse = AK_MIDI_CC_CTRL_20_COARSE,
+ AkMidiCcCtrl21Coarse = AK_MIDI_CC_CTRL_21_COARSE,
+ AkMidiCcCtrl22Coarse = AK_MIDI_CC_CTRL_22_COARSE,
+ AkMidiCcCtrl23Coarse = AK_MIDI_CC_CTRL_23_COARSE,
+ AkMidiCcCtrl24Coarse = AK_MIDI_CC_CTRL_24_COARSE,
+ AkMidiCcCtrl25Coarse = AK_MIDI_CC_CTRL_25_COARSE,
+ AkMidiCcCtrl26Coarse = AK_MIDI_CC_CTRL_26_COARSE,
+ AkMidiCcCtrl27Coarse = AK_MIDI_CC_CTRL_27_COARSE,
+ AkMidiCcCtrl28Coarse = AK_MIDI_CC_CTRL_28_COARSE,
+ AkMidiCcCtrl29Coarse = AK_MIDI_CC_CTRL_29_COARSE,
+ AkMidiCcCtrl30Coarse = AK_MIDI_CC_CTRL_30_COARSE,
+ AkMidiCcCtrl31Coarse = AK_MIDI_CC_CTRL_31_COARSE,
+ AkMidiCcBankSelectFine = AK_MIDI_CC_BANK_SELECT_FINE,
+ AkMidiCcModWheelFine = AK_MIDI_CC_MOD_WHEEL_FINE,
+ AkMidiCcBreathCtrlFine = AK_MIDI_CC_BREATH_CTRL_FINE,
+ AkMidiCcCtrl3Fine = AK_MIDI_CC_CTRL_3_FINE,
+ AkMidiCcFootPedalFine = AK_MIDI_CC_FOOT_PEDAL_FINE,
+ AkMidiCcPortamentoFine = AK_MIDI_CC_PORTAMENTO_FINE,
+ AkMidiCcDataEntryFine = AK_MIDI_CC_DATA_ENTRY_FINE,
+ AkMidiCcVolumeFine = AK_MIDI_CC_VOLUME_FINE,
+ AkMidiCcBalanceFine = AK_MIDI_CC_BALANCE_FINE,
+ AkMidiCcCtrl9Fine = AK_MIDI_CC_CTRL_9_FINE,
+ AkMidiCcPanPositionFine = AK_MIDI_CC_PAN_POSITION_FINE,
+ AkMidiCcExpressionFine = AK_MIDI_CC_EXPRESSION_FINE,
+ AkMidiCcEffectCtrl1Fine = AK_MIDI_CC_EFFECT_CTRL_1_FINE,
+ AkMidiCcEffectCtrl2Fine = AK_MIDI_CC_EFFECT_CTRL_2_FINE,
+ AkMidiCcCtrl14Fine = AK_MIDI_CC_CTRL_14_FINE,
+ AkMidiCcCtrl15Fine = AK_MIDI_CC_CTRL_15_FINE,
+
+ AkMidiCcCtrl20Fine = AK_MIDI_CC_CTRL_20_FINE,
+ AkMidiCcCtrl21Fine = AK_MIDI_CC_CTRL_21_FINE,
+ AkMidiCcCtrl22Fine = AK_MIDI_CC_CTRL_22_FINE,
+ AkMidiCcCtrl23Fine = AK_MIDI_CC_CTRL_23_FINE,
+ AkMidiCcCtrl24Fine = AK_MIDI_CC_CTRL_24_FINE,
+ AkMidiCcCtrl25Fine = AK_MIDI_CC_CTRL_25_FINE,
+ AkMidiCcCtrl26Fine = AK_MIDI_CC_CTRL_26_FINE,
+ AkMidiCcCtrl27Fine = AK_MIDI_CC_CTRL_27_FINE,
+ AkMidiCcCtrl28Fine = AK_MIDI_CC_CTRL_28_FINE,
+ AkMidiCcCtrl29Fine = AK_MIDI_CC_CTRL_29_FINE,
+ AkMidiCcCtrl30Fine = AK_MIDI_CC_CTRL_30_FINE,
+ AkMidiCcCtrl31Fine = AK_MIDI_CC_CTRL_31_FINE,
+
+ AkMidiCcHoldPedal = AK_MIDI_CC_HOLD_PEDAL,
+ AkMidiCcPortamentoOnOff = AK_MIDI_CC_PORTAMENTO_ON_OFF,
+ AkMidiCcSustenutoPedal = AK_MIDI_CC_SUSTENUTO_PEDAL,
+ AkMidiCcSoftPedal = AK_MIDI_CC_SOFT_PEDAL,
+ AkMidiCcLegatoPedal = AK_MIDI_CC_LEGATO_PEDAL,
+ AkMidiCcHoldPedal2 = AK_MIDI_CC_HOLD_PEDAL_2,
+
+ AkMidiCcSoundVariation = AK_MIDI_CC_SOUND_VARIATION,
+ AkMidiCcSoundTimbre = AK_MIDI_CC_SOUND_TIMBRE,
+ AkMidiCcSoundReleaseTime = AK_MIDI_CC_SOUND_RELEASE_TIME,
+ AkMidiCcSoundAttackTime = AK_MIDI_CC_SOUND_ATTACK_TIME,
+ AkMidiCcSoundBrightness = AK_MIDI_CC_SOUND_BRIGHTNESS,
+ AkMidiCcSoundCtrl6 = AK_MIDI_CC_SOUND_CTRL_6,
+ AkMidiCcSoundCtrl7 = AK_MIDI_CC_SOUND_CTRL_7,
+ AkMidiCcSoundCtrl8 = AK_MIDI_CC_SOUND_CTRL_8,
+ AkMidiCcSoundCtrl9 = AK_MIDI_CC_SOUND_CTRL_9,
+ AkMidiCcSoundCtrl10 = AK_MIDI_CC_SOUND_CTRL_10,
+
+ AkMidiCcGeneralButton1 = AK_MIDI_CC_GENERAL_BUTTON_1,
+ AkMidiCcGeneralButton2 = AK_MIDI_CC_GENERAL_BUTTON_2,
+ AkMidiCcGeneralButton3 = AK_MIDI_CC_GENERAL_BUTTON_3,
+ AkMidiCcGeneralButton4 = AK_MIDI_CC_GENERAL_BUTTON_4,
+
+ AkMidiCcReverbLevel = AK_MIDI_CC_REVERB_LEVEL,
+ AkMidiCcTremoloLevel = AK_MIDI_CC_TREMOLO_LEVEL,
+ AkMidiCcChorusLevel = AK_MIDI_CC_CHORUS_LEVEL,
+ AkMidiCcCelesteLevel = AK_MIDI_CC_CELESTE_LEVEL,
+ AkMidiCcPhaserLevel = AK_MIDI_CC_PHASER_LEVEL,
+ AkMidiCcDataButtonP1 = AK_MIDI_CC_DATA_BUTTON_P1,
+ AkMidiCcDataButtonM1 = AK_MIDI_CC_DATA_BUTTON_M1,
+
+ AkMidiCcNonRegisterCoarse = AK_MIDI_CC_NON_REGISTER_COARSE,
+ AkMidiCcNonRegisterFine = AK_MIDI_CC_NON_REGISTER_FINE,
+
+ AkMidiCcAllSoundOff = AK_MIDI_CC_ALL_SOUND_OFF,
+ AkMidiCcAllControllersOff = AK_MIDI_CC_ALL_CONTROLLERS_OFF,
+ AkMidiCcLocalKeyboard = AK_MIDI_CC_LOCAL_KEYBOARD,
+ AkMidiCcAllNotesOff = AK_MIDI_CC_ALL_NOTES_OFF,
+ AkMidiCcOmniModeOff = AK_MIDI_CC_OMNI_MODE_OFF,
+ AkMidiCcOmniModeOn = AK_MIDI_CC_OMNI_MODE_ON,
+ AkMidiCcOmniMonophonicOn = AK_MIDI_CC_OMNI_MONOPHONIC_ON,
+ AkMidiCcOmniPolyphonicOn = AK_MIDI_CC_OMNI_POLYPHONIC_ON,
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiEventBase
+{
+ GENERATED_BODY()
+ FAkMidiEventBase() {}
+
+ FAkMidiEventBase(AkMIDIEvent MIDIEvent)
+ : Type((EAkMidiEventType)MIDIEvent.byType)
+ , Chan(MIDIEvent.byChan)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ EAkMidiEventType Type = EAkMidiEventType::AkMidiEventTypeInvalid;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ uint8 Chan = 0;
+};
+
+
+USTRUCT(BlueprintType)
+struct FAkMidiGeneric : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiGeneric() {}
+ FAkMidiGeneric(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , Param1(MIDIEvent.Gen.byParam1)
+ , Param2(MIDIEvent.Gen.byParam2)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|Generic")
+ uint8 Param1 = 0;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|Generic")
+ uint8 Param2 = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiNoteOnOff : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiNoteOnOff() {}
+ FAkMidiNoteOnOff(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , Note(MIDIEvent.NoteOnOff.byNote)
+ , Velocity(MIDIEvent.NoteOnOff.byVelocity)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|NoteOnOff")
+ uint8 Note = 0;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|NoteOnOff")
+ uint8 Velocity = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiCc : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiCc() {}
+ FAkMidiCc(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , Cc((EAkMidiCcValues)MIDIEvent.Cc.byCc)
+ , Value(MIDIEvent.Cc.byValue)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|CC")
+ EAkMidiCcValues Cc = EAkMidiCcValues::AkMidiCcBankSelectCoarse;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|CC")
+ uint8 Value = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiPitchBend : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiPitchBend() {}
+ FAkMidiPitchBend(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , ValueLsb(MIDIEvent.PitchBend.byValueLsb)
+ , ValueMsb(MIDIEvent.PitchBend.byValueMsb)
+ , FullValue((ValueMsb & 0x7F) << 7 | (ValueLsb & 0x7F))
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|PitchBend")
+ uint8 ValueLsb = 0;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|PitchBend")
+ uint8 ValueMsb = 0;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|PitchBend")
+ int32 FullValue = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiNoteAftertouch : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiNoteAftertouch() {}
+ FAkMidiNoteAftertouch(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , Note(MIDIEvent.NoteAftertouch.byNote)
+ , Value(MIDIEvent.NoteAftertouch.byValue)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|NoteAfterTouch")
+ uint8 Note = 0;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|NoteAfterTouch")
+ uint8 Value = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiChannelAftertouch : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiChannelAftertouch() {}
+ FAkMidiChannelAftertouch(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , Value(MIDIEvent.NoteAftertouch.byValue)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|ChannelAfterTouch")
+ uint8 Value = 0;
+};
+
+USTRUCT(BlueprintType)
+struct FAkMidiProgramChange : public FAkMidiEventBase
+{
+ GENERATED_BODY()
+
+ FAkMidiProgramChange() {}
+ FAkMidiProgramChange(AkMIDIEvent MIDIEvent)
+ : FAkMidiEventBase(MIDIEvent)
+ , ProgramNum(MIDIEvent.ProgramChange.byProgramNum)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|MIDI|ProgramChange")
+ uint8 ProgramNum = 0;
+};
+
+/// Callback information structure corresponding to \ref AK_MidiEvent
+/// \sa
+/// - AK::SoundEngine::PostEvent()
+/// - \ref soundengine_events
+UCLASS(BlueprintType)
+class UAkMIDIEventCallbackInfo : public UAkEventCallbackInfo
+{
+ GENERATED_BODY()
+
+public:
+ UAkMIDIEventCallbackInfo(class FObjectInitializer const & ObjectInitializer);
+ static UAkMIDIEventCallbackInfo* Create(AkMIDIEventCallbackInfo* akCallbackInfo);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ EAkMidiEventType GetType();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ uint8 GetChannel();
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetGeneric(FAkMidiGeneric& AsGeneric);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetNoteOn(FAkMidiNoteOnOff& AsNoteOn);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetNoteOff(FAkMidiNoteOnOff& AsNoteOff);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetCc(FAkMidiCc& AsCc);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetPitchBend(FAkMidiPitchBend& AsPitchBend);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetNoteAftertouch(FAkMidiNoteAftertouch& AsNoteAftertouch);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetChannelAftertouch(FAkMidiChannelAftertouch& AsChannelAftertouch);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkCallbackInfo|MIDI")
+ bool GetProgramChange(FAkMidiProgramChange& AsProgramChange);
+
+private:
+ AkMIDIEvent AkMidiEvent;
+};
+
+/// Callback information structure corresponding to \ref AK_Marker.
+/// \sa
+/// - AK::SoundEngine::PostEvent()
+/// - \ref soundengine_events
+/// - \ref soundengine_markers
+UCLASS(BlueprintType)
+class UAkMarkerCallbackInfo : public UAkEventCallbackInfo
+{
+ GENERATED_BODY()
+public:
+ UAkMarkerCallbackInfo(class FObjectInitializer const & ObjectInitializer);
+ static UAkMarkerCallbackInfo* Create(AkMarkerCallbackInfo* akCallbackInfo);
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Marker")
+ int32 Identifier = 0; ///< Cue point identifier
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Marker")
+ int32 Position = 0; ///< Position in the cue point (unit: sample frames)
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Marker")
+ FString Label; ///< Label of the marker, read from the file
+};
+
+/// Callback information structure corresponding to \ref AK_Duration.
+/// \sa
+/// - AK::SoundEngine::PostEvent()
+/// - \ref soundengine_events
+UCLASS(BlueprintType)
+class UAkDurationCallbackInfo : public UAkEventCallbackInfo
+{
+ GENERATED_BODY()
+public:
+ UAkDurationCallbackInfo(class FObjectInitializer const & ObjectInitializer);
+ static UAkDurationCallbackInfo* Create(AkDurationCallbackInfo* akCallbackInfo);
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Duration")
+ float Duration = 0.f; ///< Duration of the sound (unit: milliseconds)
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Duration")
+ float EstimatedDuration = 0.f; ///< Estimated duration of the sound depending on source settings such as pitch. (unit: milliseconds)
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Duration")
+ int32 AudioNodeID = 0; ///< Audio Node ID of playing item
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Duration")
+ int32 MediaID = 0; ///< Media ID of playing item. (corresponds to 'ID' attribute of 'File' element in SoundBank metadata file)
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Duration")
+ bool bStreaming = false; ///< True if source is streaming, false otherwise.
+};
+
+/// Structure used to query info on active playing segments.
+USTRUCT(BlueprintType)
+struct FAkSegmentInfo
+{
+ GENERATED_BODY()
+
+ FAkSegmentInfo() {}
+ FAkSegmentInfo(const AkSegmentInfo& segmentInfo)
+ : CurrentPosition(segmentInfo.iCurrentPosition)
+ , PreEntryDuration(segmentInfo.iPreEntryDuration)
+ , ActiveDuration(segmentInfo.iActiveDuration)
+ , PostExitDuration(segmentInfo.iPostExitDuration)
+ , RemainingLookAheadTime(segmentInfo.iRemainingLookAheadTime)
+ , BeatDuration(segmentInfo.fBeatDuration)
+ , BarDuration(segmentInfo.fBarDuration)
+ , GridDuration(segmentInfo.fGridDuration)
+ , GridOffset(segmentInfo.fGridOffset)
+ {}
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ int32 CurrentPosition = 0; ///< Current position of the segment, relative to the Entry Cue, in milliseconds. Range is [-iPreEntryDuration, iActiveDuration+iPostExitDuration].
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ int32 PreEntryDuration = 0; ///< Duration of the pre-entry region of the segment, in milliseconds.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ int32 ActiveDuration = 0; ///< Duration of the active region of the segment (between the Entry and Exit Cues), in milliseconds.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ int32 PostExitDuration = 0; ///< Duration of the post-exit region of the segment, in milliseconds.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ int32 RemainingLookAheadTime = 0;///< Number of milliseconds remaining in the "looking-ahead" state of the segment, when it is silent but streamed tracks are being prefetched.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ float BeatDuration = 0.f; ///< Beat Duration in seconds.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ float BarDuration = 0.f; ///< Bar Duration in seconds.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ float GridDuration = 0.f; ///< Grid duration in seconds.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|SegmentInfo")
+ float GridOffset = 0.f; ///< Grid offset in seconds.
+};
+
+UCLASS(BlueprintType)
+class UAkMusicSyncCallbackInfo : public UAkCallbackInfo
+{
+ GENERATED_BODY()
+
+public:
+ UAkMusicSyncCallbackInfo(class FObjectInitializer const & ObjectInitializer);
+ static UAkMusicSyncCallbackInfo* Create(AkMusicSyncCallbackInfo* akCallbackInfo);
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Music")
+ int32 PlayingID = 0; ///< Playing ID of Event, returned by PostEvent()
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Music")
+ FAkSegmentInfo SegmentInfo; ///< Segment information corresponding to the segment triggering this callback.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Music")
+ EAkCallbackType MusicSyncType = EAkCallbackType::EndOfEvent; ///< Would be either \ref AK_MusicSyncEntry, \ref AK_MusicSyncBeat, \ref AK_MusicSyncBar, \ref AK_MusicSyncExit, \ref AK_MusicSyncGrid, \ref AK_MusicSyncPoint or \ref AK_MusicSyncUserCue.
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Audiokinetic|AkCallbackInfo|Music")
+ FString UserCueName; ///< Cue name (UTF-8 string). Set for notifications AK_MusicSyncUserCue. NULL if cue has no name.
+};
+
+DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnAkPostEventCallback, EAkCallbackType, CallbackType, UAkCallbackInfo*, CallbackInfo);
+DECLARE_DYNAMIC_DELEGATE_OneParam(FOnAkBankCallback, EAkResult, Result);
+DECLARE_DYNAMIC_DELEGATE_OneParam(FOnSetCurrentAudioCultureCallback, bool, Succeeded);
+
+struct FPendingLatentActionValidityToken
+{
+ bool bValid = true;
+};
+
+class FAkPendingLatentAction: public FPendingLatentAction
+{
+public:
+
+ // Allows objects referencing this latent action to determine if it is still valid (not deleted) before accessing it
+ TSharedPtr ValidityToken;
+
+ virtual void NotifyObjectDestroyed() override
+ {
+ // When the owning object is destroyed, the latent action is about to be deleted, so flag it as invalid
+ if (ValidityToken.IsValid())
+ {
+ ValidityToken->bValid = false;
+ }
+ }
+};
+
+// Class used for Blueprint nodes blocking on EndOfEvent
+class FWaitEndOfEventAction : public FAkPendingLatentAction
+{
+public:
+ FName ExecutionFunction;
+ int32 OutputLink = 0;
+ FWeakObjectPtr CallbackTarget;
+ FThreadSafeBool EventFinished;
+
+
+ FWaitEndOfEventAction(const FLatentActionInfo& LatentInfo)
+ : ExecutionFunction(LatentInfo.ExecutionFunction)
+ , OutputLink(LatentInfo.Linkage)
+ , CallbackTarget(LatentInfo.CallbackTarget)
+ , EventFinished(false)
+ {
+ }
+
+ virtual void UpdateOperation(FLatentResponse& Response) override
+ {
+ Response.FinishAndTriggerIf(EventFinished, ExecutionFunction, OutputLink, CallbackTarget);
+ }
+
+#if WITH_EDITOR
+ virtual FString GetDescription() const override
+ {
+ return TEXT("Waiting for posted AkEvent to end.");
+ }
+#endif
+};
+
+// Class used for Blueprint nodes blocking on Bank Load
+class FWaitEndBankAction : public FAkPendingLatentAction
+{
+public:
+ FName ExecutionFunction;
+ int32 OutputLink = 0;
+ FWeakObjectPtr CallbackTarget;
+ FThreadSafeBool ActionDone;
+
+ FWaitEndBankAction(const FLatentActionInfo& LatentInfo)
+ : ExecutionFunction(LatentInfo.ExecutionFunction)
+ , OutputLink(LatentInfo.Linkage)
+ , CallbackTarget(LatentInfo.CallbackTarget)
+ , ActionDone(false)
+ {
+ }
+
+ virtual void UpdateOperation(FLatentResponse& Response) override
+ {
+ Response.FinishAndTriggerIf(ActionDone, ExecutionFunction, OutputLink, CallbackTarget);
+ }
+
+#if WITH_EDITOR
+ virtual FString GetDescription() const override
+ {
+ return TEXT("Waiting for AkBank to finish loading or unloading.");
+ }
+#endif
+};
+
+class FSetCurrentAudioCultureAction : public FAkPendingLatentAction
+{
+public:
+ FName ExecutionFunction;
+ int32 OutputLink = 0;
+ FWeakObjectPtr CallbackTarget;
+ FThreadSafeBool ActionDone;
+
+ FSetCurrentAudioCultureAction(const FLatentActionInfo& LatentInfo)
+ : ExecutionFunction(LatentInfo.ExecutionFunction)
+ , OutputLink(LatentInfo.Linkage)
+ , CallbackTarget(LatentInfo.CallbackTarget)
+ , ActionDone(false)
+ {
+ }
+
+ virtual void UpdateOperation(FLatentResponse& Response) override
+ {
+ Response.FinishAndTriggerIf(ActionDone, ExecutionFunction, OutputLink, CallbackTarget);
+ }
+
+#if WITH_EDITOR
+ virtual FString GetDescription() const override
+ {
+ return TEXT("Waiting for SetCurrentAudioCultureAsync to finish.");
+ }
+#endif
+};
+
+/*=============================================================================
+End - Ak Callback Blueprint classes and structures.
+=============================================================================*/
+
+/*=============================================================================
+
+Begin - AkExternalSources enums and structures. Known limitations:
+ - It is not possible to set external sources from memory using Blueprint
+ - It is not possible to stream external sources from disk
+
+=============================================================================*/
+
+UENUM(BlueprintType)
+enum class AkCodecId : uint8
+{
+ ///< None: required default.
+ None = 0,
+
+ ///< PCM encoding
+ PCM = AKCODECID_PCM,
+
+ ///< ADPCM encoding
+ ADPCM = AKCODECID_ADPCM,
+
+ ///< XMA encoding
+ XMA = AKCODECID_XMA,
+
+ ///< Vorbis encoding
+ Vorbis = AKCODECID_VORBIS,
+
+ ///< ATRAC-9 encoding
+ ATRAC9 = AKCODECID_ATRAC9,
+
+ ///< OpusNX encoding
+ OpusNX = AKCODECID_OPUSNX,
+
+ ///< Opus encoding
+ AkOpus = AKCODECID_AKOPUS,
+
+ ///< WEM Opus encoding
+ AkOpusWEM = AKCODECID_AKOPUS_WEM
+};
+
+USTRUCT(BlueprintType)
+struct FAkExternalSourceInfo
+{
+ GENERATED_BODY()
+
+ /// Name of the source given in the project. (The Cookie ID)
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkExternalSourceInfo")
+ FString ExternalSrcName;
+
+ /// Codec ID for the file.
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkExternalSourceInfo")
+ AkCodecId CodecID = AkCodecId::None;
+
+ /// File path for the source. (Relative to ExternalSources folder in your sound bank folder)
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkExternalSourceInfo")
+ FString FileName;
+
+ /// Hard link to the media asset to use, it can be either streamed or not using IsStreamed
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkExternalSourceInfo")
+ UAkExternalMediaAsset* ExternalSourceAsset = nullptr;
+
+ /// Is the ExternalSourceAsset streamed or not
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkExternalSourceInfo")
+ bool IsStreamed = true;
+};
+
+struct FAkSDKExternalSourceArray : public TSharedFromThis
+{
+ FAkSDKExternalSourceArray() {}
+ FAkSDKExternalSourceArray(const TArray& BlueprintArray);
+ ~FAkSDKExternalSourceArray();
+
+ TArray ExternalSourceArray;
+};
+
+class UAkAudioEvent;
+class FWaitEndOfEventAsyncAction : public FWaitEndOfEventAction
+{
+public:
+ int32* PlayingID = nullptr;
+ TFuture FuturePlayingID;
+ UAkAudioEvent* AkEvent = nullptr;
+ bool bStopWhenAttachedToDestroyed = true;
+
+ FWaitEndOfEventAsyncAction(const FLatentActionInfo& LatentInfo, int32* PlayingID)
+ : FWaitEndOfEventAction(LatentInfo)
+ , PlayingID(PlayingID)
+ {
+ }
+
+ FWaitEndOfEventAsyncAction(const FLatentActionInfo& LatentInfo, int32* PlayingID, UAkAudioEvent* Event, bool StopWhenAttachedToDestroyed)
+ : FWaitEndOfEventAction(LatentInfo)
+ , PlayingID(PlayingID)
+ , AkEvent(Event)
+ , bStopWhenAttachedToDestroyed(StopWhenAttachedToDestroyed)
+ {
+ }
+
+ virtual void UpdateOperation(FLatentResponse& Response) override;
+
+#if WITH_EDITOR
+ virtual FString GetDescription() const override
+ {
+ return TEXT("Waiting for async posted AkEvent to end.");
+ }
+#endif
+};
+
+
+
+/*=============================================================================
+End - AkExternalSources enums and structures.
+=============================================================================*/
+
+struct AkDeviceAndWorld
+{
+ class FAkAudioDevice* AkAudioDevice = nullptr;
+ class UWorld* CurrentWorld = nullptr;
+ AkDeviceAndWorld(AActor* in_pActor);
+
+
+ AkDeviceAndWorld(const UObject* in_pWorldContextObject);
+
+ bool IsValid() const;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryComponent.h
new file mode 100644
index 0000000..8fc7232
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryComponent.h
@@ -0,0 +1,216 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "Platforms/AkUEPlatform.h"
+#include "AkAcousticTexture.h"
+#include "Components/SceneComponent.h"
+#include "PhysicalMaterials/PhysicalMaterial.h"
+#include "AkAcousticTextureSetComponent.h"
+#include "AkGeometryData.h"
+#include "AkGeometryComponent.generated.h"
+
+class UAkSettings;
+#if UE_5_0_OR_LATER
+class UMaterialInterface;
+#endif
+
+DECLARE_DELEGATE(FOnRefreshDetails);
+
+UENUM()
+enum class AkMeshType : uint8
+{
+ StaticMesh,
+ CollisionMesh UMETA(DisplayName = "Simple Collision")
+};
+
+USTRUCT(BlueprintType)
+struct FAkGeometrySurfaceOverride
+{
+ GENERATED_BODY()
+
+ /** The Acoustic Texture represents the sound absorption on the surface of the geometry when a sound bounces off of it.
+ * If left to None, the mesh's physical material will be used to fetch an acoustic texture.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry")
+ UAkAcousticTexture* AcousticTexture = nullptr;
+
+ /** Enable Transmission Loss Override */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "Enable Transmission Loss Override", Category = "Geometry")
+ bool bEnableOcclusionOverride = false;
+
+ /** Transmission loss value to set when modeling sound transmission through geometry. Transmission is modeled only when there is no direct line of sight from the emitter to the listener.
+ * If there is more than one surface between the emitter and the listener, the maximum of each surface's transmission loss value is used. If the emitter and listener are in different rooms, the room's transmission loss value is taken into account.
+ * Valid range : (0.0, 1.0)
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry", DisplayName = "Transmission Loss", meta = (EditCondition = "bEnableOcclusionOverride", ClampMin = "0.0", ClampMax = "1.0"))
+ float OcclusionValue = 1.f;
+
+ void SetSurfaceArea(float area) { SurfaceArea = area; }
+
+ FAkGeometrySurfaceOverride()
+ {
+ AcousticTexture = nullptr;
+ bEnableOcclusionOverride = false;
+ OcclusionValue = 1.f;
+ }
+
+private:
+ UPROPERTY()
+ float SurfaceArea = 0.0f;
+
+};
+
+UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation, Tags), meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkGeometryComponent : public UAkAcousticTextureSetComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkGeometryComponent(const class FObjectInitializer& ObjectInitializer);
+
+ /** Convert the mesh into a local representation suited for Wwise:
+ * a set of vertices, triangles, surfaces, acoustic textures and transmission loss values. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkGeometry")
+ void ConvertMesh();
+
+ /** Add or update a geometry in Spatial Audio by sending the converted mesh, as well as the rest of the AkGeometryParams to Wwise.
+ * It is necessary to create at least one geometry instance for each geometry set that is to be used for diffraction and reflection simulation. See UpdateGeometry(). */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkGeometry")
+ void SendGeometry();
+
+ /** Add or update an instance of the geometry by sending the transform of this component to Wwise.
+ * A geometry instance is a unique instance of a geometry set with a specified transform (position, rotation and scale).
+ * It is necessary to create at least one geometry instance for each geometry set that is to be used for diffraction and reflection simulation. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkGeometry")
+ void UpdateGeometry();
+
+ /** Remove the geometry and the corresponding instance from Wwise. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkGeometry")
+ void RemoveGeometry();
+
+ virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
+
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Geometry")
+ AkMeshType MeshType = AkMeshType::CollisionMesh;
+
+ /** The Static Mesh's LOD to use */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry", meta = (ClampMin = "0.0"))
+ int LOD = 0;
+
+ /** The local distance in Unreal units between two vertices to be welded together.
+ * Any two vertices closer than this threshold will be treated as the same unique vertex and assigned the same position.
+ * Increasing this threshold decreases the number of gaps between triangles, resulting in a more continuous mesh and less sound leaking though, as well as eliminating triangles that are too small to be significant.
+ * Increasing this threshold also helps Spatial Audio's edge-finding algorithm to find more valid diffraction edges.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry", meta = (ClampMin = "0.0"))
+ float WeldingThreshold = .0f;
+
+ /** Override the acoustic properties of this mesh per material.*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry", DisplayName = "Acoustic Properties Override")
+ TMap StaticMeshSurfaceOverride;
+
+ /** Override the acoustic properties of the collision mesh.*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry", DisplayName = "Acoustic Properties Override")
+ FAkGeometrySurfaceOverride CollisionMeshSurfaceOverride;
+
+ /** Enable or disable geometric diffraction for this mesh. Check this box to have Wwise Spatial Audio generate diffraction edges on the geometry. The diffraction edges will be visible in the Wwise game object viewer when connected to the game. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry")
+ bool bEnableDiffraction = false;
+
+ /** Enable or disable geometric diffraction on boundary edges for this Geometry. Boundary edges are edges that are connected to only one triangle. Depending on the specific shape of the geometry, boundary edges may or may not be useful and it is beneficial to reduce the total number of diffraction edges to process. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry", meta = (EditCondition = "bEnableDiffraction"))
+ bool bEnableDiffractionOnBoundaryEdges = false;
+
+ /** (Optional) Associate this Surface Reflector Set with a Room.
+ * Associating a spatial audio geometry with a particular room will limit the scope in which the geometry is visible/accessible. Leave it to None and this geometry will have a global scope.
+ * It is recommended to associate geometry with a room when the geometry is (1) fully contained within the room (ie. not visible to other rooms except by portals), and (2) the room does not share geometry with other rooms. Doing so reduces the search space for ray casting performed by reflection and diffraction calculations.
+ * Take note that once one or more geometry sets are associated with a room, that room will no longer be able to access geometry that is in the global scope.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry")
+ AActor* AssociatedRoom = nullptr;
+
+ float GetSurfaceAreaSquaredMeters(const int& surfaceIndex) const;
+
+ void UpdateStaticMeshOverride();
+
+#if WITH_EDITORONLY_DATA
+ void SetOnRefreshDetails(const FOnRefreshDetails& in_delegate) { OnRefreshDetails = in_delegate; }
+ void ClearOnRefreshDetails() { OnRefreshDetails.Unbind(); }
+ const FOnRefreshDetails* GetOnRefreshDetails() { return &OnRefreshDetails; }
+
+ bool bMeshMaterialChanged = false;
+#endif
+
+#if WITH_EDITOR
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+ virtual void PostEditUndo() override;
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
+#endif
+
+ virtual void OnRegister() override;
+ virtual void OnUnregister() override;
+ virtual void BeginPlay() override;
+ virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
+ virtual void OnUpdateTransform(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) override;
+ virtual bool MoveComponentImpl(
+ const FVector & Delta,
+ const FQuat & NewRotation,
+ bool bSweep,
+ FHitResult * Hit,
+ EMoveComponentFlags MoveFlags,
+ ETeleportType Teleport) override;
+ virtual void Serialize(FArchive& Ar) override;
+
+ void GetTexturesAndSurfaceAreas(TArray& textures, TArray& surfaceAreas) const override;
+
+ /** Indicates whether this component was added dynamically by a sibling room component in order to send geometry to Wwise. */
+ bool bWasAddedByRoom = false;
+
+private:
+
+ UPrimitiveComponent* Parent = nullptr;
+ void InitializeParent();
+
+ void CalculateSurfaceArea(UStaticMeshComponent* StaticMeshComponent);
+
+ void ConvertStaticMesh(UStaticMeshComponent* StaticMeshComponent, const UAkSettings* AkSettings);
+ void ConvertCollisionMesh(UPrimitiveComponent* PrimitiveComponent, const UAkSettings* AkSettings);
+ void UpdateMeshAndArchetype(UStaticMeshComponent* StaticMeshComponent);
+ void _UpdateStaticMeshOverride(UStaticMeshComponent* StaticMeshComponent);
+
+ UPROPERTY()
+ FAkGeometryData GeometryData;
+
+ UPROPERTY()
+ TMap SurfaceAreas;
+
+ TMap PreviousStaticMeshSurfaceOverride;
+
+ void BeginPlayInternal();
+#if WITH_EDITOR
+ virtual void HandleObjectsReplaced(const TMap& ReplacementMap) override;
+ bool bRequiresDeferredBeginPlay = false;
+ void RegisterAllTextureParamCallbacks() override;
+ bool ContainsTexture(const FGuid& textureID) override;
+#endif
+
+#if WITH_EDITORONLY_DATA
+ FOnRefreshDetails OnRefreshDetails;
+ FDelegateHandle OnMeshMaterialChangedHandle;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryData.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryData.h
new file mode 100644
index 0000000..bb16f2e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGeometryData.h
@@ -0,0 +1,95 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkGeometryData.h:
+=============================================================================*/
+#pragma once
+#include "AkInclude.h"
+
+#include "AkAcousticTexture.h"
+
+#include "AkGeometryData.generated.h"
+
+class UPhysicalMaterial;
+
+USTRUCT()
+struct FAkAcousticSurface
+{
+ GENERATED_BODY()
+
+ UPROPERTY()
+ uint32 Texture = AK_INVALID_UNIQUE_ID;
+
+ UPROPERTY(DisplayName = "Transmission Loss")
+ float Occlusion = .0f;
+
+ UPROPERTY()
+ FString Name;
+};
+
+USTRUCT()
+struct FAkTriangle
+{
+ GENERATED_BODY()
+
+ UPROPERTY()
+ uint16 Point0 = 0;
+
+ UPROPERTY()
+ uint16 Point1 = 0;
+
+ UPROPERTY()
+ uint16 Point2 = 0;
+
+ UPROPERTY()
+ uint16 Surface = 0;
+};
+
+USTRUCT()
+struct FAkGeometryData
+{
+ GENERATED_BODY()
+
+ void Clear()
+ {
+ Vertices.Empty();
+ Surfaces.Empty();
+ Triangles.Empty();
+ ToOverrideAcousticTexture.Empty();
+ ToOverrideOcclusion.Empty();
+ }
+
+ UPROPERTY()
+ TArray Vertices;
+
+ UPROPERTY()
+ TArray Surfaces;
+
+ UPROPERTY()
+ TArray Triangles;
+
+ UPROPERTY()
+ TArray ToOverrideAcousticTexture;
+
+ UPROPERTY(DisplayName = "To Override Transmission Loss")
+ TArray ToOverrideOcclusion;
+
+ void AddBox(AkSurfIdx surfIdx, FVector center, FVector extent, FRotator rotation);
+ void AddSphere(AkSurfIdx surfIdx, const FVector& Center, const float Radius, int32 NumSides, int32 NumRings);
+ void AddCapsule(AkSurfIdx surfIdx, const FVector& Origin, const FVector& XAxis, const FVector& YAxis, const FVector& ZAxis, float Radius, float HalfHeight, int32 NumSides);
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGroupValue.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGroupValue.h
new file mode 100644
index 0000000..df013ef
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkGroupValue.h
@@ -0,0 +1,63 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "Wwise/CookedData/WwiseGroupValueCookedData.h"
+#include "Wwise/Loaded/WwiseLoadedGroupValue.h"
+#include "Wwise/Info/WwiseGroupValueInfo.h"
+#include "AkGroupValue.generated.h"
+
+UCLASS(Abstract)
+class AKAUDIO_API UAkGroupValue : public UAkAudioType
+{
+ GENERATED_BODY()
+
+public:
+ UPROPERTY(Transient, VisibleAnywhere, Category = "AkGroupValue")
+ FWwiseGroupValueCookedData GroupValueCookedData;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category = "AkGroupValue")
+ FWwiseGroupValueInfo GroupValueInfo;
+#endif
+
+ UPROPERTY(meta =(Deprecated, DeprecationMessage="Use Group ID from Load Data. Used for migration from older versions."))
+ uint32 GroupShortID_DEPRECATED = 0;
+
+public:
+ virtual void LoadData() override {LoadGroupValue();}
+ virtual void UnloadData(bool bAsync = false) override {UnloadGroupValue(bAsync);}
+ virtual AkUInt32 GetShortID() const override {return GroupValueCookedData.Id;}
+ AkUInt32 GetGroupID() const {return GroupValueCookedData.GroupId;}
+
+#if WITH_EDITORONLY_DATA
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &GroupValueInfo;}
+ virtual FWwiseObjectInfo GetInfo() const override {return GroupValueInfo;}
+ virtual void MigrateWwiseObjectInfo() override;
+ virtual void ValidateShortID(FWwiseObjectInfo& WwiseInfo) const override;
+ virtual bool SplitAssetName(FString& OutGroupName, FString& OutValueName) const;
+#endif
+
+protected :
+ virtual void LoadGroupValue(){};
+ void UnloadGroupValue(bool bAsync);
+ FWwiseLoadedGroupValue LoadedGroupValue;
+
+
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkInitBank.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkInitBank.h
new file mode 100644
index 0000000..66aad9b
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkInitBank.h
@@ -0,0 +1,72 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "Wwise/CookedData/WwiseInitBankCookedData.h"
+#include "Wwise/Loaded/WwiseLoadedInitBank.h"
+
+#if WITH_EDITORONLY_DATA
+#include "Wwise/Info/WwiseObjectInfo.h"
+#endif
+
+#include "AkInitBank.generated.h"
+
+
+UCLASS()
+class AKAUDIO_API UAkInitBank : public UAkAudioType
+{
+ GENERATED_BODY()
+
+public:
+ UPROPERTY(Transient)
+ FWwiseInitBankCookedData InitBankCookedData;
+
+#if WITH_EDITORONLY_DATA
+ void PrepareCookedData();
+#endif
+
+ TArray GetLanguages();
+
+protected :
+ FWwiseLoadedInitBank LoadedInitBank;
+
+
+public:
+ UAkInitBank():LoadedInitBank(nullptr){}
+
+#if WITH_EDITORONLY_DATA
+ void CookAdditionalFilesOverride(const TCHAR* PackageFilename, const ITargetPlatform* TargetPlatform,
+ TFunctionRef WriteAdditionalFile) override;
+ virtual void BeginCacheForCookedPlatformData(const ITargetPlatform* TargetPlatform) override;
+ virtual FWwiseObjectInfo* GetInfoMutable() override;
+
+#endif
+
+ virtual void UnloadData(bool bAsync = false) override;
+
+ void LoadInitBank();
+ void UnloadInitBank(bool bAsync);
+
+protected:
+ void Serialize(FArchive& Ar) override;
+
+#if WITH_EDITORONLY_DATA
+ virtual void MigrateWwiseObjectInfo() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkJobWorkerScheduler.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkJobWorkerScheduler.h
new file mode 100644
index 0000000..b8e835e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkJobWorkerScheduler.h
@@ -0,0 +1,35 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkJobWorkerScheduler.h: Audiokinetic job worker scheduler interface.
+=============================================================================*/
+
+#pragma once
+
+#include "AkInclude.h"
+#include "Async/TaskGraphInterfaces.h"
+
+class AKAUDIO_API FAkJobWorkerScheduler
+{
+public:
+ FAkJobWorkerScheduler() : uMaxExecutionTime(0) {}
+
+ void InstallJobWorkerScheduler(uint32 uMaxExecutionTime, uint32 in_uMaxWorkerCount, AkJobMgrSettings& out_settings);
+
+ uint32 uMaxExecutionTime;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkLateReverbComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkLateReverbComponent.h
new file mode 100644
index 0000000..6b846fb
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkLateReverbComponent.h
@@ -0,0 +1,216 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "Components/SceneComponent.h"
+#include "AkReverbDescriptor.h"
+
+#if WITH_EDITOR
+#include "Components/TextRenderComponent.h"
+#endif
+
+#include "AkLateReverbComponent.generated.h"
+
+class UAkRoomComponent;
+class UAkAcousticTextureSetComponent;
+
+UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation, Tags), meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkLateReverbComponent : public USceneComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkLateReverbComponent(const class FObjectInitializer& ObjectInitializer);
+
+ /**
+ * Enable usage of the late reverb inside a volume. Additional properties are available in the Late Reverb category.
+ * The number of simultaneous AkReverbVolumes is configurable in the Unreal Editor Project Settings under Plugins > Wwise
+ * If this Late Reverb is applied to a Spatial Audio room, it will be active even if the maximum number of simultaneous reverb volumes (see integration settings) was reached.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Toggle, meta = (DisplayName = "Enable Late Reverb"))
+ bool bEnable = false;
+
+ /** Maximum send level to the Wwise Auxiliary Bus associated to this AkReverbVolume */
+ UPROPERTY(EditAnywhere,BlueprintReadWrite, Category = "Late Reverb", meta = (ClampMin = 0.0f, ClampMax = 1.0f, UIMin = 0.0f, UIMax = 1.0f))
+ float SendLevel = .0f;
+
+ /** Rate at which to fade in/out the SendLevel of the current Reverb Volume when entering/exiting it, in percentage per second (0.2 will make the fade time 5 seconds) */
+ UPROPERTY(EditAnywhere,BlueprintReadWrite, Category = "Late Reverb" ,meta = (ClampMin = 0.0f, UIMin = 0.0f))
+ float FadeRate = .0f;
+
+ /**
+ * The precedence in which the AkReverbVolumes will be applied. In the case of overlapping volumes, only the ones
+ * with the highest priority are chosen. If two or more overlapping AkReverbVolumes have the same
+ * priority, the chosen AkReverbVolume is unpredictable.
+ * If this Late Reverb is applied to a Spatial Audio room, the room's priority will be used instead.
+ * Sound emitted by game objects in a room will always be sent to the room late reverb independently of other late reverbs in the scene.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Late Reverb")
+ float Priority = .0f;
+
+ /**
+ * When enabled, the aux bus for this reverb component will be assigned automatically. This is done by estimating the decay time of the reverb produced by the parent Primitive Component, given its volume and surface area.
+ * This decay value is used to select an aux bus from the reverb aux bus assignment map in the integration settings.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Late Reverb")
+ bool AutoAssignAuxBus = true;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (EditCondition = "!AutoAssignAuxBus"), Category = "Late Reverb")
+ class UAkAuxBus* AuxBus = nullptr;
+
+ /** Wwise Auxiliary Bus associated to this AkReverbVolume */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, meta = (EditCondition = "!AutoAssignAuxBus"), Category = "Late Reverb")
+ FString AuxBusName;
+
+ /** Get the AkAuxBusId associated to AuxBusName */
+ uint32 GetAuxBusId() const;
+
+ bool HasEffectOnLocation(const FVector& Location) const;
+
+ bool LateReverbIsActive() const { return Parent && bEnable && !IsRunningCommandlet(); }
+
+ virtual void BeginPlay() override;
+ virtual void BeginDestroy() override;
+ virtual void OnRegister() override;
+ virtual void OnUnregister() override;
+ virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
+ virtual bool MoveComponentImpl(
+ const FVector & Delta,
+ const FQuat & NewRotation,
+ bool bSweep,
+ FHitResult * Hit,
+ EMoveComponentFlags MoveFlags,
+ ETeleportType Teleport) override;
+ virtual void OnUpdateTransform(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) override;
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
+ virtual void PostLoad() override;
+ virtual void Serialize(FArchive& Ar) override;
+
+#if WITH_EDITOR
+ virtual void PreEditChange(FProperty* PropertyAboutToChange) override;
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+ virtual void OnAttachmentChanged() override;
+ void UpdateHFDampingEstimation(float hfDamping);
+ void UpdatePredelayEstimation(float predelay);
+
+ virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
+ virtual void InitializeComponent() override;
+ virtual void OnComponentCreated() override;
+
+ void RegisterReverbInfoEnabledCallback();
+ FDelegateHandle ShowReverbInfoChangedHandle;
+#endif
+
+ void UpdateDecayEstimation(float decay, float volume, float surfaceArea);
+ void UpdateRTPCs(const UAkRoomComponent* room) const;
+
+ /** Set the component that will be used to estimate the HFDamping. For example, in a Blueprint that has a static mesh component with an AkGeometry child component, this function can be called in BeginPlay to associate that AkGeometry component with this reverb component.
+ * If this late reverb component has a sibling geometry component (or surface reflector set component), they will be associated automatically and there is no need to call this function.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|LateReverb|Reverb Parameter Estimation")
+ void AssociateAkTextureSetComponent(UAkAcousticTextureSetComponent* textureSetComponent);
+
+private:
+ friend class FAkAudioDevice;
+
+ class UPrimitiveComponent* Parent;
+
+ /** Save the manually assigned aux bus so we can recall it if auto-assign is disabled. */
+ UPROPERTY()
+ class UAkAuxBus* AuxBusManual = nullptr;
+
+ /** The component that will be used to estimate the HFDamping value. This will usually be an AkGeometryComponent.
+ * When the owning Actor is a Volume (as is the case for SpatialAudioVolume) this will be an AkSurfaceReflectorSetComponent.
+ */
+ UAkAcousticTextureSetComponent* TextureSetComponent = nullptr;
+
+ // Used to estimate the reverb parameters from the Primitive parent.
+ FAkReverbDescriptor ReverbDescriptor;
+ // Used to track when the reverb parameters need updated (on register, and when the size changes).
+ float SecondsSinceDecayUpdate = 0.0f;
+ bool DecayEstimationNeedsUpdate = false;
+ float SecondsSincePredelayUpdate = 0.0f;
+ bool PredelayEstimationNeedsUpdate = false;
+
+ // Indicates that the component was added to the spatial index in AkAudioDevice.
+ bool IsIndexed = false;
+
+ void RecalculateDecay();
+ void RecalculatePredelay();
+
+ void InitializeParent();
+ void ParentChanged();
+ bool EncompassesPoint(FVector Point, float SphereRadius = 0.f, float* OutDistanceToPoint = nullptr) const;
+ // Used to track when the parameters of an Acoustic Texture asset change.
+ FDelegateHandle TextureParamChangedHandle;
+
+#if WITH_EDITOR
+ void HandleObjectsReplaced(const TMap& ReplacementMap);
+#endif
+#if WITH_EDITORONLY_DATA
+ static float TextVisualizerHeightOffset;
+ bool bTextStatusNeedsUpdate = false;
+ // The text visualizers display the values of the parameter estimations directly in the level (or blueprint editor).
+ UPROPERTY(SkipSerialization, NonTransactional)
+ UTextRenderComponent* TextVisualizerLabels = nullptr;
+ UPROPERTY(SkipSerialization, NonTransactional)
+ UTextRenderComponent* TextVisualizerValues = nullptr;
+ void UpdateTextVisualizerStatus();
+ bool TextVisualizersInitialized() const;
+ FText GetValuesLabels() const;
+ void DestroyTextVisualizers();
+ void InitTextVisualizers();
+ void UpdateValuesLabels();
+ bool WasSelected = false;
+
+ FVector GetTextVisualizersLocation();
+
+ // Used to track when the Aux bus map, or the global RTPCs in the integration settings change.
+ void RegisterAuxBusMapChangedCallback();
+ FDelegateHandle AuxBusChangedHandle;
+ void RegisterReverbRTPCChangedCallback();
+ FDelegateHandle RTPCChangedHandle;
+
+ UPROPERTY(VisibleAnywhere, Category = "Late Reverb|Reverb Parameter Estimation|Primitive Geometry")
+ float EnvironmentVolume = 0.0f;
+
+ UPROPERTY(VisibleAnywhere, Category = "Late Reverb|Reverb Parameter Estimation|Primitive Geometry")
+ float SurfaceArea = 0.0f;
+
+ /** An estimation of the T60 (the time taken for the sound pressure level to reduce by 60dB) for the reverb's environment, based on the primitive component to which the late reverb is attached.
+ * This T60 value can be used to automatically assign an aux bus using the Reverb Assignment Map in the integration settings, and/or to drive the Decay Estimate RTPC, also found in the integration settings.
+ * In order to use the global reverb RTPCs, the reverb component must have a sibling AkRoomComponent (in other words, a room component attached to the same Primitive parent).
+ */
+ UPROPERTY(VisibleAnywhere, Category = "Late Reverb|Reverb Parameter Estimation")
+ float EnvironmentDecayEstimate = 0.0f;
+
+ /** This value is driven by the acoustic textures used in an associated AkGeometryComponent or AkSurfaceReflectorSetComponent. It measures the average frequency bias of the damping. In other words, whether there is more high-frequency damping, more low-frequency damping, or uniform damping across frequencies.
+ * A value of 0.0 indicates uniform damping across all frequencies. A value > 0.0 indicates more damping for higher frequencies than lower frequencies. A value < 0.0 indicates more damping for lower frequencies than high frequencies. Average absorption values are calculated using each of the textures in the collection, weighted by their corresponding surface area.
+ * This value can be used to drive the HFDamping RTPC, found in the integration settings.
+ * In order to use the global reverb RTPCs, the reverb component must have a sibling AkRoomComponent (in other words, a room component attached to the same Primitive parent).
+ */
+ UPROPERTY(VisibleAnywhere, Category = "Late Reverb|Reverb Parameter Estimation")
+ float HFDamping = 0.0f;
+
+ /** An estimation of the time taken for the first reflection to reach the listener, based on the primitive component to which the late reverb is attached.
+ * This is estimated based on an emitter and listener being positioned at the centre of the parent primitive component. This value can be used to drive the Time To First Reflection RTPC, found in the integration settings.
+ * In order to use the global reverb RTPCs, the reverb component must have a sibling AkRoomComponent (in other words, a room component attached to the same Primitive parent).
+ */
+ UPROPERTY(VisibleAnywhere, Category = "Late Reverb|Reverb Parameter Estimation")
+ float TimeToFirstReflection = 0.0f;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbDescriptor.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbDescriptor.h
new file mode 100644
index 0000000..e3623bf
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbDescriptor.h
@@ -0,0 +1,75 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkGameplayTypes.h"
+
+#include "AkReverbDescriptor.generated.h"
+
+class UAkAcousticTextureSetComponent;
+class UAkLateReverbComponent;
+class UAkRoomComponent;
+
+#define PARAM_ESTIMATION_UPDATE_PERIOD 0.1f
+
+/**
+ * FAkReverbDescriptor is used to estimate the reverb parameters of a primitive component, by calculating its volume and surface area, and using the 'sabine equation' to estimate the reverb tail.
+ * It also estimates the Time to First Reflection and the HFDamping.
+ */
+USTRUCT()
+struct AKAUDIO_API FAkReverbDescriptor
+{
+ GENERATED_BODY()
+public:
+ static double TriangleArea(const FVector& v1, const FVector& v2, const FVector& v3);
+ static float SignedVolumeOfTriangle(const FVector& p1, const FVector& p2, const FVector& p3);
+
+ float PrimitiveVolume = 0.0f;
+ float PrimitiveSurfaceArea = 0.0f;
+ float T60Decay = 0.0f;
+ float HFDamping = 0.0f;
+ float TimeToFirstReflection = 0.0f;
+
+ bool ShouldEstimateDecay() const;
+ bool ShouldEstimateDamping() const;
+ bool ShouldEstimatePredelay() const;
+ bool RequiresUpdates() const;
+
+ void CalculateT60();
+ void CalculateTimeToFirstReflection();
+ void CalculateHFDamping(const UAkAcousticTextureSetComponent* textureSetComponent);
+
+ void SetPrimitive(UPrimitiveComponent* primitive);
+ void SetReverbComponent(UAkLateReverbComponent* reverbComp);
+
+ void UpdateAllRTPCs(const UAkRoomComponent* room) const;
+
+private:
+ UPROPERTY(Transient)
+ UPrimitiveComponent* Primitive = nullptr;
+ UAkLateReverbComponent* ReverbComponent = nullptr;
+ /* Looks for a room component attached to Primitive, whose room ID has been registered with wwise, and whose world is Game or PIE.
+ room will be null if no such room is found, or if there is no valid AkAudioDevice.
+ return true if a room is found (and there is a valid AkAudioDevice). */
+ bool GetRTPCRoom(UAkRoomComponent*& room) const;
+ bool CanSetRTPCOnRoom(const UAkRoomComponent* room) const;
+ void UpdateDecayRTPC() const;
+ void UpdateDampingRTPC() const;
+ void UpdatePredelaytRTPC() const;
+
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbVolume.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbVolume.h
new file mode 100644
index 0000000..0cba62a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkReverbVolume.h
@@ -0,0 +1,79 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkReverbVolume.h:
+=============================================================================*/
+#pragma once
+
+#include "GameFramework/Volume.h"
+#include "AkLateReverbComponent.h"
+#include "AkReverbVolume.generated.h"
+
+/*------------------------------------------------------------------------------------
+ AAkReverbVolume
+------------------------------------------------------------------------------------*/
+UCLASS(hidecategories=(Advanced, Attachment, Volume), BlueprintType)
+class AKAUDIO_API AAkReverbVolume : public AVolume
+{
+ GENERATED_BODY()
+
+public:
+ AAkReverbVolume(const class FObjectInitializer& ObjectInitializer);
+
+#if WITH_EDITOR
+ virtual FName GetCustomIconName() const override
+ {
+ static const FName IconName("ClassIcon.AkReverbVolume");
+ return IconName;
+ }
+#endif
+
+ /** Whether this volume is currently enabled and able to affect sounds */
+ UPROPERTY()
+ bool bEnabled_DEPRECATED = false;
+
+ UPROPERTY()
+ class UAkAuxBus * AuxBus_DEPRECATED = nullptr;
+
+ /** Wwise Auxiliary Bus associated to this AkReverbVolume */
+ UPROPERTY()
+ FString AuxBusName_DEPRECATED;
+
+ /** Maximum send level to the Wwise Auxiliary Bus associated to this AkReverbVolume */
+ UPROPERTY()
+ float SendLevel_DEPRECATED = .0f;
+
+ /** Rate at which to fade in/out the SendLevel of the current Reverb Volume when entering/exiting it, in percentage per second (0.2 will make the fade time 5 seconds) */
+ UPROPERTY()
+ float FadeRate_DEPRECATED = .0f;
+
+ /**
+ * The precedence in which the AkReverbVolumes will be applied. In the case of overlapping volumes, only the ones
+ * with the highest priority are chosen (the number of simultaneous AkReverbVolumes is configurable in the Unreal
+ * Editor Project Settings under Plugins > Wwise). If two or more overlapping AkReverbVolumes have the same
+ * priority, the chosen AkReverbVolume is unpredictable.
+ */
+ UPROPERTY()
+ float Priority_DEPRECATED = .0f;
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "LateReverb", meta = (ShowOnlyInnerProperties))
+ UAkLateReverbComponent* LateReverbComponent = nullptr;
+
+ virtual void PostLoad() override;
+ virtual void Serialize(FArchive& Ar) override;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRoomComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRoomComponent.h
new file mode 100644
index 0000000..db1d2c3
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRoomComponent.h
@@ -0,0 +1,169 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "AkReverbDescriptor.h"
+#include "GameFramework/Volume.h"
+#include "AkGameObject.h"
+#include "AkRoomComponent.generated.h"
+
+class UAkLateReverbComponent;
+
+UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation, Tags), meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkRoomComponent : public UAkGameObject
+{
+ GENERATED_BODY()
+
+public:
+ UAkRoomComponent(const class FObjectInitializer& ObjectInitializer);
+
+ /**
+ * Enable room transmission feature. Additional properties are available in the Room category.
+ * If Enable Room begins as false, changing Enable Room during runtime will only have an effect
+ * if Room Is Dynamic = true.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Toggle, meta = (DisplayName = "Enable Room"))
+ bool bEnable = false;
+
+ /**
+ * If true, the portal connections for this room can change during runtime when this room moves.
+ * For worlds containing many portals, this can be expensive. Note that this room's portal connections
+ * may still change, even when Room Is Dynamic = false, when dynamic portals are moved (i.e. when portals
+ * move who have bDynamic = true).
+ * When Room Is Dynamic = true, enabling and disabling rooms will have immediate effect, without needing
+ * to update emitters and/or listeners directly. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Toggle, meta = (DisplayName = "Room Is Dynamic"))
+ bool bDynamic = false;
+
+ /**
+ * The precedence in which the Rooms will be applied. In the case of overlapping rooms, only the one
+ * with the highest priority is chosen. If two or more overlapping rooms have the same
+ * priority, the chosen room is unpredictable.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Room")
+ float Priority = .0f;
+
+ /**
+ * Used to set the transmission loss value in wwise, on emitters in the room, when no audio paths to the
+ * listener are found via sound propagation in Wwise Spatial Audio. This value can be thought of as
+ * 'thickness', as it relates to how much sound energy is transmitted through the wall. Valid range 0.0f-1.0f,
+ * and is mapped to the occlusion curve as defined in the Wwise project.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "Transmission Loss", Category = "Room", meta = (ClampMin=0.0f, ClampMax=1.0f, UIMin=0.0f, UIMax=1.0f))
+ float WallOcclusion = .0f;
+
+ /**
+ * Send level for sounds that are posted on the room. Valid range: (0.f-1.f). A value of 0 disables the aux send.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkEvent", meta = (ClampMin = "0.0", ClampMax = "1.0"))
+ float AuxSendLevel = .0f;
+
+ /** Automatically post the associated AkAudioEvent on BeginPlay */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AkEvent", SimpleDisplay)
+ bool AutoPost = false;
+
+ /** Posts this game object's AkAudioEvent to Wwise, using this as the game object source */
+ virtual int32 PostAssociatedAkEvent(
+ UPARAM(meta = (Bitmask, BitmaskEnum = "/Script/AkAudio.EAkCallbackType")) int32 CallbackMask,
+ const FOnAkPostEventCallback& PostEventCallback
+ );
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkRoomComponent")
+ UPrimitiveComponent* GetPrimitiveParent() const;
+
+ /** Register a room in AK Spatial Audio. */
+ void AddSpatialAudioRoom();
+
+ /** Modify a room in AK Spatial Audio. */
+ void UpdateSpatialAudioRoom();
+
+ /** Remove a room from AK Spatial Audio */
+ void RemoveSpatialAudioRoom();
+
+ bool HasEffectOnLocation(const FVector& Location) const;
+
+ bool RoomIsActive() const;
+
+ AkRoomID GetRoomID() const { return AkRoomID(this); }
+
+ virtual void OnRegister() override;
+ virtual void OnUnregister() override;
+#if WITH_EDITOR
+ virtual void BeginDestroy() override;
+ virtual void OnComponentCreated() override;
+ virtual void InitializeComponent() override;
+ virtual void PostLoad() override;
+ virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
+#endif
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction * ThisTickFunction) override;
+ virtual void OnUpdateTransform(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) override;
+ virtual bool MoveComponentImpl(
+ const FVector & Delta,
+ const FQuat & NewRotation,
+ bool bSweep,
+ FHitResult * Hit,
+ EMoveComponentFlags MoveFlags,
+ ETeleportType Teleport) override;
+
+ FName GetName() const;
+
+ virtual AkPlayingID PostAkEventByNameWithDelegate(
+ UAkAudioEvent* AkEvent,
+ const FString& in_EventName,
+ int32 CallbackMask, const FOnAkPostEventCallback& PostEventCallback);
+
+ // Begin USceneComponent Interface
+ virtual void BeginPlay() override;
+ virtual void EndPlay(EEndPlayReason::Type EndPlayReason) override;
+
+#if WITH_EDITOR
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+#endif
+
+ /** Set the geometry component that will be used to send the geometry of the room to Wwise. For example, in a Blueprint that has a static mesh component with an AkGeometry child component, this function can be called in BeginPlay to associate that AkGeometry component with this room component.
+ * If this room component has a sibling geometry component (or surface reflector set component), they will be associated automatically and there is no need to call this function.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkRoomComponent")
+ void SetGeometryComponent(UAkAcousticTextureSetComponent* textureSetComponent);
+
+ FString GetRoomName();
+ UAkLateReverbComponent* GetReverbComponent();
+
+private:
+ class UPrimitiveComponent* Parent;
+
+ UPROPERTY(Transient)
+ class UAkAcousticTextureSetComponent* GeometryComponent = nullptr;
+
+ void InitializeParent();
+ void GetRoomParams(AkRoomParams& outParams);
+ bool EncompassesPoint(FVector Point, float SphereRadius = 0.f, float* OutDistanceToPoint = nullptr) const;
+ void BeginPlayInternal();
+ void SendGeometry();
+ void RemoveGeometry();
+ float SecondsSinceMovement = 0.0f;
+ bool Moving = false;
+#if WITH_EDITOR
+ void HandleObjectsReplaced(const TMap& ReplacementMap);
+ bool bRequiresDeferredBeginPlay = false;
+ class UDrawRoomComponent* DrawRoomComponent = nullptr;
+ void RegisterVisEnabledCallback();
+ void InitializeDrawComponent();
+ void DestroyDrawComponent();
+ FDelegateHandle ShowRoomsChangedHandle;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRtpc.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRtpc.h
new file mode 100644
index 0000000..a292bde
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkRtpc.h
@@ -0,0 +1,54 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "Wwise/CookedData/WwiseGameParameterCookedData.h"
+#if WITH_EDITORONLY_DATA
+#include "Wwise/Info/WwiseObjectInfo.h"
+#endif
+#include "AkRtpc.generated.h"
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkRtpc : public UAkAudioType
+{
+ GENERATED_BODY()
+
+public:
+
+ UPROPERTY(Transient, VisibleAnywhere, Category = "AkRtpc")
+ FWwiseGameParameterCookedData GameParameterCookedData;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category = "AkRtpc")
+ FWwiseObjectInfo RtpcInfo;
+#endif
+
+public :
+ void Serialize(FArchive& Ar) override;
+ virtual AkUInt32 GetShortID() const override {return GameParameterCookedData.ShortId;}
+
+#if WITH_EDITORONLY_DATA
+ virtual void LoadData() override { GetGameParameterCookedData(); }
+ void GetGameParameterCookedData();
+ virtual void FillInfo() override;
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &RtpcInfo;}
+ virtual FWwiseObjectInfo GetInfo() const override {return RtpcInfo;}
+ virtual bool ObjectIsInSoundBanks() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettings.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettings.h
new file mode 100644
index 0000000..f7b793d
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettings.h
@@ -0,0 +1,405 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAcousticTexture.h"
+#include "Engine/EngineTypes.h"
+#include "PhysicalMaterials/PhysicalMaterial.h"
+#include "AssetRegistry/AssetRegistryModule.h"
+#include "WwiseDefines.h"
+#include "AkRtpc.h"
+#include "AkSettings.generated.h"
+
+class UAkInitBank;
+class UAkAcousticTexture;
+
+DECLARE_MULTICAST_DELEGATE(FOnSoundBanksPathChangedDelegate);
+
+
+/** Custom Collision Channel enum with an option to take the value from the Wwise Integration Settings (this follows a similar approach to that of EActorUpdateOverlapsMethod in Actor.h). */
+UENUM(BlueprintType)
+enum EAkCollisionChannel
+{
+ EAKCC_WorldStatic UMETA(DisplayName = "WorldStatic"),
+ EAKCC_WorldDynamic UMETA(DisplayName = "WorldDynamic"),
+ EAKCC_Pawn UMETA(DisplayName = "Pawn"),
+ EAKCC_Visibility UMETA(DisplayName = "Visibility", TraceQuery = "1"),
+ EAKCC_Camera UMETA(DisplayName = "Camera", TraceQuery = "1"),
+ EAKCC_PhysicsBody UMETA(DisplayName = "PhysicsBody"),
+ EAKCC_Vehicle UMETA(DisplayName = "Vehicle"),
+ EAKCC_Destructible UMETA(DisplayName = "Destructible"),
+ EAKCC_UseIntegrationSettingsDefault UMETA(DisplayName = "Use Integration Settings Default"), // Use the default value specified by Wwise Integration Settings.
+};
+
+UENUM()
+enum class EAkUnrealAudioRouting
+{
+ Custom UMETA(DisplayName = "Default", ToolTip = "Custom Unreal audio settings set up by the developer"),
+ Separate UMETA(DisplayName = "Both Wwise and Unreal audio", ToolTip = "Use default Unreal audio at the same time than Wwise SoundEngine (might be incompatible with some platforms)"),
+ AudioLink UMETA(DisplayName = "Route through AudioLink [UE5.1]", ToolTip = "Use WwiseAudioLink to route all Unreal audio sources to Wwise SoundEngine Inputs (requires Unreal Engine 5.1)"),
+ AudioMixer UMETA(DisplayName = "Route through AkAudioMixer", ToolTip = "Use AkAudioMixer to route Unreal submixes to a Wwise SoundEngine Input"),
+ EnableWwiseOnly UMETA(DisplayName = "Enable Wwise SoundEngine only", ToolTip = "Only use Wwise SoundEngine, and disable Unreal audio"),
+ EnableUnrealOnly UMETA(DisplayName = "Enable Unreal Audio only", ToolTip = "Only use Unreal audio, and disable Wwise SoundEngine")
+};
+
+USTRUCT()
+struct FAkGeometrySurfacePropertiesToMap
+{
+ GENERATED_BODY()
+
+ UPROPERTY(EditAnywhere, Category = "AkGeometry Surface Properties Map")
+ TSoftObjectPtr AcousticTexture = nullptr;
+
+ UPROPERTY(EditAnywhere, DisplayName = "Transmission Loss", Category = "AkGeometry Surface Properties Map", meta = (ClampMin = "0.0", ClampMax = "1.0"))
+ float OcclusionValue = 1.f;
+
+ bool operator==(const FAkGeometrySurfacePropertiesToMap& Rhs) const
+ {
+ if (OcclusionValue != Rhs.OcclusionValue)
+ {
+ return false;
+ }
+ if (!AcousticTexture.IsValid() != !Rhs.AcousticTexture.IsValid())
+ {
+ return false;
+ }
+ if (!AcousticTexture.IsValid())
+ {
+ return true;
+ }
+ return AcousticTexture->GetFName() == Rhs.AcousticTexture->GetFName();
+ }
+};
+
+struct AkGeometrySurfaceProperties
+{
+ UAkAcousticTexture* AcousticTexture = nullptr;
+ float OcclusionValue = 1.f;
+};
+
+USTRUCT()
+struct FAkAcousticTextureParams
+{
+ GENERATED_BODY()
+ UPROPERTY()
+ FVector4 AbsorptionValues = FVector4(FVector::ZeroVector, 0.0f);
+ uint32 shortID = 0;
+
+ float AbsorptionLow() const { return AbsorptionValues[0]; }
+ float AbsorptionMidLow() const { return AbsorptionValues[1]; }
+ float AbsorptionMidHigh() const { return AbsorptionValues[2]; }
+ float AbsorptionHigh() const { return AbsorptionValues[3]; }
+
+ TArray AsTArray() const { return { AbsorptionLow(), AbsorptionMidLow(), AbsorptionMidHigh(), AbsorptionHigh() }; }
+};
+
+#define AK_MAX_AUX_PER_OBJ 4
+
+DECLARE_EVENT(UAkSettings, ActivatedNewAssetManagement);
+DECLARE_EVENT(UAkSettings, ShowRoomsPortalsChanged);
+DECLARE_EVENT(UAkSettings, ShowReverbInfoChanged)
+DECLARE_EVENT(UAkSettings, AuxBusAssignmentMapChanged);
+DECLARE_EVENT(UAkSettings, ReverbRTPCChanged);
+DECLARE_EVENT_TwoParams(UAkSettings, SoundDataFolderChanged, const FString&, const FString&);
+DECLARE_EVENT_OneParam(UAkSettings, AcousticTextureParamsChanged, const FGuid&)
+
+UCLASS(config = Game, defaultconfig)
+class AKAUDIO_API UAkSettings : public UObject
+{
+ GENERATED_BODY()
+
+public:
+ UAkSettings(const FObjectInitializer& ObjectInitializer);
+ ~UAkSettings();
+
+ /**
+ Converts between EAkCollisionChannel and ECollisionChannel. Returns Wwise Integration Settings default if CollisionChannel == UseIntegrationSettingsDefault. Otherwise, casts CollisionChannel to ECollisionChannel.
+ */
+ static ECollisionChannel ConvertFitToGeomCollisionChannel(EAkCollisionChannel CollisionChannel);
+
+ /**
+ Converts between EAkCollisionChannel and ECollisionChannel. Returns Wwise Integration Settings default if CollisionChannel == UseIntegrationSettingsDefault. Otherwise, casts CollisionChannel to ECollisionChannel.
+ */
+ static ECollisionChannel ConvertOcclusionCollisionChannel(EAkCollisionChannel CollisionChannel);
+
+ // The maximum number of reverb auxiliary sends that will be simultaneously applied to a sound source
+ // Reverbs from a Spatial Audio room will be active even if this maximum is reached.
+ UPROPERTY(Config, EditAnywhere, DisplayName = "Max Simultaneous Reverb", Category="Reverb")
+ uint8 MaxSimultaneousReverbVolumes = AK_MAX_AUX_PER_OBJ;
+
+ // Wwise Project Path
+ UPROPERTY(Config, EditAnywhere, Category="Installation", meta=(FilePathFilter="wproj", AbsolutePath))
+ FFilePath WwiseProjectPath;
+
+ // Where the Sound Data will be generated in the Content Folder
+ UPROPERTY()
+ FDirectoryPath WwiseSoundDataFolder;
+
+ UPROPERTY(Config, EditAnywhere, Category="Installation", meta=( AbsolutePath))
+ FDirectoryPath GeneratedSoundBanksFolder;
+
+ //Where wwise .bnk and .wem files will be copied to when staging files during cooking
+ UPROPERTY(Config, EditAnywhere, Category = "Cooking", meta=(RelativeToGameContentDir))
+ FDirectoryPath WwiseStagingDirectory = {TEXT("WwiseAudio")};
+
+ //Used to track whether SoundBanks have been transferred to Wwise after migration to 2022.1 (or later)
+ UPROPERTY(Config)
+ bool bSoundBanksTransfered = false;
+
+ //Used after migration to track whether assets have been re-serialized after migration to 2022.1 (or later)
+ UPROPERTY(Config)
+ bool bAssetsMigrated = false;
+
+ //Used after migration to track whether project settings have been updated after migration to 2022.1 (or later)
+ UPROPERTY(Config)
+ bool bProjectMigrated = false;
+
+ UPROPERTY(Config)
+ bool bAutoConnectToWAAPI_DEPRECATED = false;
+
+ // Default value for Occlusion Collision Channel when creating a new Ak Component.
+ UPROPERTY(Config, EditAnywhere, Category = "Occlusion")
+ TEnumAsByte DefaultOcclusionCollisionChannel = ECollisionChannel::ECC_Visibility;
+
+ // Default value for Collision Channel when fitting Ak Acoustic Portals and Ak Spatial Audio Volumes to surrounding geometry.
+ UPROPERTY(Config, EditAnywhere, Category = "Fit To Geometry")
+ TEnumAsByte DefaultFitToGeometryCollisionChannel = ECollisionChannel::ECC_WorldStatic;
+
+ // PhysicalMaterial to AcousticTexture and Occlusion Value Map
+ UPROPERTY(Config, EditAnywhere, EditFixedSize, Category = "AkGeometry Surface Properties Map")
+ TMap, FAkGeometrySurfacePropertiesToMap> AkGeometryMap;
+
+ // Global surface absorption value to use when estimating environment decay value. Acts as a global scale factor for the decay estimations. Defaults to 0.5.
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map", meta = (ClampMin = 0.1f, ClampMax = 1.0f, UIMin = 0.1f, UIMax = 1.0f))
+ float GlobalDecayAbsorption = .5f;
+
+ // Default reverb aux bus to apply to rooms
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map")
+ TSoftObjectPtr DefaultReverbAuxBus = nullptr;
+
+ // RoomDecay to AuxBusID Map. Used to automatically assign aux bus ids to rooms depending on their volume and surface area.
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map")
+ TMap> EnvironmentDecayAuxBusMap;
+
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map|RTPCs")
+ FString HFDampingName = "";
+
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map|RTPCs")
+ FString DecayEstimateName = "";
+
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map|RTPCs")
+ FString TimeToFirstReflectionName = "";
+
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map|RTPCs")
+ TSoftObjectPtr HFDampingRTPC = nullptr;
+
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map|RTPCs")
+ TSoftObjectPtr DecayEstimateRTPC = nullptr;
+
+ UPROPERTY(Config, EditAnywhere, Category = "Reverb Assignment Map|RTPCs")
+ TSoftObjectPtr TimeToFirstReflectionRTPC = nullptr;
+
+ // Input event associated with the Wwise Audio Input
+ UPROPERTY(Config, EditAnywhere, Category = "Initialization")
+ TSoftObjectPtr AudioInputEvent = nullptr;
+
+ UPROPERTY(Config)
+ TMap AcousticTextureParamsMap;
+
+ // When generating the event data, the media contained in switch containers will be split by state/switch value
+ // and only loaded if the state/switch value are currently loaded
+ UPROPERTY(Config, meta = (Deprecated, DeprecationMessage="Setting now exists for each AK Audio Event"))
+ bool SplitSwitchContainerMedia = false;
+
+ //Deprecated in 2022.1
+ //Used in migration from previous versions
+ UPROPERTY(Config)
+ bool SplitMediaPerFolder= false;
+
+ // Deprecated in 2022.1
+ //Used in migration from previous versions
+ UPROPERTY(Config)
+ bool UseEventBasedPackaging= false;
+
+ // Commit message that GenerateSoundBanksCommandlet will use
+ UPROPERTY()
+ FString CommandletCommitMessage = TEXT("Unreal Wwise Sound Data auto-generation");
+
+ UPROPERTY(Config, EditAnywhere, Category = "Localization")
+ TMap UnrealCultureToWwiseCulture;
+
+ // When an asset is dragged from the Wwise Browser, assets are created by default in this path.
+ UPROPERTY(Config, EditAnywhere, Category = "Asset Creation")
+ FString DefaultAssetCreationPath = "/Game/WwiseAudio";
+
+ // The unique Init Bank for the Wwise project. This contains the basic information necessary for properly setting up the SoundEngine.
+ UPROPERTY(Config, EditAnywhere, Category = "Initialization")
+ TSoftObjectPtr InitBank;
+
+ // Routing Audio from Unreal Audio to Wwise Sound Engine
+ UPROPERTY(Config, EditAnywhere, Category = "Initialization", DisplayName = "Unreal Audio Routing (Experimental)", meta=(ConfigRestartRequired=true))
+ EAkUnrealAudioRouting AudioRouting = EAkUnrealAudioRouting::Custom;
+
+ UPROPERTY(Config, EditAnywhere, Category = "Initialization", DisplayName = "Wwise SoundEngine Enabled (Experimental)", meta=(ConfigRestartRequired=true, EditCondition="AudioRouting == EAkUnrealAudioRouting::Custom"))
+ bool bWwiseSoundEngineEnabled = true;
+
+ UPROPERTY(Config, EditAnywhere, Category = "Initialization", DisplayName = "Wwise AudioLink Enabled (Experimental)", meta=(ConfigRestartRequired=true, EditCondition="AudioRouting == EAkUnrealAudioRouting::Custom"))
+ bool bWwiseAudioLinkEnabled = false;
+
+ UPROPERTY(Config, EditAnywhere, Category = "Initialization", DisplayName = "AkAudioMixer Enabled (Experimental)", meta=(ConfigRestartRequired=true, EditCondition="AudioRouting == EAkUnrealAudioRouting::Custom"))
+ bool bAkAudioMixerEnabled = false;
+
+ UPROPERTY(Config)
+ bool AskedToUseNewAssetManagement_DEPRECATED = false;
+
+ UPROPERTY(Config)
+ bool bEnableMultiCoreRendering_DEPRECATED = false;
+
+ UPROPERTY(Config)
+ bool MigratedEnableMultiCoreRendering = false;
+
+ UPROPERTY(Config)
+ bool FixupRedirectorsDuringMigration = false;
+
+ UPROPERTY(Config)
+ FDirectoryPath WwiseWindowsInstallationPath_DEPRECATED;
+
+ UPROPERTY(Config)
+ FFilePath WwiseMacInstallationPath_DEPRECATED;
+
+ static FString DefaultSoundDataFolder;
+
+ virtual void PostInitProperties() override;
+
+ bool ReverbRTPCsInUse() const;
+ bool DecayRTPCInUse() const;
+ bool DampingRTPCInUse() const;
+ bool PredelayRTPCInUse() const;
+
+ bool GetAssociatedAcousticTexture(const UPhysicalMaterial* physMaterial, UAkAcousticTexture*& acousticTexture) const;
+ bool GetAssociatedOcclusionValue(const UPhysicalMaterial* physMaterial, float& occlusionValue) const;
+
+#if WITH_EDITOR
+ bool UpdateGeneratedSoundBanksPath();
+ bool UpdateGeneratedSoundBanksPath(FString Path);
+ bool GeneratedSoundBanksPathExists() const;
+ bool AreSoundBanksGenerated() const;
+ void RefreshAcousticTextureParams() const;
+#if AK_SUPPORT_WAAPI
+ /** This needs to be called after the waapi client has been initialized, which happens after AkSettings is constructed. */
+ void InitWaapiSync();
+ /** Set the color of a UAkAcousticTexture asset using a color from the UnrealWwiseObjectColorPalette (this is the same as the 'dark theme' in Wwise Authoring). Send a colorIndex of -1 to use the 'unset' color. */
+ void SetTextureColor(FGuid textureID, int colorIndex);
+#endif
+ void RemoveSoundDataFromAlwaysStageAsUFS(const FString& SoundDataPath);
+ void RemoveSoundDataFromAlwaysCook(const FString& SoundDataPath);
+ void EnsurePluginContentIsInAlwaysCook() const;
+ void InitAkGeometryMap();
+ void DecayAuxBusMapChanged();
+ void SortDecayKeys();
+ static float MinimumDecayKeyDistance;
+#endif
+
+protected:
+#if WITH_EDITOR
+ virtual void PostEditChangeProperty( struct FPropertyChangedEvent& PropertyChangedEvent ) override;
+ virtual void PreEditChange(FProperty* PropertyAboutToChange) override;
+#endif
+
+private:
+#if WITH_EDITOR
+ FString PreviousWwiseProjectPath;
+ FString PreviousWwiseGeneratedSoundBankFolder;
+ bool bTextureMapInitialized = false;
+ TMap< UPhysicalMaterial*, UAkAcousticTexture* > TextureMapInternal;
+ FAssetRegistryModule* AssetRegistryModule;
+
+ void OnAssetAdded(const FAssetData& NewAssetData);
+ void OnAssetRemoved(const struct FAssetData& AssetData);
+ void FillAkGeometryMap(const TArray& PhysicalMaterials, const TArray& AcousticTextureAssets);
+ void UpdateAkGeometryMap();
+ void SanitizeProjectPath(FString& Path, const FString& PreviousPath, const FText& DialogMessage);
+ void OnAudioRoutingUpdate();
+
+ bool bAkGeometryMapInitialized = false;
+ TMap< UPhysicalMaterial*, UAkAcousticTexture* > PhysicalMaterialAcousticTextureMap;
+ TMap< UPhysicalMaterial*, float > PhysicalMaterialOcclusionMap;
+
+ // This is used to track which key has changed and restrict its value between the two neighbouring keys
+ TMap> PreviousDecayAuxBusMap;
+
+#if AK_SUPPORT_WAAPI
+ TMap> WaapiTextureSubscriptions;
+ TMap WaapiTextureColorSubscriptions;
+ TMap WaapiTextureColorOverrideSubscriptions;
+ FDelegateHandle WaapiProjectLoadedHandle;
+ FDelegateHandle WaapiConnectionLostHandle;
+#endif
+#endif
+
+public:
+ bool bRequestRefresh = false;
+ const FAkAcousticTextureParams* GetTextureParams(const uint32& shortID) const;
+#if WITH_EDITOR
+ void ClearAkRoomDecayAuxBusMap();
+ void InsertDecayKeyValue(const float& decayKey);
+ void SetAcousticTextureParams(const FGuid& textureID, const FAkAcousticTextureParams& params);
+ void ClearTextureParamsMap();
+#if AK_SUPPORT_WAAPI
+ void WaapiProjectLoaded();
+ void WaapiDisconnected();
+ void RegisterWaapiTextureCallback(const FGuid& textureID);
+ void UnregisterWaapiTextureCallback(const FGuid& textureID);
+ void ClearWaapiTextureCallbacks();
+ /** Use WAAPI to query the absorption params for a given texture and store them in the texture params map. */
+ void UpdateTextureParams(const FGuid& textureID);
+ /** Use WAAPI to query the color for a given texture and Update the corresponding UAkAcousticTexture asset. */
+ void UpdateTextureColor(const FGuid& textureID);
+#endif // AK_SUPPORT_WAAPI
+ mutable AcousticTextureParamsChanged OnTextureParamsChanged;
+
+#endif // WITH_EDITOR
+
+#if WITH_EDITORONLY_DATA
+ // Visualize rooms and portals in the viewport. This requires 'realtime' to be enabled in the viewport.
+ UPROPERTY(Config, EditAnywhere, Category = "Viewports")
+ bool VisualizeRoomsAndPortals = false;
+ // Flips the state of VisualizeRoomsAndPortals. Used for the viewport menu options. (See FAudiokineticToolsModule in AudiokineticTooslModule.cpp).
+ void ToggleVisualizeRoomsAndPortals();
+ // When enabled, information about AkReverbComponents will be displayed in viewports, above the component's UPrimitiveComponent parent. This requires 'realtime' to be enabled in the viewport.
+ UPROPERTY(Config, EditAnywhere, Category = "Viewports")
+ bool bShowReverbInfo = true;
+ // Flips the state of bShowReverbInfo. Used for the viewport menu options. (See FAudiokineticToolsModule in AudiokineticTooslModule.cpp).
+ void ToggleShowReverbInfo();
+ ShowRoomsPortalsChanged OnShowRoomsPortalsChanged;
+ ShowReverbInfoChanged OnShowReverbInfoChanged;
+ AuxBusAssignmentMapChanged OnAuxBusAssignmentMapChanged;
+ ReverbRTPCChanged OnReverbRTPCChanged;
+
+ FOnSoundBanksPathChangedDelegate OnGeneratedSoundBanksPathChanged;
+
+#endif
+
+ /** Get the associated AuxBus for the given environment decay value.
+ * Return the AuxBus associated to the next highest decay value in the EnvironmentDecayAuxBusMap, after the given value.
+ */
+ void GetAuxBusForDecayValue(float decay, class UAkAuxBus*& auxBus);
+
+ void GetAudioInputEvent(class UAkAudioEvent*& OutInputEvent);
+
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettingsPerUser.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettingsPerUser.h
new file mode 100644
index 0000000..8cc732f
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSettingsPerUser.h
@@ -0,0 +1,94 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Engine/EngineTypes.h"
+#include "AkWaapiClient.h"
+#include "AkSettingsPerUser.generated.h"
+
+DECLARE_EVENT(UAkSettingsPerUser, AutoConnectChanged);
+DECLARE_EVENT(UAkSettingsPerUser, AutoSyncWaapiNamesChanged);
+DECLARE_MULTICAST_DELEGATE(FOnSoundBanksPathChangedDelegate);
+
+UCLASS(config = EditorPerProjectUserSettings)
+class AKAUDIO_API UAkSettingsPerUser : public UObject
+{
+ GENERATED_BODY()
+
+public:
+ UAkSettingsPerUser(const FObjectInitializer& ObjectInitializer);
+
+ // Wwise Installation Path (Root folder containing the Authoring, SDK, etc folders)
+ UPROPERTY(Config, EditAnywhere, Category = "Installation")
+ FDirectoryPath WwiseWindowsInstallationPath;
+
+ // Wwise Installation Path (Root folder containing the Authoring, SDK, etc folders)
+ UPROPERTY(Config, EditAnywhere, Category = "Installation", meta = (FilePathFilter = "app", AbsolutePath))
+ FFilePath WwiseMacInstallationPath;
+
+ //Override the Generated Soundbanks Path in the project settings
+ UPROPERTY(Config, EditAnywhere, Category = "Installation")
+ FDirectoryPath GeneratedSoundBanksFolderUserOverride;
+
+ // IP Address used to connect to WAAPI. Changing this requires Editor restart
+ UPROPERTY(Config, EditAnywhere, Category = "WAAPI")
+ FString WaapiIPAddress = WAAPI_LOCAL_HOST_IP_STRING;
+
+ // Network Port used to connect to WAAPI. Changing this requires Editor restart
+ UPROPERTY(Config, EditAnywhere, Category = "WAAPI")
+ uint32 WaapiPort = WAAPI_PORT;
+
+ // Whether to connect to WAAPI or not
+ UPROPERTY(Config, EditAnywhere, Category = "WAAPI")
+ bool bAutoConnectToWAAPI = false;
+
+ // Whether to synchronize the selection between the WAAPI picker and the Wwise Project Explorer
+ UPROPERTY(Config, EditAnywhere, Category = "WAAPI")
+ bool AutoSyncSelection = true;
+
+ // Time out value for the waapi error message translator to translate an error message (in ms). If set to 0, disable the translator entirely
+ UPROPERTY(Config, EditAnywhere, Category = "Error Message Translator")
+ uint32 WaapiTranslatorTimeout = 0;
+
+ UPROPERTY(Config)
+ bool SuppressGeneratedSoundBanksPathWarnings = false;
+
+ UPROPERTY(Config)
+ bool SoundDataGenerationSkipLanguage = false;
+
+ //Opens a notification that the user must accept before reloading Wwise Asset Data
+ UPROPERTY(Config, EditAnywhere, Category = "Asset Reload")
+ bool AskForWwiseAssetReload = false;
+
+
+#if WITH_EDITOR
+
+public:
+ mutable AutoConnectChanged OnAutoConnectToWaapiChanged;
+
+ FOnSoundBanksPathChangedDelegate OnGeneratedSoundBanksPathChanged;
+protected:
+ void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
+ void PreEditChange(FProperty* PropertyAboutToChange) override;
+
+private:
+ FString PreviousWwiseWindowsInstallationPath;
+ FString PreviousWwiseMacInstallationPath;
+ FString PreviousGeneratedSoundBanksFolder;
+#endif
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioDrawUtils.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioDrawUtils.h
new file mode 100644
index 0000000..c057337
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioDrawUtils.h
@@ -0,0 +1,88 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkSpatialAudioDrawUtils.h:
+=============================================================================*/
+#pragma once
+
+#if WITH_EDITOR
+
+#include "CoreMinimal.h"
+#include "AkAudioDevice.h"
+
+namespace AkDrawConstants
+{
+ const float CullDepth = 100.0f;
+ const float PortalOutlineThickness = 5.0f;
+ const float PortalRoomConnectionThickness = 3.0f;
+ const float RoomIconThickness = 2.0f;
+ const float RoomIconRadius = 10.0f;
+ const int RoomIconSides = 16;
+ const float RoomAxisLength = 30.0f;
+ const float RoomAxisThickness = 1.0f;
+ const float RoomOutlineThickness = 1.0f; // Slightly thicker lines for spatial audio volumes when surface reflectors are disabled, since they are less visible.
+ const float SpatialAudioVolumeOutlineThickness = 0.2f; // Shows the outline of disabled surfaces and non-diffraction edges.
+ const float RadialEmitterThickness = 2.0f;
+ const float DiffractionEdgeThickness = 2.5f;
+}
+
+/** A utility struct to transform the points on a local axis-aligned bounding box to world space using the given transform.
+ Used for drawing rotated bounding boxes around portals.
+*/
+struct AKAUDIO_API AkDrawBounds
+{
+ AkDrawBounds(const FTransform& T, const FVector& Extent);
+
+private:
+ const FTransform& Transform;
+ const FVector& BoxExtent;
+
+public:
+ /** FrontRightUp */ FVector FRU() const;
+ /** BackLeftDown */ FVector BLD() const;
+ /** FrontLeftDown */ FVector FLD() const;
+ /** BackRightUp */ FVector BRU() const;
+ /** FrontLeftDown */ FVector FLU() const;
+ /** BackLeftUp */ FVector BLU() const;
+ /** FrontRightDown */ FVector FRD() const;
+ /** BackRightDown */ FVector BRD() const;
+ /** RightUp */ FVector RU() const;
+ /** LeftUp */ FVector LU() const;
+ /** RightDown */ FVector RD() const;
+ /** LeftDown */ FVector LD() const;
+};
+
+class UAkPortalComponent;
+class UAkSurfaceReflectorSetComponent;
+namespace AkSpatialAudioColors
+{
+ AKAUDIO_API void GetPortalColors(const UAkPortalComponent* Portal, FLinearColor& FrontColor, FLinearColor& BackColor);
+ AKAUDIO_API FLinearColor GetPortalOutlineColor(const UAkPortalComponent* Portal);
+ AKAUDIO_API FLinearColor GetRoomColor();
+ AKAUDIO_API FLinearColor GetRadialEmitterOutlineColor();
+ AKAUDIO_API FLinearColor GetRadialEmitterColor();
+ AKAUDIO_API float GetRadialEmitterOuterOpacity();
+ AKAUDIO_API float GetRadialEmitterInnerOpacity();
+ AKAUDIO_API FLinearColor GetSurfaceReflectorColor(const UAkSurfaceReflectorSetComponent* SurfaceReflectorSet, int NodeIdx, bool IsDragging);
+ AKAUDIO_API FLinearColor GetSpatialAudioVolumeOutlineColor();
+ AKAUDIO_API FLinearColor GetBadFitSpatialAudioVolumeOutlineColor();
+ AKAUDIO_API FLinearColor GetDiffractionEdgeColor();
+ AKAUDIO_API FLinearColor GetBoundaryDiffractionEdgeColor();
+}
+
+#endif // WITH_EDITOR
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioHelper.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioHelper.h
new file mode 100644
index 0000000..286901f
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioHelper.h
@@ -0,0 +1,39 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Engine/EngineTypes.h"
+
+#if WITH_EDITOR
+#include "Editor/EditorEngine.h"
+#endif
+
+#include "WwiseDefines.h"
+#if UE_5_1_OR_LATER
+#include "Engine/HitResult.h"
+#endif
+
+namespace AkSpatialAudioHelper
+{
+ AActor* GetActorFromHitResult(const FHitResult& HitResult);
+ bool IsAkSpatialAudioActorClass(const AActor* Actor);
+
+#if WITH_EDITOR
+ UEditorEngine::FObjectsReplacedEvent* GetObjectReplacedEvent();
+#endif
+}
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioVolume.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioVolume.h
new file mode 100644
index 0000000..25b4dc7
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpatialAudioVolume.h
@@ -0,0 +1,162 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkReverbVolume.h:
+=============================================================================*/
+#pragma once
+
+#include "GameFramework/Volume.h"
+#include "AkSurfaceReflectorSetComponent.h"
+#include "AkLateReverbComponent.h"
+#include "AkRoomComponent.h"
+#include "AkSpatialAudioVolume.generated.h"
+
+UENUM()
+enum class EAkFitToGeometryMode : uint32
+{
+ /**
+ Oriented Box: The Ak Spatial Audio Volume is fit to the surrounding geometry using a minimum volume oriented bounding box.
+ Use for shoe box shaped rooms with and arbitrary extent and rotation.
+ */
+ OrientedBox,
+
+ /**
+ Aligned Box: The Ak Spatial Audio Volume is fit to the surrounding geometry using an aligned bounding box, aligned to the local axes of the Actor.
+ Use for shoe box shaped rooms with an arbitrary extent, but with the rotation supplied by the user.
+ The actor is rotated manually in the editor to achieve desired alignment.
+ */
+ AlignedBox,
+
+ /**
+ Convex Polyhedron: The Ak Spatial Audio Volume is fit to the surrounding geometry using a convex polyhedron. Use for arbitrary-shaped convex rooms.
+ Will likely result in a more complex (higher poly-count) shape, and will possibly resulting in greater CPU and memory usage than oriented or aligned box shapes.
+ When using convex polyhedron, a room must be fully enclosed; open ceilings or walls are not permitted and will cause a failure to fit to geometry.
+ */
+ ConvexPolyhedron
+};
+
+/*------------------------------------------------------------------------------------
+ AAkSpatialAudioVolume
+------------------------------------------------------------------------------------*/
+UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Advanced, Attachment, Volume))
+class AKAUDIO_API AAkSpatialAudioVolume : public AVolume
+{
+ GENERATED_BODY()
+
+public:
+ AAkSpatialAudioVolume(const class FObjectInitializer& ObjectInitializer);
+
+#if WITH_EDITOR
+ void FitRaycast();
+ void FitBox(bool bPreviewOnly = false);
+ bool bBrushNeedsRebuild = false;
+ virtual bool ShouldTickIfViewportsOnly() const override;
+ virtual void Tick(float DeltaSeconds) override;
+ virtual void PostTransacted(const FTransactionObjectEvent& TransactionEvent) override;
+ virtual void PostEditMove(bool bFinished) override;
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+
+ const TArray& GetRaycastHits() const { return FitPoints; }
+ float GetFitScale() const { return FilterHitPoints; }
+ static const int kNumRaycasts = 32;
+
+ virtual FName GetCustomIconName() const override
+ {
+ static const FName IconName("ClassIcon.AkSpatialAudioVolume");
+ return IconName;
+ }
+
+ void PostRebuildBrush();
+ void ClearTextComponents();
+ void UpdatePreviewTextComponents(TArray positions);
+ void UpdatePreviewPolys(TArray, int>> materialVotes);
+ TArray PreviewPolys;
+#endif
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "SurfaceReflectorSet", meta = (ShowOnlyInnerProperties))
+ UAkSurfaceReflectorSetComponent* SurfaceReflectorSet = nullptr;
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "LateReverb", meta = (ShowOnlyInnerProperties))
+ UAkLateReverbComponent* LateReverb = nullptr;
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Room", meta = (ShowOnlyInnerProperties))
+ UAkRoomComponent* Room = nullptr;
+
+#if WITH_EDITORONLY_DATA
+ /**
+ Automatically fit the Ak Spatial Audio Volume to the surrounding geometry. The fitting operation is performed after enabling this property, or after moving the actor to a new location.
+ The fitting operation is performed by casting rays emanating spherically outwards from the origin of the actor.
+ The points where the rays hit the surrounding geometry (drawn in the editor as green dots) are fit to a shape (box or convex polyhedron), and the actor is then resized appropriately.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry" )
+ bool FitToGeometry = false;
+
+ /**
+ Sets the collision channel for the ray traces performed to fit the spatial audio volume to the surrounding geometry. When set to 'Use Integration Settings Default', the value will be taken from the DefaultFitToGeometryCollisionChannel in the Wwise Integration Settings.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry")
+ TEnumAsByte CollisionChannel;
+
+#if WITH_EDITOR
+ /**
+ Converts between EAkCollisionChannel and ECollisionChannel. Returns Wwise Integration Settings default if CollisionChannel == UseIntegrationSettingsDefault. Otherwise, casts CollisionChannel to ECollisionChannel.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Fit to Geometry")
+ ECollisionChannel GetCollisionChannel();
+#endif
+
+ /**
+ Choose the shape with which to fit to the surrounding geometry.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry" )
+ EAkFitToGeometryMode Shape = EAkFitToGeometryMode::AlignedBox;
+
+ /**
+ Set to a value less then 1.0 to filter out a percentage of the ray cast hits for use in fitting to surrounding geometry.
+ Points that have been rejected by the filter are drawn in red, and points accepted drawn in green.
+ Particularly useful when rays happen to escape through windows or other openings, resulting in undesirable points.
+ */
+ UPROPERTY(EditAnywhere, Category = "Fit to Geometry", meta = (ClampMin = 0.1875f, ClampMax = 1.0f))
+ float FilterHitPoints = 1.0f;
+
+ UPROPERTY()
+ TArray FitPoints;
+
+ UPROPERTY()
+ TArray FitNormals;
+
+ UPROPERTY()
+ TArray< TWeakObjectPtr > FitMaterials;
+
+ UPROPERTY()
+ FRotator SavedRotation;
+
+ TArray< TPair< FVector, FVector> > PreviewOutline;
+ bool IsDragging = false;
+
+ UPROPERTY()
+ bool FitFailed = false;
+
+ // Used by the visualizer when scaling the preview text components.
+ float LongestEdgeLength = 0.0f;
+ mutable TArray PreviewTextureNameComponents;
+
+private:
+ FBoxSphereBounds PreviousBounds = FBoxSphereBounds();
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpotReflector.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpotReflector.h
new file mode 100644
index 0000000..83ffb88
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSpotReflector.h
@@ -0,0 +1,110 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ AkSpotReflector.h:
+=============================================================================*/
+#pragma once
+
+#include "AkAudioDevice.h"
+#include "AkAcousticTexture.h"
+#include "GameFramework/Actor.h"
+#include "AkSpotReflector.generated.h"
+
+UCLASS(config = Engine)
+class AKAUDIO_API AAkSpotReflector : public AActor
+{
+ GENERATED_BODY()
+
+public:
+ AAkSpotReflector(const FObjectInitializer& ObjectInitializer);
+
+ /**
+ * Send to an Auxiliary Bus containing the Wwise Reflect plugin for early reflections rendering.
+ * Leave unassigned to use the Early Reflections Auxiliary Bus that is assigned in the Wwise Authoring Tool.
+ * Setting a value here will apply only to sounds playing on AK Components with EnableSpotReflectors to true.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector)
+ class UAkAuxBus * EarlyReflectionAuxBus = nullptr;
+
+ /**
+ * Send to an Auxiliary Bus containing the Wwise Reflect plugin for early reflections rendering.
+ * Leave unassigned to use the Early Reflections Auxiliary Bus that is assigned in the Wwise Authoring Tool.
+ * Setting a value here will apply only to sounds playing on AK Components with EnableSpotReflectors to true.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = AkSpotReflector)
+ FString EarlyReflectionAuxBusName;
+
+ /**
+ * The Acoustic Texture represents sound absorption. It is done by filtering the sound bouncing off the spot reflector.
+ * If left to None, no filtering will be applied to the sound.
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector)
+ UAkAcousticTexture* AcousticTexture = nullptr;
+
+ /**
+ * This number scales the distance between the listener and the actual image source, preserving orientation.
+ * Set to 1 to position the image source at the position of the spot reflector
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector, meta = (ClampMin = "0.0"))
+ float DistanceScalingFactor = .0f;
+
+ /** Game-controlled level for the sound that will emit from the image source. Valid range: (0.0, 4.0)*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector, meta = (ClampMin = "0.0", ClampMax = "4.0"))
+ float Level = .0f;
+
+ /** Make this spot reflector only reflect emitted sounds in the same Spatial Audio Room.*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector)
+ bool SameRoomOnly = false;
+
+ /** Override the room this spot reflector is contained in. If disabled, a containment check will be done to find the room.*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector, meta = (EditCondition = "SameRoomOnly"))
+ bool EnableRoomOverride = false;
+
+ /** The room in which the spot reflector will be virtually placed in. If set to None, the default "Outdoors" room will be used.*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = AkSpotReflector, meta = (EditCondition = "EnableRoomOverride"))
+ class AActor* RoomOverride = nullptr;
+
+ AkImageSourceID GetImageSourceID() const;
+ AkAuxBusID GetAuxBusID() const;
+
+ virtual void PostInitializeComponents() override;
+ virtual void EndPlay(const EEndPlayReason::Type EndPlayReason) override;
+
+ /**
+ * Update all spot reflectors in the world for a single ak component.
+ * All spot reflectors are cleared first, then they are set
+ * If the spot reflector is set as SameRoomOnly, it will be set only if it is in the same room as the ak component.
+ */
+ static void UpdateSpotReflectors(UAkComponent* AkComponent);
+
+ const FString GetSpotReflectorName() const;
+
+private:
+ void SetImageSource(UAkComponent* AkComponent);
+ void AddToWorld();
+ void RemoveFromWorld();
+
+#if WITH_EDITORONLY_DATA
+ /** Editor only component used to display the sprite so as to be able to see the location of the Spot Reflector */
+ class UBillboardComponent* SpriteComponent;
+#endif
+
+ typedef TSet SpotReflectorSet;
+ typedef TMap WorldToSpotReflectorsMap;
+ static WorldToSpotReflectorsMap sWorldToSpotReflectors;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkStateValue.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkStateValue.h
new file mode 100644
index 0000000..f30373c
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkStateValue.h
@@ -0,0 +1,40 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkGroupValue.h"
+#include "AkStateValue.generated.h"
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkStateValue : public UAkGroupValue
+{
+ GENERATED_BODY()
+
+ virtual void Serialize(FArchive& Ar) override;
+
+protected:
+ virtual void LoadGroupValue() override;
+
+#if WITH_EDITORONLY_DATA
+public:
+ virtual void FillInfo() override;
+ virtual void FillInfo(const FWwiseAnyRef& CurrentWwiseRef) override;
+ virtual FName GetWwiseGroupName() override;
+ virtual bool ObjectIsInSoundBanks() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSubmixInputComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSubmixInputComponent.h
new file mode 100644
index 0000000..d020dba
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSubmixInputComponent.h
@@ -0,0 +1,67 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+AkSubmixInputComponent.h:
+=============================================================================*/
+
+#pragma once
+
+#include "AkInclude.h"
+#include "AudioDevice.h"
+#include "AkAudioInputComponent.h"
+#include "AkSubmixInputComponent.generated.h"
+
+
+/*------------------------------------------------------------------------------------
+UAkSubmixInputComponent
+------------------------------------------------------------------------------------*/
+UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation), meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkSubmixInputComponent
+ : public UAkAudioInputComponent
+ , public ISubmixBufferListener
+{
+ GENERATED_BODY()
+public:
+ UAkSubmixInputComponent(const class FObjectInitializer& ObjectInitializer);
+
+ virtual void OnNewSubmixBuffer(const USoundSubmix* OwningSubmix, float* AudioData, int32 NumSamples, int32 NumChannels, const int32 SampleRate, double AudioClock) override;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "SubmixInput")
+ USoundSubmix* SubmixToRecord = nullptr;
+
+ virtual int32 PostAssociatedAudioInputEvent();
+ virtual void Stop();
+protected:
+ /** The audio callback. This will be called continuously by the Wwise sound engine,
+ * and is used to provide the sound engine with audio samples. If this function returns false, the audio
+ * input event will be stopped and the functino will stop being called.
+ */
+ virtual bool FillSamplesBuffer(uint32 NumChannels, uint32 NumSamples, float** BufferToFill) override;
+ /** This callback is used to provide the Wwise sound engine with the required audio format. */
+ virtual void GetChannelConfig(AkAudioFormat& AudioFormat) override;
+
+private:
+ int32 NumChannels;
+ int32 SampleRate;
+ int32 BufferLength;
+ Audio::TCircularAudioBuffer SampleBuffer;
+ TArray PoppedSamples;
+
+ Audio::FMixerDevice* GetAudioMixerDevice();
+ int32 PlayingID = AK_INVALID_PLAYING_ID;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetComponent.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetComponent.h
new file mode 100644
index 0000000..bc37ebc
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetComponent.h
@@ -0,0 +1,190 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "AkAcousticTexture.h"
+#include "AkAcousticTextureSetComponent.h"
+#include "AkGameObject.h"
+#include "AkSurfaceReflectorSetUtils.h"
+#include "Components/SceneComponent.h"
+#include "Components/TextRenderComponent.h"
+#include "AkSurfaceReflectorSetComponent.generated.h"
+
+class UAkRoomComponent;
+struct FAkReverbDescriptor;
+
+DECLARE_DELEGATE(FOnRefreshDetails);
+
+UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation, Tags), meta = (BlueprintSpawnableComponent))
+class AKAUDIO_API UAkSurfaceReflectorSetComponent : public UAkAcousticTextureSetComponent
+{
+ GENERATED_BODY()
+
+public:
+ UAkSurfaceReflectorSetComponent(const class FObjectInitializer& ObjectInitializer);
+
+ /** Convert the brush to a geometry set consisting of vertices, triangles, surfaces, acoustic textures and transmission loss values.
+ * Send it to Wwise with the rest of the AkGeometryParams to add or update a geometry in Spatial Audio.
+ * It is necessary to create at least one geometry instance for each geometry set that is to be used for diffraction and reflection simulation. See UpdateSurfaceReflectorSet(). */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkSurfaceReflectorSet")
+ void SendSurfaceReflectorSet();
+
+ /** Add or update an instance of the geometry by sending the transform of this component to Wwise.
+ * A geometry instance is a unique instance of a geometry set with a specified transform (position, rotation and scale).
+ * It is necessary to create at least one geometry instance for each geometry set that is to be used for diffraction and reflection simulation. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkSurfaceReflectorSet")
+ void UpdateSurfaceReflectorSet();
+
+ /** Remove the geometry and the corresponding instance from Wwise. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|AkSurfaceReflectorSet")
+ void RemoveSurfaceReflectorSet();
+
+ /** Enable reflection with geometry */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Toggle")
+ bool bEnableSurfaceReflectors = false;
+
+ /** The surface properties of each face on the brush geometry. */
+ UPROPERTY(EditAnywhere, BlueprintSetter = UpdateAcousticProperties, Category ="Geometry Surfaces")
+ TArray AcousticPolys;
+
+ /** Set AcousticPolys with an input array, compute the surface areas of each poly and notify damping needs updating. */
+ UFUNCTION(BlueprintSetter, Category = "Audiokinetic|AkSurfaceReflectorSet")
+ void UpdateAcousticProperties(TArray in_AcousticPolys);
+
+ /** Enable or disable geometric diffraction for this mesh. Check this box to have Wwise Spatial Audio generate diffraction edges on the geometry. The diffraction edges will be visible in the Wwise game object viewer when connected to the game. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry Settings")
+ bool bEnableDiffraction = false;
+
+ /** Enable or disable geometric diffraction on boundary edges for this Geometry. Boundary edges are edges that are connected to only one triangle. Depending on the specific shape of the geometry, boundary edges may or may not be useful and it is beneficial to reduce the total number of diffraction edges to process. */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry Settings", meta = (EditCondition = "bEnableDiffraction"))
+ bool bEnableDiffractionOnBoundaryEdges = false;
+
+ /** (Optional) Associate this Surface Reflector Set with a Room.
+ Associating a surface reflector set with a particular room will limit the scope in which the geometry is visible/accessible. Leave it to None and this geometry will have a global scope.
+ It is recommended to associate geometry with a room when the geometry is (1) fully contained within the room (ie. not visible to other rooms except by portals), and (2) the room does not share geometry with other rooms. Doing so reduces the search space for ray casting performed by reflection and diffraction calculations.
+ Take note that once one or more geometry sets are associated with a room, that room will no longer be able to access geometry that is in the global scope.*/
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Geometry Settings")
+ AActor* AssociatedRoom = nullptr;
+
+ UModel* ParentBrush;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(SkipSerialization, NonTransactional)
+ mutable TArray TextVisualizers;
+
+ FText GetPolyText(int32 PolyIdx) const;
+
+ void SetOnRefreshDetails(const FOnRefreshDetails& OnRefreshDetailsDelegate) { OnRefreshDetails = OnRefreshDetailsDelegate; }
+ void ClearOnRefreshDetails() { OnRefreshDetails.Unbind(); }
+ const FOnRefreshDetails* GetOnRefreshDetails() { return &OnRefreshDetails; }
+
+ void AssignAcousticTexturesFromSamples(const TArray& Points, const TArray& Normals, const TArray< TWeakObjectPtr >& Materials, int Num);
+#endif
+
+#if WITH_EDITOR
+ /**
+ * Check for errors
+ */
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+ virtual void PostEditUndo() override;
+ virtual void PreEditUndo() override;
+ virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction);
+
+ /** Tracks whether the user is interacting with a UI element in the details panel (e.g. a slider) */
+ bool UserInteractionInProgress = false;
+ FDelegateHandle PropertyChangedHandle;
+ void OnPropertyChanged(UObject* ObjectBeingModified, FPropertyChangedEvent& PropertyChangedEvent);
+
+ void SchedulePolysUpdate();
+ void UpdatePolys(bool bPreserveTextures = false);
+ void UpdateText(bool Visible);
+ /** Align all of the text components (1 for each face) along one of the edges on the face */
+ void UpdateTextPositions() const;
+ void SurfacePropertiesChanged();
+ void DestroyTextVisualizers();
+
+ bool WasSelected;
+
+ TSet GetSelectedFaceIndices() const;
+ bool TexturesDiffer() const;
+
+ /** Used to delay the polys update by one frame when editing geometry */
+ bool PolysNeedUpdate = false;
+ /** Store the current acoustic properties for each face. Store them in PreviousPolys.
+ If bUpdateEdges == true, also store the current surface edges.
+ Transform the edges, normals and midpoints of the surfaces from world space to local space. */
+ void CacheAcousticProperties();
+ /** Store the current acoustic properties and geometry for each face. Store them in PreviousPolys
+ Transform the edges, normals and midpoints of the surfaces from world space to local space. */
+ void CacheLocalSpaceSurfaceGeometry();
+#endif
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY()
+ TMap EdgeMap;
+#endif
+
+ virtual void BeginDestroy() override;
+ virtual void OnRegister() override;
+ virtual void OnUnregister() override;
+ virtual void OnUpdateTransform(EUpdateTransformFlags UpdateTransformFlags, ETeleportType Teleport) override;
+ virtual bool MoveComponentImpl(
+ const FVector& Delta,
+ const FQuat& NewRotation,
+ bool bSweep,
+ FHitResult* Hit,
+ EMoveComponentFlags MoveFlags,
+ ETeleportType Teleport) override;
+
+ void GetTexturesAndSurfaceAreas(TArray& textures, TArray& surfaceAreas) const override;
+ void ComputeAcousticPolySurfaceArea();
+
+private:
+ virtual bool ShouldSendGeometry() const override;
+ void InitializeParentBrush(bool fromTick = false);
+
+#if WITH_EDITOR
+ /** Used to keep track of the surfaces and their acoustic properties so that we can
+ restore acoustic properties to the appropriate faces when the brush geometry is changed.*/
+ TArray PreviousPolys;
+ virtual void HandleObjectsReplaced(const TMap& ReplacementMap) override;
+ virtual bool ContainsTexture(const FGuid& textureID) override;
+ virtual void RegisterAllTextureParamCallbacks() override;
+ /* Sort the edges of a face such that they form a continuous loop */
+ void SortFaceEdges(int FaceIndex);
+ /* Recalculate the normals for the face at FaceIndex, taking world scaling into account. */
+ void UpdateFaceNormals(int FaceIndex);
+ /** Identify the edges in the brush geometry and store in EdgeMap */
+ void UpdateEdgeMap(bool bUpdateTextures);
+ /* Compare AcousticPolys to PreviousPolys, carrying over the acoustic properties from PreviousPolys for those faces whose edges and normals have not changed. */
+ void EdgeMapChanged();
+ void AlignTextWithEdge(int FaceIndex) const;
+ /* Choose the edge upon which to align the text. The 'optimal' edge is that which aligns the
+ up vector of the text closest to the up vector of the view camera. */
+ int ChooseAlignmentEdge(int FaceIndex) const;
+ /* Positions the text at the beginning of the AlignmentEdge (V0).
+ Shifts the text along the AlignmentEdge by a certain amount.
+ The amount of shift is proportional to the dot product between AlignmentEdge and the edge that connects to V0. */
+ FVector GetTextAnchorPosition(int FaceIndex, const FAkSurfaceEdgeInfo& AlignmentEdge, int AlignmentEdgeIndex) const;
+ /* Progressively scale down the text visualizer at FaceIndex until it is completely contained within the face. */
+ void SetTextScale(UTextRenderComponent* TextComp, int FaceIndex, int AlignmentEdgeIndex, const FVector& TextAnchorPosition, const struct FFacePlane& FacePlane, const FTransform& AttachTransform) const;
+#endif
+
+#if WITH_EDITORONLY_DATA
+ FOnRefreshDetails OnRefreshDetails;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetUtils.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetUtils.h
new file mode 100644
index 0000000..9e5d14d
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSurfaceReflectorSetUtils.h
@@ -0,0 +1,115 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+#include "AkAcousticTexture.h"
+#include "AkSurfaceReflectorSetUtils.generated.h"
+
+namespace AkSurfaceReflectorUtils
+{
+ static float EQUALITY_THRESHOLD = 0.001f;
+}
+
+/** An edge between two vertices */
+USTRUCT()
+struct FAkSurfaceEdgeVerts
+{
+ GENERATED_BODY()
+ static bool EdgesShareVertex(const FAkSurfaceEdgeVerts& Edge1, const FAkSurfaceEdgeVerts& Edge2);
+
+ FAkSurfaceEdgeVerts() {}
+ FAkSurfaceEdgeVerts(FVector InV0, FVector InV1) : V0(InV0), V1(InV1) {}
+ FVector V0 = FVector::ZeroVector;
+ FVector V1 = FVector::ZeroVector;
+
+ FVector GetUnitVector() const { return (V1 - V0).GetSafeNormal(); }
+
+ FAkSurfaceEdgeVerts GetTransformedEdge(const FTransform& Transform) const;
+ void TransformEdge(const FTransform& Transform);
+ void Invert();
+};
+
+/** Information about an edge */
+USTRUCT()
+struct FAkSurfaceEdgeInfo
+{
+ GENERATED_BODY()
+ FAkSurfaceEdgeVerts EdgeVerts;
+ FVector Normal;
+ bool IsEnabled = true;
+ bool IsBoundary = true;
+ bool IsFlat = false;
+
+ const FVector V0() const { return EdgeVerts.V0; }
+ const FVector V1() const { return EdgeVerts.V1; }
+
+ void SetV0(FVector V0) { EdgeVerts.V0 = V0; }
+ void SetV1(FVector V1) { EdgeVerts.V1 = V1; }
+
+ int64 GetHash()
+ {
+ int64 H0 = GetTypeHash(V0());
+ int64 H1 = GetTypeHash(V1());
+ if (H1 > H0)
+ {
+ int64 temp = H0;
+ H0 = H1;
+ H1 = temp;
+ }
+ return H1 << 32 | H0;
+ }
+
+ FAkSurfaceEdgeInfo();
+ FAkSurfaceEdgeInfo(FVector InV0, FVector InV1);
+};
+
+/** Contains the properties of a face from the ParentBrush of a UAkSurfaceReflectorSetComponent. */
+USTRUCT(BlueprintType)
+struct FAkSurfacePoly
+{
+ GENERATED_BODY()
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkSurfaceReflectorSet")
+ UAkAcousticTexture* Texture = nullptr;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkSurfaceReflectorSet", DisplayName = "Transmission Loss", meta = (ClampMin = "0.0", ClampMax = "1.0"))
+ float Occlusion = 1.f;
+
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Audiokinetic|AkSurfaceReflectorSet")
+ bool EnableSurface = true;
+
+ void SetSurfaceArea(float area) { SurfaceArea = area; }
+ float GetSurfaceArea() const { return SurfaceArea; }
+
+#if WITH_EDITOR
+ FVector Normal;
+ FVector MidPoint;
+ /* The edges of the polygon */
+ TArray Edges;
+ /* Keeps track of the optimal dot product between the chosen up vector and view camera up vector.
+ This is used to minimize the flickering of text as it switches between edges each frame. */
+ mutable float OptimalEdgeDP = 0.0f;
+
+ void ClearEdgeInfo();
+
+ FText GetPolyText(bool includeOcclusion) const;
+#endif
+
+private:
+ UPROPERTY()
+ float SurfaceArea = 0.0f;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSwitchValue.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSwitchValue.h
new file mode 100644
index 0000000..2593917
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkSwitchValue.h
@@ -0,0 +1,39 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkGroupValue.h"
+#include "AkSwitchValue.generated.h"
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkSwitchValue : public UAkGroupValue
+{
+ GENERATED_BODY()
+
+ virtual void Serialize(FArchive& Ar) override;
+
+protected:
+ virtual void LoadGroupValue() override;
+#if WITH_EDITORONLY_DATA
+public:
+ virtual void FillInfo() override;
+ virtual void FillInfo(const FWwiseAnyRef& CurrentWwiseRef) override;
+ virtual bool ObjectIsInSoundBanks() override;
+ virtual FName GetWwiseGroupName() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkTrigger.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkTrigger.h
new file mode 100644
index 0000000..bcd9ff9
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkTrigger.h
@@ -0,0 +1,60 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "AkAudioType.h"
+#include "Wwise/CookedData/WwiseTriggerCookedData.h"
+#if WITH_EDITORONLY_DATA
+#include "Wwise/Info/WwiseObjectInfo.h"
+#endif
+
+#include "AkTrigger.generated.h"
+
+UCLASS(BlueprintType)
+class AKAUDIO_API UAkTrigger : public UAkAudioType
+{
+ GENERATED_BODY()
+
+ public :
+ UPROPERTY(Transient, VisibleAnywhere, Category = "AkTexture")
+ FWwiseTriggerCookedData TriggerCookedData;
+
+#if WITH_EDITORONLY_DATA
+ UPROPERTY(EditAnywhere, Category = "AkTexture")
+ FWwiseObjectInfo TriggerInfo;
+#endif
+
+public:
+ void Serialize(FArchive& Ar) override;
+
+ virtual AkUInt32 GetShortID() const override {return TriggerCookedData.TriggerId;}
+
+#if WITH_EDITOR
+ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
+#endif
+
+#if WITH_EDITORONLY_DATA
+ void GetTriggerCookedData();
+ virtual void LoadData() override { GetTriggerCookedData(); }
+
+ virtual FWwiseObjectInfo* GetInfoMutable() override {return &TriggerInfo;}
+ virtual FWwiseObjectInfo GetInfo() const override {return TriggerInfo;}
+ virtual void FillInfo() override;
+ virtual bool ObjectIsInSoundBanks() override;
+#endif
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiCalls.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiCalls.h
new file mode 100644
index 0000000..1e0e96a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiCalls.h
@@ -0,0 +1,117 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ UAkWaapiCalls.h
+=============================================================================*/
+#pragma once
+
+#include "AkInclude.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "AkWaapiUri.h"
+#include "AkWaapiJsonManager.h"
+#include "AkWaapiCalls.generated.h"
+
+/**
+* Structure for Field Names
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkWaapiSubscriptionId
+{
+ GENERATED_BODY()
+
+ FAkWaapiSubscriptionId() {}
+ FAkWaapiSubscriptionId(const uint64_t& SubscribId) : SubscriptionId(SubscribId){}
+
+ mutable uint64 SubscriptionId = 0;
+};
+
+DECLARE_DYNAMIC_DELEGATE_TwoParams(FOnEventCallback, FAkWaapiSubscriptionId, SubscriptionId, FAKWaapiJsonObject, WaapiJsonObject);
+DECLARE_DYNAMIC_DELEGATE(FOnWaapiProjectLoaded);
+DECLARE_DYNAMIC_DELEGATE(FOnWaapiConnectionLost);
+
+UCLASS(Within = World, config = Engine, defaultconfig)
+class AKAUDIO_API UAkWaapiCalls : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ UAkWaapiCalls(const class FObjectInitializer& ObjectInitializer);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiCalls")
+ static void SetSubscriptionID(const FAkWaapiSubscriptionId& Subscription, int id);
+
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiCalls")
+ static int GetSubscriptionID(const FAkWaapiSubscriptionId& Subscription);
+
+ /**
+ * Subscribe to WAAPI project loaded event. This event will be broadcast whenever the correct Wwise project is loaded (defined by Wwise Project Path in the Wwise Plugin Settings). This should be used to initialize any resources that use WAAPI.
+ *
+ * @param Callback the event to call when a connection is established
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiCalls")
+ static bool RegisterWaapiProjectLoadedCallback(const FOnWaapiProjectLoaded& Callback);
+ /**
+ * Subscribe to WAAPI connection lost event. This event will be broadcast when the WAAPI connection is lost. This should be used to clean up any resources that use WAAPI.
+ *
+ * @param Callback the event to call when the connection is lost
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiCalls")
+ static bool RegisterWaapiConnectionLostCallback(const FOnWaapiConnectionLost& Callback);
+
+ /**
+ * Call Waapi and get/set information/parameters according to the uri chosen.
+ *
+ * @param WaapiUri The function that will be called when an event that we would be aware of happens.
+ * @param WaapiArgs The arguments referenced to the in_uri function.
+ * @param WaapiOptions Optional flag to get more information about the event happened.
+ * @return out_result A JSON object that contains useful informations about the Call process to a specific event, gets an error infos in case the Call fails.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|WaapiCalls")
+ static FAKWaapiJsonObject CallWaapi(const FAkWaapiUri& WaapiUri, const FAKWaapiJsonObject& WaapiArgs, const FAKWaapiJsonObject& WaapiOptions);
+
+ /**
+ * Allows clients to subscribe to notifications according to the event.
+ *
+ * @param WaapiUri The reference to the event that we would be aware of when it happens.
+ * @param WaapiOptions Optional flag to get more information about the event happened.
+ * @param in_callback A delegate to be executed during the subscription event.
+ * @param out_subscriptionId Gets the id of this subscription.
+ * @param out_result A boolean to ensure that the subscription was successfully done.
+ * @return A JSON object that contains useful informations about the subscription process to a specific event, gets an error infos in case the subscription failed.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|WaapiCalls")
+ static FAKWaapiJsonObject SubscribeToWaapi(const FAkWaapiUri& WaapiUri, const FAKWaapiJsonObject& WaapiOptions, const FOnEventCallback& CallBack, FAkWaapiSubscriptionId& SubscriptionId, bool& SubscriptionDone);
+
+ /**
+ * Unsubscribe from an event.
+ *
+ * @param SubscriptionId Gets the id of the current subscription to the event from which we want to be unsubscribed.
+ * @param UnsubscriptionDone A boolean to ensure that the unsubscription was successfully done.
+ * @return A JSON object that contains useful informations about the unsubscription process from a specific event, gets an error infos in case the unsubscription failed.
+ */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic|WaapiCalls")
+ static FAKWaapiJsonObject Unsubscribe(const FAkWaapiSubscriptionId& SubscriptionId, bool& UnsubscriptionDone);
+
+ /** Converts an AkWaapiSubscriptionId value to a string */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToString (FAkWaapiSubscriptionId)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|String")
+ static FString Conv_FAkWaapiSubscriptionIdToString(const FAkWaapiSubscriptionId& INAkWaapiSubscriptionId);
+
+ /** Converts an AkWaapiSubscriptionId value to a localizable text */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToText (FAkWaapiSubscriptionId)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|Text")
+ static FText Conv_FAkWaapiSubscriptionIdToText(const FAkWaapiSubscriptionId& INAkWaapiSubscriptionId);
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNames.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNames.h
new file mode 100644
index 0000000..960487d
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNames.h
@@ -0,0 +1,141 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*------------------------------------------------------------------------------------
+AkWaapiFieldNames.h
+------------------------------------------------------------------------------------*/
+#pragma once
+
+/*------------------------------------------------------------------------------------
+SAkWaapiFieldNames
+------------------------------------------------------------------------------------*/
+
+#include "Misc/TextFilter.h"
+#include "Widgets/Views/STableRow.h"
+#include "Widgets/Views/STreeView.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "Widgets/Input/SSearchBox.h"
+#include "AkWaapiFieldNames.generated.h"
+
+/**
+* Structure for Field Names
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkWaapiFieldNames
+{
+ GENERATED_BODY()
+
+ /**
+ * The Field Name
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = FieldName, meta = (DisplayName = "Field Name"))
+ FString FieldName;
+};
+
+/*------------------------------------------------------------------------------------
+USAkWaapiFieldNamesConv
+------------------------------------------------------------------------------------*/
+UCLASS()
+class AKAUDIO_API USAkWaapiFieldNamesConv : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ USAkWaapiFieldNamesConv(const class FObjectInitializer& ObjectInitializer);
+
+ /** Converts an AkWaapiFieldName value to a string */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToString (FAkWaapiFieldNames)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|String")
+ static FString Conv_FAkWaapiFieldNamesToString(const FAkWaapiFieldNames& INAkWaapiFieldNames);
+
+ /** Converts an AkWaapiFieldName value to a localizable text */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToText (FAkWaapiFieldNames)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|Text")
+ static FText Conv_FAkWaapiFieldNamesToText(const FAkWaapiFieldNames& INAkWaapiFieldNames);
+};
+
+typedef TTextFilter< const FString& > StringFilter;
+
+/*------------------------------------------------------------------------------------
+SAkWaapiFieldNames
+------------------------------------------------------------------------------------*/
+class AKAUDIO_API SAkWaapiFieldNames : public SCompoundWidget
+{
+public:
+ typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
+
+public:
+ SLATE_BEGIN_ARGS(SAkWaapiFieldNames)
+ : _FocusSearchBoxWhenOpened(true)
+ , _SelectionMode(ESelectionMode::Multi)
+ {}
+
+ /** Content displayed to the left of the search bar */
+ SLATE_NAMED_SLOT(FArguments, SearchContent)
+
+ /** If true, the search box will be focus the frame after construction */
+ SLATE_ARGUMENT(bool, FocusSearchBoxWhenOpened)
+
+ /** The selection mode for the list view */
+ SLATE_ARGUMENT(ESelectionMode::Type, SelectionMode)
+
+ /** Handles the drag and drop operations */
+ SLATE_EVENT(FOnDragDetected, OnDragDetected)
+
+ /** Handles the selection operation */
+ SLATE_EVENT(FOnSelectionChanged, OnSelectionChanged)
+
+ SLATE_END_ARGS()
+
+ void Construct(const FArguments& InArgs);
+ SAkWaapiFieldNames(void);
+ ~SAkWaapiFieldNames();
+
+ /** Returns all the FieldNames currently selected in the Waapi Picker view */
+ const TArray> GetSelectedFieldNames() const;
+
+private:
+ /** The tree view widget */
+ TSharedPtr< SListView< TSharedPtr> > ListViewPtr;
+
+ /** The FieldNames list search box */
+ TSharedPtr< SSearchBox > SearchBoxPtr;
+
+ /** Filter for the search box */
+ TSharedPtr SearchBoxFilter;
+
+ /** Field Names list */
+ TArray< TSharedPtr > FieldNamesList;
+
+ /** Delegate to invoke when drag drop detected. */
+ FOnDragDetected OnDragDetected;
+
+ /** Delegate to invoke when a Field Name is selected. */
+ FOnSelectionChanged OnSelectionChanged;
+
+private:
+ /** One-off active timer to focus the widget post-construct */
+ EActiveTimerReturnType SetFocusPostConstruct(double InCurrentTime, float InDeltaTime);
+
+ /** Generate a row in the tree view */
+ TSharedRef GenerateRow(TSharedPtr in_FieldName, const TSharedRef& OwnerTable);
+
+ /** Used by the search filter */
+ void PopulateSearchStrings(const FString& in_FieldName, OUT TArray< FString >& OutSearchStrings) const;
+ void FilterUpdated();
+
+ /** Handler for list view selection changes */
+ void ListSelectionChanged(TSharedPtr< FString > in_FieldName, ESelectInfo::Type SelectInfo);
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNamesCustomization.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNamesCustomization.h
new file mode 100644
index 0000000..a9a7a13
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiFieldNamesCustomization.h
@@ -0,0 +1,60 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#if WITH_EDITOR
+
+#include "CoreMinimal.h"
+#include "Input/Reply.h"
+#include "IPropertyTypeCustomization.h"
+#include "PropertyHandle.h"
+
+
+class SButton;
+class SComboButton;
+class IMenu;
+
+class AKAUDIO_API FAkWaapiFieldNamesCustomization : public IPropertyTypeCustomization
+{
+public:
+ static TSharedRef MakeInstance();
+
+ /** IPropertyTypeCustomization interface */
+ virtual void CustomizeHeader(TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
+
+ virtual void CustomizeChildren(TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
+
+private:
+
+ /** Delegate used to display the Waapi Picker */
+ FReply OnPickContent(TSharedRef PropertyHandle);
+
+ /** Handler for tree view selection changes */
+ void FieldNameSelectionChanged(TSharedPtr< FString > in_FieldName, ESelectInfo::Type SelectInfo);
+
+private:
+
+ /** The pick button widget */
+ TSharedPtr PickerButton;
+
+ TSharedPtr FieldNameHandle;
+
+ TSharedPtr Window;
+};
+
+#endif// WITH_EDITOR
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiJsonManager.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiJsonManager.h
new file mode 100644
index 0000000..e0a7ce2
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiJsonManager.h
@@ -0,0 +1,107 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*=============================================================================
+ UAkWaapiCalls.h
+=============================================================================*/
+#pragma once
+
+#include "AkInclude.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "AkWaapiUri.h"
+#include "Dom/JsonObject.h"
+#include "AkWaapiUtils.h"
+#include "Serialization/JsonWriter.h"
+#include "Serialization/JsonSerializer.h"
+#include "AkWaapiBlueprints/AkWaapiFieldNames.h"
+#include "AkWaapiJsonManager.generated.h"
+
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAKWaapiJsonObject
+{
+ GENERATED_BODY()
+ FAKWaapiJsonObject()
+ {
+ WaapiJsonObj = MakeShareable(new FJsonObject());
+ }
+ TSharedPtr WaapiJsonObj;
+};
+
+UCLASS()
+class AKAUDIO_API UAkWaapiJsonManager : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ UAkWaapiJsonManager(const class FObjectInitializer& ObjectInitializer);
+
+ /** Add a String field named FieldName with value of FieldValue */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject SetStringField(const FAkWaapiFieldNames& FieldName, const FString& FieldValue, FAKWaapiJsonObject target);
+
+ /** Set a boolean field named FieldName and value of FieldValue */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject SetBoolField(const FAkWaapiFieldNames& FieldName, bool FieldValue, FAKWaapiJsonObject target);
+
+ /** Add a field named FieldName with Number as FieldValue */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject SetNumberField(const FAkWaapiFieldNames& FieldName, float FieldValue, FAKWaapiJsonObject target);
+
+ /** Set an ObjectField named FieldName and value of FieldValue */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject SetObjectField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject FieldValue, FAKWaapiJsonObject target);
+
+ /** Add an array of String field named FieldName with value of FieldStringValues */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject SetArrayStringFields(const FAkWaapiFieldNames& FieldName, const TArray< FString >& FieldStringValues, FAKWaapiJsonObject target);
+
+ /** Set an array of ObjectField named FieldName and value of FieldObjectValues */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject SetArrayObjectFields(const FAkWaapiFieldNames& FieldName, const TArray< FAKWaapiJsonObject >& FieldObjectValues, FAKWaapiJsonObject target);
+
+ /** Get the field named FieldName as a string. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FString GetStringField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject target);
+
+ /** Gets the field with the specified name as a boolean. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static bool GetBoolField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject target);
+
+ /** Gets the field with the specified name as a number. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static float GetNumberField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject target);
+
+ /** Gets a numeric field and casts to an int32 */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static int32 GetIntegerField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject target);
+
+ /** Gets the field with the specified name as a Json object. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static FAKWaapiJsonObject GetObjectField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject target);
+
+ /** Get the field named FieldName as an array. */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WaapiJsonManager")
+ static const TArray GetArrayField(const FAkWaapiFieldNames& FieldName, FAKWaapiJsonObject target);
+
+ /** Converts an AKWaapiJsonObject value to a string */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToString (FAKWaapiJsonObject)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|String")
+ static FString Conv_FAKWaapiJsonObjectToString(FAKWaapiJsonObject INAKWaapiJsonObject);
+
+ /** Converts an AKWaapiJsonObject value to a localizable text */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToText (FAKWaapiJsonObject)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|Text")
+ static FText Conv_FAKWaapiJsonObjectToText(FAKWaapiJsonObject INAKWaapiJsonObject);
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUri.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUri.h
new file mode 100644
index 0000000..091e03e
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUri.h
@@ -0,0 +1,141 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*------------------------------------------------------------------------------------
+AkWaapiUri.h
+------------------------------------------------------------------------------------*/
+#pragma once
+
+/*------------------------------------------------------------------------------------
+SAkWaapiUri
+------------------------------------------------------------------------------------*/
+
+#include "Widgets/Views/STableRow.h"
+#include "Widgets/Views/STreeView.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "Widgets/Input/SSearchBox.h"
+#include "Misc/TextFilter.h"
+#include "AkWaapiUri.generated.h"
+
+/**
+* Structure for Uri
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkWaapiUri
+{
+ GENERATED_BODY()
+
+ /**
+ * The Uri
+ */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly,Category = Uri, meta = (DisplayName = "Uri"))
+ FString Uri;
+};
+
+/*------------------------------------------------------------------------------------
+UAkWaapiUriConv
+------------------------------------------------------------------------------------*/
+UCLASS()
+class AKAUDIO_API UAkWaapiUriConv : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ UAkWaapiUriConv(const class FObjectInitializer& ObjectInitializer);
+
+ /** Converts an AkWaapiUri value to a string */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToString (FAkWaapiUri)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|String")
+ static FString Conv_FAkWaapiUriToString(const FAkWaapiUri& INAkWaapiUri);
+
+ /** Converts an AkWaapiUri value to a localizable text */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToText (FAkWaapiUri)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|Text")
+ static FText Conv_FAkWaapiUriToText(const FAkWaapiUri& INAkWaapiUri);
+};
+
+typedef TTextFilter< const FString& > StringFilter;
+
+/*------------------------------------------------------------------------------------
+SAkWaapiUri
+------------------------------------------------------------------------------------*/
+class AKAUDIO_API SAkWaapiUri : public SCompoundWidget
+{
+public:
+ typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
+
+public:
+ SLATE_BEGIN_ARGS(SAkWaapiUri)
+ : _FocusSearchBoxWhenOpened(true)
+ , _SelectionMode(ESelectionMode::Multi)
+ {}
+
+ /** Content displayed to the left of the search bar */
+ SLATE_NAMED_SLOT(FArguments, SearchContent)
+
+ /** If true, the search box will be focus the frame after construction */
+ SLATE_ARGUMENT(bool, FocusSearchBoxWhenOpened)
+
+ /** The selection mode for the list view */
+ SLATE_ARGUMENT(ESelectionMode::Type, SelectionMode)
+
+ /** Handles the drag and drop operations */
+ SLATE_EVENT(FOnDragDetected, OnDragDetected)
+
+ /** Handles the selection operation */
+ SLATE_EVENT(FOnSelectionChanged, OnSelectionChanged)
+
+ SLATE_END_ARGS()
+
+ void Construct(const FArguments& InArgs);
+ SAkWaapiUri(void);
+ ~SAkWaapiUri();
+
+ /** Returns all the Uris currently selected in the Waapi Picker view */
+ const TArray> GetSelectedUri() const;
+
+private:
+ /** The tree view widget */
+ TSharedPtr< SListView< TSharedPtr> > ListViewPtr;
+
+ /** The Uri list search box */
+ TSharedPtr< SSearchBox > SearchBoxPtr;
+
+ /** Filter for the search box */
+ TSharedPtr SearchBoxFilter;
+
+ /** Uri list */
+ TArray< TSharedPtr > UriList;
+
+ /** Delegate to invoke when drag drop detected. */
+ FOnDragDetected OnDragDetected;
+
+ /** Delegate to invoke when a Uri is selected. */
+ FOnSelectionChanged OnSelectionChanged;
+
+private:
+ /** One-off active timer to focus the widget post-construct */
+ EActiveTimerReturnType SetFocusPostConstruct(double InCurrentTime, float InDeltaTime);
+
+ /** Generate a row in the tree view */
+ TSharedRef GenerateRow(TSharedPtr in_Uri, const TSharedRef& OwnerTable);
+
+ /** Used by the search filter */
+ void PopulateSearchStrings(const FString& in_Uri, OUT TArray< FString >& OutSearchStrings) const;
+ void FilterUpdated();
+
+ /** Handler for list view selection changes */
+ void ListSelectionChanged(TSharedPtr< FString > in_Uri, ESelectInfo::Type SelectInfo);
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUriCustomization.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUriCustomization.h
new file mode 100644
index 0000000..f9ca437
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiBlueprints/AkWaapiUriCustomization.h
@@ -0,0 +1,59 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#if WITH_EDITOR
+
+#include "CoreMinimal.h"
+#include "Input/Reply.h"
+#include "IPropertyTypeCustomization.h"
+#include "PropertyHandle.h"
+
+class SButton;
+class SComboButton;
+class IMenu;
+
+class AKAUDIO_API FAkWaapiUriCustomization : public IPropertyTypeCustomization
+{
+public:
+ static TSharedRef MakeInstance();
+
+ /** IPropertyTypeCustomization interface */
+ virtual void CustomizeHeader(TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
+
+ virtual void CustomizeChildren(TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils) override;
+
+private:
+
+ /** Delegate used to display the Waapi Picker */
+ FReply OnPickContent(TSharedRef PropertyHandle);
+
+ /** Handler for tree view selection changes */
+ void UriSelectionChanged(TSharedPtr< FString > in_Uri, ESelectInfo::Type SelectInfo);
+
+private:
+
+ /** The pick button widget */
+ TSharedPtr PickerButton;
+
+ TSharedPtr UriHandle;
+
+ TSharedPtr Window;
+};
+
+#endif//WITH_EDITOR
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiSlate/Widgets/Input/AkSSlider.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiSlate/Widgets/Input/AkSSlider.h
new file mode 100644
index 0000000..e6cb896
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiSlate/Widgets/Input/AkSSlider.h
@@ -0,0 +1,160 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Input/Reply.h"
+#include "Styling/SlateWidgetStyleAsset.h"
+#include "Widgets/DeclarativeSyntaxSupport.h"
+#include "Styling/SlateTypes.h"
+#include "Styling/CoreStyle.h"
+#include "Framework/SlateDelegates.h"
+#include "Widgets/SCompoundWidget.h"
+
+class SSlider;
+
+/**
+ * A Slate slider control is a linear scale and draggable handle.
+ */
+class AKAUDIO_API AkSSlider
+ : public SCompoundWidget
+{
+public:
+
+ SLATE_BEGIN_ARGS(AkSSlider)
+ : _Style(&FCoreStyle::Get().GetWidgetStyle("Slider"))
+ , _IsFocusable(true)
+ , _OnValueChanged()
+ , _OnDrop()
+ {}
+ /** The style used to draw the slider. */
+ SLATE_STYLE_ARGUMENT(FSliderStyle, Style)
+
+ /** Sometimes a slider should only be mouse-clickable and never keyboard focusable. */
+ SLATE_ARGUMENT(bool, IsFocusable)
+
+ /** Called when the value is changed by the slider. */
+ SLATE_EVENT(FOnFloatValueChanged, OnValueChanged)
+
+ /** Called when an item is dropped into the slider. */
+ SLATE_EVENT(FOnDrop, OnDrop)
+
+ /** Slot for this designers content (optional) */
+ SLATE_DEFAULT_SLOT(FArguments, Content)
+
+ SLATE_END_ARGS()
+
+ /**
+ * Construct the widget.
+ *
+ * @param InDeclaration A declaration from which to construct the widget.
+ */
+ void Construct( const AkSSlider::FArguments& InDeclaration );
+
+ TSharedPtr GetAkSilder() const;
+
+ /**
+ * Getter to access the current value of the slider
+ *
+ * @Return the current value of the slider
+ */
+ TOptional GetAkSliderValue() const;
+
+ /**
+ * Getter to access the current property controlled by the slider
+ *
+ * @Return the current property of the slider
+ */
+ FText GetAkSliderProperty() const;
+
+ /**
+ * Getter to access the name of the current item controlled by the slider
+ *
+ * @Return the item name of the item controlled
+ */
+ FText GetAkSliderItemControlled() const;
+
+ void SetAkSliderItemProperty(const FString& ItemProperty);
+ const FString& GetAkSliderItemProperty() const;
+
+ void SetAkSliderItemId(const FString& ItemId);
+ const FString& GetAkSliderItemId() const;
+
+ /**
+ * Setters to update the min and max range of a property
+ */
+ void SetAkSliderRangeMin(const double in_NewValue);
+ void SetAkSliderRangeMax(const double in_NewValue);
+
+ /**
+ * Getters to access the min and max range of a property
+ */
+ TOptional GetAkSliderRangeMin() const;
+ TOptional GetAkSliderRangeMax() const;
+
+
+ /**
+ * Called when the user is dropping something onto a widget; terminates drag and drop.
+ *
+ * @param MyGeometry The geometry of the widget receiving the event.
+ * @param DragDropEvent The drag and drop event.
+ *
+ * @return A reply that indicated whether this event was handled.
+ */
+ FReply OnDrop(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent) override;
+
+ /**
+ * Called when the user changes the value of the slider.
+ *
+ * @param newValue The new value to set for the slider.
+ */
+ void OnValueCommitted(double newValue, ETextCommit::Type Commit);
+
+private:
+
+ /** Holds the scrubber slider. */
+ TSharedPtr AkScrubberSSlider;
+
+ /** holds the current value of the slider*/
+ FText AkSliderValue;
+
+ /** holds the property of the item to be controlled*/
+ FString AkSliderItemProperty;
+
+ /** holds the ID of the current item to control*/
+ FString AkSliderItemId;
+
+ /** holds the name of the current item to control*/
+ FString ItemControlled;
+
+ /** Executed when an item is dropped onto the slider*/
+ FOnDrop OnDropDelegate;
+
+ /** The max range of the property controlled by the current slider*/
+ double UIMaxValue;
+
+ /** The min range of the property controlled by the current slider*/
+ double UIMinValue;
+
+private:
+
+ /** Callback for changing the value of the 'Position' slider. */
+ void HandleAkSliderValueChanged(float NewValue);
+protected:
+ inline void UpdateRange();
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkBoolPropertyToControlCustomization.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkBoolPropertyToControlCustomization.h
new file mode 100644
index 0000000..a68eb2a
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkBoolPropertyToControlCustomization.h
@@ -0,0 +1,59 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#if WITH_EDITOR
+
+#include "CoreMinimal.h"
+#include "Input/Reply.h"
+#include "IPropertyTypeCustomization.h"
+#include "PropertyHandle.h"
+
+class SButton;
+class SComboButton;
+class IMenu;
+
+class AKAUDIO_API FAkBoolPropertyToControlCustomization : public IPropertyTypeCustomization
+{
+public:
+ static TSharedRef MakeInstance();
+
+ /** IPropertyTypeCustomization interface */
+ virtual void CustomizeHeader( TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override;
+
+ virtual void CustomizeChildren( TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override;
+
+private:
+
+ /** Delegate used to display the Waapi Picker */
+ FReply OnPickContent(TSharedRef PropertyHandle) ;
+
+ /** Handler for tree view selection changes */
+ void PropertySelectionChanged(TSharedPtr< FString > ItemProperty, ESelectInfo::Type SelectInfo);
+
+private:
+
+ /** The pick button widget */
+ TSharedPtr PickerButton;
+
+ TSharedPtr ItemPropertyHandle;
+
+ TSharedPtr Window;
+};
+
+#endif//WITH_EDITOR
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkCheckBox.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkCheckBox.h
new file mode 100644
index 0000000..6cf7ef7
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkCheckBox.h
@@ -0,0 +1,208 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "UObject/ObjectMacros.h"
+#include "Styling/SlateTypes.h"
+#include "Widgets/SWidget.h"
+#include "Components/ContentWidget.h"
+#include "AkSlider.h"
+#include "Widgets/SCompoundWidget.h"
+#include "AkItemBoolProperties.h"
+#include "AkCheckBox.generated.h"
+
+class SCheckBox;
+class USlateBrushAsset;
+class USlateWidgetStyleAsset;
+
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam( FAkOnCheckBoxComponentStateChanged, bool, bIsChecked );
+
+/** A delegate type invoked when an item is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnWwiseItemDropDetected, FGuid, ItemDroppedID);
+
+/** A delegate type invoked when a property is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnBoolPropertyDropDetected, FString, PropertyDropped);
+
+/**
+ * The checkbox widget allows you to display a toggled state of 'unchecked', 'checked' and
+ * 'indeterminable. You can use the checkbox for a classic checkbox, or as a toggle button,
+ * or as radio buttons.
+ *
+ * * Single Child
+ * * Toggle
+ */
+UCLASS(config = Editor, defaultconfig)
+class AKAUDIO_API UAkCheckBox : public UContentWidget, public SCompoundWidget
+{
+ GENERATED_BODY()
+
+public:
+ UAkCheckBox(const FObjectInitializer& ObjectInitializer);
+
+ /** Whether the check box is currently in a checked state */
+ UPROPERTY(EditAnywhere, Category=Appearance)
+ ECheckBoxState CheckedState = ECheckBoxState::Undetermined;
+
+ /** A bindable delegate for the IsChecked. */
+ UPROPERTY()
+ FGetCheckBoxState CheckedStateDelegate;
+
+public:
+ /** The checkbox bar style */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=( DisplayName="Style" ))
+ FCheckBoxStyle WidgetStyle;
+
+ /** How the content of the toggle button should align within the given space */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance)
+ TEnumAsByte HorizontalAlignment = EHorizontalAlignment::HAlign_Left;
+
+ /** Sometimes a button should only be mouse-clickable and never keyboard focusable. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Interaction")
+ bool IsFocusable = false;
+
+ UPROPERTY(EditAnywhere, Category = "Audiokinetic|WAAPI|Checkbox", meta = (DisplayName = "Property to control"))
+ FAkBoolPropertyToControl ThePropertyToControl;
+
+ UPROPERTY(Config, VisibleAnywhere, Category = "Audiokinetic|WAAPI|Checkbox", meta = (DisplayName = "Item to control"))
+ FAkWwiseItemToControl ItemToControl;
+
+public:
+
+ /** Called when the checked state has changed */
+ UPROPERTY(BlueprintAssignable, Category="CheckBox|Event")
+ FAkOnCheckBoxComponentStateChanged AkOnCheckStateChanged;
+
+ /** Called when the item selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnWwiseItemDropDetected OnItemDropped;
+
+ /** Called when the item selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnBoolPropertyDropDetected OnPropertyDropped;
+
+public:
+
+ /** Returns true if this button is currently pressed */
+ UFUNCTION(BlueprintCallable, Category="Widget")
+ bool IsPressed() const;
+
+ /** Returns true if the checkbox is currently checked */
+ UFUNCTION(BlueprintCallable, Category="Widget")
+ bool IsChecked() const;
+
+ /** @return the full current checked state. */
+ UFUNCTION(BlueprintCallable, Category="Widget")
+ ECheckBoxState GetCheckedState() const;
+
+ /** Sets the checked state. */
+ UFUNCTION(BlueprintCallable, Category="Widget")
+ void SetIsChecked(bool InIsChecked);
+
+ /** Sets the checked state. */
+ UFUNCTION(BlueprintCallable, Category="Widget")
+ void SetCheckedState(ECheckBoxState InCheckedState);
+
+ /** Set the item id to the new one.
+ * @param ItemId - value (new id) to set
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Checkbox", meta = (Keywords = "Set Item Id"))
+ void SetAkItemId(const FGuid& ItemId);
+
+ /** Returns the current item id.
+ *
+ * @return an id as GUID.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Checkbox", meta = (Keywords = "Get Item Id"))
+ const FGuid GetAkItemId() const;
+
+ /** Set the item property to the new one.
+ * @param ItemId - value (new id) to set
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Checkbox", meta = (Keywords = "Set Item Property"))
+ void SetAkBoolProperty(const FString& ItemProperty);
+
+ /** Returns the current item property.
+ *
+ * @return a property as string.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Checkbox", meta = (Keywords = "Get Item Property"))
+ const FString GetAkProperty() const;
+
+
+public:
+
+ //~ Begin UWidget Interface
+ virtual void SynchronizeProperties() override;
+ //~ End UWidget Interface
+
+ //~ Begin UVisual Interface
+ virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+ //~ End UVisual Interface
+
+ virtual void BeginDestroy() override;
+
+
+#if WITH_EDITOR
+ virtual const FText GetPaletteCategory() override;
+#endif
+
+ /**
+ * Called when the user is dropping something onto a widget; terminates drag and drop.
+ *
+ * @param MyGeometry The geometry of the widget receiving the event.
+ * @param DragDropEvent The drag and drop event.
+ *
+ * @return A reply that indicated whether this event was handled.
+ */
+ FReply OnDropHandler(const FGeometry& MyGeometry, const FDragDropEvent& DragDropEvent);
+
+protected:
+
+ // UPanelWidget
+ virtual void OnSlotAdded(UPanelSlot* Slot) override;
+ virtual void OnSlotRemoved(UPanelSlot* Slot) override;
+ // End UPanelWidget
+
+protected:
+ //~ Begin UWidget Interface
+ virtual TSharedRef RebuildWidget() override;
+ //~ End UWidget Interface
+
+ void SlateOnCheckStateChangedCallback(ECheckBoxState NewState);
+
+private:
+ void SetAkItemControlled(const FString& Item);
+ FText GetAkItemControlled();
+
+ FText GetAkBoolProperty() const;
+
+ void SynchronizePropertyWithWwise();
+
+protected:
+ TSharedPtr MyCheckbox;
+ FString ItemControlled;
+ FString IdItemToControl;
+ FString BoolPropertyToControl;
+ uint64 SubscriptionId = 0;
+ uint64 SubscriptionIdNameChanged = 0;
+
+
+ PROPERTY_BINDING_IMPLEMENTATION(ECheckBoxState, CheckedState);
+
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemBoolProperties.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemBoolProperties.h
new file mode 100644
index 0000000..58f48a3
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemBoolProperties.h
@@ -0,0 +1,138 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Components/Widget.h"
+#include "SAkItemBoolProperties.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "Widgets/Text/STextBlock.h"
+#include "AkItemBoolProperties.generated.h"
+
+
+class IMenu;
+class SButton;
+
+/** A delegate type invoked when a selection changes somewhere. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnItemBoolPropertySelectionChanged, FString, PropertySelected);
+
+/** A delegate type invoked when a property is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnItemBoolPropertyDragDetected, FString, PropertyDragged);
+
+/*------------------------------------------------------------------------------------
+FAkBoolPropertyToControl
+------------------------------------------------------------------------------------*/
+
+/**
+* Structure for property to be controlled by the UI.
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkBoolPropertyToControl
+{
+ GENERATED_BODY()
+
+ /**
+ * The name of the item to control
+ */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = ItemProperty, meta = (DisplayName = "Property"))
+ FString ItemProperty;
+};
+
+/*------------------------------------------------------------------------------------
+UAkItemBoolPropertiesConv
+------------------------------------------------------------------------------------*/
+
+UCLASS()
+class AKAUDIO_API UAkItemBoolPropertiesConv : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ UAkItemBoolPropertiesConv(const class FObjectInitializer& ObjectInitializer);
+
+ /** Converts an AkBoolPropertyToControl value to a string */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToString (FAkBoolPropertyToControl)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|String")
+ static FString Conv_FAkBoolPropertyToControlToString(const FAkBoolPropertyToControl& INAkBoolPropertyToControl);
+
+ /** Converts an AkBoolPropertyToControl value to a localizable text */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToText (FAkBoolPropertyToControl)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|Text")
+ static FText Conv_FAkBoolPropertyToControlToText(const FAkBoolPropertyToControl& INAkBoolPropertyToControl);
+};
+
+/*------------------------------------------------------------------------------------
+UAkItemBoolProperties
+------------------------------------------------------------------------------------*/
+
+/**
+* A widget that shows the Wwise properties list.
+*/
+UCLASS(config = Editor, defaultconfig)
+class AKAUDIO_API UAkItemBoolProperties : public UWidget
+{
+ GENERATED_BODY()
+public:
+ UAkItemBoolProperties(const FObjectInitializer& ObjectInitializer);
+
+ typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
+
+ /** Called when the property selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemBoolPropertySelectionChanged OnSelectionChanged;
+
+ /** Called when a property is dragged from the property list. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemBoolPropertyDragDetected OnPropertyDragged;
+
+ /** Returns all properties currently selected in the Wwise properties list */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ FString GetSelectedProperty() const;
+
+ /** returns the current text of the searchBox */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ FString GetSearchText() const;
+
+ /** sets the current text of the searchBox */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ void SetSearchText(const FString& newText);
+
+ // UVisual interface
+ virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+ // End of UVisual interface
+
+#if WITH_EDITOR
+ virtual const FText GetPaletteCategory() override;
+#endif
+
+protected:
+
+ // UWidget interface
+ virtual TSharedRef RebuildWidget() override;
+ // End of UWidget interface
+
+private:
+ /** Delegate used to handle the value of the property to be controlled */
+ void PropertySelectionChanged(TSharedPtr< FString > PropertySelected, ESelectInfo::Type SelectInfo);
+
+ /** Delegate used to handle the drag detected action on the items properties. */
+ FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+private:
+ /** The widget to display the property name */
+ TSharedPtr PropertyTextBlock;
+
+ /** The Wwise list used to pick an item property */
+ TSharedPtr WwiseProperties;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemProperties.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemProperties.h
new file mode 100644
index 0000000..fc0a954
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkItemProperties.h
@@ -0,0 +1,136 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Components/Widget.h"
+#include "SAkItemProperties.h"
+#include "Kismet/BlueprintFunctionLibrary.h"
+#include "Widgets/Text/STextBlock.h"
+#include "AkItemProperties.generated.h"
+
+class IMenu;
+class SButton;
+/** A delegate type invoked when a selection changes somewhere. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnItemPropertySelectionChanged, FString, PropertySelected);
+
+/** A delegate type invoked when a property is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnItemPropertyDragDetected, FString, PropertyDragged);
+
+/*------------------------------------------------------------------------------------
+FAkPropertyToControl
+------------------------------------------------------------------------------------*/
+
+/**
+* Structure for property to be controlled by the UI.
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkPropertyToControl
+{
+ GENERATED_BODY()
+
+ /**
+ * The name of the item to control
+ */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = ItemProperty, meta = (DisplayName = "Property"))
+ FString ItemProperty;
+};
+
+/*------------------------------------------------------------------------------------
+UAkItemPropertiesConv
+------------------------------------------------------------------------------------*/
+
+UCLASS()
+class AKAUDIO_API UAkItemPropertiesConv : public UBlueprintFunctionLibrary
+{
+ GENERATED_BODY()
+
+public:
+ UAkItemPropertiesConv(const class FObjectInitializer& ObjectInitializer);
+
+ /** Converts an AkPropertyToControl value to a string */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToString (FAkPropertyToControl)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|String")
+ static FString Conv_FAkPropertyToControlToString(const FAkPropertyToControl& INAkPropertyToControl);
+
+ /** Converts an AkPropertyToControl value to a localizable text */
+ UFUNCTION(BlueprintPure, meta = (DisplayName = "ToText (FAkPropertyToControl)", CompactNodeTitle = "->", BlueprintAutocast), Category = "Utilities|Text")
+ static FText Conv_FAkPropertyToControlToText(const FAkPropertyToControl& INAkPropertyToControl);
+};
+
+/*------------------------------------------------------------------------------------
+UAkItemProperties
+------------------------------------------------------------------------------------*/
+
+/**
+* A widget that shows the Wwise properties list.
+*/
+UCLASS(config = Editor, defaultconfig)
+class AKAUDIO_API UAkItemProperties : public UWidget
+{
+ GENERATED_BODY()
+public:
+ UAkItemProperties(const FObjectInitializer& ObjectInitializer);
+
+ typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
+
+ /** Called when the property selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemPropertySelectionChanged OnSelectionChanged;
+
+ /** Called when a property is dragged from the property list. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemPropertyDragDetected OnPropertyDragged;
+
+ /** Returns all properties currently selected in the Wwise properties list */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ FString GetSelectedProperty() const;
+
+ /** returns the current text of the searchBox */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ FString GetSearchText() const;
+
+ /** sets the current text of the searchBox */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ void SetSearchText(const FString& newText);
+
+ // UVisual interface
+ virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+ // End of UVisual interface
+
+#if WITH_EDITOR
+ virtual const FText GetPaletteCategory() override;
+#endif
+
+protected:
+
+ // UWidget interface
+ virtual TSharedRef RebuildWidget() override;
+ // End of UWidget interface
+
+private:
+ /** Delegate used to handle the value of the property to be controlled */
+ void PropertySelectionChanged(TSharedPtr< FString > PropertySelected, ESelectInfo::Type SelectInfo);
+
+ /** Delegate used to handle the drag detected action on the items properties. */
+ FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+private:
+ /** The widget to display the property name */
+ TSharedPtr PropertyTextBlock;
+
+ /** The Wwise list used to pick an item property */
+ TSharedPtr WwiseProperties;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkPropertyToControlCustomization.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkPropertyToControlCustomization.h
new file mode 100644
index 0000000..b875ce2
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkPropertyToControlCustomization.h
@@ -0,0 +1,60 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#if WITH_EDITOR
+
+#include "CoreMinimal.h"
+#include "Input/Reply.h"
+#include "IPropertyTypeCustomization.h"
+#include "PropertyHandle.h"
+
+class SButton;
+class SComboButton;
+class IMenu;
+
+class AKAUDIO_API FAkPropertyToControlCustomization : public IPropertyTypeCustomization
+{
+public:
+ static TSharedRef MakeInstance();
+
+ /** IPropertyTypeCustomization interface */
+ virtual void CustomizeHeader( TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override;
+
+ virtual void CustomizeChildren( TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override;
+
+private:
+
+
+ /** Delegate used to display the Waapi Picker */
+ FReply OnPickContent(TSharedRef PropertyHandle) ;
+
+ /** Handler for tree view selection changes */
+ void PropertySelectionChanged(TSharedPtr< FString > ItemProperty, ESelectInfo::Type SelectInfo);
+
+private:
+
+ /** The pick button widget */
+ TSharedPtr PickerButton;
+
+ TSharedPtr ItemPropertyHandle;
+
+ TSharedPtr Window;
+};
+
+#endif//WITH_EDITOR
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkSlider.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkSlider.h
new file mode 100644
index 0000000..cc870aa
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkSlider.h
@@ -0,0 +1,253 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Components/Widget.h"
+#include "AkItemProperties.h"
+#include "AkSlider.generated.h"
+
+class AkSSlider;
+
+/** A delegate type invoked when the value of the slider changes. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FAkOnFloatValueChangedEvent, float, Value);
+
+/** A delegate type invoked when an item is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnItemDropDetected, FGuid, ItemDroppedID);
+
+/** A delegate type invoked when a property is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPropertyDropDetected, FString, PropertyDropped);
+
+/**
+* Structure for Wwise item details.
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkWwiseObjectDetails
+{
+ GENERATED_BODY()
+
+ /**
+ * The name of the item to control
+ */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=ItemName, meta = (DisplayName = "Name"))
+ FString ItemName;
+
+ /**
+ * The id of the item to control
+ */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = ItemPath, meta = (DisplayName = "Path"))
+ FString ItemPath;
+
+ /**
+ * The id of the item to control
+ */
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category =ItemId, meta = (DisplayName = "Id"))
+ FString ItemId;
+};
+
+/**
+* Structure for Wwise items that are displayed in the UMG.
+*/
+USTRUCT(BlueprintType)
+struct AKAUDIO_API FAkWwiseItemToControl //: public UObject
+{
+ GENERATED_BODY()
+
+ /**
+ * The item to control
+ */
+ UPROPERTY(VisibleAnywhere, Category= ItemPicked, meta = (DisplayName = "Name"))
+ FAkWwiseObjectDetails ItemPicked;
+
+ UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=ItemPath, meta = (DisplayName = "Path"))
+ FString ItemPath;
+};
+
+/*------------------------------------------------------------------------------------
+UAkSlider
+------------------------------------------------------------------------------------*/
+
+/**
+ * A simple widget that shows a sliding bar with a handle that allows you to control the value between 0..1.
+ *
+ * * No Children
+ */
+UCLASS(config = Editor, defaultconfig)
+class AKAUDIO_API UAkSlider : public UWidget
+{
+ GENERATED_BODY()
+
+public:
+ UAkSlider(const FObjectInitializer& ObjectInitializer);
+
+ /** The volume value to display. */
+ UPROPERTY(EditAnywhere, Category=Appearance, meta=(ClampMin = "0", ClampMax = "1", UIMin = "0", UIMax = "1"))
+ float Value = .0f;
+
+ /** A bindable delegate to allow logic to drive the value of the widget */
+ UPROPERTY()
+ FGetFloat ValueDelegate;
+
+public:
+
+ /** The progress bar style */
+ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Style", meta=( DisplayName="Style" ))
+ FSliderStyle WidgetStyle;
+
+ /** The slider's orientation. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance)
+ TEnumAsByte Orientation = EOrientation::Orient_Horizontal;
+
+ /** The color to draw the slider bar in. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance)
+ FLinearColor SliderBarColor = FLinearColor(EForceInit::ForceInitToZero);
+
+ /** The color to draw the slider handle in. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance)
+ FLinearColor SliderHandleColor = FLinearColor(EForceInit::ForceInitToZero);
+
+ /** Whether the slidable area should be indented to fit the handle. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance, AdvancedDisplay)
+ bool IndentHandle = false;
+
+ /** Whether the handle is interactive or fixed. */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance, AdvancedDisplay)
+ bool Locked = false;
+
+ /** The amount to adjust the value by, when using a controller or keyboard */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Appearance, meta=( ClampMin="0", ClampMax="1", UIMin="0", UIMax="1"))
+ float StepSize = .0f;
+
+ /** Should the slider be focusable? */
+ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Interaction")
+ bool IsFocusable = false;
+
+ UPROPERTY(VisibleAnywhere, Category = "Audiokinetic|WAAPI|Slider", meta = (DisplayName = "Property to control"))
+ FAkPropertyToControl ThePropertyToControl;
+
+ UPROPERTY(Config, VisibleAnywhere, Category = "Audiokinetic|WAAPI|Slider", meta = (DisplayName = "Item to control"))
+ FAkWwiseItemToControl ItemToControl;
+
+ /** Called when the value is changed by slider or typing. */
+ UPROPERTY(BlueprintAssignable, Category="Widget Event")
+ FAkOnFloatValueChangedEvent OnValueChanged;
+
+ /** Called when the item selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemDropDetected OnItemDropped;
+
+ /** Called when the item selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnPropertyDropDetected OnPropertyDropped;
+
+public:
+
+ /** Gets the current value of the slider. */
+ UFUNCTION(BlueprintCallable, Category="Behavior")
+ float GetValue() const;
+
+ /** Sets the current value of the slider. */
+ UFUNCTION(BlueprintCallable, Category="Behavior")
+ void SetValue(float InValue);
+
+ /** Sets if the slidable area should be indented to fit the handle */
+ UFUNCTION(BlueprintCallable, Category="Behavior")
+ void SetIndentHandle(bool InValue);
+
+ /** Sets the handle to be interactive or fixed */
+ UFUNCTION(BlueprintCallable, Category="Behavior")
+ void SetLocked(bool InValue);
+
+ /** Sets the amount to adjust the value by, when using a controller or keyboard */
+ UFUNCTION(BlueprintCallable, Category="Behavior")
+ void SetStepSize(float InValue);
+
+ /** Sets the color of the slider bar */
+ UFUNCTION(BlueprintCallable, Category="Appearance")
+ void SetSliderBarColor(FLinearColor InValue);
+
+ /** Sets the color of the handle bar */
+ UFUNCTION(BlueprintCallable, Category="Appearance")
+ void SetSliderHandleColor(FLinearColor InValue);
+
+ /** Set the item id to the new one.
+ * @param ItemId - value (new id) to set
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Slider", meta = (Keywords = "Set Item Id"))
+ void SetAkSliderItemId(const FGuid& ItemId);
+
+ /** Returns the current item id.
+ *
+ * @return an id as GUID.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Slider", meta = (Keywords = "Get Item Id"))
+ const FGuid GetAkSliderItemId() const;
+
+ /** Set the item property to the new one.
+ * @param ItemId - value (new id) to set
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Slider", meta = (Keywords = "Set Item Property"))
+ void SetAkSliderItemProperty(const FString& ItemProperty);
+
+ /** Returns the current item property.
+ *
+ * @return a property as string.
+ */
+ UFUNCTION(BlueprintCallable, Category = "Audiokinetic|WAAPI|Slider", meta = (Keywords = "Get Item Property"))
+ const FString GetAkSliderItemProperty() const;
+
+ // UWidget interface
+ virtual void SynchronizeProperties() override;
+ // End of UWidget interface
+
+ // UVisual interface
+ virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+ // End of UVisual interface
+
+ virtual void BeginDestroy() override;
+
+#if WITH_EDITOR
+ virtual const FText GetPaletteCategory() override;
+#endif
+
+protected:
+ uint64 SubscriptionId;
+
+ /** Native Slate Widget */
+ TSharedPtr MyAkSlider;
+
+ // UWidget interface
+ virtual TSharedRef RebuildWidget() override;
+ // End of UWidget interface
+
+ void HandleOnValueChanged(float InValue);
+
+ /** Handles dropping of a wwise item onto the slider */
+ FReply HandleDropped(const FGeometry& DropZoneGeometry, const FDragDropEvent& DragDropEvent);
+
+ PROPERTY_BINDING_IMPLEMENTATION(float, Value);
+private:
+ void SynchronizePropertyWithWwise();
+ void UnsubscribePropertyChangedCallback();
+
+ /** The minimum value the the slider could take */
+ float minValue;
+
+ /** The minimum value the the slider could take */
+ float maxValue;
+
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseObjectDetailsStructCustomization.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseObjectDetailsStructCustomization.h
new file mode 100644
index 0000000..c30ebd9
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseObjectDetailsStructCustomization.h
@@ -0,0 +1,63 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#if WITH_EDITOR
+
+#include "CoreMinimal.h"
+#include "Input/Reply.h"
+#include "IPropertyTypeCustomization.h"
+#include "PropertyHandle.h"
+#include "WaapiPicker/SWaapiPicker.h"
+
+class SButton;
+class SComboButton;
+class IMenu;
+
+class AKAUDIO_API FAkWwiseObjectDetailsStructCustomization : public IPropertyTypeCustomization
+{
+public:
+ static TSharedRef MakeInstance();
+
+ /** IPropertyTypeCustomization interface */
+ virtual void CustomizeHeader( TSharedRef StructPropertyHandle, class FDetailWidgetRow& HeaderRow, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override;
+
+ virtual void CustomizeChildren( TSharedRef StructPropertyHandle, class IDetailChildrenBuilder& StructBuilder, IPropertyTypeCustomizationUtils& StructCustomizationUtils ) override;
+
+private:
+
+
+ /** Delegate used to display the Waapi Picker */
+ FReply OnPickContent(TSharedRef PropertyHandle) ;
+
+ /** Handler for tree view selection changes */
+ void TreeSelectionChanged(TSharedPtr< FWwiseTreeItem > TreeItem, ESelectInfo::Type SelectInfo);
+
+private:
+
+ /** The pick button widget */
+ TSharedPtr PickerButton;
+
+ TSharedPtr ItemNameProperty;
+ TSharedPtr ItemPathProperty;
+ TSharedPtr ItemIdProperty;
+
+ TSharedPtr WaapiPicker;
+};
+
+#endif//WITH_EDITOR
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTree.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTree.h
new file mode 100644
index 0000000..5ba7395
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTree.h
@@ -0,0 +1,99 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Components/Widget.h"
+#include "WaapiPicker/SWaapiPicker.h"
+#include "AkSlider.h"
+#include "AkWwiseTree.generated.h"
+
+class IMenu;
+class SButton;
+/** A delegate type invoked when a selection changes somewhere. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnItemSelectionChanged, FGuid, ItemSelectedID);
+
+/** A delegate type invoked when an item is being dragged. */
+DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnItemDragDetected, FGuid, ItemDraggedID, FString, ItemDraggedName);
+
+/*------------------------------------------------------------------------------------
+UAkSlider
+------------------------------------------------------------------------------------*/
+
+/**
+* A widget that shows the Wwise tree items.
+*/
+UCLASS(config = Editor, defaultconfig)
+class AKAUDIO_API UAkWwiseTree : public UWidget
+{
+ GENERATED_BODY()
+public:
+ UAkWwiseTree(const FObjectInitializer& ObjectInitializer);
+
+ typedef TSlateDelegates< TSharedPtr< FWwiseTreeItem > >::FOnSelectionChanged FOnSelectionChanged;
+
+ /** Called when the item selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemSelectionChanged OnSelectionChanged;
+
+ /** Called when an item is dragged from the wwise tree. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemDragDetected OnItemDragged;
+
+ /** Returns all properties currently selected in the Wwise properties list */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ FAkWwiseObjectDetails GetSelectedItem() const;
+
+ /** returns the current text of the searchBox */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ FString GetSearchText() const;
+
+ /** sets the current text of the searchBox */
+ UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Audiokinetic")
+ void SetSearchText(const FString& newText);
+
+ // UWidget interface
+ virtual void SynchronizeProperties() override;
+ // End of UWidget interface
+
+ // UVisual interface
+ virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+ // End of UVisual interface
+
+#if WITH_EDITOR
+ virtual const FText GetPaletteCategory() override;
+#endif
+
+protected:
+
+ // UWidget interface
+ virtual TSharedRef RebuildWidget() override;
+ // End of UWidget interface
+
+private:
+ /** Delegate used to handle the value of the item to be controlled */
+ void TreeSelectionChanged(TSharedPtr< FWwiseTreeItem > TreeItem, ESelectInfo::Type SelectInfo);
+
+ /** Delegate used to handle the drag detected action on the Wwise items. */
+ FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+private:
+ /** The widget to display the item name */
+ TSharedPtr ItemTextBlock;
+
+ /** The Wwise tree used to pick an item */
+ TSharedPtr WaapiPicker;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTreeSelector.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTreeSelector.h
new file mode 100644
index 0000000..4a1b681
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/AkWwiseTreeSelector.h
@@ -0,0 +1,93 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "Components/Widget.h"
+#include "WaapiPicker/SWaapiPicker.h"
+#include "AkWwiseTree.h"
+#include "AkWwiseTreeSelector.generated.h"
+
+
+class IMenu;
+class SButton;
+
+/*------------------------------------------------------------------------------------
+UAkSlider
+------------------------------------------------------------------------------------*/
+
+/**
+* A widget that shows the Wwise tree items.
+*/
+UCLASS(config = Editor, defaultconfig)
+class AKAUDIO_API UAkWwiseTreeSelector : public UWidget
+{
+ GENERATED_BODY()
+public:
+ UAkWwiseTreeSelector(const FObjectInitializer& ObjectInitializer);
+
+ typedef TSlateDelegates< TSharedPtr< FWwiseTreeItem > >::FOnSelectionChanged FOnSelectionChanged;
+
+ /** Called when the item selection changes. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemSelectionChanged OnSelectionChanged;
+
+ /** Called when an item is dragged from the wwise tree. */
+ UPROPERTY(BlueprintAssignable, Category = "Widget Event")
+ FOnItemDragDetected OnItemDragged;
+
+ // UWidget interface
+ virtual void SynchronizeProperties() override;
+ // End of UWidget interface
+
+ // UVisual interface
+ virtual void ReleaseSlateResources(bool bReleaseChildren) override;
+ // End of UVisual interface
+
+#if WITH_EDITOR
+ virtual const FText GetPaletteCategory() override;
+#endif
+
+protected:
+
+ // UWidget interface
+ virtual TSharedRef RebuildWidget() override;
+ // End of UWidget interface
+
+private:
+ /** Delegate used to handle the value of the item to be controlled */
+ void TreeSelectionChanged(TSharedPtr< FWwiseTreeItem > TreeItem, ESelectInfo::Type SelectInfo);
+
+ /** Delegate used to handle the drag detected action on the Wwise items. */
+ FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+
+ /** Delegate used to display the Waapi Picker */
+ FReply HandleButtonClicked();
+
+private:
+ /** The widget to display the item name */
+ TSharedPtr ItemTextBlock;
+
+ /** The Wwise tree used to pick an item */
+ TSharedPtr WaapiPicker;
+
+ /** The pick button widget */
+ TSharedPtr PickerButton;
+
+ /** The pick button popup menu*/
+ TSharedPtr PickerMenu;
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemBoolProperties.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemBoolProperties.h
new file mode 100644
index 0000000..8b11248
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemBoolProperties.h
@@ -0,0 +1,106 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*------------------------------------------------------------------------------------
+ AkItemProperties.h
+------------------------------------------------------------------------------------*/
+#pragma once
+
+/*------------------------------------------------------------------------------------
+ SAkItemBoolProperties
+------------------------------------------------------------------------------------*/
+
+#include "Widgets/Views/STableRow.h"
+#include "Widgets/Input/SSearchBox.h"
+#include "Misc/TextFilter.h"
+
+typedef TTextFilter< const FString& > StringFilter;
+
+class AKAUDIO_API SAkItemBoolProperties : public SCompoundWidget
+{
+public:
+ typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
+
+public:
+ SLATE_BEGIN_ARGS(SAkItemBoolProperties)
+ : _FocusSearchBoxWhenOpened(false)
+ , _SelectionMode( ESelectionMode::Multi )
+ {}
+
+ /** Content displayed to the left of the search bar */
+ SLATE_NAMED_SLOT( FArguments, SearchContent )
+
+ /** If true, the search box will be focus the frame after construction */
+ SLATE_ARGUMENT( bool, FocusSearchBoxWhenOpened )
+
+ /** The selection mode for the list view */
+ SLATE_ARGUMENT( ESelectionMode::Type, SelectionMode )
+
+ /** Handles the drag and drop operations */
+ SLATE_EVENT(FOnDragDetected, OnDragDetected)
+
+ /** Handles the selection operation */
+ SLATE_EVENT(FOnSelectionChanged, OnSelectionChanged)
+
+ SLATE_END_ARGS( )
+
+ void Construct(const FArguments& InArgs);
+ SAkItemBoolProperties(void);
+ ~SAkItemBoolProperties();
+
+ /** Returns all properties currently selected in the Wwise properties list */
+ const TArray> GetSelectedProperties() const;
+
+ const FString GetSearchText() const;
+ const void SetSearchText(const FString& newText);
+
+private:
+ /** The tree view widget */
+ TSharedPtr< SListView< TSharedPtr> > ListViewPtr;
+
+ /** The property list search box */
+ TSharedPtr< SSearchBox > SearchBoxPtr;
+
+ /** Filter for the search box */
+ TSharedPtr SearchBoxFilter;
+
+ /** Property list */
+ TArray< TSharedPtr > PropertiesList;
+
+ /** Delegate to invoke when drag drop detected. */
+ FOnDragDetected OnDragDetected;
+
+ /** Delegate to invoke when a property is selected. */
+ FOnSelectionChanged OnSelectionChanged;
+
+private:
+ /** One-off active timer to focus the widget post-construct */
+ EActiveTimerReturnType SetFocusPostConstruct(double InCurrentTime, float InDeltaTime);
+
+ /** Generate a row in the tree view */
+ TSharedRef GenerateRow( TSharedPtr ItemProperty, const TSharedRef& OwnerTable );
+
+ /** Handle Drag & Drop */
+ FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+
+ /** Used by the search filter */
+ void PopulateSearchStrings( const FString& PropertyName, OUT TArray< FString >& OutSearchStrings ) const;
+ void FilterUpdated();
+
+ /** Handler for list view selection changes */
+ void ListSelectionChanged( TSharedPtr< FString > ItemProperty, ESelectInfo::Type SelectInfo );
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemProperties.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemProperties.h
new file mode 100644
index 0000000..3e48c9b
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/SAkItemProperties.h
@@ -0,0 +1,108 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+/*------------------------------------------------------------------------------------
+ AkItemProperties.h
+------------------------------------------------------------------------------------*/
+#pragma once
+
+/*------------------------------------------------------------------------------------
+ SAkItemProperties
+------------------------------------------------------------------------------------*/
+
+#include "Misc/TextFilter.h"
+#include "Widgets/Views/SListView.h"
+#include "Widgets/Views/STableRow.h"
+#include "Widgets/Input/SSearchBox.h"
+
+typedef TTextFilter< const FString& > StringFilter;
+
+class AKAUDIO_API SAkItemProperties : public SCompoundWidget
+{
+public:
+ typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
+
+public:
+ SLATE_BEGIN_ARGS(SAkItemProperties)
+ : _FocusSearchBoxWhenOpened(false)
+ , _SelectionMode( ESelectionMode::Multi )
+ {}
+
+ /** Content displayed to the left of the search bar */
+ SLATE_NAMED_SLOT( FArguments, SearchContent )
+
+ /** If true, the search box will be focus the frame after construction */
+ SLATE_ARGUMENT( bool, FocusSearchBoxWhenOpened )
+
+ /** The selection mode for the list view */
+ SLATE_ARGUMENT( ESelectionMode::Type, SelectionMode )
+
+ /** Handles the drag and drop operations */
+ SLATE_EVENT(FOnDragDetected, OnDragDetected)
+
+ /** Handles the selection operation */
+ SLATE_EVENT(FOnSelectionChanged, OnSelectionChanged)
+
+ SLATE_END_ARGS( )
+
+ void Construct(const FArguments& InArgs);
+ SAkItemProperties(void);
+ ~SAkItemProperties();
+
+ /** Returns all the items currently selected in the Waapi Picker view */
+ const TArray> GetSelectedProperties() const;
+
+ const FString GetSearchText() const;
+ const void SetSearchText(const FString& newText);
+
+private:
+ /** The tree view widget */
+ TSharedPtr< SListView< TSharedPtr> > ListViewPtr;
+
+ /** The property list search box */
+ TSharedPtr< SSearchBox > SearchBoxPtr;
+
+ /** Filter for the search box */
+ TSharedPtr SearchBoxFilter;
+
+ /** Property list */
+ TArray< TSharedPtr > PropertiesList;
+
+ /** Delegate to invoke when drag drop detected. */
+ FOnDragDetected OnDragDetected;
+
+ /** Delegate to invoke when a property is selected. */
+ FOnSelectionChanged OnSelectionChanged;
+
+private:
+ /** One-off active timer to focus the widget post-construct */
+ EActiveTimerReturnType SetFocusPostConstruct(double InCurrentTime, float InDeltaTime);
+
+ /** Generate a row in the tree view */
+ TSharedRef GenerateRow( TSharedPtr ItemProperty, const TSharedRef& OwnerTable );
+
+ /** Handle Drag & Drop */
+ FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
+
+ /** Used by the search filter */
+ void PopulateSearchStrings( const FString& PropertyName, OUT TArray< FString >& OutSearchStrings ) const;
+ void OnSearchBoxChanged( const FText& InSearchText );
+ void FilterUpdated();
+
+ /** Handler for list view selection changes */
+ void ListSelectionChanged( TSharedPtr< FString > ItemProperty, ESelectInfo::Type SelectInfo );
+};
\ No newline at end of file
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwiseBoolPropertyDragDropOp.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwiseBoolPropertyDragDropOp.h
new file mode 100644
index 0000000..f7538b1
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwiseBoolPropertyDragDropOp.h
@@ -0,0 +1,93 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Input/DragAndDrop.h"
+#include "Widgets/DeclarativeSyntaxSupport.h"
+#include "Widgets/SBoxPanel.h"
+#include "Widgets/Layout/SBorder.h"
+#include "Widgets/Images/SImage.h"
+#include "Widgets/Text/STextBlock.h"
+#include "WaapiPicker/WwiseTreeItem.h"
+#include "AkAudioStyle.h"
+
+class AKAUDIO_API FWwiseBoolPropertyDragDropOp : public FDragDropOperation
+{
+public:
+
+ DRAG_DROP_OPERATOR_TYPE(FWwiseBoolPropertyDragDropOp, FDragDropOperation)
+
+ static TSharedRef New(const TArray>& in_Wwiseproperties)
+ {
+ TSharedRef Operation = MakeShareable(new FWwiseBoolPropertyDragDropOp);
+
+ Operation->MouseCursor = EMouseCursor::GrabHandClosed;
+ Operation->Wwiseproperties = in_Wwiseproperties;
+ Operation->Construct();
+
+ return Operation;
+ }
+
+ const TArray< TSharedPtr >& GetWiseProperties() const
+ {
+ return Wwiseproperties;
+ }
+
+public:
+ FText GetDecoratorText() const
+ {
+ FString Text = Wwiseproperties.Num() == 1 ? *Wwiseproperties[0].Get() : TEXT("");
+
+ if (Wwiseproperties.Num() > 1 )
+ {
+ Text = FString::Printf(TEXT("Can't handle more than one Property"));
+ }
+ return FText::FromString(Text);
+ }
+
+ virtual TSharedPtr GetDefaultDecorator() const override
+ {
+ return
+ SNew(SBorder)
+ .BorderImage(FAkAudioStyle::GetBrush("AudiokineticTools.AssetDragDropTooltipBackground"))
+ .Content()
+ [
+ SNew(SHorizontalBox)
+ // slot for the item name.
+ + SHorizontalBox::Slot()
+ .AutoWidth()
+ .VAlign(VAlign_Center)
+ [
+ SNew(SHorizontalBox)
+ +SHorizontalBox::Slot()
+ .AutoWidth()
+ .Padding(3,0,3,0)
+ .VAlign(VAlign_Center)
+ [
+ SNew(STextBlock)
+ .Text(this, &FWwiseBoolPropertyDragDropOp::GetDecoratorText)
+ ]
+ ]
+ ];
+ }
+
+private:
+ /** Data for the asset this item represents */
+ TArray> Wwiseproperties;
+};
diff --git a/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwisePropertyDragDropOp.h b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwisePropertyDragDropOp.h
new file mode 100644
index 0000000..5d2e549
--- /dev/null
+++ b/Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkWaapiUMG/Components/WwisePropertyDragDropOp.h
@@ -0,0 +1,100 @@
+/*******************************************************************************
+The content of this file includes portions of the proprietary AUDIOKINETIC Wwise
+Technology released in source code form as part of the game integration package.
+The content of this file may not be used without valid licenses to the
+AUDIOKINETIC Wwise Technology.
+Note that the use of the game engine is subject to the Unreal(R) Engine End User
+License Agreement at https://www.unrealengine.com/en-US/eula/unreal
+
+License Usage
+
+Licensees holding valid licenses to the AUDIOKINETIC Wwise Technology may use
+this file in accordance with the end user license agreement provided with the
+software or, alternatively, in accordance with the terms contained
+in a written agreement between you and Audiokinetic Inc.
+Copyright (c) 2023 Audiokinetic Inc.
+*******************************************************************************/
+
+#pragma once
+
+#include "CoreMinimal.h"
+#include "Input/DragAndDrop.h"
+#include "Widgets/DeclarativeSyntaxSupport.h"
+#include "Widgets/SBoxPanel.h"
+#include "Widgets/Layout/SBorder.h"
+#include "Widgets/Images/SImage.h"
+#include "Widgets/Text/STextBlock.h"
+#include "WaapiPicker/WwiseTreeItem.h"
+#include "AkAudioStyle.h"
+
+class AKAUDIO_API FWwisePropertyDragDropOp : public FDragDropOperation
+{
+public:
+
+ DRAG_DROP_OPERATOR_TYPE(FWwisePropertyDragDropOp, FDragDropOperation)
+
+ static TSharedRef New(const TArray>& in_Wwiseproperties)
+ {
+ TSharedRef Operation = MakeShareable(new FWwisePropertyDragDropOp);
+#if WITH_EDITOR
+ Operation->MouseCursor = EMouseCursor::GrabHandClosed;
+#else
+ Operation->MouseCursor = EMouseCursor::None;
+#endif
+ Operation->Wwiseproperties = in_Wwiseproperties;
+ Operation->Construct();
+
+ return Operation;
+ }
+
+ const TArray< TSharedPtr >& GetWiseProperties() const
+ {
+ return Wwiseproperties;
+ }
+
+public:
+ FText GetDecoratorText() const
+ {
+ FString Text = Wwiseproperties.Num() == 1 ? *Wwiseproperties[0].Get() : TEXT("");
+
+ if (Wwiseproperties.Num() > 1 )
+ {
+ Text = FString::Printf(TEXT("Can't handle more than one Property"));
+ }
+ return FText::FromString(Text);
+ }
+
+ virtual TSharedPtr GetDefaultDecorator() const override
+ {
+#if WITH_EDITOR
+ return
+ SNew(SBorder)
+ .BorderImage(FAkAudioStyle::GetBrush("AudiokineticTools.AssetDragDropTooltipBackground"))
+ .Content()
+ [
+ SNew(SHorizontalBox)
+ // slot for the item name.
+ + SHorizontalBox::Slot()
+ .AutoWidth()
+ .VAlign(VAlign_Center)
+ [
+ SNew(SHorizontalBox)
+ +SHorizontalBox::Slot()
+ .AutoWidth()
+ .Padding(3,0,3,0)
+ .VAlign(VAlign_Center)
+ [
+ SNew(STextBlock)
+ .Text(this, &FWwisePropertyDragDropOp::GetDecoratorText)
+ ]
+ ]
+ ];
+#else
+ return NULL;
+#endif
+ }
+
+private:
+ /** Data for the asset this item represents */
+ TArray