セキュリティ系の勉強・その他開発メモとか雑談. Twitter, ブログカテゴリ一覧
本ブログはあくまでセキュリティに関する情報共有の一環として作成したものであり,公開されているシステム等に許可なく実行するなど、違法な行為を助長するものではありません.

Unity VR どこでもドア ポータル ワープ

(` ・ ω ・)
f:id:thinline196:20170506180337p:plain

どこでもドア

をVRで表現した展示があるという噂を聞きました。それ意外と簡単にできるんじゃね?なんて甘い考えから始まった制作。

しかし、既に制作した方がいました笑
qiita.com


そしてそれを unity ネイティブのVRライブラリに書き換えてくれている方もいらっしゃいました。
tuti107.hatenablog.com



あああ、もう何番煎じなんだよって感じです。。。


仕方ないので、レガシーはありがたく参考にさせていただきます。




今回作ったもの

上の方々が作っていない(ブログに書いていないだけかも)、瞬間移動の部分(ワープ)を実装しました。


github.com

上のリンクから、今回のプロジェクトを落とすことができます。一応、HMDの種類は問わないはずです。





気をつけるポイント

・解説されていますが、視差をつけてのレンダリングでしょうかね。unityではカメラで見えているものをそのままTextureにレンダリングする機能がありますが(しかも簡単)、これをHMDで見た場合、当然スクリーンに映し出されたようなものになります。
・後は、合わせ鏡のようなオブジェクトの配置への対策。最適解は見つけ出せていないのでアレですが、処理落ちしてアプリケーション自体も落ちます。



使い方

・移動はWASDでの移動で、視線の先を常にWとしそれを基準にASDも決定される。
・Gで目の前にポータルを生成。
・ポータルをくぐることによって、Main空間とSub空間を移動することができる。

未実装&注意点&バグ

・出現させたポータルの裏側はシースルー状態になっていますが、コライダーの判定が残っているので通り抜けることができません。別の世界へ移動してしまいます。動画では上手くできているように見せていただけです。
・合わせ鏡状になると落ちる趣旨の話をしましたが、それ関連の話で、ポータルから別世界を覗いた時に、別世界にあるポータルは表示されないようになっています。なので、トンネル状態にして今の空間から別空間を挟んで今の空間を覗くことが今の所できません。これはなんとかなりそうな気もするので、いい案が浮かんだらやるかもです。
・動画上ではそれほど気になりませんが、HMDからポータルをのぞいた時、頭の揺れとポータルの映像が本当に少しだけズレる。描画順に問題があるのか、HMDの描画が酔い対策で異常に早くなっているのか。
・もし配置しているオブジェクトにrigitbodyなどを付ける場合、ポータルと被ると移動時に挟まったりエラーになったりしそうなので、その場合はコライダーを空間ごとにまとめてOnOffを管理する機能を作るべきだと思います。
・たまに、ポータルを潜っても空間が移動できずすり抜けてしまうバグがあります。原因不明。主に起動後の最初の1回目に起こります。







このプロジェクトのキモ

・LayerとSkyboxを上手く使っています。
・LayerをmainObjectとsubObjectに分けることによって、カメラに別空間のオブジェクトが写らないように、Skyboxをカメラごとに変更し上手く切り替えることで、まるで移動したかのように見せています。
・qiitaの方にまとめてくださっていた方は、二つの空間を少し離した位置に生成し、それを複数カメラで位置同期を上手く行いながらプロジェクトを作られていましたが、LayerとSkyboxを使うことにより、カメラは全て同じ座標を共有するようにし、二つの空間のオブジェクト配置も同じ位置に移動することができました。
・カメラとポータルの表面で衝突判定を取っているので、それにより世界が切り替わります。
・そのため、どこでもドアとは離れましたが、瞬間移動をお手軽に実装できました。


まとめ

ふと思ったけれど、VR空間上で広い荒野にドアを設置しておいて、開けた瞬間にドアの先に部屋を生成したら意外とそれっぽくなりそう笑

BlackStar HT-DUAL 真空管交換 12AX7EH

*注意* これからアップロードされる音源は元々個人用にとっただけだったため、何の処理もしてないですし、演奏も雑です。突っ込まないでください

あらすじ

三年前に中古で購入したエフェクター、BlackStarのHT-DUALですが、なんとなく真空管を交換しました。元々単体でもう少し音抜けが欲しいと思っていたのでもし改善されるならと思い、昨日サウンドハウスで注文!今日の夜届きました!

www.soundhouse.co.jp


いろんなサイトを見たところ、意外とこれに交換していた人を見かけたため購入。

ググると交換方法なども描いてくれているけど、このエフェクターは蓋を外せばいいだけだからそんなに説明もいらない!
f:id:thinline196:20170428232321j:plain


蓋を開けてみると。。

f:id:thinline196:20170428232234j:plain


あれ?デフォルトの真空管と違うし!!笑 中古のため、前の所有者がすでに取り替えていたのでしょう笑
TAD ECC83 Standardとしか書いていない、、調べてみるとヒットはしませんでしたが悪いものでもなさそう。むしろいいかも笑
ただ、所有しているギターとの関係もあってやはりもう少しとんがって欲しい笑


使用機材

G&L ASAT Classic PREMIUM (確かこんな名前)シングルです
BlackStar HT-DUAL
Roland Duo-Capture-ex
GarageBand

before
f:id:thinline196:20170428232312j:plain


after
f:id:thinline196:20170428232234j:plain


つまみはこんな感じ(ISF以外いじってないです(もしかしたらどこかでbass変わったかも、、、ごめん))
f:id:thinline196:20170428232303j:plain


比べたよ(適当注意)

ch1 ISF-0
before
soundcloud.com

after
soundcloud.com



ch1 ISF-10
before
soundcloud.com

after
soundcloud.com


ch2 ISF-0
before
soundcloud.com

after
soundcloud.com


ch2 ISF-10
before
soundcloud.com

after
soundcloud.com



(もっと再生しやすい埋め込みにしたかった
)


結果

こう比べてみると、beforeは暖か味のあるいい感じの歪みだったのかもしれない。ただ、ギタボをやりコード引きの多い人にとってやっぱりこもり気味な音は気持ちよくない。と考えるなら、暖かみのある単音フレーズは捨ててしまうのも仕方ない!



音楽家は自己満が大事!!!!!!

部屋の天井のカビを掃除したよ

f:id:thinline196:20170416130856j:plain
(久々の更新はなんとお掃除ブログ笑)


ふと気づいたら部屋の天井の隅にカビが生えてました。最近部屋に篭って作業をすることが多くなったので、そのせいですね。
今回のお相手はこちらです。

f:id:thinline196:20170416125734j:plain
f:id:thinline196:20170416125740j:plain


うわぁぁぁぁ。。。エアコンの上にめっちゃいるヨ!普段見えない部分をだいぶ持って行かれてました。こいつらをお掃除しようと思います。


使用するもの

・消毒用エタノール
重曹(炭酸水素ナトリウム)
・雑巾(多量)
・霧吹き(容器)
・歯ブラシ(なくても良い(僕は使わなかった))


消毒用エタノールは濃度80%程度のものがベストらしいです。99%のものは水で薄めればOK。お酢でもOKらしいですが、僕はお酢があまり好きではないので選ばず。。お風呂用の対カビ用品は、壁にダメージが入るらしいのでおすすめしません。お部屋用ならおそらくOK!
f:id:thinline196:20170416130402j:plain
f:id:thinline196:20170416130443j:plain
(薬局で売ってます)


重曹は特にこだわりませんでした。
f:id:thinline196:20170416130605j:plain
f:id:thinline196:20170416130615j:plain



手順


ーー準備ーー
1.まず、窓は開けて風通しをよくします!

2.メガネ、マスク、手袋などを装着し、なるべく肌は出さないようにしましょう。カビは一応体に悪いですし、天井を掃除する場合、液体が垂れてくるのも怖いです。

3.エタノールを霧吹きにセット(雑巾に直接塗って拭いてもOKなのでマストでなない)

4.重曹を霧吹きにセット(歯ブラシにつけてこすってもいいけれど、吹きかけた方が浸け置きみたいにできる笑) 重曹:水は1:2らしいですがこの辺はアバウトでも大丈夫。飽和するほど入れなければ笑



ーー作業ーー
5.まず、固く絞った濡れ雑巾でカビを拭き取ります。そんなに落ちないですが、まぁ普通の汚れも掃除する気持ちで!

6.次にエタノールを吹きかけます。これはカビを殺すために使用しています。雑巾につけて拭いてもOK. 念のため少し放置。

7.少し置いたら、重曹で雑巾がけ!これは漂白がメインのお仕事!歯ブラシなどを使えば、角っこも綺麗に!雑巾オンリーでも手が届くなら問題ナシ!(エタノール重曹アルカリ性なので、最悪混ざっても多分平気です。)

8.念のため、エタノール&雑巾でもう一度拭きます!保険です!(憎しみ込めて明日のためにね!笑)

9.最後に乾拭き!まぁこれもなくていいかも、、




ーー終わりです!お疲れーー


結果

f:id:thinline196:20170416125734j:plain
Before

f:id:thinline196:20170416132819j:plain
After

f:id:thinline196:20170416125740j:plain
Before

f:id:thinline196:20170416132850j:plain
After


エアコンの上なんかは、見違える程綺麗になりました!!



換気をしよう

急にカビが生えた原因はなんだったのか、、絶対こいつです。

f:id:thinline196:20170416133211j:plain

紺色のやつ。自作の防音&断熱ボードです。これが優れもので、歌の練習、ギターを引いても外に音が漏れにくい!夏は外の熱気が伝わらない!冬は外の冷たい冷気が入ってこない!しかも窓と部屋が遮断されるから結露もしない!さらに光も入ってこないから、安眠をお約束!朝になっても気がつかない!

ただこれ、取り外しが少し面倒くさいんです笑 なので、冬の間付けっ放しで、換気をろくにしていませんでした。ここで寝るので湿気もすごかっただろうし、、


なので、換気は大事です。寒いからって換気しないとカビが生えます。気をつけましょう!



そのうちエアコン取り外します。何年も使ってないので動くかも怪しいです。業者呼ばないでなんとか自分でやってしまいたいところですが、どうなるかなー、



以上。

Unity .asset .iphone ファイルを作成する

Unity5系でのAsset Bundle使い方まとめ - Qiita
参考サイト様。

*リンク先が消えたら困るので、引用含めてまとめさせてもらいます。




AssetBundleで使用する.assetファイル。また、プラットフォームごとにそのファイルも.iphone .androidと変更しなければいけません。


これ、どうやって変換するん。。。(詳しくは上の参考サイトさんを見てください)

これを、UnityのAssets/Editor/以下のフォルダにおいてください。これで、UnityのAssetsタブに"Build AssetBundles"の項目が追加されます。


次に変換した
いファイルを選択、Inspectornに表示してください。すると下の方に下の画像のようなものがあると思うので、ここを画像を参考に入力。

f:id:thinline196:20170331184308p:plain
f:id:thinline196:20170331184147p:plain


これがそのままファイル名になります。


あとは、タブからAssets/Build Assetbundlesを実行すれば、指定フォルダに出力されます。(フォルダをしっかり作っておきましょう)

Unity LoadFromCacheOrDownloadのローカル保存場所

AssetBundle使用する時に、アセットを取得するために使うメソッド

WWW.LoadFromCacheOrDownload(引数);

そして、そのメソッドによりダウンロードされたものはCachingクラスによって管理されます。特に、キャッシュクリアしたい場合は以下のメソッドを実行すると一括で削除することが可能です。

Caching.CleanCache();


これ本当にキャッシュクリアされているのか?簡単に調べました。方法は単純に、Finderでキャッシュが消えているかを目確認するって感じ笑


結論

ちゃんとクリアされていた。


MacOSの場合、キャッシュの場所は "ユーザ名/Library/Caches/Unity/" になります。



注意ですが、キャッシュのクリアはなるべくアプリケーションを起動した直後がオススメです。
正確には調べていないのですが、キャッシュをクリアしても、参照が残っているかまだ使われているかしているメソッドは、消されず残ってしまいます。