Merge branch 'stabilization/2106' into redcode/SPEC-7563

This commit is contained in:
Esteban Papp
2021-06-30 09:20:08 -07:00
55 changed files with 1182 additions and 972 deletions
@@ -38,4 +38,30 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
COMPONENT
Sandbox
)
endif()
ly_add_pytest(
NAME AutomatedTesting::EditorTestWithGPU
TEST_REQUIRES gpu
PATH ${CMAKE_CURRENT_LIST_DIR}/test_Editor_NewExistingLevels_Works.py
TIMEOUT 100
RUNTIME_DEPENDENCIES
AZ::AssetProcessor
AZ::PythonBindingsExample
Legacy::Editor
AutomatedTesting.GameLauncher
AutomatedTesting.Assets
)
ly_add_pytest(
NAME AutomatedTesting::GameLauncherWithGPU
TEST_REQUIRES gpu
PATH ${CMAKE_CURRENT_LIST_DIR}/test_GameLauncher_EnterExitGameMode_Works.py
TIMEOUT 100
RUNTIME_DEPENDENCIES
AZ::AssetProcessor
AZ::PythonBindingsExample
Legacy::Editor
AutomatedTesting.GameLauncher
AutomatedTesting.Assets
)
endif()
@@ -2,6 +2,9 @@
Copyright (c) Contributors to the Open 3D Engine Project
SPDX-License-Identifier: Apache-2.0 OR MIT
Test should run in both gpu and non gpu
"""
import pytest
@@ -0,0 +1,104 @@
"""
Copyright (c) Contributors to the Open 3D Engine Project
SPDX-License-Identifier: Apache-2.0 OR MIT
UI Apps: AutomatedTesting.GameLauncher
Launch AutomatedTesting.GameLauncher with Simple level
Test should run in both gpu and non gpu
"""
import pytest
import psutil
# Bail on the test if ly_test_tools doesn't exist.
pytest.importorskip("ly_test_tools")
import ly_test_tools.environment.waiter as waiter
from ly_remote_console.remote_console_commands import RemoteConsole as RemoteConsole
from ly_remote_console.remote_console_commands import (
send_command_and_expect_response as send_command_and_expect_response,
)
@pytest.mark.parametrize("launcher_platform", ["windows"])
@pytest.mark.parametrize("project", ["AutomatedTesting"])
@pytest.mark.parametrize("level", ["Simple"])
@pytest.mark.SUITE_sandbox
class TestRemoteConsoleLoadLevelWorks(object):
@pytest.fixture
def remote_console_instance(self, request):
console = RemoteConsole()
def teardown():
if console.connected:
console.stop()
request.addfinalizer(teardown)
return console
def test_RemoteConsole_LoadLevel_Works(self, launcher, level, remote_console_instance, launcher_platform):
expected_lines = ['Level system is loading "Simple"']
self.launch_and_validate_results_launcher(launcher, level, remote_console_instance, expected_lines)
def launch_and_validate_results_launcher(
self,
launcher,
level,
remote_console_instance,
expected_lines,
null_renderer=False,
port_listener_timeout=120,
log_monitor_timeout=300,
remote_console_port=4600,
):
"""
Runs the launcher with the specified level, and monitors Game.log for expected lines.
:param launcher: Configured launcher object to run test against.
:param level: The level to load in the launcher.
:param remote_console_instance: Configured Remote Console object.
:param expected_lines: Expected lines to search log for.
:oaram null_renderer: Specifies the test does not require the renderer. Defaults to True.
:param port_listener_timeout: Timeout for verifying successful connection to Remote Console.
:param log_monitor_timeout: Timeout for monitoring for lines in Game.log
:param remote_console_port: The port used to communicate with the Remote Console.
"""
def _check_for_listening_port(port):
"""
Checks to see if the connection to the designated port was established.
:param port: Port to listen to.
:return: True if port is listening.
"""
port_listening = False
for conn in psutil.net_connections():
if "port={}".format(port) in str(conn):
port_listening = True
return port_listening
if null_renderer:
launcher.args.extend(["-NullRenderer"])
# Start the Launcher
with launcher.start():
# Ensure Remote Console can be reached
waiter.wait_for(
lambda: _check_for_listening_port(remote_console_port),
port_listener_timeout,
exc=AssertionError("Port {} not listening.".format(remote_console_port)),
)
remote_console_instance.start(timeout=30)
# Load the specified level in the launcher
send_command_and_expect_response(
remote_console_instance, f"loadlevel {level}", "LEVEL_LOAD_END", timeout=30
)
# Monitor the console for expected lines
for line in expected_lines:
assert remote_console_instance.expect_log_line(
line, log_monitor_timeout
), f"Expected line not found: {line}"
-9
View File
@@ -7,15 +7,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios
// -------------------------------------------------------------------------
// Created: 13/2/2003 by Timur.
// Description: Main header included by every file in Editor.
//
////////////////////////////////////////////////////////////////////////////
#ifndef CRYINCLUDE_EDITOR_EDITORDEFS_H
#define CRYINCLUDE_EDITOR_EDITORDEFS_H
+2 -1
View File
@@ -462,7 +462,6 @@ void EditorViewportWidget::Update()
SetViewTM(m);
SetFOV(cameraState.m_fovOrZoom);
m_Camera.SetZRange(cameraState.m_nearClip, cameraState.m_farClip);
m_updateCameraPositionNextTick = false;
}
else if (!ed_useNewCameraSystem)
{
@@ -483,6 +482,8 @@ void EditorViewportWidget::Update()
);
m_renderViewport->GetViewportContext()->SetCameraProjectionMatrix(clipMatrix);
}
// Reset the camera update flag now that we're finished updating our viewport context
m_updateCameraPositionNextTick = false;
// Don't wait for changes to update the focused viewport.
if (CheckRespondToInput())
-14
View File
@@ -7,20 +7,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: newleveldialog.h
// Version: v1.00
// Created: 24/7/2002 by Timur.
// Compilers: Visual Studio.NET
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef CRYINCLUDE_EDITOR_NEWLEVELDIALOG_H
#define CRYINCLUDE_EDITOR_NEWLEVELDIALOG_H
-14
View File
@@ -5,20 +5,6 @@
*
*/
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: newterraindialog.h
// Version: v1.00
// Created: 24/7/2002 by Timur.
// Compilers: Visual Studio.NET
// Description:
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef CRYINCLUDE_EDITOR_NEWTERRAINDIALOG_H
#define CRYINCLUDE_EDITOR_NEWTERRAINDIALOG_H
-9
View File
@@ -7,15 +7,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2001-2012
// -------------------------------------------------------------------------
// Created: 15/1/2003 by Timur.
// Description: Plugin architecture supporting classes
//
////////////////////////////////////////////////////////////////////////////
#ifndef CRYINCLUDE_EDITOR_PLUGIN_H
#define CRYINCLUDE_EDITOR_PLUGIN_H
#include "Include/IEditorClassFactory.h"
-8
View File
@@ -7,14 +7,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2001-2012.
// -------------------------------------------------------------------------
// Description: The plugin manager, central point for loading/unloading plugins
//
////////////////////////////////////////////////////////////////////////////
#ifndef CRYINCLUDE_EDITOR_PLUGINMANAGER_H
#define CRYINCLUDE_EDITOR_PLUGINMANAGER_H
Binary file not shown.
@@ -7,10 +7,7 @@
#pragma once
////////////////////////////////// CRYTEK ////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2011.
////////////////////////////////////////////////////////////////////////////
// -------------------------------------------------------------------------
// File Name : FFMPEGPlugin.h
// Author : Jaewon Jung
-14
View File
@@ -7,20 +7,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: settings.h
// Version: v1.00
// Created: 14/1/2003 by Timur.
// Compilers: Visual Studio.NET
// Description: General editor settings.
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef CRYINCLUDE_EDITOR_SETTINGS_H
#define CRYINCLUDE_EDITOR_SETTINGS_H
#include "SettingsManager.h"
-11
View File
@@ -7,17 +7,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2001-2012
// -------------------------------------------------------------------------
// File name: UsedResources.h
// Created: 28/11/2003 by Timur.
// Description: Class to gather used resources
//
////////////////////////////////////////////////////////////////////////////
//! Class passed to resource gathering functions
#ifndef CRYINCLUDE_EDITOR_USEDRESOURCES_H
#define CRYINCLUDE_EDITOR_USEDRESOURCES_H
-6
View File
@@ -8,12 +8,6 @@
#pragma once
////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002-2012.
// -------------------------------------------------------------------------
// File name: waitprogress.h
// Created: 10/5/2002 by Timur.
// Description: CWaitProgress class adds information about lengthy process
// Usage:
//
@@ -187,6 +187,13 @@ namespace AzNetworking
connection->Disconnect(disconnectReason, TerminationEndpoint::Local);
continue;
}
const ConnectionState connectionState = connection->GetConnectionState();
if (connectionState == ConnectionState::Disconnecting || connectionState == ConnectionState::Disconnected)
{
// Skip packets from disconnected connections
continue;
}
int32_t decodedPacketSize = 0;
m_decryptBuffer.Resize(m_decryptBuffer.GetCapacity());
@@ -1,24 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Helpers Icon</title>
<defs>
<circle id="path-1" cx="8" cy="8" r="8"></circle>
<path d="M8.59736328,10.1821289 L8.59736328,9.79394531 C8.59736328,9.07617188 8.86835937,8.71728516 9.84248047,8.15332031 C10.8751953,7.54541016 11.4098633,6.77636719 11.4098633,5.67041016 C11.4098633,4.00048828 10.0255859,2.8359375 7.93085937,2.8359375 C5.68232422,2.8359375 4.40791016,4.09570312 4.37128906,5.89746094 L6.35615234,5.89746094 C6.40009766,5.06982422 6.95673828,4.53515625 7.79902344,4.53515625 C8.63398437,4.53515625 9.190625,5.04052734 9.190625,5.73632812 C9.190625,6.43212891 8.90498047,6.79101562 7.96015625,7.35498047 C6.94941406,7.94824219 6.54658203,8.60742188 6.64179687,9.75732422 L6.65644531,10.1821289 L8.59736328,10.1821289 Z M7.70380859,13.7124023 C8.52412109,13.7124023 9.02949219,13.2436523 9.02949219,12.4892578 C9.02949219,11.7275391 8.52412109,11.2587891 7.70380859,11.2587891 C6.88349609,11.2587891 6.37080078,11.7275391 6.37080078,12.4892578 C6.37080078,13.2436523 6.88349609,13.7124023 7.70380859,13.7124023 Z" id="path-3"></path>
</defs>
<g id="Symbols" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="2nd-ToolBar-v2-(Perspective)-3" transform="translate(-1161.000000, -7.000000)">
<g id="2nd-ToolBar-buttons-on-right" transform="translate(1076.000000, 5.000000)">
<g id="Helpers-Icon" transform="translate(85.000000, 2.000000)">
<mask id="mask-2" fill="white">
<use xlink:href="#path-1"></use>
</mask>
<use id="Oval" fill="#FFFFFF" xlink:href="#path-1"></use>
<g id="?" fill-rule="nonzero" mask="url(#mask-2)">
<use fill="#909090" xlink:href="#path-3"></use>
<use fill="#3F3F3F" xlink:href="#path-3"></use>
</g>
</g>
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
</style>
<path class="st0" d="M8,5.511C6.626,5.511,5.511,6.626,5.511,8S6.626,10.489,8,10.489S10.489,9.374,10.489,8S9.374,5.511,8,5.511z
M8,9.694C7.064,9.694,6.306,8.936,6.306,8S7.064,6.306,8,6.306S9.694,7.064,9.694,8S8.936,9.694,8,9.694z"/>
<path class="st0" d="M8,0C3.582,0,0,3.582,0,8s3.582,8,8,8s8-3.582,8-8S12.418,0,8,0z M8,12.463c-4,0-7.242-2.915-7.242-4.463
S4,3.537,8,3.537c4,0,7.242,2.915,7.242,4.463S12,12.463,8,12.463z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 868 B

+4 -4
View File
@@ -90,10 +90,10 @@ void CConsoleHelpGen::StartPage(FILE* f, const char* szPageName, const char* szP
{
fprintf(f, "<HTML><HEAD><TITLE>%s</TITLE><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=iso-8859-1\">", szPageName);
fprintf(f, "<META NAME=\"DESCRIPTION\" CONTENT=\"%s\">", szPageDescription);
fprintf(f, "<META NAME=\"author\" content=\"Crytek\">");
fprintf(f, "<META NAME=\"copyright\" CONTENT=\"Crytek\">");
fprintf(f, "<META NAME=\"KEYWORDS\" CONTENT=\"CryEngine,Crytek\">");
fprintf(f, "<META NAME=\"distribution\" CONTENT=\"Crytek\">");
fprintf(f, "<META NAME=\"author\" content=\"Contributors to the Open 3D Engine Project\">");
fprintf(f, "<META NAME=\"copyright\" CONTENT=\"Contributors to the Open 3D Engine Project\">");
fprintf(f, "<META NAME=\"KEYWORDS\" CONTENT=\"O3DE\">");
fprintf(f, "<META NAME=\"distribution\" CONTENT=\"Contributors to the Open 3D Engine Project\">");
fprintf(f, "<META NAME=\"revisit-after\" CONTENT=\"10 days\">");
fprintf(f, "<META NAME=\"robots\" CONTENT=\"INDEX, NOFOLLOW\">");
fprintf(f, "</HEAD><BODY bgcolor=#ffffff leftmargin=0 topmargin=0 alink=#0000ff link=#0000ff vlink=#0000ff text=#000000>");
@@ -463,6 +463,21 @@ QProgressBar::chunk {
font-weight: 600;
}
#GemCatalogHeaderLabel {
font-size: 12px;
color: #FFFFFF;
}
#GemCatalogHeaderShowCountLabel {
font-size: 12px;
font: italic;
color: #FFFFFF;
}
#GemCatalogListView {
background-color: #333333;
}
/************** Gem Catalog (Inspector) **************/
#GemCatalogInspector {
@@ -31,7 +31,7 @@ namespace O3DE::ProjectManager
topLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding));
QLabel* showCountLabel = new QLabel();
showCountLabel->setStyleSheet("font-size: 12px; font: italic; color: #FFFFFF;");
showCountLabel->setObjectName("GemCatalogHeaderShowCountLabel");
topLayout->addWidget(showCountLabel);
connect(proxyModel, &GemSortFilterProxyModel::OnInvalidated, this, [=]
{
@@ -57,27 +57,27 @@ namespace O3DE::ProjectManager
QHBoxLayout* columnHeaderLayout = new QHBoxLayout();
columnHeaderLayout->setAlignment(Qt::AlignLeft);
const int gemNameStartX = GemItemDelegate::s_itemMargins.left() + GemItemDelegate::s_contentMargins.left() - 3;
const int gemNameStartX = GemItemDelegate::s_itemMargins.left() + GemItemDelegate::s_contentMargins.left() - 1;
columnHeaderLayout->addSpacing(gemNameStartX);
QLabel* gemNameLabel = new QLabel(tr("Gem Name"));
gemNameLabel->setStyleSheet("font-size: 12px; color: #FFFFFF;");
gemNameLabel->setObjectName("GemCatalogHeaderLabel");
columnHeaderLayout->addWidget(gemNameLabel);
columnHeaderLayout->addSpacing(77);
columnHeaderLayout->addSpacing(89);
QLabel* gemSummaryLabel = new QLabel(tr("Gem Summary"));
gemSummaryLabel->setStyleSheet("font-size: 12px; color: #FFFFFF;");
gemSummaryLabel->setObjectName("GemCatalogHeaderLabel");
columnHeaderLayout->addWidget(gemSummaryLabel);
QSpacerItem* horizontalSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum);
columnHeaderLayout->addSpacerItem(horizontalSpacer);
QLabel* gemSelectedLabel = new QLabel(tr("Selected"));
gemSelectedLabel->setStyleSheet("font-size: 12px; color: #FFFFFF;");
gemSelectedLabel->setObjectName("GemCatalogHeaderLabel");
columnHeaderLayout->addWidget(gemSelectedLabel);
columnHeaderLayout->addSpacing(60);
columnHeaderLayout->addSpacing(65);
vLayout->addLayout(columnHeaderLayout);
}
@@ -14,10 +14,9 @@ namespace O3DE::ProjectManager
GemListView::GemListView(QAbstractItemModel* model, QItemSelectionModel* selectionModel, QWidget* parent)
: QListView(parent)
{
setObjectName("GemCatalogListView");
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
setStyleSheet("background-color: #333333;");
setModel(model);
setSelectionModel(selectionModel);
setItemDelegate(new GemItemDelegate(model, this));
@@ -14,12 +14,12 @@ namespace AWSCore
{
constexpr const char* AWSAttributionConsentDialogTitle = "AWS Core Gem Usage Agreement";
constexpr const char* AWSAttributionConsentDialogMessage = "<nobr>The AWS Core Gem has detected credentials for an Amazon Web Services account for this</nobr><br>\
<nobr>instance of O3DE. <a href=\"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-core/configuring-credentials\">Click here</a> to learn more about AWS integration, including how to</nobr><br>\
<nobr>instance of O3DE. <a href=\"https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/configuring-credentials\">Click here</a> to learn more about AWS integration, including how to</nobr><br>\
<nobr>manage your AWS credentials.</nobr><br><br>\
<nobr>Please note: when credentials are detected, AWS Core Gem sends telemetry data to AWS,</nobr><br>\
<nobr>which helps us improve AWS services for O3DE. You can change this setting below, and at</nobr><br>\
<nobr>any time in Settings: Global Preferences. Data sent is subject to the <a href=\"https://aws.amazon.com/privacy\">AWS Privacy Policy</a>.</nobr><br>\
<nobr><a href=\"https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-core/telemetry-data-collection\">Click here</a> to learn more about what data is sent to AWS.</nobr>";
<nobr><a href=\"https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/telemetry-data-collection\">Click here</a> to learn more about what data is sent to AWS.</nobr>";
constexpr const char* AWSAttributionConsentDialogCheckboxText = "Please share the information about my use of AWS Core Gem with AWS.";
@@ -6,8 +6,7 @@
//=============================================================================
// (C) 2005 ATI Research, Inc., All rights reserved.
//=============================================================================
// modifications by Crytek GmbH
// modifications by Amazon
// Modified from original
#include <ImageProcessing_precompiled.h>
@@ -5,8 +5,7 @@
//=============================================================================
// (C) 2005 ATI Research, Inc., All rights reserved.
//=============================================================================
// modifications by Crytek GmbH
// modifications by Amazon
// Modified from original
#pragma once
@@ -1,8 +1,7 @@
//=============================================================================
// (C) 2005 ATI Research, Inc., All rights reserved.
//=============================================================================
// modifications by Crytek GmbH
// modifications by Amazon
// Modified from original
#include <ImageProcessing_precompiled.h>
#include "CCubeMapProcessor.h"
@@ -6,8 +6,7 @@
//--------------------------------------------------------------------------------------
// (C) 2005 ATI Research, Inc., All rights reserved.
//--------------------------------------------------------------------------------------
// modifications by Crytek GmbH
// modifications by Amazon
// Modified from original
#pragma once
@@ -12,8 +12,7 @@
//--------------------------------------------------------------------------------------
// (C) 2005 ATI Research, Inc., All rights reserved.
//--------------------------------------------------------------------------------------
// modifications by Crytek GmbH
// modifications by Amazon
// Modified from original
#include <ImageProcessing_precompiled.h>
@@ -15,7 +15,7 @@
//--------------------------------------------------------------------------------------
// (C) 2001-2005 ATI Research, Inc. All rights reserved.
//--------------------------------------------------------------------------------------
// modifications by Crytek GmbH
// Modified from original
//disable warning about doubles being converted down to float
#pragma warning (disable : 4244 )
@@ -11,7 +11,7 @@
#include <Atom/Features/Math/FilterPassSrg.azsli>
#include <Atom/Features/Shadow/ShadowmapAtlasLib.azsli>
[numthreads(8,8,1)]
[numthreads(16,16,1)]
void MainCS(uint3 dispatchId: SV_DispatchThreadID)
{
const float3 inputSize = GetImageSize(FilterPassSrg::m_inputImage);
@@ -11,7 +11,7 @@
#include <Atom/Features/Math/FilterPassSrg.azsli>
#include <Atom/Features/Shadow/ShadowmapAtlasLib.azsli>
[numthreads(8,8,1)]
[numthreads(16,16,1)]
void MainCS(uint3 dispatchId: SV_DispatchThreadID)
{
const float3 inputSize = GetImageSize(FilterPassSrg::m_inputImage);
@@ -28,7 +28,7 @@ ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback
StructuredBuffer<FilterParameter> m_filterParameters;
}
[numthreads(8,8,1)]
[numthreads(16,16,1)]
void MainCS(uint3 dispatchId: SV_DispatchThreadID)
{
const float3 inputSize = GetImageSize(PassSrg::m_inputShadowmap);
@@ -649,7 +649,6 @@ namespace AZ
int32_t viewProjOverrideIndex)
{
AZ_PROFILE_FUNCTION(AZ::Debug::ProfileCategory::AzRender);
AZ_ATOM_PROFILE_FUNCTION("AuxGeom", "AuxGeomDrawQueue: DrawPrimitiveCommon");
// grab a mutex lock for the rest of this function so that a commit cannot happen during it and
// other threads can't add geometry during it
@@ -134,7 +134,7 @@ namespace AZ
static void Reflect(AZ::ReflectContext* context);
CpuProfilingStatisticsSerializer() = default;
CpuProfilingStatisticsSerializer(RHI::CpuProfiler::TimeRegionMap& timeRegionMap);
CpuProfilingStatisticsSerializer(const RHI::CpuProfiler::TimeRegionMap& timeRegionMap);
AZStd::vector<CpuProfilingStatisticsSerializerEntry> m_cpuProfilingStatisticsSerializerEntries;
};
@@ -251,14 +251,17 @@ namespace AZ
// --- CpuProfilingStatisticsSerializer ---
CpuProfilingStatisticsSerializer::CpuProfilingStatisticsSerializer(RHI::CpuProfiler::TimeRegionMap& timeRegionMap)
CpuProfilingStatisticsSerializer::CpuProfilingStatisticsSerializer(const RHI::CpuProfiler::TimeRegionMap& timeRegionMap)
{
// Create serializable entries
for (auto& treadEntry : timeRegionMap)
for (auto& threadEntry : timeRegionMap)
{
for (auto& cachedRegionEntry : treadEntry.second)
for (auto& cachedRegionEntry : threadEntry.second)
{
m_cpuProfilingStatisticsSerializerEntries.emplace_back(cachedRegionEntry.second);
m_cpuProfilingStatisticsSerializerEntries.insert(
m_cpuProfilingStatisticsSerializerEntries.end(),
cachedRegionEntry.second.begin(),
cachedRegionEntry.second.end());
}
}
}
@@ -465,8 +468,7 @@ namespace AZ
serializationSettings.m_keepDefaults = true;
// Get time Cpu profiled time regions
RHI::CpuProfiler::TimeRegionMap timeRegionMap;
RHI::CpuProfiler::Get()->FlushTimeRegionMap(timeRegionMap);
const RHI::CpuProfiler::TimeRegionMap& timeRegionMap = RHI::CpuProfiler::Get()->GetTimeRegionMap();
CpuProfilingStatisticsSerializer serializer(timeRegionMap);
const auto saveResult = JsonSerializationUtils::SaveObjectToFile(&serializer,
@@ -60,7 +60,7 @@ namespace AZ
class CpuProfiler
{
public:
using ThreadTimeRegionMap = AZStd::unordered_map<AZStd::string, CachedTimeRegion>;
using ThreadTimeRegionMap = AZStd::unordered_map<AZStd::string, AZStd::vector<CachedTimeRegion>>;
using TimeRegionMap = AZStd::unordered_map<AZStd::thread_id, ThreadTimeRegionMap>;
AZ_RTTI(CpuProfiler, "{127C1D0B-BE05-4E18-A8F6-24F3EED2ECA6}");
@@ -78,8 +78,8 @@ namespace AZ
//! Ends a time region
virtual void EndTimeRegion() = 0;
//! Flush cached regions from all threads to the passed parameter
virtual void FlushTimeRegionMap(TimeRegionMap& timeRegionMap) = 0;
//! Get the last frame's TimeRegionMap
virtual const TimeRegionMap& GetTimeRegionMap() const = 0;
//! Enable/Disable the CpuProfiler
virtual void SetProfilerEnabled(bool enabled) = 0;
@@ -10,10 +10,13 @@
#include <Atom/RHI.Reflect/Base.h>
#include <AzCore/Memory/OSAllocator.h>
#include <AzCore/std/containers/map.h>
#include <AzCore/std/parallel/mutex.h>
#include <AzCore/std/parallel/shared_mutex.h>
#include <AzCore/std/smart_ptr/intrusive_refcount.h>
#include <Atom/RHI/FrameEventBus.h>
namespace AZ
{
namespace RHI
@@ -70,6 +73,9 @@ namespace AZ
// When the thread is terminated, it will flag itself for deletion
AZStd::atomic_bool m_deleteFlag = false;
// Keep track of the regions that have hit the size limit so we don't have to lock to check
AZStd::map<AZStd::string, bool> m_hitSizeLimitMap;
};
//! CpuProfiler will keep track of the registered threads, and
@@ -77,6 +83,7 @@ namespace AZ
//! cached regions, which are stored on a per thread frequency.
class CpuProfilerImpl final
: public CpuProfiler
, public FrameEventBus::Handler
{
friend class CpuTimingLocalStorage;
@@ -92,10 +99,12 @@ namespace AZ
//! Unregisters the CpuProfilerImpl instance from the interface
void Shutdown();
void OnFrameBegin();
//! CpuProfiler overrides...
void BeginTimeRegion(TimeRegion& timeRegion) final;
void EndTimeRegion() final;
void FlushTimeRegionMap(TimeRegionMap& timeRegionMap) final;
const TimeRegionMap& GetTimeRegionMap() const final;
void SetProfilerEnabled(bool enabled) final;
bool IsProfilerEnabled() const final;
@@ -104,8 +113,7 @@ namespace AZ
void RegisterThreadStorage();
// ThreadId -> ThreadTimeRegionMap
// When the user requests the cached time regions from the system, it will use this map as an intermediate
// storage point to flush each thread's cached regions into this map.
// On the start of each frame, this map will be updated with the last frame's profiling data.
TimeRegionMap m_timeRegionMap;
// Set of registered threads when created
@@ -11,6 +11,7 @@
#include <AzCore/std/smart_ptr/shared_ptr.h>
#include <AzCore/Debug/Timer.h>
#include <Atom/RHI/RHIUtils.h>
namespace AZ
{
@@ -78,6 +79,8 @@ namespace AZ
{
Interface<CpuProfiler>::Register(this);
m_initialized = true;
Device* rhiDevice = GetRHIDevice().get();
FrameEventBus::Handler::BusConnect(rhiDevice);
}
void CpuProfilerImpl::Shutdown()
@@ -98,6 +101,7 @@ namespace AZ
m_registeredThreads.clear();
m_timeRegionMap.clear();
m_initialized = false;
FrameEventBus::Handler::BusDisconnect();
}
void CpuProfilerImpl::BeginTimeRegion(TimeRegion& timeRegion)
@@ -132,26 +136,9 @@ namespace AZ
}
}
void CpuProfilerImpl::FlushTimeRegionMap(TimeRegionMap& timeRegionMap)
const CpuProfiler::TimeRegionMap& CpuProfilerImpl::GetTimeRegionMap() const
{
AZStd::unique_lock<AZStd::mutex> lock(m_threadRegisterMutex);
// Iterate through all the threads, and collect the thread's cached time regions
for (auto& threadLocal : m_registeredThreads)
{
CpuProfiler::ThreadTimeRegionMap& threadMapEntry = m_timeRegionMap[threadLocal->m_executingThreadId];
threadLocal->TryFlushCachedMap(threadMapEntry);
}
// Clear all TLS that flagged themselves to be deleted, meaning that the thread is already terminated
AZStd::remove_if(m_registeredThreads.begin(), m_registeredThreads.end(), [](const RHI::Ptr<CpuTimingLocalStorage>& thread)
{
return thread->m_deleteFlag.load();
});
// Flush all the cached time regions to the provided map
timeRegionMap = AZStd::move(m_timeRegionMap);
m_timeRegionMap.clear();
return m_timeRegionMap;
}
void CpuProfilerImpl::SetProfilerEnabled(bool enabled)
@@ -186,6 +173,32 @@ namespace AZ
return m_enabled;
}
void CpuProfilerImpl::OnFrameBegin()
{
if (!m_enabled)
{
return;
}
AZStd::unique_lock<AZStd::mutex> lock(m_threadRegisterMutex);
// Iterate through all the threads, and collect the thread's cached time regions
TimeRegionMap newMap;
for (auto& threadLocal : m_registeredThreads)
{
ThreadTimeRegionMap& threadMapEntry = newMap[threadLocal->m_executingThreadId];
threadLocal->TryFlushCachedMap(threadMapEntry);
}
// Clear all TLS that flagged themselves to be deleted, meaning that the thread is already terminated
AZStd::remove_if(m_registeredThreads.begin(), m_registeredThreads.end(), [](const RHI::Ptr<CpuTimingLocalStorage>& thread)
{
return thread->m_deleteFlag.load();
});
// Update our saved time regions to the last frame's collected data
m_timeRegionMap = AZStd::move(newMap);
}
void CpuProfilerImpl::RegisterThreadStorage()
{
@@ -261,6 +274,10 @@ namespace AZ
// Gets called when region ends and all data is set
void CpuTimingLocalStorage::AddCachedRegion(CachedTimeRegion&& timeRegionCached)
{
if (m_hitSizeLimitMap[timeRegionCached.m_groupRegionName->m_regionName])
{
return;
}
// Add an entry to the cached region
m_cachedTimeRegions.push_back(timeRegionCached);
@@ -276,7 +293,13 @@ namespace AZ
// Add the cached regions to the map
for (auto& cachedTimeRegion : m_cachedTimeRegions)
{
m_cachedTimeRegionMap[cachedTimeRegion.m_groupRegionName->m_regionName] = cachedTimeRegion;
const AZStd::string regionName = cachedTimeRegion.m_groupRegionName->m_regionName;
AZStd::vector<CachedTimeRegion>& regionVec = m_cachedTimeRegionMap[regionName];
regionVec.push_back(cachedTimeRegion);
if (regionVec.size() >= TimeRegionStackSize)
{
m_hitSizeLimitMap[cachedTimeRegion.m_groupRegionName->m_regionName] = true;
}
}
// Clear the cached regions
@@ -295,6 +318,7 @@ namespace AZ
{
cachedTimeRegionMap = AZStd::move(m_cachedTimeRegionMap);
m_cachedTimeRegionMap.clear();
m_hitSizeLimitMap.clear();
}
m_cachedTimeRegionMutex.unlock();
}
@@ -9,6 +9,7 @@
#include <Atom/RPI.Public/RPISystemInterface.h>
#include <AzCore/IO/Path/Path_fwd.h>
#include <AzCore/std/time.h>
#include <AzCore/std/containers/set.h>
namespace AZ
{
@@ -30,6 +31,13 @@ namespace AZ
const AZStd::string threadIdText = AZStd::string::format("Thread: %zu", static_cast<size_t>(threadId));
ImGui::Text(threadIdText.c_str());
}
inline float TicksToMs(AZStd::sys_time_t ticks)
{
// Note: converting to microseconds integer before converting to milliseconds float
const AZStd::sys_time_t ticksPerSecond = AZStd::GetTimeTicksPerSecond();
AZ_Assert(ticksPerSecond >= 1000, "Error in converting ticks to ms, expected ticksPerSecond >= 1000");
return static_cast<float>((ticks * 1000) / (ticksPerSecond / 1000)) / 1000.0f;
}
}
inline void ImGuiCpuProfiler::Draw(bool& keepDrawing, const AZ::RHI::CpuTimingStatistics& currentCpuTimingStatistics)
@@ -73,9 +81,7 @@ namespace AZ
const auto ShowTimeInMs = [ticksPerSecond](AZStd::sys_time_t duration)
{
// Note: converting to microseconds integer before converting to milliseconds float
const float timeInMs = static_cast<float>((duration * 1000) / (ticksPerSecond / 1000)) / 1000.0f;
ImGui::Text("%.2f ms", timeInMs);
ImGui::Text("%.2f ms", CpuProfilerImGuiHelper::TicksToMs(duration));
};
const auto ShowRow = [ticksPerSecond, &ShowTimeInMs](const char* regionLabel, AZStd::sys_time_t duration)
@@ -117,19 +123,36 @@ namespace AZ
ImGui::NextColumn();
// Draw the thread count label
const AZStd::string threadLabel = AZStd::string::format("Threads: %u", static_cast<uint32_t>(regions.size()));
AZStd::sys_time_t totalTime = 0;
AZStd::set<AZStd::thread_id> threads;
for (ThreadRegionEntry& entry : regions) // Find the thread count and total execution time for all threads
{
threads.insert(entry.m_threadId);
totalTime += entry.m_endTick - entry.m_startTick;
}
const AZStd::string threadLabel = AZStd::string::format("Threads: %u", static_cast<uint32_t>(threads.size()));
ImGui::Text(threadLabel.c_str());
DrawRegionHoverMarker(regions);
ImGui::NextColumn();
// Draw the region time label
ShowTimeInMs(duration);
// Draw the overall invocation count
const AZStd::string invocationLabel = AZStd::string::format("Total calls: %u", static_cast<uint32_t>(regions.size()));
ImGui::Text(invocationLabel.c_str());
DrawRegionHoverMarker(regions);
ImGui::NextColumn();
// Draw the time labels (max and then total)
const AZStd::string timeLabel =
AZStd::string::format("%.2f ms max, %.2f ms total",
CpuProfilerImGuiHelper::TicksToMs(duration),
CpuProfilerImGuiHelper::TicksToMs(totalTime));
ImGui::Text(timeLabel.c_str());
ImGui::NextColumn();
};
// Set column settings.
ImGui::Columns(2, "view", false);
ImGui::SetColumnWidth(0, 540.0f);
ImGui::SetColumnWidth(0, 660.0f);
ImGui::SetColumnWidth(1, 100.0f);
ShowRow("Frame to Frame Time", cpuTimingStatistics.m_frameToFrameTime);
@@ -152,14 +175,15 @@ namespace AZ
// Draw the regions
if (ImGui::TreeNodeEx(timeRegionMapEntry.first.c_str(), ImGuiTreeNodeFlags_DefaultOpen))
{
ImGui::Columns(3, "view", false);
ImGui::Columns(4, "view", false);
ImGui::SetColumnWidth(0, 400.0f);
ImGui::SetColumnWidth(1, 100.0f);
ImGui::SetColumnWidth(2, 80.0f);
ImGui::SetColumnWidth(2, 150.0f);
ImGui::SetColumnWidth(3, 240.0f);
for (auto& reigon : timeRegionMapEntry.second)
{
// Calculate the thread with the longest execution time
// Calculate the region with the longest execution time
AZStd::sys_time_t threadExecutionElapsed = 0;
for (ThreadRegionEntry& entry : reigon.second)
{
@@ -209,19 +233,21 @@ namespace AZ
m_groupRegionMap.clear();
// Get the latest TimeRegionMap
RHI::CpuProfiler::TimeRegionMap timeRegionMap;
RHI::CpuProfiler::Get()->FlushTimeRegionMap(timeRegionMap);
const RHI::CpuProfiler::TimeRegionMap& timeRegionMap = RHI::CpuProfiler::Get()->GetTimeRegionMap();
// Iterate through all the cached regions from all threads, and add the entries to this map
for (auto& treadEntry : timeRegionMap)
for (auto& threadEntry : timeRegionMap)
{
for (auto& cachedRegionEntry : treadEntry.second)
for (auto& cachedRegionEntry : threadEntry.second)
{
RegionEntryMap& groupRegionEntry = m_groupRegionMap[cachedRegionEntry.second.m_groupRegionName->m_groupName];
AZStd::vector<ThreadRegionEntry>& regionArray = groupRegionEntry[cachedRegionEntry.second.m_groupRegionName->m_regionName];
RHI::CachedTimeRegion& cachedRegion = cachedRegionEntry.second;
const AZStd::string& regionName = cachedRegionEntry.first;
for (auto& cachedRegion : cachedRegionEntry.second)
{
const AZStd::string& groupName = cachedRegion.m_groupRegionName->m_groupName;
regionArray.push_back({ treadEntry.first, cachedRegion.m_startTick, cachedRegion.m_endTick });
m_groupRegionMap[groupName][regionName].push_back(
{ threadEntry.first, cachedRegion.m_startTick, cachedRegion.m_endTick });
}
}
}
}
@@ -13,8 +13,8 @@ namespace AZ
{
static constexpr const char* const DiffuseProbeGridComponentTypeId = "{9B900A04-192F-4F5E-AE31-762605D8159A}";
static constexpr const char* const EditorDiffuseProbeGridComponentTypeId = "{F80086E1-ECE7-4E8C-B727-A750D10F7D83}";
static constexpr float DefaultDiffuseProbeGridSpacing = 4.0f;
static constexpr float DefaultDiffuseProbeGridExtents = 20.0f;
static constexpr float DefaultDiffuseProbeGridSpacing = 2.0f;
static constexpr float DefaultDiffuseProbeGridExtents = 8.0f;
static constexpr float DefaultDiffuseProbeGridAmbientMultiplier = 1.0f;
static constexpr float DefaultDiffuseProbeGridViewBias = 0.2f;
static constexpr float DefaultDiffuseProbeGridNormalBias = 0.1f;
@@ -169,9 +169,20 @@ namespace AZ
m_featureProcessor->SetMode(m_handle, m_configuration.m_runtimeMode);
// set box shape component dimensions from the configuration
// this will invoke the OnShapeChanged() handler and set the outer extents on the feature processor
m_boxShapeInterface->SetBoxDimensions(m_configuration.m_extents);
// if this is a new DiffuseProbeGrid entity and the box shape has not been changed (i.e., it's still unit sized)
// then use the default extents, otherwise use the current box shape extents
AZ::Vector3 extents(0.0f);
AZ::Vector3 boxDimensions = m_boxShapeInterface->GetBoxDimensions();
if (m_configuration.m_entityId == EntityId::InvalidEntityId && boxDimensions == AZ::Vector3(1.0f))
{
extents = m_configuration.m_extents;
}
else
{
extents = boxDimensions;
}
m_boxShapeInterface->SetBoxDimensions(extents);
}
void DiffuseProbeGridComponentController::OnAssetReady(Data::Asset<Data::AssetData> asset)
@@ -47,6 +47,8 @@ namespace AZ
Data::Asset<RPI::StreamingImageAsset> m_bakedDistanceTextureAsset;
Data::Asset<RPI::StreamingImageAsset> m_bakedRelocationTextureAsset;
Data::Asset<RPI::StreamingImageAsset> m_bakedClassificationTextureAsset;
AZ::u64 m_entityId{ EntityId::InvalidEntityId };
};
class DiffuseProbeGridComponentController final
@@ -147,6 +147,9 @@ namespace AZ
AzToolsFramework::EditorComponentSelectionRequestsBus::Handler::BusConnect(GetEntityId());
AZ::TickBus::Handler::BusConnect();
AzToolsFramework::EditorEntityInfoNotificationBus::Handler::BusConnect();
AZ::u64 entityId = (AZ::u64)GetEntityId();
m_controller.m_configuration.m_entityId = entityId;
}
void EditorDiffuseProbeGridComponent::Deactivate()
@@ -172,6 +172,11 @@ namespace AZ
void EditorMaterialComponentSlot::Clear()
{
m_materialAsset = {};
ClearOverrides();
}
void EditorMaterialComponentSlot::ClearOverrides()
{
m_propertyOverrides = {};
m_matModUvOverrides = {};
OnMaterialChanged();
@@ -284,7 +289,7 @@ namespace AZ
menu.addSeparator();
action = menu.addAction("Clear Material Instance Overrides", [this]() { m_propertyOverrides = {}; m_matModUvOverrides = {}; });
action = menu.addAction("Clear Material Instance Overrides", [this]() { ClearOverrides(); });
action->setEnabled(!m_propertyOverrides.empty() || !m_matModUvOverrides.empty());
menu.exec(QCursor::pos());
@@ -35,6 +35,7 @@ namespace AZ
void OpenMaterialEditor() const;
void SetDefaultAsset();
void Clear();
void ClearOverrides();
void OpenMaterialExporter();
void OpenMaterialInspector();
void OpenUvNameMapInspector();
@@ -13,5 +13,6 @@ namespace AZ
{
static constexpr const char* const ReflectionProbeComponentTypeId = "{E5D29F09-F974-45FE-A1D0-2126079D1021}";
static constexpr const char* const EditorReflectionProbeComponentTypeId = "{6EBF2E41-2918-48B8-ACC3-FB115ED09E64}";
static constexpr float DefaultReflectionProbeExtents = 8.0f;
} // namespace Render
} // namespace AZ
@@ -127,9 +127,21 @@ namespace AZ
// set the visualization sphere option
m_featureProcessor->ShowProbeVisualization(m_handle, m_configuration.m_showVisualization);
// update the outer extents from the box shape
// if the user already resized the box shape on this entity it will inherit those extents
UpdateOuterExtents();
// if this is a new ReflectionProbe entity and the box shape has not been changed (i.e., it's still unit sized)
// then set the shape to the default extents
AZ::Vector3 boxDimensions = m_boxShapeInterface->GetBoxDimensions();
if (m_configuration.m_entityId == EntityId::InvalidEntityId && boxDimensions == AZ::Vector3(1.0f))
{
AZ::Vector3 extents(m_configuration.m_outerWidth, m_configuration.m_outerLength, m_configuration.m_outerHeight);
// resize the box shape, this will invoke OnShapeChanged
m_boxShapeInterface->SetBoxDimensions(extents);
}
else
{
// update the outer extents from the box shape
UpdateOuterExtents();
}
// set the inner extents
m_featureProcessor->SetProbeInnerExtents(m_handle, AZ::Vector3(m_configuration.m_innerWidth, m_configuration.m_innerLength, m_configuration.m_innerHeight));
@@ -14,6 +14,7 @@
#include <Atom/Feature/ReflectionProbe/ReflectionProbeFeatureProcessorInterface.h>
#include <Atom/RPI.Public/Model/Model.h>
#include <LmbrCentral/Shape/BoxShapeComponentBus.h>
#include <ReflectionProbe/ReflectionProbeComponentConstants.h>
namespace AZ
{
@@ -50,12 +51,12 @@ namespace AZ
AZ_CLASS_ALLOCATOR(ReflectionProbeComponentConfig, SystemAllocator, 0);
static void Reflect(AZ::ReflectContext* context);
float m_outerHeight = 20.0f;
float m_outerLength = 20.0f;
float m_outerWidth = 20.0f;
float m_innerHeight = 20.0f;
float m_innerLength = 20.0f;
float m_innerWidth = 20.0f;
float m_outerHeight = DefaultReflectionProbeExtents;
float m_outerLength = DefaultReflectionProbeExtents;
float m_outerWidth = DefaultReflectionProbeExtents;
float m_innerHeight = DefaultReflectionProbeExtents;
float m_innerLength = DefaultReflectionProbeExtents;
float m_innerWidth = DefaultReflectionProbeExtents;
bool m_useParallaxCorrection = true;
bool m_showVisualization = true;
@@ -91,6 +91,13 @@ namespace AZ
RPI::AttachmentReadback::CallbackFunction readbackCallback = [&](const RPI::AttachmentReadback::ReadbackResult& result)
{
if (!result.m_dataBuffer)
{
AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event(
m_context->GetData()->m_thumbnailKeyRendered,
&AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailFailedToRender);
return;
}
uchar* data = result.m_dataBuffer.get()->data();
QImage image(
data, result.m_imageDescriptor.m_size.m_width, result.m_imageDescriptor.m_size.m_height, QImage::Format_RGBA8888);
@@ -113,6 +113,12 @@ namespace Multiplayer
{
console->PerformCommand("disconnect");
}
AZ::Interface<INetworkEntityManager>::Get()->ClearAllEntities();
// Rebuild the library to clear temporary in-memory spawnable assets
AZ::Interface<INetworkSpawnableLibrary>::Get()->BuildSpawnablesList();
break;
}
}
@@ -235,7 +241,5 @@ namespace Multiplayer
void MultiplayerEditorSystemComponent::OnGameEntitiesReset()
{
// Rebuild the library to clear temporary in-memory spawnable assets
AZ::Interface<INetworkSpawnableLibrary>::Get()->BuildSpawnablesList();
}
}
@@ -3,92 +3,157 @@
"Id": "ContainerEntity",
"Name": "Chicken_Actor",
"Components": {
"Component_[10420060158469409859]": {
"$type": "EditorVisibilityComponent",
"Id": 10420060158469409859
"Component_[10182366347512475253]": {
"$type": "EditorPrefabComponent",
"Id": 10182366347512475253
},
"Component_[10713261435043694267]": {
"Component_[12917798267488243668]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12917798267488243668
},
"Component_[3261249813163778338]": {
"$type": "EditorOnlyEntityComponent",
"Id": 10713261435043694267
"Id": 3261249813163778338
},
"Component_[11088054817315996737]": {
"$type": "EditorLockComponent",
"Id": 11088054817315996737
"Component_[3837204912784440039]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3837204912784440039
},
"Component_[14341334118593165562]": {
"$type": "EditorInspectorComponent",
"Id": 14341334118593165562
},
"Component_[15143425594853321191]": {
"Component_[4272963378099646759]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 15143425594853321191,
"Id": 4272963378099646759,
"Parent Entity": "",
"Cached World Transform Parent": ""
},
"Component_[15383315993246423867]": {
"$type": "EditorPrefabComponent",
"Id": 15383315993246423867
"Component_[4848458548047175816]": {
"$type": "EditorVisibilityComponent",
"Id": 4848458548047175816
},
"Component_[16499127605624407101]": {
"Component_[5787060997243919943]": {
"$type": "EditorInspectorComponent",
"Id": 5787060997243919943
},
"Component_[7804170251266531779]": {
"$type": "EditorLockComponent",
"Id": 7804170251266531779
},
"Component_[7874177159288365422]": {
"$type": "EditorEntitySortComponent",
"Id": 16499127605624407101
"Id": 7874177159288365422
},
"Component_[16697571480493454144]": {
"$type": "SelectionComponent",
"Id": 16697571480493454144
},
"Component_[415761541071751882]": {
"$type": "EditorPendingCompositionComponent",
"Id": 415761541071751882
},
"Component_[7972775450040391034]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 7972775450040391034
},
"Component_[9910169802741330341]": {
"Component_[8018146290632383969]": {
"$type": "EditorEntityIconComponent",
"Id": 9910169802741330341
"Id": 8018146290632383969
},
"Component_[8452360690590857075]": {
"$type": "SelectionComponent",
"Id": 8452360690590857075
}
},
"IsDependencyReady": true
}
},
"Entities": {
"Entity_[48421054243702]": {
"Id": "Entity_[48421054243702]",
"Name": "Chicken_Actor",
"Entity_[303447173544404]": {
"Id": "Entity_[303447173544404]",
"Name": "Chicken Rigidbody",
"Components": {
"Component_[10024659544266822060]": {
"Component_[11254527722826929517]": {
"$type": "EditorLockComponent",
"Id": 11254527722826929517
},
"Component_[11752612383131299817]": {
"$type": "EditorInspectorComponent",
"Id": 10024659544266822060,
"Id": 11752612383131299817,
"ComponentOrderEntryArray": [
{
"ComponentId": 3250661421529612274
},
{
"ComponentId": 4381463095952282089,
"SortIndex": 1
},
{
"ComponentId": 13550968986158933154,
"SortIndex": 2
},
{
"ComponentId": 11536283465461048726,
"SortIndex": 3
},
{
"ComponentId": 7689190671460963527,
"SortIndex": 4
"ComponentId": 12470135924384913029
}
]
},
"Component_[11465635386953249015]": {
"$type": "EditorLockComponent",
"Id": 11465635386953249015
"Component_[12004522441155896281]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12004522441155896281
},
"Component_[11536283465461048726]": {
"Component_[12327847693349375221]": {
"$type": "EditorVisibilityComponent",
"Id": 12327847693349375221
},
"Component_[12470135924384913029]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 12470135924384913029,
"Parent Entity": "ContainerEntity",
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[14919455666821657531]": {
"$type": "EditorEntitySortComponent",
"Id": 14919455666821657531,
"ChildEntityOrderEntryArray": [
{
"EntityId": "Entity_[303451468511700]"
}
]
},
"Component_[16643225638363527013]": {
"$type": "EditorOnlyEntityComponent",
"Id": 16643225638363527013
},
"Component_[17083722249682325420]": {
"$type": "EditorEntityIconComponent",
"Id": 17083722249682325420
},
"Component_[4274252334406790321]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 4274252334406790321
},
"Component_[786957291078135994]": {
"$type": "SelectionComponent",
"Id": 786957291078135994
}
},
"IsDependencyReady": true
},
"Entity_[303451468511700]": {
"Id": "Entity_[303451468511700]",
"Name": "Chicken_Actor",
"Components": {
"Component_[10153184769011204037]": {
"$type": "SelectionComponent",
"Id": 10153184769011204037
},
"Component_[12307288056972997582]": {
"$type": "EditorLockComponent",
"Id": 12307288056972997582
},
"Component_[16388291370935886976]": {
"$type": "EditorEntityIconComponent",
"Id": 16388291370935886976
},
"Component_[17273633015317842366]": {
"$type": "EditorPendingCompositionComponent",
"Id": 17273633015317842366
},
"Component_[18385928157765337756]": {
"$type": "EditorActorComponent",
"Id": 18385928157765337756,
"ActorAsset": {
"assetId": {
"guid": "{3E4C6A29-92A4-523E-8739-F3E64957569E}",
"subId": 166954688
},
"assetHint": "objects/cloth/chicken/actor/chicken.actor"
},
"MaterialPerLOD": [
{
"AssetPath": "objects/cloth/chicken/actor/chicken.mtl"
}
],
"MaterialPerActor": {
"AssetPath": "objects/cloth/chicken/actor/chicken.mtl"
},
"AttachmentTarget": ""
},
"Component_[2933618168100824891]": {
"$type": "EditorSimpleMotionComponent",
"Id": 11536283465461048726,
"Id": 2933618168100824891,
"Configuration": {
"MotionAsset": {
"assetId": {
@@ -97,12 +162,38 @@
},
"assetHint": "objects/cloth/chicken/motions/chickenidle.motion"
},
"Loop": true
"Loop": true,
"PlaySpeed": 1.2000000476837159
}
},
"Component_[13550968986158933154]": {
"Component_[3482722103355682975]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3482722103355682975
},
"Component_[4826327274018205895]": {
"$type": "EditorOnlyEntityComponent",
"Id": 4826327274018205895
},
"Component_[5939417605550024797]": {
"$type": "EditorVisibilityComponent",
"Id": 5939417605550024797
},
"Component_[7236637452394054627]": {
"$type": "EditorClothComponent",
"Id": 7236637452394054627,
"Configuration": {
"Mesh Node": "chicken_mohawk",
"Mass": 4.0,
"Remove Static Triangles": false
}
},
"Component_[868427789695884987]": {
"$type": "EditorEntitySortComponent",
"Id": 868427789695884987
},
"Component_[8777596718122199558]": {
"$type": "EditorMaterialComponent",
"Id": 13550968986158933154,
"Id": 8777596718122199558,
"Controller": {
"Configuration": {
"materials": [
@@ -233,77 +324,43 @@
]
]
},
"Component_[14277098884859902099]": {
"$type": "EditorPendingCompositionComponent",
"Id": 14277098884859902099
},
"Component_[2153976993809262425]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 2153976993809262425
},
"Component_[3250661421529612274]": {
"Component_[9845606399230319505]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 3250661421529612274,
"Parent Entity": "ContainerEntity",
"Cached World Transform": {
"Translation": [
-8.559586524963379,
-1.2393379211425782,
0.043556928634643558
],
"Rotation": [
"Id": 9845606399230319505,
"Parent Entity": "Entity_[303447173544404]",
"Transform Data": {
"Rotate": [
0.0,
0.0,
1.0,
0.0
-0.00006830000347690657
]
},
"Cached World Transform Parent": "ContainerEntity"
"Cached World Transform Parent": ""
},
"Component_[363579226643870873]": {
"$type": "EditorEntityIconComponent",
"Id": 363579226643870873
},
"Component_[4381463095952282089]": {
"$type": "EditorActorComponent",
"Id": 4381463095952282089,
"ActorAsset": {
"assetId": {
"guid": "{3E4C6A29-92A4-523E-8739-F3E64957569E}",
"subId": 166954688
"Component_[9979479216337101498]": {
"$type": "EditorInspectorComponent",
"Id": 9979479216337101498,
"ComponentOrderEntryArray": [
{
"ComponentId": 9845606399230319505
},
"loadBehavior": "QueueLoad",
"assetHint": "objects/cloth/chicken/actor/chicken.actor"
},
"MaterialPerLOD": [
{}
],
"AttachmentTarget": ""
},
"Component_[4892122740022910835]": {
"$type": "SelectionComponent",
"Id": 4892122740022910835
},
"Component_[5646397145899865599]": {
"$type": "EditorVisibilityComponent",
"Id": 5646397145899865599
},
"Component_[6526021153484129377]": {
"$type": "EditorOnlyEntityComponent",
"Id": 6526021153484129377
},
"Component_[7689190671460963527]": {
"$type": "EditorClothComponent",
"Id": 7689190671460963527,
"Configuration": {
"Mesh Node": "chicken_mohawk",
"Mass": 4.0,
"Remove Static Triangles": false
}
},
"Component_[7705494469103394865]": {
"$type": "EditorEntitySortComponent",
"Id": 7705494469103394865
{
"ComponentId": 18385928157765337756,
"SortIndex": 1
},
{
"ComponentId": 2933618168100824891,
"SortIndex": 2
},
{
"ComponentId": 8777596718122199558,
"SortIndex": 3
},
{
"ComponentId": 7236637452394054627,
"SortIndex": 4
}
]
}
},
"IsDependencyReady": true
@@ -3,101 +3,166 @@
"Id": "ContainerEntity",
"Name": "cloth_blinds",
"Components": {
"Component_[11710159740232621436]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 11710159740232621436
},
"Component_[12700834211830506265]": {
"$type": "EditorInspectorComponent",
"Id": 12700834211830506265
},
"Component_[1332207344633534847]": {
"Component_[10182366347512475253]": {
"$type": "EditorPrefabComponent",
"Id": 1332207344633534847
"Id": 10182366347512475253
},
"Component_[15674607824372989481]": {
"$type": "SelectionComponent",
"Id": 15674607824372989481
},
"Component_[17830258131678226250]": {
"Component_[12917798267488243668]": {
"$type": "EditorPendingCompositionComponent",
"Id": 17830258131678226250
"Id": 12917798267488243668
},
"Component_[2739137831523757464]": {
"Component_[3261249813163778338]": {
"$type": "EditorOnlyEntityComponent",
"Id": 2739137831523757464
"Id": 3261249813163778338
},
"Component_[6200331447094468978]": {
"$type": "EditorEntityIconComponent",
"Id": 6200331447094468978
"Component_[3837204912784440039]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3837204912784440039
},
"Component_[6469357969320867250]": {
"$type": "EditorLockComponent",
"Id": 6469357969320867250
},
"Component_[7557343481632459660]": {
"$type": "EditorVisibilityComponent",
"Id": 7557343481632459660
},
"Component_[8407841941984260302]": {
"Component_[4272963378099646759]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 8407841941984260302,
"Id": 4272963378099646759,
"Parent Entity": "",
"Cached World Transform Parent": ""
},
"Component_[8679209570517497730]": {
"Component_[4848458548047175816]": {
"$type": "EditorVisibilityComponent",
"Id": 4848458548047175816
},
"Component_[5787060997243919943]": {
"$type": "EditorInspectorComponent",
"Id": 5787060997243919943
},
"Component_[7804170251266531779]": {
"$type": "EditorLockComponent",
"Id": 7804170251266531779
},
"Component_[7874177159288365422]": {
"$type": "EditorEntitySortComponent",
"Id": 8679209570517497730
"Id": 7874177159288365422
},
"Component_[8018146290632383969]": {
"$type": "EditorEntityIconComponent",
"Id": 8018146290632383969
},
"Component_[8452360690590857075]": {
"$type": "SelectionComponent",
"Id": 8452360690590857075
}
},
"IsDependencyReady": true
}
},
"Entities": {
"Entity_[2310285353846]": {
"Id": "Entity_[2310285353846]",
"Entity_[303275374852564]": {
"Id": "Entity_[303275374852564]",
"Name": "cloth_blinds",
"Components": {
"Component_[11484820910614012211]": {
"Component_[10147744244398276652]": {
"$type": "EditorOnlyEntityComponent",
"Id": 11484820910614012211
"Id": 10147744244398276652
},
"Component_[12758934717931799496]": {
"$type": "EditorEntitySortComponent",
"Id": 12758934717931799496
},
"Component_[14636776520633084007]": {
"Component_[11309989511197311871]": {
"$type": "EditorClothComponent",
"Id": 14636776520633084007,
"Id": 11309989511197311871,
"Configuration": {
"Mesh Node": "pPlane1",
"Update Normals of Static Particles": true,
"Wind Velocity": [
"Damping": [
0.0,
0.0,
10.0,
0.0
],
"Stiffness Frequency": 1.0
"Linear Drag": [
0.0,
0.0,
0.0
],
"Angular Drag": [
0.0,
0.0,
0.0
],
"Wind Velocity": [
10.0,
0.0,
0.0
],
"Air Drag Coefficient": 0.5,
"Air Lift Coefficient": 0.5,
"Update Normals of Static Particles": true
}
},
"Component_[15643606068434059364]": {
"Component_[12850019035302463297]": {
"$type": "EditorLockComponent",
"Id": 15643606068434059364
"Id": 12850019035302463297
},
"Component_[1802437050375983597]": {
"Component_[15214644042360665965]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 15214644042360665965,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{C3078003-51DA-5D8E-B311-38C426480DD2}",
"subId": 283342727
},
"assetHint": "objects/cloth/environment/cloth_blinds.azmodel"
}
}
}
},
"Component_[17205613619475042888]": {
"$type": "EditorEntityIconComponent",
"Id": 1802437050375983597
"Id": 17205613619475042888
},
"Component_[2246969288668584020]": {
"Component_[17262624475618211748]": {
"$type": "EditorVisibilityComponent",
"Id": 17262624475618211748
},
"Component_[3930083736215151625]": {
"$type": "EditorInspectorComponent",
"Id": 3930083736215151625,
"ComponentOrderEntryArray": [
{
"ComponentId": 4795695323030511838
},
{
"ComponentId": 11309989511197311871,
"SortIndex": 1
},
{
"ComponentId": 15214644042360665965,
"SortIndex": 2
},
{
"ComponentId": 9206497685981025331,
"SortIndex": 3
}
]
},
"Component_[4446664869832380031]": {
"$type": "SelectionComponent",
"Id": 4446664869832380031
},
"Component_[4795695323030511838]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 4795695323030511838,
"Parent Entity": "ContainerEntity",
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[5800800590637221800]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 2246969288668584020
"Id": 5800800590637221800
},
"Component_[3349689287441689089]": {
"Component_[6953593560040071775]": {
"$type": "EditorPendingCompositionComponent",
"Id": 3349689287441689089
"Id": 6953593560040071775
},
"Component_[4761242843736319995]": {
"Component_[7074022732104182988]": {
"$type": "EditorEntitySortComponent",
"Id": 7074022732104182988
},
"Component_[9206497685981025331]": {
"$type": "EditorMaterialComponent",
"Id": 4761242843736319995,
"Id": 9206497685981025331,
"Controller": {
"Configuration": {
"materials": [
@@ -149,70 +214,6 @@
}
]
]
},
"Component_[7102112177384882498]": {
"$type": "EditorInspectorComponent",
"Id": 7102112177384882498,
"ComponentOrderEntryArray": [
{
"ComponentId": 8287798504585048292
},
{
"ComponentId": 7500992507704969518,
"SortIndex": 1
},
{
"ComponentId": 4761242843736319995,
"SortIndex": 2
},
{
"ComponentId": 14636776520633084007,
"SortIndex": 3
}
]
},
"Component_[7262445215578128559]": {
"$type": "EditorVisibilityComponent",
"Id": 7262445215578128559
},
"Component_[7500992507704969518]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 7500992507704969518,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{C3078003-51DA-5D8E-B311-38C426480DD2}",
"subId": 283342727
},
"assetHint": "objects/cloth/environment/cloth_blinds.azmodel"
}
}
}
},
"Component_[8287798504585048292]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 8287798504585048292,
"Parent Entity": "ContainerEntity",
"Cached World Transform": {
"Translation": [
-5.723679542541504,
-2.6300342082977297,
1.938896894454956
]
},
"Cached World Transform Parent": "ContainerEntity",
"Transform Data": {
"Translate": [
-6.210474491119385,
0.0,
2.0854623317718508
]
}
},
"Component_[9830203766948851058]": {
"$type": "SelectionComponent",
"Id": 9830203766948851058
}
},
"IsDependencyReady": true
@@ -3,139 +3,90 @@
"Id": "ContainerEntity",
"Name": "cloth_blinds_broken",
"Components": {
"Component_[10989814620261546639]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 10989814620261546639
},
"Component_[12298926505503761520]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12298926505503761520
},
"Component_[13199048427796447680]": {
"$type": "EditorVisibilityComponent",
"Id": 13199048427796447680
},
"Component_[13897401964074181963]": {
"$type": "EditorLockComponent",
"Id": 13897401964074181963
},
"Component_[15440200647772473638]": {
"$type": "EditorEntityIconComponent",
"Id": 15440200647772473638
},
"Component_[15453809689256412670]": {
"$type": "SelectionComponent",
"Id": 15453809689256412670
},
"Component_[16085218976953314353]": {
"$type": "EditorEntitySortComponent",
"Id": 16085218976953314353
},
"Component_[16269162367022698371]": {
"Component_[10182366347512475253]": {
"$type": "EditorPrefabComponent",
"Id": 16269162367022698371
"Id": 10182366347512475253
},
"Component_[3663243583798432985]": {
"Component_[12917798267488243668]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12917798267488243668
},
"Component_[3261249813163778338]": {
"$type": "EditorOnlyEntityComponent",
"Id": 3663243583798432985
"Id": 3261249813163778338
},
"Component_[6161691932390979827]": {
"Component_[3837204912784440039]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3837204912784440039
},
"Component_[4272963378099646759]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 6161691932390979827,
"Id": 4272963378099646759,
"Parent Entity": "",
"Cached World Transform Parent": ""
},
"Component_[6472172087633666006]": {
"Component_[4848458548047175816]": {
"$type": "EditorVisibilityComponent",
"Id": 4848458548047175816
},
"Component_[5787060997243919943]": {
"$type": "EditorInspectorComponent",
"Id": 6472172087633666006
"Id": 5787060997243919943
},
"Component_[7804170251266531779]": {
"$type": "EditorLockComponent",
"Id": 7804170251266531779
},
"Component_[7874177159288365422]": {
"$type": "EditorEntitySortComponent",
"Id": 7874177159288365422
},
"Component_[8018146290632383969]": {
"$type": "EditorEntityIconComponent",
"Id": 8018146290632383969
},
"Component_[8452360690590857075]": {
"$type": "SelectionComponent",
"Id": 8452360690590857075
}
},
"IsDependencyReady": true
}
},
"Entities": {
"Entity_[8860110480246]": {
"Id": "Entity_[8860110480246]",
"Entity_[303326914460116]": {
"Id": "Entity_[303326914460116]",
"Name": "cloth_blinds_broken",
"Components": {
"Component_[1079843150556003627]": {
"$type": "EditorEntityIconComponent",
"Id": 1079843150556003627
},
"Component_[11968229236146127519]": {
"$type": "EditorPendingCompositionComponent",
"Id": 11968229236146127519
},
"Component_[12117224592880940883]": {
"$type": "EditorInspectorComponent",
"Id": 12117224592880940883,
"ComponentOrderEntryArray": [
{
"ComponentId": 5483426416697581640
},
{
"ComponentId": 5518702849950674566,
"SortIndex": 1
},
{
"ComponentId": 894067052175737998,
"SortIndex": 2
},
{
"ComponentId": 1765776596326719942,
"SortIndex": 3
}
]
},
"Component_[1765776596326719942]": {
"Component_[10786078036233199116]": {
"$type": "EditorClothComponent",
"Id": 1765776596326719942,
"Id": 10786078036233199116,
"Configuration": {
"Mesh Node": "pPlane1",
"Update Normals of Static Particles": true,
"Wind Velocity": [
"Damping": [
0.0,
0.0,
10.0,
0.0
],
"Stiffness Frequency": 1.0
"Linear Drag": [
0.0,
0.0,
0.0
],
"Angular Drag": [
0.0,
0.0,
0.0
],
"Wind Velocity": [
5.0,
0.0,
0.0
],
"Update Normals of Static Particles": true
}
},
"Component_[17734660328068630579]": {
"$type": "SelectionComponent",
"Id": 17734660328068630579
},
"Component_[2020684643572273032]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 2020684643572273032
},
"Component_[3951090720799475031]": {
"$type": "EditorVisibilityComponent",
"Id": 3951090720799475031
},
"Component_[504292109316286904]": {
"$type": "EditorLockComponent",
"Id": 504292109316286904
},
"Component_[5243187155220405314]": {
"$type": "EditorOnlyEntityComponent",
"Id": 5243187155220405314
},
"Component_[5483426416697581640]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 5483426416697581640,
"Parent Entity": "ContainerEntity",
"Cached World Transform": {
"Translation": [
-2.9314260482788088,
-0.9454793930053711,
1.7495737075805665
]
},
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[5518702849950674566]": {
"Component_[11765361670726469628]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 5518702849950674566,
"Id": 11765361670726469628,
"Controller": {
"Configuration": {
"ModelAsset": {
@@ -148,9 +99,37 @@
}
}
},
"Component_[894067052175737998]": {
"Component_[13771990625644339755]": {
"$type": "EditorEntitySortComponent",
"Id": 13771990625644339755
},
"Component_[14712436598236321787]": {
"$type": "EditorLockComponent",
"Id": 14712436598236321787
},
"Component_[14930554686244012752]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 14930554686244012752
},
"Component_[16955243819980352058]": {
"$type": "EditorPendingCompositionComponent",
"Id": 16955243819980352058
},
"Component_[17396749751570379839]": {
"$type": "EditorVisibilityComponent",
"Id": 17396749751570379839
},
"Component_[2237683366320350918]": {
"$type": "SelectionComponent",
"Id": 2237683366320350918
},
"Component_[4939437553142322315]": {
"$type": "EditorEntityIconComponent",
"Id": 4939437553142322315
},
"Component_[538074694053236341]": {
"$type": "EditorMaterialComponent",
"Id": 894067052175737998,
"Id": 538074694053236341,
"Controller": {
"Configuration": {
"materials": [
@@ -203,9 +182,36 @@
]
]
},
"Component_[9677874933452340864]": {
"$type": "EditorEntitySortComponent",
"Id": 9677874933452340864
"Component_[5681411293917950785]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 5681411293917950785,
"Parent Entity": "ContainerEntity",
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[7046686956433693767]": {
"$type": "EditorInspectorComponent",
"Id": 7046686956433693767,
"ComponentOrderEntryArray": [
{
"ComponentId": 5681411293917950785
},
{
"ComponentId": 10786078036233199116,
"SortIndex": 1
},
{
"ComponentId": 11765361670726469628,
"SortIndex": 2
},
{
"ComponentId": 538074694053236341,
"SortIndex": 3
}
]
},
"Component_[9565338131843702938]": {
"$type": "EditorOnlyEntityComponent",
"Id": 9565338131843702938
}
},
"IsDependencyReady": true
@@ -3,63 +3,83 @@
"Id": "ContainerEntity",
"Name": "cloth_locked_corners_four",
"Components": {
"Component_[13888132130168041992]": {
"$type": "EditorEntityIconComponent",
"Id": 13888132130168041992
},
"Component_[14031678566419671406]": {
"$type": "EditorVisibilityComponent",
"Id": 14031678566419671406
},
"Component_[15480122384719724795]": {
"Component_[10182366347512475253]": {
"$type": "EditorPrefabComponent",
"Id": 15480122384719724795
"Id": 10182366347512475253
},
"Component_[15688442711950741155]": {
"$type": "SelectionComponent",
"Id": 15688442711950741155
},
"Component_[17193472612212292109]": {
"Component_[12917798267488243668]": {
"$type": "EditorPendingCompositionComponent",
"Id": 17193472612212292109
"Id": 12917798267488243668
},
"Component_[17650154089342371227]": {
"Component_[3261249813163778338]": {
"$type": "EditorOnlyEntityComponent",
"Id": 17650154089342371227
"Id": 3261249813163778338
},
"Component_[2597916765647847638]": {
"$type": "EditorInspectorComponent",
"Id": 2597916765647847638
},
"Component_[3170182215265959833]": {
"$type": "EditorLockComponent",
"Id": 3170182215265959833
},
"Component_[4868760161921280191]": {
"Component_[3837204912784440039]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 4868760161921280191
"Id": 3837204912784440039
},
"Component_[5068517972887920186]": {
"Component_[4272963378099646759]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 5068517972887920186,
"Id": 4272963378099646759,
"Parent Entity": "",
"Cached World Transform Parent": ""
},
"Component_[676524230089543870]": {
"Component_[4848458548047175816]": {
"$type": "EditorVisibilityComponent",
"Id": 4848458548047175816
},
"Component_[5787060997243919943]": {
"$type": "EditorInspectorComponent",
"Id": 5787060997243919943
},
"Component_[7804170251266531779]": {
"$type": "EditorLockComponent",
"Id": 7804170251266531779
},
"Component_[7874177159288365422]": {
"$type": "EditorEntitySortComponent",
"Id": 676524230089543870
"Id": 7874177159288365422
},
"Component_[8018146290632383969]": {
"$type": "EditorEntityIconComponent",
"Id": 8018146290632383969
},
"Component_[8452360690590857075]": {
"$type": "SelectionComponent",
"Id": 8452360690590857075
}
},
"IsDependencyReady": true
}
},
"Entities": {
"Entity_[18154419708790]": {
"Id": "Entity_[18154419708790]",
"Entity_[303417108773332]": {
"Id": "Entity_[303417108773332]",
"Name": "cloth_locked_corners_four",
"Components": {
"Component_[10365722294506366933]": {
"Component_[10032168678611459233]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 10032168678611459233,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{89C91D92-7B4E-5EB5-945D-0053111859EE}",
"subId": 279249006
},
"assetHint": "objects/cloth/environment/cloth_locked_corners_four.azmodel"
}
}
}
},
"Component_[12766570162661899127]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 12766570162661899127,
"Parent Entity": "ContainerEntity",
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[12950486357466178058]": {
"$type": "EditorMaterialComponent",
"Id": 10365722294506366933,
"Id": 12950486357466178058,
"Controller": {
"Configuration": {
"materials": [
@@ -112,110 +132,91 @@
]
]
},
"Component_[10859562122285472274]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 10859562122285472274
},
"Component_[14622083210324204992]": {
"$type": "EditorLockComponent",
"Id": 14622083210324204992
},
"Component_[15220860273045136531]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 15220860273045136531,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{89C91D92-7B4E-5EB5-945D-0053111859EE}",
"subId": 279249006
},
"assetHint": "objects/cloth/environment/cloth_locked_corners_four.azmodel"
}
}
}
},
"Component_[16425888662708329747]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 16425888662708329747,
"Parent Entity": "ContainerEntity",
"Cached World Transform": {
"Translation": [
3.0004701614379885,
-4.337822437286377,
3.1882824897766115
]
},
"Cached World Transform Parent": "ContainerEntity",
"Transform Data": {
"Translate": [
8.040351867675782,
-4.368268966674805,
0.0
]
}
},
"Component_[4438658514025011411]": {
"Component_[13484816898680823471]": {
"$type": "EditorEntitySortComponent",
"Id": 4438658514025011411
"Id": 13484816898680823471
},
"Component_[5913235105006124431]": {
"$type": "EditorPendingCompositionComponent",
"Id": 5913235105006124431
},
"Component_[77600265179991959]": {
"$type": "EditorClothComponent",
"Id": 77600265179991959,
"Configuration": {
"Mesh Node": "pPlane1",
"Air Drag Coefficient": 0.5,
"Air Lift Coefficient": 0.5,
"Tether Constraint Stiffness": 0.10000000149011612,
"Solver Frequency": 0.10000000149011612,
"Update Normals of Static Particles": true,
"Wind Velocity": [
0.0,
19.0,
0.0
]
}
},
"Component_[7823285819593032424]": {
"$type": "SelectionComponent",
"Id": 7823285819593032424
},
"Component_[7850007788027860583]": {
"$type": "EditorEntityIconComponent",
"Id": 7850007788027860583
},
"Component_[8322654623609026271]": {
"$type": "EditorOnlyEntityComponent",
"Id": 8322654623609026271
},
"Component_[884075377124407467]": {
"Component_[1382754615503170687]": {
"$type": "EditorInspectorComponent",
"Id": 884075377124407467,
"Id": 1382754615503170687,
"ComponentOrderEntryArray": [
{
"ComponentId": 16425888662708329747
"ComponentId": 12766570162661899127
},
{
"ComponentId": 15220860273045136531,
"ComponentId": 15114198178471353754,
"SortIndex": 1
},
{
"ComponentId": 10365722294506366933,
"ComponentId": 10032168678611459233,
"SortIndex": 2
},
{
"ComponentId": 77600265179991959,
"ComponentId": 12950486357466178058,
"SortIndex": 3
}
]
},
"Component_[9249713210701101638]": {
"Component_[14681412843852848812]": {
"$type": "EditorEntityIconComponent",
"Id": 14681412843852848812
},
"Component_[15114198178471353754]": {
"$type": "EditorClothComponent",
"Id": 15114198178471353754,
"Configuration": {
"Mesh Node": "pPlane1",
"Stiffness Frequency": 1.0,
"Damping": [
0.0,
0.0,
0.0
],
"Linear Drag": [
0.10000000149011612,
0.10000000149011612,
0.10000000149011612
],
"Angular Drag": [
0.0,
0.0,
0.0
],
"Wind Velocity": [
30.0,
0.0,
0.0
],
"Air Drag Coefficient": 0.5,
"Air Lift Coefficient": 0.5,
"Tether Constraint Stiffness": 0.10000000149011612,
"Solver Frequency": 0.10000000149011612,
"Update Normals of Static Particles": true
}
},
"Component_[16053566237817170938]": {
"$type": "EditorPendingCompositionComponent",
"Id": 16053566237817170938
},
"Component_[4429394044165993194]": {
"$type": "EditorLockComponent",
"Id": 4429394044165993194
},
"Component_[5458686923744863438]": {
"$type": "EditorOnlyEntityComponent",
"Id": 5458686923744863438
},
"Component_[7652255413353256955]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 7652255413353256955
},
"Component_[8417657922837077982]": {
"$type": "EditorVisibilityComponent",
"Id": 9249713210701101638
"Id": 8417657922837077982
},
"Component_[944311658362107535]": {
"$type": "SelectionComponent",
"Id": 944311658362107535
}
},
"IsDependencyReady": true
@@ -3,67 +3,165 @@
"Id": "ContainerEntity",
"Name": "cloth_locked_corners_two",
"Components": {
"Component_[10517025541686089747]": {
"$type": "SelectionComponent",
"Id": 10517025541686089747
},
"Component_[11942695247789365360]": {
"$type": "EditorLockComponent",
"Id": 11942695247789365360
},
"Component_[12559361867367225813]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12559361867367225813
},
"Component_[2298695278968718052]": {
"Component_[10182366347512475253]": {
"$type": "EditorPrefabComponent",
"Id": 2298695278968718052
"Id": 10182366347512475253
},
"Component_[5428140871384328988]": {
"Component_[12917798267488243668]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12917798267488243668
},
"Component_[3261249813163778338]": {
"$type": "EditorOnlyEntityComponent",
"Id": 5428140871384328988
"Id": 3261249813163778338
},
"Component_[5701501137958186643]": {
"Component_[3837204912784440039]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3837204912784440039
},
"Component_[4272963378099646759]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 5701501137958186643,
"Id": 4272963378099646759,
"Parent Entity": "",
"Cached World Transform Parent": ""
},
"Component_[5778239630714783896]": {
"Component_[4848458548047175816]": {
"$type": "EditorVisibilityComponent",
"Id": 5778239630714783896
"Id": 4848458548047175816
},
"Component_[7805751851684582886]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 7805751851684582886
},
"Component_[8080436454059486024]": {
"$type": "EditorEntityIconComponent",
"Id": 8080436454059486024
},
"Component_[9061896821975172319]": {
"Component_[5787060997243919943]": {
"$type": "EditorInspectorComponent",
"Id": 9061896821975172319
"Id": 5787060997243919943
},
"Component_[9124360597499948832]": {
"Component_[7804170251266531779]": {
"$type": "EditorLockComponent",
"Id": 7804170251266531779
},
"Component_[7874177159288365422]": {
"$type": "EditorEntitySortComponent",
"Id": 9124360597499948832
"Id": 7874177159288365422
},
"Component_[8018146290632383969]": {
"$type": "EditorEntityIconComponent",
"Id": 8018146290632383969
},
"Component_[8452360690590857075]": {
"$type": "SelectionComponent",
"Id": 8452360690590857075
}
},
"IsDependencyReady": true
}
},
"Entities": {
"Entity_[19988370744182]": {
"Id": "Entity_[19988370744182]",
"Entity_[303387044002260]": {
"Id": "Entity_[303387044002260]",
"Name": "cloth_locked_corners_two",
"Components": {
"Component_[11229181318682575009]": {
"$type": "EditorOnlyEntityComponent",
"Id": 11229181318682575009
"Component_[1001638726593827857]": {
"$type": "EditorEntityIconComponent",
"Id": 1001638726593827857
},
"Component_[12590098138564546298]": {
"Component_[10262713678088900797]": {
"$type": "EditorLockComponent",
"Id": 10262713678088900797
},
"Component_[11187088727311308743]": {
"$type": "EditorEntitySortComponent",
"Id": 11187088727311308743
},
"Component_[11287804792148854494]": {
"$type": "EditorOnlyEntityComponent",
"Id": 11287804792148854494
},
"Component_[13071159905056054261]": {
"$type": "EditorVisibilityComponent",
"Id": 13071159905056054261
},
"Component_[14654386610096307993]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 14654386610096307993
},
"Component_[16927361351552746000]": {
"$type": "EditorClothComponent",
"Id": 16927361351552746000,
"Configuration": {
"Mesh Node": "pPlane1",
"Mass": 10.0,
"Stiffness Frequency": 1.0,
"Damping": [
0.0,
0.0,
0.0
],
"Linear Drag": [
0.0,
0.0,
0.0
],
"Angular Drag": [
0.0,
0.0,
0.0
],
"Air Drag Coefficient": 0.5,
"Air Lift Coefficient": 0.800000011920929,
"Tether Constraint Stiffness": 0.10000000149011612,
"Solver Frequency": 0.5,
"Update Normals of Static Particles": true
}
},
"Component_[2410073307760782444]": {
"$type": "EditorPendingCompositionComponent",
"Id": 2410073307760782444
},
"Component_[4751432498761592063]": {
"$type": "EditorInspectorComponent",
"Id": 4751432498761592063,
"ComponentOrderEntryArray": [
{
"ComponentId": 5636741882934012477
},
{
"ComponentId": 16927361351552746000,
"SortIndex": 1
},
{
"ComponentId": 7032406204252577953,
"SortIndex": 2
},
{
"ComponentId": 9419069324766365964,
"SortIndex": 3
}
]
},
"Component_[5636741882934012477]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 5636741882934012477,
"Parent Entity": "ContainerEntity",
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[691437686890444081]": {
"$type": "SelectionComponent",
"Id": 691437686890444081
},
"Component_[7032406204252577953]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 7032406204252577953,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{23C6817F-0B79-5CAD-B861-9E6F5E55927D}",
"subId": 280646834
},
"assetHint": "objects/cloth/environment/cloth_locked_corners_two.azmodel"
}
}
}
},
"Component_[9419069324766365964]": {
"$type": "EditorMaterialComponent",
"Id": 12590098138564546298,
"Id": 9419069324766365964,
"Controller": {
"Configuration": {
"materials": [
@@ -115,104 +213,6 @@
}
]
]
},
"Component_[13015448166210260338]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 13015448166210260338,
"Parent Entity": "ContainerEntity",
"Cached World Transform": {
"Translation": [
0.6749224662780762,
-4.288209915161133,
2.4030189514160158
]
},
"Cached World Transform Parent": "ContainerEntity",
"Transform Data": {
"Translate": [
2.2785778045654299,
0.0,
0.0
]
}
},
"Component_[17709800634205509765]": {
"$type": "SelectionComponent",
"Id": 17709800634205509765
},
"Component_[17881336357737316612]": {
"$type": "EditorVisibilityComponent",
"Id": 17881336357737316612
},
"Component_[18134421333115235974]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 18134421333115235974,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{23C6817F-0B79-5CAD-B861-9E6F5E55927D}",
"subId": 280646834
},
"assetHint": "objects/cloth/environment/cloth_locked_corners_two.azmodel"
}
}
}
},
"Component_[1951606800215019069]": {
"$type": "EditorEntityIconComponent",
"Id": 1951606800215019069
},
"Component_[2363740054997837278]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 2363740054997837278
},
"Component_[3674821019392172687]": {
"$type": "EditorInspectorComponent",
"Id": 3674821019392172687,
"ComponentOrderEntryArray": [
{
"ComponentId": 13015448166210260338
},
{
"ComponentId": 18134421333115235974,
"SortIndex": 1
},
{
"ComponentId": 12590098138564546298,
"SortIndex": 2
},
{
"ComponentId": 5881611098656116710,
"SortIndex": 3
}
]
},
"Component_[5096623085809697325]": {
"$type": "EditorPendingCompositionComponent",
"Id": 5096623085809697325
},
"Component_[5881611098656116710]": {
"$type": "EditorClothComponent",
"Id": 5881611098656116710,
"Configuration": {
"Mesh Node": "pPlane1",
"Mass": 10.0,
"Stiffness Frequency": 1.0,
"Air Drag Coefficient": 0.5,
"Air Lift Coefficient": 0.800000011920929,
"Tether Constraint Stiffness": 0.10000000149011612,
"Solver Frequency": 0.5,
"Update Normals of Static Particles": true
}
},
"Component_[617790731841875255]": {
"$type": "EditorLockComponent",
"Id": 617790731841875255
},
"Component_[7682555904043583234]": {
"$type": "EditorEntitySortComponent",
"Id": 7682555904043583234
}
},
"IsDependencyReady": true
@@ -3,67 +3,106 @@
"Id": "ContainerEntity",
"Name": "cloth_locked_edge",
"Components": {
"Component_[1235323850699490217]": {
"$type": "EditorVisibilityComponent",
"Id": 1235323850699490217
"Component_[10182366347512475253]": {
"$type": "EditorPrefabComponent",
"Id": 10182366347512475253
},
"Component_[15881575175154249216]": {
"$type": "EditorEntityIconComponent",
"Id": 15881575175154249216
"Component_[12917798267488243668]": {
"$type": "EditorPendingCompositionComponent",
"Id": 12917798267488243668
},
"Component_[17600849902539154435]": {
"Component_[3261249813163778338]": {
"$type": "EditorOnlyEntityComponent",
"Id": 17600849902539154435
"Id": 3261249813163778338
},
"Component_[17642993831427457865]": {
"Component_[3837204912784440039]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3837204912784440039
},
"Component_[4272963378099646759]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 17642993831427457865,
"Id": 4272963378099646759,
"Parent Entity": "",
"Cached World Transform Parent": ""
},
"Component_[1978132613175166397]": {
"$type": "EditorPrefabComponent",
"Id": 1978132613175166397
"Component_[4848458548047175816]": {
"$type": "EditorVisibilityComponent",
"Id": 4848458548047175816
},
"Component_[3665335443055612027]": {
"$type": "EditorEntitySortComponent",
"Id": 3665335443055612027
},
"Component_[4340499892108035209]": {
"Component_[5787060997243919943]": {
"$type": "EditorInspectorComponent",
"Id": 4340499892108035209
"Id": 5787060997243919943
},
"Component_[5740495422195339981]": {
"$type": "SelectionComponent",
"Id": 5740495422195339981
},
"Component_[5916084327473082953]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 5916084327473082953
},
"Component_[6149161397236330762]": {
"$type": "EditorPendingCompositionComponent",
"Id": 6149161397236330762
},
"Component_[8815189893920523789]": {
"Component_[7804170251266531779]": {
"$type": "EditorLockComponent",
"Id": 8815189893920523789
"Id": 7804170251266531779
},
"Component_[7874177159288365422]": {
"$type": "EditorEntitySortComponent",
"Id": 7874177159288365422
},
"Component_[8018146290632383969]": {
"$type": "EditorEntityIconComponent",
"Id": 8018146290632383969
},
"Component_[8452360690590857075]": {
"$type": "SelectionComponent",
"Id": 8452360690590857075
}
},
"IsDependencyReady": true
}
},
"Entities": {
"Entity_[24657000194934]": {
"Id": "Entity_[24657000194934]",
"Entity_[303356979231188]": {
"Id": "Entity_[303356979231188]",
"Name": "cloth_locked_edge",
"Components": {
"Component_[12570923873370995388]": {
"$type": "EditorEntityIconComponent",
"Id": 12570923873370995388
"Component_[10058909754154454376]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 10058909754154454376
},
"Component_[15695175229307539942]": {
"Component_[13619550272459633699]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 13619550272459633699,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{9DCAD62C-7A35-5D7D-8276-870D646CD5E2}",
"subId": 272561654
},
"assetHint": "objects/cloth/environment/cloth_locked_edge.azmodel"
}
}
}
},
"Component_[14771752773951891563]": {
"$type": "EditorInspectorComponent",
"Id": 14771752773951891563,
"ComponentOrderEntryArray": [
{
"ComponentId": 4215669181198357248
},
{
"ComponentId": 16595775512479337011,
"SortIndex": 1
},
{
"ComponentId": 13619550272459633699,
"SortIndex": 2
},
{
"ComponentId": 4580390205455331350,
"SortIndex": 3
}
]
},
"Component_[14983280478781449966]": {
"$type": "SelectionComponent",
"Id": 14983280478781449966
},
"Component_[16595775512479337011]": {
"$type": "EditorClothComponent",
"Id": 15695175229307539942,
"Id": 16595775512479337011,
"Configuration": {
"Mesh Node": "pPlane1",
"Damping": [
@@ -82,26 +121,28 @@
0.5
],
"Wind Velocity": [
20.0,
10.0,
0.0,
0.0
],
"Update Normals of Static Particles": true,
"Air Drag Coefficient": 0.5,
"Air Lift Coefficient": 0.10000000149011612
"Air Lift Coefficient": 0.5,
"Update Normals of Static Particles": true
}
},
"Component_[1702552432011529292]": {
"$type": "EditorOnlyEntityComponent",
"Id": 1702552432011529292
"Component_[16893372770952587461]": {
"$type": "EditorVisibilityComponent",
"Id": 16893372770952587461
},
"Component_[3257580479102403174]": {
"$type": "EditorDisabledCompositionComponent",
"Id": 3257580479102403174
"Component_[4215669181198357248]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 4215669181198357248,
"Parent Entity": "ContainerEntity",
"Cached World Transform Parent": "ContainerEntity"
},
"Component_[4004895580151009916]": {
"Component_[4580390205455331350]": {
"$type": "EditorMaterialComponent",
"Id": 4004895580151009916,
"Id": 4580390205455331350,
"Controller": {
"Configuration": {
"materials": [
@@ -154,81 +195,25 @@
]
]
},
"Component_[4551907993575066613]": {
"Component_[5652509070289279796]": {
"$type": "EditorOnlyEntityComponent",
"Id": 5652509070289279796
},
"Component_[5729541152832178099]": {
"$type": "EditorEntityIconComponent",
"Id": 5729541152832178099
},
"Component_[734939761857694320]": {
"$type": "EditorPendingCompositionComponent",
"Id": 4551907993575066613
"Id": 734939761857694320
},
"Component_[4676074866703387598]": {
"Component_[9519328464240977334]": {
"$type": "EditorLockComponent",
"Id": 4676074866703387598
"Id": 9519328464240977334
},
"Component_[5370716247379084795]": {
"$type": "SelectionComponent",
"Id": 5370716247379084795
},
"Component_[5949160048738230993]": {
"$type": "EditorVisibilityComponent",
"Id": 5949160048738230993
},
"Component_[7069757442037403546]": {
"$type": "EditorInspectorComponent",
"Id": 7069757442037403546,
"ComponentOrderEntryArray": [
{
"ComponentId": 8406078395808436009
},
{
"ComponentId": 9469271735758494477,
"SortIndex": 1
},
{
"ComponentId": 4004895580151009916,
"SortIndex": 2
},
{
"ComponentId": 15695175229307539942,
"SortIndex": 3
}
]
},
"Component_[8406078395808436009]": {
"$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
"Id": 8406078395808436009,
"Parent Entity": "ContainerEntity",
"Cached World Transform": {
"Translation": [
-0.9528284072875977,
-3.110790252685547,
1.4851393699645997
]
},
"Cached World Transform Parent": "ContainerEntity",
"Transform Data": {
"Translate": [
0.013340950012207032,
-0.012479305267333985,
0.0
]
}
},
"Component_[94124159756316305]": {
"Component_[9694796263300215788]": {
"$type": "EditorEntitySortComponent",
"Id": 94124159756316305
},
"Component_[9469271735758494477]": {
"$type": "AZ::Render::EditorMeshComponent",
"Id": 9469271735758494477,
"Controller": {
"Configuration": {
"ModelAsset": {
"assetId": {
"guid": "{9DCAD62C-7A35-5D7D-8276-870D646CD5E2}",
"subId": 272561654
},
"assetHint": "objects/cloth/environment/cloth_locked_edge.azmodel"
}
}
}
"Id": 9694796263300215788
}
},
"IsDependencyReady": true
@@ -32,9 +32,9 @@ Setup will install [WixBundleName] on your computer. Click install to continue,
<String Id="ModifyCloseButton">&amp;Close</String>
<!-- action progress page -->
<String Id="ProgressHeader">Installing @CPACK_PACKAGE_FULL_NAME@...</String>
<String Id="ProgressLabel">Processing:</String>
<String Id="OverallProgressPackageText">Initializing...</String>
<String Id="ProgressHeader">Processing @CPACK_PACKAGE_FULL_NAME@...</String>
<String Id="CacheProgressLabel">Caching Progress</String>
<String Id="ExecuteProgressLabel">Execution Progress</String>
<String Id="ProgressCancelButton">&amp;Cancel</String>
<!-- final page (success state) -->
@@ -54,9 +54,13 @@
<Page Name="Progress">
<Text X="38" Y="142" Width="-42" Height="34" FontId="0" DisablePrefix="yes">#(loc.ProgressHeader)</Text>
<Text X="42" Y="202" Width="70" Height="18" FontId="1" DisablePrefix="yes">#(loc.ProgressLabel)</Text>
<Text Name="OverallProgressPackageText" X="116" Y="202" Width="-42" Height="18" FontId="2" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text>
<Progressbar Name="OverallCalculatedProgressbar" X="42" Y="230" Width="-90" Height="20" />
<Text X="42" Y="202" Width="-45" Height="18" FontId="1" DisablePrefix="yes">#(loc.CacheProgressLabel)</Text>
<Progressbar Name="CacheProgressbar" X="42" Y="230" Width="-90" Height="20" />
<Text Name="CacheProgressText" X="-45" Y="232" Width="32" Height="18" FontId="2" DisablePrefix="yes"/>
<Text X="42" Y="262" Width="-45" Height="18" FontId="1" DisablePrefix="yes">#(loc.ExecuteProgressLabel)</Text>
<Progressbar Name="ExecuteProgressbar" X="42" Y="290" Width="-90" Height="20" />
<Text Name="ExecuteProgressText" X="-45" Y="292" Width="32" Height="18" FontId="2" DisablePrefix="yes"/>
<Text X="0" Y="426" Width="672" Height="46" FontId="3" HideWhenDisabled="yes" />
<Button Name="ProgressCancelButton" X="-22" Y="-10" Width="80" Height="24" TabStop="yes" FontId="2">#(loc.ProgressCancelButton)</Button>