1. chiepomme

    Posted

    chiepomme
Changes in title
+RealSpace3D を Google Cardboard + Unity iOS で使おうとしてはまった話
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,83 @@
+Oculus Audio にもライセンスされているという噂の [RealSpace3D](http://realspace3daudio.com/) を Unity の iOS 版で Google Cardboard と合わせて使いたい!とおもって SDK 組み込んだのですが、いろんなところで詰まったのでシェアします。
+
+# RealSpace3D って?
+
+## リアルな 3Dオーディオ
+
+いわゆる立体音響を実現するためのプラグインです。 Unity にも 3D Audio の機能はありますが、もっとリアルに実際に物がそこにあるように感じるレベルの音響を実現できます。
+
+動画を貼る!
+
+特に VR と相性がよく、 VR 空間でのプレイヤーの向きに合わせてリアルに音の聞こえ方が変わります。目を閉じていても音のする方を探すことができます。
+
+## マルチプラットフォーム
+
+Unity と UnrealEngine 向けのプラグインが存在し、しかも iOS や Android 向けのプラグインもあります。つまりこれは Google Cardboard と合わせて使えば iOS や Android で安価に 3D オーディオを取り入れた VR 作品を作れるということです!
+
+# 使い方・・・のまえに先に iOS 用プラグインの問題点
+
+ここまで持ち上げておいてあれなのですが、現状は iOS 向けに使うのが現実的ではありません。何故かと言うと、動的コード生成を使ったライブラリを含んでいるせいで、 XCode でアタッチしていないと使えないからです。
+
+## iOS では XCode でアタッチしていないと使えない
+
+[iPhone issue when executing in standalone mode](http://stackoverflow.com/questions/16335546/iphone-issue-when-executing-in-standalone-mode) で書かれている問題のため、動きません。具体的には [ffts](https://github.com/anthonix/ffts) というライブラリがあるのですが、これがデフォルトのビルドでは動的なコード生成を行うため iPhone では動かないそうです。ただ Xcode からアタッチした状態だと動きます。
+
+公式にフィードバックしたので治るとうれしいですね!
+
+## 使うプラグインがややこしすぎる
+
+なんと公式から iOS としてリンクがはられているのは実は WMA版(Windows / Mac / Android) なので使えません。正しくは [RealSpace 3D Audio v0.10.7 iOS](http://realspace3daudio.com/download/realspace-3d-audio-v0-10-7-ios/) にあります。(これもフィードバックしたので治るといいですね・・・)
+
+しかも iOS 版そのままだとエディタで動かないため公式から iOS としてリンクが貼られていた WMA 版から各環境用のバイナリをインポートし Unity での dll 設定を行わないといけません。その際エディタ用のスクリプトは iOS / WMA どちらかのでないと動かないという制約があって、どちらを今使っているのか忘れてしまったのであとで調べます・・・。
+
+## Google Cardboard SDK と要求する Unity のバージョンが違う
+
+RealSpace3D は Unity 5.0.x を要求しているのですが、 Google Cardboard SDK の最新版をそのまま使おうとすると XCode でのビルド時にリンカエラーで落ちてしまいました。github に上がっているひとつ前のバージョン(あとで書きます)なら、インポートしたあと自動バージョンアップして、 XCode の enable bit code をオフにすれば動きます。
+
+## El Capitan だと Unity 5.0.x でメニューからビルドできない
+
+メニューを拡張してコードからビルドしましょう・・・。ビルド用のコードはあとで貼ります。
+
+# 使い方
+
+ここまで来てやっと使えるようになります。
+
+## 登録
+
+RealSpace3D のサイトで登録を行います。
+
+## ダウンロード
+
+自分のプラットフォームに合わせたアーカイブをダウンロードします。 iOS の人は先述の注意に気をつけてください。
+
+## インポート
+
+場合によっては Unity 上で dll の 32/64bit 設定などが必要になるかもしれません。
+
+## AudioListener をつける
+
+RealSpace3D 用の AudioListener を Unity の AudioListener と同じオブジェクトに貼り付けます。両方ないとだめです。
+
+## ライセンスキーを入力する
+
+公式サイトからライセンスキーを発行し AudioListener のライセンスキーのところで認証します。
+
+## AudioSource を配置する
+
+AudioListener とは違い、これは RealSpace3D 用の AudioSource のみで大丈夫です。
+
+## (Unity 5.2 以降のみ) 3D Spatializer の設定を RealSpace3D にする
+
+## エディタ上で再生してみる
+
+これだけで超リアルな 3D オーディオを楽しめるはず!
+
+## (iOS 以外のみ必要なら) VirtualRoom を設置する
+
+VirtualRoom は部屋の反響をシミュレートすることができます。
+GameObject > RealSpace3D > VirtualRoom で追加できますが、 iOS 版だとうまく追加できませんでした。
+
+# おわりに
+
+はやく iOS でまともに使えるようになってほしい!
+この記事は [@chiepomme Advent Calender 2015](http://www.adventar.org/calendars/1213) 2日目です。