任天堂VRKitでARゲームを作る!【5minARゲーム開発】
◇どんな記事?
・任天堂Switchを段ボールであれやこれやするNintendo Laboとその派生商品であるVRKitを基礎としてARゲームを作るよ
・プログラミングスキルは必要ないので小学生から作ることができるよ
・侵襲的な改造, 不可逆的な改造はしないよ
・ARコンテンツに多くの人が触れて興味を持ってくれることを望んでいるよ
0. はじめに
任天堂VRKitは任天堂Switchの専用コントローラーであるJoy-conを用いて様々なToy-Conを製作し, ハードウェアに縛られない新しい遊びを生み出すことのできるソフト「Nintendo Labo」から生まれました.
「つくる!あそぶ!わかる!」をテーマとして, 自分だけのものづくりを体験させることができるNintendo Laboはまさに世代を超えて夢中になれる最高のおもちゃだと思います.
https://www.nintendo.co.jp/labo/whats/index.html
さて, HMDとしてのAR技術はVR技術とよく似ています. 両者ともその根本は両眼視差を用いたNear-Eye-Displayです. 従ってVR体験とその表示装置を製作する事ができるVRKitがあればこれをAR体験可能なものに改造することは難しくありません. これまで(筆者の観測範囲内で)そのような作例がなかったのはひとえにARへ興味を持つ層とVRKitを持つ層が乖離していたことが原因だと考えられます. ここで両者をつなげることができるならばお互いに新しい発想を取り入れる絶好の機会となるでしょう!
0.3 用意するもの
任天堂Switch
0.5 VRKitの象Toy-Conを組み立てる
今回AR化改造を施す素体としては6DoFコントローラーを備えるToy-Conである象Toy-Conが最適であるといえるでしょう. 片手のみであれ6DoFのコンテンツは体験の質を向上させられるからです. 単にAR化を行うだけであればVRKit自体も不要です.
Toy-Con自体の組み立てに関してはこれ以上ないほど素晴らしい解説が公式でなされているため割愛させていただきます.
完成した象Toy-Conは再帰性反射材のマーカとIMUを用いた6DoFトラッキングが可能です
1.0 ARToy-Conを準備する
VRKitをAR化するために必要な手順は実質的にあと一つです. ARToy-Conとでも呼ぶべき部品を製作, または購入しましょう!
◇原理と構造
先ほど述べた通り, HMDとしてのVRとARは現状よく似ています. VRではレンズのゆがみ収差を樽型変形により修正して小さな画面を拡大し, 視野角と焦点距離を稼ぎます. 今回用いる単純な光学系ではさらにハーフミラーを用いることでCGを現実と重畳させます. ハーフミラーは一般的な鏡と異なり金属皮膜を薄くするなどして反射率と透過率を50:50とした光学部品です. 詳細についてここでは触れませんが, 輝度の関係からハーフミラーは「黒」を反射しない(ように見える)ためこのような重畳が可能になります.
基本的な構造は下図のようになります.
自作する場合は「このnote(未筆)」を参照してください. DAISOにあるものだけで製作することができます.
購入する場合は何種類か同様の製品がありますので適宜購入してください
今回は「だんグラ」を用いました. 鮮明な映像を見ることができます.
準備したARToy-ConをSwitchを挟み込むように合体させることで象Toy-ConをAR化するハードウェア的な準備は終了です. この時再帰性反射材のマーカを隠さないように注意してください.
2.0 ARゲームを作成する
ここまででハードウェアとしてのAR化は終了しました. 次はソフトウェア部分の整備です. あらかじめVRKitに収録されている適当な象Toy-Conのサンプルを書き換えましょう.
全体のワールド設定から
背景→くらやみ(背景を透過させる)
世界の形→なし(存在しない壁を作らない)
に変更します. これだけです!簡単!
3.0 ARゲームで遊ぶ
ハードウェアの部分でいくつか面倒な部分はありましたが, 基本的には以上でリッチなAR体験が可能になります. 象Toy-Conに収録されているサンプルでは3Dシューティングゲームや空中での積み木などをあそぶことができますし, もちろんその他のゲームを自身で製作する事も可能です. 頭のトラッキングがジャイロのみの3DoFなのでCGに近付くことはできませんが, コントローラで直観的に引き寄せることは容易です. ARがもっと普及した未来にはどんなことが可能になり, どんな体験ができるのか, 是非とも覗いてみてください!
自分の部屋に攻めてきた敵を打ち落とすのは無茶苦茶楽しいですよ!
初めてのnoteで至らない部分ばかりだったと思いますが最後まで読んでくださりありがとうございました!
質問やご指摘などあれば筆者のTwitterに気軽にDMしてください!
@troll01234
この記事が気に入ったらサポートをしてみませんか?