However.. now i started evaluating the possibility of adding replication for blend animations. Native replication can probably be used for replicating variables of base classes, so the blend animation relevant variables could be replicated like those of the "normal" animations. However i have not found yet sth. useful to read about animation replication - it somehow happens magically. My current assumption is that this happens in PreNetReceive() / PostNetReceive() as AActor::PreNetReceive() saves the SimAnim variable.
On how to do native (variable only) replication, check the ut2004 script source/Onslaught.cpp.
My 2 cents for now..
/edit: Okay some blend animations variables seem to get actually replicated.
/edit2: Okay it's getting weired, those animation variables only get replicated if is less then ROLE_SimulatedProxy (despite other checks). So how the fuck does animation replication actually work?
/edit3: I should look more carefully before posting:
Actor.uc
- Code: Select all
// Animation.
unreliable if( DrawType==DT_Mesh && ((RemoteRole<=ROLE_SimulatedProxy && (!bNetOwner || !bClientAnim)) || bDemoRecording) )
AnimSequence, BlendAnimSequence; // blended anims added - DEUS_EX CNN
unreliable if( DrawType==DT_Mesh && (RemoteRole==ROLE_SimulatedProxy))
bAnimNotify;
unreliable if( DrawType==DT_Mesh && (RemoteRole<ROLE_SimulatedProxy))
SimAnim, AnimMinRate, SimBlendAnim, BlendAnimMinRate; // blended anims added - DEUS_EX CNN
So guess i have to find out where this animsequence lands, but some corrosponding bBlendAnimNotify seems missing.
/edit4:
Unreal Gold: So the last line makes more sense, here. maybe the replication statement shown in DX uc code is wrong?
- Code: Select all
// Animation.
unreliable if( DrawType==DT_Mesh && (RemoteRole<=ROLE_SimulatedProxy) )
AnimSequence;
unreliable if( DrawType==DT_Mesh && (RemoteRole==ROLE_SimulatedProxy) )
bAnimNotify;
unreliable if( DrawType==DT_Mesh && (RemoteRole<ROLE_AutonomousProxy) )
SimAnim, AnimMinRate;