diff --git a/korman/exporter/material.py b/korman/exporter/material.py index a29f9d8c..c9b17741 100644 --- a/korman/exporter/material.py +++ b/korman/exporter/material.py @@ -509,7 +509,10 @@ def export_texture_slot(self, bo, bm, hsgmat, slot, idx, name=None, blend_flags= else: layer_props = texture.plasma_layer layer.opacity = layer_props.opacity / 100 - self._handle_layer_opacity(layer, layer_props.opacity) + if layer_props.opacity < 100 and not state.blendFlags & hsGMatState.kBlendMask: + state.blendFlags |= hsGMatState.kBlendAlpha + if layer_props.use_alpha_vcol: + state.blendFlags |= hsGMatState.kBlendAlpha if layer_props.alpha_halo: state.blendFlags |= hsGMatState.kBlendAlphaTestHigh if layer_props.z_bias: diff --git a/korman/properties/prop_texture.py b/korman/properties/prop_texture.py index 78d83ad2..297018f0 100644 --- a/korman/properties/prop_texture.py +++ b/korman/properties/prop_texture.py @@ -38,6 +38,9 @@ class PlasmaLayer(bpy.types.PropertyGroup): description="Opacity of the texture", default=100.0, min=0.0, max=100.0, precision=0, subtype="PERCENTAGE") + use_alpha_vcol = BoolProperty(name="Use Alpha VCol", + description="Texture uses the Alpha vertex color values", + default=False) alpha_halo = BoolProperty(name="High Alpha Test", description="Fixes halos seen around semitransparent objects resulting from sorting errors", default=False) diff --git a/korman/ui/ui_texture.py b/korman/ui/ui_texture.py index a346d472..c63e05b0 100644 --- a/korman/ui/ui_texture.py +++ b/korman/ui/ui_texture.py @@ -82,6 +82,7 @@ def draw(self, context): sub = col.column() sub.active = not use_stencil sub.prop(layer_props, "opacity", text="Opacity") + sub.prop(layer_props, "use_alpha_vcol", text="Use Alpha VCol") sub.separator() sub = col.column() sub.active = texture.type == "IMAGE" and texture.image is None