Fix opening prologue text readability

This commit is contained in:
2026-06-20 14:13:57 +09:00
parent 6f92f832cf
commit 950158eaa0
2 changed files with 57 additions and 13 deletions

View File

@@ -278,17 +278,28 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
var opening_title_color: Color = scene.opening_prologue_title_label.get_theme_color("font_color")
if opening_title_color.get_luminance() < 0.78:
failures.append("opening prologue title should use bright caption text over the artwork")
if scene.opening_prologue_title_label.get_theme_constant("outline_size") < 3:
if scene.opening_prologue_title_label.get_theme_constant("outline_size") < 5:
failures.append("opening prologue title should have a strong outline over the artwork")
if scene.opening_prologue_title_label.modulate.a < 0.99 or scene.opening_prologue_title_label.self_modulate.a < 0.99:
failures.append("opening prologue title should render at full opacity")
if scene.opening_prologue_body_label != null:
var opening_body_color: Color = scene.opening_prologue_body_label.get_theme_color("font_color")
if opening_body_color.get_luminance() < 0.86:
failures.append("opening prologue body should use bright readable text over the artwork")
if scene.opening_prologue_body_label.get_theme_constant("outline_size") < 3:
if scene.opening_prologue_body_label.get_theme_constant("outline_size") < 5:
failures.append("opening prologue body should keep a strong outline over generated art")
if scene.opening_prologue_body_label.get_theme_color("font_outline_color").a < 0.95:
failures.append("opening prologue body should use an opaque ink outline")
if scene.opening_prologue_body_label.get_theme_color("font_shadow_color").a < 0.90:
failures.append("opening prologue body should keep a strong shadow over bright artwork")
if scene.opening_prologue_body_label.modulate.a < 0.99 or scene.opening_prologue_body_label.self_modulate.a < 0.99:
failures.append("opening prologue body should render at full opacity")
var opening_caption: PanelContainer = null
if scene.opening_prologue_root != null:
opening_caption = scene.opening_prologue_root.find_child("OpeningCaptionScroll", true, false) as PanelContainer
var opening_caption_backing: ColorRect = null
if scene.opening_prologue_root != null:
opening_caption_backing = scene.opening_prologue_root.find_child("OpeningCaptionTextBacking", true, false) as ColorRect
if opening_caption == null:
failures.append("opening prologue should keep a bottom scroll caption over the artwork")
elif opening_caption.custom_minimum_size.y < 160.0 or opening_caption.custom_minimum_size.y > 188.0 or opening_caption.position.y < 492.0:
@@ -297,8 +308,19 @@ func _check_title_menu_start_load_and_settings(failures: Array[String]) -> void:
failures.append("opening prologue caption should use a dark cinematic panel so text remains visible")
elif bool(opening_caption.get_meta("generated_panel_texture", true)):
failures.append("opening prologue caption should use a flat high-contrast panel instead of a busy texture")
elif opening_caption.z_index < 20:
elif opening_caption.z_index < 60:
failures.append("opening prologue caption should render above the generated story image")
if opening_caption_backing == null:
failures.append("opening prologue should keep a dedicated dark backing behind story text")
elif opening_caption_backing.color.a < 0.55:
failures.append("opening prologue backing should be dark enough for readable Korean text")
elif opening_caption != null and opening_caption_backing.z_index >= opening_caption.z_index:
failures.append("opening prologue backing should sit behind the caption panel")
if scene.opening_prologue_body_label != null and opening_caption != null:
if scene.opening_prologue_body_label.z_as_relative:
failures.append("opening prologue body should use an absolute text layer over the cinematic art")
if scene.opening_prologue_body_label.z_index <= opening_caption.z_index:
failures.append("opening prologue body text should render above the caption panel")
var first_story_texture: Texture2D = null
if scene.opening_prologue_scene_texture_rect != null:
first_story_texture = scene.opening_prologue_scene_texture_rect.texture