Skip to content

feat(player): standardize independent playback; reset slot key memory on replay#203

Merged
MasamiYitsuse merged 1 commit into
developfrom
feature/standardize-playback-independent
Jun 24, 2026
Merged

feat(player): standardize independent playback; reset slot key memory on replay#203
MasamiYitsuse merged 1 commit into
developfrom
feature/standardize-playback-independent

Conversation

@MasamiYitsuse

Copy link
Copy Markdown
Collaborator

概要

独立再生(independent)の確定スペック対応の プレーヤ側 PR です。SDK 側 PR(cri-middleware/SpriteStudio-SDK#270)の bump を含みます。

変更内容

  • SDK bump: 50123d5088d2bc(独立再生キー調停の確定 + ss_*_slot_reset C-API。develop 最新 f0036aa 取り込み込み)。
  • play() でスロット記憶をリセット: play() は常に頭出し(再開は pause() のトグルが兼任)なので、各 Effect / Instance スロットの「最後に再生を始めたキー」記憶を新 C-API ss_effect_slot_reset / ss_instance_slot_reset でクリア。これが無いと、再 play したアニメで既発火の独立エフェクト / インスタンスが「同一キー → 無視」となり再発火しない(spec §6)。
  • ホストは自分が所有するスロットを舐めて reset を呼ぶだけ(インスタンス子へ再帰)。調停ロジック本体は runtime 側。

依存・マージ順

⚠️ submodule ポインタは SDK の feature ブランチ上のコミット 088d2bc を指します。先に SDK PR #270 をマージしてから本 PR をマージしてください(順序が逆だと submodule 参照が解決できません)。

検証

  • SDK 側: fmt / clippy / test / no_std すべて緑
  • Godot 実機目視で feature/mac #2(一発限り)/ update README.md #7(区間ループ持続)/ 再 play 復活を確認済み
  • ランタイム再ビルド(新シンボル)→ 拡張ビルドでリンク確認

備考: ss_player/runtime/include/ssruntime.h.gitignore 対象(cbindgen 生成物)のため差分には含まれません。runtime 再ビルド時に新宣言が自動生成されます。

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.
@MasamiYitsuse MasamiYitsuse merged commit 8116645 into develop Jun 24, 2026
0 of 2 checks passed
@MasamiYitsuse MasamiYitsuse deleted the feature/standardize-playback-independent branch June 24, 2026 04:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant