VOYAGE GROUP エンジニアブログ

voyagegroup_techのブログ
VOYAGE GROUPエンジニアブログです。

2013年07月

最近の拡張現実(ヘッドマウントディスプレイ:Oculus Rift)

最近の拡張現実(ヘッドマウントディスプレイ:Oculus Rift)

(所要時間:約3分半)

拡張現実,お好きですか? お好きな方にもご存知ない方にも,この記事では私(@tamakiii )が個人的に注目している拡張現実技術(AR技術)のひとつとして,KICKSTARTER出身のヘッドマウントディスプレイ "Oculus Rift(Oculus VR)"を紹介します.

image

出典:Virtuix Omni and Oculus Rift come together for literal running and gunning

拡張現実(AR)とは?

拡張現実(AR)とは,

Augmented Realityの略。ありのままに知覚される情報に、
デジタル合成などによって作られた情報を付加し、人間の現実認識を強化する技術のこと。

出典:kotobank.jp

近年の有名どころでは,Google Glassや,スマートフォンアプリの「セカイカメラ」,アニメの「電脳コイル」の世界観がそれに当たります.

ARの重要要素とヘッドマウントディスプレイ

「人間の現実認識を強化する技術」とあるように,いわゆる「リアリティ」が重要な要素ですが,視覚的な没入感を与える機器であるはずのヘッドマウントディスプレイは,ちょっと前まで没入感に欠けるものでした.

単純なヘッドマウントディスプレイの構造は,装着時に目の前に小さなディスプレイが配置されるものです.没入感に欠けるのはこの構造のために,「暗い空間の遠い場所に映画館のように画面が浮かんでるだけ」のように見え,体や頭を動かしても見えるものが変わらず,ただ映されたものを見るだけだったからです.

Oculus Rift

こうしたAR用にヘッドマウントディスプレイを使う上での問題を解決すべく生み出されたのが,"Oculus Rift" でした.

image

出典:egmnow.com

Oculus RiftはもともとKICKSTARTER のプロジェクトとして始まり,初期の目標金額25万ドルをあっと言う間に調達し,最終的に243万ドルを調達,最近になって米スパーク・キャピタル社と米マトリックス・パートナーズ社から,1,600万ドルを調達しています.実はまだ開発者向けの初期版が販売されているだけで,一般向けのデバイスではありませんが,かなり注目されている存在と言えます.

参照:VRヘッドセット「Oculus Rift」、さらに1,600万ドル超を調達 « WIRED.jp

参照:Oculus Rift: Step Into the Game by Oculus — Kickstarter

Oculus Riftの特徴

Oculus Riftの特徴はその高い没入感で,特に下記の2つが特徴です.

  • 両眼視差方式(視差バリア方式ではない/これに似てますね
  • 加速度センサー付き(頭を動かすと画面が追随する)

両眼視差方式は,単純に左右のディスプレイに視点の少しズレた映像をそれぞれ映し出す方式なので,次の動画のように映像を特殊処理するだけでOculus Rift用の立体映像が作れます.

Oculus Rift Movie test

魅力が伝わり難い

"Nintendo 3DS"と同じく,なかなか実機がないと伝わり難い魅力ですが,今まで感じたことのない没入感・リアリティに驚きます.実際に使ってみている人の映像なら,少しは伝わるかもしれません.

Ibex

Oculus Riftは元々ゲーム用に開発されたデバイスですが,映像加工してHDMIDVIなどで接続すれば使えるので,ゲーム以外でもYoutubeにOculus Rift用動画が投稿されたり,Oculus Rift用のアプリケーションが開発されたりしています. 

image

【接続部】出典:www.pcauthority.com.au

特にお勧めのアプリケーションが"Ibex"という仮想デスクトップアプリです.このアプリでは普段使っているPCを仮想空間上で使えます.初体験の用途としてもお勧めです.

image

対応アプリケーション・ゲーム

Oculus Rift対応アプリケーション・ゲームは下記のページにまとめられています. まだ対応することが発表されただけでリリースされていないものもありますが,minecraftや0x10c,Assassins Creed,Call of Duty,Google Mapsなど,有名どころの名がいくつも挙がっています.

RiftEnabled™ – Oculus Rift enabled list of games & demos

開発

Oculus Rift用アプリケーションの開発用にはSDKが用意されており,UnityUnreal Engineを使ってOculus Rift対応ゲームを開発することができます.勿論,C++を使ったネイティブアプリも開発可能な上,JavaScriptを使って対応ソフトを開発することもできます(three.js). ただ,JavaScriptを使ったソフトをいくつか使ってみたところ,処理速度に多少違和感があり,快適とは言い難かったことから,ウェブ特有の何かを作るとき以外は,素直にネイティブアプリを作ることを優先的に選択した方が良さそうです.

所感

私の場合,2012年の12月中頃に注文して,2013年の6月の末ごろに届きました.KICKSTARTERでの応募は2012年の8〜9月だったので遅い組でした.よくKICKSTARTERは予定が遅れると言われますが,それを知っていても6ヶ月はかなりやきもきしました.

頭の動きに対するレスポンスはかなり良く,欲を言えばもう少しという所ですが,ほぼ完璧に近い気がしています.重量もさほどなく,長時間使用しても首や頭はさほど疲れません.

問題は3D酔いで,頭の動きに追従しない,高速で動く動画を見ると高確率で酔います.多少慣れはありますが,ヘッドトラッキングなしで使うのはかなり厳しいかと思います.

また画質については,Ibexを使ったときはあまり気になりませんでしたが,動画やゲームなどの動きのある画を見る際には,画面が狭く感じられたり,画面のドットが見えるのが気になりました.

周囲に持っている人がいなかったので,せっかくだしと社内で体験会を開いてみました.そのときの感想としては

  • バーチャルボーイみたい
  • 画面の中にいるみたい
  • 酔う
  • 人間だめになりそう

といった声が多かったです.私の説明が悪かったのかもしれないですが,割と「これで何ができるのか」が伝わっていなかったような気がしています.

(実は,本来はこんな真面目な紹介記事ではなく,ヘッドマウントディスプレイを人をダメにするソファと共に使ったらどれだけ人がダメになるか,という記事を書こうとしてましたが,金銭的理由から断念しました.)

最後に

2〜3年ほど前は拡張現実研究の実用化が盛んでしたが,ここ1〜2年ほどあまりそういった情報を聞かなくなり,個人的にも拡張現実のことは忘れかけていました.しかしOculus Riftを使ってみて,まだまだ拡張現実の世界には先があると期待を持ちました.それこそ,ロボット開発やバイオ産業技術などと並んだ基幹技術になる予感さえしています.

(笑)をつけてネタにされ続けてきたSecond Lifeが,もう一花咲かせる日も遠くないかもしれません.

Oculus Riftはコンシューマ版の開発を開始・発表しており(1080p対応,フロントカメラ付き!),今後も目が離せない存在です.これを期に拡張現実の世界を覗き込んでみてはいかがでしょうか?

ssh-agent は、生き続けるっ!!

VOYAGE BB 海江田です。


夏が近づいて来ましたね。


夏といえば、やっぱり海に行きたいです。 
今年はボディーボードに挑戦する!と冬に宣言していました。
それから、一度もボディーボードに乗らずに今日を迎えています。

我らが海の家 Beach House AJITO は、7/1 から片瀬海岸で営業中です。
BHA20130702




















 

コンセントはあるみたいですが、使えるかどうかは店員さんに聞いてみてください。
Beach House AJITO の初代店長の宮野さんのオススメメニューは「盛岡冷麺」です。
私は、ボディーボードを借りて楽しみたいと思います♪ 

ぜひぜひお試しあれ!
 



さて IP Address の制限があるなど、ある程度セキュリティが担保された環境下などで ssh のパスワードを毎回入力するのは面倒です。


そこで、ssh-agent をログインセッションの始めなどに起動させて、その後のセッションは ssh-agent のクライアントとして起動させるようにしています。

ssh-agent は環境変数を使うことによって、他のマシンに ssh を使ってログインするときに自動検出し、認証をしてくれます。


最初、ssh-agent は鍵を全く持たない状態で起動されます。

認証キーを追加するには ssh-add を使います。ssh-add に引数を渡さない場合、 .ssh/id_rsa などのファイルを追加します。認証エージェントには、複数の鍵を格納することができます。認証エージェントは、これらの鍵を自動的に使用します。


私の場合は .zshrc に次のニ行を記載しています。

eval `ssh-agent`

ssh-add

このようにすることで初回は入力を求められますが、その後パスフレーズを入力する必要はありません。


同時に ssh でログインする場合にパスワードを入力しないようにするととても楽になります。次のようにします。

( リモート側 )
$ mv ${HOME}/.ssh/
id_rsa.pub  ${HOME}/.ssh/authorized_keys

$ chmod 400 ${HOME}/.ssh/authorized_keys 


ssh-agent を起動させている時に exit しても、ssh-agent が終了しない場合があります。その場合は zombie になって、メモリを専有し続けます。そして最後には、メモリ使用量が基準値を超えたというアラートメールで知ることになります。
そうなったら、心のなかでジャンピング土下座です。


対応方法は .zlogout に ssh-agent -k を仕込んだり、kill コマンドを仕込んだりすれば大丈夫です。
私の場合は、zombie を見つけ出して、kill するコマンドを .zlogout に仕込んでいます。 

eval `ps ax | grep 'ssh-agent' | grep -v grep | awk '{print $4}' | xargs kill 
( $4 については、ps のバージョンによって異なります ) 


最後に、zombie の ssh-agent を kill する前後のメモリ使用量を添付しておきたいと思います。


メモリ使用量の図


本当にすいませんでした m(_ _)m


参考)
http://www.unixuser.org/~euske/doc/openssh/jman/ssh-agent.html

記事検索
QRコード
QRコード