Skip to content

Latest commit

 

History

History
128 lines (71 loc) · 10.2 KB

File metadata and controls

128 lines (71 loc) · 10.2 KB

🩺 トラブルシューティング

ここに挙げる不具合は、外から見ると 何も表示されない という同じ症状になりがちです。症状ではなく原因で切り分けます。まずは Godot の 出力 (Output) パネルを確認してください。プラグインもエンジンも、読めなかったパスやリソースを必ず名指しします。


ノードが見つからない

「新規ノードを作成」に SpriteStudioPlayer2D が出ない

拡張が読み込まれていません。GDExtension 形態では次の順に確認してください。

  1. res://addons/spritestudio/spritestudio.gdextension が存在するか。addons フォルダはプロジェクトルートに置く必要があります(サブフォルダではありません)。
  2. エディタが Godot 4.7 ビルドか。GDExtension は 4.7 から正式サポートで、異なる godot-cpp でビルドされたライブラリは読み込まれません。
  3. addons/spritestudio/bin/<platform>/ に実行中プラットフォーム向けのライブラリがあるか。出力パネルに、開こうとしたファイル名が出ます。

カスタムモジュール 形態には addons フォルダがありません。実行中のエディタバイナリにモジュールが組み込まれている場合にのみノードが存在します。

エディタでは動くが、書き出したゲームにノードが無い

エクスポートには書き出す target と同じビルドが必要です。--export-debugtemplate_debug ライブラリを、--export-releasetemplate_release を使います。editor ビルドしか無い場合でもエクスポート自体は「成功」し、ライブラリの実体が無い拡張が同梱されます。ビルドガイド を参照してください。


ノードはあるが何も描画されない

アニメーションが選択されていない

.ssab を割り当てただけでは再生されません。Animation ドロップダウンで名前を選ぶ(または set_animation() を呼ぶ)→ play()、もしくは Autoplay を有効にしてください。

アニメーション名が存在しない

パックに無い名前を指定すると、ノードは何も描画しません。出力パネルには、パックと要求した名前が出ます。

[SS] res://ssab_generated/Ringo/Ringo.ssab has no animation "wakl".

Animation ドロップダウンには実在する名前しか出ないので、これはスクリプトの set_animation() です。綴り間違いか、別のパックの名前を渡しているのが大半 — パック名も出しているのはそのためです。パックが実際に持っている一覧は get_animation_names() で取れます。

.ssab が不正

出力パネルの [SS] … is not a usable SSAB: it carries no parts or no animations. は、バイナリは読めたがパートまたはアニメーションを含んでいないという意味です。.sspj を再変換してください。ファイルが途中で切れているか、互換性のないコンバーターで生成された可能性が高いです。

テクスチャが失われている

テクスチャとサウンドは、.ssab を読み込んだディレクトリからの相対パスで解決されます。コンバーターの出力ディレクトリから .ssab だけを動かすと(隣にコピーされた .png を置き去りにすると)、サンプリング対象が無くなります。読み込みに失敗したパスは Godot がログに出します。

出力ディレクトリ(既定は res://ssab_generated)の構成を保つか、ディレクトリごと移動してください。

画面外にある / スケールが合っていない

SpriteStudioPlayer2D はノードの原点を基準に、SpriteStudio のピクセル座標で描画します。原点から大きく離れた位置で作られたアニメーションはカメラの外に出ることがあります。ノードを動かさずに描画位置だけずらすには Offset を使ってください。


特定のパーツだけ描画されない

  • テキストパーツと 9 スライスパーツは未実装です。 描画順の枠は保持されるため、そこだけ穴が開いた状態で再生されます。仕様と制約事項 を参照してください。
  • そのフレームで非表示のパーツは、プラグインではなくアニメーション側で非表示になっています。SpriteStudio 上のタイムラインと、スクリプトから設定した表示オーバーライドが残っていないかを確認してください。
  • インスタンスパーツの内側にあるパーツは、外から名前で指定できません(子アニメーションは別プレーヤとして動作します)。インスタンスパーツ自身は指定できます。

再生の挙動がおかしい

オーバーライドが画面に反映されない

再生が停止・一時停止している間、あるいはフレームが進まないフレームでは描画が再構築されないため、オーバーライドを設定・解除しても見た目は変わりません。set_frame_no(get_frame_no()) で再描画を強制してください。

animation_finished が発火しない

無限ループ(loop_count-1 または 0)では仕様上発火しません。代わりに 1 周ごとに animation_looped が発火します。

シークするとイベントが飛ばされる

シーク時は到達フレームのイベントだけが発火します。これは共通ランタイムの制約であり、プレイヤー側で回避できるものではありません。シークをまたいで成立させたい処理はフレーム番号で駆動してください。

逆再生でインスタンス / エフェクトパーツが崩れる

independent=true のパーツが正しく評価されるのは 順再生時のみです。逆方向設定と ping-pong の復路には対応していません。(負の speed_scale は 3 つ目のケースではありません。逆再生になるのではなく停止します。)


音が鳴らない

上から順に確認してください。どれか 1 つでも該当すれば無音になります。

  1. 再生方向が逆向き。 逆再生では一切鳴りません(ping-pong の復路や負の speed_scale も含む)。
  2. play_audio がオフ、または audio_backend が割り当てられていて、その play_audio() が自前のサウンド基盤に届いていない。バックエンドを割り当てると内蔵プレイヤーは常に抑制されます。
  3. サウンドファイルが読み込めていない。 パスは Godot がログに出します。.wav / .oggAudioStream としてインポートされますが、Godot がインポートしない形式は null になり黙って読み飛ばされます。
  4. audio_volume が 0、またはゲーム側のオーディオバスがミュートされている。

詳細は サウンド再生 を参照してください。


エディタ連携が動かない

「Open SSPJ」を押しても何も起きない

作業中のマシンに SpriteStudio がインストールされ、.sspj が関連付けられている必要があります。このボタンは OS のシェルにファイルを渡しているだけです。

「Reconvert」で元ファイルが見つからない

.ssab から .sspj へのリンクは、プロジェクトルートの .ssplayer_sources.cfg相対パスとして保存されています。.sspj を移動した場合は、FileSystem ドックで .ssab を右クリックして Reconvert を選ぶと新しい場所を尋ねられます。1 つ答えれば、同じディレクトリの他のファイルもまとめて再リンクされます。

.ssplayer_sources.cfg をバージョン管理に含めておくと、クローン直後からチーム全員でボタンが機能します。

エディタ上でプレビューが動かない

ノードを選択し、SpriteStudio ボトムパネル(先頭から再生 / 現在位置から再生 / 停止、フレームスクラバ、ループと速度)を使ってください。エディタ上の再生は Autoplay ではなくこのパネルから駆動します。


Web エクスポート

  • 「GDExtension libraries are not supported by this engine version.」 — 素の Web テンプレートは GDExtension を読み込めません。dlink_enabled=yes でビルドしたエンジンテンプレートを用意してエクスポートプリセットで Extensions Support を有効にするか、どちらも不要なカスタムモジュール形態を使ってください。プロジェクトのエクスポート → Web を参照。
  • ページは開くがアニメーションが出ない — ランタイムは WebAssembly SIMD 付きでビルドされており、SIMD 非対応のブラウザでは動作しません。配信要件として扱ってください。
  • COOP/COEP ヘッダは不要です。Web ビルドは意図的にシングルスレッド (nothread) のため、通常の静的サーバーで動作します。

それでも解決しない場合

  • 仕様と制約事項 — 不具合ではなく仕様である制約の一覧。
  • 共通の制限事項 — すべての公式プレイヤーに共通する制約。
  • Issue を起票する — Godot のバージョン、ビルド形態(GDExtension / カスタムモジュール)、プラットフォーム、出力パネルの内容を添えてください。