Expression Menuからシェーダーを切り替えられるようにする手順の解説です。
ファーシェーダー等の高負荷シェーダーのオンオフ切り替えや、シェーダー移行テストに便利です。

大まかな手順

  1. マテリアルを複製し、目的のシェーダーを適用する
  2. マテリアルスロット内のマテリアルを入れ替えたAnimationを作成する
  3. Expression Menuから適用するAnimationを切り替えられるようにする

この方法では、マテリアル数は増えますが、マテリアルスロットサイズ(アバターパフォーマンスランクに影響する値)は増えません。

以下、詳細な手順の解説です。


背景

  • ファーシェーダーを使いたい。高負荷なので、集会などでは通常シェーダーに変更できるようにしたい。
  • 新しいシェーダーに移行させたい。試験運用中はいつでも元のシェーダーに戻せるようにしたい。
  • ワールドに合わせ、複数のシェーダー設定を使い分けたい。

→ メニューから切り替えできるようにしよう!

手順

別のシェーダーを適用したマテリアルを用意する

  1. アバターBodyの Materials から、対象のマテリアルを選択する。
  2. マテリアルを1度クリックし、Ctrl+D で複製する。わかりやすい名前に変更しておく。
  3. アバターBodyの Materials から、作成したマテリアルを適用する。
  4. 新しいマテリアルに、目的のシェーダーを適用する。
    • シェーダーのパラメータもここで調整します。

この例では、liltoonファーの激重設定を使います。

ファーシェーダーの適用メモはこちら

以降、「マテリアル切り替えのアニメーションを作成し、ExMenuから再生できるようにする」という操作手順の説明です。

マテリアル変更のためのアニメーションを作成する

  1. Ctrl+6 でAnimationウィンドウを開く
  2. そのままHierarchyのアバターをクリックする
  3. アニメーションファイルを作成する
    • 空の場合、Createボタンを押して新規作成する
    • 既にアニメーションが存在する場合、Create New Clip...から新規作成する
  4. マテリアル変更後の状態を指定するためのアニメーションファイルを作成する
    • 赤丸(録画ボタン)を押す
    • マテリアルスロット内のマテリアルを変更する
    • 赤丸(録画ボタン)を押す
    • 0フレーム目のみが存在するアニメーションファイルが作成される
    • 例では disable_fur.anim とした
  5. 元の状態を指定するためのアニメーションファイルを作成する
    • Create New Clip...から新規作成する
    • 「赤丸 → マテリアルを一度変更し、戻す → 赤丸」で現在のマテリアルを指定するアニメーションを作る
    • 例では enable_fur.anim とした

以降、「ExMenuから適用Animationを切り替えられるようにする」という操作手順の説明です。

ExpressionMenuから適用Animationを切り替えられるようにする

  1. アバターの Expression - Parameters に設定されているファイルを開く
  2. Expression Parameter にBool型のパラメータを追加する
    • この例では DisableFur とした(後で使う)
    • ワールド移動や再起動をしてもシェーダー選択を維持してほしい場合のみSavedのチェックを入れる
  3. アバターの Expression - Menu に設定されているファイルを開く
  4. Expression Menuにシェーダー変更用の項目を追加する
    • Name は任意
    • Type はToggle
    • Parameter は先程作成したExpressionParameterのパラメータのものを選ぶ(例ではDisableFur
  5. アバターの Playable Layers - FX に設定されている項目を開く
  6. Animator - Parameters の+ボタン(Bool)から、先程作成したパラメータを追加する(例ではDisableFur
  7. Animator - Layers の+ボタンを押し、レイヤーを追加する
    • [重要]追加したレイヤーの Weight を1にする
  8. Stateを2つ追加し、双方向のTransitionを設定する
    • Stateは 余白を右クリック → Create State → Empty で作成できる
    • Transitionは Stateをクリック → Make Transition で作成できる
  9. 2つのStateに、作成したアニメーションを適用する
    • Stateを選び、Motionに作成したアニメーションをドラッグアンドドロップ
    • 例では、enable_furdisable_fur
  10. 2つのTransitionに、パラメータによる遷移条件を追加する
    • 行きのTransitionを選び、Conditionsに パラメータ名 true を追加する
    • 戻りのTransitionを選び、Conditionsに パラメータ名 false を追加する

あとはアップロードすれば完了です。

動作例