原点(Origin)を置く

原点(Origin)を置く

S2AR で拡張現実をプログラミングするためには、操作の基準となる点(原点)を設定する必要があります。原点は、サイズが 「20 x 20 x 20」の座標軸の交点で表されます。

S2AR に現実世界を認識させる

図1-5-1

S2AR は iPhone のカメラを使って、現実世界を認識します。「ここに床があり、ここは壁で、ここにテーブルがある」など、現実世界の構造をカメラで撮影して ARKit に教えてあげなくてはならないのです。そのため、iPhone を前後左右にゆっくり傾けながら、S2AR の画面に青いグリッド(格子)で表される「X-Y 平面」現れるようにします。この平面が、ARKit で現実世界の床を認識した印です。

原点を設定する

図1-5-2

S2AR の画面上で「原点を置きたい場所」を指でタップすると、原点が設置できました。原点を置き直すときは、「原点を置きたい場所」を再度タップしてください。

S2AR の座標系

S2AR の座標系について説明します。「座標系」とは、空間の位置を正確に指定するために考えられた数学上の取り決めのことです。

図1-5-3

図1-5-3のプログラムを、ScratchX サイトの「スクリプトエリア」に置いてください。これが S2AR で初めてのプログラミングになります。詳しい説明は、次の章で行いますので、図をよく見て、同じようにブロックをつなげてみてください。「ブロックの色を変える」と「ブロックを置く」を4セットつなげます。
プログラムが完成したら、クリックして実行します。

図1-5-4

図1-5-4のように、S2AR 画面に4つの点が表示されます。

S2AR の座標系は、3次元直交座標系です(コラム 座標系について

を参照)。X 座標は赤(Red)、Y 座標は緑(Green)、Z 座標は青(Blue)で表現されています。白の点は(x, y, z)=(10, 12, 15)の位置に設置されています。赤い点は(x, y, z)=(10, 0, 0)の位置に設置されています(X 軸上)。緑の点は(x, y, z)=(0, 12, 0)の位置に設置されています(Y 軸上)。青い点は(x, y, z)=(0, 0, 15)の位置に設置されています(Z 軸上)。

図1-5-2のプログラムを改造してみましょう。x座標、y座標、z座標の数値を変えて、ブロックがどこに置かれるか実験してみてください。例えば、(x, y, z)=(1, 0, 10)、(x, y, z)=(-2, 12, 1)、(x, y, z)=(-3, 5, -5)など数値を変更して、ブロックがどの辺りに置かれるか、感覚として理解できるようになるまで繰り返してください。(「リセット」 ブロックを使うと、設置したブロックを全て消去することができます)

S2AR はこの座標を基準として、カラフルな立方体のブロックを置くことで、自由な形の「仮想オブジェクト」を現実世界に重ねて表示させることができるアプリなのです。

コラム 座標系について

空間上の点を正確に指定するには「3次元直交座標系」を使うと便利です。原点で交差する互いに直角な3本の直線で表される、もっともポピュラーな座標系です。

図1-5-5

点の位置を表すためには、X軸の値 a(Y-Z平面からの距離)、
Y軸の値 b(Z-X平面からの距離)、Z軸の値 c(X-Y平面からの距離)の3つの数値で表されます。
(この図は「右手系」の座標です。次のコラム参照)

座標系については難しいかもしれませんが、S2AR を使っていく中で少しずつ感覚として身についていきます。心配しないで作業を進めていきましょう。

次の章で、「S2AR 拡張ブロック」の詳しい説明を行います。

コラム 左手系の座標

図1-5-6

より高度な知識となりますが、3次元直交座標系には「右手系」と「左手系」があります。図1-5-6の左が「左手系」、右が「右手系」を表します。標準は「右手系」とされており、「マインクラフト」や後ほど出てくる「MagicaVoxel」などでも採用されています。S2AR も「右手系」を採用しています。(ただし高さ方向が Y軸のアプリ(「マインクラフト」「S2AR」など)と Z軸のアプリ(MagicaVoxelなど)があり、注意が必要です)
Unity など「左手系」のアプリもありますので、Z 座標の向きに注意しながらプログラミングを行ってください。(S2AR バージョン1は左手系でしたが、Xcode + Swift に開発環境が変わり、バージョン2から右手系に変更されました)

コメントを残す

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