1
0
KF2-Dev-Scripts/Engine/Classes/AnimNotify_PlayFaceFxAnim.uc
2020-12-13 18:01:13 +03:00

71 lines
2.4 KiB
Ucode

/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
* Play a facial animation on a character.
*/
class AnimNotify_PlayFaceFXAnim extends AnimNotify_Scripted;
/** Reference to FaceFX AnimSet package the animation is in */
var() FaceFXAnimSet FaceFXAnimSetRef; // @todo: we need to none this out so there are no hard references to FaceFX AnimSets
var() String GroupName;
var() String AnimName;
/** The sound cue to play for the this animation**/
var() SoundCue SoundCueToPlay;
// WWISEMODIF_START, alessard, nov-28-2008, WwiseAudioIntegration
/** The sound cue to play for the this animation**/
var() AkEvent AkEventToPlay;
// WWISEMODIF_END
/** If a FaceFX animation is already playing, then override if TRUE, skip is FALSE */
var() bool bOverridePlayingAnim;
/** Chance to play. 0 - 1.f */
var() float PlayFrequency;
event Notify(Actor Owner, AnimNodeSequence AnimSeqInstigator)
{
// If this animation doesn't play all the time
// See if we should play or ignore it!
if( PlayFrequency < 1.f )
{
if( FRand() > PlayFrequency )
{
return;
}
}
else if( PlayFrequency > 1.f )
{
`log("Play FaceFX animation from notify" @ AnimSeqInstigator.AnimSeqName @ "for" @ Owner @ "GroupName:" @ GroupName @ "AnimName:" @ AnimName);
`log(" PlayFrequency > 1.0 is useless. Chance to play valid range is from 0.0 to 1.0.");
}
if( Owner != None )
{
//`log(Self @ "Play FaceFX animation from notify" @ AnimSeqInstigator.AnimSeqName @ "for" @ Owner @ "GroupName:" @ GroupName @ "AnimName:" @ AnimName @ "(bOverridePlayingAnim:"$ bOverridePlayingAnim @ "IsActorPlayingFaceFXAnim:" $ Owner.IsActorPlayingFaceFXAnim() $")");
// If actor can (is able to) play
if (Owner.CanActorPlayFaceFXAnim())
{
// If a Face FX animation is already playing, should we override it?
if( bOverridePlayingAnim || !Owner.IsActorPlayingFaceFXAnim())
{
// WWISEMODIF_START, alessard, nov-28-2008, WwiseAudioIntegration
if (Owner.PlayActorFaceFXAnim(FaceFXAnimSetRef, GroupName, AnimName, SoundCueToPlay, AkEventToPlay) == FALSE)
// WWISEMODIF_END
{
`log(AnimSeqInstigator.AnimSeq.Outer @ "(" @ AnimSeqInstigator.AnimSeqName @ ")" @ " - PlayFaceFXAnim notifier failed. Verify if this notifier is valid.",,'DevFaceFX');
}
}
}
}
}
defaultproperties
{
bOverridePlayingAnim=TRUE
PlayFrequency=1.f
}