ScratchでARプログラミング入門 ④ランダムでボクセルアートをもっと楽しく!
前回の復習
前回は、条件分岐を学び、「もし~なら」ブロックを使って、条件によってボクセルの色を変える方法をマスターしました。縞模様や市松模様やなど、複雑な模様も作ることができましたね!
前回の問題の回答例を発表します。上記の図1の赤い円を描くスクリプトは、次のとおりです。
円を描くには、円と表す方程式 $${x^2 + y^2 = r^2}$$ を利用します。
半径 r は 20 なので、$${i^2 + j^2 < 400}$$ が条件式になります。
i と j の値は、-20から20まで一つずつ動かします。
条件式を満たす場合、つまり円の内側に赤いボクセルを置くようにします。
ランダムに挑戦!
今回は、乱数を使って、ボクセルアートをもっと楽しく表現する方法を学びます。
ランダム(乱数)ってなんだ?
ランダムとは、予測できない、偶然に起こることを意味します。
乱数とは、ランダムに生成された数字のことです。
例えば、サイコロを振ると、どの目が出るか予測できませんよね?
これは、サイコロの出目がランダムだからです。
コンピュータは、自分で決めた通りに計算を行うので、本来は予測できない数字を作ることはできません。その代わりに、複雑な計算を使って、一見ランダムに見える数字(擬似乱数)を作り出すことができます。
乱数はどんな時に使うの?
乱数は、ゲーム、シミュレーション、データ分析など、様々な場面で使われています。
例えば、
ゲーム: 敵の出現位置やアイテムの種類をランダムに決める
シミュレーション: 天気予報や株価の予測など、複雑な現象を再現する
データ分析: データをランダムにサンプリング(抽出)する
ボクセラミングで乱数を使うと…?
ボクセラミングで乱数を使うと、例えば、
ランダムな位置にボクセルを配置して、面白い形を作る
ランダムな色でボクセルを配置して、カラフルな模様を作る
ランダムな高さのタワーや壁を作る
など、予想もつかない、個性的な表現 を楽しむことができます!
乱数ブロック
Scratchでは、「乱数」ブロックを使って乱数を生成することができます。「乱数」ブロックは、指定した範囲内のランダムな整数を生成します。
例えば、「1から10までの乱数」ブロックは、1から10までのランダムな整数を生成します。
ランダムな色のボクセルタワーを作ろう!
乱数を使って、積み上げられたボクセルが、それぞれランダムな色になるタワーを作ってみましょう。
挑戦してみよう!
高さ100のボクセルタワーを作り、各ボクセルの色をランダムに変えてみましょう。
ヒント:「色のリスト」を作って、乱数を使ってリストからランダムに色を選ぶことができます。
Scratchのサンプルプロジェクトを開く
パソコンのWebブラウザで次のリンクからScratchのサンプルプロジェクトを開きます。このプロジェクトを改造していきます。
回答例
図4のスクリプトは、ランダムな色のボクセルを積み上げてタワーを作ります。色は「黒、青、緑、シアン、赤、黄色、マゼンダ、白」の8色です。乱数ブロックで、変数 n に 1 から 8 の数字がランダムに決まります。そして、n の値によって、条件分岐ブロックでボクセルの色を塗り分けます。
スクリプトを実行すると、ランダムカラー・タワーが建築されます。各段のボクセルの色はランダムに変化します。
ランダムな高さの壁を作ろう!
乱数を使って、壁の各列の高さをランダムに変えてみましょう。
挑戦してみよう!
幅10、奥行き10の箱を作り、各列の高さを8から12までの乱数で変えてみましょう。
回答例
図6のスクリプトは、ランダムな高さのキューブを作成します。このスクリプトは「地形自動作成スクリプト」の簡易バージョンです。
スクリプトを実行すると、ランダムな高さのキューブが建築されます。まるで、マイクラの山岳地帯のようなアート作品が作成できました。
ここまでの作業を保存しておきましょう。
まずは、プロジェクト名を決めます。ここでは「連載第4回」と名前をつけました。
「ファイル」メニューから「コンピューターに保存する」を選びます。
ダウンロードフォルダーに「連載第4回.sb3」という名前のファイルが作成されます。
これまでのプログラムを改造して、さらに複雑なランダム図形に挑戦します。繰り返しと条件分岐を応用してみましょう。
問題:ランダムなドット絵を描こう!
乱数、繰り返し、条件分岐を組み合わせて、ランダムなドット絵を描いてみましょう!
挑戦してみよう!
60 x 60 個のボクセルを並べて、正方形のキャンバスを表現します。
各ボクセルについて、乱数(1から 10)を生成し、その値が8以下ならボクセルを配置します。
ボクセルの色は、1から8の値によって塗り分けます。
繰り返しと条件分岐を組み合わせて、すべてのボクセルに対して処理を行いましょう。
ヒント
「乱数」ブロックを使って、1から10までの乱数を生成します。
「もし~なら」ブロックを使って、乱数の値によって、処理を分岐します。
回答例は、連載第5回の冒頭で行います。皆さんの力で挑戦してみてください。
次回予告
次回は、「線を引く」ブロックを使って、2点間をつなぐボクセルを配置する方法を学びます。このブロックを応用すると、複雑な立体図形を簡単に作成できます。
お楽しみに!
ScratchでAR プログラミング入門シリーズ
ScratchでARプログラミング入門シリーズの一覧です。
第1回 プログラミングでARボクセルアートを作ろう!
第2回 繰り返しでボクセルの街を作ろう!
第3回 条件分岐でボクセルアートをもっと自由に!
第4回 ランダムでボクセルアートをもっと楽しく!
第5回 線を描いて、AR空間に立体図形を作ろう!
第6回 ボクセルで文字を描いて、AR空間に情報をプラス!
第7回 再帰処理でフラクタル図形に挑戦!
第8回 最終回 自分だけのARワールドをつくろう!