#006 ウロチョロしてみよう!

ok-scratch

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

乱数ブロックで回転角度と移動距離を毎フレームランダムに決め、ネコが予測不能な動きで画面を歩き回るアニメーションを作ります。端での跳ね返りと歩行アニメーションの仕組みも解説。

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

乱数を回転角度と移動距離の2箇所に同時に適用している点が効いている。角度だけランダムにすれば方向が変わり、距離だけランダムにすれば速さが変わるが、両方に乱数を入れると「どこへ向かうか」も「どこまで進むか」も毎フレーム完全に予測不能になる。最小限のコードでこれだけ複雑に見える動きを生み出せる発想が面白い。どう組み立てているのか、作り方を見ていこう。

動画で見てみよう

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

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

今回の目標

乱数ブロックで回転角度(0〜30度)と移動距離(5〜30歩)を毎フレームランダムに決定し、ネコが画面内を予測不能な動きで歩き回るアニメーションを作ります。端に当たると自動的に跳ね返り、コスチュームの切り替えで歩行アニメーションも表現します。

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

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

#1ネコの準備

ok-scratch ok-scratch
ネコが画面の中をランダムにうろうろ歩き回るプログラムを作るよ。まずはスタート位置と動き方の設定から始めよう。

準備

スプライト「ネコ」を開く

ネコネコ
スプライトについて
ランダムな方向と歩幅で画面内を動き回るネコ。端に当たると跳ね返り、コスチュームを交互に切り替えて歩行アニメーションを表現する。
どんな役割か
ネコが画面の中をランダムにうろうろ動き回るようにするよ。端っこに当たったら跳ね返る設定もして、コスチュームを切り替えることで歩いてるアニメーションも付けちゃおう!

実装

step-0

旗が押されたらネコを画面の真ん中(x:0, y:0)に置いて、向きを90度にリセット。動き回転方法を ( ) にするを「左右のみ」にするのがポイントで、こうしないとネコが逆さまにひっくり返るんだよね。

確認プレビューしておこう 確認プレビューしておこう
旗を押すとネコが真ん中に移動して、回転方法が左右のみに設定されたね。

#2ランダムに歩かせる

step-1

まず制御ずっとを置いて、この中にランダム移動のコードを入れていくよ。いよいよネコをランダムに歩かせよう。方向も歩幅も乱数で決めるから、毎回予測不能な動きになるんだ。

動き( ) ( ) 度回すで0〜30度のランダムな角度だけ回転して、動き( ) 歩動かすで5〜30歩のランダムな距離を進むよ。移動距離がバラバラだから、ネコが速く歩いたりゆっくりになったりしているように見えるんだ。方向と速さの両方がランダムになることで、完全に予測不能な動きが生まれる。

ok-scratch ok-scratch
乱数はゲーム作りで超重要な要素だよ。敵の出現位置やアイテムのドロップ率、ダメージのばらつき——ゲームに「毎回違う体験」を生み出してるのは、だいたい乱数のおかげ。サイコロを振るのと原理は同じだけど、プログラムなら0〜30みたいに好きな範囲を自由に指定できるのが強いよね。

確認プレビューしておこう 確認プレビューしておこう
ネコがランダムな方向に、ランダムな歩幅で動き回るようになったね。

#3歩くアニメと跳ね返り

ok-scratch ok-scratch
ネコの動きはできたけど、このままだとネコが滑って移動してるみたいだし、画面の外に出ちゃう可能性もある。仕上げとして見た目と移動範囲を整えよう。
step-2

見た目次のコスチュームにするでコスチュームを切り替えると、ネコが足を交互に動かす歩行アニメーションになるよ。もし動きもし端に着いたら、跳ね返るを入れなかったら、ネコは画面の外に飛び出してそのまま戻ってこないから、ちゃんとこれを追加して端で自動的に跳ね返るようにしよう。これでネコがずっと画面の中を歩き続ける仕組みの完成。

ok-scratch ok-scratch
「端に着いたら跳ね返る」っていう処理、実はゲーム作りでめちゃくちゃよく使う考え方なんだよね。ブロック崩しのボールが壁で跳ね返るのも、ピンボールの球が反射するのも、全部「当たり判定+方向反転」っていう仕組み。Scratchだと1ブロックで済むけど、中身でやってることはプロのゲームと同じ原理なんだ。自分でシューティングゲームとか作るときにも、この「端で跳ね返る」は絶対使うから覚えておくといいよ。

まとめ

乱数ブロックって、こんなシンプルな使い方でこれだけ面白い動きが作れるんだよ。方向と距離の2箇所に乱数を使うだけで、ネコの動きが一気に生き生きとしてくる。次はランダムな場所に移動するブロックも組み合わせてみたり、複数のスプライトを同じ仕組みで動かしてみたりすると、さらに面白いことができるよ!

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