Unity , ADX2 実験室メモ

非エンジニアのサウンドデザイナーがUnityでなにかをつくる

Unityのシーンから360度動画を作ってみた

1月にこんな感じの動画を作ってました。制作期間3日。こういうの初めて挑戦したけど意外と形になった。

chromefirefox推奨。ぐるっと見渡せる動画プレイヤーでどうぞ。

iPhoneとかAndroid端末のyoutubeアプリでもいける。


作った理由

立体音響のデモが作りたいと思ったものの、動画素材がねぇよ!!!

Gear360とかで実写映像にしても良いんだけど、専用マイクと一緒に収録するの結構な大掛かりだし CGの方が色々と都合が良いとか考えているうちに、Unityで作れるんじゃないかと。

Asset探してみると、とりあえず2つありましたよ。

Asset紹介

360 Panorama Capture - Free

win専用 + GPU必須ということで僕の環境では動かず断念。

VR Panorama 360 PRO Render - 40$

Macでも使える! 40$するけど自分で研究して作るより絶対安い!買う!

ってな感じで、上記の動画はこれを使って作られています。

使ってみた感想とか注意点を書いていくよ。


使い方

これ参考にしたら大体解決した

qiita.com

そのままmp4にできるっぽいけれども自分の場合は動画を作ったあと、動画編集ソフト上で音をつけていくので全フレームの静止画がある方が都合が良いので連番で書き出したよ。

注意点
最初の3フレームほど書き出されない。仕様?

設定例 FPS 50 Number of frames to render 200 Resume fromframe 0 ってやると、エディタ上で再生を始めて4フレーム目から200フレーム目までの約4秒分の連番jpgが書き出される、といった感じです。

skyboxの設定について

空の色をだんだん変化させようとアニメーションを組んだものの、このプラグインレンダリング中はエディター画面上だと色が変わっていくけど、書き出された静止画では空の色は反映されなかった。 なので動画の途中で空の色が変わっているのは設定を変えて2回レンダリングして繋ぎ合わせた。パーティクルの散り方が違うので、よく見ると継ぎ目の瞬間、パーティクルの位置が変わるのがわかる。

裏技的な

カメラの子オブジェクトとしてquadでロゴ看板を置いたら6面に投影された。なるほど、これはこれで使える。けど近くて歪んでる。

近すぎるオブジェは注意

カメラ6台分の画像をつなぎ合わせる感じでレンダリングされるわけですが、繋ぎ目があまり綺麗でない。特に近いオブジェクトは明らかにずれているのが見える。実写映像でカメラを複数使う場合はこの合成作業(スティッチング)は手動で補正したりする。

回避するにはカメラの繋ぎ目をなるべく把握して近いオブジェをごまかしながら置く、か。

色々試した結果

Galaxy s6 edgeでGearVRで見た場合、ですが 「なるべく高い解像度がいい。横2000くらい欲しい」 「なるべく高いフレームレートがいいけど、解像度が犠牲になるなら30fpsでもいい」 「できれば立体視用の映像がいい」

という感じで、2000 x 2000 (立体視でなければ1000) 30fps の動画が割とバランスが良い気がします。 ちなみにこの設定だとGalaxy s6 edgeは20分以内に熱を持って、GearVR側から警告くらって再生を止められます。

スマホVRの敵は端末の熱だ。間違いない。

立体視について

首を横に傾けたりするとあっさり破綻するので、立体視そんなに期待していなかったんですが、実際に見てみると焚き火の火の粉が舞い上がっていくのが綺麗だし、なんだかパーティクルに包まれている具合がすっげー心地いいのです。リラクゼーション効果ありそう。焚き火ずっと見ていられる。

おまけ

立体音響版も作ってみた。 Firefox専用としてあるのは、chromeで観たときと音が違う(!)から。

えー!?って感じですが、これは4方向の音の要素を向きに合わせて混ぜてステレオの音にする部分の計算式に決まりが無いから。

あれだよ、GearVRとかPSVRとかで見たときも音が違う可能性が高いんだよ。

こちらはiPhoneだと向いている向きに合わせて音が変化しないかも。 youtubeアプリが対応すれば音の方向が変わるはず。

立体音響について

ambisonicsっていう形式の4chオーディオを作るんですが、ProToolsHDと専用プラグインで作りました。今回紹介した録画プラグインでも作れそうなんだけれど、各オブジェに音を貼り付けていかないといけないとか、曲どうしようとか、まだ悩みは尽きない感じ。作曲ソフト上での作り方はまた別の機会にでも。

今さらだけどGalaxy S6 edgeを手に入れた話

f:id:ksilogic:20160817194441j:plain

S7 edgeが今年の5月に発売され、その1年前に出た端末を今さら買うのはどうかと思ったりもするけれど

  • FOMAからの乗り換え
  • docomoの場合、S7より端末代が5〜6万安かった
  • スペックを見ても申し分ない
  • Gear VRも使える
  • 適当にアプリ作るのにちょうど良いぞ!

ということでS6 edgeしかない!と思ったわけですが、欲しがる方は多いようで・・・僕が買おうとした8月9〜10日時点で

  • ドコモオンラインショップに在庫なし(キャンセル待ち分のみ)
  • 全国のドコモショップで在庫が合計7台

という状況に。13日に店頭で受け取ったんですが、その時は店頭在庫も無くなっていたそうで。なんてこった。 他のキャリアとか白ロムとか中古とか、まだ手に入れる手段はあるとは思うけれども間に合って良かった。

とりあえずこれを使って何かしら遊べるもんを作ってみます。

【Unity】Android端末のジャイロセンサーを使ってボールを転がすメモ

f:id:ksilogic:20160718103542p:plain

やりたいこと

  • スマホを傾けてアプリの中のボールを転がしたい
  • スマホを机に置いた状態が水平であってほしい

とりあえず実装

参考

できた。

さらにやりたいこと

  • directional lightも傾きに合わせて動かしたい

とりあえず実装

docs.unity3d.com

ライトに直接スクリプトを貼って簡単じゃーん(?)

・・・何か違う

  • 想定通りに影が変わらない軸がある
  • どうやらAndroid端末のジャイロは、手に持ち、通話中の状態を基準と想定している?
  • Unity上とAndroid端末のy軸とz軸が逆っぽい

yとzを入れ替える

できた。ソースは後述。

もうひとつやりたいこと

  • このままだと直射日光は垂直にしか当たらないので、適当に傾けたい

シーンで設定しているライトの向きをオフセットとして使う

  • transform.rotation の値の型は Quaternion
  • Quaternion同士を掛け算すると向きを合成できる

というわけで、以下のコードに。

public Quaternion direction_light_offset;
public Quaternion gyro_to_light;

void Start () {
    // 太陽光の傾きオフセットをシーンの設定から保持
    direction_light_offset = this.transform.rotation;
}

void Update () {
    // 端末の傾きを保持
    gyro_to_light = Input.gyro.attitude;
    // yz軸の値を入れ替え
    float yz_change;
    yz_change = gyro_to_light.y;
    gyro_to_light.y = gyro_to_light.z;
    gyro_to_light.z = yz_change;
    // ライトの向きを端末の傾き+元の設定のオフセットで変更
    this.transform.rotation = gyro_to_light * direction_light_offset;
}

できた。

Quaternionについての参考はこちら

tsubakit1.hateblo.jp

足音デモのUnityPackageを公開しました

UnityPackageを公開しました。ご自由にお使いください。

上記動画のあと、ユニティちゃんが落下しないように壁を作ったものになります。

壁に向かって走り続けると余計な音が鳴ったりしますが、その辺も後日修正予定です。

ADX2のデータの中身は解説しないとわけわからん気がするので近日中になんとか動画を・・・来週ちょっと大変なので遅くなるかも。今月中には。

ユニティちゃんに足音をつけた その2

音のバリエーションを増やす

前回、「走る音」しかつけなかったので「歩く音」「着地音」を追加したよ。

走る音しかなかったときと比べてみてほしい。 だいぶ印象が変わったんじゃないかな?

続きを読む

ユニティちゃんに足音をつけた その1

足音がまともに鳴ってるゲームって割と少ないというか、こだわりたいけど色んな事情でこだわれない事が多かったりします。結構、手間なんですよね。用意も実装も大変。

続きを読む

超使えるフリーサウンド素材集 OculusAudioPack01を効果的に使ってみよう

こんな素材をフリー提供とか頭がおかしい

仕事を奪われる人が出てくる事を心配するくらいの、高品位かつ結構なボリュームの素材集が先日、12/10に公開されました。

developer.oculus.com

だってサンプリングレート48kHzで、約500種、400MBですよ? 単価5000円とざっくり仮定してまともに発注したら250万円が、タダなんですよ? 作るのが結構難しい、環境音のステレオループ素材とか沢山あるよ?

自分が知っているフリーの音素材を提供しているところって、大体は22kHzで公開していて 「綺麗な音で使いたかったら有償で提供するから発注してね!」という意図があったり 同業者の仕事を奪わない配慮になっていたりするんですが、Oculusは違いました。フルパワーすぎる。

というわけで、ヤバさが伝わったでしょうか。

タダで使えるけどマナーは守ろう!

一応、クリエイティブコモンズライセンスなので、クレジットの表記のみ必須です。

改変可、営利利用可、ライセンス継承はしなくて問題なし!

ライセンスの詳細は以下を参照

英語 https://creativecommons.org/licenses/by/4.0/
日本語 http://creativecommons.org/licenses/by/4.0/deed.ja

VRじゃなくても使っちゃえ。

これだけ使えるなら音の発注前に仮の音として使ってしまおう!

いい感じだったらそのままリリースしちゃおう!

どんな音が収録されているのか?

  1. 気味の悪い、ホラー系
    • クリーチャーのボイスやら咀嚼音やら。VRはホラー系と相性良さそうなので使えそう。
  2. 足音、打撃音、落下音
    • 一番、幅広く使えるやつ。VR以外でもガンガン使っちゃうぜ。
  3. 環境音
    • ステレオのループ素材が多数。VRサウンドを追求すると誤魔化し方が大事になるけど、その辺はまた別の話。
  4. 屋内の機械動作音
    • それ系のVRコンテンツで超大事なやつ。うまく空間の演出をするんだ!
  5. user_interface
    • システム音とか言われるやつ。バリエーションも豊富。
  6. ボイス
    • 男女の他に巨人、オーガ、トロルとか中世ファンタジーRPG向けっぽい。
  7. ドアの音
    • やっぱり20種類くらい音があると臨場感でるよね。脱出ゲームとかで使えそう。
  8. 音楽系ジングル集
    • 2〜6秒の色んな音楽的効果音。
  9. car
    • 車のキー、エンジン、窓の開け閉めなど。
  10. interaction
    • 色んな動きの音。

というわけで、これだけ素敵なデータを活かさないわけにはいきません。

一番、使い道のありそうなのは足音で、単発の音が72種。床の材質ごとに12種類(着地音x2、走る音x5、歩く音x5)と用意されていますが、状況に応じてそれぞれを鳴らすのは面倒そうです。

そこでオーディオミドルウェア、ADX2(LE)を使って、『足音を鳴らす』という一つの命令だけで 床の素材に合わせた音がいい感じにランダムに鳴るもの、という非常に都合のいいものを作ってみようと思います。