From dac34089dd0975623fadaf45f0efd72874720f98 Mon Sep 17 00:00:00 2001 From: Oliver Wong Date: Thu, 16 Apr 2026 17:55:29 +0800 Subject: [PATCH] WIP: MusicTransition SyncPoint --- Assets/Resources/AudioData/AudioObject.bytes | Bin 6668 -> 6526 bytes .../Resources/AudioData/MusicContainer.bytes | Bin 110 -> 144 bytes Assets/Resources/AudioData/MusicPath.bytes | Bin 52 -> 52 bytes Assets/Resources/AudioData/MusicSegment.bytes | Bin 511 -> 541 bytes .../Resources/AudioData/MusicTransition.bytes | Bin 29 -> 34 bytes .../OCES/Audio/Generated/AudioObject.cs | 16 ------------ .../OCES/Audio/Generated/MusicContainer.cs | 3 ++- .../OCES/Audio/Generated/MusicTransition.cs | 23 +++++++++++++++--- .../OCES/Audio/HandWritten/AudioSystem.cs | 2 +- .../HandWritten/HandWrittenDefinitions.cs | 6 +++++ Assets/Scripts/OCES/SetStateBind.cs | 2 +- 11 files changed, 29 insertions(+), 23 deletions(-) diff --git a/Assets/Resources/AudioData/AudioObject.bytes b/Assets/Resources/AudioData/AudioObject.bytes index 59bfffbe7e7cdd9e604feb07f9125ef5617f63b8..9d84c742c73faaf269bfcde3c2846e53996d1ba0 100644 GIT binary patch delta 300 zcmXBFu}T5~0DxiC)ARJsQ|~gJYN)Y-XbmjmOs~!>GsP&3!Xb#ZmY|`a2pT&62WT>B ziHJgo3@VVO2B(I$=6VF_s^Q~1o#>69S&p6KS`(b}Y3DP~n5V>%$L8H*GVEPq&%3~z z`;gCO*O%wnXQB!PYC?vFkmXyblK0oS@voo;49WqEW}t#coW&Fk5VL%U1xA8ZPJ&sw z?xWHo2a-isnjsl7sD-LLgi2`P5?ijP@G67yJUg;MOD-ZSIm(L7rBcBcDN>1;G$M5r z^@2OK$y(In%GHaeNynx*bai4G!tor-aT7t)Y5l$7*aF*H@wd)@1A3ifeUmSJ9lNiE WlxXvsxMjb;&1CWgZ|a`M)Z7oyq#vE#P3(7u-z|}y9rXVT; zr-Ie7_BetgOU6;8 z&7uq;Pu%5h#~jj*RYC_u}T`kkil$^Du1 m{(J1LAo(h6`qsGjT~POTQ37Xt1iG9Cuc?Kum>Npzb-EuL#&R+M diff --git a/Assets/Resources/AudioData/MusicContainer.bytes b/Assets/Resources/AudioData/MusicContainer.bytes index 1e7525a95bab4f669bafb7a5ddaad75c293b0fb9..0daf0bdd4b3e45764960025471555cbc1dac671a 100644 GIT binary patch delta 43 qcmd0sz{tolkug`v#fhJRiGhJZ1c*g}7{vbnA4o7To9LUc0BHb=4h4h& delta 8 PcmbQhn8(OGkuetl3049F diff --git a/Assets/Resources/AudioData/MusicPath.bytes b/Assets/Resources/AudioData/MusicPath.bytes index e32b95b2d0e7ef1dfe9d0b9166ac081d8d8700ad..7d6c812cc8844b34146aeff28358cb30f2ebecaf 100644 GIT binary patch literal 52 lcmZQ(U|?VbVrD}f0~aTLFq;X&Hw5v)YzW`P8OUb_vH@1Q1A_nn literal 52 mcmZQ(U|?VbVrD}f14k!*Fq;X&H*^B>!E6ZM#2LtE2C@NG5(9n! diff --git a/Assets/Resources/AudioData/MusicSegment.bytes b/Assets/Resources/AudioData/MusicSegment.bytes index e97336583d9cdf6e3e8154c0488a302f92cc21d0..b1767f8e7ba470d201cb733445a70dc6391dc1d1 100644 GIT binary patch delta 41 ocmey*JeP%0bR*+GMmZ4%1_rL&(&EhI_>BDAR8a&sJux>G0P}?m2><{9 delta 10 RcmbQs@}HSecq8LKMgS9r18D#N diff --git a/Assets/Resources/AudioData/MusicTransition.bytes b/Assets/Resources/AudioData/MusicTransition.bytes index 68f1c4ca1fea80dca9fbff1030af67ca62fabeed..16b13d2284d0d8a352cbbaade0aa5fd5cc845082 100644 GIT binary patch delta 14 Pcmb1Dnjp!^$N&WZ3zPu! delta 9 OcmY$Aogm4=00aOAy#Vb1 diff --git a/Assets/Scripts/OCES/Audio/Generated/AudioObject.cs b/Assets/Scripts/OCES/Audio/Generated/AudioObject.cs index dcc6696..9989e95 100644 --- a/Assets/Scripts/OCES/Audio/Generated/AudioObject.cs +++ b/Assets/Scripts/OCES/Audio/Generated/AudioObject.cs @@ -108,18 +108,6 @@ public partial class AudioObject : IBinarySerializable /// public bool ContainerPlayMode { get; set; } - /// - /// 按段落配置每段响应范围,用|分隔不同段落 - /// - public string BlendRanges { get; set; } - - /// - /// 0 = 指数 - /// 1 = 线形 - /// 2 = 对数 - /// - public BlendCrossFadeType BlendCrossFadeType { get; set; } - /// /// 指定避免重复的次数 /// @@ -190,8 +178,6 @@ public partial class AudioObject : IBinarySerializable Haptic = reader.ReadUInt32(); ContainerType = (ContainerType)reader.ReadByte(); ContainerPlayMode = reader.ReadBoolean(); - BlendRanges = reader.ReadString(); - BlendCrossFadeType = (BlendCrossFadeType)reader.ReadByte(); LimitRepetition = reader.ReadByte(); RandomType = reader.ReadBoolean(); VolumeStepThreshold = reader.ReadUInt32(); @@ -231,8 +217,6 @@ public partial class AudioObject : IBinarySerializable writer.Write(Haptic); writer.Write((byte)ContainerType); writer.Write(ContainerPlayMode); - writer.Write(BlendRanges); - writer.Write((byte)BlendCrossFadeType); writer.Write(LimitRepetition); writer.Write(RandomType); writer.Write(VolumeStepThreshold); diff --git a/Assets/Scripts/OCES/Audio/Generated/MusicContainer.cs b/Assets/Scripts/OCES/Audio/Generated/MusicContainer.cs index 894b252..4b4417c 100644 --- a/Assets/Scripts/OCES/Audio/Generated/MusicContainer.cs +++ b/Assets/Scripts/OCES/Audio/Generated/MusicContainer.cs @@ -25,7 +25,8 @@ public partial class MusicContainer : IBinarySerializable /// /// 0 = 随机播放 /// 1 = 顺序播放 - /// 2 = 同时播放 + /// 2 = 混合播放 + /// 3 = 切换播放 /// public ContainerType ContainerType { get; set; } diff --git a/Assets/Scripts/OCES/Audio/Generated/MusicTransition.cs b/Assets/Scripts/OCES/Audio/Generated/MusicTransition.cs index 1eba725..ee54cc9 100644 --- a/Assets/Scripts/OCES/Audio/Generated/MusicTransition.cs +++ b/Assets/Scripts/OCES/Audio/Generated/MusicTransition.cs @@ -45,9 +45,20 @@ public partial class MusicTransition : IBinarySerializable public AlignMode AlignMode { get; set; } /// - /// + /// 0 = Start + /// 1 = Same Time /// - public uint Segment { get; set; } + public SyncPoint SyncPoint { get; set; } + + /// + /// samples + /// + public uint StartOffset { get; set; } + + /// + /// samples + /// + public uint EndOffset { get; set; } public void DeSerialize(BinaryReader reader) @@ -58,7 +69,9 @@ public partial class MusicTransition : IBinarySerializable FadeInTime = reader.ReadSingle(); FadeInOffset = reader.ReadSingle(); AlignMode = (AlignMode)reader.ReadByte(); - Segment = reader.ReadUInt32(); + SyncPoint = (SyncPoint)reader.ReadByte(); + StartOffset = reader.ReadUInt32(); + EndOffset = reader.ReadUInt32(); } public void Serialize(BinaryWriter writer) @@ -69,7 +82,9 @@ public partial class MusicTransition : IBinarySerializable writer.Write(FadeInTime); writer.Write(FadeInOffset); writer.Write((byte)AlignMode); - writer.Write(Segment); + writer.Write((byte)SyncPoint); + writer.Write(StartOffset); + writer.Write(EndOffset); } } diff --git a/Assets/Scripts/OCES/Audio/HandWritten/AudioSystem.cs b/Assets/Scripts/OCES/Audio/HandWritten/AudioSystem.cs index 0088bca..4bb3330 100644 --- a/Assets/Scripts/OCES/Audio/HandWritten/AudioSystem.cs +++ b/Assets/Scripts/OCES/Audio/HandWritten/AudioSystem.cs @@ -244,7 +244,7 @@ namespace OCES.Audio { // ── 启动默认音乐与环境音 ── // 触发一次初始状态,让音乐系统从默认状态开始匹配 - SetState(GameState.Home); + //SetState(GameState.Home); } AudioObject ResolveSwitchContainer(AudioObject switchContainer) diff --git a/Assets/Scripts/OCES/Audio/HandWritten/HandWrittenDefinitions.cs b/Assets/Scripts/OCES/Audio/HandWritten/HandWrittenDefinitions.cs index dd7e3be..2caa092 100644 --- a/Assets/Scripts/OCES/Audio/HandWritten/HandWrittenDefinitions.cs +++ b/Assets/Scripts/OCES/Audio/HandWritten/HandWrittenDefinitions.cs @@ -52,6 +52,12 @@ namespace OCES.Audio Playing, // 已经开始播放 Finished, } + + public enum SyncPoint + { + Start, + SameAsCurrentSegment, + } public interface IBinarySerializable { diff --git a/Assets/Scripts/OCES/SetStateBind.cs b/Assets/Scripts/OCES/SetStateBind.cs index 5d50705..9b87d82 100644 --- a/Assets/Scripts/OCES/SetStateBind.cs +++ b/Assets/Scripts/OCES/SetStateBind.cs @@ -7,7 +7,7 @@ namespace OCES { public class SetStateBind : MonoBehaviour { - public GameState targetGameState; + public TileMaterial targetGameState; public bool enableLowpass; public Text buttonText;