【Scratchで簡単なゲーム作成編⑤】ゲームの状態を伝えるセリフ枠を作成する
※ 当ページには【広告/PR】を含む場合があります。
2020/09/23
スクラッチでの文字表示としては、デフォルトで
〇〇と言う
〇〇と考える
一方でロールプレイングゲームなどのような枠の中に文字が表示されるようにしたい場合には、フォントなどを準備したり、文字の表示位置を適切に処理したりと、ちょっとした工夫が必要になります。
というわけで、今回はオリジナルのセリフ枠をゲーム内に入れる方法をためしてみます。
ちなみに今回の完成品プログラムは
フォントコスチュームの準備
自作のフォントを準備しても良いのですが、ひらがな、カタカナ、数字、記号...などなどフォントとして登録して使いたい文字があればあるほど、手間がかかってしまいます。
今回は既に基本的な日本語のフォントをコスチュームのセットにして公開していただいているプロジェクトから、該当のスプライトだけを抜き取って自分のプロジェクトで扱えるようにするやり方が
まずはフォントセット付きのスプライトの移植方法をやっていきます。
先程のサイトで紹介されているやり方では、
プロジェクトのリミックスから余計な要素を除去
それでは、
まずは
[中を見る]
もじ
[書き出し]
この書き出しボタンを押すと、
もじ.sprite3

スプライトの書き出し・読み込み
新しいプロジェクトを作成し、スプライトの編集画面から
[スプライトをアップロード]
もじ.sprite3

これで文字のスプライトがコピーされました。
ただ、これだけだと余計なプログラムやスプライトが混じっているため、要らないものをきれいに消していきます。
スクリプトブロックを全部消して空にし、使われていた変数もリストも削除、また文字のコスチュームも赤色と白色の2通りが用意されているので白文字をすべて消して赤文字だけに統一します。

要らないものを消したら再度
書き出し
もじ.sprite3

これでどのプロジェクトにでも文字のスプライトがご自分のパソコンのフォルダから読み込んで利用できるようになりました。
また、もっと文字を追加したいときや、色を変えたいときなど、コスチュームを編集することで新しく文字を利用することができるようになりますが、フォントセットは画像の詰め合わせですので、あまり増やしすぎても容量が大きく、動作が重くなってしまうので取り扱いには注意です。
文字スプライトは必要最低限の文字コスチュームだけを入れるようにしたほうが良いでしょう。
セリフ枠の実装
さて、ここからは本題のセリフを表示する枠の機能を実装する手順の話に戻ります。
以前の記事・
早速文字を表示するプログラミングを行っていきましょう。
編集前のプロジェクトは
セリフ枠の準備
まずは材料の準備からです。
スプライトを新たに2つ、先程作成した
もじ
セリフわく

セリフわく
セリフわく
またここで変数
セリフ
おしらせちゅう
先に
セリフわく

最初にゲームがスタートした時点では
セリフわく
ここでは2つのメッセージイベントを作成します。
おしらせ
また、
おしらせおわり
特に難しいプログラムではありませんが、
おしらせ
おしらせ
おしらせちゅう
どこかのスクリプトで
おしらせちゅう
おしらせちゅう
おしらせおわり
おしらせおわり
セリフわく
文字を変えてクローンする
次に
もじ
これは

セリフ枠に
セリフ
おしらせ
セリフ
各コスチュームの名前には
char_<文字の種類>_red
また
おしらせおわり
セリフ枠の呼び出し
それでは最後にセリフを呼び出す側のスプライトに処理を挿入してみましょう。
今回のプログラムでは、
おきばしょ1
おきばしょ5
一例をあげると、以下の赤色の四角部分のブロックになります。

まず
セリフ
おしらせ
おしらせちゅう
これで、たこがエサを食べると
セリフ

余談〜クローンとスタンプの違い
拡張機能 - ペン
スタンプ
スタンプを描画するルールでは、背景を除くレイヤーの一番後ろ、かつ、すべてのスプライトの背面に描画される、とされています。
つまり、スタンプは背景の上に追加で画像を書き込んでいるようなものですので、どうしてもスプライトより前面に絵を書くことが出来ません。
このため、画像を他のスプライトよりも前面に見えるようにしたい場合、スタンプではなくクローンを利用しなければなりません。
クローンを作成したときのルールとして他のスプライトの前面に表示されることを覚えておくと良いと思います。
まとめ
今回は、スクラッチの文字の吹き出しから脱却して、ワンランク上の文字列表示の方法を解説してみました。 この方法は色々と面白い応用が出来たり、よりゲームの見栄えをリッチに出来たりしますので、ぜひこの機会に覚えていっても損はないと思います。