さぁ、スクラッチでナニ作る!?
コスチュームを瞬時に切り替えることで、Scratchのサイズ制限をすり抜ける発想が光っている。Scratchはコスチュームのピクセルサイズをもとに上限値を決める仕様で、空コスチュームに差し替えた瞬間だけ制限の基準が変わる。この一瞬のトリックをwarpモードで見た目に出ないまま完結させているところが効いている。どういう組み方でこれが成立しているのか、作り方を見ていこう。
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1普通のサイズ変更
準備
スプライト「りんご」を開く
| スプライトについて |
|---|
| りんごのスプライト。サイズ変更の限界突破デモで使用する。 |
| どんな役割か |
| りんごを使ってScratchのサイズ制限を突破する仕組みを作るよ。左矢印キーで普通に大きくして、右矢印キーでコスチュームを切り替えるワザで上限を超えて巨大化できるようにしよう! |
実装
( ) キーが押されたときで左矢印キーを受け取って、大きさを ( ) ずつ変えるで大きさを100ずつ変えるシンプルなコード。でも何回か押してみると、あるところでりんごが大きくならなくなるんだ。これがScratchの「サイズ上限」ってやつ。
Scratchはコスチュームの元画像のピクセル数を見て自動的にサイズの上限を決めてて、もしこの制限がなかったら、スプライトを際限なく拡大できてしまいブラウザの描画が重くなる原因になる。だから小さいコスチュームほど、すぐ天井にぶつかっちゃうんだよね。
#2サイズの初期化
大きさを ( ) %にするで大きさを100%にリセットするよ。これでデモを最初からやり直したいとき、いちいちページを再読み込みしなくて済むってわけ。
#3上限突破のカスタムブロック
準備
カスタム定義「サイズ上限を突破する」を追加
Scratchのサイズ上限を回避してスプライトを拡大するプロシージャ。コスチュームをからっぽに切り替えてサイズを変え、再びりんごに戻すことで制限を突破する。
実装
中身はコスチュームを ( ) にするでいったん「からっぽ」コスチュームに切り替えて、サイズを100増やしたら、すぐ「りんご」に戻すだけ。「からっぽ」は中身が空っぽの透明画像だから、Scratchが「小さいコスチュームだな」と判断してサイズ制限がゆるくなるんだ。画面を再描画せずに実行するから、一瞬の切り替えも見えないってわけ。
#4上限突破を実行
( ) キーが押されたときで右矢印キーを受け取ったら、「サイズ上限を突破する」を呼び出す。これで左矢印が普通のサイズ変更、右矢印が上限突破バージョンっていう比較ができるようになったよ。左を何回か押して止まったら、右を押してみて——上限を超えてりんごがどんどん巨大化していくのが確認できるはず。
まとめ
コスチュームを一瞬だけ空のものに切り替えるだけで、Scratchのサイズ制限をぐるっと回避できるのが面白いよね。こういう「仕様の隙間を使うワザ」って好き。ズームイン演出や巨大ボスの登場シーンで、ぜひ使ってみてね!