Does this already exist? I cannot figure it out.
metadata_tag’s are perfect candidates as a way to filter assetRegistry queries. my workaround is to iterate over every asset in the project and check each for a certain metadata_tag individually
Does this already exist? I cannot figure it out.
metadata_tag’s are perfect candidates as a way to filter assetRegistry queries. my workaround is to iterate over every asset in the project and check each for a certain metadata_tag individually
import unreal
guid_attr = "GUID"
guid = "0x0D000000000144E8"
registry = unreal.AssetRegistryHelpers.get_asset_registry()
tag_values = unreal.TagAndValue(guid_attr, guid)
pack_filter = unreal.Array(unreal.Name)
pack_filter.append(unreal.Name("/Game"))
tag_value_array = unreal.Array(unreal.TagAndValue)
tag_value_array.append(tag_values)
ar_filter = unreal.ARFilter(package_paths=pack_filter, recursive_paths=True)
ar_filter_with_tags = unreal.AssetRegistryHelpers.set_filter_tags_and_values(
ar_filter, tag_value_array
)
assets = registry.get_assets(ar_filter_with_tags)
if len(assets) == 0:
print("Did not find it")
all_assets = registry.get_assets(ar_filter)
for asset_data in all_assets:
test_guid = unreal.EditorAssetLibrary.get_metadata_tag(asset_data.get_asset(), unreal.Name(guid_attr))
if test_guid == guid:
print("found it")
Output:
LogPython: Did not find it
LogPython: found it