Wwise new integration part 1
This commit is contained in:
parent
afd719a753
commit
a423542b19
@ -6,43 +6,6 @@ ProjectName=Third Person BP Game Template
|
|||||||
bAddPacks=True
|
bAddPacks=True
|
||||||
InsertPack=(PackSource="StarterContent.upack",PackName="StarterContent")
|
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]
|
[/Script/UnrealEd.ProjectPackagingSettings]
|
||||||
Build=IfProjectHasCode
|
Build=IfProjectHasCode
|
||||||
BuildConfiguration=PPBC_Development
|
BuildConfiguration=PPBC_Development
|
||||||
@ -134,3 +97,41 @@ bSkipMovies=False
|
|||||||
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTree")
|
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTree")
|
||||||
+DirectoriesToAlwaysCook=(Path="/Wwise/WwiseTypes")
|
+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
|
||||||
|
|
||||||
|
|||||||
BIN
Pawn_Unreal/Content/Developers/maxim/BP_TriggerTest.uasset
(Stored with Git LFS)
BIN
Pawn_Unreal/Content/Developers/maxim/BP_TriggerTest.uasset
(Stored with Git LFS)
Binary file not shown.
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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>
|
||||||
Binary file not shown.
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
Event ID Name Wwise Object Path Notes
|
||||||
|
1039911493 Stop_BIP \Default Work Unit\DOSSIER\Stop_BIP
|
||||||
|
|
||||||
@ -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>
|
||||||
Binary file not shown.
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
|
||||||
@ -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>
|
||||||
Binary file not shown.
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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
|
||||||
|
|
||||||
@ -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>
|
||||||
Binary file not shown.
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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>
|
||||||
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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>
|
||||||
Binary file not shown.
@ -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}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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
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
BIN
Pawn_Unreal/Content/WwiseAudio/Play_BIP.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Content/WwiseAudio/Stop_BIP.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
11
Pawn_Unreal/Plugins/Wwise/Config/BaseWwise.ini
Normal file
11
Pawn_Unreal/Plugins/Wwise/Config/BaseWwise.ini
Normal 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")
|
||||||
11
Pawn_Unreal/Plugins/Wwise/Config/DefaultWwise.ini
Normal file
11
Pawn_Unreal/Plugins/Wwise/Config/DefaultWwise.ini
Normal 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
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
BIN
Pawn_Unreal/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/DefaultForegroundTextMaterial.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/DefaultForegroundTextMaterial.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/S_AkComponent.uasset
(Stored with Git LFS)
Normal file
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
BIN
Pawn_Unreal/Plugins/Wwise/Content/S_AkSpotReflector.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/Titlebar_WwiseAppIcon.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/Titlebar_WwiseAppIcon.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/acoutex_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/acoutex_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/actor_mixer_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/actor_mixer_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/auxbus_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/auxbus_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/bus_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/bus_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_random_sequence_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_random_sequence_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_switch_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/container_switch_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/effect_shareset_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/effect_shareset_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/event_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/event_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/folder_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/folder_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/gameparameter_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/gameparameter_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/layer_container_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/layer_container_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/motion_bus_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/motion_bus_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/physical_folder_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/physical_folder_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/sound_fx_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/sound_fx_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/state_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/state_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/stategroup_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/stategroup_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switch_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switch_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switchgroup_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/switchgroup_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/trigger_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/trigger_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/workunit_nor.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/workunit_nor.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wproj.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wproj.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_16.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_16.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_512.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_icon_512.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_logo_32.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTree/Icons/wwise_logo_32.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal_Explorer.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Acoustic_Portal_Explorer.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume_Explorer.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Reverb_Volume_Explorer.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume_Explorer.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AK_Spatial_Audio_Volume_Explorer.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAcousticTexture.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAcousticTexture.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioBank.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioBank.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioEvent.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAudioEvent.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkAuxBus.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkEffectShareSet.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkEffectShareSet.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkExternalMediaAsset.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkExternalMediaAsset.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkLocalizedMediaAsset.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkLocalizedMediaAsset.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkMediaAsset.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkMediaAsset.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkRtpc.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkStateValue.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkStateValue.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkSwitchValue.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkSwitchValue.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkTrigger.uasset
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Content/WwiseTypes/AkTrigger.uasset
(Stored with Git LFS)
Normal file
Binary file not shown.
52
Pawn_Unreal/Plugins/Wwise/LauncherInfo.json
Normal file
52
Pawn_Unreal/Plugins/Wwise/LauncherInfo.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png
(Stored with Git LFS)
Normal file
BIN
Pawn_Unreal/Plugins/Wwise/Resources/Icon128.png
(Stored with Git LFS)
Normal file
Binary file not shown.
123
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/AkAudio.Build.cs
Normal file
123
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/AkAudio.Build.cs
Normal 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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;
|
||||||
|
};
|
||||||
@ -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
|
||||||
|
};
|
||||||
@ -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;
|
||||||
|
};
|
||||||
@ -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;
|
||||||
|
};
|
||||||
@ -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;
|
||||||
|
|
||||||
|
};
|
||||||
397
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioEvent.h
Normal file
397
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioEvent.h
Normal 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;
|
||||||
|
};
|
||||||
|
|
||||||
@ -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;
|
||||||
|
};
|
||||||
@ -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
|
||||||
|
);
|
||||||
|
};
|
||||||
@ -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;
|
||||||
|
};
|
||||||
128
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioType.h
Normal file
128
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAudioType.h
Normal file
@ -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<UObject*> 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<typename T>
|
||||||
|
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 <class InfoType>
|
||||||
|
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<FAssetRegistryTag>& OutTags) const override;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
FWwiseResourceUnloadFuture ResourceUnload;
|
||||||
|
|
||||||
|
static bool CanLoadObjects();
|
||||||
|
void LoadOnceSoundEngineReady();
|
||||||
|
};
|
||||||
73
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAuxBus.h
Normal file
73
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkAuxBus.h
Normal file
@ -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<void(const TCHAR* Filename, void* Data, int64 Size)> WriteAdditionalFile) override;
|
||||||
|
virtual void FillInfo() override;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
@ -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<typename CallbackType>
|
||||||
|
CallbackType* Acquire()
|
||||||
|
{
|
||||||
|
return static_cast<CallbackType*>(InternalAcquire(CallbackType::StaticClass()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void Release(UAkCallbackInfo* instance);
|
||||||
|
|
||||||
|
private:
|
||||||
|
UAkCallbackInfo* InternalAcquire(UClass* type);
|
||||||
|
|
||||||
|
private:
|
||||||
|
TMap<UClass*, TArray<UAkCallbackInfo*>> Pool;
|
||||||
|
TArray<TStrongObjectPtr<UAkCallbackInfo>> gcStorage;
|
||||||
|
};
|
||||||
488
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponent.h
Normal file
488
Pawn_Unreal/Plugins/Wwise/Source/AkAudio/Classes/AkComponent.h
Normal file
@ -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<EAkCollisionChannel> 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<AkExternalSourceInfo>& ExternalSources = TArray<AkExternalSourceInfo>());
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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<UAkComponent*>& 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<UAkComponent*>& 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<AkReverbFadeControl> ReverbFadeControls;
|
||||||
|
|
||||||
|
/** Aux Send values sent to the SoundEngine in the previous frame */
|
||||||
|
TArray<AkAuxSendValue> CurrentAuxSendValues;
|
||||||
|
|
||||||
|
/** Do we need to refresh Aux Send values? */
|
||||||
|
bool NeedToUpdateAuxSends(const TArray<AkAuxSendValue>& 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<UAkComponent*> 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<UAkComponent*> 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;
|
||||||
|
};
|
||||||
@ -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<class COMPONENT_TYPE>
|
||||||
|
AKAUDIO_API COMPONENT_TYPE* GetChildComponentOfType(const USceneComponent& ParentComponent)
|
||||||
|
{
|
||||||
|
const TArray<USceneComponent*> parentChildren = ParentComponent.GetAttachChildren();
|
||||||
|
|
||||||
|
for (auto* const child : parentChildren)
|
||||||
|
{
|
||||||
|
if (child && child->IsA<COMPONENT_TYPE>())
|
||||||
|
{
|
||||||
|
return Cast<COMPONENT_TYPE>(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
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user