class AkComponent extends ActorComponent native collapsecategories hidecategories(Object) hidecategories(ActorComponent) editinlinenew; var() Name BoneName; var AkEvent AutoPlayEvent; /** Stop sound when owner is destroyed */ var bool bStopWhenOwnerDestroyed; `if(`__TW_WWISE_) /** Whether this component is part of the audio device component pool (set to true in UAkAudioDevice::GetPooledAkComponent) */ var transient const bool bPooled; /** Whether this component is ready to be returned to pool. Gets set on the audio thread, while component actually gets returned on the main thread. */ var transient const bool bWaitingToReturnToPool; /** Whether sound should follow owner position */ var transient const bool bFollowOwnerPosition; /** Whether events being played are modified based on listener distance */ var transient bool bUpdateDistanceToListener; /** Whether events being played are modified based on relative velocity to listener (e.g. for Doppler) */ var transient bool bUpdateRelativeVelocityToListener; /** Whether this component is forced to use its own OcclusionUpdateInterval (set in defaultproperties) or can adopt a posted event's interval */ var bool bForceOcclusionUpdateInterval; // JDR: can't be transient because we set this in default properties /** How often to update occlusion or obstruction. Zero means never update. Is set per posted event unless bForceOcclusionUpdateInterval is true. */ var float OcclusionUpdateInterval; // JDR: can't be transient because we set this in default properties /** last time we updated occlusion */ var transient float LastOcclusionUpdateTime; /** whether we were occluded the last time we checked */ var transient bool bWasOccluded; /** Maximum attenuation value of all events played on this component (gets reset when/if component is returned to component pool)*/ var transient float MaxAttenuationValue; /** The specific location to play this sound. Bone locations specified in BoneName will override this. If not specified plays from the attached actor's location */ var transient vector Location; /** The relative location to play this sound on based on the location of the actor this component is attached to. Directly setting the location will override this */ var transient vector RelativeLocation; /** AK::SoundEngine::Query calls (such as GetPosition (of game object)) can take milliseconds (bad). * Instead, just cache each game object's (AkComponent) position at the same time that it's passed off to the SoundEngine (in SetObjectPosition). */ var transient vector CachedObjectPosition; /** AkEvent to play when this AKComponent stops playing */ var transient AkEvent StopPlayEvent; /** Filled by AkEvents when they're posted. Reset when/if component is returned to pool */ var transient array CustomRTPCNames; /** Stops all events being played on this component */ native function StopEvents(); /** Play the given event directly on this component (doesn't go through PlaySoundBase, requires custom replication if desired) */ native function PlayEvent( AkEvent in_Event, optional bool bIsSpatialized, optional bool bIsOccluded, optional bool bDoNotCheckOcclusion ); /** Sets a real-time parameter control on this component */ native function SetRTPCValue( string RTPCString, float RTPCValue ); /** Checks if this component is playing any event, or a specific event if one is provided */ native function bool IsPlaying( optional AkEvent Event ); `endif // __TW_WWISE_ cpptext { // Object interface. virtual void Serialize(FArchive& Ar); virtual void Attach(); virtual void Detach( UBOOL bWillReattach = FALSE ); virtual void FinishDestroy(); virtual void ShutdownAfterError(); // Methods void UnregisterGameObject(); void Stop(); #if __TW_WWISE_ // determines if this component should check occlusion virtual bool ShouldUpdateOcclusion(); // determines if the listener is witin the max attenuation range of the component virtual bool ListenerWithinMaxRange( INT ListenerIndex = 0 ); // checks occlusion (AudioComponent::CheckOcclusion) virtual void UpdateOcclusion( INT ListenerIndex = 0); #endif // __TW_WWISE_ } defaultproperties { `if(`__TW_WWISE_) bFollowOwnerPosition=True `endif }