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

RPGっぽい会話ボックスの作り方⑦
ok-scratch(解説)
ScratchでRPG風の会話ボックスを長期的に使うためのリファクタリング術。複雑なリスト参照を変数化して可読性を高め、スプライトを丸ごとバックパック化。どの作品でも会話機能をすぐ再利用できる構造を解説。
スターター
プロジェクト
リミックス用プロジェクトへ
難しさ

任意)自分の作業中のスクラッチ作品URLを記録しておこう!再開するときに便利だよ。

LOADING...

※ この記録は今使ってるPCに保存されます。別のPCで作業するときは表示されません。

スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。

今回のゴール

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

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

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

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

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

変数「話者名」を作る

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

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

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

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

ok-scratch ok-scratch

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

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

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

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

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

ok-scratch ok-scratch

ちなみにブロックパレット(サイドバー)でいうと、このブロックだよ。ドロップダウンメニューを開いて「ふきだし」にすると自動で右側のドロップダウンメニューも変わるよ。

定義「改行する」

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

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

バックパックして別の作品で使う

よし、分かりやすくなったから、これをバックパックにして他の作品で使えるようにしよう。そうすればキミのどんなゲームやアニメーションでもRPG風の会話ボックスが使えるようになって、効率的に作品のクオリティを上げることができる。これからずっとね!

ステージの定数を移動する

ステージで初期化してあった定数(■から始めた変数)を、スプライト「ふきだし」に移動しておこう。バックパック化したときに一緒に持っていけるように。

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

スプライト「文言」「ふきだし」をバックパックに入れる

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

別の作品に組み込む例

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

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

おっけー!これで終わり。これだけで終わり!最高かよ!

これでもう自由自在に会話を組み立てればいいだけってことだよー\(^o^)/

最高の会話芸を見せつけるんだ!

まとめ

あ、動く実例もペタっとな。

スプライト「ふきだし」に出力範囲(左・上・右・下)と話者名の変数を新設。複雑なリスト参照をシンプルにした。

スプライト「文言」の主要定義(_ページをリセットする改行する一段落ずつ処理する_段落から次の文を取得する)は、リスト参照を変数呼び出しに置き換え、可読性と保守性を向上。

ステージで初期化していた定数を「ふきだし」スプライトへ移動し、バックパック化して他の作品にそのまま組み込めるようにした。

これにより、RPG風の会話ボックスをどのゲームやアニメーションでも即活用でき、リミックスや長期的な作品管理が格段に楽になった。

このスクラッチゲームの作り方への質問受付中! このスクラッチゲームの作り方への質問受付中!
チュートリアルで分からないことがあったらスクラッチAI「アスクラッチ」で何でも聞いてみよう!キミの作品の「中を見て」具体的にバグの調査をAIが手伝ってくれるよ!
アスクラッチで質問する
ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!

スクラッチゲーム攻略

スクラッチゲーム

    • 厳選されたスクラッチ人気作品リストがレビュー付きで楽しめます
      趣味に関するスクラッチ作品例
      勉強になるスクラッチ作品