Blender:通过 Python 更改对象的 alpha 透明度?

问题描述 投票:0回答:1

我希望使用游戏引擎实时更改飞机的透明度。我找到了这个脚本:

for x in [0,1,2,3]:
    own.meshes[0].getVertex(0,x).setRGBA([1,1,1,alpha_rate])

这适用于没有附加图像的材料。不过,我现在已为其添加了 UV 纹理并附加了图像。上面的代码现在不起作用。有没有办法改变物体的alpha?

我正在使用 Blender 2.49b 和 Python 2.5.1

任何想法将不胜感激
干杯,

python transparency game-engine blender
1个回答
0
投票

此代码不仅适用于彩色表面,也适用于纹理表面(图像纹理和程序纹理)。有趣的是,回答这个问题花了 13.5 年:)) 我在 macOS Sequoia 15.0 上的 Blender 4.2.2 中测试了这段代码。复制粘贴此代码并将其插入 Blender 的 Python 控制台中。

import bpy

materials = bpy.data.materials

for material in materials:
    if material.node_tree is None:
        continue
    nodes = material.node_tree.nodes
    for node in nodes:
        if node.bl_idname == "ShaderNodeBsdfPrincipled":
            node.inputs["Alpha"].default_value = 0.25

按两次 Enter 键在控制台中执行此脚本。这是我的带有

alpha = 0.25
的立方体。

© www.soinside.com 2019 - 2024. All rights reserved.