Compare commits

...

9 Commits

Author SHA1 Message Date
viktorljung cb94f6aecd AnimationDemo 2016-03-14 20:03:52 +01:00
William Moberg fb3842ba5b Indentation. 2016-03-14 06:05:11 +01:00
William Moberg 6daaccb9ed Merge branch 'Recording' of github.com:teamfisk/TacticalZ into Recording
# Conflicts:
#	src/Engine/Editor/EditorSystem.cpp
2016-03-14 06:02:47 +01:00
William Moberg 0cd161184e Smoother movement for editor camera. 2016-03-14 06:00:12 +01:00
Jace 87b983ec6f Stuff 2016-03-14 05:56:09 +01:00
Jace 592f33653e Better shadows for recording 2016-03-14 04:44:53 +01:00
Jace c74a4e375e Better CP_Valhalla lighting 2016-03-14 04:24:40 +01:00
Jace 78a383b03c Merge branch 'master' into Recording 2016-03-14 04:04:20 +01:00
Jace 24de85b476 Editor no longer resets camera 2016-03-14 04:02:05 +01:00
13 changed files with 33379 additions and 27408 deletions
+1
View File
@@ -43,6 +43,7 @@ private:
EditorGUI::WidgetSpace m_WidgetSpace = EditorGUI::WidgetSpace::Global; EditorGUI::WidgetSpace m_WidgetSpace = EditorGUI::WidgetSpace::Global;
EntityWrapper m_Widget = EntityWrapper::Invalid; EntityWrapper m_Widget = EntityWrapper::Invalid;
EntityWrapper m_CurrentSelection = EntityWrapper::Invalid; EntityWrapper m_CurrentSelection = EntityWrapper::Invalid;
glm::vec3 m_CamVelocity;
// Utility functions // Utility functions
EntityWrapper importEntity(EntityWrapper parent, boost::filesystem::path filePath); EntityWrapper importEntity(EntityWrapper parent, boost::filesystem::path filePath);
@@ -16,6 +16,7 @@
#include "../Core/EEntityDeleted.h" #include "../Core/EEntityDeleted.h"
#include "Rendering/ESetBlendWeight.h" #include "Rendering/ESetBlendWeight.h"
#include "imgui/imgui.h" #include "imgui/imgui.h"
#include "Input/EInputCommand.h"
class AnimationSystem : public ImpureSystem class AnimationSystem : public ImpureSystem
{ {
@@ -37,7 +38,13 @@ private:
EventRelay<AnimationSystem, Events::SetBlendWeight> m_ESetBlendWeight; EventRelay<AnimationSystem, Events::SetBlendWeight> m_ESetBlendWeight;
bool OnSetBlendWeight(Events::SetBlendWeight& e); bool OnSetBlendWeight(Events::SetBlendWeight& e);
EventRelay<AnimationSystem, Events::InputCommand> m_EInputCommand;
bool OnInputCommand(Events::InputCommand& e);
std::unordered_map<EntityWrapper, AutoBlendQueue> m_AutoBlendQueues; std::unordered_map<EntityWrapper, AutoBlendQueue> m_AutoBlendQueues;
bool Crouch = false;
float aimMove = 0;
}; };
#endif #endif
+1 -1
View File
@@ -69,7 +69,7 @@ private:
std::array<glm::mat4, MAX_SPLITS> m_LightProjection; std::array<glm::mat4, MAX_SPLITS> m_LightProjection;
std::array<glm::mat4, MAX_SPLITS> m_LightView; std::array<glm::mat4, MAX_SPLITS> m_LightView;
GLfloat m_NearFarPlane[2] = { -34.f, 27.f }; GLfloat m_NearFarPlane[2] = { -128.f, 128.f };
GLuint m_ResolutionSizeWidth = 1024 * 2; GLuint m_ResolutionSizeWidth = 1024 * 2;
GLuint m_ResolutionSizeHeight = 1024 * 2; GLuint m_ResolutionSizeHeight = 1024 * 2;
+1 -1
View File
@@ -2,5 +2,5 @@
<Camera xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Camera.xsd"> <Camera xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Camera.xsd">
<FOV>59</FOV> <!-- 90 horizontal FOV at 1080p --> <FOV>59</FOV> <!-- 90 horizontal FOV at 1080p -->
<NearClip>0.01</NearClip> <NearClip>0.01</NearClip>
<FarClip>5000</FarClip> <FarClip>300</FarClip>
</Camera> </Camera>
+114
View File
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:SceneLight>
<AmbientColor A="1" B="0.392156869" G="0.392156869" R="0.392156869"/>
<Gamma>1</Gamma>
<Exposure>0.82000017166137695</Exposure>
</c:SceneLight>
<c:Transform/>
</Components>
<Children>
<Entity>
<Components>
<c:Collidable/>
<c:Model>
<GlowIntensity>1.0199999809265137</GlowIntensity>
<Resource>Models/Props/Walls/SciFiWallTop.mesh</Resource>
<Color A="1" B="3.92156863" G="1" R="1"/>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="0" Y="58.718792" Z="15.6310005"/>
<Orientation X="0" Y="0" Z="3.14199996"/>
<Scale X="0.279000014" Y="1" Z="0.279000014"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Collidable/>
<c:Model>
<GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Props/Pillars/SciFiPillar2Blue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="-14.4384613" Y="-1.2316848" Z="0"/>
<Orientation X="0" Y="2.64800024" Z="0"/>
<Scale X="2" Y="3.60000014" Z="1.9000001"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Collidable/>
<c:Model>
<GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Props/Pillars/SciFiPillar2Blue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="14.3019333" Y="-1.12725353" Z="0"/>
<Orientation X="0" Y="3.84800029" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Dir">
<Components>
<c:DirectionalLight>
<Color A="1" B="0.725490212" G="0.75686276" R="0.741176486"/>
<Intensity>1.0699999332427979</Intensity>
</c:DirectionalLight>
<c:Transform>
<Orientation X="3.68318534" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Cam">
<Components>
<c:Camera/>
<c:Model>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Shadow>false</Shadow>
<NormalMap>false</NormalMap>
<DiffuseTexture>false</DiffuseTexture>
<SpecularMap>false</SpecularMap>
<GlowMap>false</GlowMap>
</c:Model>
<c:Transform>
<Position X="0.100000001" Y="-0.0670000017" Z="-32.8670006"/>
<Orientation X="0" Y="3.1400001" Z="0"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Spawn">
<Components>
<c:PlayerSpawn>
<AssaultFile>Schema/Entities/PlayerAssaultBlue.xml</AssaultFile>
<DefenderFile>Schema/Entities/PlayerDefenderBlue.xml</DefenderFile>
<SniperFile></SniperFile>
</c:PlayerSpawn>
<c:Model>
<Resource>Models/Characters/Assault/AssaultBlue.mesh</Resource>
</c:Model>
<c:Spawner>
<EntityFile></EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.100000001" Y="2.8398931" Z="-29.0827847"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+9486 -9480
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,868 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity name="PlayerAssault" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:AABB>
<Origin X="0" Y="0.772000015" Z="0"/>
<Size X="1" Y="1.60000002" Z="1"/>
</c:AABB>
<c:AssaultWeapon/>
<c:Team>
<Team>
<Blue/>
</Team>
</c:Team>
<c:Collidable/>
<c:DashAbility/>
<c:DoubleJump/>
<c:SidearmWeapon>
<BaseDamage>10</BaseDamage>
</c:SidearmWeapon>
<c:Health/>
<c:NetworkComponent/>
<c:Physics>
<Velocity X="2.30999646e-23" Y="0" Z="1.05272533e-23"/>
</c:Physics>
<c:Player>
<MovementSpeed>5</MovementSpeed>
<CurrentWeapon></CurrentWeapon>
</c:Player>
<c:Transform>
<Position X="-0.5" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="PlayerModel">
<Components>
<c:BlendOverride>
<Master>BlendTreeUpper</Master>
<Slave>BlendTreeLower</Slave>
</c:BlendOverride>
<c:Shielded/>
<c:HiddenForLocalPlayer/>
<c:Model>
<GlowIntensity>2.2000000476837158</GlowIntensity>
<Resource>Models/Characters/Assault/AssaultBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Orientation X="0" Y="0.467000008" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="PrimaryAttachment">
<Components>
<c:BoneAttachment>
<BoneName>R_Arm_Weapon_Joint</BoneName>
</c:BoneAttachment>
<c:Spawner>
<EntityFile>Schema/Entities/WeaponAssaultBlueWorld.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.159274966" Y="1.03443384" Z="-0.235393077"/>
<Orientation X="-0.0276949964" Y="-0.0416635424" Z="0.131935105"/>
</c:Transform>
<c:WeaponAttachment>
<Weapon>AssaultWeapon</Weapon>
<Person>
<ThirdPerson/>
</Person>
</c:WeaponAttachment>
</Components>
<Children>
<Entity name="AssaultWeapon">
<Components>
<c:Shielded/>
<c:Model>
<GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
<Children>
<Entity name="ReloadSpawner">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/ReloadEffectWorld.xml</EntityFile>
</c:Spawner>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.00728808995" Y="0.0896582007" Z="-0.643795013"/>
<Orientation X="6.27600002" Y="0.00499999989" Z="0.00600000005"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="-8.41593719e-05" Y="-0.000816107844" Z="0.0612007342"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="SecondaryAttachment">
<Components>
<c:BoneAttachment>
<BoneName>R_Arm_Weapon_Joint</BoneName>
</c:BoneAttachment>
<c:Spawner>
<EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.159274966" Y="1.03443384" Z="-0.235393077"/>
<Orientation X="-0.0276949964" Y="-0.0416635424" Z="0.131935105"/>
</c:Transform>
<c:WeaponAttachment>
<Weapon>SidearmWeapon</Weapon>
<Person>
<ThirdPerson/>
</Person>
</c:WeaponAttachment>
</Components>
<Children/>
</Entity>
<Entity name="BlendTreeLower">
<Components>
<c:Blend>
<Pose1>MovementBlend</Pose1>
<Pose2>JumpDashBlend</Pose2>
<Weight>2.5146881298480398e-63</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="MovementBlend">
<Components>
<c:Blend>
<Pose1>StandMovement</Pose1>
<Pose2>CrouchMovement</Pose2>
<Weight>0</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="CrouchMovement">
<Components>
<c:Blend>
<Pose1>DirectionBlend</Pose1>
<Pose2>Idle</Pose2>
<Weight>1</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="DirectionBlend">
<Components>
<c:Blend>
<Pose1>Walk</Pose1>
<Pose2>StrafeLRBlend</Pose2>
<Weight>0</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<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>CrouchStrafeLeftF</AnimationName>
<Time>0.44988618375479206</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.37720764570557463</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Walk">
<Components>
<c:Animation>
<AnimationName>CrouchWalkF</AnimationName>
<Time>0.15558163088297761</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Idle">
<Components>
<c:Animation>
<AnimationName>CrouchF</AnimationName>
<Time>1.8288091278296688</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="StandMovement">
<Components>
<c:Blend>
<Pose1>DirectionBlend</Pose1>
<Pose2>Idle</Pose2>
<Weight>1</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="DirectionBlend">
<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.84192543677924192</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Run">
<Components>
<c:Animation>
<AnimationName>RunF</AnimationName>
<Time>0.28035050282109175</Time>
<Speed>2</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.88305913822256876</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:Animation>
<AnimationName>StrafeRightF</AnimationName>
<Time>0.96047014705853506</Time>
<Speed>2</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.7574641124802284</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>1.7999999523162842</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="DashBackward">
<Components>
<c:Animation>
<AnimationName>DashBackwardF</AnimationName>
<Time>1</Time>
<Speed>1.7999999523162842</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>1.7999999523162842</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="DashRight">
<Components>
<c:Animation>
<AnimationName>DashRightF</AnimationName>
<Time>1</Time>
<Speed>1.7999999523162842</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="BlendTreeUpper">
<Components>
<c:Blend>
<Pose1>AssaultWeapon</Pose1>
<Pose2>SidearmWeapon</Pose2>
<Weight>0</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="AssaultWeapon">
<Components>
<c:BlendAdditive>
<Adder>Aim</Adder>
<Receiver>WeaponBlend</Receiver>
</c:BlendAdditive>
<c:Transform/>
</Components>
<Children>
<Entity name="WeaponBlend">
<Components>
<c:BlendAdditive>
<Adder>IdleAssault</Adder>
<Receiver>ActionBlend</Receiver>
</c:BlendAdditive>
<c:Transform/>
</Components>
<Children>
<Entity name="ActionBlend">
<Components>
<c:Blend>
<Pose1>Fire</Pose1>
<Pose2>Reload</Pose2>
<Weight>1</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Reload">
<Components>
<c:Animation>
<AnimationName>ReloadSwitchU</AnimationName>
<Speed>0.5</Speed>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Fire">
<Components>
<c:Animation>
<AnimationName>ShootFastRifleU</AnimationName>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="IdleAssault">
<Components>
<c:Animation>
<AnimationName>IdleAssaultRifleU</AnimationName>
<Time>1.4730651229275153</Time>
<Play>true</Play>
<Additive>true</Additive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</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>
</Entity>
<Entity name="SidearmWeapon">
<Components>
<c:BlendAdditive>
<Adder>Aim</Adder>
<Receiver>WeaponBlend</Receiver>
</c:BlendAdditive>
<c:Transform/>
</Components>
<Children>
<Entity name="WeaponBlend">
<Components>
<c:BlendAdditive>
<Adder>IdleSidearm</Adder>
<Receiver>ActionBlend</Receiver>
</c:BlendAdditive>
<c:Transform/>
</Components>
<Children>
<Entity name="ActionBlend">
<Components>
<c:Blend>
<Pose1>Reload</Pose1>
<Pose2>Fire</Pose2>
<Weight>1</Weight>
</c:Blend>
<c:Transform/>
</Components>
<Children>
<Entity name="Reload">
<Components>
<c:Animation>
<AnimationName>ReloadSwitchU</AnimationName>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="Fire">
<Components>
<c:Animation>
<AnimationName>ShootSecWepU</AnimationName>
<Loop>false</Loop>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="IdleSidearm">
<Components>
<c:Animation>
<AnimationName>IdleSecWepU</AnimationName>
<Additive>true</Additive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Aim">
<Components>
<c:Animation>
<AnimationName>AimSecWepA</AnimationName>
<Time>0.5</Time>
<Loop>false</Loop>
<Additive>true</Additive>
</c:Animation>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="Lights">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="Elbow_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0641395152" Y="0.971834779" Z="-0.393912911"/>
<Orientation X="-2.71834111" Y="-1.16788483" Z="-2.30780911"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.119805202" Y="0.0187246669" Z="-0.0205985513"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0430894755" Y="-0.0822322816" Z="0.0446314402"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.311632752" Y="1.00616109" Z="-0.0154332817"/>
<Orientation X="1.7501713" Y="1.40668344" Z="0.63290441"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.119999997" Y="0.0187246669" Z="-0.0205985513"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0430000015" Y="-0.0822322816" Z="0.0446314402"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Head">
<Components>
<c:BoneAttachment>
<BoneName>Head</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0810014606" Y="1.25193644" Z="-0.150023431"/>
<Orientation X="-0.278524429" Y="-0.110433489" Z="-0.180452675"/>
</c:Transform>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.117407471" Y="0.0664995536" Z="-0.00829757564"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.116999999" Y="0.0664995536" Z="-0.00829757564"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_top_left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Top</BoneName>
<PositionOffset X="-0.116000004" Y="0.0500000007" Z="0.0360000022"/>
</c:BoneAttachment>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.188116193" Y="0.722146571" Z="0.020738611"/>
<Orientation X="0.68511039" Y="-0.00414709467" Z="-0.0733199194"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Leg_top_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Top</BoneName>
<PositionOffset X="0.0800000057" Y="0.0730000064" Z="0.064000003"/>
</c:BoneAttachment>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.149692252" Y="0.745154798" Z="0.0894331336"/>
<Orientation X="-0.00521934591" Y="-0.594766259" Z="0.242353484"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Leg_bottom_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Bottomdw</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.121549807" Y="0.396206558" Z="-0.258821368"/>
<Orientation X="0.0123701356" Y="0.0872921124" Z="-0.0923962742"/>
</c:Transform>
</Components>
<Children>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0752567574" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.075000003" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_bottom_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.184227288" Y="0.324282408" Z="0.0380233303"/>
<Orientation X="-0.709708989" Y="-0.647283316" Z="0.337633669"/>
</c:Transform>
</Components>
<Children>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0752567574" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.075000003" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
+47 -5
View File
@@ -8,6 +8,7 @@ EditorSystem::EditorSystem(SystemParams params, IRenderer* renderer, RenderFrame
: System(params) : System(params)
, m_Renderer(renderer) , m_Renderer(renderer)
, m_RenderFrame(renderFrame) , m_RenderFrame(renderFrame)
, m_CamVelocity(0.f)
{ {
m_EditorWorld = new World(); m_EditorWorld = new World();
m_EditorWorldSystemPipeline = new SystemPipeline(m_EditorWorld, m_EventBroker, IsClient, IsServer); m_EditorWorldSystemPipeline = new SystemPipeline(m_EditorWorld, m_EventBroker, IsClient, IsServer);
@@ -83,14 +84,55 @@ void EditorSystem::Update(double dt)
} }
} }
m_EditorWorldSystemPipeline->Update(actualDelta); m_EditorWorldSystemPipeline->Update(actualDelta);
}
ComponentWrapper& cameraTransform = m_EditorCamera["Transform"]; ComponentWrapper& cameraTransform = m_EditorCamera["Transform"];
Field<glm::vec3> ori = cameraTransform["Orientation"]; Field<glm::vec3> ori = cameraTransform["Orientation"];
ori.x(m_EditorCameraInputController->Rotation().x); glm::vec3 newOri;
ori.y(m_EditorCameraInputController->Rotation().y); newOri.x = glm::mix(ori.x(), m_EditorCameraInputController->Rotation().x, 0.05f);
newOri.y = glm::mix(ori.y(), m_EditorCameraInputController->Rotation().y, 0.05f);
//ori.x(m_EditorCameraInputController->Rotation().x);
//ori.y(m_EditorCameraInputController->Rotation().y);
ori.x(newOri.x);
ori.y(newOri.y);
Field<glm::vec3> pos = cameraTransform["Position"]; Field<glm::vec3> pos = cameraTransform["Position"];
pos += m_EditorCameraInputController->Movement() * glm::inverse(glm::quat(ori)) * (float)actualDelta; auto move = m_EditorCameraInputController->Movement();
const float decreaseAccelleration = 3.75f;
const float increaseAccelleration = 5.25f;
if (move.x == 0) {
m_CamVelocity.x -= m_CamVelocity.x * (float)actualDelta * decreaseAccelleration;
//m_CamVelocity.x -= glm::sign(m_CamVelocity.x) * (float)actualDelta * decreaseAccelleration;
if (glm::abs(m_CamVelocity.x) < 0.01f) {
m_CamVelocity.x = 0;
} }
} else {
m_CamVelocity.x += glm::sign(move.x) * (float)actualDelta * increaseAccelleration;
m_CamVelocity.x = glm::max(m_CamVelocity.x, -glm::abs(move.x));
m_CamVelocity.x = glm::min(m_CamVelocity.x, glm::abs(move.x));
}
if (move.y == 0) {
m_CamVelocity.y -= m_CamVelocity.y * (float)actualDelta * decreaseAccelleration;
//m_CamVelocity.y -= glm::sign(m_CamVelocity.y) * (float)actualDelta * decreaseAccelleration;
if (glm::abs(m_CamVelocity.y) < 0.01f) {
m_CamVelocity.y = 0;
}
} else {
m_CamVelocity.y += glm::sign(move.y) * (float)actualDelta * increaseAccelleration;
m_CamVelocity.y = glm::max(m_CamVelocity.y, -glm::abs(move.y));
m_CamVelocity.y = glm::min(m_CamVelocity.y, glm::abs(move.y));
}
if (move.z == 0) {
m_CamVelocity.z -= m_CamVelocity.z * (float)actualDelta * decreaseAccelleration;
//m_CamVelocity.z -= glm::sign(m_CamVelocity.z) * (float)actualDelta * decreaseAccelleration;
if (glm::abs(m_CamVelocity.z) < 0.01f) {
m_CamVelocity.z = 0;
}
} else {
m_CamVelocity.z += glm::sign(move.z) * (float)actualDelta * increaseAccelleration;
m_CamVelocity.z = glm::max(m_CamVelocity.z, -glm::abs(move.z));
m_CamVelocity.z = glm::min(m_CamVelocity.z, glm::abs(move.z));
}
pos += m_CamVelocity * glm::inverse(glm::quat(ori)) * (float)actualDelta;
} }
void EditorSystem::Enable() void EditorSystem::Enable()
@@ -117,11 +159,11 @@ void EditorSystem::Enable()
void EditorSystem::Disable() void EditorSystem::Disable()
{ {
m_EditorCameraInputController->Disable(); //m_EditorCameraInputController->Disable();
m_EventBroker->Publish(Events::LockMouse()); m_EventBroker->Publish(Events::LockMouse());
Events::SetCamera e; Events::SetCamera e;
e.CameraEntity = m_ActualCamera; e.CameraEntity = m_ActualCamera;
m_EventBroker->Publish(e); //m_EventBroker->Publish(e);
m_Enabled = false; m_Enabled = false;
} }
+368
View File
@@ -6,6 +6,7 @@ AnimationSystem::AnimationSystem(SystemParams params)
EVENT_SUBSCRIBE_MEMBER(m_EAutoAnimationBlend, &AnimationSystem::OnAutoAnimationBlend); EVENT_SUBSCRIBE_MEMBER(m_EAutoAnimationBlend, &AnimationSystem::OnAutoAnimationBlend);
EVENT_SUBSCRIBE_MEMBER(m_EEntityDeleted, &AnimationSystem::OnEntityDeleted); EVENT_SUBSCRIBE_MEMBER(m_EEntityDeleted, &AnimationSystem::OnEntityDeleted);
EVENT_SUBSCRIBE_MEMBER(m_ESetBlendWeight, &AnimationSystem::OnSetBlendWeight); EVENT_SUBSCRIBE_MEMBER(m_ESetBlendWeight, &AnimationSystem::OnSetBlendWeight);
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &AnimationSystem::OnInputCommand);
} }
void AnimationSystem::Update(double dt) void AnimationSystem::Update(double dt)
@@ -14,6 +15,19 @@ void AnimationSystem::Update(double dt)
CreateBlendTrees(); CreateBlendTrees();
UpdateWeights(dt); UpdateWeights(dt);
EntityWrapper aimEntity = m_World->GetFirstEntityByName("ThirdPerson").FirstChildByName("Aim");
(Field<double>)aimEntity["Animation"]["Time"] = glm::clamp((const double&)(Field<double>)aimEntity["Animation"]["Time"] + ((aimMove * 0.2f) * dt), 0.0, 1.0);
EntityWrapper aimTextEntity = m_World->GetFirstEntityByName("AimText");
if (aimMove > 0) {
(Field<std::string>)aimTextEntity["Text"]["Content"] = "Up";
} else if (aimMove < 0) {
(Field<std::string>)aimTextEntity["Text"]["Content"] = "Down";
} else {
(Field<std::string>)aimTextEntity["Text"]["Content"] = " ";
}
for(auto& autoBlendQueue : m_AutoBlendQueues) { for(auto& autoBlendQueue : m_AutoBlendQueues) {
autoBlendQueue.second.UpdateTime(dt); autoBlendQueue.second.UpdateTime(dt);
@@ -353,3 +367,357 @@ bool AnimationSystem::OnSetBlendWeight(Events::SetBlendWeight& e)
} }
} }
bool AnimationSystem::OnInputCommand(Events::InputCommand& e)
{
EntityWrapper firstPerson = m_World->GetFirstEntityByName("FirstPerson");
EntityWrapper thirdPerson = m_World->GetFirstEntityByName("ThirdPerson");
EntityWrapper currentBlend = m_World->GetFirstEntityByName("CurrentBlend");
EntityWrapper queuedBlend = m_World->GetFirstEntityByName("QueuedBlend");
EntityWrapper MovementText = m_World->GetFirstEntityByName("MovementText");
if (e.Command == "ClearText") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = " ";
(Field<std::string>)queuedBlend["Text"]["Content"] = " ";
}
}
if(e.Command == "Jump") {
if(e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Jump";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Movement";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.2f;
blendEvent.NodeName = "Jump";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventQueued;
blendEventQueued.RootNode = thirdPerson;
blendEventQueued.Delay = -0.1;
blendEventQueued.Duration = 0.3f;
blendEventQueued.NodeName = "MovementBlend";
blendEventQueued.AnimationEntity = thirdPerson.FirstChildByName("Jump");
m_EventBroker->Publish(blendEventQueued);
}
}
if (e.Command == "DashL") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Dash Left";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Movement";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.2f;
blendEvent.NodeName = "DashLeft";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventQueued;
blendEventQueued.RootNode = thirdPerson;
blendEventQueued.Delay = -0.1;
blendEventQueued.Duration = 0.3f;
blendEventQueued.NodeName = "MovementBlend";
blendEventQueued.AnimationEntity = thirdPerson.FirstChildByName("DashLeft");
m_EventBroker->Publish(blendEventQueued);
}
}
if (e.Command == "DashR") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Dash Right";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Movement";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.2f;
blendEvent.NodeName = "DashRight";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventQueued;
blendEventQueued.RootNode = thirdPerson;
blendEventQueued.Delay = -0.1;
blendEventQueued.Duration = 0.3f;
blendEventQueued.NodeName = "MovementBlend";
blendEventQueued.AnimationEntity = thirdPerson.FirstChildByName("DashRight");
m_EventBroker->Publish(blendEventQueued);
}
}
if (e.Command == "DashF") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Dash Forward";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Movement";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.2f;
blendEvent.NodeName = "DashForward";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventQueued;
blendEventQueued.RootNode = thirdPerson;
blendEventQueued.Delay = -0.1;
blendEventQueued.Duration = 0.3f;
blendEventQueued.NodeName = "MovementBlend";
blendEventQueued.AnimationEntity = thirdPerson.FirstChildByName("DashForward");
m_EventBroker->Publish(blendEventQueued);
}
}
if (e.Command == "DashB") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Dash Backward";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Movement";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.2f;
blendEvent.NodeName = "DashBackward";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventQueued;
blendEventQueued.RootNode = thirdPerson;
blendEventQueued.Delay = -0.1;
blendEventQueued.Duration = 0.3f;
blendEventQueued.NodeName = "MovementBlend";
blendEventQueued.AnimationEntity = thirdPerson.FirstChildByName("DashBackward");
m_EventBroker->Publish(blendEventQueued);
}
}
if (e.Command == "Right") {
if (e.Value > 0) {
(Field<std::string>)MovementText["Text"]["Content"] = "Right";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.3f;
blendEvent.NodeName = "Right";
blendEvent.Start = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Run";
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
} else if (e.Value < 0) {
(Field<std::string>)MovementText["Text"]["Content"] = "Left";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.3f;
blendEvent.NodeName = "Left";
blendEvent.Start = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Run";
blendEventFP.Reverse = true;
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
}
}else if (e.Command == "Up") {
if (e.Value > 0) {
(Field<std::string>)MovementText["Text"]["Content"] = "Forward";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.3f;
if (Crouch) {
blendEvent.NodeName = "Walk";
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Idle";
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
} else {
blendEvent.NodeName = "Run";
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Run";
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
}
blendEvent.Start = true;
m_EventBroker->Publish(blendEvent);
}else if (e.Value < 0) {
(Field<std::string>)MovementText["Text"]["Content"] = "Backward";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.3f;
if(Crouch) {
blendEvent.NodeName = "Walk";
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Idle";
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
} else {
blendEvent.NodeName = "Run";
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Run";
blendEventFP.Reverse = true;
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
}
blendEvent.Start = true;
blendEvent.Reverse = true;
m_EventBroker->Publish(blendEvent);
}
}
if (e.Command == "Idle"){
if (e.Value > 0) {
(Field<std::string>)MovementText["Text"]["Content"] = "Idle";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.5f;
blendEvent.NodeName = "Idle";
blendEvent.Start = true;
blendEvent.Reverse = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.3f;
blendEventFP.NodeName = "Idle";
blendEventFP.Start = true;
m_EventBroker->Publish(blendEventFP);
}
}
if (e.Command == "Crouch") {
if (e.Value > 0) {
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.5f;
blendEvent.NodeName = "CrouchMovement";
blendEvent.Start = true;
blendEvent.Reverse = true;
m_EventBroker->Publish(blendEvent);
Crouch = true;
} else {
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.5f;
blendEvent.NodeName = "StandMovement";
blendEvent.Start = true;
blendEvent.Reverse = true;
m_EventBroker->Publish(blendEvent);
Crouch = false;
}
}
if (e.Command == "Aim") {
aimMove = e.Value;
}
if (e.Command == "Shoot") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Fire";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Idle";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.1f;
blendEvent.NodeName = "Fire";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.1f;
blendEventFP.NodeName = "Fire";
blendEventFP.Start = true;
blendEventFP.Restart = true;
m_EventBroker->Publish(blendEventFP);
}
}
if (e.Command == "Reload") {
if (e.Value > 0) {
(Field<std::string>)currentBlend["Text"]["Content"] = "Reload";
(Field<std::string>)queuedBlend["Text"]["Content"] = "Idle";
Events::AutoAnimationBlend blendEvent;
blendEvent.RootNode = thirdPerson;
blendEvent.Duration = 0.1f;
blendEvent.NodeName = "Reload";
blendEvent.Start = true;
blendEvent.Restart = true;
m_EventBroker->Publish(blendEvent);
Events::AutoAnimationBlend blendEventQ;
blendEventQ.RootNode = thirdPerson;
blendEventQ.Duration = 0.2f;
blendEventQ.Delay = -0.1;
blendEventQ.NodeName = "Fire";
blendEventQ.Start = false;
blendEventQ.Restart = true;
blendEventQ.AnimationEntity = thirdPerson.FirstChildByName("Reload");
m_EventBroker->Publish(blendEventQ);
Events::AutoAnimationBlend blendEventFP;
blendEventFP.RootNode = firstPerson;
blendEventFP.Duration = 0.1f;
blendEventFP.NodeName = "Reload";
blendEventFP.Start = true;
blendEventFP.Restart = true;
m_EventBroker->Publish(blendEventFP);
Events::AutoAnimationBlend blendEventFPQ;
blendEventFPQ.RootNode = firstPerson;
blendEventFPQ.Duration = 0.2f;
blendEventFPQ.Delay = -0.1;
blendEventFPQ.NodeName = "Fire";
blendEventFPQ.Start = false;
blendEventFPQ.Restart = true;
blendEventFPQ.AnimationEntity = thirdPerson.FirstChildByName("Reload");
m_EventBroker->Publish(blendEventFPQ);
}
}
return true;
}
+1
View File
@@ -19,6 +19,7 @@ void Renderer::Initialize()
{ {
m_SSAO_Quality = m_Config->Get<int>("SSAO.Quality", 0); m_SSAO_Quality = m_Config->Get<int>("SSAO.Quality", 0);
m_GLOW_Quality = m_Config->Get<int>("GLOW.Quality", 0); m_GLOW_Quality = m_Config->Get<int>("GLOW.Quality", 0);
m_MSAA_Level = m_Config->Get<unsigned int>("MSAA.Level", 0);
InitializeWindow(); InitializeWindow();
InitializeRenderPasses(); InitializeRenderPasses();