仮想オブジェクトを設置する

ARKit では現実世界に重ねて「3Dオブジェクト」を、iPhone の画面上に表示させることができます。この物体を「仮想オブジェクト」と名付けます。 S2AR で仮想オブジェクトを設置する方法を学んでいきます。

S2AR の基本操作

S2AR では、「Scratch 基本ブロック」の他に、「S2AR 拡張ブロック」を Extension(拡張機能)として追加できます。実際に「仮想オブジェクト」を空間に設置しながら、「S2AR 拡張ブロック」を一つずつ説明していきます。

接続ブロック

図1-6-1

すべての操作の初めに、「iPhone とパソコンを接続する」ために使います。 S2AR の画面上に表示される IP Address を入力してクリックしてください(環境によって数字は変わります)。 S2AR の画面上に「connect」と表示されれば接続成功です。

リセットブロック

図1-6-2

仮想オブジェクト消去するためのブロックです。このブロックをクリックすると、設置した仮想オブジェクトをすべて消すことができます。

色指定ブロック

図1-6-3

設置するブロックの色を指定します。ブロックの色は RGB の数値によって変化させることができます 。赤(Red)、緑(Green)、青(Blue)の三つの原色を混ぜて、16,777,216(256 x 256 x 256)種類の色を表現できます。

図1-6-4

ウィキペディア RGB の項目より

R、G、B は、0 〜 255 の整数で指定します。例えば、
(R, G, B)=(0, 0, 0) は「黒」を表します。
(R, G, B)=(255, 0, 0) は「赤」を表します。
(R, G, B)=(0, 255, 0) は「緑」を表します(正確には「ライム」という)。
(R, G, B)=(0, 0, 255) は「青」を表します。
(R, G, B)=(0, 255, 255) は「シアン(別名 アクア)」を表します。
(R, G, B)=(255, 0, 255) は「マゼンダ(別名 フクシア)」を表します。
(R, G, B)=(255, 255, 0) は「黄色」を表します。
(R, G, B)=(255, 255, 255) は「白」を表します。

それ以外の色を使いたいときは、「rgb 色見本」などで Web検索してください。

コラム RGB 値と16進数

図1-6-5

「原色大辞典」サイトへのリンク

RGB で色を表現する方法を説明します。

例えば「原色大辞典」サイトより使いたい色を選びます。

図1-6-6

orange(オレンジ)の値は「#ffa500」となっています。図1-6-6に示すように、数字を2つずつ切り離して、R, G, B の値は
R = 【ff】
G = 【a5】
B = 【00】
となっています。ここで注意が必要なのは、この数字が【16進数】で表されていることです。

一般に使う「10進数」は「10」を基数としており、「1, 2, 3, 4, 5, 6, 7, 8, 9, 0」の10個の文字で整数を表します。
【16進数】は、「16」を基数とした整数の表示方法です(プログラミングでよく使用される)。【1, 2, 3, 4, 5, 6, 7, 8, 9, 0】【a(= 10進数の「10」)】【b(= 10進数の「11」)】【c(= 10進数の「12」)】【d(= 10進数の「13」)】【e(= 10進数の「14」)】【f(= 10進数の「15」)】の全部で16個の文字で整数を表します。
S2AR の「色指定ブロック」は10進数で入力しますから、「16進数を10進数に変換」しなければなりません。

図1-6-7

図1-6-7を参照して、G の値【a5】を10進数に変換すると「165」になります。計算方法は、1桁目の 【5】はそのまま10進数の「5」に変換できます。2桁目の【a(= 10進数の「10」)】は16倍して10進数の「16 x 10 = 160」に変換できます。この2つを足して「165」に変換できました。
同じように、R の値【ff】を10進数に変換すると「255」になります。計算方法は、1桁目の 【f(= 10進数の「15」)】は10進数の「15」に変換できます。2桁目の【f(= 10進数の「15」)】は16倍して10進数の「16 x15 = 240」に変換できます。この2つを足して「255」に変換できました。
最後に、B の値【00】を10進数に変換すると「0」になります。計算方法は、1桁目の 【0】はそのまま10進数の「0」に変換できます。2桁目の【0)】は16倍して10進数の「16 x 0 = 0」に変換できます。この2つを足して「0」に変換できました。

図1-6-8

したがって、「オレンジ」のブロックを設置したいときは図1-6-8のように「r=255, g=165, b=0」と色を指定してやります。
(16進数は一見難しいですが、これも慣れです。プログラミングの必須の知識なので、頑張ってマスターしてください)

点ブロック

図1-6-9

X座標、Y座標、Z座標を指定して、ブロックを1つ設置します。このブロックは、すべてのクラフトの基本となるものです。X座標、Y座標、Z座標の数値を変化させて、たくさんのブロックを設置してみましょう。例えば(X, Y, Z)=(5, 10, 15)にブロックを設置してみましょう。

図1-6-10

図1-6-11

図1-6-11のプログラムを実行して、3次元直交座標系を表示させると、図1-6-10に示すように、X方向に「5」、Y方向に「10」、そして Z方向に「15」に進んだ位置にブロックが一つ設置できていることが確認できます。

なお座標値(X, Y, Z)については、-1.2 や10.46 など小数点以下まで細かく指定できます。マインクラフトは整数値(-9, 0, 234 など)しか設置できないので、S2AR の方がより細かくクラフトが行えるのです。

直方体ブロック

図1-6-12

X座標、Y座標、Z座標、幅、奥行、高さを指定して、直方体(箱形)を設置します。

図1-6-13

例えば(X, Y, Z, 幅, 奥行, 高さ)=(2, 0, 2, 2.5, 3.5, 4.5)に直方体を設置してみました。ブロックのサイズ(幅、奥行、高さ)も 1 以上の数値で小数点以下まで指定できますので、より細かいクラフトが可能です。
サイズ(幅、奥行、高さ)のマイナスの値にも対応しています。基準点(X, Y, Z)からマイナス方向に直方体を設置できます。(マイナスの値の利用方法は、「自動車を作る 方向転換①」で説明します)

円柱ブロック

図1-6-14

X座標、Y座標、Z座標、半径、高さ、軸方向を指定して、円柱を設置します。軸方向は「x」「y」「z」のいずれかの値を取ります。円柱の半径については、0.5 以上の数値を指定してください。高さはマイナス値を取ることも可能です。

以下に例を3つ示します。

図1-6-15

例えば(X, Y, Z, 半径、高さ、軸方向)=(10, 10, 10, 4, 10, y)に円柱を設置してみました。軸方向を「y」としたので、Y軸方向(上方向)に向かって円柱が伸びていきます。色は(0, 255, 0)の緑を指定しました。

図1-6-16

次に、軸方向を「x」にしてみます。

図1-6-17

(X, Y, Z, 半径、高さ、軸方向)=(10, 10, 10, 4, 10, x)に円柱を設置してみました。軸方向を「x」としたので、X軸方向(右方向)に向かって円柱が伸びていきます。色は(255, 0, 0)の赤を指定しました。

図1-6-18

最後に、軸方向を「z」にしてみます。

図1-6-19

(X, Y, Z, 半径、高さ、軸方向)=(10, 10, 10, 4, 10, z)に円柱を設置してみました。軸方向を「z」としたので、Z軸方向(奥行き方向)に向かって円柱が伸びていきます。色は(0, 0, 255)の青を指定しました。

六角柱ブロック

図1-6-20

X座標、Y座標、Z座標、半径、高さ、軸方向を指定して、六角柱を設置します。円柱と同じように軸方向は「x」「y」「z」のいずれかの値を取ります。

図1-6-21

例えば(X, Y, Z, 半径、高さ、軸方向)=(10, 10, 10, 8, 10, y)に六角柱を設置してみました。軸方向を「y」としたので、Y軸方向(上方向)に向かって六角柱が伸びていきます。色は(0, 255, 0)の緑を指定しました。

円柱の場合と同じように、軸方向は「x」「z」の値を取ることも可能です。どのように設置されるか、自分で確かめてみてください。

球体ブロック

図1-6-22

X座標、Y座標、Z座標、半径を指定して、球体を設置します。

図1-6-23

例えば(X, Y, Z, 半径)=(8, 8, 8, 8,)に球体を設置してみました。簡単に球体を設置することができました。

文字ブロック

図1-6-24

S2AR のウリの一つが「空間に文字を書くことができる」ことです。X座標、Y座標、Z座標、文字、軸方向を指定して、文字を描きます。円柱と同じように軸方向は「x」「y」「z」のいずれかの値を取ります。

図1-6-25

例えば(X, Y, Z, 文字, 軸方向)=(0, 10, 0, A, z)に文字を描いてみました。文字のサイズは「7 x 7」のため、文字間隔を「8」、行間を「10」にすれば綺麗に文字を配置することができます。

図1-6-26

S2AR はアルファベットだけでなく、日本語の文字にも対応しています。空間に「漢字」を描いてみましょう。

図1-6-27

S2ARは、JIS第1・第2水準の漢字に対応しています。(X, Y, Z, 文字, 軸方向)=(0, 10, 0, 漢, z)、(X, Y, Z, 文字, 軸方向)=(8, 10, 0, 字, z)にして文字を描いてみました。ドットが荒いので少し読みにくいのですが、「漢字」を描くことができました。

約6,000文字の漢字のデータが内蔵していますから、ほとんどの場合、自分の名前を漢字で表示することができるはずです。挑戦してみましょう。(フォントは「美咲フォント」を利用させていただいています。ありがとうございます)

文字ブロックに「日本語の文字(ひらがな、漢字)」を入力しずらい場合は、メモ帳などに入力してから一文字ずつコピペすると簡単です。

線ブロック

図1-6-28

2つの点を指定して、その間に直線を引くことができます。始点(x1, y1, z1)、終点(x2, y2, z2)の6つの数値をしてしてやります。この節の最初の写真(5種類の正多面体)はこの線ブロックで作成されています。

図1-6-29

始点(0, 0, 0)から終点(10, 10, 10)まで線を引いてみました(下に伸びる線は影です)。線ブロックに慣れるため、始点と終点を変えながら、たくさんの線を引いてみてください。

屋根ブロック

図1-6-30

家を建築するために屋根を作るブロックです。(X, Y, Z, 幅, 奥行, 高さ, 軸方向)の7つの値を指定します。

図1-6-31

(X, Y, Z, 幅, 奥行, 高さ, 軸方向)=(0, 3, 0, 14, 7, 10, z)で、一般的な45度の屋根を建築してみました。この写真のように、幅を偶数にしたときは最上段が2つのブロックになります。それ以外の場合は最上段が1つのブロックになるのでやってみましょう。

以上で、「S2AR 拡張ブロック」の説明を終わります。これらのブロックを組み合わせて、複雑な仮想オブジェクトを作ることができます。次の章では、Scratch のプログラミングを学びながら、様々なクラフトに挑戦していきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です