この記事でわかること
- 360度ツアーを開いた瞬間にどの向きが見えるかは自動では決まらず、画像のメタデータかビューワーの設定値のどちらかが決めていること
- Google の Photo Sphere XMP と、公開されているビューワー(Pannellum・Marzipano)の公式ドキュメントに書かれた項目名・既定値・単位
- 部屋ごとに「最初に見せる1面」を撮影前に決めておくための手順
全部写っているが、全部は見えない
全天球写真は周囲すべてが1枚に収まっているが、画面に出るのはその一部だけで、残りは閲覧者がドラッグして初めて見える。最初に表示される向きと画角は、どこかに書かれた値が決めている。
オープンソースのビューワー Pannellum の公式リファレンスは、開始位置の既定値をこう定めている(Pannellum「Reference」)。
| 設定項目 | 公式の説明(原文) | 既定値 |
|---|---|---|
yaw | Sets the panorama's starting yaw position in degrees. | 0 |
pitch | Sets the panorama's starting pitch position in degrees. | 0 |
hfov | Sets the panorama's starting horizontal field of view in degrees. | 100 |
画像側にも後述の Photo Sphere XMP が入っておらず、ビューワー側でも何も指定しなければ、この既定値で開く。画像の基準となる向きが正面に来て、水平方向におよそ100度ぶんが見える状態になる(Pannellum「Reference」)。部屋で言えば「撮影時にたまたまレンズが向いていた方向」が、そのまま第一印象になる。
画像のどこを正面と呼ぶかを人間が決めていないから起きることで、決める場所は2つ。画像そのものに書くか、ビューワーの設定に書くかだ。
画像に書く:Photo Sphere XMP
1つ目は画像のメタデータ。Google が公開している仕様 Photo Sphere XMP Metadata には、初期表示のための項目が定義されている。
| 項目 | 定義(原文) | 型・既定値 |
|---|---|---|
GPano:InitialViewHeadingDegrees | The heading angle of the initial view in degrees clockwise from real world North, not relative to the pano center. | Integer・既定 0 |
GPano:InitialViewPitchDegrees | The pitch angle of the initial view in degrees above the real world horizon, not relative to the pano center. | Integer・既定 0 |
GPano:InitialViewRollDegrees | The roll angle of the initial view in degrees where level with the real world horizon is 0. As roll increases, the horizon rotates counterclockwise in the view. | Integer・既定 0 |
GPano:InitialHorizontalFOVDegrees | The initial horizontal field of view that the viewer should display (in degrees). This is similar to a zoom level. | Real・既定値なし |
注意したいのは、これらが画像の中心からの相対角ではなく実世界の方位・水平を基準にした角度だと明記されている点(原文は「not relative to the pano center.」)。北が分からないまま数字だけ入れても方位としては正しくない。同じ仕様の GPano:PoseHeadingDegrees は「Compass heading, measured in degrees clockwise from North, for the center the image.」と画像中心の方位として定義され、必須かどうかの欄は「No, but is required for display on Google Maps」となっている(Google「Photo Sphere XMP Metadata」)。自社サイトに置くだけなら必須ではないが、Google マップに出すなら別だ。
この値をビューワーが読むかどうかはビューワー次第だ。Pannellum は「Google Photo Sphere XMP metadata is automatically read and used if provided」と明記しており、正距円筒図法の画像なら自動で読む(Pannellum「Overview」)。コンパス表示についても「Normally defaults to false; defaults to true if heading information is present in Photo Sphere XMP metadata」と、メタデータの有無で既定が変わる(Pannellum「Reference」)。
ビューワーに書く:単位が違う
2つ目はビューワーの設定。ここで事故が起きやすいのは単位だ。
Pannellum は上表のとおり度(degrees)で書く。いっぽう Marzipano の公式ドキュメントは「Note that the yaw, pitch and fov values are in radians.」と明記し、初期ビューの例を yaw: 90 * Math.PI/180 のように度からの換算で示している(Marzipano「Documentation」)。インターフェース定義でも yaw は「The yaw angle, in the [-π, π] range.」、fov は「The vertical field of view, in the [0, π] range.」とされている(Marzipano「JSDoc: Interface: RectilinearViewParams」)。
さらに Pannellum の hfov は水平画角、Marzipano の fov は垂直画角と、基準の軸も違う。「90」という数字だけを申し送っても通じない。どのビューワーの、どの項目の、どの単位かまで書き添える。
移動したあとの向きも設計対象
複数の部屋をつなぐツアーでは、移動先で最初に向く方向も指定できる。Pannellum のホットスポット設定には sceneId(移動先のシーンID)と targetPitch・targetYaw があり、targetYaw は数値のほか same と sameAzimuth を取れる。公式の説明では「These settings use the current yaw of the current scene as the initial yaw of the target scene」とされ、same は現在の値をそのまま、sameAzimuth は両シーンの northOffset を考慮して方位をそろえる(Pannellum「Reference」)。
なお、targetYaw を省略したときにどう振る舞うかは、このリファレンスには書かれていない。明記されているのは各シーンの yaw の既定値が 0 であることまでだ。直前の向きを引き継がせるのか、数値で固定するのかは、作る側が決めて書いておくしかない。扉を抜けた先で意図と関係のない面が出るときは、シーン側の yaw と targetYaw の両方を確認する。
撮影前に決めておくこと
初期表示の向きは撮ったあとに数値でずらせる。ただし見せたい面に荷物が写り込んでいれば撮り直しになる。決めるのは撮影前のほうが安い。
- 部屋ごとに「最初に見せる1面」を1つだけ決める。 広さが伝わる対角線、窓と採光、水回りなら清潔感の出る角度など、その部屋で最初に伝えたいことから逆算する
- 三脚の据え位置とカメラの正面を、その面に合わせる。 決めた向きに映り込みや貼り合わせの乱れが無いかは、書き出したあとに実際に開いて確認する
- 公開先の要件を先に読む。 Google マップに公開するなら、ヘルプは「サイズが 7.5 メガピクセル以上(3,840×1,920 ピクセル)」「アスペクト比 2:1」「サイズが 75 MB 以下」「画像の周囲に隙間がない」「著しい合成エラーがない」を要件に挙げている(Google マップ ヘルプ「360°写真を作成して Google マップに公開する」)
なお、ここで挙げた仕様・既定値はいずれも各ドキュメントの2026年9月時点の記載で、内容はビューワーと画像形式の話に限られる。閲覧者の反応がどう変わるかを示すデータではない。
まとめ
明日からできることは3つ。
- 公開中のツアーを実際に開き、部屋ごとに「最初に見えている面」を書き出す。意図した面と違っていれば、初期表示の値を設定していないか、設定した値が意図とずれているサイン
- 使っているビューワーの公式ドキュメントで、初期表示の項目名と単位(度かラジアンか)を確認する
- 次の撮影の前に、部屋ごとの「最初の1面」を間取り図に矢印で書き込んでおく
ぐるり360でも、この初期表示の設計を含めてビューワー側を制作している(見え方は匿名デモで開ける)。既存のツアーでも、設定値の見直しだけなら撮り直さずに直せる場合がある。