概要
この記事はWebARでVroidを出現させてみるチュートリアルです。
Vroidとは
Vroidとはpixivが2018年7月にリリースしたVroid Studioで作成されたVRMファイル形式の3Dモデルのことです。
モデリングの知識がなくても簡単に可愛いキャラクターを作成できます。
Vroid Hubでは、有志が作成したモデルがアップロードされています。
WebARとは
WebARとは、ブラウザ上でAR(拡張現実)を利用できるようにした技術のことです。
アプリの場合はユーザが使い始めるためにアプリをダウンロードしなければなりませんが、ブラウザ上で動くWebアプリであれば、手軽にVRを楽しむことができます。
今回はA-FrameというフレームワークとAR.jsというライブラリを使用して作成していきます。
手順
WebARの手順は、以下の記事を参考にしました。
1. 3Dモデルを用意する
今回はVroid Hubからこちらのモデルを利用させていただきます。
「このモデルを利用する」ボタンからダウンロードするとVRM形式ファイルがダウンロードされます。
このファイルを公式で推奨されているglTF形式へ変換します。
VRM形式はglTFをベースにしたフォーマットであるため、
ファイルの拡張子を.glb
または.gltf
へ書き換えるだけで変換できます。(便利!)
2. マーカーを用意する
AR.js Marker Trainingで、自作のARマーカーを作成します。
枠の太さを変更するとコード上で指定する必要が出てくるので、ここでは枠の太さは変更せずに作成します。
**「DOWNLOAD MARKER」と「DOWNLOAD IMAGE」**のボタンを押して、両方ダウンロードしてください。
.patt
と.png
形式のファイルが出力されます。
補足
このように、QRコードでWebアプリのURLへ遷移させ、ついでにそれをマーカにしてあげると便利です。
手順5でサーバを用意したら、QR Code Generatorを利用して自作マーカーの中身をQRコードにしてみるのも良いと思います。
ちなみに、こんな可愛いQRコードが作れるライブラリもあるようです。
artistic QR Code in Python (Animated GIF qr code)
また、自作でなくプリセットのマーカーで試すことも可能なので、その場合は上記リンクの他の記事をご参考ください。
3. ファイルを作成&配置する
任意のディレクトリにプロジェクトのフォルダを作成します。
そこに、index.html
というファイルを作成しましょう。
また、asset
というフォルダを作成し、Vroidのファイルとマーカーのファイルを配置します。
4. コードを書く
先ほど作成したindex.html
に、以下のコードを追加します。
※A-FrameとAR.jsのバージョンは新しいものにしてください。古いものはコードが動作しない場合があります。バージョンはscriptタグの0.8.2などの数字のことです。
<!DOCTYPE html>
<head>
<!-- A-Frame を読み込む -->
<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
<!-- AR.js を読み込む -->
<script src="https://cdn.rawgit.com/jeromeetienne/AR.js/1.6.2/aframe/build/aframe-ar.js"></script>
</head>
<body style='margin: 0; overflow: hidden;'>
<!-- シーンを追加 -->
<a-scene embedded arjs="debugUIEnabled:false;">
<!-- 3DCGモデルの読み込み -->
<a-assets>
<a-asset-item id="vroid" src="asset/vroid.glb"></a-asset-item>
</a-assets>
<!-- 自作マーカーを追加 -->
<a-marker type='pattern' url='asset/pattern-qr-code.patt'>
<!-- 3DCGモデルの呼び出し -->
<a-gltf-model src="#vroid"></a-gltf-model>
</a-marker>
<!-- カメラを追加 -->
<a-entity camera></a-entity>
</a-scene>
</body>
</html>
5. サーバを用意する
自分のPC(localhost)で開発しても良いのですが、携帯でWebアプリの動作確認ができなかったり、マーカを毎回紙などに印刷しないといけなかったりして面倒です。
サーバとして無料のホスティングサービスを利用しましょう。
今回はNetrifyを使用しました。
アカウントを作成して、ファイルをデプロイします。
NetrifyはGitと連携できます。毎回ファイルをアップロードしてデプロイすることも可能ですが、Gitを連携させるとコマンドでpushするだけでデプロイしてくれるので便利です。
このURLがWebアプリのURLになります。
起動したカメラにマーカーを映すと、Vroidがマーカの上に表示されます。
最後に
業務でWebARを扱い始めたのですが、以前から興味を持っていたVroidを表示させたいなーと思ってやってみたら意外と簡単にできたのでよかったです。ぜひお試しください。
今後はアニメーションに挑戦してみたいと思います。
記事に間違いや不明な点があれば遠慮なくご指摘ください。