scratchスクラッチが重い場合の対処

旭川のプログラミング教室「ぱそんこ」です。 最近、生徒たちの作品がより高度になるにつれ、**「スクラッチの動きがカクカクする」「ブラウザごとフリーズしてしまう」**という場面によく遭遇します。

実はこれ、パソコンの性能(CPUやメモリ)の問題ではなく、プログラムの組み方や通信環境が原因であることがほとんどです。現場で実際に行っている対策を7つにまとめました。

初心者の子どもに教えるためのscratchもよければご覧下さい。

1.画像をベクターデータからビットマップに変換する

意外と知られていないのが、イラストのデータ量です。 「ベクターモード」で描いたイラストは、パーツごとに編集できて便利ですが、消しゴムを多用すると内部データ(ゴミ)が増え、非常に重くなります。

注意: 画質が少し落ち、パーツごとの編集ができなくなるので、作品が完成に近づいた段階で行うのがおすすめです。

対策: コスチューム画面で「ビットマップにへんかん」をクリック!

ベクターデータの編集で消しゴムを使いすぎると画像データのゴミが増えすぎて重くなる

画像の左下の記述が”ビットマップにへんかん”となっている場合、現在コスチュームがベクターデータであることがわかります。ベクターデータは編集が用意で手足などパーツごとの移動や色変えが可能ですが、ビットマップに変更すると全てのパーツは一つとして扱われるので注意が必要です。
また画質の劣化もあるため綺麗なイラストを使用した場合は適しません。

ビットマップになるとデータは軽くなるが画質は悪くなる

一度ビットマップにへんかんしたデータは比較的にもとのものより軽くなるため、再度ベクターデータに直してもかまいません。が、パーツごとの再編集はできないのでご注意ください。

2.指定している値が大きすぎるまたは小さすぎる

子供たちは、ついつい「1000000歩動かす」といった極端な数字を入れたがります。

  • 対策: 処理が追いつかないような膨大な桁数や、細かすぎる小数を「ずっと」ループの中で実行させるのは避け、適切な数値へ誘導してあげましょう。

児童に数値を選んでもらっていると指定する値を膨大な数字にしたり、もしくは細かすぎることが多々あります。
一つ一つでは動くのですが、その数が膨大になりプロジェクト自体が重くなります。

上記のような無理な桁のブロックそもそも動かないことが多いですが、ギリギリで動いてしまう桁のブロックだった場合にプロジェクト自体が動かなくなります。
数値の指定の際には適度な数字を入力するように誘導することが適正です。
また、”ずっと”ブロックに含まれる数字が細かい場合にも処理が遅れてしまうことが多々あります。

このブロック自体は正常に機能しますが、細かい数字を永続的に実行させるブロックは全体が重くなる要因となっています。

3.使っていないブロックが稼働し続けている

画面上から消えて見えないスプライトでも、「ずっと」ブロックが動いているとCPUを消費し続けます。

  • 対策: そのスプライトの出番が終わったら、「このスクリプトを止める」ブロックを使って、しっかり処理を終了させましょう。

スクラッチでは上記画像のように稼働しているブロックが黄色の枠で囲まれる機能があります。
実際には非表示になって画面上にはないスプライトでも”ずっとブロック”を使用していた場合使っていないブロックが動き続けてしまっていることがよくあります。
下記のようなブロックを組み終了したスプライトをしっかり終了するようにしましょう。

4.scratchのサーバー側の不具合

非常に稀ではありますが、scratch側のトラブルで新規アカウントが作れなかったり、読み込みなど動作ができない時があります。大体数時間~1日でトラブルは解決されますが、確実に防ぎたい時にはオフライン版のscratchの導入も検討してみましょう!

今回はパソコン起因ではないスクラッチの重くなる動作の解決方法をご案内いたしました^^
今後もどんどん情報を開示していきますので、各SNSのいいねやシェアのご協力をお願いいたします。

5.クローンの削除

弾幕ゲームなどを作る際に便利な「クローン」ですが、消さずに放置するとあっという間に上限(300個)に達し、動作が激重になります。

  • 対策: 画面外に出た時や、役割を終えた時は必ず「このクローンを削除する」を実行させましょう。

子ども達がscratchへの理解を深めよりいい作品を作る際に”クローン”のブロックはとても有用です。
上記のようにクローンを作ると見えない部分まで描写してクローンが残り続けてしまうため、どんどんとプロジェクトの実行が重くなっていってしまいます。

上記のようにクローンを削除するブロックも作ってクローンの上限を制限するなどの対策が有効です。