【UE4】创建材质机器实例

【UE4】创建材质机器实例

import unreal

mat_folder='/Game/Materials'


def createMat():
    mat_name="Master_Material"
    texture_name="/Game/Textures/Dog"
    asset_tools = unreal.AssetToolsHelpers.get_asset_tools()
    if not unreal.EditorAssetLibrary.does_directory_exist(mat_folder):
        unreal.EditorAssetLibrary.make_directory(mat_folder)

    master_mat = asset_tools.create_asset( mat_name, mat_folder, unreal.Material,unreal.MaterialFactoryNew())

# Temporary textures
    temp_base = unreal.EditorAssetLibrary.find_asset_data(texture_name).get_asset()

# Base Color
    b_color_node = unreal.MaterialEditingLibrary.create_material_expression(master_mat,
                                                                            unreal.MaterialExpressionTextureSampleParameter2D,
                                                                            -384, 200)
    b_color_node.texture = temp_base

# Connect new parameter nodes to material property
    unreal.MaterialEditingLibrary.connect_material_property(b_color_node, "RGB",unreal.MaterialProperty.MP_BASE_COLOR)

# Save Master Material
    unreal.MaterialEditingLibrary.recompile_material(master_mat)
    unreal.EditorAssetLibrary.save_asset(mat_folder + mat_name, only_if_is_dirty=False)


# Create material instance
    mat_inst_name = "MI"
    mat_inst_path = mat_folder+mat_inst_name
    if not unreal.EditorAssetLibrary.does_directory_exist(mat_inst_path):
        unreal.EditorAssetLibrary.make_directory(mat_inst_path)
    mat_inst = asset_tools.create_asset(mat_inst_name, mat_inst_path, unreal.MaterialInstanceConstant,unreal.MaterialInstanceConstantFactoryNew())
    unreal.MaterialEditingLibrary.set_material_instance_parent(mat_inst, master_mat)
    unreal.EditorAssetLibrary.save_asset( mat_inst_path, only_if_is_dirty=False)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值