ETA for FMOD for UE 4.16 ?


(Alex Zubov) #1

Do you happen to have an ETA for FMOD for UE 4.16 (it was released today) ?


(Daniel Zaidan) #2

I would also like to know that.

In the meantime, I’m trying to convert it myself.
Most of the errors I’m encountering has to do with FDynamicParameter.

If you can’t spare programmers at the moment, it would be most helpful to get a basic direction on how to convert it ourselves.

Thanks!


(Daniel Zaidan) #3

Solved the FDynamicParameter problem by #include “RunTime/Engine/Public/AudioDevice.h” after #include “Runtime/Launch/Resources/Version.h” on FMODAudioComponent.h.

Now I’m facing regarding DrawEffcts or const ESlateDrawEffect::Type type. :stuck_out_tongue:

I hope that is helpful to someone.


(Daniel Zaidan) #4

More progress!

I changed the type of DrawEffects on FMODEventControlTrackEditor.cpp on line 62 to const ESlateDrawEffect DrawEffects. I think it solved all compiler errors.

Now I’m getting an unresolved linker error regarding FInteriorSettings.

I’ll update it here it there’s any progress.


(Alex Zubov) #5

@Daniel Zaidan

If you manage to be able to build FMOD for 4.16 (and it runs on Windows / Android fine, with Oculus Audio SDK plugins), would you mind posting a step by step guide how to get it compiled for 4.16 (or a patch to be used on FMOD’s source) ?

Thanks beforehand


(Daniel Zaidan) #6

Well, that’s what I’m doing here! Documenting the step-by-step approach I’m taking. :slight_smile:


(Daniel Zaidan) #7

I’m completely stuck on the linking error:
Error LNK2019 unresolved external symbol “public: __cdecl FInteriorSettings::FInteriorSettings(void)” (??0FInteriorSettings@@QEAA@XZ) referenced in function “public: void __cdecl UFMODAudioComponent::UpdateInteriorVolumes(void)” (?UpdateInteriorVolumes@UFMODAudioComponent@@QEAAXXZ) EliosisHunt D:\eliosis\EliosisHunt\Intermediate\ProjectFiles\FMODAudioComponent.cpp.obj

More info: https://forums.unrealengine.com/showthread.php?145863-Compiling-plugin-in-4-16-causes-unresolved-external-symbol-linker-error


(Cameron Baron) #8

I have just updated our github with the changes required for UE4.16.

These changes will be in our next official release in a couple weeks.


(Fabio Buccheri) #9

Thanks Cameron, just wanted to find out if there could be any problems occuring with the new optional Unreal Audio Engine now in 16 - we wanted to run some internal test and would love to be able to rule out most of the problems and challenges beforehand.


(Daniel Zaidan) #10

Thanks a lot Camaron!

It worked great in the editor (I still haven’t tested in my target platforms).

However, I’d like to note that there was a compiler error regarding the collapse relative directories function.
I ended up just commenting that out and I think it worked fine.

Cheers!
Dan Zaidan


(Daniel Zaidan) #11

Did anyone else have any problem building a shipping build (for Win64)?

VS gives another linker error: one or more multiply defined symbols found.
(Referring to the FInterior::FInteriorSettigs(void) at FMODStudioModule.cpp. It points that it is alredy defined in Module.Engine.7_of_38.cpp)


(Alex Zubov) #12

So, I am trying to follow docs about building from github and yet again, docs aren’t clear and I am failing to regenerate project files :frowning:


(Fabio Buccheri) #13

just wanted to confirm that you cannot build your game with the current github release with Daniels tip for “commenting out” the error on building.

So i recommend everybody to stay away from updating unless there is a new announcement.


(Alex Zubov) #14

@Fabio Buccheri

Docs are not clear how get github source to compile.

“Add FMOD dynamic libraries into the FMODStudio/Binaries/Platform/ directory. The libs can be obtained in the Programmers API download or from the UE4 integration download” - I downloaded API stuff for Win and Android and I have no idea where to copy what in my UE4 Project’s Plugins/FMODStudio/ folder. Entirely different folder structures.

If I simply copy source code from archive’s Source/ folder into my UE4 Project’s Plugins/FMODStudio/Source/ folder (1.09.04 plugin), replace files and try regenerate solution, I get errors.


(Daniel Zaidan) #15

@Alex Zubov
I tried copying the GitHub files on top of the 4.15 files I downloaded from the downloads page (replacing any conflicts) but the linker error still happened.
Assuming the 4.15 version has all the libs properly setup, the problem must be on the solution to the original Linker problem, not the way we’re comping the plugin from GibHub.

This thread shows both the original and the new problem:

This thread shows the solution applied (in the GitHub page) to the original problem:
https://answers.unrealengine.com/questions/599359/error-lnk2019-unresolved-external-symbol.html

I messaged WssIDs in the forums to check if he had any shipping build errors.
I’ll let you guys know if he answers. (It may be a good idea for you to also send him a message and show that there are more people interested in this).

:slight_smile:


(Daniel Zaidan) #16

Have anyone had any progress?


(Cameron Baron) #17

Github now has the changes required to build in UE4.16, thanks for the link Daniel, it confirmed our findings and seems like a bug/oversight on Epic’s side.


(Daniel Zaidan) #18

Thanks so much for updating the code on GitHub, Cameron!
We are definitely on the solving-problems-from-the-Unreal-source territory now.
I don’t know if you have access to UDN or an otherwise closer contact with a dev from Epic, because they really don’t seem answer this kind of question from the forums or the answer hub very effectively. I guess their system has become so overwhelmingly complex that not even they know what is going on and what breaks what… :stuck_out_tongue:

Now, I’m able to compile the Visual Studio project in both DevelopmentEditor and Shipping modes.
However, there is a problem in the cooking process when packaging the project).

UATHelper: Packaging (Windows (64-bit)): Cook: LogInit:Display: LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/MyContent/Models/Alien/Model/CharBP_Alien.CharBP_Alien_C:SpawnPickableItem.CallFunc_PlayEvent2D_ReturnValue’. Unknown structure.

It gives an error like that for every use of FMOD Event Instance Structure in the project (in this case, it was the return value of a PlayEvent2D node).

I tried in a brand new project created from 4.16 (to make sure the problem didn’t arise from conversion the project from 4.15) and the same cooking error occurred.

UATHelper: Packaging (Windows (64-bit)): Cook: LogInit:Display: LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/FirstPersonBP/Maps/FirstPersonExampleMap.FirstPersonExampleMap_C:ExecuteUbergraph_FirstPersonExampleMap.CallFunc_PlayEvent2D_ReturnValue’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit:Display: LogBlueprint:Error: [Compiler PersistentLevel.FirstPersonExampleMap] Error Could not find a function named “EventInstanceSetPitch” in ‘FirstPersonExampleMap’.
UATHelper: Packaging (Windows (64-bit)): Cook: Make sure ‘FirstPersonExampleMap’ has been compiled for Event Instance Set Pitch from Source: /Game/FirstPersonBP/Maps/FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.FirstPersonExampleMap
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit:Display: LogBlueprint:Error: [Compiler PersistentLevel.FirstPersonExampleMap] Error Could not find a function named “PlayEvent2D” in ‘FirstPersonExampleMap’.
UATHelper: Packaging (Windows (64-bit)): Cook: Make sure ‘FirstPersonExampleMap’ has been compiled for Play Event 2D from Source: /Game/FirstPersonBP/Maps/FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.FirstPersonExampleMap

I’ve been trying to solve this for the past several hours.
Here are the links I’m using to try and solve the problem:
https://answers.unrealengine.com/questions/337507/unknown-structure-error-when-cook.html
https://answers.unrealengine.com/questions/54781/blueprint-struct-unknown-structure-crash.html

Apparently, a supposed fix has to do with renaming the struct (or the variable?).
I’ve been unsuccessfully trying that, so I decided to post the problem and the links here.

Did you happen to have this problem while cooking a project that used this plugin?


(Daniel Zaidan) #19

Simply renaming the struct to something else and making sure everybody who uses it uses the new name doesn’t solve the problem…

USTRUCT(BlueprintType)
struct FFMODEventInstance
{
GENERATED_USTRUCT_BODY()

FMOD::Studio::EventInstance* Instance;

};

to

USTRUCT(BlueprintType)
struct F_EH_FMODEventInstance
{
GENERATED_USTRUCT_BODY()

FMOD::Studio::EventInstance* Instance;

};

Same error:
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit:Display: LogProperty:Error: UStructProperty::Serialize Loading: Property ‘StructProperty /Game/FirstPersonBP/Maps/FirstPersonExampleMap.FirstPersonExampleMap_C:ExecuteUbergraph_FirstPersonExampleMap.CallFunc_PlayEvent2D_ReturnValue’. Unknown structure.
UATHelper: Packaging (Windows (64-bit)): Cook: LogInit:Display: LogBlueprint:Error: [Compiler PersistentLevel.FirstPersonExampleMap] Error Could not find a function named “EventInstanceSetPitch” in ‘FirstPersonExampleMap’.
UATHelper: Packaging (Windows (64-bit)): Cook: Make sure ‘FirstPersonExampleMap’ has been compiled for Event Instance Set Pitch from Source: /Game/FirstPersonBP/Maps/FirstPersonExampleMap.FirstPersonExampleMap:PersistentLevel.FirstPersonExampleMap


(Daniel Zaidan) #20

Tried a bunch of other stuff:
Other links:
https://answers.unrealengine.com/questions/337507/unknown-structure-error-when-cook.html
https://answers.unrealengine.com/questions/54781/blueprint-struct-unknown-structure-crash.html
https://answers.unrealengine.com/questions/437206/unknown-cook-failure-3.html
https://answers.unrealengine.com/questions/281819/how-to-solve-activeclassredirects-error.html
(Really thought that last was going to solve it…)

Now my brain in completely numb… I’ll keep banging my head against that problem tomorrow. :stuck_out_tongue: