目的
- scratch触ったことない人でもscratchを使えるようにする
- turbowarpで効率よく開発させる
新入生向けのscratch講習会で使う予定
scratchの使い方
scratchは小さい子供でもプログラミングできるように作られた言語です。
なのでscratchやったことない人でも簡単に使えます。
まずはscratchブロックのジャンルについて説明します。
ほとんどは名前を見たり実際に触ってみたりすることでわかると思うので特別なものだけ解説します。
scratchは上から実行されるので実行されるブロックを上手く頭の中でシミュレーションできるかが重要になってきます。
動き
スプライトの動きを司るブロックが集まるところ
見た目
スプライトの見た目や表示、セリフを操作します。
音
音を鳴らしたり、音量を変えたりします。
イベント
トリガー系
指定の条件が揃った時にコードを実行することができます。
メッセージ系
同時並行処理をしたり他スプライトに合図を出したい時に使います。
制御
クローン系
クローンを操作するブロック。
初心者がつまずくところ。(私もそうでした)
詳しくは後述の"初心者がつまずきそうなscratchの仕様"で解説。
ループ系
指定回数、指定条件まで中の処理を繰り返し実行します。
条件分岐系
はまっている<>系のブロックがtrue(条件が揃っている)なら中の処理を実行します。
揃ってなければそのまま飛ばします。
調べる
検知系
指定の条件が揃っているかを検知します。
揃っているならtrue 揃ってないならfalseを出力します。
取得系
時刻やマウスの距離、タイマーの値を取得してくれます。
演算
名前の通り演算をしたり数同士の比較を行ったりできます。
比較系
指定の条件が揃っているかを検知します。
揃っているならtrue 揃ってないならfalseを出力します。
演算系
入力された数を計算して出力します。
数だけではなく文字列操作もできます。
変数/リスト
変数は数値や文字を保存したり出力したりできます。
リストは変数の集合体です。
変数を使いこなせると中級者、変数,リスト極めると上級者になれます。
ブロック定義
同じ処理を別のところでいくつも繰り返したい時に使う。
メッセージとは違い、引数を使ったり0fで実行(再描画せずに実行)することができます。
ちなみに...

Scratchのブロックは、
形が合うところにしか入らないように作られています。
これは間違った使い方を防ぐためです。
<>系のブロックは<>の穴にぴったりハマります。
同様に、
()系のブロックは()の穴にぴったりハマります。
なので変数を"見た目"の[(〜)という]ブロックにはめて変数の値を喋らすこともできます。
初心者がつまずきそうなscratchの仕様
ステージについて
背景は横480px、縦360pxです。
他の言語とは違い原点(0,0)は中央です。
なのでX座標の範囲は-240~240になります。(Yも同様)
scratchではスプライトを見失わないために
ステージから完全に出ないようになっています。
ネコのx座標を500に指定した時の様子⇩(頭隠して尾隠さず)

完全に隠したい場合は[隠す]ブロックを使いましょう
クローンについて
クローンは自分自身を複製する と考えればいいです。
注意:クローンでは実行中のブロックの状態を複製することができません。
例 :[ずっと]や[繰り返す]の途中位置、[N秒待つ]の残り時間
わかりやすくするため クローンもとを親、クローンを子 と表現します。
注意:画像では親の"全てのスプライト"変数は0ですがコード実行後は3になります。
"全てのスプライト"変数はクローンでも干渉することができます。
(なのでクローンで値を書き換えると全体に影響します。)
しかし、"このスプライトのみ"は独立したプライベートな変数なので独立して値を保つことができます。
(なのでクローン同士で干渉することはできませんし、値を書き換えても全体に影響することはありません。)

注意:コード実行後、子1の"このスプライトのみ"はAになります。
子において、メッセージは親同様に処理されます。
だからクローンに同時に命令を出したい時とかに便利。
ブロックのはめ方について
先ほど
形が合うところにしか入らないように作られています。
とかいてありましたが厳密にいうとあれは嘘です。
実は()型に<>型をはめたりすることができますが特定の条件じゃないと動きません。
例えば...
()に<>をはめる場合
()に<>をはめると
true =1
false=0
という扱いになります。


<>型に()をはめる場合
これはリスト以外をはめると動きません。
<>に()をはめた場合、リスト(n番目)の中身が
"true"ならtrue
"false"ならfalse
扱いされます。
応用編
拡張機能の解説
scratchには拡張機能という作れるものを広げられる機能があります。
pen
有能。
いろいろなことに使える。
例えば0クローンで細かい描画ができたりします。
スタンプは無制限にできる代わりに解像度が少し落ちます。
↑penだけでアニメーションを作った(例)
音楽
楽器を演奏することができます。
中には演奏ブロックだけで曲を再現している猛者もいます。
私も作っていた時期がありました。
モーションセンサー
カメラを使ってどのぐらい物体が動いているかを計測&イベント(トリガー)として実行します。
face sensing
カメラを使って顔のパーツの位置をAIが認識して教えてくれます。
Vtuberもどきを作ってる人もいたような...
音声合成
入力された文字列を音声合成で読み上げてくれます。
お勧めはヒンディー語です。
日本語は対応してないのでローマ字で打ってください。
翻訳
google翻訳を使い入力された言語を他の言語に翻訳することができます。
少し反応速度が遅いです。
Makey Makey,micro:bit,Go Direct Force & Acceleration,LEGO系
外部のキットをscratchで制御することができます。
使うには専用のアプリをダウンロードする必要があります。
私はLEGO BOOSTを持っているので昔よく遊んでいた記憶があります
開発しやすくするために
もっと効率よく、楽に開発したい!! という方にはturbowarpをいうscratchのMODを使うことお勧めします。
便利な機能
turbowarpにはscratchとは違い便利な機能が標準で備わっています。
変数置換

変数を右クリックすることでメニューが出る。
そこの”スプライト内の変数を一括切り替え”を押すとダイアログが出る。
そこに置き換える変数名を一文字も間違えずに打ち込むと変数が置換される
同じ機能の変数を一つにまとめたりする時に便利
例えば 他のエンジンからスプライトを取ってきた時、同じ機能なのに変数の名前が違ったら二つの変数を更新しなきゃいけなくて不便じゃん?
綺麗にする+
scratchでは"綺麗にする"をすると一列に並ぶから見ずらいけど
”綺麗にする+”はちゃんと綺麗に整列する
強いていうならコードがどこに行くかわからなくて不便。
実行オプション

一番上に高度な設定というものがあると思います。
クリックするといろいろなオプションが出てきます。
クローンの制限をなくしたり
ステージの大きさ、実行速度(FPS)を変えたりできます。
コンパイラを無効にする とは(中級者向け)
turbowarpはscratchとは実行形式が違います。
scratch上では仮想マシン上でそのままブロックを解釈して実行しますが、
turbowarp上ではJavaScriptというプログラミング言語に変換されて実行されます。
(だからturbowarpは速い)
turbowarpは実行時に一括で変換されるのでscratchとは違い、実行中にブロックを変えても挙動は変わりません
このオプションを有効にすると、
JavaScript への変換を行わず、Scratch とほぼ同じ実行方式で動かす
という意味になります。
その結果、以下のような特徴があります。
- Scratch 本家と挙動がより近くなる
- JavaScript に変換しないため、実行速度は遅くなる
- TurboWarp 独自の最適化や一部機能が使えなくなる
- 一部のブロックは挙動が変わる(致命的)
- 上から実行されていく形式に戻るので実行中にブロックを変えたら挙動も変わる
主な使い道
- Scratch では動くのに、TurboWarp では動かないとき
- デバッグ・検証目的
- 実行中にコードを変えて色々実験、デバッグしたい時
挙動が変わる理由とブロック
先ほども言ったようにscratchとturbowarpでは実行形式が違います。
なのでループとかはJavaScriptの仕様に則って実行されます。
しかし最近(scratch3.0)は仮想マシン(VM)やエディタが全てJavaScriptで書かれるようになったので影響は少なくなりました。
アドオン
turbowarpではscratchとは違いアドオンというものがあり、それを使うことで開発しやすくなります。
(ちなみにアンテエンジン開発とは関係のないものがいくつかあるから自分で判断して使ってね)
ここでは有効にするべきアドオンを紹介していきたいと思います。
見つからなかったら上の検索バーから調べてね
ステージを録画
ステージ画面の上部にボタンが表示される。
これを使うことでステージを録画することができる。
ファイル形式は.webm
デバッガー
クローン作成やメッセージ送信の履歴がみれる
おすすめのオプションは下の通り

プロジェクト音量スライダー
音源とかがうるさい時に使う
クローンカウンター
どのくらいクローンがあるか見られる
マウスの座標を表示
ステージ上のマウスの座標がみれる
ここら辺にガスターブラスター出したいなーって時とかに便利
ブロックカウント
その名の通り今までに何ブロック積んだ(作った)か見れる
モチベがアップするかも
グリッドにスナップ
コスチュームエディターにて、オブジェクトを枠線やベクターのノードにスナップさせる
簡単にスプライトを移動できて便利
変数マネージャー
変数の値を一括で見られるタブができる。
いちいち変数を表示させる必要がなくなる
ステージモニターの値をコピー
ブロックを画像に出力
右クリックのメニューからブロックを画像として出力できる
簡単にコードを公開できて便利
変数の「すべてのスプライト用」と「このスプライトのみ」を変更
間違えて このスプライトのみ の変数を作ろうとして すべてのスプライト用 の変数を作ってしまったり途中で変数のタイプ変えたい時とかに便利
矢印キーで数値を変更
わざわざ値を書き換えなくても矢印キーを使って変数の値を増やしたり減らしたりできる。
拡張機能
turbowarpにはオリジナルの拡張機能があります。
turbowarp拡張機能はscratchと互換性がありません。
拡張機能が多すぎるので解説は別の記事で行う予定です。
ということで今回は、scratch/turbowarpの使い方を解説しました。
わからない/わかりにくいところがあったら是非コメントで教えてください。
では次の記事もお楽しみに〜




