- スターター作品
- なし
- 今回の完成サンプル
- なし
今回のゴール
- 会話ボックスのリファクタリング
「リストの何番目 + 話者番号」といった複雑な式を、わかりやすい変数へ整理して管理しやすくする。 - バックパック化による再利用
変数や初期化処理をスプライト側にまとめ、他の作品でもそのまま利用できるようにする。 - 将来のメンテナンス性向上
数か月後に見返してもすぐ理解でき、ミスを防ぎながら素早く修正・拡張できる構造を整える。
スプライト「ふきだし」に変数を作る
まずは最も分かりづらかった「リストの何番目 + 話者番号」っていう表現を変数にまとめて管理したい。ガチでミスったからねー。

変数「出力範囲の左、上、右、下」を作る
このスプライトのみの変数を4つ作るよ。




変数「話者名」を作る
ついでに話者名も変数にしておこうかなー。

各変数に「リストの値」を割り当てる
もうすっかり慣れたから「話者リストの、話者の番号+1は左側のXだよ」って簡単に分かる頭になっているかもしれないね。でもね、数ヶ月後でも覚えていられる?いや、覚えなくていいよw むしろ忘れていい。でも数カ月後にこの会話ボックスを使いたくなる可能性はあるよね。そのときに思い出す時間がもったいないから、変数に入れて管理しておくとすごくいい。リミックスする人にも超やさしい。これがリファクタリング(≒コードの改善)の力なんだ。
こんな感じで条件ブロックに囲んで変数にしよう↓

u003cpu003e空白のときに各変数も空白にしたらバグったから、これが最適解かなと思いました。気になる人は話者名が空白のときは各変数を空白にするっていうコーディングをして試してみてください。もしかしたらバグらないかもしれないし、うまくいったら教えてください〜u003c/pu003e
スプライト「文言」で使う
実際に恩恵があるのはこの子。

定義「_ページをリセットする」
リストを使っていた箇所を適切に置き換えよう。

u003cpu003eちなみにブロックパレット(サイドバー)でいうと、このブロックだよ。ドロップダウンメニューを開いて「ふきだし」にすると自動で右側のドロップダウンメニューも変わるよ。u003c/pu003eu003cpu003eu003cimg class=u0022wp-image-25208u0022 style=u0022width: 150px;u0022 src=u0022https://scratch.coach/wp-content/uploads/2025/09/be593afd07f9fce8705c01439aea5917.pngu0022 alt=u0022u0022u003eu003c/pu003e
定義「改行する」

定義「一段落ずつ処理する」

定義「_段落から次の文を取得する」

バックパックして別の作品で使う
よし、分かりやすくなったから、これをバックパックにして他の作品で使えるようにしよう。そうすればキミのどんなゲームやアニメーションでもRPG風の会話ボックスが使えるようになって、効率的に作品のクオリティを上げることができる。これからずっとね!
ステージの定数を移動する
ステージで初期化してあった定数(■から始めた変数)を、スプライト「ふきだし」に移動しておこう。バックパック化したときに一緒に持っていけるように。

こんな感じにしておけばOK。

スプライト「文言」「ふきだし」をバックパックに入れる
エディタ下部のバックパックを開いてからドラッグアンドドロップだよ。1スプライトずつ入れればOK。

別の作品に組み込む例
これは全く別の作品の中身だよ!ずっとブロック内の「もし」のところを追加した。

会話1と2はこんな感じ↓

おっけー!これで終わり。これだけで終わり!最高かよ!
これでもう自由自在に会話を組み立てればいいだけってことだよー\(^o^)/
最高の会話芸を見せつけるんだ!
まとめ
あ、動く実例もペタっとな。
RPG風の会話ボックスで、まさかのテラが……
u003cpu003eu003c/pu003e
スプライト「ふきだし」に出力範囲(左・上・右・下)と話者名の変数を新設。複雑なリスト参照をシンプルにした。
スプライト「文言」の主要定義(_ページをリセットする、改行する、一段落ずつ処理する、_段落から次の文を取得する)は、リスト参照を変数呼び出しに置き換え、可読性と保守性を向上。
ステージで初期化していた定数を「ふきだし」スプライトへ移動し、バックパック化して他の作品にそのまま組み込めるようにした。
これにより、RPG風の会話ボックスをどのゲームやアニメーションでも即活用でき、リミックスや長期的な作品管理が格段に楽になった。