AR空間の画像クリック方法

AR.jsやMindARでWebARを簡単に実現できます
作成したWebAR上の任意の画像をクリックし、動画再生を行うことも可能です

動画再生は、動画そのものがクリック出来ないため、動画にサムネイル画像を重ね、サムネイル画像のクリックにより、javascriptsを起動させサムネイル画像を非表示とし、その下の動画を再生表示するという流れです

    <script>
      AFRAME.registerComponent("click1", {
        init: function () {
          const video = document.getElementById("video");
          const arVideo = document.getElementById("arVideo");
          const thumbnailImg = document.getElementById("thumbnailImg");
          let is_playing = false;
          this.el.addEventListener("click", () => {
            console.log("click1");
            if (!is_playing) {
              thumbnailImg.setAttribute("visible", false);
              arVideo.setAttribute("visible", true);
              video.play();
              is_playing = true;
            } else {
              video.pause();
              is_playing = false;
            }
          });
        },
      });
    </script>

サムネイルや動画を<a-assets>で準備し、配置します

    <a-assets>
        <image
          crossorigin="anonymous"
          id="thumbnail1"
          src="https://cdn.glitch.global/a575940f-5bb4-4d84-b1ec-39de683638f7/11omote_start.jpeg?v=1728086615601"
        ></image>
       <video
          crossorigin="anonymous"
          id="video"
          src="https://cdn.glitch.global/cbf17ad1-1348-4ae7-b9c3-7207634324f5/2024meishi.mp4?v=1703162875641"
        ></video>
  
<a-entity mindar-image-target="targetIndex: 0">
        <a-video
          id="arVideo"
          src="#video"
          width="1.8"
          height="0.9"
          position="0 0 0"
          rotation="0 0 0"
        ></a-video>
        <a-image
          click1
          class="clickable"
          id="thumbnailImg"
          src="#thumbnail1"
          width="1.8"
          height="0.9"
          position="0 0 0"
          rotation="0 0 0"
        ></a-image>

なお、画像クリックには、以下の定義が不可欠です

<a-camera
        position="0 0 0"
        look-controls="enabled: false"
        cursor="fuse: false; rayOrigin: mouse;"
        raycaster="near: 10; far: 10000; objects: .clickable"
      ></a-camera>

これでサムネイル画像をクリックすると動画を再生することが可能となります

加えて、MindARの利用でマルチターゲットに対応しています
なお、以下のようなjavascriptsでも動画再生は可能ですが、この場合は、画像のクリックでの動画再生でなくWindowsクリックで再生となり、オブジェクトごとでの切り分けはできません

<script>
      window.addEventListener("click", () => {
        const video = document.getElementById("video");
        const arVideo = document.getElementById("arVideo");
        const thumbnailImg = document.getElementById("thumbnailImg");
        thumbnailImg.setAttribute("visible", false);
        arVideo.setAttribute("visible", true);
        video.play();
      });
    </script>


SSD換装

半年前にデスクトップPCを購入する際、Cドライブは、250GBのSSD(M.2 2280 PCIe 3.0 x4 NVMe)を選択していたが、空き容量が30GB程度に減少したため、換装を実施。

同じ種類の1TBものをドスパラで購入。すぐにこのままでは、クローンを作って換装できないことに気づき、ケースも購入。

Western Digital  WD Blue SN570 WDS100T3B0C (M.2 2280 1TB)

発注後、翌日の午後には、配達された。

こちらのサイトを参考に、MiniTool ShadowMaker FreeというフリーソフトでSSDをクローン。256GBと1TBと容量が違ったものの簡単にクローンできた。物理的に入れ替えて、再起動。

何の問題もなかった。

WebARまとめ

ここ数日で一通りのことを理解し、出来るようになりました。
・github まだ十分とは言えませんが使えるようになりました。
・nft-marker-creatorにより任意の画像をマーカーにすることができます。
 web版もありますが、nodeというプログラムでも扱えます。ただ、github上に置いたファイルへのリンクの仕方が独特のようで、これに何日も悩まされました
・a-frame ar.js model-viewerについても概略理解できました
そこで、まとめてみたのが添付のpdfです。

urlへ案内するため、どうしてもQRコードが必要ですから、更に画像認識をさせる意味があまりないような気もします。凝ったレイアウトであれば別ですが。
添付のパノラマ写真などは面白いと思います。
お暇な時にご覧いただき、ご意見をお聞かせください。

WebARまとめ資料(pdf

パノラマ写真のソースコード
わずか数行で実現できる

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>360&deg; Image</title>
    <meta name="description" content="360&deg; Image - A-Frame">
    <script src="https://cdn.jsdelivr.net/gh/aframevr/aframe@1c2407b26c61958baa93967b5412487cd94b290b/dist/aframe-master.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-sky src="https://arjs-cors-proxy.herokuapp.com/https://raw.githack.com/jirochanf/ar/master/assets/pano2.jpeg" rotation="0 -130 0"></a-sky>

      <a-text value="津島高校にて" width="6" position="-2.5 0.25 -1.5"
              rotation="0 15 0"></a-text>
    </a-scene>
  </body>
</html>

WebAR 習作

WebARの習作集

QRコードでアクセスし、カメラを許可して、デフォルトマーカーを撮影

マーカー上に動画ファイルを再生
https://jirochanf.github.io/kinga/video.html

マーカー右上に3Dモデル(benz)を表示
 https://jirochanf.github.io/kinga/3d.html

マーカー上に(pizza)画像を表示
 https://jirochanf.github.io/kinga/pic.html

マーカーなしで動画ファイルを再生(safariで再生されない)
 https://jirochanf.github.io/kinga/video0.html

マーカーなしで3Dモデル(benz)を表示  丸いARマークをクリック、model-viewerを利用・
 https://jirochanf.github.io/kinga/3dbenz.html

マーカーなしで3Dモデル(chair)を表示  丸いARマークをクリック、model-viewerを利用
 https://jirochanf.github.io/kinga/3dchair.html

マーカーなしでyoutube動画を再生
 https://jirochanf.github.io/kinga/videoyou.html