VR環境における簡単な振動ユニットの使い方について

概要

VR環境での視覚、聴覚だけではなく、他の感覚もユーザに呈示すると没入感が高まる事が広く知られています。
たとえばOculusRiftでジェットコースター系のデモをするときに扇風機を使うと怖さが増える等です。
今回僕は乗り物(ロボット)に乗るVRシステムを作成し、その過程で振動ユニットを使いました。体験者からのヒアリングで、結構いい感じだったと言われたので使い方を少し書きます。

振動ユニットとは

太鼓やバスドラム等は生音で聴くと体が振動します。また2.1ch環境のサブウーファーもブルブル震えます。今回話す振動ユニットと言うのは大雑把に言うと可聴音は出ないサブウーファーを椅子などに張り付けて、低音が流れた時に振動させる。と言う物です。

基本原理はスピーカーと同じなので、雑に言うとワット数が高いほどパワーがあります。 今回は上海問屋の振動ユニットを使いましたが、他の類似製品でも基本的には同じです。

【上海問屋】通販サイト | 【お一人様2点まで】 スピーカーでは再現しきれない重低音の臨場感を振動で再現 50Wハイパワー振動ユニット ボディソニック トランスデューサ ホームシアター 上海問屋 DN-82305 [★]

(うーん、実はこの製品、安価でパワーあってイチオシだったのですが、完売してしまいました…OEM元は新しい型を売ってるので、また上海問屋さんで扱ってほしい…)

接続設定

普通は例えば5.1ch環境のサブウーファーに追加して振動ユニットを付けたりする訳ですが、VR環境の為に多少配線を変えます。

  • 体験者はヘッドホンで音を聞く(適切な音量)
  • 振動ユニットは、なるべく大きく振動させる

と言うのが目指すところになります。 適当にPCの根本から分岐させて

1.ヘッドホン側は音量を小さく出来る様に
2.振動ユニット側は音量を大きく出来る様に

しています。以下に雑な配線例を図示します

f:id:izm_11:20141013214856p:plain

展示で使う際のノウハウ

  • 例示したLepai LP-168HAはサブウーファーのカットオフ周波数フィルタが効かないので、人の話し声とかでもブルブル震えてしまう。もっと良い選択肢があるはず。
  • 椅子は座面のクッション性が良いと、振動を吸収してしまう。今回は小学校の椅子と言う、座面が木の板で、直接振動が届くような物を使っています。
  • 背もたれより座面に設置する方が効果が高い。
  • 家でデバッグする時、階下の住人に怒られないようにする。

大事なこと

振動ユニットは、乗り物系コンテンツなら、ポン付けノンコーディングで「没入感を足す」(正確には「ただの椅子に座ってる感覚を打ち消す」)という効果があります。

例えばOculusのジェットコースターデモの風を足す時、「速度に応じた風量の変化がない」「風量が現実より少ない小さな扇風機」であっても、結構効果がありました。つまりこの手の視覚や聴覚以外の感覚は多少いい加減でも結構ちゃんと効果があります(そこから完全再現するまでは、凄く大変ですが)

どんどん変なデバイスとか使って遊んでいきましょう!

HMD用の実写全周囲映像のストーリー仕立てにおける視線誘導等のノウハウ例

概要

先日、OculusRift向けのストーリー仕立ての全周囲映像を体験する機会がありました。

「OS☆U」があなただけに超絶接近!? http://vr-360.net/osu/

f:id:izm_11:20141010003147p:plain

これは多人数アイドルグループが自分に向かって自己紹介というか、お喋りを小芝居をしながら行う、というもので、言うならば映像のバイノーラル録音みたいなものです。 この手の実写360度映像は、少し前だとプロ用機材で3桁万円から、という感じだったのが最近GoProをサイコロ状に6台マウントする( http://freedom360.us/ )、と言う価格破壊ソリューションが登場しました。また、タイミング良くOculusRiftと言う没入感が高く安価なHMDも出たことで、今年に入って結構色々な人が作っています。

例えばバイクや、サーフィンなど、普段一人称視点では中々体験することが無い事を、(首を振ったら対応した絵が出てくる)一人称視点で見ることが出来るのは、想像以上に楽しいものです。具体的には、この記事を書いている時も、「見る」と言う言葉より「体験する」と言う言葉を使いたくなる ような感じです。

そして、この手の360度実写映像コンテンツを作る上では、その機材特性上、注意すべき点が色々あります。 今回僕が体験した「OS☆U」があなただけに超絶接近!?というコンテンツは、相当良く作られていて、実に良かったので感想と言うか技術的な凄い!と言う点を書いておこうと思います。もしこれから体験する方がいたら、若干ネタバレになってしまうかもしれないですが、ご容赦ください。

多人数が登場する実写全周囲コンテンツで、ちゃんと作られてるものは、現時点ではあまり多くないので、非常に楽しい経験でした。

直近では10/11-10/12の豊橋ぽぷかる歩行者天国 ( http://npo-honokuni.jp/popcal/ ) で体験できるようなので、お近くの人は是非!とお勧めします。以下ぐだぐだと感想。

注視点の設計

人間の視野角は、ざっと水平160度くらいです。そのうち、注視点というか注目(脳みそのピントが合う)出来る視野角は広めに見積もって45度くらいしかありません。
このため360度映像を用意しても、常に200度分以上の映像を「見ることが出来ない」と言う問題があります。なので何も考えずにコンテンツを作ってしまうと、体験者が大事なシーンを見逃してしまう事が起こります。
例えばバイクに乗る、サーフィンをする、と言う様なコンテンツでは、普通に作ると進行方向に注目が行くようになっています。
一方でカメラ視点が動かない(つまり、教室の中の定点シーンみたいなもの)場合は、体験者に「出来ればどこを見て欲しいか」のサインを送ってやる必要があります。極端な事を言うと、もし体験者が壁の時計をずっと見ていたら、視界は時計だけ、音だけ話し声が聞こえる、みたいな感じになる訳です。

自己紹介シーンの注視点設計

このコンテンツでは冒頭から1分程度の間は、常に喋っているのは一人(と言うか、一方向)だけになっています。また、一人が話し終わった時に、自然な演技でもって次に喋る人の方を向かせる演出が入っています(例えば、喋り終わったタイミングで次の人の位置を指を指し示す、あるいは喋ってた人を注視していたら、視界の端くらいに見える所で派手なアクションや動きを起こす等)
これによって、初めて見る人にとっては自然な形で「右見て、正面見て、左見て」のような、首振りを伴う全周囲映像体験の醍醐味を最初の一分で教えることが出来ています。
ストーリー上の話をすると、多数のアイドルに「振り回されている感じ」を受けました。なかなか普段体験できることではないので、印象に残ります。

撮影場所

また、撮影場所の妙味もあります。部屋の隅で撮影すると、例えば部屋の隅の近くにある四角い窓枠などに全周囲映像の広角歪みが顕在化するため違和感が起きます。
なので部屋の隅からは離れた場所にカメラが置かれています。また、真後ろ90度分はちょっとしたお立ち台と言うかステージになっていて、映像が始まった瞬間に「ああ、この後ろはクライマックスとか大切な場面で使う為のステージだな」「ということは、しばらくはこの真後ろで何かが起きてて見逃す心配はないので、残り270度分を気にしていれば良いな」と舞台装置から理解できます。
全周囲映像を一回限りで見る時に一番体験者が気にするのが「大切な場面の見落とし」なので、その危険性が少ない事をさりげなく呈示する、良い撮影場所でした。

スティッチング位置周辺を避けた立ち位置

GoPro等の広角カメラは、カメラの中央は解像感が高いのですが、周辺部は荒い絵になってしまいます。また、周辺部は隣のカメラの絵との繋ぎあわせを行うので、繋ぎ目付近が変な絵になってしまう危険性も有ります。 カメラ自体が動き回る場合は、こういった問題は諦めてしまうか、複数テイクを取って良いところだけをうまく使うしかないですが、今回は定点カメラなので、アイドルの人が立つ場所はこういったカメラの繋ぎ目を避けているようでした。これは事前に立ち入り禁止場所をうまく説明していたのだろうと予想します。
この、カメラの繋ぎ目を避けた立ち位置には副次的な効果もあって、全周囲映像なので見たい方向にちゃんと首を振って見る、と言う動作を行わせる為にも効果を発揮しています。
このあたりを狙ってやっているのだとすれば、コンテ書いたり現場で指揮を取った人は、相当に分かっている人です。

後半の注視点設計

前半のシーンは注視点が一本道になるように設計されていましたが、後半は自分を取り囲むような感じでOSUの人が配置されるシーンがありました。 これは、誰に注目するか(推しメン)と言うのを体験者が「選ぶ」みたいな感じになるので、一本道の動画コンテンツにも関わらず、インタラクションを感じられるような仕組み。
残念ながら僕は推しに相当する人はいなかったので、グルグル見回していました。
コンテンツとして「アイドルに振り回される→アイドルを主体的に選ぶ」みたいな感じで前半と後半の構成が対になっていることにも注目です。 技術的には自然な形で「全周囲映像のチュートリアル→実践」になっている事が印象に残っています。

嗅覚

オペレータの方が適切な香り(いいにおいだった!!!)の香水を含ませたハンカチを手動で動かして、嗅覚呈示を行っていました。原始的な方法ですが、嗅覚は何もないのと、少しでもそれっぽい匂いがするのは全然没入感が違うので、うまい方法だなあと思います。 シーン転換が頻繁にあると、呈示する匂いのリフレッシュ(一度無臭にして、別の匂いを呈示するの、結構大変なシステム)などが問題になるのですが、今回のコンテンツは場面転換が無いこともあって、導入しやすそうでした。

その他

  • GoPro6台のスティッチング、自動だけだと辛い場所出てくるので場合によっては手動で修正してるようです。
  • 再生するPC、かなり再生負荷が高そうです。
  • ステレオ視ではないですが、意外と立体感を感じます。
  • 登場人物が一人のようですが、こちらのKAYACさんの同種の取り組みも気になります

渋谷でオキュラスを使って女子高生とデートする時のコツとは?【INTERVIEW】|ニュース|面白法人カヤック

クレジットとか

株式会社ジャミン( @_horinouchi )
http://vr-360.net/osu/
関係者の方々、ありがとうございました!

Unity本いっぱい出てるので、お勧め本を難易度別に並べてみる

世の中にUnity情報が山ほどあって、素晴らしいです。
分からない事があっても、ググるだけでピンポイントなブログの記事やstack overflowが出てきたりします。素晴らしい。
ただ、技術に対する体系だった学習に技術書を読むのは、とても良いと思うので、読んだことある本を難しさ順に並べてみます。
ここに出ていない本は読んでいないか、読んでオススメしかねる本だったので、お勧め本があれば教えてください。

2016年版を書きました izm-11.hatenablog.com

Unityって何?レベル

まずは本を買うより先にドットインストールのUnity講座を見ましょう。
お金を払って本を買うのはその後で良いのです。

http://dotinstall.com/lessons/basic_unity

個人的には、最初から本を買って「お金払ったんだし、やるか…」と言う気持ちにするメソッドを良く使うのですが、Unityの場合GUIの操作が結構色々あるので、取っ付きの意味でも、動画形式はお勧めです。
余談ですが、ドットインストールと後述のひよこ本育ちのUnity使いはUnityのレイアウトがデフォルトが多くて、うさぎのバンナム本育ちのUnity使いは2by3レイアウトが多い印象あります。

ここに無料と有料の壁

とりあえず何かゲーム作ってみようかなレベル

Unity4入門 最新開発環境による簡単3Dゲーム制作

Unity4入門 最新開発環境による簡単3Dゲーム制作

一冊目として大人気なのがひよこ本。これは、プログラミング自体が初めて、みたいな人にも勧めやすいです。
ただ、ひよこ本はスクリプトがUnityScriptで書かれているので、プログラミングしたことがある、と言う方はC#で書かれた別の初心者向けの本を読むのも良いと思います。(この条件に当てはまる本をご存知の方、教えてください!→良い本があったので追記)

見てわかるUnityゲーム制作超入門

これもちゃんと書かれている本なので、ひよこ本と同じくらいオススメなんですが、残念ながらこれもUnityScript…
プログラム、(何の言語でも良いので)勉強したことはあるよ。と言う場合は、ひよこ本よりこちらの方が良いような気はします。

自分はプログラマ気質だ、と言う人向け

見てわかるUnity4 C#超入門

UnityScriptではなく、C#から始める入門向けオススメ本です。
言語の違いを気にするタイプのプログラマ気質の人に刺さると思います。まずインストールの解説の後、キューブや地形やライトの設置より前に C# とは何か、mono develop 操作、足し算引き算の表示、GameObjectとComponentのUnityというシステムの解説などがあって、中々面白い切り口。
最終的な成果物のレベルはひよこ本等と同じですが、「何か訳分からないけど書いて有る通りマウスをポチポチ操作したら出来た!」みたいなのが気持ち悪いプログラマ畑の人にとって、非常に良い参考書になりそうです。

ここにC#とUnityScriptの壁

で、もうちょっとちゃんとしたゲームを一個作ってみたい

ここは選択肢が多いです。ちゃんと複数のアニメーションを遷移する人型の自キャラがいて、敵が居て、3Dで…みたいなアレです。
ここまでは「ああ、Unityね、ちょっと触ったことあるよ」と言う感じで、ここから先は「ゲーム作ったことあるよ」と言う感じでしょうか。
ここからはC#で書かれた本が多く出ているので、UnityScript育ちの人も、このタイミングでC#を覚える事が多いイメージ。
この段階で、本を辿って一本のゲームを完成させるぞ、と言うタイプの本を読むのが、早期習得に便利です。
本屋さんに行って、自分の興味ある分野のゲームを一本作るUnity本を探して買って、頑張って読む。がオススメですが、一応僕のオススメを書きます。

一昔前なら、バンナム本の

Unityではじめるゲームづくり

Unityではじめるゲームづくり (DVD付) (ゲープロシリーズ)

Unityではじめるゲームづくり (DVD付) (ゲープロシリーズ)

が一押しでした。コラムの品質の高さもあって、同時期に出たUnity本より頭一つ抜けていると思います。

ただ、いかんせん少し出版時期が古い(mecanim非対応、そしてこれもUnityScript…)ので、

Unityで作るスマートフォン3Dゲーム開発講座

Unityで作るスマートフォン3Dゲーム開発講座 Unity4対応 (Smart Game Developer)

Unityで作るスマートフォン3Dゲーム開発講座 Unity4対応 (Smart Game Developer)

がお勧めかもしれません。 この本はタイトルにスマフォと銘打っていますが、別にスマホ向けに限らずとも読める、丁寧に手順が書かれている真面目な本です。

少々難易度が上がりますが、

モンハンみたいなゲーム作ってみたい

みたいな人には

Unityゲーム開発 オンライン3Dアクションゲームの作り方

Unityゲーム開発 オンライン3Dアクションゲームの作り方

Unityゲーム開発 オンライン3Dアクションゲームの作り方

がネットワーク対戦も、アセットや有料サービスを使わずに、Unity自前で構築する手段が書かれていて好感が持てます。濃度としてはバンナムうさぎ本の1.5倍速で話が進んで、最後の1/3がネットワーク対応と、2Dゲームの付録と言った感じです。
(p294のタイトル「Unityの"オーティオ"機能を学ぼう」と言う誤字には脱力しますが…でも良い本です!)

ネットやスマフォとかじゃなくて、ゲームの作り方自体をだな…

という人には、最近出た

ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで

ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで

ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで

が、チャラい見た目とは裏腹に、ゲーム制作特有の、「面白さを作る」事に対して類書の中で白眉であると思います。

ここから、個別tipsや、中級向け

あのゲームでやってたあの処理ってUnityではどうやるの?

と言う感じのノウハウ集がそろそろ必要になってきます。いわゆるオライリーのhogehogeクックブックです。

技術サイド

技術特化では、
Unity実践技術大全

Unity実践技術大全 (GAME DEVELOPER BOOKS)

Unity実践技術大全 (GAME DEVELOPER BOOKS)

がお勧めです。何が素晴らしいかと言うと、Tips集的にも十分な品質ですが、日本語で無料アセットを実際使った解説が山ほど(100ページ以上)乗っていて、大急ぎでプロトをでっち上げるときに、この本が手元にあると数時間浮きます。紙の本をペラペラめくるの、Unityのアセットストア検索より大分速いです!
これだけで元が取れます。(まあ、本音を言うとお試しで買いにくい有料アセットの紹介も同じくらいして欲しいところではあります。)

プランナーサイド

対して、こちらはプランナーサイドからの本。
ミニゲームをペライチの企画書から、ゲーム開発している人がどう考えてゲームにして、コードに落とし込むか、と言う思考を追体験出来るのが

ゲームの作り方 Unityで覚える遊びのアルゴリズム

ゲームの作り方 Unityで覚える遊びのアルゴリズム

ゲームの作り方 Unityで覚える遊びのアルゴリズム

です。将棋とか囲碁で言う所の、定石集じゃなくて、「プロ棋士が書いた自戦記」みたいなものです。このゲーム開発者の思考を追う事は、blogとかでは中々出てこない話です。
「Unityを勉強したい」ではなく「自分でゲームを作りたい」人には、強くお勧めします。細部まで一度読み通すと、Tips集的にも、もちろん使えます。

上級向け

最早ここからは、個別に必要な事を調べたり書いたり、と言うのが多くなるので、本ではあまり出てこないです。
とは言え、この段階の一歩手前まで、ステップごとの技術書が「日本語で」揃う、と言うのは、凄い状態です。Unity人気ですねえ…

番外編(ゲームエンジンはチャラいからちょっと…)

C++を学びましょう。 そして以下の順に読んで、完全に理解したなら、Unityが滅んだ後の世界でも、ご飯が食べられそうです。

(すごく易しい) ゲームプログラマになる前に覚えておきたい技術

ゲームプログラマになる前に覚えておきたい技術

ゲームプログラマになる前に覚えておきたい技術

(本物のC++ゲームプログラミング、大変惜しいが絶版) ゲームコーディング・コンプリート 一流になるためのゲームプログラミング

ゲームコーディング・コンプリート 一流になるためのゲームプログラミング (Professional game programming)

ゲームコーディング・コンプリート 一流になるためのゲームプログラミング (Professional game programming)

もう一冊、蛇足ではありますが、
実例で学ぶゲーム3D数学

実例で学ぶゲーム3D数学

実例で学ぶゲーム3D数学

を、お勧めしたいです。高校で習うベクトル、行列演算、大学で習う線形代数が、最高効率のプログラム言語で実装されていく過程を読んで試すと、血肉となって生きます。

この3冊は、僕の人生の方向付けを変えた技術書なので、余談ですが紹介でした。

めかしむ☆(鉄騎コントローラのやつ)の10月末までの展示予定

全て入場無料イベントです。興味がある、お近くの方は「オッやっとるな」とお立ち寄り頂けると嬉しいです。

これを展示する予定です。
鉄騎コントローラを使ってロボットを操縦して戦うOculusコンテンツを作った - izm_11's blog

  • 9/28(日)名古屋 ニコニコ超会議 in 名古屋 http://info.nicovideo.jp/chokaigitour/2014/nagoya.html

  • 10/11-12(土日)大阪 メイカーズバザール大阪

  • 10/26(日)東京 DCExpo (25は開発者会があります)

いわゆる三大都市圏に出させてもらう感じです。前回の展示以降、出展のお声掛けを頂けてうれしいです。開発、頑張ります。

f:id:izm_11:20140926212950p:plain

Unity+OculusRiftコンテンツのパフォーマンスチューニング

概要

そういえばOculus使ったゲームとか作る時に、75FPSを確保するために、まあ色々グニャグニャとチューニングをする過程の情報があまり無い気がするので、メモ代わりに我流の方法を書いておきます。

前提

  • 比較的広いマップを持ち、何もしないとDrawCallは1000以上ある感じのコンテンツ
  • Occlusion Cullingと固定物のstatic化はしている
  • いわゆる、ゲーム用GPUがあって、他のコンテンツで75FPSは出ている環境
  • 毎フレームDebug.Logを呼ぶような恐ろしい無駄は削除済み

作業

1.最初に、パフォーマンスチューニングの余地があるか調べるために、QualityをBeautiful→Good→Fastと切り替えて、FPSとDrawcallがちゃんと増減するか調べる。

2.Unity Profilerを起動してボトルネックを調べる

あくまで相対値しか出てこないので、相対的なボトルネックを計測しておくぞ、のつもりで測ること(Unity5に期待ですね)

オマケで定番の作業

Ambient Obscuranceが軽く動くPCは少ないので(しかも両目にかかるんでつらい)残念ながら諦めたほうが良いかも。他の2種はそれほど負荷がかからないので、やって損は無いです。