Updated 3rd person and 1st person animation trees for assault to allow for third person weapon animations

This commit is contained in:
2016-03-09 15:48:57 +01:00
parent 77b9112f55
commit 9d368348d5
7 changed files with 346 additions and 402 deletions
+1 -1
Submodule assets updated: d7685a31af...d48c77c854
@@ -60,7 +60,9 @@ protected:
EntityWrapper Player; EntityWrapper Player;
EntityWrapper WeaponEntity; EntityWrapper WeaponEntity;
EntityWrapper FirstPersonEntity; EntityWrapper FirstPersonEntity;
EntityWrapper FirstPersonPlayerModel;
EntityWrapper ThirdPersonEntity; EntityWrapper ThirdPersonEntity;
EntityWrapper ThirdPersonPlayerModel;
}; };
IRenderer* m_Renderer; IRenderer* m_Renderer;
@@ -301,7 +303,9 @@ private:
wi.Player = player; wi.Player = player;
wi.WeaponEntity = player; wi.WeaponEntity = player;
wi.FirstPersonEntity = firstPersonWeapon; wi.FirstPersonEntity = firstPersonWeapon;
wi.FirstPersonPlayerModel = firstPersonWeapon;
wi.ThirdPersonEntity = thirdPersonWeapon; wi.ThirdPersonEntity = thirdPersonWeapon;
wi.ThirdPersonPlayerModel = thirdPersonWeapon.FirstParentWithComponent("Model");
OnEquip(cWeapon, wi); OnEquip(cWeapon, wi);
} }
+266 -315
View File
@@ -6,9 +6,7 @@
<Origin X="0" Y="0.772000015" Z="0"/> <Origin X="0" Y="0.772000015" Z="0"/>
<Size X="1" Y="1.60000002" Z="1"/> <Size X="1" Y="1.60000002" Z="1"/>
</c:AABB> </c:AABB>
<c:AssaultWeapon> <c:AssaultWeapon/>
<FireCooldown>0.5</FireCooldown>
</c:AssaultWeapon>
<c:Team> <c:Team>
<Team> <Team>
<Blue/> <Blue/>
@@ -550,10 +548,10 @@
</Entity> </Entity>
<Entity name="PlayerModel"> <Entity name="PlayerModel">
<Components> <Components>
<c:BlendAdditive> <c:BlendOverride>
<Adder>BlendTreeAim</Adder> <Master>BlendTreeUpper</Master>
<Receiver>BlendTreeAssault</Receiver> <Slave>BlendTreeLower</Slave>
</c:BlendAdditive> </c:BlendOverride>
<c:Shielded/> <c:Shielded/>
<c:HiddenForLocalPlayer/> <c:HiddenForLocalPlayer/>
<c:Model> <c:Model>
@@ -577,8 +575,8 @@
<EntityFile>Schema/Entities/WeaponAssaultBlueWorld.xml</EntityFile> <EntityFile>Schema/Entities/WeaponAssaultBlueWorld.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.168977827" Y="1.03285813" Z="-0.227028549"/> <Position X="0.153499424" Y="1.04221034" Z="-0.231716871"/>
<Orientation X="-0.00427743886" Y="-0.0853471458" Z="0.137290105"/> <Orientation X="-0.0108785164" Y="-0.0253766086" Z="0.137640417"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
@@ -598,142 +596,80 @@
<EntityFile>Schema/Entities/SidearmWeaponWorld.xml</EntityFile> <EntityFile>Schema/Entities/SidearmWeaponWorld.xml</EntityFile>
</c:Spawner> </c:Spawner>
<c:Transform> <c:Transform>
<Position X="0.168977827" Y="1.03285813" Z="-0.227028549"/> <Position X="0.153499424" Y="1.04221034" Z="-0.231716871"/>
<Orientation X="-0.00427743886" Y="-0.0853471458" Z="0.137290105"/> <Orientation X="-0.0108785164" Y="-0.0253766086" Z="0.137640417"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="BlendTreeAim"> <Entity name="BlendTreeLower">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>AimPrimary</Pose1> <Pose1>StandCrouchBlend</Pose1>
<Pose2>AimSecondary</Pose2> <Pose2>JumpDashBlend</Pose2>
<Weight>0</Weight> <Weight>2.5146881298480398e-63</Weight>
<SubTreeRoot>true</SubTreeRoot> <SubTreeRoot>true</SubTreeRoot>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="AimSecondary"> <Entity name="MovementBlend">
<Components>
<c:Animation>
<AnimationName>AimSecWepA</AnimationName>
<Time>0.5</Time>
<Loop>false</Loop>
<Additive>true</Additive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="AimPrimary">
<Components>
<c:Animation>
<AnimationName>AimRifleA</AnimationName>
<Time>0.5</Time>
<Loop>false</Loop>
<Additive>true</Additive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="BlendTreeAssault">
<Components>
<c:BlendOverride>
<Master>ReloadSwitchBlend</Master>
<Slave>FinalMovementBlend</Slave>
</c:BlendOverride>
<c:Transform/>
</Components>
<Children>
<Entity name="FinalMovementBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>StandCrouchBlend</Pose1> <Pose1>StandMovement</Pose1>
<Pose2>JumpDashBlend</Pose2> <Pose2>CrouchMovement</Pose2>
<Weight>2.5146881298480398e-63</Weight> <Weight>0</Weight>
<SubTreeRoot>true</SubTreeRoot> <SubTreeRoot>true</SubTreeRoot>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="StandCrouchBlend"> <Entity name="CrouchMovement">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>StandMovement</Pose1> <Pose1>MovementBlend</Pose1>
<Pose2>CrouchMovement</Pose2> <Pose2>Idle</Pose2>
<Weight>0</Weight> <Weight>1</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="CrouchMovement"> <Entity name="DirectionBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>MovementBlend</Pose1> <Pose1>Walk</Pose1>
<Pose2>Idle</Pose2> <Pose2>StrafeLRBlend</Pose2>
<Weight>1</Weight> <Weight>0</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="MovementBlend"> <Entity name="StrafeLRBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>Walk</Pose1> <Pose1>Left</Pose1>
<Pose2>StrafeLRBlend</Pose2> <Pose2>Right</Pose2>
<Weight>0</Weight> <Weight>0.033793529385008014</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="StrafeLRBlend"> <Entity name="Left">
<Components>
<c:Blend>
<Pose1>Left</Pose1>
<Pose2>Right</Pose2>
<Weight>0.033793529385008014</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:Animation>
<AnimationName>CrouchStrafeLeftF</AnimationName>
<Time>0.93215091236880454</Time>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.85947237431958712</Time>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Walk">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchWalkF</AnimationName> <AnimationName>CrouchStrafeLeftF</AnimationName>
<Time>0.63784635949699009</Time> <Time>0.15801023731376773</Time>
<Speed>1</Speed> <Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.085331699264550309</Time>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -742,119 +678,11 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="Idle"> <Entity name="Walk">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>CrouchF</AnimationName> <AnimationName>CrouchWalkF</AnimationName>
<Time>0.99862473341677438</Time> <Time>0.86370568444195328</Time>
<Speed>1</Speed>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="StandMovement">
<Components>
<c:Blend>
<Pose1>MovementBlend</Pose1>
<Pose2>Idle</Pose2>
<Weight>1</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="MovementBlend">
<Components>
<c:Blend>
<Pose1>RunWalkBlend</Pose1>
<Pose2>StrafeLRBlend</Pose2>
<Weight>2.4565650245976452e-16</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="RunWalkBlend">
<Components>
<c:Blend>
<Pose1>Walk</Pose1>
<Pose2>Run</Pose2>
<Weight>1.2938206818383024e-24</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Walk">
<Components>
<c:Animation>
<AnimationName>WalkF</AnimationName>
<Time>0.14300098890676338</Time>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Run">
<Components>
<c:Animation>
<AnimationName>RunF</AnimationName>
<Time>0.41501449293066628</Time>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="StrafeLRBlend">
<Components>
<c:Blend>
<Pose1>Left</Pose1>
<Pose2>Right</Pose2>
<Weight>0.033793529385008014</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:Animation>
<AnimationName>StrafeLeftF</AnimationName>
<Time>0.32459360994030106</Time>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:Animation>
<AnimationName>StrafeRightF</AnimationName>
<Time>0.34810913982041569</Time>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="Idle">
<Components>
<c:Animation>
<AnimationName>IdleF</AnimationName>
<Time>1.2585556863362655</Time>
<Speed>1</Speed>
<Play>true</Play> <Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -863,70 +691,65 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
</Children> <Entity name="Idle">
</Entity>
<Entity name="JumpDashBlend">
<Components>
<c:Blend>
<Pose1>Jump</Pose1>
<Pose2>DashBlend</Pose2>
<Weight>1</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Jump">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>JumpF</AnimationName> <AnimationName>CrouchF</AnimationName>
<Time>0.5</Time> <Time>0.99862473341677438</Time>
<Speed>1</Speed>
<Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="DashBlend"> </Children>
</Entity>
<Entity name="StandMovement">
<Components>
<c:Blend>
<Pose1>MovementBlend</Pose1>
<Pose2>Idle</Pose2>
<Weight>1</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="DirectionBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>DashFBBlend</Pose1> <Pose1>RunWalkBlend</Pose1>
<Pose2>DashLRBlend</Pose2> <Pose2>StrafeLRBlend</Pose2>
<Weight>0.014621149736541383</Weight> <Weight>2.4565650245976452e-16</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="DashFBBlend"> <Entity name="RunWalkBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>DashForward</Pose1> <Pose1>Walk</Pose1>
<Pose2>DashBackward</Pose2> <Pose2>Run</Pose2>
<Weight>0.014363533804961248</Weight> <Weight>1.2938206818383024e-24</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="DashForward"> <Entity name="Walk">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DashForwardF</AnimationName> <AnimationName>WalkF</AnimationName>
<Time>1</Time> <Time>0.36886031385172657</Time>
<Speed>2</Speed> <Play>true</Play>
<Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="DashBackward"> <Entity name="Run">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DashBackwardF</AnimationName> <AnimationName>RunF</AnimationName>
<Time>1</Time> <Time>0.64087381787562947</Time>
<Speed>2</Speed> <Play>true</Play>
<Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -934,35 +757,33 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="DashLRBlend"> <Entity name="StrafeLRBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>DashLeft</Pose1> <Pose1>Left</Pose1>
<Pose2>DashRight</Pose2> <Pose2>Right</Pose2>
<Weight>4.3244885367500671e-16</Weight> <Weight>0.033793529385008014</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="DashLeft"> <Entity name="Left">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DashLeftF</AnimationName> <AnimationName>StrafeLeftF</AnimationName>
<Time>1</Time> <Time>0.55045293488526426</Time>
<Speed>2</Speed> <Play>true</Play>
<Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="DashRight"> <Entity name="Right">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>DashRightF</AnimationName> <AnimationName>StrafeRightF</AnimationName>
<Time>1</Time> <Time>0.57396846476537888</Time>
<Speed>2</Speed> <Play>true</Play>
<Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -972,71 +793,186 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="Idle">
<Components>
<c:Animation>
<AnimationName>IdleF</AnimationName>
<Time>1.0177411602680451</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="JumpDashBlend">
<Components>
<c:Blend>
<Pose1>Jump</Pose1>
<Pose2>DashBlend</Pose2>
<Weight>1</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Jump">
<Components>
<c:Animation>
<AnimationName>JumpF</AnimationName>
<Time>0.5</Time>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="DashBlend">
<Components>
<c:Blend>
<Pose1>DashFBBlend</Pose1>
<Pose2>DashLRBlend</Pose2>
<Weight>0.014621149736541383</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="DashFBBlend">
<Components>
<c:Blend>
<Pose1>DashForward</Pose1>
<Pose2>DashBackward</Pose2>
<Weight>0.014363533804961248</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="DashForward">
<Components>
<c:Animation>
<AnimationName>DashForwardF</AnimationName>
<Time>1</Time>
<Speed>2</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="DashBackward">
<Components>
<c:Animation>
<AnimationName>DashBackwardF</AnimationName>
<Time>1</Time>
<Speed>2</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="DashLRBlend">
<Components>
<c:Blend>
<Pose1>DashLeft</Pose1>
<Pose2>DashRight</Pose2>
<Weight>4.3244885367500671e-16</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="DashLeft">
<Components>
<c:Animation>
<AnimationName>DashLeftF</AnimationName>
<Time>1</Time>
<Speed>2</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="DashRight">
<Components>
<c:Animation>
<AnimationName>DashRightF</AnimationName>
<Time>1</Time>
<Speed>2</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="ReloadSwitchBlend"> </Children>
</Entity>
<Entity name="BlendTreeUpper">
<Components>
<c:Blend>
<Pose1>AssaultWeaponBlend</Pose1>
<Pose2>SidearmWeapon</Pose2>
<Weight>0</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="AssaultWeaponBlend">
<Components> <Components>
<c:Blend> <c:BlendAdditive>
<Pose1>ReloadSwitch</Pose1> <Adder>Aim</Adder>
<Pose2>WeaponActionBlend</Pose2> <Receiver>WeaponBlend</Receiver>
<Weight>1</Weight> </c:BlendAdditive>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="ReloadSwitch"> <Entity name="WeaponBlend">
<Components> <Components>
<c:Animation> <c:BlendAdditive>
<AnimationName>ReloadSwitchU</AnimationName> <Adder>MovementBlend</Adder>
<Time>0.00030848838797092881</Time> <Receiver>ActionBlend</Receiver>
<Speed>1</Speed> </c:BlendAdditive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="WeaponActionBlend">
<Components>
<c:Blend>
<Pose1>IdleBlend</Pose1>
<Pose2>ShootBlend</Pose2>
<Weight>0</Weight>
</c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="IdleBlend"> <Entity name="ActionBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>IdlePrimary</Pose1> <Pose1>Fire</Pose1>
<Pose2>IdleSecondary</Pose2> <Pose2>Reload</Pose2>
<Weight>0</Weight> <Weight>1</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="IdlePrimary"> <Entity name="Reload">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleAssaultRifleU</AnimationName> <AnimationName>ReloadSwitchU</AnimationName>
<Time>0.56722367394927176</Time> <Speed>0.5</Speed>
<Speed>1</Speed> <Loop>false</Loop>
<Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="IdleSecondary"> <Entity name="Fire">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleSecWepU</AnimationName> <AnimationName>ShootFastRifleU</AnimationName>
<Time>0.57074871423905904</Time> <Loop>false</Loop>
<Speed>1</Speed>
<Play>true</Play>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -1044,31 +980,33 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="ShootBlend"> <Entity name="MovementBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>ShootPrimary</Pose1> <Pose1>Idle</Pose1>
<Pose2>ShootSecondary</Pose2> <Pose2>Run</Pose2>
<Weight>0</Weight> <Weight>0</Weight>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="ShootPrimary"> <Entity name="Run">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShootFastRifleU</AnimationName> <AnimationName>IdleAssaultRifleU</AnimationName>
<Time>0.12914212153428517</Time> <Play>true</Play>
<Speed>1</Speed> <Additive>true</Additive>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="ShootSecondary"> <Entity name="Idle">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShootSecWepFastU</AnimationName> <AnimationName>IdleAssaultRifleU</AnimationName>
<Play>true</Play>
<Additive>true</Additive>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -1078,6 +1016,19 @@
</Entity> </Entity>
</Children> </Children>
</Entity> </Entity>
<Entity name="Aim">
<Components>
<c:Animation>
<AnimationName>AimRifleA</AnimationName>
<Time>0.5</Time>
<Speed>0.10000000149011612</Speed>
<Loop>false</Loop>
<Additive>true</Additive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children> </Children>
</Entity> </Entity>
</Children> </Children>
@@ -4,7 +4,7 @@
<Components> <Components>
<c:BlendAdditive> <c:BlendAdditive>
<Adder>MovementBlend</Adder> <Adder>MovementBlend</Adder>
<Receiver>FinalBlend</Receiver> <Receiver>ActionBlend</Receiver>
</c:BlendAdditive> </c:BlendAdditive>
<c:Model> <c:Model>
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource> <Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
@@ -13,54 +13,34 @@
</Components> </Components>
<Children> <Children>
<Entity name="FinalBlend"> <Entity name="ActionBlend">
<Components> <Components>
<c:Blend> <c:Blend>
<Pose1>BlendTreeAssaultWeapon</Pose1> <Pose1>Fire</Pose1>
<Pose2>BlendTreeSecondaryWeapon</Pose2> <Pose2>Reload</Pose2>
<Weight>0</Weight> <Weight>0</Weight>
<SubTreeRoot>true</SubTreeRoot> <SubTreeRoot>true</SubTreeRoot>
</c:Blend> </c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="BlendTreeAssaultWeapon"> <Entity name="Reload">
<Components> <Components>
<c:Blend> <c:Animation>
<Pose1>Fire</Pose1> <AnimationName>ReloadSwitchF</AnimationName>
<Pose2>Reload</Pose2> <Speed>0.5</Speed>
<Weight>0</Weight> <Loop>false</Loop>
<SubTreeRoot>true</SubTreeRoot> </c:Animation>
</c:Blend>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children/>
<Entity name="Reload">
<Components>
<c:Animation>
<AnimationName>ReloadSwitchF</AnimationName>
<Speed>0.5</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Fire">
<Components>
<c:Animation>
<AnimationName>ShootRifleF</AnimationName>
<Speed>1</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity> </Entity>
<Entity name="BlendTreeSecondaryWeapon"> <Entity name="Fire">
<Components> <Components>
<c:Animation>
<AnimationName>ShootRifleF</AnimationName>
<Loop>false</Loop>
</c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children/> <Children/>
@@ -78,11 +58,10 @@
<c:Transform/> <c:Transform/>
</Components> </Components>
<Children> <Children>
<Entity name="Idle"> <Entity name="Run">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleF</AnimationName> <AnimationName>RunF</AnimationName>
<Speed>1</Speed>
<Play>true</Play> <Play>true</Play>
<Additive>true</Additive> <Additive>true</Additive>
</c:Animation> </c:Animation>
@@ -90,11 +69,10 @@
</Components> </Components>
<Children/> <Children/>
</Entity> </Entity>
<Entity name="Run"> <Entity name="Idle">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>RunF</AnimationName> <AnimationName>IdleF</AnimationName>
<Speed>1</Speed>
<Play>true</Play> <Play>true</Play>
<Additive>true</Additive> <Additive>true</Additive>
</c:Animation> </c:Animation>
@@ -113,8 +91,8 @@
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.120748274" Y="-0.228437141" Z="-0.181454718"/> <Position X="0.118469834" Y="-0.231588811" Z="-0.181454763"/>
<Orientation X="0.0104048206" Y="-0.00268219248" Z="0.0428443849"/> <Orientation X="0.0104042515" Y="-0.00268274755" Z="0.0428440832"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -149,9 +127,9 @@
<InheritScale>true</InheritScale> <InheritScale>true</InheritScale>
</c:BoneAttachment> </c:BoneAttachment>
<c:Transform> <c:Transform>
<Position X="0.0540266186" Y="-0.0954354703" Z="-0.255526125"/> <Position X="0.0517482236" Y="-0.0985872298" Z="-0.255526245"/>
<Orientation X="0.000684258412" Y="0.077423811" Z="0.00118651299"/> <Orientation X="0.000683688093" Y="0.0774232447" Z="0.0011862258"/>
<Scale X="0.50000006" Y="0.500000477" Z="1.00000083"/> <Scale X="0.25" Y="0.250000119" Z="0.500000238"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -27,9 +27,7 @@
<Entity name="Shield"> <Entity name="Shield">
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ActivateDeactiveShieldF</AnimationName> <AnimationName>ActivateDeactivateShieldF</AnimationName>
<Time>1</Time>
<Speed>1</Speed>
<Loop>false</Loop> <Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -50,7 +48,6 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShootShotgunF</AnimationName> <AnimationName>ShootShotgunF</AnimationName>
<Speed>1</Speed>
<Loop>false</Loop> <Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -71,7 +68,6 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShotgunReloadTwoF</AnimationName> <AnimationName>ShotgunReloadTwoF</AnimationName>
<Speed>1</Speed>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
</Components> </Components>
@@ -91,7 +87,6 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShotgunReloadOneF</AnimationName> <AnimationName>ShotgunReloadOneF</AnimationName>
<Speed>1</Speed>
<Loop>false</Loop> <Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -102,7 +97,6 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>ShotgunReloadThreeF</AnimationName> <AnimationName>ShotgunReloadThreeF</AnimationName>
<Speed>1</Speed>
<Loop>false</Loop> <Loop>false</Loop>
</c:Animation> </c:Animation>
<c:Transform/> <c:Transform/>
@@ -132,7 +126,6 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>IdleF</AnimationName> <AnimationName>IdleF</AnimationName>
<Speed>1</Speed>
<Play>true</Play> <Play>true</Play>
<Additive>true</Additive> <Additive>true</Additive>
</c:Animation> </c:Animation>
@@ -144,7 +137,6 @@
<Components> <Components>
<c:Animation> <c:Animation>
<AnimationName>RunF</AnimationName> <AnimationName>RunF</AnimationName>
<Speed>1</Speed>
<Play>true</Play> <Play>true</Play>
<Additive>true</Additive> <Additive>true</Additive>
</c:Animation> </c:Animation>
@@ -163,8 +155,8 @@
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource> <Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model> </c:Model>
<c:Transform> <c:Transform>
<Position X="0.120748252" Y="-0.228437155" Z="-0.181454688"/> <Position X="0.120748043" Y="-0.228436321" Z="-0.151475549"/>
<Orientation X="0.0104048811" Y="-0.00268213497" Z="0.0428443402"/> <Orientation X="0.0104044285" Y="-0.00268185162" Z="0.0428444184"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -197,9 +189,9 @@
<InheritScale>true</InheritScale> <InheritScale>true</InheritScale>
</c:BoneAttachment> </c:BoneAttachment>
<c:Transform> <c:Transform>
<Position X="0.0540265739" Y="-0.095435515" Z="-0.255526066"/> <Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546911"/>
<Orientation X="0.000684314175" Y="0.0774238482" Z="0.00118648494"/> <Orientation X="0.000683821447" Y="0.0774240941" Z="-1.56960988"/>
<Scale X="1.00000012" Y="1.00000048" Z="1.00000048"/> <Scale X="0.500000179" Y="0.500000179" Z="0.499999911"/>
</c:Transform> </c:Transform>
</Components> </Components>
<Children> <Children>
@@ -72,7 +72,7 @@ void AssaultWeaponBehaviour::UpdateWeapon(ComponentWrapper cWeapon, WeaponInfo&
const float& movementSpeed = cPlayer["MovementSpeed"]; const float& movementSpeed = cPlayer["MovementSpeed"];
float speed = glm::length((const glm::vec3&)cPhysics["Velocity"]); float speed = glm::length((const glm::vec3&)cPhysics["Velocity"]);
float animationWeight = glm::min(speed, movementSpeed) / movementSpeed; float animationWeight = glm::min(speed, movementSpeed) / movementSpeed;
EntityWrapper rootNode = wi.FirstPersonEntity.FirstParentWithComponent("Model"); EntityWrapper rootNode = wi.FirstPersonEntity;
if (rootNode.Valid()) { if (rootNode.Valid()) {
EntityWrapper blend = rootNode.FirstChildByName("MovementBlend"); EntityWrapper blend = rootNode.FirstChildByName("MovementBlend");
if (blend.Valid()) { if (blend.Valid()) {
@@ -125,7 +125,20 @@ void AssaultWeaponBehaviour::OnReload(ComponentWrapper cWeapon, WeaponInfo& wi)
reloadTimer = reloadTime; reloadTimer = reloadTime;
// Play animation // Play animation
playAnimationAndReturn(wi.FirstPersonEntity, "BlendTreeAssaultWeapon", "Reload"); playAnimationAndReturn(wi.FirstPersonEntity, "ActionBlend", "Reload");
// Third person anim
Events::AutoAnimationBlend b1;
b1.RootNode = wi.ThirdPersonPlayerModel;
b1.NodeName = "Reload";
b1.Restart = true;
b1.Start = true;
m_EventBroker->Publish(b1);
Events::AutoAnimationBlend b2;
b2.RootNode = wi.ThirdPersonPlayerModel;
b2.NodeName = "MovementBlend";
b2.AnimationEntity = wi.ThirdPersonPlayerModel.FirstChildByName("AssaultWeaponBlend").FirstChildByName("Reload");
m_EventBroker->Publish(b2);
// Spawn explosion effect // Spawn explosion effect
if (wi.FirstPersonEntity.Valid()) { if (wi.FirstPersonEntity.Valid()) {
if (IsClient) { if (IsClient) {
@@ -233,7 +246,19 @@ void AssaultWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
} }
// Play animation // Play animation
playAnimationAndReturn(wi.FirstPersonEntity, "BlendTreeAssaultWeapon", "Fire"); playAnimationAndReturn(wi.FirstPersonEntity, "ActionBlend", "Fire");
// Third person anim
Events::AutoAnimationBlend b1;
b1.RootNode = wi.ThirdPersonPlayerModel;
b1.NodeName = "Fire";
b1.Restart = true;
b1.Start = true;
m_EventBroker->Publish(b1);
Events::AutoAnimationBlend b2;
b2.RootNode = wi.ThirdPersonPlayerModel;
b2.NodeName = "MovementBlend";
b2.AnimationEntity = wi.ThirdPersonPlayerModel.FirstChildByName("AssaultWeaponBlend").FirstChildByName("Fire");
m_EventBroker->Publish(b2);
// Sound // Sound
Events::PlaySoundOnEntity e; Events::PlaySoundOnEntity e;
@@ -139,17 +139,14 @@ bool DefenderWeaponBehaviour::OnInputCommand(ComponentWrapper cWeapon, WeaponInf
if (IsClient) { if (IsClient) {
EntityWrapper root = wi.FirstPersonEntity; EntityWrapper root = wi.FirstPersonEntity;
if (root.Valid()) { if (root.Valid()) {
EntityWrapper subTree = root.FirstChildByName("FinalBlend"); EntityWrapper animationNode = root.FirstChildByName("Shield");
if (subTree.Valid()) { if (animationNode.Valid()) {
EntityWrapper animationNode = subTree.FirstChildByName("Shield"); Events::AutoAnimationBlend eFireBlend;
if (animationNode.Valid()) { eFireBlend.RootNode = root;
Events::AutoAnimationBlend eFireBlend; eFireBlend.NodeName = "Shield";
eFireBlend.RootNode = root; eFireBlend.Restart = true;
eFireBlend.NodeName = "Shield"; eFireBlend.Start = true;
eFireBlend.Restart = true; m_EventBroker->Publish(eFireBlend);
eFireBlend.Start = true;
m_EventBroker->Publish(eFireBlend);
}
} }
} }
} }
@@ -159,17 +156,14 @@ bool DefenderWeaponBehaviour::OnInputCommand(ComponentWrapper cWeapon, WeaponInf
if (IsClient) { if (IsClient) {
EntityWrapper root = wi.FirstPersonEntity; EntityWrapper root = wi.FirstPersonEntity;
if (root.Valid()) { if (root.Valid()) {
EntityWrapper subTree = root.FirstChildByName("FinalBlend"); EntityWrapper animationNode = root.FirstChildByName("ActionBlend");
if (subTree.Valid()) { if (animationNode.Valid()) {
EntityWrapper animationNode = subTree.FirstChildByName("ActionBlend"); Events::AutoAnimationBlend eFireBlend;
if (animationNode.Valid()) { eFireBlend.RootNode = root;
Events::AutoAnimationBlend eFireBlend; eFireBlend.NodeName = "ActionBlend";
eFireBlend.RootNode = root; eFireBlend.Restart = true;
eFireBlend.NodeName = "ActionBlend"; eFireBlend.Start = true;
eFireBlend.Restart = true; m_EventBroker->Publish(eFireBlend);
eFireBlend.Start = true;
m_EventBroker->Publish(eFireBlend);
}
} }
} }
} }