開発者ツール

Operaがインタラクティブなウェブページを3Dに:HTML-in-Canvasとは

OperaがHTML-in-Canvasを検証中だ。2Dと3Dでインタラクティブなウェブコンテンツを扱う技術の仕組み、ゲームでの可能性、限界を整理する。

執筆: ·

3Dのレーシングガレージの中にスクリーンがあるところを想像してほしい。タイミングダッシュボードの静止画を映す代わりに、訪問者が実際に使えるボタンやテキストが表示されている。Operaは、canvasベースの2Dおよび3Dシーンの内部にインタラクティブなHTMLコンテンツを描画するウェブ技術「HTML-in-Canvas」で、こうした体験を披露している(Opera)。

この発表はゲーム制作者やウェブ開発者に向けたものだが、考え方はインタラクティブな製品デモ、ダッシュボード、クリエイティブツールにも当てはまる。ブラウザーの新しい機能であり、あらゆるウェブサイトを制限なくどこにでも埋め込めることを約束するものではない。

HTML-in-Canvasとは何か

HTMLはウェブページの要素(テキスト、ボタン、フォームなど)を記述する。canvasは、2Dアニメーションや3Dシーンを含むグラフィックスのための描画面だ。従来、canvasベースの体験にリッチなHTMLを組み込みたい開発者は、オーバーレイを使うか、コンテンツを画像として描画したうえで、操作や同期を自前で処理する必要があった。

HTML-in-Canvasは、より密接な接続を提案している。ブラウザーが、対象となるHTML要素をインタラクティブなDOMコンテンツを保ったままcanvasに描画できるというものだ。基盤となる作業はWeb Incubator Community Groupで公開の場で進められており、提案全体をOperaが単独で考案したわけではない(WICG explainer)。

単純化した例を挙げる。開発者がHTMLとCSSでメニューを作り、それを3Dシーン内の面に描画する。結果は仮想世界の一部のように見えながら、本物のインターフェースの挙動を保つ。描画と操作を揃え続けるには、特に要素が3D空間で動く場合、依然として実装作業が必要になる(Chrome for Developers)。

Operaが披露しているもの

Operaのデモには、画面にライブのウェブコンテンツが映る仮想ルーム「Gamer Room」、ページの要素を押し動かせるオブジェクトに変える「Webpage Bulldozer」、インターフェース要素が飛び交うゲーム風デモ「HTML Ninja」がある(Opera)。

開発者にとって考えられる用途は次のとおり。

これらは利用例であり、既存のあらゆるサイトがそのまま動くことの保証ではない。Operaは、同一オリジンのルールが適用されると説明している。開発者は任意のサードパーティのウェブサイトをcanvasに描画できるわけではない(Opera)。

Three.js開発者にとっての意味

Three.js開発者は、この機能を使ってシーン内の面にHTMLベースのインターフェースを配置できる可能性がある。Chromeの開発者向けドキュメントは、THREE.HTMLTextureによる実験的なThree.jsサポートを説明しており、他のグラフィックスライブラリにおけるコミュニティの実装にも触れている(Chrome for Developers)。

仮想レーシングガレージのインタラクティブなダッシュボードや、ゲーム内のオブジェクトに取り付けた設定パネルを思い浮かべるとよい。それでも、シーンの構築、UIとアプリケーションの接続、操作の管理、パフォーマンスの検証は開発者が行う必要がある。このAPIがゲームや動作する3D環境を自動で生成するわけではない。

ブラウザーの対応状況と限界

提案は進化の途上にあり、情報源によって展開状況の説明が異なる。Operaの発表はHTML-in-Canvasを早期プレビューとして位置づけている。ブログではまずOpera One、GXとNeonは後続とされる一方、試用の項では3つすべてが挙げられている。バージョンごとに同じ対応を想定せず、インストール済みのブラウザーとデモで確認してほしい(Opera)。

Googleの開発者ブログはChrome 157での安定版実装を報告しているが、WICGのexplainerはChromium実装を依然としてフラグ制御と説明している。ドキュメントごとに対象バージョンや更新時期が異なる可能性があり、いずれも普遍的なブラウザー対応を裏づけるものではない(Chrome、WICG)。

公開ウェブサイトやゲームでは、対応を検出し、従来型のHTMLインターフェースなどのフォールバックを用意すべきだ。キーボード操作、支援技術、モバイルでの挙動、パフォーマンス、セキュリティ上の制限も、自分の実装でテストする必要がある。本物のHTMLはセマンティクスの維持に役立つが、要素を3Dで描画したからといって、すべての体験が自動的にアクセシブルになるわけではない。

ブラウザーの対応状況と限界
疑問分かっていること
Opera独自の技術か違う。提案は公開の場で開発されており、Operaは自社ブラウザーで披露している。
任意の外部サイトを表示できるか同一オリジンの制限が適用され、任意のサードパーティページが自動的に使えるわけではない。
3Dエンジンの代わりになるかならない。開発者は引き続きシーンとアプリケーションを構築する必要がある。
どこでも対応しているかしていない。対応はブラウザーとバージョンにより異なる。機能検出とフォールバックを使うこと。

出典:Opera、WICG、Chrome for Developers。

試す方法

Operaは、Gamer Roomなどの例を集めたデモギャラリーを公開している。同社によれば、対応するOperaのバージョンでは追加設定なしでデモを試せる。ブログには、より広く使うためのEarly Bird設定の説明もある。提供状況の説明が一致していないため、自分のバージョンで結果を確認し、プレビューとして扱ってほしい。

私たちの見方

HTML-in-Canvasは、リッチなウェブインターフェースをインタラクティブな3D体験の中でより自然に感じさせる可能性がある。最も魅力的な用途は、ウェブサイト全体を空間に浮かべることとは限らない。読みやすいダッシュボード、使いやすいインベントリ、適切な位置に置かれた設定パネルは、ユーザーにインターフェースを覚え直させることなく価値を加えられる。

この機能は有望だが、普及はブラウザーの対応、アクセシビリティ、実際のプロジェクトで必要となる実装作業の量に左右される。今のところは試してみる価値がある。ただし、非対応のブラウザーを使う訪問者のために、従来型のフォールバックを残しておくこと。

出典

この記事の誤りに気づかれましたか? 報告する · 訂正ポリシー

Rekhaのアイコン:一筆書きで描かれた家

同じ筆者による作品 自社紹介

一筆書きの道を、指でたどる

OrigoTechの筆者が作ったiPhoneゲーム「Rekha」:同じ線を二度たどらずに、すべての点を一筆でつなぐ。500種類の図形は、どれも必ず解けます。

OrigoTechニュースレター

AIツールのニュースを、出典付きで毎週まとめて配信。

次に読む