Merge branch 'main' into Atom/dmcdiar/ATOM-15355
This commit is contained in:
@@ -15,9 +15,9 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from ActorSplitsAfterDamage import Tests
|
||||
|
||||
def run():
|
||||
from ActorSplitsAfterDamage import run as internal_run
|
||||
from editor_python_test_tools.utils import Constants
|
||||
def ActorSplitsAfterCapsuleDamage():
|
||||
from ActorSplitsAfterDamage import base_run as internal_run
|
||||
from BlastUtils import Constants
|
||||
|
||||
def CapsuleDamage(target_id, position0):
|
||||
position1 = azlmbr.object.construct('Vector3', position0.x + 1.0, position0.y, position0.z)
|
||||
@@ -30,4 +30,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterCapsuleDamage)
|
||||
|
||||
@@ -22,7 +22,7 @@ class Tests():
|
||||
# fmt: on
|
||||
|
||||
|
||||
def run():
|
||||
def ActorSplitsAfterCollision():
|
||||
|
||||
"""
|
||||
Summary:
|
||||
@@ -60,8 +60,8 @@ def run():
|
||||
import azlmbr.legacy.general as general
|
||||
import azlmbr.bus
|
||||
|
||||
from editor_python_test_tools.utils import CollisionHandler
|
||||
from editor_python_test_tools.utils import BlastNotificationHandler
|
||||
from BlastUtils import CollisionHandler
|
||||
from BlastUtils import BlastNotificationHandler
|
||||
|
||||
# Constants
|
||||
TIMEOUT = 2.0
|
||||
@@ -107,4 +107,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterCollision)
|
||||
|
||||
@@ -20,7 +20,7 @@ class Tests():
|
||||
# fmt: on
|
||||
|
||||
|
||||
def run(damage_func):
|
||||
def base_run(damage_func):
|
||||
|
||||
"""
|
||||
Summary:
|
||||
@@ -56,7 +56,7 @@ def run(damage_func):
|
||||
import azlmbr.legacy.general as general
|
||||
import azlmbr.bus
|
||||
|
||||
from editor_python_test_tools.utils import BlastNotificationHandler
|
||||
from BlastUtils import BlastNotificationHandler
|
||||
|
||||
# Constants
|
||||
TIMEOUT = 2.0
|
||||
|
||||
@@ -15,9 +15,9 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from ActorSplitsAfterDamage import Tests
|
||||
|
||||
def run():
|
||||
from ActorSplitsAfterDamage import run as internal_run
|
||||
from editor_python_test_tools.utils import Constants
|
||||
def ActorSplitsAfterImpactSpreadDamage():
|
||||
from ActorSplitsAfterDamage import base_run as internal_run
|
||||
from BlastUtils import Constants
|
||||
|
||||
def ImpactSpreadDamage(target_id, position):
|
||||
azlmbr.destruction.BlastFamilyDamageRequestBus(azlmbr.bus.Event, "Impact Spread Damage", target_id,
|
||||
@@ -28,4 +28,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterImpactSpreadDamage)
|
||||
|
||||
@@ -15,9 +15,9 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from ActorSplitsAfterDamage import Tests
|
||||
|
||||
def run():
|
||||
from ActorSplitsAfterDamage import run as internal_run
|
||||
from editor_python_test_tools.utils import Constants
|
||||
def ActorSplitsAfterRadialDamage():
|
||||
from ActorSplitsAfterDamage import base_run as internal_run
|
||||
from BlastUtils import Constants
|
||||
|
||||
def RadialDamage(target_id, position):
|
||||
azlmbr.destruction.BlastFamilyDamageRequestBus(azlmbr.bus.Event, "Radial Damage", target_id,
|
||||
@@ -28,4 +28,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterRadialDamage)
|
||||
@@ -15,9 +15,9 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from ActorSplitsAfterDamage import Tests
|
||||
|
||||
def run():
|
||||
from ActorSplitsAfterDamage import run as internal_run
|
||||
from editor_python_test_tools.utils import Constants
|
||||
def ActorSplitsAfterShearDamage():
|
||||
from ActorSplitsAfterDamage import base_run as internal_run
|
||||
from BlastUtils import Constants
|
||||
|
||||
def ShearDamage(target_id, position):
|
||||
normal = azlmbr.object.construct('Vector3', 1.0, 0.0, 0.0)
|
||||
@@ -29,4 +29,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterShearDamage)
|
||||
@@ -15,9 +15,9 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from ActorSplitsAfterDamage import Tests
|
||||
|
||||
def run():
|
||||
from ActorSplitsAfterDamage import run as internal_run
|
||||
from editor_python_test_tools.utils import Constants
|
||||
def ActorSplitsAfterStressDamage():
|
||||
from ActorSplitsAfterDamage import base_run as internal_run
|
||||
from BlastUtils import Constants
|
||||
|
||||
def StressDamage(target_id, position):
|
||||
force = azlmbr.object.construct('Vector3', 0.0, 0.0, -100.0) # Should be enough to break `brittle` objects
|
||||
@@ -28,4 +28,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterStressDamage)
|
||||
|
||||
@@ -15,9 +15,9 @@ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from ActorSplitsAfterDamage import Tests
|
||||
|
||||
def run():
|
||||
from ActorSplitsAfterDamage import run as internal_run
|
||||
from editor_python_test_tools.utils import Constants
|
||||
def ActorSplitsAfterTriangleDamage():
|
||||
from ActorSplitsAfterDamage import base_run as internal_run
|
||||
from BlastUtils import Constants
|
||||
|
||||
def TriangleDamage(target_id, position):
|
||||
# Some points that form a triangle that contains the given position
|
||||
@@ -32,4 +32,8 @@ def run():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
import ImportPathHelper as imports
|
||||
imports.init()
|
||||
|
||||
from editor_python_test_tools.utils import Report
|
||||
Report.start_test(ActorSplitsAfterTriangleDamage)
|
||||
Executable → Regular
@@ -170,7 +170,7 @@ endif()
|
||||
if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
|
||||
ly_add_pytest(
|
||||
NAME AutomatedTesting::BlastTests
|
||||
TEST_SUITE periodic
|
||||
TEST_SUITE main
|
||||
TEST_SERIAL TRUE
|
||||
PATH ${CMAKE_CURRENT_LIST_DIR}/Blast/TestSuite_Active.py
|
||||
TIMEOUT 3600
|
||||
@@ -178,6 +178,7 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
|
||||
Legacy::Editor
|
||||
AZ::AssetProcessor
|
||||
AutomatedTesting.Assets
|
||||
COMPONENT Blast
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
+7
-45
@@ -7,25 +7,10 @@ distribution (the "License"). All use of this software is governed by the Licens
|
||||
or, if provided, by the license below or the license accompanying this file. Do not
|
||||
remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
||||
Hydra script that creates an entity and attaches Atom components to it for test verification.
|
||||
"""
|
||||
|
||||
# This module does a bulk test and update of many components at once.
|
||||
# Each test case is listed below in the format:
|
||||
# "Test Case ID: Test Case Title (URL)"
|
||||
|
||||
# C32078130: Tone Mapper (https://testrail.agscollab.com/index.php?/cases/view/32078130)
|
||||
# C32078129: Light (https://testrail.agscollab.com/index.php?/cases/view/32078129)
|
||||
# C32078131: Radius Weight Modifier (https://testrail.agscollab.com/index.php?/cases/view/32078131)
|
||||
# C32078127: PostFX Layer (https://testrail.agscollab.com/index.php?/cases/view/32078127)
|
||||
# C32078126: Point Light (https://testrail.agscollab.com/index.php?/cases/view/32078126)
|
||||
# C32078125: Physical Sky (https://testrail.agscollab.com/index.php?/cases/view/32078125)
|
||||
# C32078115: Global Skylight (IBL) (https://testrail.agscollab.com/index.php?/cases/view/32078115)
|
||||
# C32078121: Exposure Control (https://testrail.agscollab.com/index.php?/cases/view/32078121)
|
||||
# C32078120: Directional Light (https://testrail.agscollab.com/index.php?/cases/view/32078120)
|
||||
# C32078119: DepthOfField (https://testrail.agscollab.com/index.php?/cases/view/32078119)
|
||||
# C32078118: Decal (https://testrail.agscollab.com/index.php?/cases/view/32078118)
|
||||
# C32078117: Area Light (https://testrail.agscollab.com/index.php?/cases/view/32078117)
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
@@ -41,10 +26,6 @@ sys.path.append(os.path.join(azlmbr.paths.devroot, "AutomatedTesting", "Gem", "P
|
||||
|
||||
import editor_python_test_tools.hydra_editor_utils as hydra
|
||||
from editor_python_test_tools.utils import TestHelper
|
||||
from editor_python_test_tools.editor_test_helper import EditorTestHelper
|
||||
|
||||
|
||||
EditorTestHelper = EditorTestHelper(log_prefix="AtomEditorComponents")
|
||||
|
||||
|
||||
def run():
|
||||
@@ -151,28 +132,6 @@ def run():
|
||||
# Wait for Editor idle loop before executing Python hydra scripts.
|
||||
TestHelper.init_idle()
|
||||
|
||||
# Create a new level.
|
||||
new_level_name = "tmp_level" # Specified in TestAllComponentsBasicTests.py
|
||||
heightmap_resolution = 512
|
||||
heightmap_meters_per_pixel = 1
|
||||
terrain_texture_resolution = 412
|
||||
use_terrain = False
|
||||
|
||||
# Return codes are ECreateLevelResult defined in CryEdit.h
|
||||
return_code = general.create_level_no_prompt(
|
||||
new_level_name, heightmap_resolution, heightmap_meters_per_pixel, terrain_texture_resolution, use_terrain)
|
||||
if return_code == 1:
|
||||
general.log(f"{new_level_name} level already exists")
|
||||
elif return_code == 2:
|
||||
general.log("Failed to create directory")
|
||||
elif return_code == 3:
|
||||
general.log("Directory length is too long")
|
||||
elif return_code != 0:
|
||||
general.log("Unknown error, failed to create level")
|
||||
else:
|
||||
general.log(f"{new_level_name} level created successfully")
|
||||
EditorTestHelper.after_level_load(bypass_viewport_resize=True)
|
||||
|
||||
# Delete all existing entities initially
|
||||
search_filter = azlmbr.entity.SearchFilter()
|
||||
all_entities = entity.SearchBus(azlmbr.bus.Broadcast, "SearchEntities", search_filter)
|
||||
@@ -209,7 +168,7 @@ def run():
|
||||
entity_obj, ["Capsule Shape"], area_light))
|
||||
|
||||
# Decal Component
|
||||
material_asset_path = os.path.join("Materials", "decal", "aiirship_nose_number_decal.material")
|
||||
material_asset_path = os.path.join("Materials", "basic_grey.material")
|
||||
material_asset = asset.AssetCatalogRequestBus(
|
||||
bus.Broadcast, "GetAssetIdByPath", material_asset_path, math.Uuid(), False)
|
||||
ComponentTests(
|
||||
@@ -263,9 +222,12 @@ def run():
|
||||
# Radius Weight Modifier Component
|
||||
ComponentTests("Radius Weight Modifier")
|
||||
|
||||
# Spot Light Component
|
||||
# Light Component
|
||||
ComponentTests("Light")
|
||||
|
||||
# Display Mapper Component
|
||||
ComponentTests("Display Mapper")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run()
|
||||
|
||||
@@ -9,35 +9,13 @@ remove or modify any license notices. This file is distributed on an "AS IS" BAS
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import os
|
||||
import pytest
|
||||
|
||||
import ly_test_tools.environment.file_system as file_system
|
||||
|
||||
import editor_python_test_tools.hydra_test_utils as hydra
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
EDITOR_TIMEOUT = 60
|
||||
TEST_DIRECTORY = os.path.join(os.path.dirname(__file__), "atom_hydra_scripts")
|
||||
|
||||
|
||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
||||
@pytest.mark.parametrize("level", ["tmp_level"])
|
||||
@pytest.mark.parametrize("level", ["auto_test"])
|
||||
class TestAtomEditorComponents(object):
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup_teardown(self, request, workspace, project, level):
|
||||
# Cleanup our temp level
|
||||
file_system.delete(
|
||||
[os.path.join(workspace.paths.engine_root(), project, "Levels", "AtomLevels", level)], True, True)
|
||||
|
||||
def teardown():
|
||||
# Cleanup our temp level
|
||||
file_system.delete(
|
||||
[os.path.join(workspace.paths.engine_root(), project, "Levels", "AtomLevels", level)], True, True)
|
||||
|
||||
request.addfinalizer(teardown)
|
||||
|
||||
# It requires at least one test
|
||||
def test_Dummy(self, request, editor, level, workspace, project, launcher_platform):
|
||||
|
||||
@@ -11,36 +11,24 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
||||
import logging
|
||||
import os
|
||||
import pytest
|
||||
|
||||
import ly_test_tools.environment.file_system as file_system
|
||||
import pytest
|
||||
|
||||
import editor_python_test_tools.hydra_test_utils as hydra
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
EDITOR_TIMEOUT = 60
|
||||
EDITOR_TIMEOUT = 120
|
||||
TEST_DIRECTORY = os.path.join(os.path.dirname(__file__), "atom_hydra_scripts")
|
||||
|
||||
|
||||
@pytest.mark.parametrize("project", ["AutomatedTesting"])
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
||||
@pytest.mark.parametrize("level", ["tmp_level"])
|
||||
@pytest.mark.parametrize("level", ["auto_test"])
|
||||
class TestAtomEditorComponents(object):
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup_teardown(self, request, workspace, project, level):
|
||||
# Cleanup our temp level
|
||||
file_system.delete(
|
||||
[os.path.join(workspace.paths.engine_root(), project, "Levels", "AtomLevels", level)], True, True)
|
||||
|
||||
def teardown():
|
||||
# Cleanup our temp level
|
||||
file_system.delete(
|
||||
[os.path.join(workspace.paths.engine_root(), project, "Levels", "AtomLevels", level)], True, True)
|
||||
|
||||
request.addfinalizer(teardown)
|
||||
|
||||
@pytest.mark.test_case_id(
|
||||
"C32078130", # Tone Mapper
|
||||
"C32078117", # Area Light
|
||||
"C32078130", # Display Mapper
|
||||
"C32078129", # Light
|
||||
"C32078131", # Radius Weight Modifier
|
||||
"C32078127", # PostFX Layer
|
||||
@@ -198,6 +186,18 @@ class TestAtomEditorComponents(object):
|
||||
"Light_test: Entity deleted: True",
|
||||
"Light_test: UNDO entity deletion works: True",
|
||||
"Light_test: REDO entity deletion works: True",
|
||||
# Display Mapper Component
|
||||
"Display Mapper Entity successfully created",
|
||||
"Display Mapper_test: Component added to the entity: True",
|
||||
"Display Mapper_test: Component removed after UNDO: True",
|
||||
"Display Mapper_test: Component added after REDO: True",
|
||||
"Display Mapper_test: Entered game mode: True",
|
||||
"Display Mapper_test: Exit game mode: True",
|
||||
"Display Mapper_test: Entity is hidden: True",
|
||||
"Display Mapper_test: Entity is shown: True",
|
||||
"Display Mapper_test: Entity deleted: True",
|
||||
"Display Mapper_test: UNDO entity deletion works: True",
|
||||
"Display Mapper_test: REDO entity deletion works: True",
|
||||
]
|
||||
|
||||
unexpected_lines = [
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ class TestDynamicSliceInstanceSpawner(object):
|
||||
return console
|
||||
|
||||
@pytest.mark.test_case_id("C28851763")
|
||||
@pytest.mark.SUITE_main
|
||||
@pytest.mark.SUITE_sandbox
|
||||
@pytest.mark.parametrize("launcher_platform", ['windows_editor'])
|
||||
def test_DynamicSliceInstanceSpawner_DynamicSliceSpawnerWorks(self, request, editor, level, workspace, project,
|
||||
launcher_platform):
|
||||
|
||||
@@ -36,8 +36,13 @@ class TestEmptyInstanceSpawner(object):
|
||||
|
||||
file_system.delete([os.path.join(workspace.paths.engine_root(), project, "Levels", level)], True, True)
|
||||
|
||||
@pytest.mark.test_case_id("C28851762")
|
||||
# Main suite needs at least one test
|
||||
@pytest.mark.SUITE_main
|
||||
def test_EmptyInstanceSpawner_Dummy(self, request, editor, level, workspace, project, launcher_platform):
|
||||
pass
|
||||
|
||||
@pytest.mark.test_case_id("C28851762")
|
||||
@pytest.mark.SUITE_sandbox
|
||||
def test_EmptyInstanceSpawner_EmptySpawnerWorks(self, request, editor, level, launcher_platform):
|
||||
cfg_args = [level]
|
||||
|
||||
|
||||
@@ -269,6 +269,8 @@ class TestAutomation(TestAutomationBase):
|
||||
from . import C18977601_Material_FrictionCombinePriority as test_module
|
||||
self._run_test(request, workspace, editor, test_module)
|
||||
|
||||
@pytest.mark.xfail(
|
||||
reason="Something with the CryRenderer disabling is causing this test to fail now.")
|
||||
@revert_physics_config
|
||||
def test_C13895144_Ragdoll_ChangeLevel(self, request, workspace, editor, launcher_platform):
|
||||
from . import C13895144_Ragdoll_ChangeLevel as test_module
|
||||
|
||||
+3884
-3780
File diff suppressed because it is too large
Load Diff
+1646
-1595
File diff suppressed because it is too large
Load Diff
+1307
-1265
File diff suppressed because it is too large
Load Diff
+707
-666
File diff suppressed because it is too large
Load Diff
+1040
-1008
File diff suppressed because it is too large
Load Diff
+907
-874
File diff suppressed because it is too large
Load Diff
@@ -78,7 +78,7 @@ namespace Physics
|
||||
float m_minimumMovementDistance = 0.001f; //!< To avoid jittering, the controller will not attempt to move distances below this.
|
||||
float m_maximumSpeed = 100.0f; //!< If the accumulated requested velocity for a tick exceeds this magnitude, it will be clamped.
|
||||
AZStd::string m_colliderTag; //!< Used to identify the collider associated with the character controller.
|
||||
AZStd::shared_ptr<Physics::ShapeConfiguration> m_shapeConfig = nullptr; //!< The shape to use when creating the character controller.
|
||||
AZStd::shared_ptr<Physics::ShapeConfiguration> m_shapeConfig; //!< The shape to use when creating the character controller.
|
||||
AZStd::vector<AZStd::shared_ptr<Physics::Shape>> m_colliders; //!< The list of colliders to attach to the character controller.
|
||||
};
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace AzPhysics
|
||||
|
||||
//! Flag to determine if the body is part of the simulation.
|
||||
//! When true the body will be affected by any forces, collisions, and found with scene queries.
|
||||
bool m_simulating = true;
|
||||
bool m_simulating = false;
|
||||
|
||||
//! Helper functions for setting user data.
|
||||
//! @param userData Can be a pointer to any type as internally will be cast to a void*. Object lifetime not managed by the SimulatedBody.
|
||||
|
||||
+1
@@ -46,6 +46,7 @@ namespace AzPhysics
|
||||
->Field("orientation", &SimulatedBodyConfiguration::m_orientation)
|
||||
->Field("scale", &SimulatedBodyConfiguration::m_scale)
|
||||
->Field("entityId", &SimulatedBodyConfiguration::m_entityId)
|
||||
->Field("startSimulationEnabled", &SimulatedBodyConfiguration::m_startSimulationEnabled)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -39,6 +39,7 @@ namespace AzPhysics
|
||||
AZ::Vector3 m_position = AZ::Vector3::CreateZero();
|
||||
AZ::Quaternion m_orientation = AZ::Quaternion::CreateIdentity();
|
||||
AZ::Vector3 m_scale = AZ::Vector3::CreateOne();
|
||||
bool m_startSimulationEnabled = true;
|
||||
|
||||
// Entity/object association.
|
||||
AZ::EntityId m_entityId = AZ::EntityId(AZ::EntityId::InvalidEntityId);
|
||||
|
||||
@@ -52,6 +52,11 @@ namespace Physics
|
||||
}
|
||||
}
|
||||
|
||||
RagdollConfiguration::RagdollConfiguration()
|
||||
{
|
||||
m_startSimulationEnabled = false; //ragdolls do not start enabled.
|
||||
}
|
||||
|
||||
void RagdollConfiguration::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context);
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
|
||||
namespace Physics
|
||||
{
|
||||
using ParentIndices = AZStd::vector<size_t>;
|
||||
|
||||
class RagdollNodeConfiguration
|
||||
: public AzPhysics::RigidBodyConfiguration
|
||||
{
|
||||
@@ -46,7 +48,7 @@ namespace Physics
|
||||
AZ_RTTI(RagdollConfiguration, "{7C96D332-61D8-4C58-A2BF-707716D38D14}", AzPhysics::SimulatedBodyConfiguration);
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
RagdollConfiguration() = default;
|
||||
RagdollConfiguration();
|
||||
explicit RagdollConfiguration(const RagdollConfiguration& settings) = default;
|
||||
|
||||
RagdollNodeConfiguration* FindNodeConfigByName(const AZStd::string& nodeName) const;
|
||||
@@ -56,6 +58,8 @@ namespace Physics
|
||||
|
||||
AZStd::vector<RagdollNodeConfiguration> m_nodes;
|
||||
CharacterColliderConfiguration m_colliders;
|
||||
RagdollState m_initialState;
|
||||
ParentIndices m_parentIndices;
|
||||
};
|
||||
|
||||
/// Represents a single rigid part of a ragdoll.
|
||||
@@ -79,7 +83,7 @@ namespace Physics
|
||||
{
|
||||
public:
|
||||
AZ_CLASS_ALLOCATOR(Ragdoll, AZ::SystemAllocator, 0);
|
||||
AZ_RTTI(Ragdoll, "{01F09602-80EC-4693-A0E7-C2719239044B}", AzPhysics::SimulatedBody);
|
||||
AZ_RTTI(Physics::Ragdoll, "{01F09602-80EC-4693-A0E7-C2719239044B}", AzPhysics::SimulatedBody);
|
||||
virtual ~Ragdoll() = default;
|
||||
|
||||
/// Inserts the ragdoll into the physics simulation.
|
||||
|
||||
+33
-29
@@ -63,7 +63,7 @@ AZ_POP_DISABLE_WARNING
|
||||
|
||||
#include <UI/PropertyEditor/Model/AssetCompleterModel.h>
|
||||
#include <UI/PropertyEditor/View/AssetCompleterListView.h>
|
||||
#include <UI/PropertyEditor/ThumbnailDropDown.h>
|
||||
#include <UI/PropertyEditor/ThumbnailPropertyCtrl.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
@@ -93,15 +93,11 @@ namespace AzToolsFramework
|
||||
|
||||
setAcceptDrops(true);
|
||||
|
||||
m_thumbnail = new Thumbnailer::ThumbnailWidget(this);
|
||||
m_thumbnail->setFixedSize(QSize(24, 24));
|
||||
m_thumbnail = new ThumbnailPropertyCtrl(this);
|
||||
m_thumbnail->setFixedSize(QSize(40, 24));
|
||||
m_thumbnail->setVisible(false);
|
||||
|
||||
m_thumbnailDropDown = new ThumbnailDropDown(this);
|
||||
m_thumbnailDropDown->setFixedSize(QSize(40, 24));
|
||||
m_thumbnailDropDown->setVisible(false);
|
||||
|
||||
connect(m_thumbnailDropDown, &ThumbnailDropDown::clicked, this, &PropertyAssetCtrl::OnEditButtonClicked);
|
||||
connect(m_thumbnail, &ThumbnailPropertyCtrl::clicked, this, &PropertyAssetCtrl::OnThumbnailClicked);
|
||||
|
||||
m_editButton = new QToolButton(this);
|
||||
m_editButton->setAutoRaise(true);
|
||||
@@ -112,7 +108,6 @@ namespace AzToolsFramework
|
||||
connect(m_editButton, &QToolButton::clicked, this, &PropertyAssetCtrl::OnEditButtonClicked);
|
||||
|
||||
pLayout->addWidget(m_thumbnail);
|
||||
pLayout->addWidget(m_thumbnailDropDown);
|
||||
pLayout->addWidget(m_browseEdit);
|
||||
pLayout->addWidget(m_editButton);
|
||||
|
||||
@@ -188,6 +183,17 @@ namespace AzToolsFramework
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyAssetCtrl::OnThumbnailClicked()
|
||||
{
|
||||
const AZ::Data::AssetId assetID = GetCurrentAssetID();
|
||||
if (m_thumbnailCallback)
|
||||
{
|
||||
AZ_Error("Asset Property", m_editNotifyTarget, "No notification target set for edit callback.");
|
||||
m_thumbnailCallback->Invoke(m_editNotifyTarget, assetID, GetCurrentAssetType());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyAssetCtrl::OnCompletionModelReset()
|
||||
{
|
||||
if (!m_completerIsActive)
|
||||
@@ -1091,10 +1097,10 @@ namespace AzToolsFramework
|
||||
void PropertyAssetCtrl::UpdateThumbnail()
|
||||
{
|
||||
m_thumbnail->setVisible(m_showThumbnail);
|
||||
m_thumbnailDropDown->setVisible(m_showThumbnailDropDown);
|
||||
|
||||
if (m_showThumbnail || m_showThumbnailDropDown)
|
||||
if (m_showThumbnail)
|
||||
{
|
||||
m_thumbnail->ShowDropDownArrow(m_showThumbnailDropDownButton);
|
||||
const AZ::Data::AssetId assetID = GetCurrentAssetID();
|
||||
if (assetID.IsValid())
|
||||
{
|
||||
@@ -1112,17 +1118,12 @@ namespace AzToolsFramework
|
||||
{
|
||||
m_thumbnail->SetThumbnailKey(thumbnailKey, Thumbnailer::ThumbnailContext::DefaultContext);
|
||||
}
|
||||
if (m_showThumbnailDropDown)
|
||||
{
|
||||
m_thumbnailDropDown->SetThumbnailKey(thumbnailKey, Thumbnailer::ThumbnailContext::DefaultContext);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_thumbnail->ClearThumbnail();
|
||||
m_thumbnailDropDown->ClearThumbnail();
|
||||
}
|
||||
|
||||
void PropertyAssetCtrl::SetClearButtonEnabled(bool enable)
|
||||
@@ -1156,14 +1157,19 @@ namespace AzToolsFramework
|
||||
return m_showThumbnail;
|
||||
}
|
||||
|
||||
void PropertyAssetCtrl::SetShowThumbnailDropDown(bool enable)
|
||||
void PropertyAssetCtrl::SetShowThumbnailDropDownButton(bool enable)
|
||||
{
|
||||
m_showThumbnailDropDown = enable;
|
||||
m_showThumbnailDropDownButton = enable;
|
||||
}
|
||||
|
||||
bool PropertyAssetCtrl::GetShowThumbnailDropDown() const
|
||||
bool PropertyAssetCtrl::GetShowThumbnailDropDownButton() const
|
||||
{
|
||||
return m_showThumbnailDropDown;
|
||||
return m_showThumbnailDropDownButton;
|
||||
}
|
||||
|
||||
void PropertyAssetCtrl::SetThumbnailCallback(EditCallbackType* editNotifyCallback)
|
||||
{
|
||||
m_thumbnailCallback = editNotifyCallback;
|
||||
}
|
||||
|
||||
const AZ::Uuid& AssetPropertyHandlerDefault::GetHandledType() const
|
||||
@@ -1277,23 +1283,21 @@ namespace AzToolsFramework
|
||||
}
|
||||
else if (attrib == AZ_CRC_CE("Thumbnail"))
|
||||
{
|
||||
bool showThumbnail = false;
|
||||
if (attrValue->Read<bool>(showThumbnail))
|
||||
{
|
||||
GUI->SetShowThumbnail(showThumbnail);
|
||||
}
|
||||
GUI->SetShowThumbnail(true);
|
||||
}
|
||||
else if (attrib == AZ_CRC_CE("ThumbnailWithDropDown"))
|
||||
else if (attrib == AZ_CRC_CE("ThumbnailCallback"))
|
||||
{
|
||||
PropertyAssetCtrl::EditCallbackType* func = azdynamic_cast<PropertyAssetCtrl::EditCallbackType*>(attrValue->GetAttribute());
|
||||
if (func)
|
||||
{
|
||||
GUI->SetShowThumbnailDropDown(true);
|
||||
GUI->SetEditNotifyCallback(func);
|
||||
GUI->SetShowThumbnail(true);
|
||||
GUI->SetShowThumbnailDropDownButton(true);
|
||||
GUI->SetThumbnailCallback(func);
|
||||
}
|
||||
else
|
||||
{
|
||||
GUI->SetEditNotifyCallback(nullptr);
|
||||
GUI->SetShowThumbnailDropDownButton(false);
|
||||
GUI->SetThumbnailCallback(nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
-7
@@ -45,7 +45,7 @@ namespace AzToolsFramework
|
||||
{
|
||||
class AssetCompleterModel;
|
||||
class AssetCompleterListView;
|
||||
class ThumbnailDropDown;
|
||||
class ThumbnailPropertyCtrl;
|
||||
|
||||
namespace Thumbnailer
|
||||
{
|
||||
@@ -95,8 +95,7 @@ namespace AzToolsFramework
|
||||
void OnAssetIDChanged(AZ::Data::AssetId newAssetID);
|
||||
|
||||
protected:
|
||||
ThumbnailDropDown* m_thumbnailDropDown = nullptr;
|
||||
Thumbnailer::ThumbnailWidget* m_thumbnail = nullptr;
|
||||
ThumbnailPropertyCtrl* m_thumbnail = nullptr;
|
||||
QPushButton* m_errorButton = nullptr;
|
||||
QToolButton* m_editButton = nullptr;
|
||||
|
||||
@@ -157,8 +156,8 @@ namespace AzToolsFramework
|
||||
bool m_showProductAssetName = true;
|
||||
|
||||
bool m_showThumbnail = false;
|
||||
|
||||
bool m_showThumbnailDropDown = false;
|
||||
bool m_showThumbnailDropDownButton = false;
|
||||
EditCallbackType* m_thumbnailCallback = nullptr;
|
||||
|
||||
// ! Default suffix used in the field's placeholder text when a default value is set.
|
||||
const char* m_DefaultSuffix = " (default)";
|
||||
@@ -209,8 +208,9 @@ namespace AzToolsFramework
|
||||
|
||||
void SetShowThumbnail(bool enable);
|
||||
bool GetShowThumbnail() const;
|
||||
void SetShowThumbnailDropDown(bool enable);
|
||||
bool GetShowThumbnailDropDown() const;
|
||||
void SetShowThumbnailDropDownButton(bool enable);
|
||||
bool GetShowThumbnailDropDownButton() const;
|
||||
void SetThumbnailCallback(EditCallbackType* editNotifyCallback);
|
||||
|
||||
void SetSelectedAssetID(const AZ::Data::AssetId& newID);
|
||||
void SetCurrentAssetType(const AZ::Data::AssetType& newType);
|
||||
@@ -222,6 +222,7 @@ namespace AzToolsFramework
|
||||
void UpdateAssetDisplay();
|
||||
void OnLineEditFocus(bool focus);
|
||||
virtual void OnEditButtonClicked();
|
||||
void OnThumbnailClicked();
|
||||
void OnCompletionModelReset();
|
||||
void OnAutocomplete(const QModelIndex& index);
|
||||
void OnTextChange(const QString& text);
|
||||
|
||||
+41
-9
@@ -19,12 +19,14 @@ AZ_PUSH_DISABLE_WARNING(4251 4800, "-Wunknown-warning-option") // 4251: 'QRawFon
|
||||
#include <QPainter>
|
||||
#include <UI/UICore/AspectRatioAwarePixmapWidget.hxx>
|
||||
#include <Thumbnails/ThumbnailWidget.h>
|
||||
#include <QApplication>
|
||||
AZ_POP_DISABLE_WARNING
|
||||
#include "ThumbnailDropDown.h"
|
||||
#include "ThumbnailPropertyCtrl.h"
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
ThumbnailDropDown::ThumbnailDropDown(QWidget* parent)
|
||||
|
||||
ThumbnailPropertyCtrl::ThumbnailPropertyCtrl(QWidget* parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
QHBoxLayout* pLayout = new QHBoxLayout();
|
||||
@@ -37,6 +39,7 @@ namespace AzToolsFramework
|
||||
m_dropDownArrow = new AspectRatioAwarePixmapWidget(this);
|
||||
m_dropDownArrow->setPixmap(QPixmap(":/stylesheet/img/triangle0.png"));
|
||||
m_dropDownArrow->setFixedSize(QSize(8, 24));
|
||||
ShowDropDownArrow(false);
|
||||
|
||||
m_emptyThumbnail = new QLabel(this);
|
||||
m_emptyThumbnail->setPixmap(QPixmap(":/stylesheet/img/line.png"));
|
||||
@@ -51,19 +54,33 @@ namespace AzToolsFramework
|
||||
setLayout(pLayout);
|
||||
}
|
||||
|
||||
void ThumbnailDropDown::SetThumbnailKey(Thumbnailer::SharedThumbnailKey key, const char* contextName)
|
||||
void ThumbnailPropertyCtrl::SetThumbnailKey(Thumbnailer::SharedThumbnailKey key, const char* contextName)
|
||||
{
|
||||
m_key = key;
|
||||
m_emptyThumbnail->setVisible(false);
|
||||
m_thumbnail->SetThumbnailKey(key, contextName);
|
||||
}
|
||||
|
||||
void ThumbnailDropDown::ClearThumbnail()
|
||||
void ThumbnailPropertyCtrl::ClearThumbnail()
|
||||
{
|
||||
m_emptyThumbnail->setVisible(true);
|
||||
m_thumbnail->ClearThumbnail();
|
||||
}
|
||||
|
||||
bool ThumbnailDropDown::event(QEvent* e)
|
||||
void ThumbnailPropertyCtrl::ShowDropDownArrow(bool visible)
|
||||
{
|
||||
if (visible)
|
||||
{
|
||||
setFixedSize(QSize(40, 24));
|
||||
}
|
||||
else
|
||||
{
|
||||
setFixedSize(QSize(24, 24));
|
||||
}
|
||||
m_dropDownArrow->setVisible(visible);
|
||||
}
|
||||
|
||||
bool ThumbnailPropertyCtrl::event(QEvent* e)
|
||||
{
|
||||
if (isEnabled())
|
||||
{
|
||||
@@ -77,7 +94,7 @@ namespace AzToolsFramework
|
||||
return QWidget::event(e);
|
||||
}
|
||||
|
||||
void ThumbnailDropDown::paintEvent(QPaintEvent* e)
|
||||
void ThumbnailPropertyCtrl::paintEvent(QPaintEvent* e)
|
||||
{
|
||||
QPainter p(this);
|
||||
QRect targetRect(QPoint(), QSize(40, 24));
|
||||
@@ -85,17 +102,32 @@ namespace AzToolsFramework
|
||||
QWidget::paintEvent(e);
|
||||
}
|
||||
|
||||
void ThumbnailDropDown::enterEvent(QEvent* e)
|
||||
void ThumbnailPropertyCtrl::enterEvent(QEvent* e)
|
||||
{
|
||||
m_dropDownArrow->setPixmap(QPixmap(":/stylesheet/img/triangle0_highlighted.png"));
|
||||
if (!m_thumbnailEnlarged && m_key)
|
||||
{
|
||||
QPoint position = mapToGlobal(pos() - QPoint(185, 0));
|
||||
QSize size(180, 180);
|
||||
m_thumbnailEnlarged.reset(new Thumbnailer::ThumbnailWidget());
|
||||
m_thumbnailEnlarged->setFixedSize(size);
|
||||
m_thumbnailEnlarged->move(position);
|
||||
m_thumbnailEnlarged->setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
|
||||
m_thumbnailEnlarged->SetThumbnailKey(m_key);
|
||||
m_thumbnailEnlarged->show();
|
||||
}
|
||||
QWidget::enterEvent(e);
|
||||
}
|
||||
|
||||
void ThumbnailDropDown::leaveEvent(QEvent* e)
|
||||
void ThumbnailPropertyCtrl::leaveEvent(QEvent* e)
|
||||
{
|
||||
m_dropDownArrow->setPixmap(QPixmap(":/stylesheet/img/triangle0.png"));
|
||||
if (m_thumbnailEnlarged)
|
||||
{
|
||||
m_thumbnailEnlarged.reset();
|
||||
}
|
||||
QWidget::leaveEvent(e);
|
||||
}
|
||||
}
|
||||
|
||||
#include "UI/PropertyEditor/moc_ThumbnailDropDown.cpp"
|
||||
#include "UI/PropertyEditor/moc_ThumbnailPropertyCtrl.cpp"
|
||||
+7
-2
@@ -30,17 +30,20 @@ namespace AzToolsFramework
|
||||
class ThumbnailWidget;
|
||||
}
|
||||
|
||||
class ThumbnailDropDown : public QWidget
|
||||
//! Used by PropertyAssetCtrl to display thumbnail preview of the asset as well as additional drop-down actions
|
||||
class ThumbnailPropertyCtrl : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ThumbnailDropDown(QWidget* parent = nullptr);
|
||||
explicit ThumbnailPropertyCtrl(QWidget* parent = nullptr);
|
||||
|
||||
//! Call this to set what thumbnail widget will display
|
||||
void SetThumbnailKey(Thumbnailer::SharedThumbnailKey key, const char* contextName = "Default");
|
||||
//! Remove current thumbnail
|
||||
void ClearThumbnail();
|
||||
|
||||
void ShowDropDownArrow(bool visible);
|
||||
|
||||
bool event(QEvent* e) override;
|
||||
|
||||
Q_SIGNALS:
|
||||
@@ -52,7 +55,9 @@ namespace AzToolsFramework
|
||||
void leaveEvent(QEvent* e) override;
|
||||
|
||||
private:
|
||||
Thumbnailer::SharedThumbnailKey m_key;
|
||||
Thumbnailer::ThumbnailWidget* m_thumbnail = nullptr;
|
||||
QScopedPointer<Thumbnailer::ThumbnailWidget> m_thumbnailEnlarged;
|
||||
QLabel* m_emptyThumbnail = nullptr;
|
||||
AspectRatioAwarePixmapWidget* m_dropDownArrow = nullptr;
|
||||
};
|
||||
@@ -417,8 +417,8 @@ set(FILES
|
||||
UI/PropertyEditor/GrowTextEdit.cpp
|
||||
UI/PropertyEditor/MultiLineTextEditHandler.h
|
||||
UI/PropertyEditor/MultiLineTextEditHandler.cpp
|
||||
UI/PropertyEditor/ThumbnailDropDown.h
|
||||
UI/PropertyEditor/ThumbnailDropDown.cpp
|
||||
UI/PropertyEditor/ThumbnailPropertyCtrl.h
|
||||
UI/PropertyEditor/ThumbnailPropertyCtrl.cpp
|
||||
UI/Slice/SlicePushWidget.cpp
|
||||
UI/Slice/SlicePushWidget.hxx
|
||||
UI/Slice/SliceOverridesNotificationWindow.cpp
|
||||
|
||||
@@ -1,187 +1,64 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates, or
|
||||
* a third party where indicated.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates, or
|
||||
* a third party where indicated.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "EditorDefs.h"
|
||||
|
||||
#include "PropertyMotionCtrl.h"
|
||||
|
||||
// Qt
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QToolButton>
|
||||
|
||||
// AzToolsFramework
|
||||
#include <AzToolsFramework/AssetBrowser/AssetSelectionModel.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
#include <AzToolsFramework/AssetBrowser/AssetSelectionModel.h>
|
||||
|
||||
|
||||
MotionPropertyCtrl::MotionPropertyCtrl(QWidget *pParent)
|
||||
: QWidget(pParent)
|
||||
QWidget* MotionPropertyWidgetHandler::CreateGUI(QWidget* pParent)
|
||||
{
|
||||
m_motionLabel = new QLabel;
|
||||
|
||||
m_pBrowseButton = new QToolButton;
|
||||
m_pBrowseButton->setIcon(QIcon(":/reflectedPropertyCtrl/img/file_browse.png"));
|
||||
m_pApplyButton = new QToolButton;
|
||||
m_pApplyButton->setIcon(QIcon(":/reflectedPropertyCtrl/img/apply.png"));
|
||||
|
||||
m_pApplyButton->setFocusPolicy(Qt::StrongFocus);
|
||||
m_pBrowseButton->setFocusPolicy(Qt::StrongFocus);
|
||||
|
||||
QHBoxLayout *pLayout = new QHBoxLayout(this);
|
||||
pLayout->setContentsMargins(0, 0, 0, 0);
|
||||
pLayout->addWidget(m_motionLabel, 1);
|
||||
pLayout->addWidget(m_pBrowseButton);
|
||||
pLayout->addWidget(m_pApplyButton);
|
||||
|
||||
connect(m_pBrowseButton, &QAbstractButton::clicked, this, &MotionPropertyCtrl::OnBrowseClicked);
|
||||
connect(m_pApplyButton, &QAbstractButton::clicked, this, &MotionPropertyCtrl::OnApplyClicked);
|
||||
};
|
||||
|
||||
MotionPropertyCtrl::~MotionPropertyCtrl()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void MotionPropertyCtrl::SetValue(const CReflectedVarMotion &motion)
|
||||
{
|
||||
m_motion = motion;
|
||||
SetLabelText(motion.m_motion);
|
||||
}
|
||||
|
||||
CReflectedVarMotion MotionPropertyCtrl::value() const
|
||||
{
|
||||
return m_motion;
|
||||
}
|
||||
|
||||
void MotionPropertyCtrl::OnBrowseClicked()
|
||||
{
|
||||
|
||||
static AZ::Data::AssetType emotionFXMotionAssetType("{00494B8E-7578-4BA2-8B28-272E90680787}"); // from MotionAsset.h in EMotionFX Gem
|
||||
|
||||
// Request the AssetBrowser Dialog and set a type filter
|
||||
AssetSelectionModel selection = AssetSelectionModel::AssetTypeSelection(emotionFXMotionAssetType);
|
||||
selection.SetSelectedAssetId(m_motion.m_assetId);
|
||||
AzToolsFramework::EditorRequests::Bus::Broadcast(&AzToolsFramework::EditorRequests::BrowseForAssets, selection);
|
||||
if (selection.IsValid())
|
||||
{
|
||||
auto product = azrtti_cast<const ProductAssetBrowserEntry*>(selection.GetResult());
|
||||
if (product != nullptr)
|
||||
{
|
||||
m_motion.m_motion = product->GetRelativePath();
|
||||
m_motion.m_assetId = product->GetAssetId();
|
||||
SetLabelText(m_motion.m_motion);
|
||||
emit ValueChanged(m_motion);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Might be able to delete this function
|
||||
void MotionPropertyCtrl::OnApplyClicked()
|
||||
{
|
||||
#if 0
|
||||
CUIEnumerations &roGeneralProxy = CUIEnumerations::GetUIEnumerationsInstance();
|
||||
QStringList cSelectedMotions;
|
||||
size_t nTotalMotions(0);
|
||||
size_t nCurrentMotion(0);
|
||||
|
||||
QString combinedString = GetIEditor()->GetResourceSelectorHost()->GetGlobalSelection("motion");
|
||||
SplitString(combinedString, cSelectedMotions, ',');
|
||||
|
||||
nTotalMotions = cSelectedMotions.size();
|
||||
for (nCurrentMotion = 0; nCurrentMotion < nTotalMotions; ++nCurrentMotion)
|
||||
{
|
||||
QString& rstrCurrentAnimAction = cSelectedMotions[nCurrentMotion];
|
||||
if (!rstrCurrentAnimAction.isEmpty())
|
||||
{
|
||||
m_motion.m_motion = rstrCurrentAnimAction.toLatin1().data();
|
||||
SetLabelText(m_motion.m_motion);
|
||||
emit ValueChanged(m_motion);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
QWidget* MotionPropertyCtrl::GetFirstInTabOrder()
|
||||
{
|
||||
return m_pBrowseButton;
|
||||
}
|
||||
QWidget* MotionPropertyCtrl::GetLastInTabOrder()
|
||||
{
|
||||
return m_pApplyButton;
|
||||
}
|
||||
|
||||
void MotionPropertyCtrl::UpdateTabOrder()
|
||||
{
|
||||
setTabOrder(m_pBrowseButton, m_pApplyButton);
|
||||
}
|
||||
|
||||
void MotionPropertyCtrl::SetLabelText(const AZStd::string& motion)
|
||||
{
|
||||
if (!motion.empty())
|
||||
{
|
||||
AZStd::string filename;
|
||||
if (AzFramework::StringFunc::Path::GetFileName(motion.c_str(), filename))
|
||||
{
|
||||
m_motionLabel->setText(filename.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
m_motionLabel->setText(motion.c_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_motionLabel->setText("");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QWidget* MotionPropertyWidgetHandler::CreateGUI(QWidget *pParent)
|
||||
{
|
||||
MotionPropertyCtrl* newCtrl = aznew MotionPropertyCtrl(pParent);
|
||||
connect(newCtrl, &MotionPropertyCtrl::ValueChanged, newCtrl, [newCtrl]()
|
||||
{
|
||||
EBUS_EVENT(AzToolsFramework::PropertyEditorGUIMessages::Bus, RequestWrite, newCtrl);
|
||||
});
|
||||
AzToolsFramework::PropertyAssetCtrl* newCtrl = aznew AzToolsFramework::PropertyAssetCtrl(pParent);
|
||||
connect(
|
||||
newCtrl, &AzToolsFramework::PropertyAssetCtrl::OnAssetIDChanged, this, [newCtrl]([[maybe_unused]] AZ::Data::AssetId newAssetId) {
|
||||
EBUS_EVENT(AzToolsFramework::PropertyEditorGUIMessages::Bus, RequestWrite, newCtrl);
|
||||
AzToolsFramework::PropertyEditorGUIMessages::Bus::Broadcast(
|
||||
&AzToolsFramework::PropertyEditorGUIMessages::Bus::Handler::OnEditingFinished, newCtrl);
|
||||
});
|
||||
return newCtrl;
|
||||
}
|
||||
|
||||
|
||||
void MotionPropertyWidgetHandler::ConsumeAttribute(MotionPropertyCtrl* GUI, AZ::u32 attrib, AzToolsFramework::PropertyAttributeReader* attrValue, const char* debugName)
|
||||
void MotionPropertyWidgetHandler::ConsumeAttribute(
|
||||
[[maybe_unused]] AzToolsFramework::PropertyAssetCtrl* GUI, [[maybe_unused]] AZ::u32 attrib,
|
||||
[[maybe_unused]] AzToolsFramework::PropertyAttributeReader* attrValue, [[maybe_unused]] const char* debugName)
|
||||
{
|
||||
Q_UNUSED(GUI);
|
||||
Q_UNUSED(attrib);
|
||||
Q_UNUSED(attrValue);
|
||||
Q_UNUSED(debugName);
|
||||
}
|
||||
|
||||
void MotionPropertyWidgetHandler::WriteGUIValuesIntoProperty(size_t index, MotionPropertyCtrl* GUI, property_t& instance, AzToolsFramework::InstanceDataNode* node)
|
||||
void MotionPropertyWidgetHandler::WriteGUIValuesIntoProperty(
|
||||
[[maybe_unused]] size_t index, [[maybe_unused]] AzToolsFramework::PropertyAssetCtrl* GUI, property_t& instance,
|
||||
[[maybe_unused]] AzToolsFramework::InstanceDataNode* node)
|
||||
{
|
||||
Q_UNUSED(index);
|
||||
Q_UNUSED(node);
|
||||
CReflectedVarMotion val = GUI->value();
|
||||
CReflectedVarMotion val;
|
||||
val.m_motion = GUI->GetCurrentAssetHint();
|
||||
val.m_assetId = GUI->GetSelectedAssetID();
|
||||
instance = static_cast<property_t>(val);
|
||||
}
|
||||
|
||||
bool MotionPropertyWidgetHandler::ReadValuesIntoGUI(size_t index, MotionPropertyCtrl* GUI, const property_t& instance, AzToolsFramework::InstanceDataNode* node)
|
||||
bool MotionPropertyWidgetHandler::ReadValuesIntoGUI(
|
||||
[[maybe_unused]] size_t index, [[maybe_unused]] AzToolsFramework::PropertyAssetCtrl* GUI, const property_t& instance,
|
||||
[[maybe_unused]] AzToolsFramework::InstanceDataNode* node)
|
||||
{
|
||||
Q_UNUSED(index);
|
||||
Q_UNUSED(node);
|
||||
CReflectedVarMotion val = instance;
|
||||
GUI->SetValue(val);
|
||||
static const AZ::Data::AssetType emotionFXMotionAssetType(
|
||||
"{00494B8E-7578-4BA2-8B28-272E90680787}"); // from MotionAsset.h in EMotionFX Gem
|
||||
|
||||
GUI->blockSignals(true);
|
||||
GUI->SetSelectedAssetID(instance.m_assetId);
|
||||
GUI->SetCurrentAssetType(emotionFXMotionAssetType);
|
||||
GUI->blockSignals(false);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#include <Controls/ReflectedPropertyControl/moc_PropertyMotionCtrl.cpp>
|
||||
|
||||
|
||||
@@ -1,92 +1,67 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef CRYINCLUDE_EDITOR_UTILS_PROPERTYMOTIONCTRL_H
|
||||
#define CRYINCLUDE_EDITOR_UTILS_PROPERTYMOTIONCTRL_H
|
||||
#pragma once
|
||||
|
||||
#if !defined(Q_MOC_RUN)
|
||||
#include <AzCore/base.h>
|
||||
#include <AzCore/Memory/SystemAllocator.h>
|
||||
#include "ReflectedVar.h"
|
||||
#include <QWidget>
|
||||
#include <QPointer>
|
||||
#include <AzCore/Memory/SystemAllocator.h>
|
||||
#include <AzCore/base.h>
|
||||
#include <AzToolsFramework/UI/PropertyEditor/PropertyAssetCtrl.hxx>
|
||||
#include <AzToolsFramework/UI/PropertyEditor/PropertyEditorAPI.h>
|
||||
|
||||
#include <QPointer>
|
||||
#include <QWidget>
|
||||
#endif
|
||||
|
||||
class QToolButton;
|
||||
class QLabel;
|
||||
class QHBoxLayout;
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
class PropertyAssetCtrl;
|
||||
}
|
||||
|
||||
class MotionPropertyCtrl
|
||||
: public QWidget
|
||||
class MotionPropertyWidgetHandler : QObject,
|
||||
public AzToolsFramework::PropertyHandler<CReflectedVarMotion, AzToolsFramework::PropertyAssetCtrl>
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
AZ_CLASS_ALLOCATOR(MotionPropertyCtrl, AZ::SystemAllocator, 0);
|
||||
|
||||
MotionPropertyCtrl(QWidget* pParent = nullptr);
|
||||
virtual ~MotionPropertyCtrl();
|
||||
|
||||
CReflectedVarMotion value() const;
|
||||
|
||||
QWidget* GetFirstInTabOrder();
|
||||
QWidget* GetLastInTabOrder();
|
||||
void UpdateTabOrder();
|
||||
|
||||
signals:
|
||||
void ValueChanged(CReflectedVarMotion value);
|
||||
|
||||
public slots:
|
||||
void SetValue(const CReflectedVarMotion& motion);
|
||||
|
||||
protected slots:
|
||||
void OnBrowseClicked();
|
||||
void OnApplyClicked();
|
||||
|
||||
private:
|
||||
void SetLabelText(const AZStd::string& motion);
|
||||
|
||||
QToolButton* m_pBrowseButton;
|
||||
QToolButton* m_pApplyButton;
|
||||
QLabel* m_motionLabel;
|
||||
|
||||
CReflectedVarMotion m_motion;
|
||||
};
|
||||
|
||||
class MotionPropertyWidgetHandler
|
||||
: QObject
|
||||
, public AzToolsFramework::PropertyHandler < CReflectedVarMotion, MotionPropertyCtrl >
|
||||
{
|
||||
public:
|
||||
AZ_CLASS_ALLOCATOR(MotionPropertyWidgetHandler, AZ::SystemAllocator, 0);
|
||||
|
||||
virtual AZ::u32 GetHandlerName(void) const override { return AZ_CRC("Motion", 0xf5fea1e8); }
|
||||
virtual bool IsDefaultHandler() const override { return true; }
|
||||
virtual QWidget* GetFirstInTabOrder(MotionPropertyCtrl* widget) override { return widget->GetFirstInTabOrder(); }
|
||||
virtual QWidget* GetLastInTabOrder(MotionPropertyCtrl* widget) override { return widget->GetLastInTabOrder(); }
|
||||
virtual void UpdateWidgetInternalTabbing(MotionPropertyCtrl* widget) override { widget->UpdateTabOrder(); }
|
||||
virtual AZ::u32 GetHandlerName(void) const override
|
||||
{
|
||||
return AZ_CRC("Motion", 0xf5fea1e8);
|
||||
}
|
||||
|
||||
virtual bool IsDefaultHandler() const override
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual QWidget* GetFirstInTabOrder(AzToolsFramework::PropertyAssetCtrl* widget) override
|
||||
{
|
||||
return widget->GetFirstInTabOrder();
|
||||
}
|
||||
|
||||
virtual QWidget* GetLastInTabOrder(AzToolsFramework::PropertyAssetCtrl* widget) override
|
||||
{
|
||||
return widget->GetLastInTabOrder();
|
||||
}
|
||||
|
||||
virtual void UpdateWidgetInternalTabbing(AzToolsFramework::PropertyAssetCtrl* widget) override
|
||||
{
|
||||
widget->UpdateTabOrder();
|
||||
}
|
||||
|
||||
virtual QWidget* CreateGUI(QWidget* pParent) override;
|
||||
virtual void ConsumeAttribute(MotionPropertyCtrl* GUI, AZ::u32 attrib, AzToolsFramework::PropertyAttributeReader* attrValue, const char* debugName) override;
|
||||
virtual void WriteGUIValuesIntoProperty(size_t index, MotionPropertyCtrl* GUI, property_t& instance, AzToolsFramework::InstanceDataNode* node) override;
|
||||
virtual bool ReadValuesIntoGUI(size_t index, MotionPropertyCtrl* GUI, const property_t& instance, AzToolsFramework::InstanceDataNode* node) override;
|
||||
virtual void ConsumeAttribute(
|
||||
AzToolsFramework::PropertyAssetCtrl* GUI, AZ::u32 attrib, AzToolsFramework::PropertyAttributeReader* attrValue,
|
||||
const char* debugName) override;
|
||||
virtual void WriteGUIValuesIntoProperty(
|
||||
size_t index, AzToolsFramework::PropertyAssetCtrl* GUI, property_t& instance, AzToolsFramework::InstanceDataNode* node) override;
|
||||
virtual bool ReadValuesIntoGUI(
|
||||
size_t index, AzToolsFramework::PropertyAssetCtrl* GUI, const property_t& instance,
|
||||
AzToolsFramework::InstanceDataNode* node) override;
|
||||
};
|
||||
|
||||
|
||||
#endif // CRYINCLUDE_EDITOR_UTILS_PROPERTYMOTIONCTRL_H
|
||||
|
||||
@@ -2428,7 +2428,10 @@ void EditorViewportWidget::SetDefaultCamera()
|
||||
return;
|
||||
}
|
||||
ResetToViewSourceType(ViewSourceType::None);
|
||||
gEnv->p3DEngine->GetPostEffectBaseGroup()->SetParam("Dof_Active", 0.0f);
|
||||
if (gEnv->p3DEngine)
|
||||
{
|
||||
gEnv->p3DEngine->GetPostEffectBaseGroup()->SetParam("Dof_Active", 0.0f);
|
||||
}
|
||||
GetViewManager()->SetCameraObjectId(m_cameraObjectId);
|
||||
SetName(m_defaultViewName);
|
||||
SetViewTM(m_defaultViewTM);
|
||||
|
||||
@@ -13,6 +13,7 @@ add_subdirectory(SceneAPI) # Needs to go before AssetProcessor since it provides
|
||||
add_subdirectory(AssetProcessor)
|
||||
add_subdirectory(AWSNativeSDKInit)
|
||||
add_subdirectory(AzTestRunner)
|
||||
add_subdirectory(CrashHandler)
|
||||
add_subdirectory(CryCommonTools)
|
||||
add_subdirectory(CryXML)
|
||||
add_subdirectory(HLSLCrossCompiler)
|
||||
@@ -21,7 +22,6 @@ add_subdirectory(News)
|
||||
add_subdirectory(PythonBindingsExample)
|
||||
add_subdirectory(RC)
|
||||
add_subdirectory(RemoteConsole)
|
||||
add_subdirectory(CrashHandler)
|
||||
add_subdirectory(ShaderCacheGen)
|
||||
add_subdirectory(DeltaCataloger)
|
||||
add_subdirectory(SerializeContextTools)
|
||||
|
||||
@@ -32,11 +32,11 @@ ly_add_target(
|
||||
PRIVATE
|
||||
${pal_dir}
|
||||
BUILD_DEPENDENCIES
|
||||
PUBLIC
|
||||
AZ::CrashSupport
|
||||
PRIVATE
|
||||
3rdParty::Crashpad
|
||||
AZ::AzCore
|
||||
AZ::AzFramework
|
||||
AZ::CrashSupport
|
||||
)
|
||||
|
||||
string(REPLACE "." ";" version_list "${LY_VERSION_STRING}")
|
||||
@@ -67,11 +67,9 @@ ly_add_target(
|
||||
PRIVATE
|
||||
Uploader/include/Uploader
|
||||
BUILD_DEPENDENCIES
|
||||
PRIVATE
|
||||
AZ::AzCore
|
||||
AZ::CrashSupport
|
||||
PUBLIC
|
||||
3rdParty::Crashpad::Handler
|
||||
AZ::CrashSupport
|
||||
)
|
||||
|
||||
add_subdirectory(Tools)
|
||||
|
||||
@@ -19,6 +19,6 @@ ly_add_target(
|
||||
PUBLIC
|
||||
include
|
||||
BUILD_DEPENDENCIES
|
||||
PRIVATE
|
||||
PUBLIC
|
||||
AZ::AzCore
|
||||
)
|
||||
|
||||
@@ -21,13 +21,13 @@ ly_add_target(
|
||||
tools_crash_handler_files.cmake
|
||||
Platform/${PAL_PLATFORM_NAME}/tools_crash_handler_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
|
||||
INCLUDE_DIRECTORIES
|
||||
PRIVATE
|
||||
PUBLIC
|
||||
.
|
||||
BUILD_DEPENDENCIES
|
||||
PUBLIC
|
||||
AZ::CrashHandler
|
||||
PRIVATE
|
||||
3rdParty::Qt::Core
|
||||
AZ::CrashHandler
|
||||
AZ::CrashSupport
|
||||
AZ::AzToolsFramework
|
||||
)
|
||||
|
||||
@@ -41,18 +41,14 @@ ly_add_target(
|
||||
Platform/${PAL_PLATFORM_NAME}/tools_crash_uploader_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
|
||||
INCLUDE_DIRECTORIES
|
||||
PRIVATE
|
||||
.
|
||||
Uploader
|
||||
BUILD_DEPENDENCIES
|
||||
PRIVATE
|
||||
3rdParty::Qt::Core
|
||||
3rdParty::Qt::Gui
|
||||
3rdParty::Qt::Widgets
|
||||
3rdParty::Crashpad
|
||||
3rdParty::Crashpad::Handler
|
||||
AZ::CrashUploaderSupport
|
||||
AZ::AzQtComponents
|
||||
AZ::CrashSupport
|
||||
TARGET_PROPERTIES
|
||||
Qt5_NO_LINK_QTMAIN TRUE
|
||||
)
|
||||
|
||||
@@ -138,7 +138,7 @@ namespace O3de
|
||||
if (!logFileReader->Open(thisFile))
|
||||
{
|
||||
#if defined(AZ_PLATFORM_WINDOWS)
|
||||
LOG(ERROR) << "Failed to open " << base::UTF16ToUTF8(thisFile.BaseName().value());
|
||||
LOG(ERROR) << "Failed to open " << base::WideToUTF8(thisFile.BaseName().value());
|
||||
#else
|
||||
LOG(ERROR) << "Failed to open " << thisFile.BaseName().value();
|
||||
#endif
|
||||
@@ -149,7 +149,7 @@ namespace O3de
|
||||
if (start_offset < 0)
|
||||
{
|
||||
#if defined(AZ_PLATFORM_WINDOWS)
|
||||
LOG(ERROR) << "Failed to get offset for " << base::UTF16ToUTF8(thisFile.BaseName().value());
|
||||
LOG(ERROR) << "Failed to get offset for " << base::WideToUTF8(thisFile.BaseName().value());
|
||||
#else
|
||||
LOG(ERROR) << "Failed to get offset for " << thisFile.BaseName().value();
|
||||
#endif
|
||||
@@ -162,7 +162,7 @@ namespace O3de
|
||||
|
||||
std::string fileNameKey{ "attachment_" };
|
||||
#if defined(AZ_PLATFORM_WINDOWS)
|
||||
fileNameKey += base::UTF16ToUTF8(thisFile.BaseName().value());
|
||||
fileNameKey += base::WideToUTF8(thisFile.BaseName().value());
|
||||
#else
|
||||
fileNameKey += thisFile.BaseName().value();
|
||||
#endif
|
||||
|
||||
@@ -41,7 +41,6 @@ namespace AZ
|
||||
|
||||
BuilderComponent::~BuilderComponent()
|
||||
{
|
||||
AZ::Component::~Component();
|
||||
AZ::Interface<AzFramework::AtomActiveInterface>::Unregister(this);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -98,7 +98,7 @@ namespace AZ
|
||||
->Attribute(AZ::Edit::Attributes::DefaultAsset, &EditorMaterialComponentSlot::GetDefaultAssetId)
|
||||
->Attribute(AZ::Edit::Attributes::NameLabelOverride, &EditorMaterialComponentSlot::GetLabel)
|
||||
->Attribute(AZ::Edit::Attributes::ShowProductAssetFileName, true)
|
||||
->Attribute("ThumbnailWithDropDown", &EditorMaterialComponentSlot::OpenPopupMenu)
|
||||
->Attribute("ThumbnailCallback", &EditorMaterialComponentSlot::OpenPopupMenu)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,9 +30,7 @@ ly_add_target(
|
||||
Include
|
||||
BUILD_DEPENDENCIES
|
||||
PRIVATE
|
||||
AZ::AzCore
|
||||
AZ::CrashHandler
|
||||
AZ::CrashSupport
|
||||
)
|
||||
|
||||
ly_add_target(
|
||||
@@ -46,10 +44,5 @@ ly_add_target(
|
||||
Include
|
||||
BUILD_DEPENDENCIES
|
||||
PRIVATE
|
||||
#3rdParty::Crashpad
|
||||
#3rdParty::Crashpad::Handler
|
||||
AZ::AzCore
|
||||
AZ::CrashUploaderSupport
|
||||
#AZ::CrashHandler
|
||||
AZ::CrashSupport
|
||||
)
|
||||
|
||||
@@ -443,9 +443,12 @@ namespace DebugDraw
|
||||
AZ::TransformBus::EventResult(sphereElement.m_worldLocation, sphereElement.m_targetEntityId, &AZ::TransformBus::Events::GetWorldTranslation);
|
||||
}
|
||||
|
||||
ColorB lyColor(sphereElement.m_color.ToU32());
|
||||
Vec3 worldLocation(AZVec3ToLYVec3(sphereElement.m_worldLocation));
|
||||
gEnv->pRenderer->GetIRenderAuxGeom()->DrawSphere(worldLocation, sphereElement.m_radius, lyColor, true);
|
||||
if (gEnv->pRenderer)
|
||||
{
|
||||
ColorB lyColor(sphereElement.m_color.ToU32());
|
||||
Vec3 worldLocation(AZVec3ToLYVec3(sphereElement.m_worldLocation));
|
||||
gEnv->pRenderer->GetIRenderAuxGeom()->DrawSphere(worldLocation, sphereElement.m_radius, lyColor, true);
|
||||
}
|
||||
}
|
||||
|
||||
removeExpiredDebugElementsFromVector(m_activeSpheres);
|
||||
|
||||
@@ -303,7 +303,8 @@ namespace EMotionFX
|
||||
|
||||
if (GetFinalNode() == nodeToRemove)
|
||||
{
|
||||
SetFinalNodeId(AnimGraphNodeId::InvalidId);
|
||||
m_finalNodeId = AnimGraphNodeId::InvalidId;
|
||||
m_finalNode = nullptr;
|
||||
}
|
||||
|
||||
// call it for all children
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
#include "Rendering/LightComponent.h"
|
||||
#include "Rendering/HighQualityShadowComponent.h"
|
||||
#include "Rendering/MeshComponent.h"
|
||||
#include "Rendering/FogVolumeComponent.h"
|
||||
#include "Rendering/GeomCacheComponent.h"
|
||||
#include "Ai/NavigationComponent.h"
|
||||
#include "Scripting/TagComponent.h"
|
||||
@@ -241,7 +240,6 @@ namespace LmbrCentral
|
||||
StereoRendererComponent::CreateDescriptor(),
|
||||
NavigationSystemComponent::CreateDescriptor(),
|
||||
GeometrySystemComponent::CreateDescriptor(),
|
||||
FogVolumeComponent::CreateDescriptor(),
|
||||
RandomTimedSpawnerComponent::CreateDescriptor(),
|
||||
GeometryCacheComponent::CreateDescriptor(),
|
||||
SphereShapeDebugDisplayComponent::CreateDescriptor(),
|
||||
|
||||
@@ -34,7 +34,6 @@
|
||||
#include "Rendering/EditorEnvProbeComponent.h"
|
||||
#include "Rendering/EditorHighQualityShadowComponent.h"
|
||||
#include "Rendering/EditorMeshComponent.h"
|
||||
#include "Rendering/EditorFogVolumeComponent.h"
|
||||
#include "Rendering/EditorGeomCacheComponent.h"
|
||||
#include "Scripting/EditorLookAtComponent.h"
|
||||
#include "Scripting/EditorRandomTimedSpawnerComponent.h"
|
||||
@@ -104,7 +103,6 @@ namespace LmbrCentral
|
||||
EditorCommentComponent::CreateDescriptor(),
|
||||
EditorNavigationAreaComponent::CreateDescriptor(),
|
||||
EditorNavigationSeedComponent::CreateDescriptor(),
|
||||
EditorFogVolumeComponent::CreateDescriptor(),
|
||||
EditorRandomTimedSpawnerComponent::CreateDescriptor(),
|
||||
EditorGeometryCacheComponent::CreateDescriptor(),
|
||||
EditorSpawnerComponent::CreateDescriptor(),
|
||||
|
||||
@@ -1,353 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "LmbrCentral_precompiled.h"
|
||||
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/Component/TransformBus.h>
|
||||
|
||||
#include <LmbrCentral/Shape/BoxShapeComponentBus.h>
|
||||
#include <IEntityRenderState.h>
|
||||
|
||||
#include "EditorFogVolumeComponent.h"
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
void EditorFogVolumeComponent::Activate()
|
||||
{
|
||||
Base::Activate();
|
||||
|
||||
const auto entityId = GetEntityId();
|
||||
|
||||
m_configuration.SetEntityId(entityId);
|
||||
m_configuration.UpdateSizeFromEntityShape();
|
||||
|
||||
m_fogVolume.SetEntityId(entityId);
|
||||
m_fogVolume.CreateFogVolumeRenderNode(m_configuration);
|
||||
|
||||
RefreshFog();
|
||||
|
||||
RenderNodeRequestBus::Handler::BusConnect(entityId);
|
||||
FogVolumeComponentRequestBus::Handler::BusConnect(entityId);
|
||||
ShapeComponentNotificationsBus::Handler::BusConnect(entityId);
|
||||
AZ::TransformNotificationBus::Handler::BusConnect(entityId);
|
||||
AzToolsFramework::EditorEvents::Bus::Handler::BusConnect();
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::Deactivate()
|
||||
{
|
||||
Base::Deactivate();
|
||||
|
||||
m_fogVolume.DestroyRenderNode();
|
||||
m_fogVolume.SetEntityId(AZ::EntityId());
|
||||
m_configuration.SetEntityId(AZ::EntityId());
|
||||
|
||||
AzToolsFramework::EditorEvents::Bus::Handler::BusDisconnect();
|
||||
AZ::TransformNotificationBus::Handler::BusDisconnect();
|
||||
ShapeComponentNotificationsBus::Handler::BusDisconnect();
|
||||
FogVolumeComponentRequestBus::Handler::BusDisconnect();
|
||||
RenderNodeRequestBus::Handler::BusDisconnect();
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context);
|
||||
|
||||
EditorFogVolumeConfiguration::Reflect(context);
|
||||
|
||||
if (serializeContext)
|
||||
{
|
||||
serializeContext->Class<EditorFogVolumeComponent, EditorComponentBase>()
|
||||
->Version(1)
|
||||
->Field("FogVolumeConfiguration", &EditorFogVolumeComponent::m_configuration);
|
||||
|
||||
if (AZ::EditContext* editContext = serializeContext->GetEditContext())
|
||||
{
|
||||
editContext->Class<EditorFogVolumeComponent>(
|
||||
"Fog Volume", "Allows to specify an area with a fog")
|
||||
->ClassElement(AZ::Edit::ClassElements::EditorData, "")
|
||||
->Attribute(AZ::Edit::Attributes::Category, "Environment")
|
||||
->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/FogVolume.svg")
|
||||
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/FogVolume.png")
|
||||
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game", 0x232b318c))
|
||||
->Attribute(AZ::Edit::Attributes::HelpPageURL, "http://docs.aws.amazon.com/console/lumberyard/userguide/fog-volume-component")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, false)
|
||||
->DataElement(0, &EditorFogVolumeComponent::m_configuration, "Settings", "Fog configuration")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
|
||||
{
|
||||
behaviorContext->Class<EditorFogVolumeComponent>()->RequestBus("EditorFogVolumeComponentRequestBus");
|
||||
FogVolumeComponent::ExposeRequestsBusInBehaviorContext(behaviorContext, "EditorFogVolumeComponentRequestBus");
|
||||
}
|
||||
}
|
||||
|
||||
IRenderNode* EditorFogVolumeComponent::GetRenderNode()
|
||||
{
|
||||
return m_fogVolume.GetRenderNode();
|
||||
}
|
||||
|
||||
float EditorFogVolumeComponent::GetRenderNodeRequestBusOrder() const
|
||||
{
|
||||
return FogVolumeComponent::s_renderNodeRequestBusOrder;
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::RefreshFog()
|
||||
{
|
||||
m_fogVolume.UpdateFogVolumeProperties(m_configuration);
|
||||
m_fogVolume.UpdateRenderingFlags(m_configuration);
|
||||
m_fogVolume.UpdateFogVolumeTransform();
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::OnTransformChanged([[maybe_unused]] const AZ::Transform& local, [[maybe_unused]] const AZ::Transform& world)
|
||||
{
|
||||
// Entities transform component calls OnTransformChanged before this component is activated
|
||||
// This only happens during undo operations so we guard against that in the Editor component
|
||||
if (m_fogVolume.GetRenderNode())
|
||||
{
|
||||
RefreshFog();
|
||||
}
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::OnShapeChanged(ShapeComponentNotifications::ShapeChangeReasons changeReason)
|
||||
{
|
||||
if (changeReason == ShapeComponentNotifications::ShapeChangeReasons::ShapeChanged)
|
||||
{
|
||||
m_configuration.UpdateSizeFromEntityShape();
|
||||
RefreshFog();
|
||||
}
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::OnEditorSpecChange()
|
||||
{
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required)
|
||||
{
|
||||
return FogVolumeComponent::GetRequiredServices(required);
|
||||
}
|
||||
|
||||
void EditorFogVolumeComponent::BuildGameEntity(AZ::Entity* gameEntity)
|
||||
{
|
||||
FogVolumeComponent* fogComponent = gameEntity->CreateComponent<FogVolumeComponent>();
|
||||
if (fogComponent)
|
||||
{
|
||||
fogComponent->SetConfiguration(m_configuration);
|
||||
}
|
||||
}
|
||||
|
||||
void EditorFogVolumeConfiguration::Reflect(AZ::ReflectContext * context)
|
||||
{
|
||||
if (AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<EditorFogVolumeConfiguration, FogVolumeConfiguration>()->
|
||||
Version(1);
|
||||
|
||||
if (AZ::EditContext* editContext = serializeContext->GetEditContext())
|
||||
{
|
||||
editContext->Class<FogVolumeConfiguration>("Configuration", "Fog Volume configuration")
|
||||
|
||||
->ClassElement(AZ::Edit::ClassElements::EditorData, "")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::ComboBox, &FogVolumeConfiguration::m_volumeType,
|
||||
"Volume type", "Shape of the fog")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->EnumAttribute(FogVolumeType::RectangularPrism, "Cuboid")
|
||||
->EnumAttribute(FogVolumeType::Ellipsoid, "Ellipsoid")
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Color, &FogVolumeConfiguration::m_color,
|
||||
"Color", "Fog color")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &FogVolumeConfiguration::m_useGlobalFogColor,
|
||||
"Use global fog color", "If true, the Color property is ignored. Instead, the current global fog color is used")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_globalDensity,
|
||||
"Fog Density", "Controls the density of the fog. The higher the value the more dense the fog and the less you'll be able to see objects behind or inside the fog volume")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.01f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 1000.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 1.0f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_densityOffset,
|
||||
"Density offset", "Offset fog density, used in conjunction with the GlobalDensity parameter")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, -1000.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 1000.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 1.0f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_nearCutoff,
|
||||
"Near cutoff", "Stop rendering the object, depending on camera distance to object")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 2.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.1f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_softEdges,
|
||||
"Soft edges", "Specifies a factor that is used to soften the edges of the fog volume when viewed from outside")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 1.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_windInfluence,
|
||||
"Wind influence (Volumetric Fog only)", "Controls the influence of the wind (Volumetric Fog only)")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 20.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->ClassElement(AZ::Edit::ClassElements::Group, "Rendering General")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &FogVolumeConfiguration::m_ignoresVisAreas,
|
||||
"Ignore vis. areas", "Controls whether this entity should respond to visareas")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &FogVolumeConfiguration::m_affectsThisAreaOnly,
|
||||
"Affect this area only", "Set this parameter to false to make this entity affect in multiple visareas")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
|
||||
->DataElement(0, &FogVolumeConfiguration::m_viewDistMultiplier,
|
||||
"View distance multiplier", "Adjusts max view distance. If 1.0 then default is used. 1.1 would be 10% further than default.")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Suffix, "x")
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::ComboBox, &FogVolumeConfiguration::m_minSpec,
|
||||
"Minimum spec", "Min spec for the fog to be active.")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->EnumAttribute(EngineSpec::Never, "Never")
|
||||
->EnumAttribute(EngineSpec::VeryHigh, "Very high")
|
||||
->EnumAttribute(EngineSpec::High, "High")
|
||||
->EnumAttribute(EngineSpec::Medium, "Medium")
|
||||
->EnumAttribute(EngineSpec::Low, "Low")
|
||||
|
||||
->ClassElement(AZ::Edit::ClassElements::Group, "")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_hdrDynamic,
|
||||
"HDR Dynamic (Non-Volumetric Fog)", "Specifies how much brighter than the default 255,255,255 white the fog is (Non-Volumetric Fog only)")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 20.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->ClassElement(AZ::Edit::ClassElements::Group, "Fall Off Settings")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_fallOffDirLong,
|
||||
"Longitude", "Controls the longitude of the world space fall off direction of the fog. 0 represents East, rotation is counter-clockwise")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 360.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 1.0f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_fallOffDirLatitude,
|
||||
"Latitude", "Controls the latitude of the world space fall off direction of the fog. 90 lets the fall off direction point upwards in world space")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 360.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 1.0f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_fallOffShift,
|
||||
"Shift", "Controls how much to shift the fog density distribution along the fall off direction in world units")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, -50.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 50.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.1f)
|
||||
->Attribute(AZ::Edit::Attributes::Suffix, "m")
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_fallOffScale,
|
||||
"Scale", "Scales the density distribution along the fall off direction. Higher values will make the fog fall off more rapidly and generate thicker fog layers along the negative fall off direction")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, -50.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 50.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->ClassElement(AZ::Edit::ClassElements::Group, "Ramp (Volumetric Fog only)")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_rampStart,
|
||||
"Start", "Specifies the start distance of fog density ramp in world units")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 30000.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 1.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Suffix, "m")
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_rampEnd,
|
||||
"End", "Specifies the end distance of fog density ramp in world units")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 30000.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 1.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Suffix, "m")
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_rampInfluence,
|
||||
"Influence", "Controls the influence of fog density ramp")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 1.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->ClassElement(AZ::Edit::ClassElements::Group, "Density Noise (Volumetric Fog only)")
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_densityNoiseScale,
|
||||
"Scale", "Scales the noise for the density")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 10.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_densityNoiseOffset,
|
||||
"Offset", "Offsets the noise for the density")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, -2.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 2.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Slider, &FogVolumeConfiguration::m_densityNoiseTimeFrequency,
|
||||
"Time frequency", "Controls the time frequency of the noise for the density")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 1.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Step, 0.01f)
|
||||
|
||||
->DataElement(AZ::Edit::UIHandlers::Default, &FogVolumeConfiguration::m_densityNoiseFrequency,
|
||||
"Spatial frequency", "Controls the spatial frequency of the noise for the density")
|
||||
->Attribute(AZ::Edit::Attributes::ChangeNotify, &FogVolumeConfiguration::PropertyChanged)
|
||||
->Attribute(AZ::Edit::Attributes::Min, 0.0f)
|
||||
->Attribute(AZ::Edit::Attributes::Max, 10000.0f)
|
||||
;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AZ::Crc32 EditorFogVolumeConfiguration::PropertyChanged()
|
||||
{
|
||||
if (m_entityId.IsValid())
|
||||
{
|
||||
FogVolumeComponentRequestBus::Event(m_entityId, &FogVolumeComponentRequestBus::Events::RefreshFog);
|
||||
}
|
||||
return AZ::Edit::PropertyRefreshLevels::None;
|
||||
}
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/base.h>
|
||||
#include <AzCore/Component/Component.h>
|
||||
#include <AzCore/Component/ComponentBus.h>
|
||||
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
|
||||
#include <LmbrCentral/Rendering/RenderNodeBus.h>
|
||||
#include <LmbrCentral/Shape/ShapeComponentBus.h>
|
||||
|
||||
#include "FogVolumeComponent.h"
|
||||
#include "FogVolumeRequestsHandler.h"
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
class EditorFogVolumeConfiguration
|
||||
: public FogVolumeConfiguration
|
||||
{
|
||||
public:
|
||||
AZ_TYPE_INFO(EditorFogVolumeConfiguration, "{9D431EA0-92F9-4A00-96C6-28B189A6EE56}");
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
AZ::Crc32 PropertyChanged() override;
|
||||
};
|
||||
|
||||
/**
|
||||
* In-editor fog volume component.
|
||||
*/
|
||||
class EditorFogVolumeComponent
|
||||
: public AzToolsFramework::Components::EditorComponentBase
|
||||
, private RenderNodeRequestBus::Handler
|
||||
, private FogVolumeComponentRequestsBusHandler
|
||||
, private AZ::TransformNotificationBus::Handler
|
||||
, private ShapeComponentNotificationsBus::Handler
|
||||
, private AzToolsFramework::EditorEvents::Bus::Handler
|
||||
{
|
||||
private:
|
||||
using Base = AzToolsFramework::Components::EditorComponentBase;
|
||||
|
||||
public:
|
||||
AZ_EDITOR_COMPONENT(EditorFogVolumeComponent, "{8CA5AB61-96D8-482F-B07C-DAD72ED73646}");
|
||||
|
||||
~EditorFogVolumeComponent() override = default;
|
||||
|
||||
// AZ::Component interface implementation
|
||||
void Activate() override;
|
||||
void Deactivate() override;
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
// RenderNodeRequestBus::Handler
|
||||
IRenderNode* GetRenderNode() override;
|
||||
float GetRenderNodeRequestBusOrder() const override;
|
||||
|
||||
// FogVolumeComponentRequestBus::Handler
|
||||
void RefreshFog() override;
|
||||
|
||||
// TransformNotificationBus::Handler
|
||||
void OnTransformChanged(const AZ::Transform& local, const AZ::Transform& world) override;
|
||||
|
||||
// ShapeComponentNotificationsBus::Handler
|
||||
void OnShapeChanged(ShapeComponentNotifications::ShapeChangeReasons changeReason) override;
|
||||
|
||||
// AzToolsFramework::EditorEvents::Handler
|
||||
void OnEditorSpecChange() override;
|
||||
|
||||
static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required);
|
||||
|
||||
void BuildGameEntity(AZ::Entity* gameEntity) override;
|
||||
|
||||
protected:
|
||||
FogVolumeConfiguration& GetConfiguration() override
|
||||
{
|
||||
return m_configuration;
|
||||
}
|
||||
|
||||
private:
|
||||
EditorFogVolumeConfiguration m_configuration;
|
||||
FogVolume m_fogVolume;
|
||||
};
|
||||
}
|
||||
@@ -1,179 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "LmbrCentral_precompiled.h"
|
||||
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <LmbrCentral/Shape/BoxShapeComponentBus.h>
|
||||
#include <MathConversion.h>
|
||||
#include <I3DEngine.h>
|
||||
|
||||
#include "FogVolumeCommon.h"
|
||||
#include "FogVolumeComponent.h"
|
||||
|
||||
#include <AzCore/Component/TransformBus.h>
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
FogVolume::FogVolume()
|
||||
: m_fogRenderNode(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
FogVolume::~FogVolume()
|
||||
{
|
||||
DestroyRenderNode();
|
||||
}
|
||||
|
||||
void FogVolume::CreateFogVolumeRenderNode(const FogVolumeConfiguration& fogVolumeConfig)
|
||||
{
|
||||
AZ_Assert(m_entityId.IsValid(), "[FogVolumeCommon/FogVolumeComponent Component] Entity id is invalid");
|
||||
DestroyRenderNode();
|
||||
|
||||
m_fogRenderNode = static_cast<IFogVolumeRenderNode*>(gEnv->p3DEngine->CreateRenderNode(eERType_FogVolume));
|
||||
m_fogRenderNode->SetMinSpec(static_cast<int>(fogVolumeConfig.m_minSpec));
|
||||
m_fogRenderNode->SetViewDistanceMultiplier(fogVolumeConfig.m_viewDistMultiplier);
|
||||
|
||||
UpdateFogVolumeProperties(fogVolumeConfig);
|
||||
UpdateFogVolumeTransform();
|
||||
}
|
||||
|
||||
void FogVolume::DestroyRenderNode()
|
||||
{
|
||||
if (m_fogRenderNode != nullptr)
|
||||
{
|
||||
m_fogRenderNode->ReleaseNode();
|
||||
m_fogRenderNode = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
void FogVolume::UpdateFogVolumeProperties(const FogVolumeConfiguration& fogVolumeConfig)
|
||||
{
|
||||
AZ_Assert(m_fogRenderNode != nullptr, "[FogVolumeCommon/FogVolumeComponent Component] Trying to updated null render node");
|
||||
|
||||
SFogVolumeProperties fogProperties;
|
||||
FogUtils::FogConfigToFogParams(fogVolumeConfig, fogProperties);
|
||||
|
||||
m_fogRenderNode->SetFogVolumeProperties(fogProperties);
|
||||
}
|
||||
|
||||
void FogVolume::UpdateFogVolumeTransform()
|
||||
{
|
||||
AZ_Assert(m_fogRenderNode != nullptr, "[FogVolumeCommon/FogVolumeComponent Component] Trying to updated null render node");
|
||||
|
||||
AZ::Transform parentTransform = AZ::Transform::CreateIdentity();
|
||||
AZ::TransformBus::EventResult(parentTransform, m_entityId, &AZ::TransformBus::Events::GetWorldTM);
|
||||
|
||||
m_fogRenderNode->SetScale(AZVec3ToLYVec3(parentTransform.GetScale()));
|
||||
m_fogRenderNode->SetMatrix(AZTransformToLYTransform(parentTransform));
|
||||
}
|
||||
|
||||
void FogVolume::UpdateRenderingFlags(const FogVolumeConfiguration& fogVolumeConfig)
|
||||
{
|
||||
if (m_fogRenderNode)
|
||||
{
|
||||
m_fogRenderNode->SetMinSpec(static_cast<AZ::u32>(fogVolumeConfig.m_minSpec));
|
||||
|
||||
if (gEnv && gEnv->p3DEngine)
|
||||
{
|
||||
const int configSpec = gEnv->pSystem->GetConfigSpec(true);
|
||||
|
||||
AZ::u32 rendFlags = static_cast<AZ::u32>(m_fogRenderNode->GetRndFlags());
|
||||
|
||||
const bool hidden = static_cast<AZ::u32>(configSpec) < static_cast<AZ::u32>(fogVolumeConfig.m_minSpec);
|
||||
if (hidden)
|
||||
{
|
||||
rendFlags |= ERF_HIDDEN;
|
||||
}
|
||||
else
|
||||
{
|
||||
rendFlags &= ~ERF_HIDDEN;
|
||||
}
|
||||
|
||||
rendFlags |= ERF_COMPONENT_ENTITY;
|
||||
m_fogRenderNode->SetRndFlags(rendFlags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FogUtils::FogConfigToFogParams(const LmbrCentral::FogVolumeConfiguration& configuration, SFogVolumeProperties& fogVolumeProperties)
|
||||
{
|
||||
AZ_Assert(configuration.m_volumeType != FogVolumeType::None, "[FogConfigToFogParams] Attempting to create a fog with invalid volume type")
|
||||
|
||||
fogVolumeProperties.m_volumeType = static_cast<int>(configuration.m_volumeType);
|
||||
fogVolumeProperties.m_size = AZVec3ToLYVec3(configuration.m_size);
|
||||
fogVolumeProperties.m_color = AZColorToLYVec3(configuration.m_color);
|
||||
fogVolumeProperties.m_useGlobalFogColor = configuration.m_useGlobalFogColor;
|
||||
fogVolumeProperties.m_ignoresVisAreas = configuration.m_ignoresVisAreas;
|
||||
fogVolumeProperties.m_affectsThisAreaOnly = configuration.m_affectsThisAreaOnly;
|
||||
|
||||
fogVolumeProperties.m_globalDensity = max(0.01f, configuration.m_globalDensity);
|
||||
fogVolumeProperties.m_densityOffset = configuration.m_densityOffset;
|
||||
fogVolumeProperties.m_nearCutoff = configuration.m_nearCutoff;
|
||||
fogVolumeProperties.m_fHDRDynamic = configuration.m_hdrDynamic;
|
||||
fogVolumeProperties.m_softEdges = configuration.m_softEdges;
|
||||
|
||||
fogVolumeProperties.m_heightFallOffDirLong = configuration.m_fallOffDirLong;
|
||||
fogVolumeProperties.m_heightFallOffDirLati = configuration.m_fallOffDirLatitude;
|
||||
fogVolumeProperties.m_heightFallOffShift = configuration.m_fallOffShift;
|
||||
fogVolumeProperties.m_heightFallOffScale = configuration.m_fallOffScale;
|
||||
|
||||
fogVolumeProperties.m_rampStart = configuration.m_rampStart;
|
||||
fogVolumeProperties.m_rampEnd = configuration.m_rampEnd;
|
||||
fogVolumeProperties.m_rampInfluence = configuration.m_rampInfluence;
|
||||
fogVolumeProperties.m_windInfluence = configuration.m_windInfluence;
|
||||
|
||||
fogVolumeProperties.m_densityNoiseScale = configuration.m_densityNoiseScale;
|
||||
fogVolumeProperties.m_densityNoiseOffset = configuration.m_densityNoiseOffset;
|
||||
fogVolumeProperties.m_densityNoiseTimeFrequency = configuration.m_densityNoiseTimeFrequency;
|
||||
fogVolumeProperties.m_densityNoiseFrequency = AZVec3ToLYVec3(configuration.m_densityNoiseFrequency);
|
||||
}
|
||||
|
||||
void FogVolumeConfiguration::Reflect(AZ::ReflectContext * context)
|
||||
{
|
||||
if (AZ::SerializeContext *serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<FogVolumeConfiguration>()
|
||||
->Version(1)
|
||||
->Field("VolumeType", &FogVolumeConfiguration::m_volumeType)
|
||||
->Field("Color", &FogVolumeConfiguration::m_color)
|
||||
->Field("HdrDynamic", &FogVolumeConfiguration::m_hdrDynamic)
|
||||
->Field("UseGlobalFogColor", &FogVolumeConfiguration::m_useGlobalFogColor)
|
||||
->Field("SoftEdges", &FogVolumeConfiguration::m_softEdges)
|
||||
->Field("WindInfluence", &FogVolumeConfiguration::m_windInfluence)
|
||||
->Field("GlobalDensity", &FogVolumeConfiguration::m_globalDensity)
|
||||
->Field("DensityOffset", &FogVolumeConfiguration::m_densityOffset)
|
||||
->Field("NearCutoff", &FogVolumeConfiguration::m_nearCutoff)
|
||||
->Field("EngineSpec", &FogVolumeConfiguration::m_minSpec)
|
||||
->Field("DistMult", &FogVolumeConfiguration::m_viewDistMultiplier)
|
||||
->Field("IgnoresVisAreas", &FogVolumeConfiguration::m_ignoresVisAreas)
|
||||
->Field("AffectsThisAreaOnly", &FogVolumeConfiguration::m_affectsThisAreaOnly)
|
||||
->Field("FallOffDirLong", &FogVolumeConfiguration::m_fallOffDirLong)
|
||||
->Field("FallOffDirLatitude", &FogVolumeConfiguration::m_fallOffDirLatitude)
|
||||
->Field("FallOffShift", &FogVolumeConfiguration::m_fallOffShift)
|
||||
->Field("FallOffScale", &FogVolumeConfiguration::m_fallOffScale)
|
||||
->Field("RampStart", &FogVolumeConfiguration::m_rampStart)
|
||||
->Field("RampEnd", &FogVolumeConfiguration::m_rampEnd)
|
||||
->Field("RampInfluence", &FogVolumeConfiguration::m_rampInfluence)
|
||||
->Field("DensityNoiseScale", &FogVolumeConfiguration::m_densityNoiseScale)
|
||||
->Field("DensityNoiseOffset", &FogVolumeConfiguration::m_densityNoiseOffset)
|
||||
->Field("DensityNoiseTimeFrequency", &FogVolumeConfiguration::m_densityNoiseTimeFrequency)
|
||||
->Field("DensityNoiseFrequency", &FogVolumeConfiguration::m_densityNoiseFrequency)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
void FogVolumeConfiguration::UpdateSizeFromEntityShape()
|
||||
{
|
||||
AZ_Assert(m_entityId.IsValid(), "[FogVolumeConfiguration] Entity id is invalid");
|
||||
BoxShapeComponentRequestsBus::EventResult(m_size, m_entityId, &BoxShapeComponentRequestsBus::Events::GetBoxDimensions);
|
||||
}
|
||||
}
|
||||
@@ -1,116 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Math/Color.h>
|
||||
#include <IEntityRenderState.h>
|
||||
|
||||
#include <LmbrCentral/Rendering/FogVolumeComponentBus.h>
|
||||
|
||||
struct SFogVolumeProperties;
|
||||
struct IFogVolumeRenderNode;
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
/**
|
||||
* Stores configuration settings for the Fog Volume.
|
||||
*/
|
||||
class FogVolumeConfiguration
|
||||
{
|
||||
public:
|
||||
AZ_TYPE_INFO(FogVolumeConfiguration, "{3B786BBB-0B1D-4EF2-9181-CC75C783C26E}");
|
||||
virtual ~FogVolumeConfiguration() {};
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
// Universal rendering properties
|
||||
EngineSpec m_minSpec = EngineSpec::Low;
|
||||
float m_viewDistMultiplier = 1.0f;
|
||||
|
||||
FogVolumeType m_volumeType = FogVolumeType::Ellipsoid;
|
||||
AZ::Color m_color = AZ::Color(1.f, 1.f, 1.f, 1.f);
|
||||
// Size is not reflected: taken from BoxShape
|
||||
AZ::Vector3 m_size = AZ::Vector3(1.0f, 1.0f, 1.0f);
|
||||
|
||||
float m_hdrDynamic = false;
|
||||
bool m_useGlobalFogColor = false;
|
||||
|
||||
float m_globalDensity = 1.0f;
|
||||
float m_densityOffset = 0.0f;
|
||||
float m_nearCutoff = 0.0f;
|
||||
|
||||
float m_fallOffDirLong = 0.0f;
|
||||
float m_fallOffDirLatitude = 90.0f;
|
||||
float m_fallOffShift = 0.0f;
|
||||
float m_fallOffScale = 1.0f;
|
||||
|
||||
float m_softEdges = 1.0f;
|
||||
|
||||
float m_rampStart = 1.0f;
|
||||
float m_rampEnd = 50.0f;
|
||||
float m_rampInfluence = 0.0f;
|
||||
float m_windInfluence = 1.0f;
|
||||
|
||||
float m_densityNoiseScale = 1.0f;
|
||||
float m_densityNoiseOffset = 1.0f;
|
||||
float m_densityNoiseTimeFrequency = 0.0f;
|
||||
|
||||
AZ::Vector3 m_densityNoiseFrequency = AZ::Vector3(10.0f, 10.0f, 10.0f);
|
||||
bool m_ignoresVisAreas = false;
|
||||
bool m_affectsThisAreaOnly = 0.0f;
|
||||
|
||||
void UpdateSizeFromEntityShape();
|
||||
|
||||
// Implemented in EditorFogVolumeConfiguration
|
||||
virtual AZ::Crc32 PropertyChanged() { return 0; }
|
||||
|
||||
void SetEntityId(AZ::EntityId id) { m_entityId = id; }
|
||||
|
||||
protected:
|
||||
// Not reflected
|
||||
AZ::EntityId m_entityId;
|
||||
};
|
||||
|
||||
class FogVolume
|
||||
{
|
||||
public:
|
||||
FogVolume();
|
||||
FogVolume(const FogVolume&) = delete;
|
||||
FogVolume& operator= (const FogVolume&) = delete;
|
||||
|
||||
virtual ~FogVolume();
|
||||
|
||||
void SetEntityId(AZ::EntityId id) { m_entityId = id; }
|
||||
|
||||
void CreateFogVolumeRenderNode(const FogVolumeConfiguration& fogVolumeConfig);
|
||||
void DestroyRenderNode();
|
||||
|
||||
IFogVolumeRenderNode* GetRenderNode() const
|
||||
{
|
||||
return m_fogRenderNode;
|
||||
}
|
||||
|
||||
void UpdateFogVolumeProperties(const FogVolumeConfiguration& fogVolumeConfig);
|
||||
void UpdateRenderingFlags(const FogVolumeConfiguration& fogVolumeConfig);
|
||||
void UpdateFogVolumeTransform();
|
||||
|
||||
private:
|
||||
IFogVolumeRenderNode* m_fogRenderNode;
|
||||
AZ::EntityId m_entityId;
|
||||
};
|
||||
|
||||
namespace FogUtils
|
||||
{
|
||||
void FogConfigToFogParams(const LmbrCentral::FogVolumeConfiguration& configuration, SFogVolumeProperties& fogVolumeProperties);
|
||||
}
|
||||
}
|
||||
@@ -1,203 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "LmbrCentral_precompiled.h"
|
||||
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <IEntityRenderState.h>
|
||||
|
||||
#include "FogVolumeComponent.h"
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
const float FogVolumeComponent::s_renderNodeRequestBusOrder = 500.f;
|
||||
|
||||
void FogVolumeComponent::Activate()
|
||||
{
|
||||
const auto entityId = GetEntityId();
|
||||
|
||||
m_configuration.SetEntityId(entityId);
|
||||
m_configuration.UpdateSizeFromEntityShape();
|
||||
|
||||
m_fogVolume.SetEntityId(entityId);
|
||||
m_fogVolume.CreateFogVolumeRenderNode(m_configuration);
|
||||
|
||||
RefreshFog();
|
||||
|
||||
RenderNodeRequestBus::Handler::BusConnect(entityId);
|
||||
FogVolumeComponentRequestBus::Handler::BusConnect(entityId);
|
||||
ShapeComponentNotificationsBus::Handler::BusConnect(entityId);
|
||||
AZ::TransformNotificationBus::Handler::BusConnect(entityId);
|
||||
}
|
||||
|
||||
void FogVolumeComponent::Deactivate()
|
||||
{
|
||||
m_fogVolume.DestroyRenderNode();
|
||||
m_fogVolume.SetEntityId(AZ::EntityId());
|
||||
m_configuration.SetEntityId(AZ::EntityId());
|
||||
|
||||
RenderNodeRequestBus::Handler::BusDisconnect();
|
||||
FogVolumeComponentRequestBus::Handler::BusDisconnect();
|
||||
ShapeComponentNotificationsBus::Handler::BusDisconnect();
|
||||
AZ::TransformNotificationBus::Handler::BusDisconnect();
|
||||
}
|
||||
|
||||
void FogVolumeComponent::Reflect(AZ::ReflectContext* context)
|
||||
{
|
||||
FogVolumeConfiguration::Reflect(context);
|
||||
|
||||
if (AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
|
||||
{
|
||||
serializeContext->Class<FogVolumeComponent, AZ::Component>()
|
||||
->Version(1)
|
||||
->Field("FogVolumeConfiguration", &FogVolumeComponent::m_configuration);
|
||||
}
|
||||
|
||||
if (AZ::BehaviorContext* behaviorContext = azrtti_cast<AZ::BehaviorContext*>(context))
|
||||
{
|
||||
behaviorContext->Class<FogVolumeComponent>()->RequestBus("FogVolumeComponentRequestBus");
|
||||
FogVolumeComponent::ExposeRequestsBusInBehaviorContext(behaviorContext, "FogVolumeComponentRequestBus");
|
||||
}
|
||||
}
|
||||
|
||||
IRenderNode* FogVolumeComponent::GetRenderNode()
|
||||
{
|
||||
return m_fogVolume.GetRenderNode();
|
||||
}
|
||||
|
||||
float FogVolumeComponent::GetRenderNodeRequestBusOrder() const
|
||||
{
|
||||
return s_renderNodeRequestBusOrder;
|
||||
}
|
||||
|
||||
void FogVolumeComponent::RefreshFog()
|
||||
{
|
||||
m_fogVolume.UpdateFogVolumeProperties(m_configuration);
|
||||
m_fogVolume.UpdateRenderingFlags(m_configuration);
|
||||
m_fogVolume.UpdateFogVolumeTransform();
|
||||
}
|
||||
|
||||
void FogVolumeComponent::OnTransformChanged([[maybe_unused]] const AZ::Transform & local, [[maybe_unused]] const AZ::Transform & world)
|
||||
{
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
void FogVolumeComponent::OnShapeChanged(ShapeComponentNotifications::ShapeChangeReasons changeReason)
|
||||
{
|
||||
if (changeReason == ShapeComponentNotifications::ShapeChangeReasons::ShapeChanged)
|
||||
{
|
||||
m_configuration.UpdateSizeFromEntityShape();
|
||||
RefreshFog();
|
||||
}
|
||||
}
|
||||
|
||||
void FogVolumeComponent::GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType & required)
|
||||
{
|
||||
required.push_back(AZ_CRC("BoxShapeService", 0x946a0032));
|
||||
}
|
||||
|
||||
void FogVolumeComponent::ExposeRequestsBusInBehaviorContext(AZ::BehaviorContext* behaviorContext, const char* name)
|
||||
{
|
||||
behaviorContext->EBus<FogVolumeComponentRequestBus>(name)
|
||||
->Attribute(AZ::Script::Attributes::ExcludeFrom, AZ::Script::Attributes::All)
|
||||
->Event("RefreshFog", &FogVolumeComponentRequestBus::Events::RefreshFog)
|
||||
|
||||
->Event("GetVolumeType", &FogVolumeComponentRequestBus::Events::GetVolumeType)
|
||||
->Event("SetVolumeType", &FogVolumeComponentRequestBus::Events::SetVolumeType)
|
||||
->VirtualProperty("VolumeType", "GetVolumeType", "SetVolumeType")
|
||||
|
||||
->Event("GetColor", &FogVolumeComponentRequestBus::Events::GetColor)
|
||||
->Event("SetColor", &FogVolumeComponentRequestBus::Events::SetColor)
|
||||
->VirtualProperty("Color", "GetColor", "SetColor")
|
||||
|
||||
->Event("GetHdrDynamic", &FogVolumeComponentRequestBus::Events::GetHdrDynamic)
|
||||
->Event("SetHdrDynamic", &FogVolumeComponentRequestBus::Events::SetHdrDynamic)
|
||||
->VirtualProperty("HdrDynamic", "GetHdrDynamic", "SetHdrDynamic")
|
||||
|
||||
->Event("GetUseGlobalFogColor", &FogVolumeComponentRequestBus::Events::GetUseGlobalFogColor)
|
||||
->Event("SetUseGlobalFogColor", &FogVolumeComponentRequestBus::Events::SetUseGlobalFogColor)
|
||||
->VirtualProperty("UseGlobalFogColor", "GetUseGlobalFogColor", "SetUseGlobalFogColor")
|
||||
|
||||
->Event("GetGlobalDensity", &FogVolumeComponentRequestBus::Events::GetGlobalDensity)
|
||||
->Event("SetGlobalDensity", &FogVolumeComponentRequestBus::Events::SetGlobalDensity)
|
||||
->VirtualProperty("GlobalDensity", "GetGlobalDensity", "SetGlobalDensity")
|
||||
|
||||
->Event("GetDensityOffset", &FogVolumeComponentRequestBus::Events::GetDensityOffset)
|
||||
->Event("SetDensityOffset", &FogVolumeComponentRequestBus::Events::SetDensityOffset)
|
||||
->VirtualProperty("DensityOffset", "GetDensityOffset", "SetDensityOffset")
|
||||
|
||||
->Event("GetNearCutoff", &FogVolumeComponentRequestBus::Events::GetNearCutoff)
|
||||
->Event("SetNearCutoff", &FogVolumeComponentRequestBus::Events::SetNearCutoff)
|
||||
->VirtualProperty("NearCutoff", "GetNearCutoff", "SetNearCutoff")
|
||||
|
||||
->Event("GetFallOffDirLong", &FogVolumeComponentRequestBus::Events::GetFallOffDirLong)
|
||||
->Event("SetFallOffDirLong", &FogVolumeComponentRequestBus::Events::SetFallOffDirLong)
|
||||
->VirtualProperty("FallOffDirLong", "GetFallOffDirLong", "SetFallOffDirLong")
|
||||
|
||||
->Event("GetFallOffDirLatitude", &FogVolumeComponentRequestBus::Events::GetFallOffDirLatitude)
|
||||
->Event("SetFallOffDirLatitude", &FogVolumeComponentRequestBus::Events::SetFallOffDirLatitude)
|
||||
->VirtualProperty("FallOffDirLatitude", "GetFallOffDirLatitude", "SetFallOffDirLatitude")
|
||||
|
||||
->Event("GetFallOffShift", &FogVolumeComponentRequestBus::Events::GetFallOffShift)
|
||||
->Event("SetFallOffShift", &FogVolumeComponentRequestBus::Events::SetFallOffShift)
|
||||
->VirtualProperty("FallOffShift", "GetFallOffShift", "SetFallOffShift")
|
||||
|
||||
->Event("GetFallOffScale", &FogVolumeComponentRequestBus::Events::GetFallOffScale)
|
||||
->Event("SetFallOffScale", &FogVolumeComponentRequestBus::Events::SetFallOffScale)
|
||||
->VirtualProperty("FallOffScale", "GetFallOffScale", "SetFallOffScale")
|
||||
|
||||
->Event("GetSoftEdges", &FogVolumeComponentRequestBus::Events::GetSoftEdges)
|
||||
->Event("SetSoftEdges", &FogVolumeComponentRequestBus::Events::SetSoftEdges)
|
||||
->VirtualProperty("SoftEdges", "GetSoftEdges", "SetSoftEdges")
|
||||
|
||||
->Event("GetRampStart", &FogVolumeComponentRequestBus::Events::GetRampStart)
|
||||
->Event("SetRampStart", &FogVolumeComponentRequestBus::Events::SetRampStart)
|
||||
->VirtualProperty("RampStart", "GetRampStart", "SetRampStart")
|
||||
|
||||
->Event("GetRampEnd", &FogVolumeComponentRequestBus::Events::GetRampEnd)
|
||||
->Event("SetRampEnd", &FogVolumeComponentRequestBus::Events::SetRampEnd)
|
||||
->VirtualProperty("RampEnd", "GetRampEnd", "SetRampEnd")
|
||||
|
||||
->Event("GetRampInfluence", &FogVolumeComponentRequestBus::Events::GetRampInfluence)
|
||||
->Event("SetRampInfluence", &FogVolumeComponentRequestBus::Events::SetRampInfluence)
|
||||
->VirtualProperty("RampInfluence", "GetRampInfluence", "SetRampInfluence")
|
||||
|
||||
->Event("GetWindInfluence", &FogVolumeComponentRequestBus::Events::GetWindInfluence)
|
||||
->Event("SetWindInfluence", &FogVolumeComponentRequestBus::Events::SetWindInfluence)
|
||||
->VirtualProperty("WindInfluence", "GetWindInfluence", "SetWindInfluence")
|
||||
|
||||
->Event("GetDensityNoiseScale", &FogVolumeComponentRequestBus::Events::GetDensityNoiseScale)
|
||||
->Event("SetDensityNoiseScale", &FogVolumeComponentRequestBus::Events::SetDensityNoiseScale)
|
||||
->VirtualProperty("DensityNoiseScale", "GetDensityNoiseScale", "SetDensityNoiseScale")
|
||||
|
||||
->Event("GetDensityNoiseOffset", &FogVolumeComponentRequestBus::Events::GetDensityNoiseOffset)
|
||||
->Event("SetDensityNoiseOffset", &FogVolumeComponentRequestBus::Events::SetDensityNoiseOffset)
|
||||
->VirtualProperty("DensityNoiseOffset", "GetDensityNoiseOffset", "SetDensityNoiseOffset")
|
||||
|
||||
->Event("GetDensityNoiseTimeFrequency", &FogVolumeComponentRequestBus::Events::GetDensityNoiseTimeFrequency)
|
||||
->Event("SetDensityNoiseTimeFrequency", &FogVolumeComponentRequestBus::Events::SetDensityNoiseTimeFrequency)
|
||||
->VirtualProperty("DensityNoiseTimeFrequency", "GetDensityNoiseTimeFrequency", "SetDensityNoiseTimeFrequency")
|
||||
|
||||
->Event("GetDensityNoiseFrequency", &FogVolumeComponentRequestBus::Events::GetDensityNoiseFrequency)
|
||||
->Event("SetDensityNoiseFrequency", &FogVolumeComponentRequestBus::Events::SetDensityNoiseFrequency)
|
||||
->VirtualProperty("DensityNoiseFrequency", "GetDensityNoiseFrequency", "SetDensityNoiseFrequency")
|
||||
|
||||
->Event("GetIgnoresVisAreas", &FogVolumeComponentRequestBus::Events::GetIgnoresVisAreas)
|
||||
->Event("SetIgnoresVisAreas", &FogVolumeComponentRequestBus::Events::SetIgnoresVisAreas)
|
||||
->VirtualProperty("IgnoresVisAreas", "GetIgnoresVisAreas", "SetIgnoresVisAreas")
|
||||
|
||||
->Event("GetAffectsThisAreaOnly", &FogVolumeComponentRequestBus::Events::GetAffectsThisAreaOnly)
|
||||
->Event("SetAffectsThisAreaOnly", &FogVolumeComponentRequestBus::Events::SetAffectsThisAreaOnly)
|
||||
->VirtualProperty("AffectsThisAreaOnly", "GetAffectsThisAreaOnly", "SetAffectsThisAreaOnly")
|
||||
;
|
||||
}
|
||||
}
|
||||
@@ -1,84 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/base.h>
|
||||
|
||||
#include <AzCore/Component/Component.h>
|
||||
#include <AzCore/Component/ComponentBus.h>
|
||||
#include <AzCore/Component/TransformBus.h>
|
||||
#include <AzCore/Math/Vector3.h>
|
||||
|
||||
#include <LmbrCentral/Rendering/RenderNodeBus.h>
|
||||
#include <LmbrCentral/Shape/ShapeComponentBus.h>
|
||||
|
||||
#include <IEntityRenderState.h>
|
||||
|
||||
#include "FogVolumeCommon.h"
|
||||
#include "FogVolumeRequestsHandler.h"
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
/*!
|
||||
* In-game Fog Volume component.
|
||||
*/
|
||||
class FogVolumeComponent
|
||||
: public AZ::Component
|
||||
, public RenderNodeRequestBus::Handler
|
||||
, private FogVolumeComponentRequestsBusHandler
|
||||
, private AZ::TransformNotificationBus::Handler
|
||||
, private ShapeComponentNotificationsBus::Handler
|
||||
{
|
||||
public:
|
||||
AZ_COMPONENT(FogVolumeComponent, "{C01B9E8F-C015-46AC-9065-79445CE1408A}");
|
||||
~FogVolumeComponent() override = default;
|
||||
|
||||
template<typename T>
|
||||
void SetConfiguration(T&& configuration)
|
||||
{
|
||||
m_configuration = AZStd::forward<T>(configuration);
|
||||
}
|
||||
|
||||
// AZ::Component interface implementation
|
||||
void Activate() override;
|
||||
void Deactivate() override;
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
// RenderNodeRequestBus::Handler interface implementation
|
||||
IRenderNode* GetRenderNode() override;
|
||||
float GetRenderNodeRequestBusOrder() const override;
|
||||
static const float s_renderNodeRequestBusOrder;
|
||||
|
||||
// TransformNotificationBus::Handler
|
||||
void OnTransformChanged(const AZ::Transform& local, const AZ::Transform& world) override;
|
||||
|
||||
// ShapeComponentNotificationsBus::Handler
|
||||
void OnShapeChanged(ShapeComponentNotifications::ShapeChangeReasons changeReason) override;
|
||||
|
||||
// FogVolumeComponentRequestBus::Handler
|
||||
void RefreshFog() override;
|
||||
|
||||
static void GetRequiredServices(AZ::ComponentDescriptor::DependencyArrayType& required);
|
||||
static void ExposeRequestsBusInBehaviorContext(AZ::BehaviorContext* behaviorContext, const char* name);
|
||||
|
||||
protected:
|
||||
FogVolumeConfiguration& GetConfiguration() override
|
||||
{
|
||||
return m_configuration;
|
||||
}
|
||||
|
||||
private:
|
||||
FogVolumeConfiguration m_configuration;
|
||||
FogVolume m_fogVolume;
|
||||
};
|
||||
}
|
||||
@@ -1,264 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "LmbrCentral_precompiled.h"
|
||||
|
||||
#include "FogVolumeRequestsHandler.h"
|
||||
#include "FogVolumeCommon.h"
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
FogVolumeType FogVolumeComponentRequestsBusHandler::GetVolumeType()
|
||||
{
|
||||
return GetConfiguration().m_volumeType;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetVolumeType(FogVolumeType volumeType)
|
||||
{
|
||||
auto& configuration = GetConfiguration();
|
||||
if (configuration.m_volumeType != volumeType)
|
||||
{
|
||||
configuration.m_volumeType = volumeType;
|
||||
RefreshFog();
|
||||
}
|
||||
}
|
||||
|
||||
AZ::Color FogVolumeComponentRequestsBusHandler::GetColor()
|
||||
{
|
||||
return GetConfiguration().m_color;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetColor(AZ::Color color)
|
||||
{
|
||||
GetConfiguration().m_color = color;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetHdrDynamic()
|
||||
{
|
||||
return GetConfiguration().m_hdrDynamic;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetHdrDynamic(float hdrDynamic)
|
||||
{
|
||||
GetConfiguration().m_hdrDynamic = hdrDynamic;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
bool FogVolumeComponentRequestsBusHandler::GetUseGlobalFogColor()
|
||||
{
|
||||
return GetConfiguration().m_useGlobalFogColor;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetUseGlobalFogColor(bool useGlobalFogColor)
|
||||
{
|
||||
GetConfiguration().m_useGlobalFogColor = useGlobalFogColor;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetGlobalDensity()
|
||||
{
|
||||
return GetConfiguration().m_globalDensity;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetGlobalDensity(float globalDensity)
|
||||
{
|
||||
GetConfiguration().m_globalDensity = globalDensity;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetDensityOffset()
|
||||
{
|
||||
return GetConfiguration().m_densityOffset;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetDensityOffset(float densityOffset)
|
||||
{
|
||||
GetConfiguration().m_densityOffset = densityOffset;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetNearCutoff()
|
||||
{
|
||||
return GetConfiguration().m_nearCutoff;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetNearCutoff(float nearCutoff)
|
||||
{
|
||||
GetConfiguration().m_nearCutoff = nearCutoff;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetFallOffDirLong()
|
||||
{
|
||||
return GetConfiguration().m_fallOffDirLong;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetFallOffDirLong(float fallOffDirLong)
|
||||
{
|
||||
GetConfiguration().m_fallOffDirLong = fallOffDirLong;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetFallOffDirLatitude()
|
||||
{
|
||||
return GetConfiguration().m_fallOffDirLatitude;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetFallOffDirLatitude(float fallOffDirLatitude)
|
||||
{
|
||||
GetConfiguration().m_fallOffDirLatitude = fallOffDirLatitude;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetFallOffShift()
|
||||
{
|
||||
return GetConfiguration().m_fallOffShift;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetFallOffShift(float fallOffShift)
|
||||
{
|
||||
GetConfiguration().m_fallOffShift = fallOffShift;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetFallOffScale()
|
||||
{
|
||||
return GetConfiguration().m_fallOffScale;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetFallOffScale(float fallOffScale)
|
||||
{
|
||||
GetConfiguration().m_fallOffScale = fallOffScale;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetSoftEdges()
|
||||
{
|
||||
return GetConfiguration().m_softEdges;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetSoftEdges(float softEdges)
|
||||
{
|
||||
GetConfiguration().m_softEdges = softEdges;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetRampStart()
|
||||
{
|
||||
return GetConfiguration().m_rampStart;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetRampStart(float rampStart)
|
||||
{
|
||||
GetConfiguration().m_rampStart = rampStart;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetRampEnd()
|
||||
{
|
||||
return GetConfiguration().m_rampEnd;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetRampEnd(float rampEnd)
|
||||
{
|
||||
GetConfiguration().m_rampEnd = rampEnd;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetRampInfluence()
|
||||
{
|
||||
return GetConfiguration().m_rampInfluence;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetRampInfluence(float rampInfluence)
|
||||
{
|
||||
GetConfiguration().m_rampInfluence = rampInfluence;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetWindInfluence()
|
||||
{
|
||||
return GetConfiguration().m_windInfluence;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetWindInfluence(float windInfluence)
|
||||
{
|
||||
GetConfiguration().m_windInfluence = windInfluence;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetDensityNoiseScale()
|
||||
{
|
||||
return GetConfiguration().m_densityNoiseScale;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetDensityNoiseScale(float densityNoiseScale)
|
||||
{
|
||||
GetConfiguration().m_densityNoiseScale = densityNoiseScale;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetDensityNoiseOffset()
|
||||
{
|
||||
return GetConfiguration().m_densityNoiseOffset;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetDensityNoiseOffset(float densityNoiseOffset)
|
||||
{
|
||||
GetConfiguration().m_densityNoiseOffset = densityNoiseOffset;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
float FogVolumeComponentRequestsBusHandler::GetDensityNoiseTimeFrequency()
|
||||
{
|
||||
return GetConfiguration().m_densityNoiseTimeFrequency;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetDensityNoiseTimeFrequency(float timeFrequency)
|
||||
{
|
||||
GetConfiguration().m_densityNoiseTimeFrequency = timeFrequency;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
AZ::Vector3 FogVolumeComponentRequestsBusHandler::GetDensityNoiseFrequency()
|
||||
{
|
||||
return GetConfiguration().m_densityNoiseFrequency;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetDensityNoiseFrequency(AZ::Vector3 densityNoiseFrequency)
|
||||
{
|
||||
GetConfiguration().m_densityNoiseFrequency = densityNoiseFrequency;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
bool FogVolumeComponentRequestsBusHandler::GetIgnoresVisAreas()
|
||||
{
|
||||
return GetConfiguration().m_ignoresVisAreas;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetIgnoresVisAreas(bool ignoresVisAreas)
|
||||
{
|
||||
GetConfiguration().m_ignoresVisAreas = ignoresVisAreas;
|
||||
RefreshFog();
|
||||
}
|
||||
|
||||
bool FogVolumeComponentRequestsBusHandler::GetAffectsThisAreaOnly()
|
||||
{
|
||||
return GetConfiguration().m_affectsThisAreaOnly;
|
||||
}
|
||||
|
||||
void FogVolumeComponentRequestsBusHandler::SetAffectsThisAreaOnly(bool affectsThisAreaOnly)
|
||||
{
|
||||
GetConfiguration().m_affectsThisAreaOnly = affectsThisAreaOnly;
|
||||
RefreshFog();
|
||||
}
|
||||
}
|
||||
@@ -1,94 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/Math/Color.h>
|
||||
#include <LmbrCentral/Rendering/FogVolumeComponentBus.h>
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
class FogVolumeComponentRequestsBusHandler
|
||||
: public FogVolumeComponentRequestBus::Handler
|
||||
{
|
||||
/////////////////////////////////////////////
|
||||
// FogVolumeComponentRequestBus::Handler
|
||||
FogVolumeType GetVolumeType() override;
|
||||
void SetVolumeType(FogVolumeType volumeType) override;
|
||||
|
||||
AZ::Color GetColor() override;
|
||||
void SetColor(AZ::Color color) override;
|
||||
|
||||
float GetHdrDynamic() override;
|
||||
void SetHdrDynamic(float hdrDynamic) override;
|
||||
|
||||
bool GetUseGlobalFogColor() override;
|
||||
void SetUseGlobalFogColor(bool useGlobalFogColor) override;
|
||||
|
||||
float GetGlobalDensity() override;
|
||||
void SetGlobalDensity(float globalDensity) override;
|
||||
|
||||
float GetDensityOffset() override;
|
||||
void SetDensityOffset(float densityOffset) override;
|
||||
|
||||
float GetNearCutoff() override;
|
||||
void SetNearCutoff(float nearCutoff) override;
|
||||
|
||||
float GetFallOffDirLong() override;
|
||||
void SetFallOffDirLong(float fallOffDirLong) override;
|
||||
|
||||
float GetFallOffDirLatitude() override;
|
||||
void SetFallOffDirLatitude(float fallOffDirLatitude) override;
|
||||
|
||||
float GetFallOffShift() override;
|
||||
void SetFallOffShift(float fallOffShift) override;
|
||||
|
||||
float GetFallOffScale() override;
|
||||
void SetFallOffScale(float fallOffScale) override;
|
||||
|
||||
float GetSoftEdges() override;
|
||||
void SetSoftEdges(float softEdges) override;
|
||||
|
||||
float GetRampStart() override;
|
||||
void SetRampStart(float rampStart) override;
|
||||
|
||||
float GetRampEnd() override;
|
||||
void SetRampEnd(float rampEnd) override;
|
||||
|
||||
float GetRampInfluence() override;
|
||||
void SetRampInfluence(float rampInfluence) override;
|
||||
|
||||
float GetWindInfluence() override;
|
||||
void SetWindInfluence(float windInfluence) override;
|
||||
|
||||
float GetDensityNoiseScale() override;
|
||||
void SetDensityNoiseScale(float densityNoiseScale) override;
|
||||
|
||||
float GetDensityNoiseOffset() override;
|
||||
void SetDensityNoiseOffset(float densityNoiseOffset) override;
|
||||
|
||||
float GetDensityNoiseTimeFrequency() override;
|
||||
void SetDensityNoiseTimeFrequency(float timeFrequency) override;
|
||||
|
||||
AZ::Vector3 GetDensityNoiseFrequency() override;
|
||||
void SetDensityNoiseFrequency(AZ::Vector3 densityNoiseFrequency) override;
|
||||
|
||||
bool GetIgnoresVisAreas() override;
|
||||
void SetIgnoresVisAreas(bool ignoresVisAreas) override;
|
||||
|
||||
bool GetAffectsThisAreaOnly() override;
|
||||
void SetAffectsThisAreaOnly(bool affectsThisAreaOnly) override;
|
||||
/////////////////////////////////////////////
|
||||
|
||||
protected:
|
||||
virtual FogVolumeConfiguration& GetConfiguration() = 0;
|
||||
};
|
||||
}
|
||||
@@ -1,247 +0,0 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/Component/ComponentBus.h>
|
||||
|
||||
namespace LmbrCentral
|
||||
{
|
||||
class FogVolumeConfiguration;
|
||||
|
||||
enum class FogVolumeType : AZ::s32
|
||||
{
|
||||
None = -1,
|
||||
Ellipsoid = 0,
|
||||
RectangularPrism = 1,
|
||||
};
|
||||
|
||||
class FogVolumeComponentRequests
|
||||
: public AZ::ComponentBus
|
||||
{
|
||||
public:
|
||||
virtual ~FogVolumeComponentRequests() {}
|
||||
|
||||
/// Propagates updated configuration to the fog volume component
|
||||
virtual void RefreshFog() {};
|
||||
|
||||
/**
|
||||
* Gets the volume shape type.
|
||||
*/
|
||||
virtual FogVolumeType GetVolumeType() { return FogVolumeType::None; }
|
||||
/**
|
||||
* Sets the volume shape type.
|
||||
*/
|
||||
virtual void SetVolumeType([[maybe_unused]] FogVolumeType volumeType) {};
|
||||
|
||||
/**
|
||||
* Gets color of the fog.
|
||||
*/
|
||||
virtual AZ::Color GetColor() { return AZ::Color::CreateOne(); }
|
||||
/**
|
||||
* Sets color of the fog.
|
||||
*/
|
||||
virtual void SetColor([[maybe_unused]] AZ::Color color) {};
|
||||
|
||||
/**
|
||||
* Gets HDR Dynamic.
|
||||
*/
|
||||
virtual float GetHdrDynamic() { return FLT_MAX; }
|
||||
/**
|
||||
* Set HDR Dynamic.
|
||||
*/
|
||||
virtual void SetHdrDynamic([[maybe_unused]] float hdrDynamic) {};
|
||||
|
||||
/**
|
||||
* Returns true if global fog color is used instead of the color property.
|
||||
*/
|
||||
virtual bool GetUseGlobalFogColor() { return false; }
|
||||
/**
|
||||
* Sets whether global fog color is used instead of the color property.
|
||||
*/
|
||||
virtual void SetUseGlobalFogColor([[maybe_unused]] bool useGlobalFogColor) {};
|
||||
|
||||
/**
|
||||
* Gets Fog density.
|
||||
*/
|
||||
virtual float GetGlobalDensity() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets Fog density. Fog density controls how thick the fog appears.
|
||||
*/
|
||||
virtual void SetGlobalDensity([[maybe_unused]] float globalDensity) {};
|
||||
|
||||
/**
|
||||
* Gets density offset
|
||||
*/
|
||||
virtual float GetDensityOffset() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets density offset. Density offset additionaly controls to the density of the fog volume.
|
||||
*/
|
||||
virtual void SetDensityOffset([[maybe_unused]] float densityOffset) {};
|
||||
|
||||
/**
|
||||
* Gets near cutoff distance
|
||||
*/
|
||||
virtual float GetNearCutoff() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets near cutoff distance. Stops rendering the volume, depending on the camera distance to the object (m).
|
||||
*/
|
||||
virtual void SetNearCutoff([[maybe_unused]] float nearCutoff) {};
|
||||
|
||||
/**
|
||||
* Gets fall off direction horizontally.
|
||||
*/
|
||||
virtual float GetFallOffDirLong() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets fall off direction horizontally.
|
||||
*/
|
||||
virtual void SetFallOffDirLong([[maybe_unused]] float fallOffDirLong) {};
|
||||
|
||||
/**
|
||||
* Gets vertical fall off direction.
|
||||
*/
|
||||
virtual float GetFallOffDirLatitude() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets vertical fall off direction. Controls the latitude of the world space fall off direction of the fog.
|
||||
* A value of 90 degrees lets the fall off direction point upwards in world space (respectively, -90° points downwards).
|
||||
*/
|
||||
virtual void SetFallOffDirLatitude([[maybe_unused]] float fallOffDirLatitude) {};
|
||||
|
||||
/**
|
||||
* Gets fall off shift.
|
||||
*/
|
||||
virtual float GetFallOffShift() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets fall off shift. Controls how much to shift the fog density along the fall off direction.
|
||||
* Positive values will move thicker fog layers along the fall off direction into the fog volume.
|
||||
* Negative values will move thick layers along the negative fall off direction out of the fog volume.
|
||||
*/
|
||||
virtual void SetFallOffShift([[maybe_unused]] float fallOffShift) {};
|
||||
|
||||
/**
|
||||
* Gets the scale of density distribution along the fall off direction.
|
||||
*/
|
||||
virtual float GetFallOffScale() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the scale of the density distribution along the fall off direction. Higher values will make the fog fall off more rapidly.
|
||||
*/
|
||||
virtual void SetFallOffScale([[maybe_unused]] float fallOffScale) {};
|
||||
|
||||
/**
|
||||
* Gets a factor that is used to soften the edges of the fog volume when viewed from outside.
|
||||
*/
|
||||
virtual float GetSoftEdges() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets a factor that is used to soften the edges of the fog volume when viewed from outside.
|
||||
*/
|
||||
virtual void SetSoftEdges([[maybe_unused]] float softEdges) {};
|
||||
|
||||
/**
|
||||
* Gets the start distance of fog density ramp in world units (m) Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual float GetRampStart() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the start distance of fog density ramp in world units (m) Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetRampStart([[maybe_unused]] float rampStart) {};
|
||||
|
||||
/**
|
||||
* Gets the end distance of fog density ramp in world units (m). Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual float GetRampEnd() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the end distance of fog density ramp in world units (m). Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetRampEnd([[maybe_unused]] float rampEnd) {};
|
||||
|
||||
/**
|
||||
* Gets the influence of fog density ramp. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual float GetRampInfluence() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the influence of fog density ramp. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetRampInfluence([[maybe_unused]] float rampInfluence) {};
|
||||
|
||||
/**
|
||||
* Gets the influence of the global wind upon the fog volume. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual float GetWindInfluence() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the influence of the global wind upon the fog volume. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetWindInfluence([[maybe_unused]] float windInfluence) {};
|
||||
|
||||
/**
|
||||
* Gets the scale of the noise value for the density. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual float GetDensityNoiseScale() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the scale of the noise value for the density. This will define the thickness of the individual patches of fog (clouds),
|
||||
* or if you look at it from the other direction it will define how big the spaces are in-between each cloud. Reducing the value
|
||||
* will thin out the cloud density and increase the spacing between each cloud.
|
||||
* Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetDensityNoiseScale([[maybe_unused]] float densityNoiseScale) {};
|
||||
|
||||
/**
|
||||
* Gets the offset of the noise value for the density. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual float GetDensityNoiseOffset() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the offset of the noise value for the density. Noise breaks up the solid shape of the fog volume into patches.
|
||||
* Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetDensityNoiseOffset([[maybe_unused]] float densityNoiseOffset) {};
|
||||
|
||||
/**
|
||||
* Gets the time frequency of the noise for the density. High frequencies produce fast changing fog. Allows the individual fog patches to morph into
|
||||
* different shapes during the course of their lifetime. Keep this value low otherwise they will morph too quickly and will look very unnatural
|
||||
*/
|
||||
virtual float GetDensityNoiseTimeFrequency() { return FLT_MAX; }
|
||||
/**
|
||||
* Sets the time frequency of the noise for the density. High frequencies produce fast changing fog. Only works with Volumetric Fog.
|
||||
*/
|
||||
virtual void SetDensityNoiseTimeFrequency([[maybe_unused]] float timeFrequency) {};
|
||||
|
||||
/**
|
||||
* Gets the spatial frequency of the noise for the density.
|
||||
*/
|
||||
virtual AZ::Vector3 GetDensityNoiseFrequency() { return AZ::Vector3::CreateOne(); }
|
||||
/**
|
||||
* Sets the spatial frequency of the noise for the density. Allows defining how many fog patches are there.
|
||||
* Increasing Z value will create a layered effect within the volume simulating different fog patches stacked on top of each other.
|
||||
* Adding higher values in X & Y would mean there would be more individual fog patches within the volume.
|
||||
* Only works with Volumetric Fog
|
||||
*/
|
||||
virtual void SetDensityNoiseFrequency([[maybe_unused]] AZ::Vector3 densityNoiseFrequency) {};
|
||||
|
||||
/**
|
||||
* Returns true if the FogVolume entity should respond to VisAreas and ClipVolumes.
|
||||
*/
|
||||
virtual bool GetIgnoresVisAreas() { return false; };
|
||||
/**
|
||||
* Sets whether the FogVolume entity should respond to VisAreas and ClipVolumes.
|
||||
*/
|
||||
virtual void SetIgnoresVisAreas([[maybe_unused]] bool ignoresVisAreas) {};
|
||||
|
||||
/**
|
||||
* Returns true if the FogVolume entity effect doesn't occur in multiple VisAreas and ClipVolumes.
|
||||
*/
|
||||
virtual bool GetAffectsThisAreaOnly() { return false; };
|
||||
/**
|
||||
* Sets whether the FogVolume entity effect doesn't occur in multiple VisAreas and ClipVolumes.
|
||||
*/
|
||||
virtual void SetAffectsThisAreaOnly([[maybe_unused]] bool affectsThisAreaOnly) {};
|
||||
};
|
||||
|
||||
using FogVolumeComponentRequestBus = AZ::EBus<FogVolumeComponentRequests>;
|
||||
}
|
||||
@@ -58,8 +58,6 @@ set(FILES
|
||||
Source/Rendering/EditorMeshComponent.cpp
|
||||
Source/Rendering/EditorHighQualityShadowComponent.h
|
||||
Source/Rendering/EditorHighQualityShadowComponent.cpp
|
||||
Source/Rendering/EditorFogVolumeComponent.h
|
||||
Source/Rendering/EditorFogVolumeComponent.cpp
|
||||
Source/Rendering/EditorGeomCacheComponent.h
|
||||
Source/Rendering/EditorGeomCacheComponent.cpp
|
||||
Source/Scripting/EditorLookAtComponent.h
|
||||
|
||||
@@ -45,7 +45,6 @@ set(FILES
|
||||
include/LmbrCentral/Rendering/MeshComponentBus.h
|
||||
include/LmbrCentral/Rendering/MeshModificationBus.h
|
||||
include/LmbrCentral/Rendering/RenderNodeBus.h
|
||||
include/LmbrCentral/Rendering/FogVolumeComponentBus.h
|
||||
include/LmbrCentral/Rendering/HighQualityShadowComponentBus.h
|
||||
include/LmbrCentral/Rendering/GeomCacheComponentBus.h
|
||||
include/LmbrCentral/Rendering/GiRegistrationBus.h
|
||||
@@ -115,12 +114,6 @@ set(FILES
|
||||
Source/Rendering/LightInstance.h
|
||||
Source/Rendering/LightInstance.cpp
|
||||
Source/Rendering/MaterialHandle.cpp
|
||||
Source/Rendering/FogVolumeComponent.h
|
||||
Source/Rendering/FogVolumeComponent.cpp
|
||||
Source/Rendering/FogVolumeCommon.h
|
||||
Source/Rendering/FogVolumeCommon.cpp
|
||||
Source/Rendering/FogVolumeRequestsHandler.h
|
||||
Source/Rendering/FogVolumeRequestsHandler.cpp
|
||||
Source/Rendering/MeshAssetHandler.h
|
||||
Source/Rendering/MeshAssetHandler.cpp
|
||||
Source/Rendering/MeshComponent.h
|
||||
|
||||
@@ -10,15 +10,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <Cry_Math.h> // Needed for DualQuat
|
||||
#include <MathConversion.h>
|
||||
|
||||
#include <AtomLyIntegration/CommonFeatures/Mesh/MeshComponentBus.h>
|
||||
#include <Integration/ActorComponentBus.h>
|
||||
|
||||
// Needed to access the Mesh information inside Actor.
|
||||
#include <EMotionFX/Source/TransformData.h>
|
||||
#include <EMotionFX/Source/ActorInstance.h>
|
||||
#include <MCore/Source/DualQuaternion.h>
|
||||
|
||||
#include <Components/ClothComponentMesh/ActorClothSkinning.h>
|
||||
#include <Utils/AssetHelper.h>
|
||||
@@ -171,7 +169,7 @@ namespace NvCloth
|
||||
return transformData->GetSkinningMatrices();
|
||||
}
|
||||
|
||||
AZStd::unordered_map<AZ::u16, DualQuat> ObtainSkinningDualQuaternions(
|
||||
AZStd::unordered_map<AZ::u16, MCore::DualQuaternion> ObtainSkinningDualQuaternions(
|
||||
AZ::EntityId entityId,
|
||||
const AZStd::vector<AZ::u16>& jointIndices)
|
||||
{
|
||||
@@ -181,10 +179,10 @@ namespace NvCloth
|
||||
return {};
|
||||
}
|
||||
|
||||
AZStd::unordered_map<AZ::u16, DualQuat> skinningDualQuaternions;
|
||||
AZStd::unordered_map<AZ::u16, MCore::DualQuaternion> skinningDualQuaternions;
|
||||
for (AZ::u16 jointIndex : jointIndices)
|
||||
{
|
||||
skinningDualQuaternions.emplace(jointIndex, AZMatrix3x4ToLYMatrix3x4(skinningMatrices[jointIndex]));
|
||||
skinningDualQuaternions.emplace(jointIndex, MCore::DualQuaternion(AZ::Transform::CreateFromMatrix3x4(skinningMatrices[jointIndex])));
|
||||
}
|
||||
return skinningDualQuaternions;
|
||||
}
|
||||
@@ -276,8 +274,8 @@ namespace NvCloth
|
||||
AZ::Vector3 ComputeSkinningVector(const AZ::Vector3& originalVector) override;
|
||||
|
||||
private:
|
||||
AZStd::unordered_map<AZ::u16, DualQuat> m_skinningDualQuaternions;
|
||||
DualQuat m_vertexSkinningTransform = DualQuat(type_identity::IDENTITY);
|
||||
AZStd::unordered_map<AZ::u16, MCore::DualQuaternion> m_skinningDualQuaternions;
|
||||
MCore::DualQuaternion m_vertexSkinningTransform;
|
||||
};
|
||||
|
||||
void ActorClothSkinningDualQuaternion::UpdateSkinning()
|
||||
@@ -294,7 +292,7 @@ namespace NvCloth
|
||||
|
||||
void ActorClothSkinningDualQuaternion::ComputeVertexSkinnningTransform(const SkinningInfo& skinningInfo)
|
||||
{
|
||||
m_vertexSkinningTransform = DualQuat(type_zero::ZERO);
|
||||
m_vertexSkinningTransform = MCore::DualQuaternion(AZ::Quaternion::CreateZero(), AZ::Quaternion::CreateZero());
|
||||
for (size_t weightIndex = 0; weightIndex < skinningInfo.m_jointWeights.size(); ++weightIndex)
|
||||
{
|
||||
const AZ::u16 jointIndex = skinningInfo.m_jointIndices[weightIndex];
|
||||
@@ -312,12 +310,12 @@ namespace NvCloth
|
||||
|
||||
AZ::Vector3 ActorClothSkinningDualQuaternion::ComputeSkinningPosition(const AZ::Vector3& originalPosition)
|
||||
{
|
||||
return LYVec3ToAZVec3(m_vertexSkinningTransform * AZVec3ToLYVec3(originalPosition));
|
||||
return m_vertexSkinningTransform.TransformPoint(originalPosition);
|
||||
}
|
||||
|
||||
AZ::Vector3 ActorClothSkinningDualQuaternion::ComputeSkinningVector(const AZ::Vector3& originalVector)
|
||||
{
|
||||
return LYVec3ToAZVec3(m_vertexSkinningTransform.nq * AZVec3ToLYVec3(originalVector)).GetNormalized();
|
||||
return m_vertexSkinningTransform.TransformVector(originalVector).GetNormalized();
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<ActorClothSkinning> ActorClothSkinning::Create(
|
||||
|
||||
@@ -167,19 +167,18 @@ namespace PhysX
|
||||
return aznew CharacterController(pxController, AZStd::move(callbackManager), scene->GetSceneHandle());
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<Ragdoll> CreateRagdoll(Physics::RagdollConfiguration& configuration,
|
||||
const Physics::RagdollState& initialState, const ParentIndices& parentIndices, AzPhysics::SceneHandle sceneHandle)
|
||||
Ragdoll* CreateRagdoll(Physics::RagdollConfiguration& configuration, AzPhysics::SceneHandle sceneHandle)
|
||||
{
|
||||
const size_t numNodes = configuration.m_nodes.size();
|
||||
if (numNodes != initialState.size())
|
||||
if (numNodes != configuration.m_initialState.size())
|
||||
{
|
||||
AZ_Error("PhysX Ragdoll", false, "Mismatch between number of nodes in ragdoll configuration (%i) "
|
||||
"and number of nodes in the initial ragdoll state (%i)", numNodes, initialState.size());
|
||||
"and number of nodes in the initial ragdoll state (%i)", numNodes, configuration.m_initialState.size());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<Ragdoll> ragdoll = AZStd::make_unique<Ragdoll>(sceneHandle);
|
||||
ragdoll->SetParentIndices(parentIndices);
|
||||
ragdoll->SetParentIndices(configuration.m_parentIndices);
|
||||
|
||||
auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get();
|
||||
if (sceneInterface == nullptr)
|
||||
@@ -192,15 +191,21 @@ namespace PhysX
|
||||
for (size_t nodeIndex = 0; nodeIndex < numNodes; nodeIndex++)
|
||||
{
|
||||
Physics::RagdollNodeConfiguration& nodeConfig = configuration.m_nodes[nodeIndex];
|
||||
const Physics::RagdollNodeState& nodeState = initialState[nodeIndex];
|
||||
const Physics::RagdollNodeState& nodeState = configuration.m_initialState[nodeIndex];
|
||||
|
||||
Physics::CharacterColliderNodeConfiguration* colliderNodeConfig = configuration.m_colliders.FindNodeConfigByName(nodeConfig.m_debugName);
|
||||
if (colliderNodeConfig)
|
||||
{
|
||||
AZStd::vector<AZStd::shared_ptr<Physics::Shape>> shapes;
|
||||
for (const auto& shapeConfig : colliderNodeConfig->m_shapes)
|
||||
for (const auto& [colliderConfig, shapeConfig] : colliderNodeConfig->m_shapes)
|
||||
{
|
||||
if (auto shape = AZStd::make_shared<Shape>(*shapeConfig.first, *shapeConfig.second))
|
||||
if (colliderConfig == nullptr || shapeConfig == nullptr)
|
||||
{
|
||||
AZ_Error("PhysX Ragdoll", false, "Failed to create collider shape for ragdoll node %s", nodeConfig.m_debugName.c_str());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (auto shape = AZStd::make_shared<Shape>(*colliderConfig, *shapeConfig))
|
||||
{
|
||||
shapes.emplace_back(shape);
|
||||
}
|
||||
@@ -212,22 +217,20 @@ namespace PhysX
|
||||
}
|
||||
nodeConfig.m_colliderAndShapeData = shapes;
|
||||
}
|
||||
nodeConfig.m_startSimulationEnabled = false;
|
||||
nodeConfig.m_position = nodeState.m_position;
|
||||
nodeConfig.m_orientation = nodeState.m_orientation;
|
||||
|
||||
AzPhysics::SimulatedBodyHandle newBodyHandle = sceneInterface->AddSimulatedBody(sceneHandle, &nodeConfig);
|
||||
if (newBodyHandle == AzPhysics::InvalidSimulatedBodyHandle)
|
||||
AZStd::unique_ptr<RagdollNode> node = AZStd::make_unique<RagdollNode>(sceneHandle, nodeConfig);
|
||||
if (node->GetRigidBodyHandle() != AzPhysics::InvalidSimulatedBodyHandle)
|
||||
{
|
||||
ragdoll->AddNode(AZStd::move(node));
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Error("PhysX Ragdoll", false, "Failed to create rigid body for ragdoll node %s", nodeConfig.m_debugName.c_str());
|
||||
return nullptr;
|
||||
node.reset();
|
||||
}
|
||||
sceneInterface->DisableSimulationOfBody(sceneHandle, newBodyHandle);
|
||||
auto* rigidBody = azdynamic_cast<AzPhysics::RigidBody*>(sceneInterface->GetSimulatedBodyFromHandle(sceneHandle, newBodyHandle));
|
||||
|
||||
physx::PxRigidDynamic* pxRigidDynamic = static_cast<physx::PxRigidDynamic*>(rigidBody->GetNativePointer());
|
||||
physx::PxTransform transform(PxMathConvert(nodeState.m_position), PxMathConvert(nodeState.m_orientation));
|
||||
pxRigidDynamic->setGlobalPose(transform);
|
||||
|
||||
AZStd::unique_ptr<RagdollNode> node = AZStd::make_unique<RagdollNode>(rigidBody, newBodyHandle);
|
||||
ragdoll->AddNode(AZStd::move(node));
|
||||
}
|
||||
|
||||
// Set up joints. Needs a second pass because child nodes in the ragdoll config aren't guaranteed to have
|
||||
@@ -235,7 +238,7 @@ namespace PhysX
|
||||
size_t rootIndex = SIZE_MAX;
|
||||
for (size_t nodeIndex = 0; nodeIndex < numNodes; nodeIndex++)
|
||||
{
|
||||
size_t parentIndex = parentIndices[nodeIndex];
|
||||
size_t parentIndex = configuration.m_parentIndices[nodeIndex];
|
||||
if (parentIndex < numNodes)
|
||||
{
|
||||
physx::PxRigidDynamic* parentActor = ragdoll->GetPxRigidDynamic(parentIndex);
|
||||
@@ -301,8 +304,8 @@ namespace PhysX
|
||||
}
|
||||
|
||||
ragdoll->SetRootIndex(rootIndex);
|
||||
|
||||
return ragdoll;
|
||||
|
||||
return ragdoll.release();
|
||||
}
|
||||
|
||||
physx::PxD6JointDrive CreateD6JointDrive(float stiffness, float dampingRatio, float forceLimit)
|
||||
|
||||
@@ -40,11 +40,8 @@ namespace PhysX
|
||||
|
||||
//! Creates a ragdoll based on the specified setup and initial pose.
|
||||
//! @param configuration Information about collider geometry and joint setup required to initialize the ragdoll.
|
||||
//! @param initialState Initial settings for the positions, orientations and velocities of the ragdoll nodes.
|
||||
//! @param parentIndices Identifies the parent ragdoll node for each node in the ragdoll.
|
||||
//! @param sceneHandle A handle to the physics scene in which the ragdoll should be created.
|
||||
AZStd::unique_ptr<Ragdoll> CreateRagdoll(Physics::RagdollConfiguration& configuration,
|
||||
const Physics::RagdollState& initialState, const ParentIndices& parentIndices, AzPhysics::SceneHandle sceneHandle);
|
||||
Ragdoll* CreateRagdoll(Physics::RagdollConfiguration& configuration, AzPhysics::SceneHandle sceneHandle);
|
||||
|
||||
//! Creates a joint drive with properties based on the input values.
|
||||
//! The input values are validated and the damping ratio is used to calculate the damping value used internally.
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace PhysX
|
||||
AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context);
|
||||
if (serializeContext)
|
||||
{
|
||||
serializeContext->Class<Ragdoll>()
|
||||
serializeContext->Class<PhysX::Ragdoll, Physics::Ragdoll>()
|
||||
->Version(1)
|
||||
;
|
||||
}
|
||||
@@ -56,7 +56,7 @@ namespace PhysX
|
||||
m_nodes.push_back(AZStd::move(node));
|
||||
}
|
||||
|
||||
void Ragdoll::SetParentIndices(const ParentIndices& parentIndices)
|
||||
void Ragdoll::SetParentIndices(const Physics::ParentIndices& parentIndices)
|
||||
{
|
||||
m_parentIndices = parentIndices;
|
||||
}
|
||||
@@ -109,7 +109,6 @@ namespace PhysX
|
||||
this->ApplyQueuedDisableSimulation();
|
||||
})
|
||||
{
|
||||
m_simulating = false;
|
||||
m_sceneOwner = sceneHandle;
|
||||
}
|
||||
|
||||
@@ -117,14 +116,7 @@ namespace PhysX
|
||||
{
|
||||
m_sceneStartSimHandler.Disconnect();
|
||||
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
const size_t numNodes = m_nodes.size();
|
||||
for (size_t nodeIndex = 0; nodeIndex < numNodes; nodeIndex++)
|
||||
{
|
||||
sceneInterface->RemoveSimulatedBody(m_sceneOwner, m_nodes[nodeIndex]->GetRigidBodyHandle());
|
||||
}
|
||||
}
|
||||
m_nodes.clear(); //the nodes destructor will remove the simulated body from the scene.
|
||||
}
|
||||
|
||||
void Ragdoll::ApplyQueuedEnableSimulation()
|
||||
@@ -204,7 +196,6 @@ namespace PhysX
|
||||
|
||||
sceneInterface->EnableSimulationOfBody(m_sceneOwner, m_nodes[nodeIndex]->GetRigidBodyHandle());
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
AZ_Error("PhysX Ragdoll", false, "Invalid PhysX actor for node index %i", nodeIndex);
|
||||
@@ -222,8 +213,7 @@ namespace PhysX
|
||||
}
|
||||
|
||||
sceneInterface->RegisterSceneSimulationStartHandler(m_sceneOwner, m_sceneStartSimHandler);
|
||||
|
||||
m_simulating = true;
|
||||
sceneInterface->EnableSimulationOfBody(m_sceneOwner, m_bodyHandle);
|
||||
}
|
||||
|
||||
void Ragdoll::EnableSimulationQueued(const Physics::RagdollState& initialState)
|
||||
@@ -276,7 +266,7 @@ namespace PhysX
|
||||
}
|
||||
}
|
||||
|
||||
m_simulating = false;
|
||||
sceneInterface->DisableSimulationOfBody(m_sceneOwner, m_bodyHandle);
|
||||
}
|
||||
|
||||
void Ragdoll::DisableSimulationQueued()
|
||||
|
||||
@@ -19,8 +19,6 @@
|
||||
|
||||
namespace PhysX
|
||||
{
|
||||
using ParentIndices = AZStd::vector<size_t>;
|
||||
|
||||
/// PhysX specific implementation of generic physics API Ragdoll class.
|
||||
class Ragdoll
|
||||
: public Physics::Ragdoll
|
||||
@@ -29,7 +27,7 @@ namespace PhysX
|
||||
friend class RagdollComponent;
|
||||
|
||||
AZ_CLASS_ALLOCATOR(Ragdoll, AZ::SystemAllocator, 0);
|
||||
AZ_TYPE_INFO_LEGACY(PhysX::Ragdoll, "{55D477B5-B922-4D3E-89FE-7FB7B9FDD635}", Physics::Ragdoll);
|
||||
AZ_RTTI(PhysX::Ragdoll, "{55D477B5-B922-4D3E-89FE-7FB7B9FDD635}", Physics::Ragdoll);
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
Ragdoll() = default;
|
||||
@@ -38,7 +36,7 @@ namespace PhysX
|
||||
~Ragdoll();
|
||||
|
||||
void AddNode(AZStd::unique_ptr<RagdollNode> node);
|
||||
void SetParentIndices(const ParentIndices& parentIndices);
|
||||
void SetParentIndices(const Physics::ParentIndices& parentIndices);
|
||||
void SetRootIndex(size_t nodeIndex);
|
||||
physx::PxRigidDynamic* GetPxRigidDynamic(size_t nodeIndex) const;
|
||||
physx::PxTransform GetRootPxTransform() const;
|
||||
@@ -75,7 +73,7 @@ namespace PhysX
|
||||
void ApplyQueuedDisableSimulation();
|
||||
|
||||
AZStd::vector<AZStd::unique_ptr<RagdollNode>> m_nodes;
|
||||
ParentIndices m_parentIndices;
|
||||
Physics::ParentIndices m_parentIndices;
|
||||
AZ::Outcome<size_t> m_rootIndex = AZ::Failure();
|
||||
|
||||
/// Queued initial state for the ragdoll, for EnableSimulationQueued, to be applied prior to the world update.
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#include <PhysX_precompiled.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzFramework/Physics/PhysicsScene.h>
|
||||
#include <AzFramework/Physics/Common/PhysicsSceneQueries.h>
|
||||
#include <PhysXCharacters/API/RagdollNode.h>
|
||||
#include <PhysX/NativeTypeIdentifiers.h>
|
||||
@@ -30,14 +31,14 @@ namespace PhysX
|
||||
}
|
||||
}
|
||||
|
||||
RagdollNode::RagdollNode(AzPhysics::RigidBody* rigidBody, AzPhysics::SimulatedBodyHandle rigidBodyHandle)
|
||||
: m_rigidBody(rigidBody)
|
||||
, m_rigidBodyHandle(rigidBodyHandle)
|
||||
RagdollNode::RagdollNode(AzPhysics::SceneHandle sceneHandle, Physics::RagdollNodeConfiguration& nodeConfig)
|
||||
{
|
||||
physx::PxRigidDynamic* pxRigidDynamic = static_cast<physx::PxRigidDynamic*>(m_rigidBody->GetNativePointer());
|
||||
m_actorUserData = PhysX::ActorData(pxRigidDynamic);
|
||||
m_actorUserData.SetRagdollNode(this);
|
||||
m_actorUserData.SetEntityId(m_rigidBody->GetEntityId());
|
||||
CreatePhysicsBody(sceneHandle, nodeConfig);
|
||||
}
|
||||
|
||||
RagdollNode::~RagdollNode()
|
||||
{
|
||||
DestroyPhysicsBody();
|
||||
}
|
||||
|
||||
void RagdollNode::SetJoint(const AZStd::shared_ptr<Physics::Joint>& joint)
|
||||
@@ -124,4 +125,47 @@ namespace PhysX
|
||||
{
|
||||
return m_rigidBodyHandle;
|
||||
}
|
||||
|
||||
void RagdollNode::CreatePhysicsBody(AzPhysics::SceneHandle sceneHandle, Physics::RagdollNodeConfiguration& nodeConfig)
|
||||
{
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
m_rigidBodyHandle = sceneInterface->AddSimulatedBody(sceneHandle, &nodeConfig);
|
||||
if (m_rigidBodyHandle == AzPhysics::InvalidSimulatedBodyHandle)
|
||||
{
|
||||
AZ_Error("PhysX RagdollNode", false, "Failed to create rigid body for ragdoll node %s", nodeConfig.m_debugName.c_str());
|
||||
return;
|
||||
}
|
||||
m_rigidBody = azdynamic_cast<AzPhysics::RigidBody*>(sceneInterface->GetSimulatedBodyFromHandle(sceneHandle, m_rigidBodyHandle));
|
||||
}
|
||||
if (m_rigidBody == nullptr)
|
||||
{
|
||||
AZ_Error("PhysX RagdollNode", false, "Failed to create rigid body for ragdoll node %s", nodeConfig.m_debugName.c_str());
|
||||
return;
|
||||
}
|
||||
m_sceneOwner = sceneHandle;
|
||||
|
||||
physx::PxRigidDynamic* pxRigidDynamic = static_cast<physx::PxRigidDynamic*>(m_rigidBody->GetNativePointer());
|
||||
physx::PxTransform transform(PxMathConvert(nodeConfig.m_position), PxMathConvert(nodeConfig.m_orientation));
|
||||
pxRigidDynamic->setGlobalPose(transform);
|
||||
|
||||
m_actorUserData = PhysX::ActorData(pxRigidDynamic);
|
||||
m_actorUserData.SetRagdollNode(this);
|
||||
m_actorUserData.SetEntityId(m_rigidBody->GetEntityId());
|
||||
}
|
||||
|
||||
void RagdollNode::DestroyPhysicsBody()
|
||||
{
|
||||
if (m_rigidBody != nullptr)
|
||||
{
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
sceneInterface->RemoveSimulatedBody(m_sceneOwner, m_rigidBodyHandle);
|
||||
}
|
||||
m_rigidBody = nullptr;
|
||||
m_rigidBodyHandle = AzPhysics::InvalidSimulatedBodyHandle;
|
||||
m_sceneOwner = AzPhysics::InvalidSceneHandle;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace PhysX
|
||||
|
||||
@@ -29,8 +29,8 @@ namespace PhysX
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
RagdollNode() = default;
|
||||
explicit RagdollNode(AzPhysics::RigidBody* rigidBody, AzPhysics::SimulatedBodyHandle rigidBodyHandle);
|
||||
~RagdollNode() = default;
|
||||
explicit RagdollNode(AzPhysics::SceneHandle sceneHandle, Physics::RagdollNodeConfiguration& nodeConfig);
|
||||
~RagdollNode();
|
||||
|
||||
void SetJoint(const AZStd::shared_ptr<Physics::Joint>& joint);
|
||||
|
||||
@@ -58,9 +58,13 @@ namespace PhysX
|
||||
AzPhysics::SimulatedBodyHandle GetRigidBodyHandle() const;
|
||||
|
||||
private:
|
||||
void CreatePhysicsBody(AzPhysics::SceneHandle sceneHandle, Physics::RagdollNodeConfiguration& nodeConfig);
|
||||
void DestroyPhysicsBody();
|
||||
|
||||
AZStd::shared_ptr<Physics::Joint> m_joint;
|
||||
AzPhysics::RigidBody* m_rigidBody;
|
||||
AzPhysics::SimulatedBodyHandle m_rigidBodyHandle = AzPhysics::InvalidSimulatedBodyHandle;
|
||||
AzPhysics::SceneHandle m_sceneOwner = AzPhysics::InvalidSceneHandle;
|
||||
PhysX::ActorData m_actorUserData;
|
||||
};
|
||||
} // namespace PhysX
|
||||
|
||||
@@ -412,7 +412,6 @@ namespace PhysX
|
||||
AZ::TransformBus::EventResult(entityTranslation, GetEntityId(), &AZ::TransformBus::Events::GetWorldTranslation);
|
||||
m_characterConfig->m_position = entityTranslation;
|
||||
|
||||
AZ_Assert(m_controller == nullptr, "Calling create CharacterControllerComponent::CreateController() with an already created controller.");
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
AzPhysics::SimulatedBodyHandle bodyHandle = sceneInterface->AddSimulatedBody(defaultSceneHandle, m_characterConfig.get());
|
||||
@@ -451,8 +450,8 @@ namespace PhysX
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
sceneInterface->RemoveSimulatedBody(m_controller->m_sceneOwner, m_controller->m_bodyHandle);
|
||||
m_controller = nullptr;
|
||||
}
|
||||
m_controller = nullptr;
|
||||
|
||||
m_preSimulateHandler.Disconnect();
|
||||
|
||||
|
||||
@@ -55,6 +55,16 @@ namespace PhysX
|
||||
}
|
||||
}
|
||||
|
||||
if (classElement.GetVersion() < 3)
|
||||
{
|
||||
int ragdollElementIndex = classElement.FindElement(AZ_CRC_CE("PhysXRagdoll"));
|
||||
|
||||
if (ragdollElementIndex >= 0)
|
||||
{
|
||||
classElement.RemoveElement(ragdollElementIndex);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -66,8 +76,7 @@ namespace PhysX
|
||||
if (serializeContext)
|
||||
{
|
||||
serializeContext->Class<RagdollComponent, AZ::Component>()
|
||||
->Version(2, &VersionConverter)
|
||||
->Field("PhysXRagdoll", &RagdollComponent::m_ragdoll)
|
||||
->Version(3, &VersionConverter)
|
||||
->Field("PositionIterations", &RagdollComponent::m_positionIterations)
|
||||
->Field("VelocityIterations", &RagdollComponent::m_velocityIterations)
|
||||
->Field("EnableJointProjection", &RagdollComponent::m_enableJointProjection)
|
||||
@@ -187,7 +196,7 @@ namespace PhysX
|
||||
|
||||
Physics::Ragdoll* RagdollComponent::GetRagdoll()
|
||||
{
|
||||
return m_ragdoll.get();
|
||||
return m_ragdoll;
|
||||
}
|
||||
|
||||
void RagdollComponent::GetState(Physics::RagdollState& ragdollState) const
|
||||
@@ -250,7 +259,7 @@ namespace PhysX
|
||||
|
||||
AzPhysics::SimulatedBody* RagdollComponent::GetWorldBody()
|
||||
{
|
||||
return m_ragdoll.get();
|
||||
return GetRagdoll();
|
||||
}
|
||||
|
||||
AzPhysics::SceneQueryHit RagdollComponent::RayCast(const AzPhysics::RayCastRequest& request)
|
||||
@@ -283,8 +292,8 @@ namespace PhysX
|
||||
return;
|
||||
}
|
||||
|
||||
ParentIndices parentIndices;
|
||||
parentIndices.resize(numNodes);
|
||||
|
||||
ragdollConfiguration.m_parentIndices.resize(numNodes);
|
||||
for (size_t nodeIndex = 0; nodeIndex < numNodes; nodeIndex++)
|
||||
{
|
||||
AZStd::string parentName;
|
||||
@@ -292,7 +301,7 @@ namespace PhysX
|
||||
AzFramework::CharacterPhysicsDataRequestBus::EventResult(parentName, GetEntityId(),
|
||||
&AzFramework::CharacterPhysicsDataRequests::GetParentNodeName, nodeName);
|
||||
AZ::Outcome<size_t> parentIndex = Utils::Characters::GetNodeIndex(ragdollConfiguration, parentName);
|
||||
parentIndices[nodeIndex] = parentIndex ? parentIndex.GetValue() : SIZE_MAX;
|
||||
ragdollConfiguration.m_parentIndices[nodeIndex] = parentIndex ? parentIndex.GetValue() : SIZE_MAX;
|
||||
|
||||
ragdollConfiguration.m_nodes[nodeIndex].m_entityId = GetEntityId();
|
||||
}
|
||||
@@ -303,12 +312,17 @@ namespace PhysX
|
||||
|
||||
AZ::Transform entityTransform = AZ::Transform::CreateIdentity();
|
||||
AZ::TransformBus::EventResult(entityTransform, GetEntityId(), &AZ::TransformBus::Events::GetWorldTM);
|
||||
Physics::RagdollState bindPoseWorld = GetBindPoseWorld(bindPose, entityTransform);
|
||||
ragdollConfiguration.m_initialState = GetBindPoseWorld(bindPose, entityTransform);
|
||||
|
||||
AzPhysics::SceneHandle defaultSceneHandle = AzPhysics::InvalidSceneHandle;
|
||||
Physics::DefaultWorldBus::BroadcastResult(defaultSceneHandle, &Physics::DefaultWorldRequests::GetDefaultSceneHandle);
|
||||
m_ragdoll = Utils::Characters::CreateRagdoll(ragdollConfiguration, bindPoseWorld, parentIndices, defaultSceneHandle);
|
||||
if (!m_ragdoll)
|
||||
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
AzPhysics::SimulatedBodyHandle bodyHandle = sceneInterface->AddSimulatedBody(defaultSceneHandle, &ragdollConfiguration);
|
||||
m_ragdoll = azdynamic_cast<PhysX::Ragdoll*>(sceneInterface->GetSimulatedBodyFromHandle(defaultSceneHandle, bodyHandle));
|
||||
}
|
||||
if (m_ragdoll == nullptr)
|
||||
{
|
||||
AZ_Error("PhysX Ragdoll Component", false, "Failed to create ragdoll.");
|
||||
return;
|
||||
@@ -358,7 +372,11 @@ namespace PhysX
|
||||
AzFramework::RagdollPhysicsNotificationBus::Event(GetEntityId(),
|
||||
&AzFramework::RagdollPhysicsNotifications::OnRagdollDeactivated);
|
||||
|
||||
m_ragdoll.reset();
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
sceneInterface->RemoveSimulatedBody(m_ragdoll->m_sceneOwner, m_ragdoll->m_bodyHandle);
|
||||
}
|
||||
m_ragdoll = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace PhysX
|
||||
, public AzFramework::CharacterPhysicsDataNotificationBus::Handler
|
||||
{
|
||||
public:
|
||||
AZ_COMPONENT(RagdollComponent, "{B89498F8-4718-42FE-A457-A377DD0D61A0}");
|
||||
AZ_COMPONENT(PhysX::RagdollComponent, "{B89498F8-4718-42FE-A457-A377DD0D61A0}");
|
||||
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
@@ -105,7 +105,7 @@ namespace PhysX
|
||||
|
||||
bool IsJointProjectionVisible();
|
||||
|
||||
AZStd::unique_ptr<Ragdoll> m_ragdoll;
|
||||
Ragdoll* m_ragdoll;
|
||||
/// Minimum number of position iterations to perform in the PhysX solver.
|
||||
/// Lower iteration counts are less expensive but may behave less realistically.
|
||||
AZ::u32 m_positionIterations = 16;
|
||||
|
||||
@@ -209,6 +209,13 @@ namespace PhysX
|
||||
return controller;
|
||||
}
|
||||
|
||||
AzPhysics::SimulatedBody* CreateRagdollBody(PhysXScene* scene,
|
||||
const Physics::RagdollConfiguration* ragdollConfig)
|
||||
{
|
||||
return Utils::Characters::CreateRagdoll(const_cast<Physics::RagdollConfiguration&>(*ragdollConfig),
|
||||
scene->GetSceneHandle());
|
||||
}
|
||||
|
||||
//helper to perform a ray cast
|
||||
AzPhysics::SceneQueryHits RayCast(const AzPhysics::RayCastRequest* raycastRequest,
|
||||
AZStd::vector<physx::PxRaycastHit>& raycastBuffer,
|
||||
@@ -622,6 +629,15 @@ namespace PhysX
|
||||
{
|
||||
newBody = Internal::CreateCharacterBody(this, azdynamic_cast<const Physics::CharacterConfiguration*>(simulatedBodyConfig));
|
||||
}
|
||||
else if (azrtti_istypeof<Physics::RagdollConfiguration>(simulatedBodyConfig))
|
||||
{
|
||||
newBody = Internal::CreateRagdollBody(this, azdynamic_cast<const Physics::RagdollConfiguration*>(simulatedBodyConfig));
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Warning("PhysXScene", false, "Unknown SimulatedBodyConfiguration.");
|
||||
return AzPhysics::InvalidSimulatedBodyHandle;
|
||||
}
|
||||
|
||||
if (newBody != nullptr)
|
||||
{
|
||||
@@ -648,8 +664,11 @@ namespace PhysX
|
||||
newBody->m_bodyHandle = newBodyHandle;
|
||||
m_simulatedBodyAddedEvent.Signal(m_sceneHandle, newBodyHandle);
|
||||
|
||||
// Enable simulation by default (not signaling OnSimulationBodySimulationEnabled event)
|
||||
EnableSimulationOfBodyInternal(*newBody);
|
||||
// Enable simulation by default (not signaling OnSimulationBodySimulationEnabled event)
|
||||
if (simulatedBodyConfig->m_startSimulationEnabled)
|
||||
{
|
||||
EnableSimulationOfBodyInternal(*newBody);
|
||||
}
|
||||
|
||||
return newBodyHandle;
|
||||
}
|
||||
@@ -878,7 +897,8 @@ namespace PhysX
|
||||
void PhysXScene::EnableSimulationOfBodyInternal(AzPhysics::SimulatedBody& body)
|
||||
{
|
||||
//character controller is a special actor and only needs the m_simulating flag set,
|
||||
if (!azrtti_istypeof<PhysX::CharacterController>(body))
|
||||
if (!azrtti_istypeof<PhysX::CharacterController>(body) &&
|
||||
!azrtti_istypeof<PhysX::Ragdoll>(body))
|
||||
{
|
||||
auto pxActor = static_cast<physx::PxActor*>(body.GetNativePointer());
|
||||
AZ_Assert(pxActor, "Simulated Body doesn't have a valid physx actor");
|
||||
@@ -904,7 +924,8 @@ namespace PhysX
|
||||
void PhysXScene::DisableSimulationOfBodyInternal(AzPhysics::SimulatedBody& body)
|
||||
{
|
||||
//character controller is a special actor and only needs the m_simulating flag set,
|
||||
if (!azrtti_istypeof<PhysX::CharacterController>(body))
|
||||
if (!azrtti_istypeof<PhysX::CharacterController>(body) &&
|
||||
!azrtti_istypeof<PhysX::Ragdoll>(body))
|
||||
{
|
||||
auto pxActor = static_cast<physx::PxActor*>(body.GetNativePointer());
|
||||
AZ_Assert(pxActor, "Simulated Body doesn't have a valid physx actor");
|
||||
@@ -948,11 +969,14 @@ namespace PhysX
|
||||
|
||||
void PhysXScene::ClearDeferedDeletions()
|
||||
{
|
||||
for (auto& simulatedBody : m_deferredDeletions)
|
||||
// swap the deletions in case the simulated body
|
||||
// manages more bodies and removes them on destruction (ie. Ragdoll).
|
||||
AZStd::vector<AzPhysics::SimulatedBody*> deletions;
|
||||
deletions.swap(m_deferredDeletions);
|
||||
for (auto* simulatedBody : deletions)
|
||||
{
|
||||
delete simulatedBody;
|
||||
}
|
||||
m_deferredDeletions.clear();
|
||||
}
|
||||
|
||||
void PhysXScene::ProcessTriggerEvents()
|
||||
|
||||
@@ -125,19 +125,24 @@ namespace PhysX::Benchmarks
|
||||
return GetTPose(AZ::Vector3::CreateZero(), simulationType);
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<PhysX::Ragdoll> CreateRagdoll(AzPhysics::SceneHandle sceneHandle)
|
||||
PhysX::Ragdoll* CreateRagdoll(AzPhysics::SceneHandle sceneHandle)
|
||||
{
|
||||
Physics::RagdollConfiguration* configuration =
|
||||
AZ::Utils::LoadObjectFromFile<Physics::RagdollConfiguration>(AZ::Test::GetEngineRootPath() + "/Gems/PhysX/Code/Tests/RagdollConfiguration.xml");
|
||||
|
||||
Physics::RagdollState initialState = GetTPose();
|
||||
PhysX::ParentIndices parentIndices;
|
||||
configuration->m_initialState = GetTPose();
|
||||
configuration->m_parentIndices.reserve(configuration->m_nodes.size());
|
||||
for (int i = 0; i < configuration->m_nodes.size(); i++)
|
||||
{
|
||||
parentIndices.push_back(RagdollTestData::ParentIndices[i]);
|
||||
configuration->m_parentIndices.push_back(RagdollTestData::ParentIndices[i]);
|
||||
}
|
||||
|
||||
return PhysX::Utils::Characters::CreateRagdoll(*configuration, initialState, parentIndices, sceneHandle);
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
AzPhysics::SimulatedBodyHandle bodyHandle = sceneInterface->AddSimulatedBody(sceneHandle, configuration);
|
||||
return azdynamic_cast<Ragdoll*>(sceneInterface->GetSimulatedBodyFromHandle(sceneHandle, bodyHandle));
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
//! BM_Ragdoll_AtRest - This test just spawns the requested number of ragdolls and places them near the terrain
|
||||
@@ -148,7 +153,7 @@ namespace PhysX::Benchmarks
|
||||
const int numRagdolls = static_cast<const int>(state.range(0));
|
||||
|
||||
//create ragdolls
|
||||
AZStd::vector<AZStd::unique_ptr<PhysX::Ragdoll>> ragdolls;
|
||||
AZStd::vector<PhysX::Ragdoll*> ragdolls;
|
||||
ragdolls.reserve(numRagdolls);
|
||||
for (int i = 0; i < numRagdolls; i++)
|
||||
{
|
||||
@@ -218,7 +223,7 @@ namespace PhysX::Benchmarks
|
||||
washingMachineCentre, RagdollConstants::WashingMachine::BladeRPM);
|
||||
|
||||
//create ragdolls
|
||||
AZStd::vector<AZStd::unique_ptr<PhysX::Ragdoll>> ragdolls;
|
||||
AZStd::vector<PhysX::Ragdoll*> ragdolls;
|
||||
ragdolls.reserve(numRagdolls);
|
||||
for (int i = 0; i < numRagdolls; i++)
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace PhysX
|
||||
<Class name="AZ::Component" field="BaseClass1" type="{EDFCB2CF-F75D-43BE-B26B-F35821B29247}">
|
||||
<Class name="AZ::u64" field="Id" value="0" type="{D6597933-47CD-4FC8-B911-63F3E2B0993A}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="PhysXRagdoll" type="{A3E470C6-D6E0-5A32-9E83-96C379D9E7FA}"/>
|
||||
<Class name="PhysX::Ragdoll" field="PhysXRagdoll" type="{55D477B5-B922-4D3E-89FE-7FB7B9FDD635}"/>
|
||||
</Class>
|
||||
</ObjectStream>)DELIMITER";
|
||||
|
||||
@@ -63,19 +63,24 @@ namespace PhysX
|
||||
return ragdollState;
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<Ragdoll> CreateRagdoll(AzPhysics::SceneHandle sceneHandle)
|
||||
Ragdoll* CreateRagdoll(AzPhysics::SceneHandle sceneHandle)
|
||||
{
|
||||
Physics::RagdollConfiguration* configuration =
|
||||
AZ::Utils::LoadObjectFromFile<Physics::RagdollConfiguration>(AZ::Test::GetCurrentExecutablePath() + "/Test.Assets/Gems/PhysX/Code/Tests/RagdollConfiguration.xml");
|
||||
|
||||
Physics::RagdollState initialState = GetTPose();
|
||||
ParentIndices parentIndices;
|
||||
configuration->m_initialState = GetTPose();
|
||||
configuration->m_parentIndices.reserve(configuration->m_nodes.size());
|
||||
for (int i = 0; i < configuration->m_nodes.size(); i++)
|
||||
{
|
||||
parentIndices.push_back(RagdollTestData::ParentIndices[i]);
|
||||
configuration->m_parentIndices.push_back(RagdollTestData::ParentIndices[i]);
|
||||
}
|
||||
|
||||
return Utils::Characters::CreateRagdoll(*configuration, initialState, parentIndices, sceneHandle);
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
AzPhysics::SimulatedBodyHandle bodyHandle = sceneInterface->AddSimulatedBody(sceneHandle, configuration);
|
||||
return azdynamic_cast<Ragdoll*>(sceneInterface->GetSimulatedBodyFromHandle(sceneHandle, bodyHandle));
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
#if AZ_TRAIT_DISABLE_FAILED_PHYSICS_TESTS
|
||||
|
||||
@@ -511,13 +511,13 @@ namespace PhysXDebug
|
||||
|
||||
void SystemComponent::RenderBuffers()
|
||||
{
|
||||
if (gEnv && !m_linePoints.empty())
|
||||
if (gEnv && gEnv->pRenderer && !m_linePoints.empty())
|
||||
{
|
||||
AZ_Assert(m_linePoints.size() == m_lineColors.size(), "Lines: Expected an equal number of points to colors.");
|
||||
gEnv->pRenderer->GetIRenderAuxGeom()->DrawLines(m_linePoints.begin(), m_linePoints.size(), m_lineColors.begin(), 1.0f);
|
||||
}
|
||||
|
||||
if (gEnv && !m_trianglePoints.empty())
|
||||
if (gEnv && gEnv->pRenderer && !m_trianglePoints.empty())
|
||||
{
|
||||
AZ_Assert(m_trianglePoints.size() == m_triangleColors.size(), "Triangles: Expected an equal number of points to colors.");
|
||||
gEnv->pRenderer->GetIRenderAuxGeom()->DrawTriangles(m_trianglePoints.begin(), m_trianglePoints.size(), m_triangleColors.begin());
|
||||
@@ -829,7 +829,7 @@ namespace PhysXDebug
|
||||
{
|
||||
AZ_PROFILE_FUNCTION(AZ::Debug::ProfileCategory::Physics);
|
||||
|
||||
if (m_settings.m_visualizationEnabled && m_culling.m_boxWireframe)
|
||||
if (gEnv && gEnv->pRenderer && m_settings.m_visualizationEnabled && m_culling.m_boxWireframe)
|
||||
{
|
||||
ColorB wireframeColor = MapOriginalPhysXColorToUserDefinedValues(1);
|
||||
AABB lyAABB(AZAabbToLyAABB(cullingBoxAabb));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,109 +1,56 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="aimposes01" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{394BA97A-7EF3-56B3-ADE2-D9D734AA5B6B}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MotionRangeRule" field="element" version="1" type="{3107B08E-5D9D-49A0-8B1B-2133B5A1B041}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="startFrame" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="unsigned int" field="endFrame" value="0" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="bool" field="processRangeRuleConversion" value="false" type="{A0CA880C-AFE4-43CB-926C-59AC48496112}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="aimposes01-1" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{991539D2-8F87-40EF-9664-7994FFEA6B34}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MotionRangeRule" field="element" version="1" type="{3107B08E-5D9D-49A0-8B1B-2133B5A1B041}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="startFrame" value="1" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="unsigned int" field="endFrame" value="1" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="bool" field="processRangeRuleConversion" value="false" type="{A0CA880C-AFE4-43CB-926C-59AC48496112}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="aimposes01-2" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{DBCED014-4E7E-4865-9F94-F84B85F6B007}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MotionRangeRule" field="element" version="1" type="{3107B08E-5D9D-49A0-8B1B-2133B5A1B041}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="unsigned int" field="startFrame" value="2" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="unsigned int" field="endFrame" value="2" type="{43DA906B-7DEF-4CA8-9790-854106D3F983}"/>
|
||||
<Class name="bool" field="processRangeRuleConversion" value="false" type="{A0CA880C-AFE4-43CB-926C-59AC48496112}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "aimposes01",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{394BA97A-7EF3-56B3-ADE2-D9D734AA5B6B}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MotionRangeRule"
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "aimposes01-1",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{991539D2-8F87-40EF-9664-7994FFEA6B34}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MotionRangeRule",
|
||||
"startFrame": 1,
|
||||
"endFrame": 1
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "aimposes01-2",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{DBCED014-4E7E-4865-9F94-F84B85F6B007}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MotionRangeRule",
|
||||
"startFrame": 2,
|
||||
"endFrame": 2
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="idle_cwby_01" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{492E8A35-2647-581F-A701-F1D2A9FBB979}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="IdleState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "idle_cwby_01",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{492E8A35-2647-581F-A701-F1D2A9FBB979}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,137 +1,61 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="reload" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{28092685-3550-5583-A666-CD60018AB2E9}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="ReloadEvent" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="ReloadEvent" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.5092110" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.5092110" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="AmmoBack" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="ReloadEvent" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="1.2446810" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="1.2446810" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="ReleaseShells" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="ReloadEvent" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="1.4295191" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="1.4295191" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="ReloadEnd" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "reload",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{28092685-3550-5583-A666-CD60018AB2E9}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "ReloadEvent",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "ReloadEvent",
|
||||
"startTime": 0.509211003780365,
|
||||
"endTime": 0.509211003780365,
|
||||
"eventDatas": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "ReloadEvent",
|
||||
"startTime": 1.2446810007095338,
|
||||
"endTime": 1.2446810007095338,
|
||||
"eventDatas": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "ReloadEvent",
|
||||
"startTime": 1.4295190572738648,
|
||||
"endTime": 1.4295190572738648,
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,137 +1,59 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="run" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{7D6889F1-6536-57B6-8B02-93C815D1ADA9}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.3396752" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.3396752" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="LeftFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="RightFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.6319157" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.6319157" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="RightFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="LeftFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="RunState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "run",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{7D6889F1-6536-57B6-8B02-93C815D1ADA9}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "Sync",
|
||||
"startTime": 0.3396751880645752,
|
||||
"endTime": 0.3396751880645752,
|
||||
"eventDatas": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "Sync",
|
||||
"startTime": 0.6319156885147095,
|
||||
"endTime": 0.6319156885147095,
|
||||
"eventDatas": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,47 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="shootrecoil" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{A1DC3BB2-3324-50F3-8C4B-BBFB61623129}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="RecoilEvent" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="RecoilEvent" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.2325000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.2325000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="RecoilEnd" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "shootrecoil",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{A1DC3BB2-3324-50F3-8C4B-BBFB61623129}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "RecoilEvent",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "RecoilEvent",
|
||||
"startTime": 0.23250000178813935,
|
||||
"endTime": 0.23250000178813935,
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafeback" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{CA0EF712-DA36-5DA8-B474-207BD250CF2F}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameEvents" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameEvents" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafeback",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{CA0EF712-DA36-5DA8-B474-207BD250CF2F}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameEvents",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameEvents",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafebackl" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{9433F0E6-EA1A-5473-AA21-EE4DC45387C1}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafebackl",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{9433F0E6-EA1A-5473-AA21-EE4DC45387C1}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafebackr" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{5392AC3D-FF18-51F5-984E-248CAAF09F2E}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafebackr",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{5392AC3D-FF18-51F5-984E-248CAAF09F2E}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+59
-137
@@ -1,137 +1,59 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafeforward" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{2FB879C6-B3FB-5BD8-B52B-1012000351C2}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.2708907" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.2708907" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="RightFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="LeftFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.9699266" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.9699266" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="LeftFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="RightFoot" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafeforward",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{2FB879C6-B3FB-5BD8-B52B-1012000351C2}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "Sync",
|
||||
"startTime": 0.2708907127380371,
|
||||
"endTime": 0.2708907127380371,
|
||||
"eventDatas": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "Sync",
|
||||
"startTime": 0.9699265956878662,
|
||||
"endTime": 0.9699265956878662,
|
||||
"eventDatas": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+45
-91
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafeforwardl" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{2D945D52-C313-57A3-B722-C6402ACC3506}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafeforwardl",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{2D945D52-C313-57A3-B722-C6402ACC3506}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+45
-91
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafeforwardr" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{3E691B9F-C0D7-5BFD-BBBC-50BAE737886E}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafeforwardr",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{3E691B9F-C0D7-5BFD-BBBC-50BAE737886E}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafeinplace" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{A2686CFC-D49B-5468-AE9F-E3F84FA75C6D}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafeinplace",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{A2686CFC-D49B-5468-AE9F-E3F84FA75C6D}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="strafeleft" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{2093C7DF-0C51-5C2B-B763-4DC1CC81D10E}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "strafeleft",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{2093C7DF-0C51-5C2B-B763-4DC1CC81D10E}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,91 +1,45 @@
|
||||
<ObjectStream version="3">
|
||||
<Class name="SceneManifest" version="1" type="{9274AD17-3212-4651-9F3B-7DCCB080E467}">
|
||||
<Class name="AZStd::vector" field="values" type="{5D6A7C67-11CA-59A4-829B-0B20B781B292}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{EB7522F9-0E87-55A9-A191-E924DC5AE867}">
|
||||
<Class name="MotionGroup" field="element" version="3" type="{1B0ABB1E-F6DF-4534-9A35-2DD8244BF58C}">
|
||||
<Class name="IMotionGroup" field="BaseClass1" version="1" type="{1CA400A8-2C3E-423D-B8A3-C457EF88E533}">
|
||||
<Class name="IGroup" field="BaseClass1" version="1" type="{DE008E67-790D-4672-A73A-5CA0F31EDD2D}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="name" value="straferight" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="selectedRootBone" value="RootNode.Reference" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZ::Uuid" field="id" value="{CE0E45E9-4B8C-5340-9521-B6290BAB24FC}" type="{E152C105-A133-4D03-BBF8-3D4B2FBA3E2A}"/>
|
||||
<Class name="RuleContainer" field="rules" version="1" type="{2C20D3DF-57FF-4A31-8680-A4D45302B9CF}">
|
||||
<Class name="AZStd::vector" field="rules" type="{B5BDB053-178F-5D55-8663-70897A71B7C9}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="CoordinateSystemRule" field="element" version="1" type="{603207E2-4F55-4C33-9AAB-98CA75C1E351}">
|
||||
<Class name="IRule" field="BaseClass1" version="1" type="{81267F8B-3963-423B-9FF7-D276D82CD110}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
</Class>
|
||||
<Class name="int" field="targetCoordinateSystem" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{0BB4AFBA-F087-55C7-95DF-01D71F6CB052}">
|
||||
<Class name="MetaDataRule" field="element" version="2" type="{8D759063-7D2E-4543-8EB3-AB510A5886CF}">
|
||||
<Class name="IManifestObject" field="BaseClass1" type="{3B839407-1884-4FF4-ABEA-CA9D347E83F7}"/>
|
||||
<Class name="AZStd::vector" field="commands" type="{C9984A24-DA9E-518F-9F81-27E51FAEB1F7}">
|
||||
<Class name="CommandSystem::CommandAdjustMotion" field="element" version="1" type="{A8977553-4011-4BEB-97C8-6AE44B07C7A8}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="dirtyFlag" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
<Class name="AZStd::optional" field="motionExtractionFlags" type="{43BA4537-CBCC-54F5-B403-84188A203D60}">
|
||||
<Class name="unsigned char" field="element" value="0" type="{72B9409A-7D1A-4831-9CFE-FCB3FADD3426}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::optional" field="name" type="{B0D91084-263A-54B9-A4F3-7C5F4240E248}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="Sync" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEventTrack" field="element" version="1" type="{961F762D-5B90-4E21-8692-9FADDCA54E6C}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::optional" field="eventTrackIndex" type="{5BC30B08-5E9C-5B73-BDE4-4BE8170C21C6}"/>
|
||||
<Class name="AZStd::optional" field="isEnabled" type="{0170062C-2E7E-5CEB-BAB8-F7663BEF7B3E}"/>
|
||||
</Class>
|
||||
<Class name="CommandSystem::CommandCreateMotionEvent" field="element" type="{D19C2AFB-A5AA-4367-BCFC-02EB88C1B61F}">
|
||||
<Class name="MCore::Command" field="BaseClass1" version="1" type="{49C636CE-7C0E-408A-A0F7-F7D12647EFBA}"/>
|
||||
<Class name="CommandSystem::MotionIdCommandMixin" field="BaseClass2" version="1" type="{968E9513-3159-4469-B5FA-97D0920456E3}">
|
||||
<Class name="int" field="motionID" value="0" type="{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="eventTrackName" value="GameState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="float" field="startTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="float" field="endTime" value="0.0000000" type="{EA2C3E90-AFBE-44D4-A90D-FAAF79BAF93D}"/>
|
||||
<Class name="AZStd::optional" field="eventDatas" type="{C69F2148-2DBF-5C3D-8154-447C6E99D041}">
|
||||
<Class name="AZStd::vector" field="element" type="{4918F644-6F31-5DC0-92CC-471D16563C8A}">
|
||||
<Class name="AZStd::shared_ptr" field="element" type="{FA64741F-5600-53BC-9B56-A81DD4938FF5}">
|
||||
<Class name="TwoStringEventData" field="element" version="1" type="{A437CD65-4012-47DE-BC60-4F9EC2A9ACEE}">
|
||||
<Class name="EventDataSyncable" field="BaseClass1" version="1" type="{18A0050C-D05A-424C-B645-8E3B31120CBA}">
|
||||
<Class name="EventData" field="BaseClass1" version="1" type="{F6AFCD3B-D58E-4821-9E7C-D1F437304E5D}"/>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="subject" value="StrafeState" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="parameters" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
<Class name="AZStd::string" field="mirrorSubject" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
<Class name="AZStd::string" field="metaData" value="" type="{03AAAB3F-5C47-5A66-9EBC-D5FA4DB353C9}"/>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</Class>
|
||||
</ObjectStream>
|
||||
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "MotionGroup",
|
||||
"name": "straferight",
|
||||
"selectedRootBone": "RootNode.Reference",
|
||||
"id": "{CE0E45E9-4B8C-5340-9521-B6290BAB24FC}",
|
||||
"rules": {
|
||||
"rules": [
|
||||
{
|
||||
"$type": "MetaDataRule",
|
||||
"commands": [
|
||||
{
|
||||
"$type": "CommandSystem::CommandAdjustMotion",
|
||||
"dirtyFlag": {},
|
||||
"motionExtractionFlags": {},
|
||||
"name": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "Sync",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEventTrack",
|
||||
"eventTrackName": "GameState",
|
||||
"eventTrackIndex": {},
|
||||
"isEnabled": {}
|
||||
},
|
||||
{
|
||||
"$type": "CommandSystem::CommandCreateMotionEvent",
|
||||
"eventTrackName": "GameState",
|
||||
"eventDatas": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "MotionSamplingRule"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -528,8 +528,10 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
const auto& variableId = varConfig.m_graphVariable.GetVariableId();
|
||||
|
||||
// We only add component sourced graph properties to the script canvas component, so if this variable was switched to a graph-only property remove it.
|
||||
// Also be sure to remove this variable if it's been deleted entirely.
|
||||
auto graphVariable = graphVarData.FindVariable(variableId);
|
||||
if (!graphVariable->IsComponentProperty())
|
||||
if (!graphVariable || !graphVariable->IsComponentProperty())
|
||||
{
|
||||
oldVariableIds.push_back(variableId);
|
||||
}
|
||||
|
||||
@@ -1,202 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bb76d30a6782e42737778d75d67192eff8770745a327c7f0bcb172478bbee693
|
||||
size 3334464
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:60ae111931f84ebfd0fb477f894c16193f2b661448610ef28dadb6e25669f6b6
|
||||
size 2307704
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b77a7b85064278b9550fb4926ede40486401023fa0aa3791e26c5b54c89ed065
|
||||
size 3076056
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5d84217997c2c29c46e2df33883a9e869ba3a65f22dd014b858dee25cc75f199
|
||||
size 11129296
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b43625a00c5e82b21ffbd3f76b15a02b556497a11dea64a70bae065dc6db383a
|
||||
size 9991040
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:36d6797b5180e458a04f39ebc7ccc4e9a077f94161aa6a1aa500a6dd2532f677
|
||||
size 76256
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6a976d5ae4e58c41b1203c37c0538ce9b690bfd2c7bd41602c29bb628a4bed12
|
||||
size 10371432
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9d7a99dd8cf3b1cadb7e638ede71bf143e787189352800cebe18b6148748497d
|
||||
size 2312800
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7721d60e9c15dc07c63b0c457047f359dcd21de08ca1a1c858cb20799be83d6d
|
||||
size 1802480
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:307a8ac4a2bfc08ff98e10063b503ce7f7dbc8c45bfa3eeb1459f28fced0a69a
|
||||
size 2532480
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user