Copyright © 2026 Hiroya Kubo. この文書はCC BY-SA 4.0で提供します。
対象: 紙芝居を再生する人、発表者、授業やワークショップで進行する人
対象アプリ: 紙芝居アプリ kamishibai=3.1 のWeb版と用途別SB3
この紙芝居アプリは、テキストで書かれた紙芝居DSLファイルを読み込み、背景画像、登場人物、画面上のテキスト、セリフ、思考吹き出し、効果音、音楽、移動・切り替え演出、ポーズ認識を組み合わせて紙芝居を再生するアプリです。
普通の紙芝居のように「見る」だけでなく、途中で参加者がカメラの前でポーズを取ることで物語が進みます。urashima.txt では、浦島太郎がカメを助ける、カメに乗る、踊る、玉手箱を受け取る、玉手箱を開ける、といった場面がポーズ認識に組み込まれています。
3.1では、シーンに名前を付け、条件分岐やキー・タッチ入力で移動先を変えられます。フェード演出、アクター画像のループ/一回再生、ランタイム変数、画面上のテキストも台本から扱えます。
紙芝居アプリには、台本と作品固有アセットの持ち方が異なる4つの利用形態があります。
| 利用形態 | 開き方 | 台本と作品固有アセット | 主な用途 |
|---|---|---|---|
| Web版 | サンプルサイトから作品を開く | Webページに組み込み済み | すぐに作品を再生する |
player(再生用SB3) |
サンプルサイトから作品のSB3を取得し、TurboWarpで開く | SB3に組み込み済み | 配布・再生、Web版の生成 |
editor(編集用SB3) |
サンプルサイトの作品詳細から _作品名.sb3 を取得し、TurboWarpで開く |
アセットは組み込み済み、台本は外部TXT | 台本を編集しながら確認する |
generic(汎用SB3) |
ダウンロードページから kamishibai.sb3 を取得し、TurboWarpで開く |
台本は外部TXT、アセットは台本の指定に従う | 新しい作品を作る |
浦島太郎の公開ページでは、Web版、再生用SB3、編集用SB3、公開台本 urashima.txtを取得できます。
共通して、次の点を確認してください。
| 必要なもの | 説明 |
|---|---|
| 対応ブラウザ | Web版の再生とTurboWarpの利用に必要です。 |
| インターネット接続 | TMPoseのライブラリとモデルを取得する場合に必要です。genericでは、台本が外部URLを参照していれば画像・音声の取得にも使用します。 |
| カメラ | ポーズ認識を使う場合に必要です。 |
| 明るい場所 | ポーズ認識の精度が上がります。 |
| 発表用画面 | 授業や発表では、プロジェクタ、電子黒板、画面共有などがあると便利です。 |
タイトル画面が表示された後の操作は、利用形態によって異なります。
ファイル選択は必要ありません。画像・音声・台本は作品へ組み込まれていますが、ポーズ認識を使う作品ではTMPoseのライブラリ・モデル取得とカメラ利用のためにネットワーク接続が必要です。
ファイルを開く/Open)を押します。.txt の台本ファイルを選びます。台本を一度読み込むと、ブラウザのlocalStorageに保存されます。同じブラウザであれば、次回以降は前回の台本を再生できます。
もう一度/Reload)が表示されていることを確認します。注意: localStorageはブラウザごとの保存領域です。別のブラウザ、別の端末、シークレットモードでは前回台本が表示されないことがあります。
タイトル画面とメニューは、アプリの表示言語に応じて日本語または英語で表示されます。初回はScratch/TurboWarpの標準の(言語)ブロックが返す表示言語から選びます。メニュー末尾の言語/Languageで明示的に切り替えると、その選択をlocalStorageへ保存し、次回以降は保存値を優先します。選択画面では現在の言語を✓で示します。台本本文の言語は切り替えません。
アプリUIは台本を読む前から必要なため、ui.open、ui.reload、ui.about、ui.invalidScriptを台本から設定する仕様ではありません。台本から変更できる予約済みUIテキストは、ポーズ案内のui.promptだけです。
| 表示・役割 | 日本語 | 英語 | 説明 |
|---|---|---|---|
| 表紙画面 | 日本語タイトル | 英語タイトル | 台本読み込み前、または物語終了後に表示される画面です。 |
| ファイル読込ボタン | ファイルを開く |
Open |
新しい .txt 台本ファイルを選ぶためのボタンです。 |
| 前回台本ボタン | もう一度 |
Reload |
localStorageに保存された前回の台本を再生するボタンです。 |
| タイトル表示ボタン | このアプリについて |
About |
タイトル画面へ戻るボタンです。 |
| 言語ボタン | 言語 |
Language |
日本語またはEnglishを選びます。 |
| Loading | - | - | アセット読み込み中に表示される案内役です。通常アセットの完了数/総数を吹き出しに表示します。 |
| ポーズ案内 | Pose! |
Pose! |
ポーズ認識が必要な場面で表示されるプロンプトです。text=ui.prompt:...で変更できます。 |
| ポーズ認識 | - | - | 現在のポーズ認識の信頼度を示す目安です。 |
| チャージ | - | - | 目標ポーズが一定時間認識されると増える値です。100になると成功です。 |
| 台本エラー | エラー:不正な台本ファイル |
Invalid script |
台本の書き方に問題がある場合に表示されます。 |
Loadingの吹き出しは完了数 / 総数です。3 / 10なら、通常アセット10件のうち3件の読込が完了しています。Loading表示そのものに使う背景や画像は先に読み込まれるため、この分子・分母には含まれません。
台本作者はsetLoadingBackdrop=loadingBackgroundでLoading中の背景を、setLoadingCostume=loading1,loading2,loading3でLoading画像を指定できます。背景を指定しない場合は真っ黒な組み込み背景を使います。Loading画像が複数指定されている場合は、通常アセットの読込番号に応じて順番に切り替わります。進捗の吹き出しは画像とは別の固定位置から表示されるため、各画像の大きさや外形が異なっても位置は変わりません。
紙芝居はシーン単位で進みます。各シーンでは、次のような演出が自動的に順番に実行されます。
各シーンの終了時にはアクターが非表示になります。背景、画面効果、bgmで再生を始めた音は、次のアクションで変更するか音声自体の再生が終わるまで継続します。次のシーンでも同じBGMを使う場合は、bgmを改めて書く必要はありません。意図しない表示状態の持ち越しを避けるため、背景や登場人物は台本側で明示することを推奨します。
台本を再生すると、ブラウザがカメラ利用の許可を求める場合があります。ポーズ認識を使う紙芝居では、カメラを許可してください。
許可しない場合、ポーズ認識が進まず、物語が止まることがあります。
Pose! です。台本でsetPoseRecognitionSound=Clock Ticking,Sewing Machineのように音声アセット名を指定すると、第1音を各ポーズの認識開始から終了まで鳴らし、第2音をポーズが認識されるたびに鳴らせます。第2音は省略でき、コマンド自体を省略した場合は無音です。
次の点を確認してください。
| 問題 | 対処 |
|---|---|
| 暗い | 明るい場所に移動する、照明をつける。 |
| 体が画面からはみ出る | カメラから少し離れる。 |
| 背景がごちゃごちゃしている | できるだけ単純な背景にする。 |
| 服と背景の色が近い | 背景と違う色の服にする。 |
| 複数人が映っている | ポーズを取る人だけが映るようにする。 |
| カメラが許可されていない | ブラウザのカメラ許可を確認する。 |
発表前に、必ず1回は最初から最後まで再生テストをしてください。特に次の点を確認します。
紙芝居の途中でポーズ認識が入る場合、発表者は次のように案内するとスムーズです。
「ここでみんなの力が必要です。画面の前でカメを助けるポーズをしてみましょう。」
ポーズ認識は、動作が大きく、止まっている時間が少し長いほど成功しやすくなります。急いで動くより、「ポーズを作って、少し待つ」のがコツです。
ポーズ認識は基本的に、カメラに映っている人の姿勢をもとに判断します。大人数が一度に映ると認識が不安定になることがあります。授業では、代表者が前に出てポーズを取る形式が扱いやすいです。
発表練習や台本の動作確認では、次のキー操作が使えます。
| キー | 動作 | 用途 |
|---|---|---|
| スペースキー | 現在のポーズ認識1件をスキップ | 複数ポーズのうち1件だけを飛ばしたいとき |
| 右矢印キー | 現在のアクションを完了して次のアクションへ進む | 演出を1件ずつ確認したいとき |
| 下矢印キー | 現在シーンを終了して次のシーンへ進む | シーン単位で確認したいとき |
キーは処理中だけ受け付けます。スペースキーはポーズ待ち中、右矢印キーはアクション実行中にだけ有効です。アクションとアクションの間に右矢印キーを押しても、次のアクションを先回りして飛ばしません。下矢印キーはシーン実行中に有効です。タイトル画面では、スペースキーまたは画面クリックだけを受け付けます。
下矢印キーでシーンを飛ばした場合も、残りのtransitionは待ち時間なしで最終状態まで適用され、bgmは再生を開始します。すでに再生中のBGMは停止しません。現在再生待ちのsoundは停止し、それ以外の残りのアクションは実行せずに次のシーンへ進みます。
本番中に誤って押すと演出が飛ぶため、発表用PCではキーボード操作に注意してください。
台本の文法に誤りがある可能性があります。未定義時は Invalid script、浦島太郎の公開台本では「エラー:不正な台本ファイル」と表示されます。
確認すること:
kamishibai=3.1 があるかkey=value の形式になっているかaction= の区切り : が不足していないか--- の位置が正しいかsceneLabel が存在するかアセットURLが間違っている、URL先にアクセスできない、ネットワークが使えない、ブラウザが読み込みを拒否している可能性があります。
確認すること:
setLoadingBackdropに書いた名前がasset=で画像として定義されているかsetLoadingCostumeに書いた名前がasset=で画像として定義されているか多くの場合、ポーズ認識待ち、音声の再生待ち、または長い wait の途中です。
確認すること:
sound で長い音声を再生していないかwait の秒数が大きすぎないかsay と think では、半角 : が本文と秒数の区切りとして使われます。本文に半角 : を入れると、本文と秒数の対応が崩れます。
対処:
: のような全角記号を使う= はセリフ本文に使用できる。コマンド行で区切りになるのは最初の = だけ04-dsl-manual.md: 紙芝居DSLファイルの作り方05-command-reference.md: コマンドとアクションの早見表01-executive-summary-adult.md: 大人向け概要説明02-executive-summary-kids.md: 子供向け概要説明06-developer-guide.md: 成果物とビルダーの利用、開発、検証、公開の手順07-internal-specification.md: 汎用アプリSB3の内部構造、呼出し関係、状態遷移history.md: 紙芝居DSL 2.0から3.1への変更履歴