Wwise Integration \Source

This commit is contained in:
Felix Marnat 2023-08-06 19:03:16 +02:00
parent a8a69d7a88
commit 885f1b6a14
1325 changed files with 259748 additions and 3 deletions

View File

@ -98,4 +98,8 @@ Plugins/**/Binaries/*
Plugins/**/Intermediate/*
# End of https://www.toptal.com/developers/gitignore/api/unrealengine
vars.bat
vars.bat
# Wwise
!/Plugins/Wwise/ThirdParty/**
!/Plugins/Wwise/Content/*

View File

@ -5,3 +5,132 @@ ProjectName=Third Person BP Game Template
[StartupActions]
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
BuildTarget=
FullRebuild=False
ForDistribution=False
IncludeDebugFiles=False
BlueprintNativizationMethod=Disabled
bIncludeNativizedAssetsInProjectGeneration=False
bExcludeMonolithicEngineHeadersInNativizedCode=False
UsePakFile=True
bUseIoStore=True
bUseZenStore=False
bMakeBinaryConfig=False
bGenerateChunks=False
bGenerateNoChunks=False
bChunkHardReferencesOnly=False
bForceOneChunkPerFile=False
MaxChunkSize=0
bBuildHttpChunkInstallData=False
HttpChunkInstallDataDirectory=(Path="")
WriteBackMetadataToAssetRegistry=Disabled
bCompressed=True
PackageCompressionFormat=Oodle
bForceUseProjectCompressionFormatIgnoreHardwareOverride=False
PackageAdditionalCompressionOptions=
PackageCompressionMethod=Kraken
PackageCompressionLevel_DebugDevelopment=4
PackageCompressionLevel_TestShipping=5
PackageCompressionLevel_Distribution=7
PackageCompressionMinBytesSaved=1024
PackageCompressionMinPercentSaved=5
bPackageCompressionEnableDDC=False
PackageCompressionMinSizeToConsiderDDC=0
HttpChunkInstallDataVersion=
IncludePrerequisites=True
IncludeAppLocalPrerequisites=False
bShareMaterialShaderCode=True
bDeterministicShaderCodeOrder=False
bSharedMaterialNativeLibraries=True
ApplocalPrerequisitesDirectory=(Path="")
IncludeCrashReporter=False
InternationalizationPreset=English
-CulturesToStage=en
+CulturesToStage=en
LocalizationTargetCatchAllChunkId=0
bCookAll=False
bCookMapsOnly=False
bSkipEditorContent=False
bSkipMovies=False
-IniKeyDenylist=KeyStorePassword
-IniKeyDenylist=KeyPassword
-IniKeyDenylist=rsa.privateexp
-IniKeyDenylist=rsa.modulus
-IniKeyDenylist=rsa.publicexp
-IniKeyDenylist=aes.key
-IniKeyDenylist=SigningPublicExponent
-IniKeyDenylist=SigningModulus
-IniKeyDenylist=SigningPrivateExponent
-IniKeyDenylist=EncryptionKey
-IniKeyDenylist=DevCenterUsername
-IniKeyDenylist=DevCenterPassword
-IniKeyDenylist=IOSTeamID
-IniKeyDenylist=SigningCertificate
-IniKeyDenylist=MobileProvision
-IniKeyDenylist=IniKeyDenylist
-IniKeyDenylist=IniSectionDenylist
+IniKeyDenylist=KeyStorePassword
+IniKeyDenylist=KeyPassword
+IniKeyDenylist=rsa.privateexp
+IniKeyDenylist=rsa.modulus
+IniKeyDenylist=rsa.publicexp
+IniKeyDenylist=aes.key
+IniKeyDenylist=SigningPublicExponent
+IniKeyDenylist=SigningModulus
+IniKeyDenylist=SigningPrivateExponent
+IniKeyDenylist=EncryptionKey
+IniKeyDenylist=DevCenterUsername
+IniKeyDenylist=DevCenterPassword
+IniKeyDenylist=IOSTeamID
+IniKeyDenylist=SigningCertificate
+IniKeyDenylist=MobileProvision
+IniKeyDenylist=IniKeyDenylist
+IniKeyDenylist=IniSectionDenylist
-IniSectionDenylist=HordeStorageServers
-IniSectionDenylist=StorageServers
+IniSectionDenylist=HordeStorageServers
+IniSectionDenylist=StorageServers
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTree")
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTypes")

Binary file not shown.

View File

@ -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}"
}
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectInfo>
<Project Name="Pawn_Wwise" GUID="{4CC4225E-6E29-4CFB-9AD5-8BDBBE21C951}" Generator="2022.1.5.8242"/>
<CacheRoot>../../../../Pawn_Wwise/.cache</CacheRoot>
<Platforms>
<Platform Name="Windows" GUID="{A65AA759-FD18-4B50-8050-E2B5EBB888BD}" BasePlatform="Windows" BasePlatformGUID="{6E0CB257-C6C8-4C5C-8366-2740DFC441EB}" Path="Windows"/>
</Platforms>
<Languages>
<Language Name="English(US)" Id="684519430" GUID="{BB071A3B-DE40-4833-BE43-32DD5C317011}" Default="true" UseAsStandIn="true"/>
</Languages>
<FileHash>{6F2A8120-A7D2-EA96-155C-FB793397F94C}</FileHash>
</ProjectInfo>

View File

@ -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}"
}
}

View File

@ -0,0 +1,3 @@
Event ID Name Wwise Object Path Notes
1039911493 Stop_BIP \Default Work Unit\DOSSIER\Stop_BIP

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="16" SoundBankVersion="145">
<SoundBanks>
<SoundBank Id="1039911493" Type="Event" GUID="{EADC1A47-B16B-42B7-9E29-7BCD157F1C27}" Language="SFX" Hash="{C32B739D-90BD-A874-86F0-F05F42AB3A7B}">
<ObjectPath>Stop_BIP</ObjectPath>
<ShortName>Stop_BIP</ShortName>
<Path>Event/10/Stop_BIP.bnk</Path>
<Events>
<Event 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"/>
</Events>
</SoundBank>
</SoundBanks>
<FileHash>{C9BBA052-BACC-EB83-7D21-FF9788B84326}</FileHash>
</SoundBanksInfo>

View File

@ -0,0 +1,49 @@
{
"SoundBanksInfo": {
"Platform": "Windows",
"BasePlatform": "Windows",
"SchemaVersion": "16",
"SoundBankVersion": "145",
"SoundBanks": [
{
"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"
}
]
}
}
]
}
],
"FileHash": "{EA2AB369-8438-1D20-B186-F286AC5B60AA}"
}
}

View File

@ -0,0 +1,9 @@
Event ID Name Wwise Object Path Notes
3026099327 Play_BIP \Default Work Unit\DOSSIER\Play_BIP
Modulator Envelope ID Name Wwise Object Path Notes
288761262 Modulator Envelope (Custom)
Source plug-ins ID Name Type Wwise Object Path Notes
695958184 Synth One Wwise Synth One \Actor-Mixer Hierarchy\Default Work Unit\dossier\test\BIP\Synth One

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="16" SoundBankVersion="145">
<SoundBanks>
<SoundBank Id="3026099327" Type="Event" GUID="{F1674A16-CA17-4824-A837-3F1D32936CE8}" Language="SFX" Hash="{7B1EBB1D-F8C0-4905-DF6E-CF18094DAC1E}">
<ObjectPath>Play_BIP</ObjectPath>
<ShortName>Play_BIP</ShortName>
<Path>Event/30/Play_BIP.bnk</Path>
<Plugins>
<Custom>
<Plugin 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"/>
</Custom>
</Plugins>
<Events>
<Event Id="3026099327" Name="Play_BIP" ObjectPath="\Events\Default Work Unit\DOSSIER\Play_BIP" GUID="{F1674A16-CA17-4824-A837-3F1D32936CE8}" DurationType="Unknown">
<PluginRefs>
<Custom>
<PluginRef Id="695958184"/>
</Custom>
</PluginRefs>
</Event>
</Events>
</SoundBank>
</SoundBanks>
<FileHash>{CFA376BB-60C5-C239-96B1-CDA83F87774E}</FileHash>
</SoundBanksInfo>

View File

@ -0,0 +1,49 @@
{
"SoundBanksInfo": {
"Platform": "Windows",
"BasePlatform": "Windows",
"SchemaVersion": "16",
"SoundBankVersion": "145",
"SoundBanks": [
{
"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}"
}
]
}
],
"FileHash": "{30203AB6-1ABA-3D6D-9981-31A21106ED3C}"
}
}

View File

@ -0,0 +1,7 @@
Audio Bus ID Name Wwise Object Path Notes
3803692087 Master Audio Bus \Default Work Unit\Master Audio Bus
Audio Devices ID Name Type Notes
2317455096 No_Output No Output
3859886410 System System

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="16" SoundBankVersion="145">
<SoundBanks>
<SoundBank Id="1355168291" Type="User" GUID="{701ECBBD-9C7B-4030-8CDB-749EE5D1C7B9}" Language="SFX" Hash="{28F53A09-3ECF-7CC0-9EEE-ABA684220327}">
<ObjectPath>Init</ObjectPath>
<ShortName>Init</ShortName>
<Path>Init.bnk</Path>
<Plugins>
<AudioDevices>
<Plugin Id="2317455096" Name="No_Output" ObjectPath="\Audio Devices\Default Work Unit\No_Output" GUID="{15DF71CC-DC43-486E-A93A-F9E834612849}" LibName="No Output" LibId="11862023"/>
<Plugin Id="3859886410" Name="System" ObjectPath="\Audio Devices\Default Work Unit\System" GUID="{886A7822-C338-4EF8-9149-7E0D2A477BD3}" LibName="System" LibId="11403271"/>
</AudioDevices>
</Plugins>
<Busses>
<Bus Id="3803692087" Name="Master Audio Bus" ObjectPath="\Master-Mixer Hierarchy\Default Work Unit\Master Audio Bus" GUID="{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"/>
</Busses>
</SoundBank>
</SoundBanks>
<FileHash>{4385C389-27FB-4E54-9CE2-F38127C1DE0A}</FileHash>
</SoundBanksInfo>

View File

@ -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}"
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="16" SoundBankVersion="145">
<SoundBanks>
<SoundBank 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</ObjectPath>
<ShortName>Pawn_SB</ShortName>
<Path>Pawn_SB.bnk</Path>
</SoundBank>
</SoundBanks>
<FileHash>{807BA9E4-B148-96AE-FB94-30918123C4C0}</FileHash>
</SoundBanksInfo>

View File

@ -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}"
}
}

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<PlatformInfo>
<Platform Name="Windows" BasePlatform="Windows" Generator="2022.1.5.8242"/>
<RootPaths>
<ProjectRoot>../../../../../Pawn_Wwise</ProjectRoot>
<SourceFilesRoot>../../../../../Pawn_Wwise/.cache/Windows</SourceFilesRoot>
<SoundBanksRoot>.</SoundBanksRoot>
<ExternalSourcesInputFile></ExternalSourcesInputFile>
<ExternalSourcesOutputRoot>../../../../../Pawn_Wwise/GeneratedSoundBanks/Windows</ExternalSourcesOutputRoot>
</RootPaths>
<DefaultAlign>16</DefaultAlign>
<Settings>
<AutoSoundBankDefinition>true</AutoSoundBankDefinition>
<CopyLooseStreamedMediaFiles>true</CopyLooseStreamedMediaFiles>
<SubFoldersForGeneratedFiles>true</SubFoldersForGeneratedFiles>
<RemoveUnusedGeneratedFiles>true</RemoveUnusedGeneratedFiles>
<SourceControlGeneratedFiles>false</SourceControlGeneratedFiles>
<GenerateHeaderFile>false</GenerateHeaderFile>
<GenerateContentTxtFile>true</GenerateContentTxtFile>
<GenerateMetadataXML>true</GenerateMetadataXML>
<GenerateMetadataJSON>true</GenerateMetadataJSON>
<GenerateAllBanksMetadata>true</GenerateAllBanksMetadata>
<GeneratePerBankMetadata>true</GeneratePerBankMetadata>
<UseSoundBankNames>true</UseSoundBankNames>
<AllowExceedingMaxSize>false</AllowExceedingMaxSize>
<MaxAttenuationInfo>true</MaxAttenuationInfo>
<EstimatedDurationInfo>true</EstimatedDurationInfo>
<PrintObjectGuid>true</PrintObjectGuid>
<PrintObjectPath>true</PrintObjectPath>
</Settings>
<FileHash>{48C86647-7400-B841-5F6F-2AACB35CC1DE}</FileHash>
</PlatformInfo>

View File

@ -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}"
}
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<PluginInfo Platform="Windows" BasePlatform="Windows">
<PluginLibs>
<PluginLib LibName="Wwise Synth One" LibId="9699330" Type="Source" DLL="AkSynthOne" StaticLib="AkSynthOneSource"/>
<PluginLib LibName="System" LibId="11403271" Type="AudioDevice"/>
<PluginLib LibName="No Output" LibId="11862023" Type="AudioDevice"/>
</PluginLibs>
<FileHash>{48D3DF48-B305-932A-3413-98783B7E50F4}</FileHash>
</PluginInfo>

View File

@ -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": "."
}
],
"Languages": [
{
"Name": "English(US)",
"Id": "684519430",
"GUID": "{BB071A3B-DE40-4833-BE43-32DD5C317011}",
"Default": "true",
"UseAsStandIn": "true"
}
],
"FileHash": "{183FADE2-4A17-FBF5-79BB-EEE1B8345771}"
}
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectInfo>
<Project Name="Pawn_Wwise" GUID="{4CC4225E-6E29-4CFB-9AD5-8BDBBE21C951}" Generator="2022.1.5.8242"/>
<CacheRoot>../../../../../Pawn_Wwise/.cache</CacheRoot>
<Platforms>
<Platform Name="Windows" GUID="{A65AA759-FD18-4B50-8050-E2B5EBB888BD}" BasePlatform="Windows" BasePlatformGUID="{6E0CB257-C6C8-4C5C-8366-2740DFC441EB}" Path="."/>
</Platforms>
<Languages>
<Language Name="English(US)" Id="684519430" GUID="{BB071A3B-DE40-4833-BE43-32DD5C317011}" Default="true" UseAsStandIn="true"/>
</Languages>
<FileHash>{2FA8626A-75B7-91FF-0C53-27069DA0D2B1}</FileHash>
</ProjectInfo>

View File

@ -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}"
}
}

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="16" SoundBankVersion="145">
<RootPaths>
<ProjectRoot>../../../../../Pawn_Wwise</ProjectRoot>
<SourceFilesRoot>../../../../../Pawn_Wwise/.cache/Windows</SourceFilesRoot>
<SoundBanksRoot>.</SoundBanksRoot>
<ExternalSourcesInputFile></ExternalSourcesInputFile>
<ExternalSourcesOutputRoot>../../../../../Pawn_Wwise/GeneratedSoundBanks/Windows</ExternalSourcesOutputRoot>
</RootPaths>
<DialogueEvents/>
<SoundBanks>
<SoundBank Id="1039911493" Type="Event" GUID="{EADC1A47-B16B-42B7-9E29-7BCD157F1C27}" Language="SFX" Hash="{C32B739D-90BD-A874-86F0-F05F42AB3A7B}">
<ObjectPath>Stop_BIP</ObjectPath>
<ShortName>Stop_BIP</ShortName>
<Path>Event/10/Stop_BIP.bnk</Path>
<Events>
<Event 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"/>
</Events>
</SoundBank>
<SoundBank Id="1355168291" Type="User" GUID="{701ECBBD-9C7B-4030-8CDB-749EE5D1C7B9}" Language="SFX" Hash="{28F53A09-3ECF-7CC0-9EEE-ABA684220327}">
<ObjectPath>Init</ObjectPath>
<ShortName>Init</ShortName>
<Path>Init.bnk</Path>
<Plugins>
<AudioDevices>
<Plugin Id="2317455096" Name="No_Output" ObjectPath="\Audio Devices\Default Work Unit\No_Output" GUID="{15DF71CC-DC43-486E-A93A-F9E834612849}" LibName="No Output" LibId="11862023"/>
<Plugin Id="3859886410" Name="System" ObjectPath="\Audio Devices\Default Work Unit\System" GUID="{886A7822-C338-4EF8-9149-7E0D2A477BD3}" LibName="System" LibId="11403271"/>
</AudioDevices>
</Plugins>
<Busses>
<Bus Id="3803692087" Name="Master Audio Bus" ObjectPath="\Master-Mixer Hierarchy\Default Work Unit\Master Audio Bus" GUID="{1514A4D8-1DA6-412A-A17E-75CA0C2149F3}"/>
</Busses>
</SoundBank>
<SoundBank 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</ObjectPath>
<ShortName>Pawn_SB</ShortName>
<Path>Pawn_SB.bnk</Path>
</SoundBank>
<SoundBank Id="3026099327" Type="Event" GUID="{F1674A16-CA17-4824-A837-3F1D32936CE8}" Language="SFX" Hash="{7B1EBB1D-F8C0-4905-DF6E-CF18094DAC1E}">
<ObjectPath>Play_BIP</ObjectPath>
<ShortName>Play_BIP</ShortName>
<Path>Event/30/Play_BIP.bnk</Path>
<Plugins>
<Custom>
<Plugin 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"/>
</Custom>
</Plugins>
<Events>
<Event Id="3026099327" Name="Play_BIP" ObjectPath="\Events\Default Work Unit\DOSSIER\Play_BIP" GUID="{F1674A16-CA17-4824-A837-3F1D32936CE8}" DurationType="Unknown">
<PluginRefs>
<Custom>
<PluginRef Id="695958184"/>
</Custom>
</PluginRefs>
</Event>
</Events>
</SoundBank>
<SoundBank Id="3157003241" Type="User" GUID="{3E02EDE0-14E2-48C1-922B-7B89EAF86F5B}" Language="SFX" Hash="{8C6995F3-59C1-72D6-CF1A-7B0F8850DF48}">
<ObjectPath>\SoundBanks\Default Work Unit\TEST</ObjectPath>
<ShortName>TEST</ShortName>
<Path>TEST.bnk</Path>
</SoundBank>
</SoundBanks>
<FileHash>{058AD0CA-1DE0-E9F6-08B8-3A0252BB92AC}</FileHash>
</SoundBanksInfo>

View File

@ -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}"
}
}

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<SoundBanksInfo Platform="Windows" BasePlatform="Windows" SchemaVersion="16" SoundBankVersion="145">
<SoundBanks>
<SoundBank Id="3157003241" Type="User" GUID="{3E02EDE0-14E2-48C1-922B-7B89EAF86F5B}" Language="SFX" Hash="{8C6995F3-59C1-72D6-CF1A-7B0F8850DF48}">
<ObjectPath>\SoundBanks\Default Work Unit\TEST</ObjectPath>
<ShortName>TEST</ShortName>
<Path>TEST.bnk</Path>
</SoundBank>
</SoundBanks>
<FileHash>{72213C34-6E35-7AB0-D8EF-1EEF69320458}</FileHash>
</SoundBanksInfo>

BIN
Pawn_Unreal/Content/WwiseAudio/InitBank.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Pawn_Unreal/Content/WwiseAudio/Play_BIP.uasset (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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": "GeneratedSoundBanks/Windows"
}
],
"Languages": [
{
"Name": "English(US)",
"Id": "684519430",
"GUID": "{BB071A3B-DE40-4833-BE43-32DD5C317011}",
"Default": "true",
"UseAsStandIn": "true"
}
],
"FileHash": "{44543EFB-4065-A087-7445-CE4EFF7B3667}"
}
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<ProjectInfo>
<Project Name="Pawn_Wwise" GUID="{4CC4225E-6E29-4CFB-9AD5-8BDBBE21C951}" Generator="2022.1.5.8242"/>
<CacheRoot>../../../Pawn_Wwise/.cache</CacheRoot>
<Platforms>
<Platform Name="Windows" GUID="{A65AA759-FD18-4B50-8050-E2B5EBB888BD}" BasePlatform="Windows" BasePlatformGUID="{6E0CB257-C6C8-4C5C-8366-2740DFC441EB}" Path="GeneratedSoundBanks/Windows"/>
</Platforms>
<Languages>
<Language Name="English(US)" Id="684519430" GUID="{BB071A3B-DE40-4833-BE43-32DD5C317011}" Default="true" UseAsStandIn="true"/>
</Languages>
<FileHash>{17416A31-77F7-D02C-A492-7C4E6DDEDC3D}</FileHash>
</ProjectInfo>

BIN
Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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")

View File

@ -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")

BIN
Pawn_Unreal/Plugins/Wwise/Content/AkMacroLibrary.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Pawn_Unreal/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
Pawn_Unreal/Plugins/Wwise/Content/S_AkComponent.uasset (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Pawn_Unreal/Plugins/Wwise/Content/S_AkSpotReflector.uasset (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,52 @@
{
"originalSdkFolder": "C:\\Program Files (x86)\\Audiokinetic\\Wwise 2022.1.5.8242\\SDK",
"currentVersion": {
"build": 2714,
"major": 1,
"minor": 5,
"nickname": "",
"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"
}
]
}

BIN
Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -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");
}
}

View File

@ -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<ECollisionChannel> 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 <typename tComponent>
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<UObject*, UObject*>& 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<EAkCollisionChannel> 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;
};

View File

@ -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
};

View File

@ -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<FAkAcousticTextureParams>& textures, TArray<float>& 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<UObject*, UObject*>& 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<FGuid, FDelegateHandle> 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;
};

View File

@ -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;
};

View File

@ -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;
};

View File

@ -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<typename FCreateCallbackPackage>
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<void(const TCHAR* Filename, void* Data, int64 Size)> WriteAdditionalFile) override;
virtual FWwiseObjectInfo* GetInfoMutable() override {return &EventInfo;}
virtual FWwiseObjectInfo GetInfo() const override{return EventInfo;}
virtual bool ObjectIsInSoundBanks() override;
#endif
TArray<FWwiseExternalSourceCookedData> GetAllExternalSources() const;
private:
void LoadEventData();
void UnloadEventData(bool bAsync);
FWwiseLoadedEvent LoadedEvent;
};

View File

@ -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<AkPlayingID> CurrentlyPlayingIDs;
private:
FAkGlobalAudioInputDelegate AudioInputDelegate;
FAkGlobalAudioFormatDelegate AudioFormatDelegate;
};

View File

@ -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
);
};

View File

@ -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;
};

Some files were not shown because too many files have changed in this diff Show More