diff --git a/Gems/Blast/Editor/Scripts/blast_asset_builder.py b/Gems/Blast/Editor/Scripts/blast_asset_builder.py index a570489ed1..cd17360f9f 100644 --- a/Gems/Blast/Editor/Scripts/blast_asset_builder.py +++ b/Gems/Blast/Editor/Scripts/blast_asset_builder.py @@ -15,7 +15,7 @@ manifest that writes out asset chunk data for .blast files import os, traceback, binascii, sys, json, pathlib import azlmbr.math import azlmbr.asset -import azlmbr.asset.entity +import azlmbr.entity import azlmbr.asset.builder import azlmbr.bus diff --git a/Gems/Blast/Editor/Scripts/blast_chunk_processor.py b/Gems/Blast/Editor/Scripts/blast_chunk_processor.py index d112f465e9..500577716b 100644 --- a/Gems/Blast/Editor/Scripts/blast_chunk_processor.py +++ b/Gems/Blast/Editor/Scripts/blast_chunk_processor.py @@ -12,10 +12,10 @@ into a scene manifest This is also a SceneAPI script that executes from a foo.fbx.assetinfo scene manifest that writes out asset chunk data for .blast files """ -import os, traceback, binascii, sys, json, pathlib +import os, traceback, binascii, sys, json, pathlib, logging import azlmbr.math import azlmbr.asset -import azlmbr.asset.entity +import azlmbr.entity import azlmbr.asset.builder import azlmbr.bus @@ -24,6 +24,14 @@ import azlmbr.bus # blastChunksAssetType = azlmbr.math.Uuid_CreateString('{993F0B0F-37D9-48C6-9CC2-E27D3F3E343E}', 0) +def log_exception_traceback(): + """ + Outputs an exception stacktrace. + """ + data = traceback.format_exc() + logger = logging.getLogger('python') + logger.error(data) + def export_chunk_asset(scene, outputDirectory, platformIdentifier, productList): import azlmbr.scene import azlmbr.object @@ -97,7 +105,7 @@ def get_mesh_node_names(sceneGraph): return meshDataList def update_manifest(scene): - import uuid, os + import uuid, os, json import azlmbr.scene as sceneApi import azlmbr.scene.graph from scene_api import scene_data as sceneData @@ -116,6 +124,9 @@ def update_manifest(scene): meshGroup['id'] = '{' + str(uuid.uuid5(uuid.NAMESPACE_DNS, sourceFilenameOnly + chunkPath)) + '}' sceneManifest.mesh_group_select_node(meshGroup, chunkPath) + # combine both scene manifests so the OnPrepareForExport will be called + originalManifest = json.loads(scene.manifest.ExportToJson()) + sceneManifest.manifest["values"].append(originalManifest["values"][0]) return sceneManifest.export() sceneJobHandler = None diff --git a/Gems/Blast/Editor/Scripts/bootstrap.py b/Gems/Blast/Editor/Scripts/bootstrap.py index 93004d474f..aa7e7625e8 100755 --- a/Gems/Blast/Editor/Scripts/bootstrap.py +++ b/Gems/Blast/Editor/Scripts/bootstrap.py @@ -6,7 +6,7 @@ SPDX-License-Identifier: Apache-2.0 OR MIT """ try: import azlmbr.asset - import azlmbr.asset.entity + import azlmbr.entity import azlmbr.asset.builder import blast_asset_builder except: