見出し画像

unityroomでもARゲームは作れる!


はじめに

こちらの記事はUnityゲーム開発者ギルド Advent Calendar 2023の16日目の記事です。

今回はUnity1Weekで制作した「K-AR-AKURI」を元にunityroomでARゲームを作る方法について解説していきたいと思います。

K-AR-AKURIについて

「K-AR-AKURI」は2023年6月に開催されたUnity1Week「ふる」で制作したPCとスマートフォンを組み合わせて遊ぶWebAR脱出ゲームです。

モデリングをfujitoさんらぷたんさんに手伝っていただき、全体的な実装を私が担当しました。

fujitoさんに作ってもらった和室
らぷたんさんに作ってもらったテレビ
らぷたんさんに作ってもらった階段箪笥
他にもいろいろお二人に作ってもらいました

ゲームを開始すると急に和室に閉じ込められているのでなんとかして脱出を目指します。
脱出ゲームあるあるの謎を解くと開く引き出しや隠し扉があるので、プレイヤーは謎を解いていく必要があるのですが、謎のヒントとなるオブジェクトが一部汚れていたり、古びていたりしており、そのままだと謎を解くことはほぼ不可能です。

ヒントがヒントになっていない!このままではクソゲーである

しかし、ここでプレイヤーの特殊能力が役立ちます。
なんとこのゲーム内だけプレイヤーは「過去を見る能力」を使うことができます。ゲーム内でスマートフォンで能力を起動するマーク(QRコード)を見つけ、能力を起動すると・・・

風化する前のマークが見られる!(ネタバレ防止のため数字をぼかしています)

このようにPCとスマートフォンを組み合わせて謎を解いていく新感覚WebAR脱出ゲームとなっております。

当時(2023/6)自分が調べた限り、unityroomにはARゲームが存在せずこれが初めてのARゲームとなったようです。
Unity1Weekの結果としては総合ランキング入りはしませんでしたが、斬新さランキング16位となりました。

斬新さランキング16位ランクイン
unityroom内のARゲームを半年以上死守しています(なお合計件数)

unityroomを飛び越えて、バーチャルマーケット2023リアルinアキバのパラリアルクリエイターエリアで試遊展示もしていました。
操作性に若干難がある個所も見つけたのですがおおむね好評の評価をいただきました。

K-AR-AKURIのAR実装方法

ここからはK-AR-AKURIのAR部分をどのように実装していったかを解説していきたいと思います。

K-AR-AKURIの構成図

K-AR-AKURIですが、unityroomのゲーム部分とAR部分を実装するために2つのUnityプロジェクトを作成しています。
全体像は下記図の通りです。

ZapWorksとは?

ここで急に現れたZapWorksとは何者でしょうか?

ZapWorksはネットワーク環境とブラウザがあればアプリをインストールしなくてもAR表現を行うことができるWebARサービスです。
Unityでの開発用にSDKが公開されており、カメラに特定の画像が映った際に紐づいた3Dコンテンツを表示するAR表現を簡単に実現することができます。

せっかくなので読者の皆様にも体験していただきましょう。

下記画像の左のQRコードのURLに遷移し、カメラの許可を行うとAR用のカメラが起動します。
その後右のQRコードを読み込んでください。
そうすると踊り狂う私の姿がモニター上に見られると思います。

私は上記ARを名刺に印刷してAR名刺にしています。
XR系のイベントだとアバター登壇することも多いので、名刺を渡した方にアバターの姿も覚えてもらった方が後々便利だったりします。

上記のようなARを実現できるZapWorksですが、個人かつ非営利の利用の場合は5プロジェクトまでは無料で利用することができます。
(無料プロジェクトの場合、アプリ起動時にZapWorksのロゴが表示されます。)

アプリ起動時に表示されるZapWorksのロゴ

AR処理のゲームへの実装方法

ここからは実際にUnityプロジェクトを開いてどのような実装を行ったか見てみましょう。

上記はunityroomにアップロードしているゲーム本体のUnityプロジェクトになります。
こちらにはAR機能はなく、普通に脱出ゲームを遊べるようになっています。こちらの脱出ゲームの進行中にARカメラ用のQRコードを表示する画面や汚れていたり古びている謎のヒントの画像を表示するようにします。

ARカメラ用のQRコード
汚れているマーク AR側のプロジェクトにはマーク部分の画像を検出画像として登録する


下記はZapWorksにアップロードしているAR機能を持つUnityプロジェクトになります。

ZapWorksのSDKを使って、ゲーム側のUnityプロジェクトの古びている謎のヒントの画像が表示されたら、紐づいた過去の画像を表示するようにしています。

Zapper Image Trainerで検出する画像を登録する
Targetで登録した画像を指定、指定した画像をカメラが検出するとOn Seenイベントが発生する

また過去を見る能力であることを強調するためにセピアな画面になるようポストプロセスの設定を行っています。


AR機能を持つUnityプロジェクトをWebGLをターゲットにビルド、生成された資源をZipに圧縮しZapWorksにアップロードすると、ARアプリを起動するためのQRコードが発行されます。
このQRコードをゲーム本体のUnityプロジェクトに取り込み、表示するようにすればゲーム中にユーザーがARを起動できるようになります。

ZapWprksで発行されたQRコード

まとめ

以上、K-AR-AKURIの紹介とunityroomでARゲームを作る方法についての説明でした。
上記方法だとAR側のインタラクションをゲームに反映することはできないのですが、ゲームの進行に合わせて細かにAR表現を作ることでモニターを飛び越えた新しいゲーム表現も可能なのではないかと考えています。

次回unity1Weekが2023/12/18から開催ということなので、もしよければunity1WeekでARゲーム制作に挑戦してみませんか?

unityroomに誰も作ったことがないようなARゲームが登録されることを楽しみしています!

ここまで読んでいただきありがとうございました。







この記事が気に入ったらサポートをしてみませんか?