You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To facilitate testing this bug, I replicated the additive blendig demo. Attach this code to the oficial Owl spine ( SpineSprite node ) and uncomment lines 22 to 25 to replicate the error.
extendsSpineSprite@export_range(0.0,10.0) varblend_speed=5.0@onreadyvarstate=get_animation_state()
@onreadyvarleft=state.set_animation('right', true, 2)
@onreadyvarright=state.set_animation('left', true, 3)
@onreadyvarup=state.set_animation('up', true, 4)
@onreadyvardown=state.set_animation('down', true, 5)
varmouse_pos=Vector2.ZEROvarleft_alpha=0.0varright_alpha=0.0varup_alpha=0.0vardown_alpha=0.0# Called when the node enters the scene tree for the first time.func_ready():
state.set_animation("idle", true, 0)
state.set_animation("blink", true, 1)
# left.set_mix_blend(SpineConstant.MixBlend_Add)# right.set_mix_blend(SpineConstant.MixBlend_Add)# up.set_mix_blend(SpineConstant.MixBlend_Add)# down.set_mix_blend(SpineConstant.MixBlend_Add)left.set_alpha(0.0)
right.set_alpha(0.0)
up.set_alpha(0.0)
down.set_alpha(0.0)
func_input(event):
ifeventisInputEventMouseMotion:
mouse_pos=event.positionelse:
mouse_pos=get_viewport_rect().size/2# Called every frame. 'delta' is the elapsed time since the previous frame.func_process(delta):
calculate_blend(mouse_pos.x, mouse_pos.y, delta)
funccalculate_blend(x, y, delta):
varsize=get_viewport_rect().sizevarcenter=size/2varleft_pos=1-x/center.xifx<center.xelse0.0;
varright_pos= (x-center.x) / (size.x-center.x) ifx>center.xelse0.0;
varup_pos=1-y/center.yify<center.yelse0.0;
vardown_pos= (y-center.y) / (size.y-center.y) ify>center.yelse0.0;
left_alpha=lerp(left_alpha, left_pos, delta*blend_speed)
right_alpha=lerp(right_alpha, right_pos, delta*blend_speed)
up_alpha=lerp(up_alpha, up_pos, delta*blend_speed)
down_alpha=lerp(down_alpha, down_pos, delta*blend_speed)
left.set_alpha(left_alpha)
right.set_alpha(right_alpha)
up.set_alpha(up_alpha)
down.set_alpha(down_alpha)
See https://esotericsoftware.com/forum/d/24802-godot-additive-mix-blending-bug-after-track-entries-completed
The text was updated successfully, but these errors were encountered: