A-Frameの基本的な使い方

A-Frameの基本的な使い方

今回は簡単かつ無料でARを実現することができる、A-Frameについて解説したいと思います。

A-Frame最大の特徴は、何といってもHTMLを記述するだけで簡単にARを実現できてしまうことです。簡単なアニメーションだけであれば、HTMLのタグだけで実装できてしまいます。
そんなA-Frameの基本的な使い方を解説していきたいと思います。

基本コード

ここではA-Frameの公式サイトに記載されている、サンプルコードをもとに説明していきます。

<html>
  <head>
    <script src="https://aframe.io/releases/1.4.0/aframe.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
      <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
      <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
      <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
      <a-sky color="#ECECEC"></a-sky>
    </a-scene>
  </body>
</html>

まずは3行目にある、こちら↓のコード

<script src="https://aframe.io/releases/1.4.0/aframe.min.js"></script>

ここで、A-Frameのjsファイルを読み込んでいます。これを書かないとA-Frameの機能を利用することができません。(よく分からない人は、A-Frameを使うための「おまじない」だと思ってもらえればOKです!)

コードの中に「1.4.0」とありますが、これはA-Frameのバージョンを表しています。
執筆時点(2023/5/2)で、Githubにあるサンプルソースを見ると、「1.4.2」となっていますので、好みに合わせてバージョンを選択すれば良いと思います。
(特にこだわりがなければ、最新バージョンを利用するようにすれば良いでしょう)

続いて、6行目から12行目です。

    <a-scene>
      <a-box position="-1 0.5 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
      <a-sphere position="0 1.25 -5" radius="1.25" color="#EF2D5E"></a-sphere>
      <a-cylinder position="1 0.75 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
      <a-plane position="0 0 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
      <a-sky color="#ECECEC"></a-sky>
    </a-scene>

ここがA-Frameのメイン部分になります。
<a-scene>~</a-scene>で括った部分がAR空間として認識されます。

各タグについては、以下のような意味を持っています。

a-box

立方体(box)を描画するためのタグです。サンプルコードでは、3つのプロパティが設定されています。

position

オブジェクト(立方体)の座標を指定します。左から順に、X座標-Y座標-Z座標の順になります。
デフォルトでは、すべて0が指定されており、中心にオブジェクトが表示されます。

rotation

オブジェクトの回転を指定します。左から順に、X座標軸-Y座標軸-Z座標軸を中心とした回転度数になります。
デフォルトでは、すべて0が指定されており、回転していない状態です。

color

オブジェクトの色を指定します。色は16進数で指定することができます。
デフォルトでは、「#FFF」が指定されており、白色で表示されます。

a-sphere

球体(sphere)を描画するためのタグです。サンプルコードでは、3つのプロパティが設定されています。

position

<a-box>と同じ

radius

球体の半径を指定します。デフォルトでは「1」が指定されています。

color

<a-box>と同じ

a-cylinder

円柱(cylinder)を描画するためのタグです。サンプルコードでは、4つのプロパティが設定されています。

position

<a-box>と同じ

radius

<a-sphere>と同じ

height

円柱の高さを指定します。デフォルトでは「1」が指定されています。

color

<a-box>と同じ

a-plane

平面(plane)を描画するためのタグです。サンプルコードでは、5つのプロパティが設定されています。

position

<a-box>と同じ

rotation

<a-box>と同じ

width

平面の横幅を指定します。デフォルトでは「1」が指定されています。

height

<a-cylinder>と同じ

color

<a-box>と同じ

a-sky

空(sky)を描画するためのタグです。空と言っても、ここでは背景として理解しておけば大丈夫です。
サンプルコードでは、1つのプロパティが設定されています。

color

<a-box>と同じ

その他

サンプルコードにはありませんが、以下のようなタグも用意されており、単純な形であればすぐに描画することができます。

  • <a-cone>(円錐)
  • <a-ring>(リング)
  • <a-torus>(ドーナツみたいな形)

こちらのA-Frame公式サイトの中で、左にあるスクロールバーを下へ送っていくと、「PRIMITIVES」というところにいくつか紹介されています。

英語で書かれていますが、難しい単語は使われていませんし、サンプルコードも記載されていますので、実際にコードを書いて試してみるのが早いと思います。

実際に動かしてみる

サンプルコードを実際に動かしてみた結果は、このようになります。

See the Pen A-frame01 by kotapan (@kotapan) on CodePen.

こんな感じでたった数行のHTMLコードだけで、3D空間が作れてしまうのはすごいですよね。

上記のコードは、編集できるようにしてありますので、座標を変えたり色を変えたりしていろいろと遊んでみてください。

まとめ

今回は、簡単かつ無料でARを作れるA-Frameについて紹介しました。

実際に使用するときには、立方体や球体といった形だけでなく、画像や3Dモデルとかも使うことでより本格的なARを作りたくなると思います。A-Frameでは、そういったものも簡単に表示させることができるので、試行錯誤しながら作っていくとオリジナルのARを作成することができます。

また、ここでは紹介しませんでしたが、スマホのカメラを起動させるようにすることもできます。そうすれば、スマホをマーカー(特定の図形)にかざすことでARを出現させるといったこともできるようになります。
こちらはまた別の機会に紹介できればと思います。

最後まで読んでいただきありがとうございました!

  • URLをコピーしました!

コメント

コメントする