Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

0 votes
We're using the latest release at this time (2017.1.0.6302.628) and it won't compile with the UE 4.17 engine drop.

When can we expect a compatible release?  Are there any workarounds in the meantime?
in General Discussion by Omid K. (150 points)

1 Answer

+1 vote
 
Best answer

You can update the following code:

In Wwise\Source\AkAudio\Classes\InterpTrackAkAudioEvent.h

USTRUCT(BlueprintType)
struct FAkAudioEventTrackKey

In Wwise\Source\AudiokineticTools\Private\MovieSceneAkAudioEventTrackEditor.cpp

FKeyPropertyResult FMovieSceneAkAudioEventTrackEditor::AddNewMasterSound(float KeyTime, UAkAudioEvent* Event)
{
    FKeyPropertyResult KeyPropertyResult;

    auto TrackResult = FindOrCreateMasterTrack<UMovieSceneAkAudioEventTrack>();
    TrackResult.Track->SetIsAMasterTrack(true);
    TrackResult.Track->AddNewEvent(KeyTime, Event);

    KeyPropertyResult.bTrackModified = true;

    return KeyPropertyResult;
}

FKeyPropertyResult FMovieSceneAkAudioEventTrackEditor::AddNewAttachedSound(float KeyTime, UAkAudioEvent* Event, TArray<TWeakObjectPtr<UObject>> ObjectsToAttachTo)
{
    FKeyPropertyResult KeyPropertyResult;

    for (int32 ObjectIndex = 0; ObjectIndex < ObjectsToAttachTo.Num(); ++ObjectIndex)
    {
        UObject* Object = ObjectsToAttachTo[ObjectIndex].Get();

        FFindOrCreateHandleResult HandleResult = FindOrCreateHandleToObject(Object);
        FGuid ObjectHandle = HandleResult.Handle;
        KeyPropertyResult.bHandleCreated |= HandleResult.bWasCreated;

        if (ObjectHandle.IsValid())
        {
            FFindOrCreateTrackResult TrackResult = FindOrCreateTrackForObject(ObjectHandle, UMovieSceneAkAudioEventTrack::StaticClass());
            KeyPropertyResult.bTrackCreated |= TrackResult.bWasCreated;

            if (ensure(TrackResult.Track))
            {
                auto AudioTrack = Cast<UMovieSceneAkAudioEventTrack>(TrackResult.Track);
                AudioTrack->AddNewEvent(KeyTime, Event);
                KeyPropertyResult.bTrackModified = true;
            }
        }
    }

    return KeyPropertyResult;
}

In Wwise\Source\AudiokineticTools\Private\MovieSceneAkAudioEventTrackEditor.h

protected:

    /** Delegate for AnimatablePropertyChanged in HandleAssetAdded for master sounds */
    FKeyPropertyResult AddNewMasterSound(float KeyTime, UAkAudioEvent* Event);

    /** Delegate for AnimatablePropertyChanged in HandleAssetAdded for attached sounds */
    FKeyPropertyResult AddNewAttachedSound(float KeyTime, UAkAudioEvent* Event, TArray<TWeakObjectPtr<UObject>> ObjectsToAttachTo);

You can also fix some warnings

by Thierry V. (460 points)
selected by Omid K.
...