feat(player): standardize independent playback; reset slot key memory on replay#203
Merged
Merged
Conversation
Bump SpriteStudio-SDK to the standardized independent-playback runtime (EffectSlot/InstanceSlot last-started-key arbitration + ss_*_slot_reset). play() always heads out (resume is pause()'s toggle), so clear every effect/instance slot's "last started key" memory on play() via the new ss_effect_slot_reset / ss_instance_slot_reset C-API. Without this a re-played animation would debounce an already-fired independent effect / instance as the same key and never re-fire it (spec §6). The host only iterates the slots it owns (and recurses into instance children); the reset logic itself lives in the runtime.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
独立再生(independent)の確定スペック対応の プレーヤ側 PR です。SDK 側 PR(cri-middleware/SpriteStudio-SDK#270)の bump を含みます。
変更内容
50123d5→088d2bc(独立再生キー調停の確定 +ss_*_slot_resetC-API。develop 最新f0036aa取り込み込み)。play()でスロット記憶をリセット:play()は常に頭出し(再開はpause()のトグルが兼任)なので、各 Effect / Instance スロットの「最後に再生を始めたキー」記憶を新 C-APIss_effect_slot_reset/ss_instance_slot_resetでクリア。これが無いと、再 play したアニメで既発火の独立エフェクト / インスタンスが「同一キー → 無視」となり再発火しない(spec §6)。依存・マージ順
088d2bcを指します。先に SDK PR #270 をマージしてから本 PR をマージしてください(順序が逆だと submodule 参照が解決できません)。検証
備考:
ss_player/runtime/include/ssruntime.hは.gitignore対象(cbindgen 生成物)のため差分には含まれません。runtime 再ビルド時に新宣言が自動生成されます。