【VR】VR内で360度写真を撮影してFacebookに投稿する【Unity】
Oculus Touchの開発キットを提供してもらったので、VIVE用に作った『ふぉとゆに』を移植している日々です。
今回はもうちょっとアップデートすべく、色々機能を追加中。
その中でVR空間内でTHETAみたいな撮影ができないかなーと、思ってやってみた。
Unity内で360度写真を撮るためにはアセットを使用。なんと無料!
・360 Panorama Capture
https://www.assetstore.unity3d.com/jp/#!/content/38755
このスクリプトを適当なオブジェクトに追加する。
あとはVR内で撮影するだけ。すごい簡単。
こんな感じの写真が撮れる。
これをFacebookにそのまま投稿しようとしても通常の写真としてしか認識されず。
Facebook側は画像データ内のメタデータを認識して判別している模様。
そこでTHETAで撮影した写真からメタデータを抜き、上書きしようと思いつく。
色々試してみた結果、うまく行ったのは下記のツール。
こちらも無料で利用可能。
このソフトも発想は同じで、メタデータにTHETAの撮影データを追加してくれる。
使い方はUnity内で撮った画像を開いて、そのまま保存するだけ。
で、Facebookに投稿したら完了!
ホントはUnity内だけで完結できればベストだけど、自分のスキルではまだちょっと難しいので誰かよろしく。
グルメポタ 奈良
今日は奈良までグルメポタ。工場跡事務室という、その名の通り工場の跡地を改装した喫茶店。
東大寺付近にありながら、あまり目立たないのか観光客は少なめ。やはりここにもサイクリストはいた。
レトロな外観。昭和の匂い。
乳酸菌の工場だったらしい。
サンドイッチのランチセット1350円。アイスカフェオレに変更して+100円。ちょっと高めだけど味は申し分なし。コロッケパン(650円)だけでもそこそこのボリュームもあった。
今日は昨日に比べて気温は低いが、一日中太陽が出ていたため暖かかった。
帰って鏡を見たら見事にサングラス跡を残して日焼け・・・。
しかしとにかく風が強く、帰りの向かい風は厳しかった。
グルメポタ 北摂
茨木市銭原にある、山の中にひっそりと店を構えるピザ屋 双子屋に行ってきた。
https://www.facebook.com/futagoya.pizza/
看板もなくメインの通りからも見えないところにある店舗。事前に調べておかないと絶対にたどり着けない秘境のピザ屋。そこそこ高いところにあり、今日はかなり涼しかった。
石窯で焼く本格派。
ビスマルク。1000円。
アボガド。900円。結構ヘビー。
二人で行ったので2枚のピザを半々に。一人1枚で十分なボリューム。焼きたてはかなり旨い。もう少し多人数でいっていろんな種類をシェアしてみたい。
ピザを食べた後は納豆を買いに山口納豆へ。
賞味期限が10日くらいなので6食分を購入。早速食べた見たら結構旨い。手巻きにして食べたい。
すっかり秋の空気で涼しくて気持ちよかった。登りは暑く、下りは寒いので服装にちょっと悩む。
Lightwaveにユニティちゃんを読み込む
Lightwaveにユニティちゃんをキレイに読み込む方法について。
モデルの読み込み
\UnityChan\Modelsフォルダに入っている、unitychan.fbxを開く。
ダイアログが出るので続行。チェックを入れた場合は、メッシュごとにレイヤーを分けて開く。チェックを入れない場合は、全て同じレイヤーで開く。
テクスチャの貼られていないポリポリした状態で読み込まれる。
テクスチャを貼りなおす
色・質感編集を押してエディターを開く。同じUVを使用しているので手間を省くためにすべてのサーフェイス名をまとめて選択し、「色」の横の「T」を押す。
「投影」を「UV」にし、UVを「map1」にする。
画像は\UnityChan\Models\UnityChanShader\Textureフォルダにある、body_01.tgaをとりあえず貼る。
全部に同じ画像が貼られるとこうなるので、画像を合わせていく。
名前のあった画像と入れ替えながらやっていけばすぐできる。
だいたいこんな感じになる。ポリポリしているので全サーフェイスを選択して、「スムージング」にチェックを入れる
髪の毛や頭のリボン、服の一部のサーフェイスが片面ポリゴンになっているので、サーフェイスに「両面」のチェックを入れる。
目とチークが透過していないので設定をする。
透過させたいサーフェイスの「透明度」の横の「T」を押して開く。
画像を設定したときと同じようにUVの設定を行なう。この画像の場合「レイヤー反転」にチェックを入れる必要がある。
目とチークが透過されてほぼ完成。
顔のサーフェイスが分かれてて境界が見えているので、ポイント結合した方がいいかも?
顔と目の周りのポリゴンを選択肢、「M」キーを押して結合すると境界が消える。
Lightwave側での設定は以上。Unityに戻したときにまたおかしくなれば後日追記など行なう予定。
参考:
天橋立、伊根の舟屋ツーリング
お盆にナイトライドで天橋立に行こうとしたが、眠さとケツの痛さ(デキモノ)により舞鶴で断念したため、リベンジがてら行って来た。前回は2人でのツーリングだったかが、今回はソロ。
ナイトライドは厳しいのでAM7:30に出発。天橋立の展望スポットであるビューランドが17:00閉園なので、だいたい8時間もあれば着くだろうという見込み。
天橋立
言わずと知れた日本三景のひとつ。選ばれるだけあって絶景かな。一度は訪れてみるのをオススメする。終始曇り~小雨だったのが着くころには晴れてたのが幸い。
伊根の舟屋
SAVVYの関西の絶景に掲載されていた伊根の舟屋。天橋立から北に20km。今回のメイン。ご覧の通り、船を駐車場のように収納できるスペースのある民家が立ち並ぶ独特の風景が見ることができる。この建物が湾にずらっと並んでいる風景はなかなか。苦労してくる価値は十分。
しかも行ったタイミングもちょうどよく、花火大会が開催された。花火自体の規模はこじんまりとしていたが、都会のように人ごみで溢れかえることもなく、田舎のお祭りを楽しむことが出来た。
花火もきれいだったが何よりすごかったのが星空。街から離れているだけのこともあり星が非常によく見え、星空がいい背景となっていた。さらに海面の照り返し、湾の舟屋の提灯に灯りとの組み合わせはここでしか見られない光景だった。
参考動画
今回のルート
いつもの舞鶴ルートから綾部で北西へ進み、天橋立、伊根へ。観光を終え21時に帰宅を開始したが半分まで進んだところで力尽きギブアップ。テントで仮眠を取り翌朝輪行にて帰宅。総走行距離250km。200kmを越えたあたりからキツさがハンパなくなり、脚よりケツの擦れが耐え切れなくなった。300kmの壁は予想以上に厚い。あと台風接近の影響により行きルートがほぼ向かい風でそこそこ風もあったことも脚への負担に。ルートも微妙だったのでやっぱり舞鶴まで行ってから天橋立まで行くのが無難っぽい。
今回の装備
バッグ類:フロントバッグはオーストリッチ。サドルバッグはAPIDURAのレギュラーサイズ。サドルバッグには大概入り、テント用品のほか折りたたみバッグや輪行袋、着替えなど全て収納。
テント類:モンベルのULドームシェルター1型、ULコンフォートシステムエアパッド。夏なので寝袋不要としたけど今回は寒かった。ライトはVOLT300と予備バッテリーを持っていったがやや不安だったので、次回のキャンプ前提の場合は電池式がよさげ。
寝袋もやっぱり必要なので、APIDURAのフロントバッグも追加する必要あり。初テントは寒さ以外は苦じゃなかったので今後もやっていきたい。
Unityでのオプション画面作成メモ
STEEL STRIKERの完成版に向け、オプション画面を作成。
その内容のメモ。
オプション仕様
- 音量設定:BGM,SE,ボイスで分ける
- カメラ設定:カメラの上下の操作を逆にできる
- 旋回設定:旋回時の設定を逆にする
音量設定
オプション画面で音量を変更・セーブし、タイトル画面でロードを行なう。
セーブやロードは「PlayerPrefs」を使用。
セーブについて
PlayerPrefs.SetFloat("BGM Volume", bgmVolume);
一つ目の値にはキーをストリング型で入れ、2つ目の値に保存したい値を入れる。
Float型、Int型、String型の保存とロードが可能。
セーブタイミングはオプション画面を抜けるときに1度行なう。
ロードについて
bgmVolume = PlayerPrefs.GetFloat("BGM Volume", 80);
一つ目の値にはキーを入れて変数へロードする。2つ目の値は、セーブデータがなかった場合のデフォルト値として設定できる(省略可)。
ロードタイミングはタイトル画面。念のためオプション画面でもロードを行なう。
参考
カテゴリ毎の音量設定
通常オーディオの音量を調整する場合は、Audio.volumeを使用して音量調整をするため、散らばったAudio Sourceを登録したマネージャーで制御することを考えた。
ちょっとめんどくさいし何かあるだろうと調べたらやっぱりあった。
Audio Mixerで管理
Audio MixerにBGM、SE、ボイスの3種のグループに分け、Audio Sourceをグループに振り分けておくと一括で音量の調整ができる。
Audio Sourceの音量と干渉しないので、一時的にフェードアウトさせたいときや音ごとに音量の調整をしたいときにも便利。
音量設定のロード時にAudio Mixerへ値を反映するだけで設定が反映されるので非常にラクとなる。
スクリプトでの設定は以下の通り。
audioMixer.SetFloat("BGMVolume", bgmVolume - 80);
ー80 ~ 20の間の値で設定する。
Audio Mixerのグループへの登録漏れがあると反映されないので注意。
参考
シーン間をまたいでもBGMを継続して再生する
シーンごとにBGMのAudio Sourceを設定している場合、同じ曲でも頭から再生されてしまう。
継続して再生させたい場合、BGMのオブジェクトを破壊せずに保持したままにする。
BGM用のAudio SourceのあるBGMのオブジェクトを別オブジェクトとし、
DontDestroyOnLoad (this);
を記述してシーンを遷移してもオブジェクトが残ったままにする。
違うBGMを設定しているシーンに移動する場合はDestroyで破棄すればいい。
このまま使用するBGMのシーンごとにBGMオブジェクトを配置しておくと、シーン遷移ごとにオブジェクトが増えていってしまうため、BGMオブジェクトをプレハブ化しておき、オブジェクトがなければ追加するようにした。
AudioSource BGM; GameObject bgm; void Start () { bgm = GameObject.FindWithTag("BGM"); if(bgm == null) { bgm = Instantiate(menuBGM) as GameObject; } BGM = bgm.GetComponent<AudioSource>(); }
参考
コミケC90で出展してきた
8/14に開催されたコミックマーケットC90の3日目にゲームを頒布してきた。
おかげさまで開始1時間で持ってった50部がすべて頒布終了となり一安心。
コミケは一度は行ってみたいと思っていたのでゲーム頒布という形で参加してみた。
今回出したのはロボゲー『STEEL STRIKER』の体験版。
ゲーム開発レシピにもロボゲーで書いたけど、ロボゲーを作りたくてUnityを覚えて書籍まで出しちゃったわけで。
VRに寄り道しちゃってたけど本来はロボゲーが作りたくて仕方が無いわけで。
まあVRではじめて作ったコンテンツもロボゲーだったわけだけど。
超Ocufes 総合案内 – Oculus Festival in Japan 03 OcuRobo プロト
てなわけである程度は下地があった段階からコミケ用にBitSummit終わりの1ヶ月をみっちり開発に専念していた。
ゲーム開発レシピからの変更点は、オリジナルロボへの変更や有料アセット(Final IKやエフェクト類)の使用など。動き、モーションの作りも大幅に変更。これらで追加本が書けちゃうかな。
戦利品
基本的にゲームのみ。本もいくつかチェックしてたのはあったけど、人ごみに耐えられず断念。11時台なら混雑も緩めで買いまわれた。3Dアクションが中心。体験版はDLカードが多かった(ありすのステージが撮れてなかった)。
今回のコミケでの備忘録的なもの
<公式>ホテルサンルート有明│ビッグサイトまで徒歩5分│お台場の隣
絶好の立地条件で朝もゆっくり出来たしすごく良かった。最初はもっと遠くに宿を取ったけどふと見てみたら空いてたのでちょっと割高だけどここに決めて正解。次回あるなら絶対ココ。
コミケ(C90)同人ゲームまとめ動画
何人かの人がコレ見て来たって行ってくれてた。告知大事。Unityのチラシもね。
その他持ち物や買ったものなど
・テーブルクロス 布が安い!生地・手芸の通販【大塚屋ネットショップ】
・DISCタイトルプリンター -電子文具- 製品情報 - CASIO
※プリンタブルのCD-Rは不可
・カウネット オリジナル POPスタンド T型 法人向け|カウネット
体験版くらいならこの大きさで十分。完成版はもっと大きいのが欲しい。
・丸筒、値札スタンド、モバイルバッテリー、養生テープ、ビニール袋、タブレット、コインケース
・夏限定? USB扇風機、どこでもアイスノン、扇子
だいたい100均でそろった。
・いらんかったもの:布のポケット、小銭トレー、ウェットティッシュ(今回は涼しかったし)
今後
次は完成版へ。結構やり残したことも多い。近接攻撃、チャージショット、武器チェンジ、対戦、コンフィグなど。あとVR対応も。
まずはモデルを完成させねば。時間無くてラフのままでテクスチャすら貼れてないし。
次回頒布は来年夏か冬を予定。
できればDLカードにしたいかな。今回はロムで焼くのも持ち運ぶも大変で50部しか持ってけなくて頒布できなかった人たちも多かったし。