From 9deeeb1b12b1b6dfa9df5098956a802f95be8acb Mon Sep 17 00:00:00 2001 From: Naruto TAKAHASHI Date: Sat, 25 Jul 2026 14:29:53 +0900 Subject: [PATCH] docs: link the shared runtime limitations instead of restating them The four playback constraints in this page come from libssruntime and are duplicated word-for-word in SSPlayerForFlutter and SSPlayerForRenPy. They now live once in the documentation portal, which also covers the shared constraints this page never listed (embedded mode, unvalidated .ssab input). Keep a one-line summary of each so the page still reads on its own, and link out for the full explanation. Also restores the Contributor Covenant attribution in CODE_OF_CONDUCT.md, aligning it with SSPlayerForRenPy's copy. Kept in sync across docs/en/ and docs/ja/. --- CODE_OF_CONDUCT.md | 7 +++++++ docs/en/limitations.md | 13 ++++++++----- docs/ja/limitations.md | 13 ++++++++----- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 27c0790..8a87735 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,3 +60,10 @@ This Code of Conduct applies within all project spaces — including but not lim The project maintainers are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Issues or complaints may be reported privately to the maintainers or via the official **Help Center** link provided in `SUPPORT.md`. + +--- + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html). diff --git a/docs/en/limitations.md b/docs/en/limitations.md index 4476add..2b87ff7 100644 --- a/docs/en/limitations.md +++ b/docs/en/limitations.md @@ -25,10 +25,13 @@ Per-platform caveats to keep in mind: ## Playback Feature Constraints -These come from the shared `libssruntime` and therefore apply regardless of build variant. +These come from the shared `libssruntime` and therefore apply regardless of build variant. They +apply to every official player too, so the full explanations — and the rest of the shared +constraints (embedded mode, unvalidated `.ssab` input, and so on) — live in the portal: +**[Shared Limitations](https://cri-middleware.github.io/SpriteStudio-Docs/sdk/limitations/)**. > [!WARNING] -> - **`independent=true` parts (Instance / Effect) do not reverse or seek correctly.** An `independent=true` child runs on its own real-time clock, detached from the parent timeline. Parent **reverse playback** and **seeking** break it; only **forward** playback (including forward frame-skips) is correct. Prefer authoring without `independent=true` for animations that may be played in reverse or seeked. -> - **Seeking does not fire the events it skips over.** Jumping the playhead directly (e.g. setting the frame) does **not** emit the `UserData` / `Signal` / `Audio` events on the frames passed over — only the destination frame's events fire. If you need every intermediate event, advance the animation step by step instead of jumping. -> - **No reverse audio.** Sounds fire only while the animation advances forward in time. When the effective direction is backward (reverse direction, ping-pong return, or negative speed), audio events are skipped — audio cannot be played in reverse. -> - **Animation blending is same-`.ssab` only.** Cross-`.ssab` (cross-resource) blending is not supported, and every blended animation must assign the **same Cell to the same part**; mismatched Cells cause size / pivot mismatches that break the pose. +> - **`independent=true` parts (Instance / Effect) do not reverse or seek correctly.** Only forward playback (including forward frame-skips) is correct. +> - **Seeking does not fire the events it skips over.** Only the destination frame's `UserData` / `Signal` / `Audio` events fire. +> - **No reverse audio.** Sounds are skipped whenever the effective direction is backward (reverse direction, ping-pong return, or negative speed). +> - **Animation blending is same-`.ssab` only**, and every blended animation must assign the same Cell to the same part. diff --git a/docs/ja/limitations.md b/docs/ja/limitations.md index a1ca1db..77f02ed 100644 --- a/docs/ja/limitations.md +++ b/docs/ja/limitations.md @@ -25,10 +25,13 @@ ## 再生機能の制約 -以下は共通の `libssruntime` に由来する挙動のため、ビルド形態に関わらず適用されます。 +以下は共通の `libssruntime` に由来する挙動のため、ビルド形態に関わらず適用されます。すべての公式 +Player に共通する制約であり、詳しい説明とその他の共通制約(embedded モード、`.ssab` の入力検証など)は +ポータルの **[共通の制限事項](https://cri-middleware.github.io/SpriteStudio-Docs/ja/sdk/limitations/)** +にまとまっています。 > [!WARNING] -> - **`independent=true` パーツ(Instance / Effect)は逆再生・シークで正しく動作しません。** `independent=true` の子は親のタイムラインから切り離され、独自のリアルタイム時計で進行します。親の**逆再生**と**シーク**では破綻し、正しく描画されるのは**順方向**再生(順方向のフレームスキップを含む)のみです。逆再生やシークを行う可能性のあるアニメーションでは `independent=true` を使わない構成を推奨します。 -> - **シークで飛ばしたフレームのイベントは発火しません。** 再生位置を直接ジャンプ(フレーム指定)した場合、通過したフレーム上の `UserData` / `Signal` / `Audio` イベントは発火せず、移動先フレームのイベントのみが発火します。中間イベントを漏れなく扱いたい場合は、ジャンプせずにアニメーションを逐次進めてください。 -> - **オーディオの逆再生は非対応。** 音はアニメーションが時間軸上を順方向に進むときのみ発火します。実質的な進行方向が逆(逆方向設定・ピンポンの復路・負の速度)のときは音声イベントがスキップされます(音声は逆再生できないため)。 -> - **アニメーションブレンドは同一 `.ssab` 内のみ。** `.ssab`(リソース)をまたぐブレンドは非対応で、ブレンドする全アニメーションは **同一パーツに同一 Cell を割り当てている** 必要があります。Cell が異なるとサイズ・pivot のミスマッチで pose が崩れます。 +> - **`independent=true` パーツ(Instance / Effect)は逆再生・シークで正しく動作しません。** 正しく動作するのは順方向再生(順方向のフレームスキップを含む)のみです。 +> - **シークで飛ばしたフレームのイベントは発火しません。** 発火するのは移動先フレームの `UserData` / `Signal` / `Audio` のみです。 +> - **オーディオの逆再生は非対応。** 実質的な進行方向が逆(逆方向設定・ピンポンの復路・負の速度)のとき、音声イベントはスキップされます。 +> - **アニメーションブレンドは同一 `.ssab` 内のみ。** さらに、ブレンドする全アニメーションが同一パーツに同一 Cell を割り当てている必要があります。