スクラッチコーチキャンプ スクラッチで使える無料素材集
  • 素材
  • 修行
  • はじめての方へ
  • スクラッチゲームの作り方

    RPGっぽい会話ボックスの作り方⑦

    RPGっぽい会話ボックスの作り方⑦
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし

    今回のゴール

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

    スプライト「ふきだし」に変数を作る

    まずは最も分かりづらかった「リストの何番目 + 話者番号」っていう表現を変数にまとめて管理したい。ガチでミスったからねー。

    変数「出力範囲の左、上、右、下」を作る

    このスプライトのみの変数を4つ作るよ。

    変数「話者名」を作る

    ついでに話者名も変数にしておこうかなー。

    各変数に「リストの値」を割り当てる

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

    こんな感じで条件ブロックに囲んで変数にしよう↓

    RPGっぽい会話ボックスの作り方⑦を語るok-scratch ok-scratch

    u003cpu003e空白のときに各変数も空白にしたらバグったから、これが最適解かなと思いました。気になる人は話者名が空白のときは各変数を空白にするっていうコーディングをして試してみてください。もしかしたらバグらないかもしれないし、うまくいったら教えてください〜u003c/pu003e

    スプライト「文言」で使う

    実際に恩恵があるのはこの子。

    定義「_ページをリセットする」

    リストを使っていた箇所を適切に置き換えよう。

    RPGっぽい会話ボックスの作り方⑦を語るok-scratch ok-scratch

    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風の会話ボックスをどのゲームやアニメーションでも即活用でき、リミックスや長期的な作品管理が格段に楽になった。

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!