序文
誰かのニーズに基づいて、私たちは簡単な技術調査を行いました。つまり、Unity プロジェクトを WeChat ミニゲームに変換しました。
この記事の主な内容: Unity で小規模なゲームを変換する手順、発生した問題の解決策、簡単なパフォーマンス テストの比較
WeChat ミニゲームの制限事項
WeChat ミニゲームには、プログラム パッケージのサイズに厳しい制限があります。最初のパッケージは 2M 未満でなければならず、最初のパッケージとサブパッケージ (ロード後) は 20M を超えてはなりません。もちろん、オンライン読み込み用にゲーム リソースをパッケージ化することもできます。ただし、WeChat のこの部分にも制限が課せられます。永続ストレージ領域は 200M を超えてはなりません。言い換えれば、ゲームの完全なエクスペリエンス パッケージが 2 億を超える場合は、どの部分をローカルにキャッシュできるか、また、実行するたびに再ダウンロードする必要がある場合でもユーザーを興奮させない部分について適切な選択をする必要があります。 。 。 。 。 。 。
最初のパッケージが 2M 未満であることを心配する必要はありません。WeChat ミニ ゲーム プラットフォームは、Unity 開発者に非常に便利な変換ツールを提供します。このツールを使用すると、WebGL プロジェクトを WeChat ミニゲームに直接パッケージ化できるだけでなく、最適化の提案を自動的に提供し、テクスチャやその他のリソースのワンクリック最適化を実行することもできます。 Unity WeChat ミニゲーム パッケージ化プラグイン
1.WeChatミニゲームプロジェクトの変換
1.1 準備
-
まず、既存の Unity プロジェクトを WebGL プラットフォームに変換し、正常に実行できることを確認します。 「ビルド設定」を入力し、「WebGL」をクリックしてから、「プラットフォームの切り替え」をクリックしてプロジェクトを変換します
-
Unity パッケージ化プラグインのダウンロード
Unity WeChat ミニゲーム パッケージ化プラグイン -
ダウンロードが完了すると、次のようになります。
-
ダブルクリックしてプラグイン インポート インターフェイスに入り、[すべて] ボタンを選択し、[インポート] をクリックしてプロジェクトにインポートします。
4 Chen Gong がインポートすると、「WeChat Mini」ゲーム」ボタンが Unity の上のツールバーに表示されます:
1.2 WeChat ミニゲームのエクスポートを設定する
- 変換ミニゲームをクリックして設定ウィンドウを表示します
設定ウィンドウの内容は比較的理解しやすいです。以下の説明では、最も重要なものだけが選択されています:
ゲーム AppID: WeChat ミニ ゲーム ID。この ID は、アカウントを作成し、WeChat ミニ ゲーム プラットフォームでゲームを構築することによって取得する必要があります。 ID の後にここに入力します。これが空の場合、プログラムは実行できません
ゲーム リソース CDN: ゲームのロード本体が配置される場所です。ミニゲーム作成者の場合、HTTP プロトコルの使用が許可されていることに注意してください。他の人がテストと開発に参加して、他の人が WeChat でミニゲームをテストできるようにするには、サーバーが HTTPS をサポートしている必要があります。 。ここを空にすることはできません
ユニティ ヒープ メモリ: ユニティ メモリのヒープ サイズ設定。通常、ここではデフォルト設定を使用できます。ただし、小さなゲームのサイズが大きく、大量のメモリを消費する場合は、この設定を増やす必要があります。そうしないとコンパイルに合格しません。
WebGL2.0 (bate): この設定は、失敗エラーを解決するために使用されます: プレーヤーの構築エラー: グラフィックス API と互換性のない色空間
1.3 ミニゲームのエクスポート
- 関連する設定を行った後、[生成して変換] ボタンをクリックしてプロジェクトのエクスポートを開始できます。はい、Unity の組み込みビルディング機能はもう使用しません。今後、このボタンを使用してプロジェクトをエクスポートします。
長い待ち時間が始まります
エクスポートは正常に完了しました。出力ディレクトリに 2 つのフォルダーがあることに驚くでしょう。ナンニ? ?
ミニゲームは、ゲーム プロジェクトに基づいて WeChat ミニ ゲームによって生成されるホームページ プログラムです。これは単なるホームページであり、ゲーム自体は含まれません。このファイルは WeChat ミニゲーム プラットフォームにアップロードする必要があります。
webgl はゲームそのものであり、リソース サーバーに配置する必要があります。 Tencent Cloud (より優れたサポート、より高価)、他のブランド、または独自のサーバーを使用できます。サーバー上のこのフォルダーのディレクトリは、 前の手順の「Game Resources CDN」 のパスです。
上記の手順を完了すると、ミニゲーム プラットフォームでテスト リンクを申請し、携帯電話の WeChat を通じて自分の WeChat ミニ ゲームを検索してテストすることができます。
2. 発生する可能性のある問題
1 エラー: Unity がミニゲームをエクスポートするときに、次のレポートが表示される場合があります: プレーヤーの構築エラー: グラフィックス API と互換性のない色空間。
解決策: 「ミニ ゲーム変換」設定ウィンドウで「WebGL2.0(bate)」をチェックしてください。
2 エラー: ミニ ゲームを実行するときWeChat またはエミュレータを使用すると、Web コンソールにエラーが報告されます: プラグインが承認されていません
解決策: [WeChat ミニ ゲームの変換] ウィンドウの [ゲーム AppID] が正しいかどうかを確認してください。
3 問題: エミュレータまたは携帯電話で WeChat ミニゲームを実行すると、次のメッセージが表示されます: リソースのダウンロードに失敗しました。同時に、コンソールには、リソース パッケージのダウンロードが失敗したことを示すメッセージが表示されます。
解決策: [WeChat ミニ ゲームの変換] ウィンドウの [ゲーム リソース CDN] が正しく設定されているかどうかを確認します。
4 問題: WeChat を実行するとエミュレータがクラッシュします。ミニ プログラム
解決策: 携帯電話を使用した直接デバッグは、多くの場合成功します。
3 つのパフォーマンス テスト
3.1. 物理ブロックストレステスト
テスト ハードウェア: iphone12 pro
テスト プラットフォーム: ミニ プログラム
ゲーム パッケージ サイズ (WeChat ストレージ): 14.5M
パケット サイズ (独自のサーバー ストレージ): 24.1M
レンダリング パイプライン: URP
3.2. ブロックレンダリングストレステスト
テスト ハードウェア: iphone12 pro
テスト プラットフォーム: ios
ゲーム パッケージ サイズ: 55.3M
レンダリング パイプライン: URP
3.3 WeChat ミニゲームと IOS の水平比較
3.4 テストの結論:
- WeChat ミニ ゲーム レンダリング エンジンは、Webwiew よりも強力なパフォーマンスを持つ WebGL API を直接呼び出すと主張しています。しかし、パフォーマンスから判断すると、あまり改善されておらず、ネイティブ アプリケーションと比較すると大きな差があります。
- テーブル データによれば、純粋なレンダリング モードであっても物理エンジン モードであっても、パフォーマンスには大きな制限があることがわかります。特に描画面数が2万程度になるとフレームレートが20を下回り、明らかにラグ感が出てきます。レンダリング面の数が 30,000 に達すると、通常のインタラクティブな操作ができなくなります。
- ゲームの同時レンダリングが多数ある場合、クラッシュ現象が発生します。テストだけでなく、オンラインで公開されている一部の成熟したゲーム作品にも適用されます。