施設内覧風味なAPIリクエスト
不動産や施設の内覧用途でXRコンテンツを使う場合に部屋や俯瞰視点を切り替えるようなイメージ。
Web-XR API では Editor で作成した演出をほぼ呼び出すことができるので、この例のようにカメラ視点変更を親ページのHTML要素のクリックから行うこともできる。
また、Viewer 自体を過度に装飾しておらず極めてシンプルな形としているのは、親ページを担当しているクリエーターがXRコンテンツを自由に装飾できることを意図している。
型にはまったパッケージではなく、クリエーターの意向を反映できる自由度が Web-XR Studio の特徴。
<head>
<script src="https://web-xr.studio/jp/api"></script>
</head>
<body>
<!-- XRコンテンツ -->
<div class="xrstudio" data-id="{xrID}" data-option="noConfig, onlyPageFull"></div>
<!-- パネル部 : xrs-wide クラスにはページフル時に xrs-wide--on というモデファイアが付加される -->
<ul class="panel__wrapper xrs-wide">
<li id="panel_1" class="panel xrs-wide"><img src="xxx..jpg"></li>
<li id="panel_2" class="panel xrs-wide"><img src="xxx..jpg"></li>
<li id="panel_3" class="panel xrs-wide"><img src="xxx..jpg"></li>
<li id="panel_4" class="panel xrs-wide"><img src="xxx..jpg"></li>
<li id="panel_5" class="panel xrs-wide"><img src="xxx..jpg"></li>
<li id="panel_6" class="panel xrs-wide"><img src="xxx..jpg"></li>
</ul>
<!-- メッセージ部 -->
<div id="msg"></div>
</body>
<script>
let i;
const $msg = document.getElementById('msg');
const panels = [0];
const msg = ['上のパネルをクリックしてください。',
'廊下A', 'リビングA', '廊下B', 'リビングB', '廊下C', '俯瞰'];
$msg.textContent = msg[0];
for (i = 1; i <= 6; i++) {
panels.push(document.getElementById('panel_' + i));
panels[i].addEventListener('click', (e) => {
const _id = e.target.id.replace('panel_', '');
$msg.textContent = msg[_id];
xrsApi[0].postMessage({act: 'case', id: _id}, '*');
});
}
</script>
<style>
// ページフル時に xrs-wide クラスがあるタグに xrs-wide--on が追加される。
// panel__wrapper と同階層にあるため、ドットがつながる記述になっている点にも注意
//
// xrs-wide -> xrs-wide--on : ページフル時に全て適応
// xrs-wide-# -> xrs-wide-#--on : 複数のXRコンテンツを設置した場合、#を付番に変えて個別対応
.panel__wrapper.xrs-wide--on {
position: fixed;
bottom: 5%;
left: 25%;
width: 50%;
z-index: 10000;
height: 270px!important;
}
.panel.xrs-wide--on {
width: 48%;
border: 1px solid;
border-radius: 5px;
margin: 2px 1%;
height: 130px;
}
</style>