みかづきブログ・カスタム

基本的にはちょちょいのほいです。

A-Frameを使って爆速でWebARをつくる 💻


A-Frameを使ってWebARを作ってみました。
ソースはこんな感じです。

HTML

<!DOCTYPE html>
<html">
<head>
  <meta charset="UTF-8" />
  <title>AR DEMO</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover, shrink-to-fit=no" />
  <script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script>
  <script src="https://raw.githack.com/AR-js-org/AR.js/3.3.1/aframe/build/aframe-ar-nft.js"></script>
  <style>
    * {
      margin: 0; padding: 0;
    }

    body {
      overflow: hidden;
      cursor: none;
    }
  </style>
</head>
<body>
  <a-scene embedded arjs="debugUIEnabled: false" vr-mode-ui="enabled: false">
    <a-assets>
      <a-asset-item id="model" src="model.glb"></a-asset-item>
    </a-assets>
    <a-marker type='pattern' url='./pattern.patt'>
      <a-entity gltf-model="#model"></a-entity>
    </a-marker>
    <a-entity camera></a-entity>
  </a-scene>
</body>
</html>

30行程度のHTMLでWebARを実装できるとは、すごい時代になりました。

model.glbは3Dモデルで、Blender 2.8で書き出しました。
昔はglb書き出しのためのプラグインが必要だったらしいですが、いまは標準機能で書き出せます。便利な時代になりました。

そもそもの自分の3Dモデルは、リアルアバター株式会社にて撮影してもらいました。

www.real-avatar.com

一回作っておくと、色々使えて便利です。


pattern.pattはマーカーのパターンなのですが、こちらのサイトに、マーカーにしたい画像をアップロードするだけで作成できます。

jeromeetienne.github.io

モデルを出したり消したりするのは、マーカーを足で踏んで認識を切ることで消す。マーカー から足をどかすことで出す。という制御です。

今回はうまくいかなかったのですが、次回は3Dモデルにアニメーションを付けたいと思います。