
Scratchには、スプライトの大きさを変えるために「大きさを○%にする」ブロックがありますが、大きくできる最大のサイズには制限があります。
どのくらい大きくできるかはもともとのコスチュームのサイズによって違ってきますが、今回はその最大サイズを超えて大きさを変える方法について紹介します。
この記事を読んでいただくと、サイズ制限を超えてスプライトを大きくするためのスクリプトの作り方が分かります。
「大きさを○%にする」ブロックの仕様について
Scratchの仕様
「大きさを○% にする」ブロックは、スプライトの大きさを指定した値(パーセント)に変更するブロックです。
デフォルト(初期状態)のスプライトの大きさは100で、100より小さい値を入力するとスプライトが小さくなり、100より大きい値を入力するとスプライトが大きくなります。
「大きさを○% にする」ブロックは、スプライトの大きさを指定するブロックであって、ステージ(背景)を拡大することはできません(そもそもステージの大きさは変更できない仕様になっています)。
スプライトのサイズ制限
Scratchでは、コスチュームの最大サイズおよび最小サイズには制限があり、これらはコスチュームのサイズに応じて異なります。
例えば、最初の表示されるネコのスプライト(96×101)では5%~540%、1pxの正方形(1×1)の場合は100%~67500%、ステージのサイズ(480×360)では1%~150%になります。
【ネコのスプライト(96×101)の場合】

サイズ:96×101
最小5%~最大540%まで(1/20倍~5.4倍)
スクリプトでは0%~200000%の大きさを指定していますが、実際に動かしてみると5%~540%までしか拡大縮小ができていません。

【1pxの正方形(1×1)の場合】

サイズ:1×1
最小100%~最大67500%(1倍~675倍)
スクリプトでは0%~200000%の大きさを指定していますが、実際に動かしてみると100%~67500%までしか拡大縮小ができていません。

【ステージサイズ(480×360)の場合】

サイズ:480×360
最小1%~最大150%まで(1/100倍~1.5倍)
スクリプトでは0%~200000%の大きさを指定していますが、実際に動かしてみると1%~150%までしか拡大縮小ができていません。

サイズ制限を超えるスクリプトの作り方
ここでは「ネコのスプライト(96×101)」と「ステージサイズ(480×360)」の2つを使って、それぞれのサイズ上限である540%と150%を超えて大きくしてみます。
完成した動き
【ネコのスプライト(96×101)を1000%まで拡大してみる】
大きさのところ(下図赤枠)を見ると1000%まで拡大できていることが分かります。

【ステージサイズ(480×360)を500%まで拡大してみる】
大きさのところ(下図赤枠)を見ると500%まで拡大できていることが分かります。

完成したスクリプト
【ネコのスプライト(96×101)】

【ステージサイズのスプライト(480×360)】

スクリプトの説明
ポイント①:とても小さいコスチュームをつくる

たてよこ1×1や2×2くらいのとても小さいサイズのコスチュームをつくっておきます。
すでに説明したように1×1のサイズのスプライトは、最大で67500%(675倍)まで拡大できることが分かっているので、この性質を上手く使います。
ポイント②:小さいコスチュームでサイズを拡大後コスチュームを変える
【ネコのスプライト(96×101)の場合】
まず、1×1サイズのコスチュームで1000%まで拡大します。その後、本当に表示したいコスチュームに変更します。
こうすると変更後のコスチュームは縮小されずに拡大した1000%のまま表示できるようになります。

【ステージサイズ(480×360)の場合】
まず、1×1サイズのコスチュームで500%まで拡大します。その後、本当に表示したいコスチュームに変更します。
こうすると変更後のコスチュームは縮小されずに拡大した500%のまま表示できるようになります。

ここまで作れたら、サイズ制限を超えてスプライトを大きくするプログラムの完成です!
なお、Scratch Wikiのサイトによると以下の問題点が見つかっているとのことです。注意して使うようにしましょう。
このブロックを3D空間で使用するときは1つ大きな欠点がある。スプライトのサイズを拡大するとき、その時点のスプライトの大きさが小さいほうが、拡大スピードが早いという問題である(150%のスプライトより10%のスプライトのほうがかなり拡大スピードが早い)
Scratch Wikiより
失敗しやすいポイント
今回は失敗しやすいポイントは特にありません。
小さいスクリプトを大きくした後に本当に表示したいコスチュームに変更するだけです。
応用編
今回説明した方法を応用して、背景用のスプライトの大きさを変えていくつかのパターンで作る方法を別の記事で解説していますのでよかったらそちらも読んでみてください。
そこでは背景をたて2倍、よこ2倍に拡大してステージを広々と使う方法を説明しています。↓↓↓
まとめ
さいごに、サイズ制限を超えてスプライトを大きくするためのスクリプトの作り方のポイントをまとめます。
- ポイント①:たてよこ1×1、2×2程度の小さいコスチュームをつくる
- ポイント②:小さいコスチュームで大きくした後、コスチュームを変える
どうでしたか?上手くできたでしょうか?
他にも役に立つTips(ティップス)記事をたくさん書いてますので、ぜひ見てみてください。(記事のタイトルに「Tips」と書いていたり「Tips」タグを貼ってあります)