本文へスキップ

Snapchat Web Lenses入門:PlayCanvasでHTML5ゲームをSnapchatゲームにする方法

abe ·

SnapchatでWebゲームがWeb Lensesとして動くようになり、Snapが推奨するエンジンはPlayCanvasです。ルール、制限、API、Webビルドから公開までの手順をまとめました。

Snapchat Web Lensesのカバー画像:縦画面のスマホに映る4本のWebゲームと、Snapchat + PlayCanvas・WebゲームがSnapにの文字

Snapchat Web Lensesを使えば、普通のHTML5ゲームのビルドをzipにまとめて、SnapchatのLens(レンズ)として公開できます。最初のユースケースはゲームで、機能はベータ版です。どのWebフレームワークでも使えますが、SnapはPlayCanvasを推奨しており、ドキュメントでも全面的にPlayCanvasを使っています。Lens Studioを開く必要は一切ありません。

PlayCanvasは2026年10月23日にこの対応を発表し、同時に最初の4本のゲームがすでに公開されています。このガイドでは、Web Lensとは何か、ビルドが満たすべき厳格な制限、Web Lens APIでできること、そしてWebビルドから、名前やSnapcodeでプレイヤーが見つけられるゲームになるまでの実践的な5ステップを解説します。

Snapchat Web Lensesの概要

概要 zipにパッケージしてSnapchatのLensとして公開するWebアプリ
対応環境 iOS版・Android版Snapchat
画面 全画面の縦向き、9:16(横向きは非対応)
エンジン どのWebフレームワークでも可。SnapはPlayCanvasを推奨
パッケージサイズ zipは最大8 MB、zipのルートに置くindex.htmlは最大1 MB
ランタイム WebAssembly(マルチスレッド含む)、Web Workers、eval()に対応
サンドボックス ネットワーク、カメラ、マイク、モーションセンサーは使用不可
Snapchatの機能 Web Lens API経由でリーダーボード、Bitmoji、Storage
ステータス ベータ版。仕様は変更される可能性あり

Snapchat Web Lensesとして動く最初のPlayCanvasゲーム。Bloom、Ball Smasher、Snake Showdown、Bitmoji Skiが縦画面のスマホに表示されている、画像:PlayCanvasおよび各ゲームの制作者

Webゲーム開発者が注目すべき理由

Snapの2026年第2四半期決算によると、Snapchatは毎月9億7100万人に利用されており、Snapは同社のGame Lensesが毎月1億7500万人以上に遊ばれていると報告しています。Web Lensesなら、アプリストアへの掲載もインストールもなしに、Web開発者がこの巨大なユーザー層にリーチできます。プレイヤーは普段Lensを試すのと同じ感覚でゲームを起動します。

最初の開発者たちが公開した初期の数字から、どれだけの可能性があるかが見えてきます。

ゲーム スタジオ ジャンル 開発者の報告
Bloom NOWWA 癒やし系ガーデンパズル 1セッション平均約260秒、翌日に戻ってくる人が約30%
Ball Smasher MetaM ストリートバスケットボールシューター 数時間でプロトタイプ完成、数日で数百万プレイ
Snake Showdown Elanra Studios スネークバトル 最初の4週間で180万人のプレイヤーが700万回プレイ
Bitmoji Ski Snap スキーアーケード 1日で制作、1日600万インプレッション

収益化については、SnapのLens+ Payoutsプログラムを使うと、条件を満たすクリエイター(18歳以上、対象国在住)がLensをLens+およびPlatinumの加入者限定に設定し、エンゲージメントに応じた収益分配を受けられます。さらにSnapは、オリジナルのWeb Lensゲームの企画を開発資金つきで募集しており、リーダーボードのようなソーシャルなループを軸にしたゲームを優先しています。

ビルドが守るべきルール

アップロードが却下される原因の多くは、ごく少数のパッケージングミスです。ゲームのコードを書く前に、これらを押さえておきましょう。

Web Lensの公開フローの図:Webコード、8 MB以下のzip、アップロード、審査、9:16のスマホ画面

  1. 縦画面のみ。 Lensは9:16の全画面で動きます。カメラ、HUD、ボタンは最初から片手操作を前提に設計しましょう。
  2. zipは8 MB以下。 この制限は圧縮後のアップロードに適用されます。目標ではなく上限と考えてください。zipが小さいほど読み込みが速く、最初に遊べるまでの時間が何より重要です。
  3. index.htmlはルートに置き、1 MB以下に。 ビルドフォルダそのものではなく、フォルダの中身をzipにします。index.htmlは軽いエントリーポイントにとどめ、バンドル全体や大きなdata: URLをインラインで埋め込まないようにします。
  4. パスはすべて相対パスに。 HTMLでも実行時のfetch()呼び出しでも、/a/game.jsではなく./a/game.jsを使います。Viteならbase: './'を設定します。
  5. zip内のパス区切りはスラッシュに。 WindowsのPowerShellのCompress-Archiveはバックスラッシュで書き込むため、パスが壊れます。エクスプローラーの「ZIPファイルに圧縮する」、zip -r、またはarchiverパッケージを使ったNodeスクリプトで作成し、unzip -lで確認しましょう。

Web Lensのzip構成の正しい例と誤った例:zipのルートにあるindex.htmlと、distフォルダの中に隠れたindex.html

サンドボックス:Web Lensにできないこと

Web Lensは自己完結型です。ネットワークにアクセスできず、カメラやマイクも使えず、モーションセンサーも読めません。また、localStorageとIndexedDBは起動のたびに空の状態から始まります。実際には次のような意味になります。

  • スクリプト、モデル、テクスチャ、フォント、サウンドはすべてzipに同梱する必要があります。
  • アナリティクスの送信、リモート設定、オンラインマルチプレイのバックエンドは使えません。
  • 進行状況はWeb Lens APIのStorage機能で保存する必要があります。

Web Lensのサンドボックスの図:ネットワーク、カメラ、マイク、モーションセンサーはブロックされ、リーダーボード、Bitmoji、ストレージは利用できる

Web Lens API:リーダーボード、Bitmoji、ストレージ

SnapのAPI(npmパッケージ@snap/web-lens-api)がゲームとSnapchatをつなぎます。起動時にinit()を一度呼び、各機能を使う前にisSupported()で確認します。Snapchatの外、つまりパソコンやローカルの開発サーバーでは、APIは組み込みのスタブがサンプルデータで応答するので、スマホなしでも開発できます。ただし、機能が使えない場合でもゲームが遊べる状態を保つようにしましょう。

機能 できること 注意点
リーダーボード スコアを送信し、Snapchat純正のリーダーボード画面を開く スコアは整数のみ。タイムアタックは昇順を使う。スコアを抜かれたときに友だちへ通知が届くことがある
Bitmoji プレイヤーのBitmojiを、リグ付き3D GLBまたは2Dの胸から上の画像として読み込む URLは約5分で失効。Bitmojiにアニメーションは付属しない。デフォルトのキャラクターを必ず同梱する
Storage プレイヤーのアカウントに紐づく小さなキーバリューストア 各値は最大32 KiBのJSON、1つのLensにつきプレイヤーごとに合計100 KiB。進行が変わったときとページが非表示になったときに保存する

良いリーダーボードは、正確さ、速さ、生存時間など、プレイヤーが伸ばしたくなる要素を評価し、もう一回挑戦するのをワンタップで済ませます。進行状況の保存も同じくらい考える価値があります。セッションをまたいで残すべきもの(ベストスコア、解放したステージ)と、リセットしても問題ないものを決めておきましょう。

Webビルドから公開まで5ステップ

  1. ワークフローを選ぶ。 PlayCanvas Engineを使った通常のJavaScriptプロジェクト(AIコーディングアシスタントとの相性が抜群)をnpm create playcanvas@latest my-lens -- --starter web-lensで作るか、ブラウザで動くPlayCanvas Editorを使います。EditorはEditor MCP Server経由でAIアシスタントと連携できます。スターターには、縦画面レイアウト、セーフエリア、相対パス、パッケージング、Web Lens APIの設定が最初から組み込まれています。
  2. PlayCanvas Skillsを追加する(任意)。 npx skills add playcanvas/skillsを実行すると、対応するAIコーディングエージェントが、PlayCanvasでのシーン、アニメーション、HUD、エフェクトの組み方を覚えます。
  3. スマホ向けにビルドする。 Snapchatは上部付近に独自の閉じるボタンを表示するので、HUDはenv(safe-area-inset-*)の内側に収めます。動きは経過時間に応じてスケールさせ(多くのスマホは120 Hzで動作します)、オーディオはユーザー操作をきっかけに開始し、Lensが非表示になったら一時停止します。エンジンのクラスは名前を指定してimportし、バンドラーが未使用コードを削れるようにします。テクスチャは圧縮し、ソースマップは含めません。
  4. APIを組み込む。 ゲームオーバー時にスコアを送信し、必要ならBitmojiを読み込み、Storageで進行状況を保存します。
  5. パッケージ化、アップロード、申請。 スタータープロジェクトでは、npm run packageでビルドし、Snapのルールに沿っているかzipをチェックできます。その後My Lensesにサインインし、Web Lensを作成してzipをアップロードし、名前、512 × 512のPNGアイコン、5秒間の720 × 1280プレビュー動画を追加します。審査を通過すると、プレイヤーは名前やSnapcodeでゲームを見つけられるようになります。

コードを書きたくない場合は、SnapのAI Lens作成ツールEasy Lensが、テキストのプロンプトからPlayCanvasベースのWeb Lensゲームを作れるようになりました。Easy Lensのweb版で、Lens+の加入者が利用できます。

Web Lensに向いているゲームは?

向いている 向いていない
片手で遊べるアーケード、パズル、スコアアタック 横画面やキーボード・マウス前提のゲーム
短いセッションとすぐにやり直せる設計 サーバーに依存する長時間のセッション
小さく圧縮されたアセット 実行時の大容量アセットのダウンロード
リーダーボードで競う仕組み リアルタイムのオンライン対戦

まずは起動から遊べるまでが短い小さなプロジェクトから始めましょう。タッチ操作、画面端、オーディオ、一時停止、リスタートは実機のスマホでテストし(npx vite preview --hostを使えば、スマホのブラウザでビルドを開けます)、プラットフォーム固有の変更はすべてメモしておけば、後のアップデートで元に戻してしまうのを防げます。

公式の詳細は、SnapのWeb Lensesドキュメント、プラットフォーム要件、PlayCanvasの発表記事をご覧ください。

よくある質問

Snapchat Web Lensとは何ですか?

Web Lensは、SnapchatのLensとして動くWebアプリです。Web技術で作り、ビルドをzipにしてMy Lensesからアップロードします。Lens Studioは必要ありません。

PlayCanvasを使わなければいけませんか?

いいえ。どのWebフレームワークでも使えますが、SnapはPlayCanvasを推奨しており、ドキュメントではPlayCanvasとViteの組み合わせを使っています。

Web Lensのゲームはどのくらいの大きさまで作れますか?

圧縮後のzipは最大8 MB、そのルートにあるindex.htmlは最大1 MBです。これはベータ版の制限なので、アップロード前に最新の要件を確認してください。

Web Lensでインターネットやマルチプレイサーバーは使えますか?

いいえ。Web Lensはネットワークにアクセスできないため、アセットはすべて同梱する必要があり、オンラインマルチプレイのバックエンドは使えません。その代わり、リーダーボードはWeb Lens API経由で利用できます。

プレイヤーの進行状況はどう保存しますか?

Web Lens APIのStorage機能を使います。通常のブラウザストレージは、Lensを開くたびに空の状態から始まります。

Web Lensのゲームで収益を得られますか?

条件を満たすクリエイターはLens+ Payoutsに参加でき、Lens+およびPlatinumの加入者限定に設定したLensの収益分配を受けられます。また、Snapは資金提供つきのゲーム企画も受け付けています。

関連記事

ゲームを読み込み中…

VENOGAME / PLAYBOOK

マイアリーナ

この端末に保存。アカウント不要。

ハートを押して自分だけのコレクションを。