質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

1246閲覧

Unityで作成したプロジェクトをWebGlでビルドしたい

meta2001

総合スコア4

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2023/03/20 15:05

Unityで作成したプロジェクトをWebGLでビルドして実行したところ、以下のようなエラーが出ました。

Shader error in 'Universal Render Pipeline/Terrain/Lit': maximum ps_5_0 sampler register index (16) exceeded at (2)/Library/PackageCache/com.unity.render-pipelines.universal@12.1.10/ShaderLibrary/AmbientOcclusion.hlsl(8) (on gles)

このエラーの解決方法を教えてください。お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ChatGPT(GPT-4)が生成した文章です

このエラーは、シェーダーがWebGL(OpenGL ES)で許可されている最大サンプラー数を超えていることを示しています。この問題を解決するには、以下の手順に従ってください。

1.Unityエディタでプロジェクトを開きます。
2.メニューバーの[Edit] > [Project Settings]をクリックしてプロジェクト設定ウィンドウを開きます。
3.プロジェクト設定ウィンドウの左側のメニューから[Graphics]を選択します。
4.[Scriptable Render Pipeline Settings]で、Universal Render Pipelineのアセットを選択します。もしアセットがなければ、[Create] > [Rendering] > [Universal Render Pipeline] > [Pipeline Asset]から新しいURPアセットを作成し、[Scriptable Render Pipeline Settings]に設定します。
5.Universal Render Pipelineアセットをダブルクリックしてインスペクターウィンドウを開きます。
6.[Advanced]セクションを展開し、[Shader Variant Removal]設定を見つけます。
7.ここで、[Remove Shadow Casting]と[Remove Ambient Occlusion]の両方のオプションにチェックを入れます。これにより、シェーダーバリアントが削減され、WebGLで許可されているサンプラー数に収まるようになります。
8.Unityエディタでシーンを保存し、再度WebGLビルドを実行してください。エラーが解消されるはずです。

この手順に従うことで、シェーダーエラーが解決されるはずです。ただし、シャドウキャスティングとアンビエントオクルージョンが削除されたことにより、レンダリング品質が若干低下することに注意してください。これは、WebGLターゲットプラットフォームの制約によるものです。

投稿2023/03/20 20:17

編集2023/03/21 12:34
quiz

総合スコア269

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meta2001

2023/03/21 07:26 編集

advanceセクションがないのですが、その場合どうしたらよろしいのでしょうか? ちなみにスクリプタブルパイプライン設定にはURP-HighFidenlity(Universal Render Pipeline Asset)が設定されていたのですが、このままで大丈夫ですか?
fiveHundred

2023/03/21 12:28

なんかユーザー名からして、AIが生成した回答のような気がします。 もしそうであれば、以下の対応をお願いします。 > AIが生成した文章と解るように「{アルゴリズム名/サービス名}が生成した文章です」などの文言を最初の行に追加すること (https://blog.teratail.com/entry/ai-terms)
quiz

2023/03/21 12:36

ChatGPT(GPT-4)が生成した文章です Universal Render Pipelineのバージョンによっては、先ほどの手順で「Advanced」セクションが見つからない場合があります。その場合、以下の手順でシェーダーのサンプラー数を削減する方法を試してみてください。 プロジェクトのAssetsフォルダ内で、新しいシェーダーを作成します。右クリックして[Create] > [Shader] > [Universal Render Pipeline] > [Unlit Shader]を選択し、適切な名前を付けます。 新しく作成したシェーダーを開き、シェーダーコードを編集します。不要なテクスチャサンプラーを削除するか、必要最低限の機能に絞り込んでシェーダーをカスタマイズしてください。これにより、サンプラー数がWebGLで許可される範囲内に収まるようになります。 新しく作成したシェーダーを使用するように、影響を受けるマテリアルを更新します。マテリアルのインスペクターウィンドウで、シェーダーのドロップダウンリストから新しいシェーダーを選択して適用してください。 URP-HighFidelity (Universal Render Pipeline Asset) について、このアセットはUniversal Render Pipelineの高品質な設定が適用されています。WebGL向けにビルドする際には、パフォーマンスや互換性の制約があるため、シェーダーのカスタマイズや機能の削減が必要になる場合があります。先ほどの手順でカスタムシェーダーを作成して適用することで、WebGL向けの設定を最適化することができます。 これらの手順を試して、シェーダーエラーが解決されるかどうか確認してください。
meta2001

2023/03/21 17:31

すいません。正直シェーダーのカスタマイズがよくわかりません。Unityをはじめてまだ半年ほどなので、わかりやすくて簡単な方法があればお願いしたいです。 エラー以外にもこんな警告が2つ出ています。 ① Script attached to 'Terrain' in scene 'Assets/Scenes/Main.unity' is missing or no valid script is attached. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) ② Shader warning in 'Hidden/Universal Render Pipeline/CopyDepth': implicit truncation of vector type at (2)/Library/PackageCache/com.unity.render-pipelines.universal@12.1.10/Shaders/Utils/CopyDepthPass.hlsl(104) (on gles) 初心者過ぎて申し訳ないのですが、教えていただきたいです。
quiz

2023/03/22 13:08

**ChatGPT(GPT-4)ではなく人間が書いています。** まずは一度、エラーだけではなく全体的なスクリプトを提示していただいた方がわかりやすいかと思います。 エラーだけで判断出来るのはAIのみだと思いますので、まずは一度全体のスクリプトを提示していただければと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問