【15秒】
- 上のリストは読み上げない。「こういうのをやってます」で一息に流す
- 口に出すのは VR・メタバース体験会 委員長 の1行だけ
→ 後半の「実機で踏んだハマりどころ」の説得力がここで決まる
【25秒】
- 「今みなさんが書いてる Three.js に足すだけ」と言う
- 1行目を指して問いを立てる。これが発表全体の背骨
- 言い回し:「"enabled" って言いますけど、じゃあ何が有効になったのか——って話なんです」と自問して本題へ
- 「答えはこの後にあります」と宣言して次へ
【15秒】前提の確認。主張ではないので巻く
- 対応端末は「VRもARも同じAPIです」と一言。Quest / Vision Pro を例に出してもいい
- HTTPS必須だけ口に出す(⑩ハマりどころの伏線)
【45秒】強調は2点だけ
1. requestSession はユーザー操作起点必須 → VRButton の存在理由
(非同期を挟むと「ユーザー操作の文脈」が切れて失敗することも。⑩の伏線)
2. baseLayer で描画先が差し替わる
→ これまでは canvas のフレームバッファに描いていた
→ XR ではヘッドセットに送るための専用フレームバッファに描く
→ そのバッファが左右に分かれている(⑧の図につながる)
- 参照空間(local-floor = 床が原点)は「座標の基準を決める」の一言で流す
- 種類の説明には踏み込まない(時間が溶ける)
【35秒】1つ目の山場。「登録先が変わる」ことだけを言う
- 「今まで rAF は window に登録してました。XRでは session に登録します」
- なぜ? ヘッドセットは90Hzや120Hzで動く。モニタの60Hzでは合わない
- Three.js で setAnimationLoop に書き換えさせられる理由がこれ
- ここで「⑨の答え合わせ」の3行目を先に回収している
【正確さのメモ】
- 呼び出す主体はどちらもブラウザ(UA)。session は登録の窓口
MDN: "the next time the browser is ready to paint the session's virtual environment"
- 「XR機器のネイティブリフレッシュレートで処理される」は
MDN / XRSession.visibilityState の visible の説明に明記あり
- 【質疑対策】「没入中に window.rAF は止まる?」と聞かれたら
→ デバイス次第。MDN は「動作する保証はない」としか書いていない。
有線接続のPC+ヘッドセットでは動き続けることがある(MDNのサンプルにも
二重描画を防ぐガードの例がある)。「止まる」と断定しないこと
【45秒】2つ目の山場。ここが発表の核心
- getViewerPose = 「今どこを向いてる?」を毎フレーム聞いている
- pose が null を返すことがある(トラッキング喪失)→ ⑩の伏線、ここで軽く触れる
- for が回るたび viewport が左半分・右半分に切り替わる
→ 次のスライドの図に直結する
- 「1個のつもりのカメラが2個」のオチはまだ言わない。⑨まで取っておく
【20秒】ここで絵にして、コードで置いていかれた人を回収する一枚
- 「さっきの for ループ、あれが左右の目を1回ずつ描いてました」
- 図:1枚の描画領域が左右に分かれ、それぞれの目に配られる(2560→1280+1280)
- MDNの一文で「自分の解釈ではなく公式にそう書いてある」ことを示す
- この「2個」が、次の答え合わせのオチに直結する
【30秒】問いをここで回収する
- まず「enabled=true の正体は baseLayer(描画先)の差し替え」と言い切る
- そのうえで「そして隠れてたのがカメラ2個」とオチを置く
- ArrayCamera は必要なら口頭で補足
- 最終行が本日の持ち帰り。間を置いて言う
【質疑対策】「views は必ず2つ?」と聞かれたら
- 没入型ヘッドセットでは典型的に2つ(MDN: "A typical headset provides a viewer pose with two views")
- ただし inline モードなら1つ、視野が広ければそれ以上もあり得る。フレームごとに変わる可能性もある
- なので実装では「2つ前提」で書かず、必ず views を回すのが正しい
(出典: MDN / XRView の Usage notes)
【40秒】ここが発表の防御ライン、そして締め
- 3つ目で「体験会の会場設営では毎回これを気にしている」と一言添える
- 4つ目が実感の総括。「エミュレータもあるけど、最後は実機」
→ 体験会を運営していて何度もかぶって確かめている、と言えると強い
- 教科書の注意書きではなく、自分が見たものとして話す
- 最後の一行が本日の持ち帰り。間を置いて言い切ってから告知へ
【15秒】
- 「今日の話を実際に触れる場が、明後日あります」で締める
- 8/9 VR・メタバース体験会(よかど鹿児島)/ 9/19 Blue & Blaze(垂水市文化会館)の2件を告知
- このスライドは質疑の間ずっと表示しておく
===== 合計 280秒(4分40秒)/ 5分枠に対し余白20秒 =====
10+15+25+15+45+35+45+20+30+40+15
(①タイトル10 ②自己紹介15 ③3行25 ④WebXRとは15 ⑤起動45
⑥ループ登録先35 ⑦2回描く45 ⑧図20 ⑨答え合わせ30
⑩ハマりどころ+締め40 ⑪お知らせ15)