ue5python批量修改材质实例的父项

ue5python批量修改材质实例的父项

import unreal
# 需要被替换材质实例列表的路径
mat_dir = "/Game/mat_test/"
# 替换的材质
use_mat_path = "Material'/Engine/ArtTools/RenderToTexture/Materials/Flipbooks/M_FlipbookLocalCoordinateTest_01.M_FlipbookLocalCoordinateTest_01'"


def main():
	# 获取AssetRegistry实例
    asset_registry = unreal.AssetRegistryHelpers.get_asset_registry()
    # 通过地址获取所有资源文件,recursive:是否递归获取(如果还想获取路径下的文件夹里资源,需要设置为True)
    asset_data = asset_registry.get_assets_by_path(mat_dir, recursive=True)
    # 获取等会替换用的资源文件,get_asset:真正的获取到资源对象
    use_mat_asset = asset_registry.get_asset_by_object_path(use_mat_path).get_asset()
    
    ue_type_name = unreal.Name('MaterialInstanceConstant')
    ue_filter = unreal.ARFilter(class_names=[ue_type_name])
    # 过滤出材质实例
    asset_data_info_list = asset_registry.run_assets_through_filter(asset_data, ue_filter)
    
    for asset_data_info in asset_data_info_list:
        asset_data = asset_data_info.get_asset()
        # 修改每个材质实例的父项材质
        asset_data.set_editor_property('parent', use_mat_asset)
        # 资源保存,可以注释掉,确认正确后自己手动全部保存
        unreal.EditorAssetLibrary.save_loaded_asset(asset_data)


if __name__ == '__main__':
    main()

然后ue里直接执行py文件就可以了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值