Music visualizer resource

This commit is contained in:
Maddo 2025-02-27 09:14:00 +01:00
commit e8b884f54b
10 changed files with 82 additions and 19 deletions

View file

@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="MusicResource" load_steps=3 format=3 uid="uid://byo74ews118nl"]
[ext_resource type="AudioStream" uid="uid://di416g5wgx6j0" path="res://Music/Title.mp3" id="1_u5qon"]
[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="1_xdwi3"]
[resource]
script = ExtResource("1_xdwi3")
TrackName = "No Reason"
AuthorName = "Fenekhu"
ShowAuthor = false
Track = ExtResource("1_u5qon")
metadata/_custom_type_script = "uid://cx63lvsuj1787"

View file

@ -0,0 +1,12 @@
[gd_resource type="Resource" script_class="MusicResource" load_steps=3 format=3 uid="uid://b0aryixgv2vkj"]
[ext_resource type="AudioStream" uid="uid://7fo2dxosnjk4" path="res://Music/Intro.mp3" id="1_d4uiy"]
[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="2_f2m3a"]
[resource]
script = ExtResource("2_f2m3a")
TrackName = "No Restraint"
AuthorName = "Fenekhu"
ShowAuthor = false
Track = ExtResource("1_d4uiy")
metadata/_custom_type_script = "uid://cx63lvsuj1787"

View file

@ -0,0 +1,10 @@
[gd_resource type="Resource" script_class="MusicResource" load_steps=2 format=3 uid="uid://b0jpn0kkmciuq"]
[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="1_ajy4g"]
[resource]
script = ExtResource("1_ajy4g")
TrackName = "An Overtime Fairy Dance"
AuthorName = "Fenekhu"
ShowAuthor = false
metadata/_custom_type_script = "uid://cx63lvsuj1787"

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=31 format=3 uid="uid://oaxftu6lytvv"]
[gd_scene load_steps=32 format=3 uid="uid://oaxftu6lytvv"]
[ext_resource type="Script" uid="uid://d1cxthcj2fc10" path="res://Scripts/UI/IntroScenePlayer.cs" id="1_jtu71"]
[ext_resource type="Texture2D" uid="uid://4skj5ik6qpu4" path="res://Sprites/Briefing/Intro1small.png" id="2_6u3to"]
@ -22,6 +22,7 @@
[ext_resource type="Texture2D" uid="uid://xvadkvwajs0t" path="res://Sprites/UI/Crystal.png" id="19_paaiq"]
[ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="20_8r24y"]
[ext_resource type="AudioStream" uid="uid://7fo2dxosnjk4" path="res://Music/Intro.mp3" id="21_p86nr"]
[ext_resource type="Resource" uid="uid://b0aryixgv2vkj" path="res://Resources/Music/No_Restraint.tres" id="23_vtao2"]
[sub_resource type="Gradient" id="Gradient_k5r5b"]
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1)
@ -608,4 +609,4 @@ libraries = {
}
[node name="AudioStreamPlayer2D2" parent="." instance=ExtResource("20_8r24y")]
TrackName = "Intro"
MusicData = ExtResource("23_vtao2")

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://5xajclchk3my"]
[gd_scene load_steps=16 format=3 uid="uid://5xajclchk3my"]
[ext_resource type="Script" uid="uid://dql102fvubniv" path="res://Scripts/MainMenu.cs" id="1_702nk"]
[ext_resource type="PackedScene" uid="uid://c84shrj84g4t2" path="res://Scenes/HUD/MusicRoom.tscn" id="2_if7li"]
@ -12,6 +12,7 @@
[ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="7_rrcx7"]
[ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="8_koqhg"]
[ext_resource type="PackedScene" uid="uid://bemu3l6b1e84y" path="res://Scenes/HUD/debug_menu.tscn" id="9_nwlsr"]
[ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="13_fh7cp"]
[sub_resource type="Theme" id="Theme_c7h4d"]
@ -149,8 +150,7 @@ text = "Credits"
[node name="AudioStreamPlayer2D" parent="." instance=ExtResource("8_koqhg")]
stream = ExtResource("4_i6ku4")
autoplay = true
TrackName = "No Reason"
AuthorName = "Fenekhu"
MusicData = ExtResource("13_fh7cp")
[node name="SubMenuContainer" type="PanelContainer" parent="."]
visible = false

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=119 format=4 uid="uid://bv451a8wgty4u"]
[gd_scene load_steps=120 format=4 uid="uid://bv451a8wgty4u"]
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"]
[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_8mh54"]
@ -81,6 +81,7 @@
[ext_resource type="PackedScene" uid="uid://dfat0erkvb513" path="res://Scenes/Actors/Fairy_New.tscn" id="73_s4x1s"]
[ext_resource type="PackedScene" uid="uid://c21m7w5ahpsd0" path="res://Scenes/Activable/Shroud.tscn" id="74_oaf68"]
[ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="77_yot54"]
[ext_resource type="Resource" uid="uid://b0jpn0kkmciuq" path="res://Resources/Music/Overtime_Fairy_Dance.tres" id="82_ksslq"]
[sub_resource type="Resource" id="Resource_6sau4"]
script = ExtResource("7_l32kg")
@ -1174,5 +1175,4 @@ position = Vector2(-1080, -399)
[node name="AudioStreamPlayer2D" parent="." instance=ExtResource("77_yot54")]
process_mode = 3
autoplay = true
TrackName = "Level 1"
AuthorName = "Nobody"
MusicData = ExtResource("82_ksslq")

View file

@ -0,0 +1,20 @@
using System;
using Godot;
namespace Cirno.Scripts.Resources;
[GlobalClass]
public partial class MusicResource : Resource
{
[Export]
public string TrackName { get; set; }
[Export]
public string AuthorName { get; set; }
[Export]
public bool ShowAuthor { get; set; }
[Export]
public AudioStream Track { get; set; }
}

View file

@ -0,0 +1 @@
uid://cx63lvsuj1787

View file

@ -6,23 +6,21 @@ using GTweens.Builders;
using GTweens.Easings;
using GTweens.Tweens;
using GTweensGodot.Extensions;
using Cirno.Scripts.Resources;
public partial class AudioNameVisualizer : AudioStreamPlayer2D
{
[Export]
public string TrackName { get; private set; }
[Export]
public string AuthorName { get; private set; }
public MusicResource MusicData { get; private set; }
[Export] public PackedScene CanvasTemplate;
private MusicVisualizerCanvas _canvasLayer;
public override void _Ready()
{
Setup();
if (Autoplay)
{
ShowName();
@ -31,6 +29,11 @@ public partial class AudioNameVisualizer : AudioStreamPlayer2D
private void Setup()
{
if (MusicData?.Track is not null)
{
this.Stream = MusicData.Track;
}
var existingCanvas = this.GetTree().Root.GetNodeOrNull<CanvasLayer>("AudioCanvas");
if (existingCanvas is null)
@ -54,7 +57,11 @@ public partial class AudioNameVisualizer : AudioStreamPlayer2D
public void ShowName()
{
GD.Print("show name");
_canvasLayer.ShowName(TrackName, AuthorName);
if (MusicData is null)
{
GD.PushWarning("Music data was null");
return;
}
_canvasLayer.ShowName(MusicData.TrackName, MusicData.ShowAuthor ? MusicData.AuthorName : null);
}
}

View file

@ -18,7 +18,7 @@ public partial class MusicVisualizerCanvas : CanvasLayer
private void ResetLabel(string trackName, string authorName)
{
_nameLabel.Text = $"{trackName} ({authorName})";
_nameLabel.Text = string.IsNullOrWhiteSpace(authorName) ? authorName : $"{trackName} ({authorName})";
_nameLabel.SetAnchorsAndOffsetsPreset(Control.LayoutPreset.BottomRight, margin: 0);
_nameLabel.Modulate = Colors.White;
_nameLabel.Hide();
@ -30,7 +30,7 @@ public partial class MusicVisualizerCanvas : CanvasLayer
//_tween?.Complete();
ResetLabel(trackName, authorName);
_nameLabel.Show();
_tween = GTweenSequenceBuilder.New()
.Append(_nameLabel.TweenPositionX(_nameLabel.Position.X + 32, 0f)) // Add offset
.Join(_nameLabel.TweenModulateAlpha(0, 0f)) // Invisibilify