のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

UnityでDaydream用の360度立体画像を作成する

DaydreamでGooglePlayに登録時に360度の立体画像が必要になります。
f:id:noshipu:20170818191555p:plain

今回はその画像の仕様と実際に撮影する方法をメモしておきます。

どこに使われるのか

Daydream端末のGooglePlayストア内に掲載されるアプリの背景画像になります。

360度画像の仕様

画像形式 EquirectangularのTop to Bottom形式
解像度 4096 x 4096 ピクセル
サイズ 15MB以内
ファイル形式 png or jpeg pngを推奨
透過情報 アルファなし

☆ 注意点

・正面にロゴ等を置いてもストアの情報で隠れるので注意が必要。
・プラットフォーム側でレンダリングされたUIとの奥行が衝突しないようにシーン内のオブジェクトをカメラから2.5m以上離れて撮影する必要がある
・ステレオ映像でなくても登録はできそう

背景素材の作り方

# WindowsでUnityを使って開発しているアプリを想定しています。

1. 360度撮影できるAssetをインポート

360度パノラマ画像を撮影する際に使用するメジャーなAssetですと下記があります。
(2017/8/21現在)

タイトル 価格 URL
360 Panorama Capture 無料 https://www.assetstore.unity3d.com/jp/#!/content/38755
SphericalImageCam $32.40 https://www.assetstore.unity3d.com/jp/#!/content/21979
VR Panorama 360 PRO Renderer $52.92 https://www.assetstore.unity3d.com/jp/#!/content/35102

今回は無料で使える360 Panorama Captureを紹介します。

2. TargetPlatformをPC Standaloneにする

Windows環境のStandalone選択状態で実行が必要になります。
Daydreamのプロジェクトだとモバイル依存の箇所でエラーがでたりするので、別プロジェクトに切り分けたりするのもありかもです。

3. 空のGameObjectを作成し、CapturePanorama.csをアタッチ

4. CapturePanoramaのパラメータを設定

・Capture StereoscopicをONに設定
・Panorama Widthを4096に設定

5. Unityを再生し、Pキーを押す

撮影され、プロジェクトフォルダの中に撮影された画像が入る。
Top to Bottom形式のステレオパノラマ画像が撮影できたので、GooglePlayに登録することができます!

もし視差なしの画像を用意するのであれば、Capture StereoscopicをOffにして撮影した画像を画像編集ツールを使って上下で2枚つなげれば、視差なしの画像を登録することができます。

360度の背景が必須画像であれば、OculusのようにGoogleVRの中にキャプチャのツールもSDKに含まれているとありがたいですね。

Android実機でReflection Probeが動作しない時の対処メモ

リアルタイム更新のReflection ProbeをAndroid実機にビルドした際に上手く動かなかったので対処をメモ

対処方法

QualitySettingsの[Realtime Reflection Probes]にチェックが入っていなかったのが根本的な問題でした。

他の対処としてはOpenGL2.0で動作しているといくつか問題があるみたいなので、OpenGL3.0で動かすと安定しているみたいです。

Unityでアナグリフ画像を生成するSuper3DMakerをリリースしました

f:id:noshipu:20170808232508p:plain

Super3DMakerをリリースしました!
スマホのカメラでアナグリフな画像を作れるSuper3DMakerをリリースしました

iOS

Android

スマホのカメラを使ってこんな感じのアナグリフな3D画像が撮れます

2017/08/11 画像差し替えました


アナグリフ画像を生成するコードについて

Texture2Dのピクセル情報を取得し、アナグリフ画像に変換しています。
処理的にはこちらの画像処理を行います。

2017/08/09 説明とコードを修正

モノクロエフェクトをかけた後に、左目用画像の赤色を抜き、右側画像に緑色と青色を抜き、色の平均値をとって色を選びます。

アナグリフな画像を生成するコードはこんな感じ

for (int i = 0; i < length; i++) {
    // 左目用画像の平均値
    float left_average = (m_LeftCaptureColor [i].r + m_LeftCaptureColor [i].g + m_LeftCaptureColor [i].b) / 3;
    var left_color = new Color (left_average, 1f, 1f);

    // 右目用画像の平均値              
    float right_average = (m_RightCaptureColor [i].r + m_RightCaptureColor [i].g + m_RightCaptureColor [i].b) / 3;
    var right_color = new Color (1f, right_average, right_average);

    // 平均を出力
    resultColors [i] = (left_color + right_color) / 2;
}

ChainerをWindowsにインストールする手順メモ

Windowsで仮想環境(Ubuntu)を作成し、そこでChinerを動かすまでのメモです

手順

1. Ubuntuインストールする

(1) VirtualBoxのインストー

下記リンクのダウンロードリンクから[WindowsHosts]を選択しインストールする
Downloads – Oracle VM VirtualBox

(2) UbuntuのROMのダウンロード

下記リンクからubuntu-ja-16.04-desktop-amd64.iso(ISOイメージ)をダウンロードする
https://www.ubuntulinux.jp/download/ja-remix

(3) VirtualBoxUbuntuをインストー

a. VirtualBoxを起動
b. [新規]->[エキスパートモード]を選択
c. 各種項目入力
f:id:noshipu:20170730022354p:plain
d. 仮想ハードディスクは32Gに設定し環境作成
e. 起動を押す
f. 初回起動時に起動ハード・ディスクの選択がでてくるので、(2)でダウンロードしたISOファイルを選択する
g. 起動が始まり、[Ubuntuをインストールを選択]->[Ubuntuのインストール中にアップデートをダウンロードする]にチェックを入れる
h. そのままインストールを進める

備考1

OSインストール後に再起動がかかると下記エラーがでて止まった

intel_rapl: no valid rapl domains found in pcackege 0

[仮想マシン]->[リセット]をしたら解決

備考2

ログイン後に仮想マシンを使いやすくするためにGuestAdditionsをインストール、[デバイス]->[クリップボードの共有]->[双方向]を設定しておくといいです。

2. Chainerのインストー

各種ソフトウェアをインストー

$ sudo apt-get install python-pip
$ sudo pip install --upgrade pip
$ sudo pip install chainer==1.24.0
$ sudo apt-get install python-matplotlib

3. Chainerを動かしてみる

(1) Chainerの公式サンプルのダウンロード
$ wget https://github.com/pfnet/chainer/archive/v1.24.0.tar.gz
$ tar xzf v1.24.0.tar.gz
(2) サンプルプログラムを実行
$ python chainer-1.24.0/exammnist/train_mnist.py 

こんな出力がでていれば成功です

GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20

Downloading from http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...
Downloading from http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz...

...

19          0.00946827  0.104435              0.997167       0.9811                    550.189       
20          0.00728352  0.0844704             0.99795        0.9846                    582.161

以上です。

参考文献

Interface 2017年8月号