2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UnityでのShader Variant設定方法

Posted at

UnityEditorではちゃんと見えるのに、ビルドしてiOSで見たら見た目が違う!!みたいなことになって困ったことはないでしょうか?それはもしかしたらShader Vriantが設定されていないことから、ビルドに適切なShaderが含まれていないことが原因かもしれません。

はじめに

ShaderVariantとはについては、[Unity]ShaderVariantについて~前編:ShaderVariantとは?~ を読んでもらうとわかりやすいかと思います。

前提

  • Mac
    • 試していませんが、Windowsでも同じ手順だと思います
  • Unity 2021.2.11f1

手順

1. VariantのShader、Keywords取得

  1. Frame Debugger(Window → Analysis → Frame Debugger)を起動します。
  2. Enableを押します。
    Cursor_と_Menubar_と_Frame_Debug_と_UTJ_FrameDebugSave_UI_FrameEventDebugSaveWindow.png
  3. 追加したいオブジェクトが表示されるところを選択し、Shader、Keywordsを取得します。
    該当箇所をクリックしてctr+c v で取得できます。
    Cursor_と_Frame_Debug_と_SampleScene_-shader-variant-Windows__Mac__Linux-Unity_2021_2_11f1__Metal.png
    Standard, SubShader #0
    DIRECTIONAL LIGHTPROBE_SH SHADOWS_SCREEN
    
  4. 他のオブジェクト、他の部位などもある場合は、それぞれShader、Keywordsを取得しておきます。

2. Shader Variantsの設定を作成する

  1. Create → Shader Variant Collectionを選択して、ShaderVariantsを作成します。
    1. 必要に応じてリネームしてください。
    2. 今回のアバターはStandardシェーダーを使っていたので、StandardShaderVariantsに変更しました。
  2. Add shaderを押して追加したいShader Variantsのシェーダーを選択します。
    SampleScene_-shader-variant-Windows__Mac__Linux-Unity_2021_2_11f1__Metal.png
    1. 今回はStandardシェーダーを選択しています。
  3. 右下にある+を押してVariantsを追加します
    SampleScene_-shader-variant-Windows__Mac__Linux-Unity_2021_2_11f1__Metal (1).png
  4. Variantsの選択
    1. Pick shader keywords to narrow down variant list: に表示されている項目から、1.3、1.4で取得したKeywordsの値を選びます。
    2. Selected keywordsに追加され、Shader variants with these keywords に表示されるVariantsがフィルタされます。
    3. Shader variants with these keywordsを選択します。
      1. クリックするとチェックがつきます。
      2. Keywordsと完全一致するものがない場合もありますが、その場合は次の手順(2.5)のテキストエディタで直接修正します
    4. Add 1 selected variants を押します
      1. 選んでいるvariantsの数によって1のところは変わります
        Add_shader_Standard_variants_to_collection_と_SampleScene_-shader-variant-Windows__Mac__Linux-Unity_2021_2_11f1__Metal.png
  5. 4で選択できなかった場合、.shadervarinatsファイルをテキストエディタで開いて、直接Variantsの値を書き込みます。ここでは14行目にSHADOWS_SCREENを足しています。
    StandardShaderVariants_shadervariants_と_SampleScene_-shader-variant-Windows__Mac__Linux-Unity_2021_2_11f1__Metal.png

3. ビルド時にShader Variantsを追加する設定

  1. Project Settings → Graphics を開きビルドで追加したいプラットフォームを選択します。
  2. Shader LoadingのPreloaded ShadersのSizeを1にして、Element 0に2で作ったVariantsを設定します。
    SampleScene_-shader-variant-Windows__Mac__Linux-Unity_2021_2_11f1__Metal (2).png
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?