■ [AR][ARToolKit]ARToolKitを試してみた(1)
USBカメラがあれば手軽に使えるようなので試してみた。プリンタも必要かと思ったけど、手書きで描いたマーカーでもカメラを通して登録することで認識できるようなので、模様を描いてマジックで塗りつぶし、紙を重ねて型を取りながら量産してみた。枠線さえしっかり描けていれば、後は意外と適当に描いてもそれなりに認識してくれるようだ。
プログラム的に面倒な部分のほとんどはARToolKitがやってくれるため、実際にコードを書くのはほぼモデル表示部分のみで済むのでとても簡単。むしろモデルデータやモーションの準備のほうが面倒なくらい。コードを書くよりもそちらの方にずっと時間がかかってしまった。
とりあえず適当な移動モーションを作って机の上を歩き回れるようにしてみた。カメラを固定して机の上を歩かせていると、昔の3Dプリレンダ・固定背景のゲームを遊んでいるような感覚になってくる。初代PSの頃にはZバッファが使えなかったので、プリレンダ画像の背景の上を歩くとちょうどこんな感じだった。
楽しいので意味もなくそこらじゅうを歩き回らせ続けてしまう。段差を超えるときには一旦マーカーの紙の上に乗せてから直接手で運ぶ。背景が自分の部屋の机の上なので奇妙な現実感があり、ずっと画面の方を眺め続けてると、実際にそこに動くモデルが存在してるかのような錯覚に陥ってくる。シースルー型のHMDを使って肉眼で見たものに3D映像を合成できれば、錯覚でなく本当にそう感じられるようになるかもしれない。
■ [AR][ARToolKit]ARToolKitを試してみた(2)
ラジコン風に車を走らせられるようにしてみた。中央の赤い車が合成された3Dモデル。ちょうど右側にある黄色い BIT CHAR-G と同じくらいのサイズで、小さいけど一応ちゃんとタイヤも動く。狭い机の上のスペースだと車庫入れや縦列駐車の練習をするくらいしかできないけれど、これはこれで結構楽しい。
昔作った物理計算でそれっぽく動いてひっくり返ることもできる車を移植して、机の上の段差や障害物と同じ形の3Dの当たり判定モデルを作ってリアルと融合、みたいなことをやろうかと思ったが、古いソースをOpenGLに移植するのが意外と手間がかかりそうだったのでとりあえず今回はこの辺で妥協。
ティッシュ箱とか適当に作ったジャンプ台とかにマーカーを貼ったオブジェクトの実空間上の位置をカメラで読み取らせて、3D空間にその物体と同じ形の当たり判定をおけば、リアルに配置した障害物でコースエディットした中を走らせることもできるはず。障害物の形状モデルをZバッファにのみ書き込むようにすれば、実写部分の奥に3Dモデルが行ってしまった時の映像の破綻も避けられる。
たくさん並べれば殺風景な机の上も少しはにぎやかな感じになる。カメラの向きを目線方向にあわせてからモニタに大きめに映像を画面を表示することで、ちょうど視界が覆われてなんとなく仮想現実っぽくなる。モニタの外に視線を移したときに本物の机の上には何も置かれてないのに気づいて違和感が感じられるくらいには。