りんごが巨大化!サイズ上限を突き破れ

りんごが巨大化!サイズ上限を突き破れ
ok-scratch

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

Scratchのスプライトはコスチュームのサイズに基づき上限が決まります。空コスチュームに切り替える小ワザでその制限を突破し、りんごを際限なく大きくするテクニックを比較しながら学べます。

さぁ、スクラッチでナニ作る!?

コスチュームを瞬時に切り替えることで、Scratchのサイズ制限をすり抜ける発想が光っている。Scratchはコスチュームのピクセルサイズをもとに上限値を決める仕様で、空コスチュームに差し替えた瞬間だけ制限の基準が変わる。この一瞬のトリックをwarpモードで見た目に出ないまま完結させているところが効いている。どういう組み方でこれが成立しているのか、作り方を見ていこう。

動画で見てみよう

ok-scratch ok-scratch
チャンネル登録して応援よろしく!チャンネル登録する

チュートリアルの元になった作品

今回の目標

左矢印キーで通常のサイズ変更(上限あり)、右矢印キーでコスチューム切り替えトリックによるサイズ上限突破を比較できるプログラムを作ろう。

スターター作品をリミックスしよう

このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード

#1普通のサイズ変更

ok-scratch ok-scratch
まずは普通にりんごを大きくしてみよう。左矢印キーを押すたびにサイズが100ずつ増えていく仕組みを作るよ。

準備

スプライト「りんご」を開く

りんごりんご
スプライトについて
りんごのスプライト。サイズ変更の限界突破デモで使用する。
どんな役割か
りんごを使ってScratchのサイズ制限を突破する仕組みを作るよ。左矢印キーで普通に大きくして、右矢印キーでコスチュームを切り替えるワザで上限を超えて巨大化できるようにしよう!

実装

step-0

イベント( ) キーが押されたときで左矢印キーを受け取って、見た目大きさを ( ) ずつ変えるで大きさを100ずつ変えるシンプルなコード。でも何回か押してみると、あるところでりんごが大きくならなくなるんだ。これがScratchの「サイズ上限」ってやつ。

Scratchはコスチュームの元画像のピクセル数を見て自動的にサイズの上限を決めてて、もしこの制限がなかったら、スプライトを際限なく拡大できてしまいブラウザの描画が重くなる原因になる。だから小さいコスチュームほど、すぐ天井にぶつかっちゃうんだよね。

確認プレビューしておこう 確認プレビューしておこう
左キーを押すとりんごのサイズが100ずつ大きくなるね。

#2サイズの初期化

ok-scratch ok-scratch
何度も試せるように、旗をクリックしたらサイズを元に戻す仕組みを入れておこう。
step-1

見た目大きさを ( ) %にするで大きさを100%にリセットするよ。これでデモを最初からやり直したいとき、いちいちページを再読み込みしなくて済むってわけ。

確認プレビューしておこう 確認プレビューしておこう
旗を押すとサイズが100%にリセットされるようになったよ。

#3上限突破のカスタムブロック

ok-scratch ok-scratch
いよいよ本題、さっきの上限をぶち抜くワザを「サイズ上限を突破する」カスタムブロックとして定義するよ。「画面を再描画せずに実行する」をオンにしておくのがポイント。

準備

カスタム定義「サイズ上限を突破する」を追加

Scratchのサイズ上限を回避してスプライトを拡大するプロシージャ。コスチュームをからっぽに切り替えてサイズを変え、再びりんごに戻すことで制限を突破する。

カスタム定義「サイズ上限を突破する」を追加

実装

step-2

中身は見た目コスチュームを ( ) にするでいったん「からっぽ」コスチュームに切り替えて、サイズを100増やしたら、すぐ「りんご」に戻すだけ。「からっぽ」は中身が空っぽの透明画像だから、Scratchが「小さいコスチュームだな」と判断してサイズ制限がゆるくなるんだ。画面を再描画せずに実行するから、一瞬の切り替えも見えないってわけ。

ok-scratch ok-scratch
普通に見た目大きさを ( ) ずつ変えるを使うと、コスチュームのピクセルサイズを基準にScratchが上限をかけてくる。でもこのトリックは、サイズを変える瞬間だけ空コスチュームに差し替えて制限を回避してるんだ。アークションゲームや弾幕シューティングゲームのパーティクルや弾幕の演出で使ってるテクニックでもあるよ。

#4上限突破を実行

ok-scratch ok-scratch
作ったカスタムブロックを右矢印キーで呼び出せるようにしよう。
step-3

イベント( ) キーが押されたときで右矢印キーを受け取ったら、「サイズ上限を突破する」を呼び出す。これで左矢印が普通のサイズ変更、右矢印が上限突破バージョンっていう比較ができるようになったよ。左を何回か押して止まったら、右を押してみて——上限を超えてりんごがどんどん巨大化していくのが確認できるはず。

ok-scratch ok-scratch
「スプライトをそんなに大きくする場面ある?」って思うかもだけど、意外とあるんだよね。ズームイン演出、巨大ボスの登場、パーティクルを大きく散らすエフェクトとか。このテクニックを知ってるかどうかで、Scratchでの表現の幅がけっこう変わってくるよ。ちなみに小さくするときも同じ方法で限界よりも小さくできるよ〜。

確認プレビューしておこう 確認プレビューしておこう
右キーを押すと、コスチューム切り替えトリックでサイズ上限を突破してりんごが大きくなるよ。

まとめ

コスチュームを一瞬だけ空のものに切り替えるだけで、Scratchのサイズ制限をぐるっと回避できるのが面白いよね。こういう「仕様の隙間を使うワザ」って好き。ズームイン演出や巨大ボスの登場シーンで、ぜひ使ってみてね!

ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!