トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

iOSでWebAR作りたい【Variant Launch】

Variant Launch

WebXRはiPhoneのsafariでは動かない。

FAQ - xr

代わりとしてVariant Launchを使うといいよと書いてた。

launch.variant3d.com

どういうものかよくわからなかったが、サンプルを試したところappclipというアプリをすごく簡易的に使えるようにするAppleの機能を使って、WebXRのページにアクセスしたときにそのappclipのアプリを通じて実行する感じっぽい。

QRコードからアクセスするとこの画面に出てAppClipを起動する。

safari経由?

自分のプロジェクトで使ってQRコードから遷移したときはsafari経由しなかった。

するとAppClipなのでインストールとかせずにすぐWebXRのページに行く。

そしてhitTestなど動く!

ちゃんとVariant Launch上で動いているのがわかる。(app clipのアプリは点線が出るんだ)



この記事でもやったが、mozilaのWebXR Viewerというブラウザアプリ上だとiOSでも動くのでそれのAppClip版みたいな感じだ~

bibinbaleo.hatenablog.com

 

ここにもVariantLaunchサンプルがいくつかあった。

github.com

使う

アカウント作るとすぐ使えた。無料だと月5000回までLaunchできる。

使うまで3ステップで詰まらなければ簡単

①WebXRを動かしている自分のサイトを登録してドメイン認証

②同じく自分のサイトのURLを貼ってVariant Launchで起動する用のリンクを発行する。

③最後に自分のWebXRに専用のscriptタグを貼る

<script src="https://launchar.app/sdk/v1?key=XXXXX&redirect=true"></script>

キーはこのプロジェクトに固有のものであり、承認されたドメインでのみ公開的に使用できます。

エンジン コードの実行時に WebXR が利用できるように、HTML ヘッダーの上部にタグを配置します。

Next.jsのAppRouterでHeadにScriptタグを貼るには

3つめのScriptタグをビルド後のindex.htmlのheadに入るように書くのに詰まった。

素直にlayout.tsxのheadに書いてもビルド後に反映されない。

zenn.dev

結論としては、layout.tsxの中で

import Script from "next/script";

をしてhtmlタグの中に大文字のScriptタグと strategy="beforeInteractive"を書けばいい

        <Script
          strategy="beforeInteractive"
          src="https://launchar.app/sdk/v1?key=XXX&redirect=true"
          async
        ></Script>

github.com

requiredFeaturesにlocal

あとARButtonなどのrequiredFeaturesにはlocalがいる。ないとARモードにならなかった。

ドキュメントにしか書いてない?

launch.variant3d.com

Canvas内の背景色は使わない

あとWebXRViewerの時と同じく<Canvas>内の背景色が設定されるとそれが消えないので使わない。

       {/* <color attach="background" args={["#96CFE8"]} /> */}

bibinbaleo.hatenablog.com

ここまでやってシンプルなWebARのプロジェクトは無事iOSで想定通り動いた!

真っ白でカメラ映像でない(未解決)

ただもう一つの複雑なほうのプロジェクトはARButtonは表示されるけど、ARボタンを押しても背景色が消えずにカメラが映らない・・・

どこだ!!!

launch.variant3d.com

glocal.cssの背景色を色付きに変えたらその色が表示されたから、やっぱりこれが表示されているよな~別の動いたプロジェクトのほうではglobal.cssの背景色は表示されずにカメラ映像出たのだが。

 

transparentにしたら真っ白が表示される

 

ARボタンでdomOverlay: { root: body },を使ってるせいか?でもdomOverlay:消しても背景色表示される。

表示されないときのことは書いてあるけど、ほかのUIは表示されているから関係なさそう。

launch.variant3d.com

 

discordもあったが何を聞けばいいかもわからない。ちなみに100人ぐらいいた。

 

英語で検索しても記事全然出てこないからユーザーあんまりいないかと思ったがdiscord100人いるならそこそこの規模なのかな。

discordの最初の投稿が2023/3だから新しいサービスではありそう。