スクラッチコーチキャンプ スクラッチで使える無料素材集
  • 素材
  • 修行
  • はじめての方へ
  • スクラッチゲームの作り方

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

    りんごが巨大化!サイズ上限を突き破れ
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし

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

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

    動画で見てみよう

    [talk]チャンネル登録して応援よろしく!チャンネル登録する[/talk]

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

    [prj-embed prj="1306285813" mini="1" title="プレイしておこう" prj-title="スクラッチ小技:上限突破して大きくする" prj-author="ok-scratch"]今回の[prj-link prj="1306285813" title="スクラッチ小技:上限突破して大きくする" author="ok-scratch"]スクラッチを作る参考作品[/prj-link]です。[/prj-embed]

    今回の目標

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

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

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

    #1普通のサイズ変更

    [talk class="m-l-n"]まずは普通にりんごを大きくしてみよう。左矢印キーを押すたびにサイズが100ずつ増えていく仕組みを作るよ。[/talk]

    準備

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

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

    実装

    step-0

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

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

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

    #2サイズの初期化

    [talk class="m-l-n"]何度も試せるように、旗をクリックしたらサイズを元に戻す仕組みを入れておこう。[/talk] step-1

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

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

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

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

    準備

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

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

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

    実装

    step-2

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

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

    #4上限突破を実行

    [talk class="m-l-n"]作ったカスタムブロックを右矢印キーで呼び出せるようにしよう。[/talk] step-3

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

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

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

    まとめ

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

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!