仮想空間の一部をパススルーモードに切り替えるのやろう~~
Building Blockのパススルー
Passthrough(全体)
Building BlockのPassthroughを入れたらデフォルトでパススルーになった。


でもなんか左端の視界がぐちゃっとなってる。ちょっと時間空けてやったらきれいに見えたから、QuestLinkの負荷とかそこらへんかな・・・?
ここら辺の設定変えても変わらない。Opacityは明るさ、Edge Renderingにチェックを入れたらパススルーで見えている物体に境界線がついた!

かっこいい!!

明るさ真っ黒でEdgeつけるとめっちゃサイバーでかっこいい

ドキュメントあった
Overrayだと一番上に来るから、すべてのバーチャルなものを隠す。

ちなみにパススルーにするときカメラのSolidColorは黒のAlpha0にする必要がある。

それ以外の色だとその色がパススルーに乗ってきた。
Passthrough(平面)
視界の一部をパススルー出来るBlockもある

このメッシュがあるところだけ窓みたいにパススルーになった。

でも実際の方向とあっていない。正面位置がずれた・・・?

パススルー部分も立体感があるから、まじまじと見ていると仮想空間とパススルーの立体感があってなくてちょっと酔う
こういう表現どこかで見たような・・・と思ったら両手部分だけ丸くパススルーになるアプリが何かであったからあれか!
Passthrough(3D)
Windowもあった。こっちは立体なのか?

Quadだった

右目にはパススルーが表示されなかった・・・
Quad以外にも同じシェーダーを適当なオブジェクトに付けたらパススルー表示はされる。(右目表示されなかった)

切り替え
やりたいのは適当なボタンを押したら、VR内の背景の仮想空間が消えて、パススルーが表示されるという切り替え。
デフォルトでパススルー表示しておいて、仮想空間をオンオフするだけでもいいが、パススルー状態って重くないのかな?
パススルーのオンオフはOVR Passthrough Layerコンポーネントのオンオフでできた

ドキュメントに初期状態でパススルーにするかどうかのコードはあった
やはりあのコンポーネントをオンオフするのが正解みたい
// Add this to any MonoBehavior void Start() { if (OVRManager.IsPassthroughRecommended()) { passthroughLayer.enabled = true; // Set camera background to transparent OVRCameraRig ovrCameraRig = GameObject.Find("OVRCameraRig").GetComponent<OVRCameraRig>(); var centerCamera = ovrCameraRig.centerEyeAnchor.GetComponent<Camera>(); centerCamera.clearFlags = CameraClearFlags.SolidColor; centerCamera.backgroundColor = Color.clear; // Ensure your VR background elements are disabled } else { passthroughLayer.enabled = false; // Ensure your VR background elements are enabled } }
こんな感じにしてボタンとかから呼び出せるようにした
public OVRPassthroughLayer passthroughLayer;
public GameObject vrbackground;
void Start()
{
if (OVRManager.IsPassthroughRecommended())
{
OnPassthroughLayerActive(true);
// Set camera background to transparent
OVRCameraRig ovrCameraRig = GameObject.Find("OVRCameraRig").GetComponent<OVRCameraRig>();
var centerCamera = ovrCameraRig.centerEyeAnchor.GetComponent<Camera>();
centerCamera.clearFlags = CameraClearFlags.SolidColor;
centerCamera.backgroundColor = Color.clear;
// Ensure your VR background elements are disabled
}
else
{
OnPassthroughLayerActive(false);
// Ensure your VR background elements are enabled
}
}
public void OnPassthroughLayerActive(bool bl)
{
passthroughLayer.enabled = bl;
vrbackground.SetActive(!bl);
}
Meta MR Utility Kitのサンプル
6つある。一番下のは昔試した。現実空間にポイントライトをリアルタイムで反映するやつ

VirtualHomeはエラーが出たので消した。
他は動いたが、マテリアルエラーになっていたり片目だけでしか表示されないものもあった
Basicは自分の部屋がかっこいい輪郭エフェクト付きでパススルーで表示される

メニューでいろいろ表示とかを変えれる。このメニューの使い方はコントローラーの左手に表示されて、左手スティックで上下、トリガーで決定。(わかりにくいが、片方の手だけで全部完結するの面白い)

メッシュが張られたりいろいろ、ボール投げれたりした

NavMeshシーン二つのライトが動いていた。もしかしたら私の部屋が狭いせいでよくわからない感じになってたのかも

MultiSpawnはよくわからなかった。

FloorZone

AnchorPrefabSpawner
おもしろそう
Meta MR Utility KitのAnchorPrefabSpawnerコンポーネントを使えば、現実オブジェクトにピッタリ合わせて、バーチャルオブジェクトを自動配置してくれる。
— カフェマス (@CafeSingularity) 2024年3月6日
これめちゃくちゃ便利で、例えば現実のドアにぴったり合わせて、異世界の門を設置するとかが簡単にできるのでみんな使った方がいい。 pic.twitter.com/MgVIRequPW
Building BlockのAnchorColliderSpawnerのことみたい。なんで表記ブレがあるんだろう

このブロック置いて実行したら自分の部屋が出た

Wallなどのプレハブの設定ができるので同じ感じでドアも設定するのだろうか・・・
Cryptic Cabinet
Metaの最新MRサンプルプロジェクト「Cryptic Cabinet」をやってみた!わーお、これはアメリカンサイズなお部屋が必要なみっくすどりありてぃですね🥹 pic.twitter.com/WiCAqfEjjE
— カフェマス (@CafeSingularity) 2024年2月26日
InteractionSDKのサンプルみたいなのにちょっと毛が生えたやつかと思ったら、結構ちゃんとしたゲームっぽい?すごいレビューがいっぱいある。マルチプレイもできる
ストアにある動画見たけど楽しそう。自分の部屋で脱出ゲームできるのいいね


中身は公開されている
とりあえず起動した。

部屋のここにオブジェクトが出るよ~って事前に設定できる。

マルチプレイはコード入力形式


机に合わせて棚が置かれたりしてた。