WebVRでの日本語表示

前回の方法では、なぜかWebVRではエラーとなり、日本語が表示できない
日本語を表示するには、いくつかの方法があるようで、スクリプトを利用した方法が紹介されていた
https://qiita.com/afujiu/items/d1885710acaf7b35fe03
理屈は、あまり理解できなかったが、試したところWebVRでもエラーなく表示できた かつ こちらの方が非常に簡単
https://webar-senior.glitch.me/webvr.html

     <a-entity
        mb-text
        position="6 5 -8"
        scale="5 5 5"
        data-text="画像をクリックしてね"
      ></a-entity>
 
<script>
    function aframeMutlByte() {
      document.querySelectorAll("[mb-text]:empty").forEach((mb_text) => {
        console.log(mb_text.dataset.text);
        const text = mb_text.dataset.text;
        const text_cnt = text.length;
        const width = text_cnt * 1.4;
        const height = 1.6;
        let cvs = document.createElement("canvas");
        let ctx = cvs.getContext("2d");
        cvs.width = width * 100;
        cvs.height = height * 100;
        ctx.fillStyle = "rgb(255, 255, 253)";
        ctx.font = "100pt Arial";
        ctx.fillText(text, 0, 125);
       const base64 = cvs.toDataURL("image/png");
        mb_text.innerHTML = `<a-image scale="${width / 10} ${
          height / 10
        } 1" src="${base64}"></a-image>`;
      });
    }
    aframeMutlByte();
  </script>


A-frameで日本語表示

WebARを簡単に実現するA-frame非常に便利だが、日本語に対応しておらず、デフォルトでは、日本語を表示できない
ネット検索するといくつかの対応策で表示できるようになるとのこと
こちらhttps://www.alpha.co.jp/blog/202308_02や

こちらhttps://crieit.net/posts/A-Frame-5e93285a259c3を参考に表示できるようになった
jsonファイルとpngをネットからお借りして導入

<a-text
		id="text"
		rotation="0 0 0"
		position="0.7 -0.4 -0.01"
		value="クリックでyoutubeへ"
		font="https://web-senior-backup.glitch.me/noto-sans-cjk-jp-msdf.json"
		font-image="https://cdn.glitch.global/2b6a4eb5-022f-4add-9765-5212abbb4a7b/noto-sans-cjk-jp-msdf.png"
		negate="false"
		color="white"
		scale="0.5 0.5 0.5"
	></a-text>

マーカーARで画像クリックにより動画再生・遷移の振り分け

MindArを利用して画像トラッキング後、オブジェクト画像のクリックにより動画再生、別画像のクリックでURLを遷移

動画再生は、プレビュー画像を配置し、プレビュー画像のクリックで動画再生させる
javascriptによりイベント振り分け(動画再生・URL遷移)

    <script>
        AFRAME.registerComponent("click1", {
          init: function () {
            var panel = document.querySelector("#panel");
            var v = document.querySelector("#vid");
            var pic = document.querySelector("#pic");
            let is_playing = false;
            this.el.addEventListener("click", () => {
              console.log("click1");
              //       alert("clicked_start");
              if (!is_playing) {
                pic.setAttribute("visible", false);
                v.play();
                is_playing = true;
              } else {
                v.pause();
                // location.href =
                //   "https://youtu.be/XeZcFc1jD9E?si=T34Z7Hyxt43I9meK";
                is_playing = false;             
              }
            });
          },
        });
      </script>

 

クロマキー動画を使ったホログラム動画

A-Frameを使ったWebARにクロマキー処理のスクリプトを利用するとホログラム動画が再生できるよう
完成したのがこちら
https://webar-senior.glitch.me/holo.html

クロマキー処理のスクリプト

<script src="https://unpkg.com/aframe-chromakey-material/dist/aframe-chromakey-material.min.js"></script>

video配置時にmaterialを追加するだけでいいよう

    <a-video
      src="#vid"
      position="0 0 -7"
      rotation="0 0 0"
      width="6"
      height="1.7"
      material="shader: chromakey; src: #vid; color:0.1 0.9 0.2"
    >
    </a-video>

WebAR動画配置の解説動画

WebARでの動画配置について丁寧に解説してくれている動画をyoutubeで見かけました

詳しくかつ丁寧に説明されています
ここでも方法としては、前画像を配置・クリックすることで動画再生させるjavascriptになってますね

やはりこの方法が、一番安定しているようで

これまでで解決できない問題
WebAR上に配置したオブジェクトを個別にクリックすることができません
MindARのテンプレートでは可能となってますので、何かやり方が間違っているようです

マーカーなしWeARの作成

今回のミッションは、マーカーなしWebARの作成

A-FrameやAR.jsを使い、HiroマーカーやMindARなどでマーカーを使ったWebARの作成は一通りできるようになったが、マーカーなしのWebARは勝手が違うようで何かと難しい

今回の目標は、
・マーカーなしでWebARを実現
・動画を配置
・動画が読み込まれるまで真っ黒になるのを防止
動画が読み込まれる前にプレビュー画像を動画の前に配置し、プレビュー画像のクリックでプレビュー画像を非表示すると同時に動画再生するようjavascriptsを調整
・動画再生後、案内画像クリックでyoutube動画にページ遷移
→先のスクリプトがプレビュー画像のクリックではなく画面のクリックで発火する(修正できなかった)ため、動画再生後、location.hrefでurl遷移するように調整した

と、一応は解決したのがこちら


今後、オブジェクトごとのクリックについて研究してみたい


SK11のバンドソー購入とテーブルの作成

評判のいいSK11のバンドソー(帯鋸)を買ってみました

購入したバンドソーSWB-300W

評判どおり音が静かでドリフト減少もほぼありません
何より、厚板を縦引きすることもできます
安全性も高いようです

バンドソー専用のテーブルも作ってみました
材料は、マルトクセンターでパイン材を購入しました
ジャストカットしてもらい、ポケットホールで組み立てました

しっかりしたものが作成できました

下段は、集塵機ボックスにしています 集塵機を囲っているため、集塵機の騒音がかなり低減できました

集塵機が静かになりました
40mmの穴をあけ、ホースとコードを出しています
内部は、余っていた遮音シートを貼っています
テーブル下に引き出しを作りました
箱作りも少し慣れてきました

フレンチクリートをより簡単に

フレンチクリートを作成するための45度カットジグをバージョンアップ!
より安全により効率的にフレンチクリートが作成できるようになった
もちろん、ワンバイ材の縦割りも簡単!!

まずは、丸鋸ベースに固定用2つの穴開け
穴は、ネジを切ればいいのだろうが簡単にビス留め

電動ドライバで簡単に開けることができました

手前側はダブテイルクランプで固定
奥側は、平行ガイドで材料を挟み込む
丸ノコを安定(押さえ込む)のに力は必要とせず、不安が少ない

簡単かつほぼ無料で縦切断ができます

ダブテールクランプ用溝を掘る

先日購入したダブテールクランプを使うために天板に専用のアリ溝を掘った
今までは通常のアリ溝ビット利用していたが、割れや下ボリと誤差が出るのを防止し、圧着を高めるため、途中から高価だが専用のビットを購入してみた
確かに、正確に溝を掘ることができる
値段程のものだな

一部失敗もあるがおおかた満足


ただ、シナ合板の場合、やはり割れが出やすいようだ
メーカーの推奨は、MDF材となっているので将来はそちらを試してみたい

小物入れを作成

パネル構造の勉強を兼ねて、youtubeで紹介されていた小物入れを作ってみた
パネル構造ということで木工ボンドで簡単に作成できるが、枠組みを適当に配置していたが、間違いだった

ツライチで配置すべきだった
パネル構造で頑丈なことは間違いない
綺麗とは言えないが何とか完成