Timeline UI changes

The onion skinning button replaces the old onion skinning area of the timeline, but there's no way right now to change the settings. This will be added in a future commit. More UI changes will soon follow.
This commit is contained in:
OverloadedOrama 2020-03-26 20:56:30 +02:00
parent 278c9facb2
commit 07db587b6c
21 changed files with 516 additions and 199 deletions

View file

@ -40,6 +40,12 @@ func add_frame() -> void:
Global.undo_redo.add_undo_property(Global, "current_frame", Global.current_frame)
Global.undo_redo.commit_action()
func _on_OnionSkinning_pressed() -> void:
Global.onion_skinning = !Global.onion_skinning
Global.canvas.update()
func _on_LoopAnim_pressed() -> void:
match animation_loop:
0: # Make it loop

View file

@ -72,37 +72,38 @@ func _ready() -> void:
func _draw() -> void:
draw_texture_rect(Global.transparent_background, Rect2(location, size), true) # Draw transparent background
# Onion Skinning
# Past
if Global.onion_skinning_past_rate > 0:
var color : Color
if Global.onion_skinning_blue_red:
color = Color.blue
else:
color = Color.white
for i in range(1, Global.onion_skinning_past_rate + 1):
if Global.current_frame >= i:
var layer_i := 0
for layer in Global.canvases[Global.current_frame - i].layers:
if Global.layers[layer_i][1]: # If it's visible
color.a = 0.6 / i
draw_texture(layer[1], location, color)
layer_i += 1
if Global.onion_skinning:
# Past
if Global.onion_skinning_past_rate > 0:
var color : Color
if Global.onion_skinning_blue_red:
color = Color.blue
else:
color = Color.white
for i in range(1, Global.onion_skinning_past_rate + 1):
if Global.current_frame >= i:
var layer_i := 0
for layer in Global.canvases[Global.current_frame - i].layers:
if Global.layers[layer_i][1]: # If it's visible
color.a = 0.6 / i
draw_texture(layer[1], location, color)
layer_i += 1
# Future
if Global.onion_skinning_future_rate > 0:
var color : Color
if Global.onion_skinning_blue_red:
color = Color.red
else:
color = Color.white
for i in range(1, Global.onion_skinning_future_rate + 1):
if Global.current_frame < Global.canvases.size() - i:
var layer_i := 0
for layer in Global.canvases[Global.current_frame + i].layers:
if Global.layers[layer_i][1]: # If it's visible
color.a = 0.6 / i
draw_texture(layer[1], location, color)
layer_i += 1
# Future
if Global.onion_skinning_future_rate > 0:
var color : Color
if Global.onion_skinning_blue_red:
color = Color.red
else:
color = Color.white
for i in range(1, Global.onion_skinning_future_rate + 1):
if Global.current_frame < Global.canvases.size() - i:
var layer_i := 0
for layer in Global.canvases[Global.current_frame + i].layers:
if Global.layers[layer_i][1]: # If it's visible
color.a = 0.6 / i
draw_texture(layer[1], location, color)
layer_i += 1
# Draw current frame layers
for i in range(layers.size()):

View file

@ -111,10 +111,11 @@ var show_guides := true
var show_animation_timeline := true
# Onion skinning options
var onion_skinning := false
# warning-ignore:unused_class_variable
var onion_skinning_past_rate := 0
var onion_skinning_past_rate := 1
# warning-ignore:unused_class_variable
var onion_skinning_future_rate := 0
var onion_skinning_future_rate := 1
# warning-ignore:unused_class_variable
var onion_skinning_blue_red := false