Jump to content

Recommended Posts

Hello all,

 

SF = Soldier inside

SFHeli1 = Helicopter that he is in

 

I have just started looking into and using animations in sequences rather than a loop of a stationary animation.

I am having a little difficulty with the moving animations though. 

What I am wanting to do is:

  1. Attach an AI soldier to a helicopter in the start pose of the animation (Done)
  2. Have helicopter fly to location, land and wait with doors open (Done)
  3. When the helicopter lands, have the guy inside play a sequence of animations (Semi-done)

 

No.3 is the bit I am stuck on.

I am using this for steps 1 and 2:

this = [] spawn {

	SFheli1 animateDoor ["DoorRB", 1];
	SFheli1 animateDoor ["DoorLB", 1];
	[SFHeli1, SF] remoteExecCall ["disableCollisionWith", 0, SFHeli1];
	SF switchMove "Acts_NATOCommanderArrival_Commander_1";
	SF attachTo [SFheli1, [0.8, 1.619, -2.25]];
	SF setDir 90;
};

Currently, I have the animation start on a radio trigger for testing purposes with this in it:

this = [] spawn { 
  
	 detach SF; 
	 SF enableSimulationGlobal true; 
	 SF disableCollisionWith SFHeli1; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_1"; 
	 sleep 1.666; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_2"; 
	 sleep 0.001;
	 SF attachTo [SFheli1, [5, 1.619, -2.25]]; 
	 detach SF; 
	 SF setDir 90;
	 SF switchMove "Acts_NATOCommanderArrival_Commander_3"; 
	 sleep 4.833; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_4"; 
	 sleep 1.166; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_5"; 
	 sleep 15; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_6"; 
	 sleep 5.333; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_7"; 
	 sleep 3.333; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_8"; 
	 sleep 1.032; 
	 SF switchMove "Acts_NATOCommanderArrival_Commander_9"; 
	 sleep 1.134; 
	 SF switchMove "Acts_SittingJumpingSaluting_in"; 
	 sleep 7.434; 
	 SF switchMove "Acts_SittingJumpingSaluting_loop3";
	 SF attachTo [SFheli1, [0.8, 1.619, -2.5]]; 
	 SF setDir 90;  
	 sleep 40; 
	 
};

All this works fine, but there is one big problem. When the simulation is restarted and the animations are triggered, they play but the soldiers stays at the same location and doesn't move with the animation i.e. he walks on the spot.

I have had a brief look into keyframe animations, which could be a solution, but I can't get them to activate via trigger and I can't guarantee the landing location and orientation of the helicopter will be the exact same each time. So unless I can attach the starting key to the soldier to update the start position.

So my question, really, is how do I get the guy to move with his animation?

 

Edit: A quick video demonstrating what is happening. I have purposefully moved him 5 meters away from the helicopter when he gets out to prove that he is not colliding with the helicopter. I have found that if the helicopter takes off, then he will resume walking properly with movement across the ground, but I need the helicopter to stay stationary until he gets back in.

 

TIA,

Aurora

Share this post


Link to post
Share on other sites

I give up... I have been at this for four days. These animations are an absolute nightmare. 

For future me, if I ever decide to try this again here is where I got to:

 

Trigger 1 with condition set to true, with activation of this:

SF2 attachTo [SFHeli2, [0.8, 1, -2.25]];
SF2 setDir 90;
SF2 switchMove "Acts_SittingJumpingSaluting_loop3";
SFHeli12 disableCollisionWith SF2; 

Trigger 2 with condition of:

isTouchingGround SFHeli2;

and this in the activation:

null = [] spawn {
	
	SF2 disableAI "ALL";
	sleep 2;
	{_x disableAI "ALL"} forEach crew SFHeli2;
	SF2 SwitchMove "Acts_SittingJumpingSaluting_out";
	SF2 attachTo [SFHeli2, [0.8, 1, -2.5]];
	detach SF2;
	SF2 setDir 90;
	sleep 1.5;
	SF2 setDir 90;
	SF2 switchMove "Acts_ComingInSpeakingWalkingOut_1";
	sleep 6.600;
	SF2 playMove "Acts_ComingInSpeakingWalkingOut_2";
	sleep 2.532;
	SF2 enablesimulation false;
	[west, ["Talk to the soldier"], ["Talk to the soldier", "Talk to the soldier", ""], [SF2] ,true, 1, true, "", true] call BIS_fnc_taskCreate;
	
	[  
       SF2,             
       "Talk to Soldier",            
       "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",  
       "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_connect_ca.paa",   
       "_this distance _target < 3",  
       "_caller distance _target < 3",        
       {},             
       {},               
       {
			SF2 enablesimulation true;
			SF2 switchMove "Acts_ComingInSpeakingWalkingOut_2";
			sleep 2.532;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_2";
			sleep 2.532;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_3";
			sleep 9.532;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_4";  
			sleep 12.836;  
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_5";  
			sleep 2.267;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_6";  
			sleep 10.905;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_7";  
			sleep 6.666;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_8";  
			sleep 3.400;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_9";  
			sleep 4.899;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_10";  
			sleep 2.666;
			SF2 playMove "Acts_ComingInSpeakingWalkingOut_11";  
			sleep 11.037;
			SF2 attachTo [SFheli2, [1.3, 1, -1.9]]; 
			SF2 setDir 90;
			SF2 switchMove "Acts_SittingJumpingSaluting_in";  
			sleep 7.434;  
			SF2 attachTo [SFheli2, [0.8, 1, -2.25]]; 
			SF2 playMove "Acts_SittingJumpingSaluting_loop3"; 
			SF2 attachTo [SFheli2, [0.8, 1, -2.25]];  
			SF2 setDir 90;   
			{_x enableAI "ALL"} forEach crew SFHeli2;
	   },      
       {},               
       [],               
       3,               
       0,               
       true,              
       false              
      ] remoteExec ["BIS_fnc_holdActionAdd", 0, SF2];

};

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×