メインコンテンツまでスキップ

フォトフィルタギミック | PhotoFilter Gimmick

このページは、フォトフィルタギミックの説明ページです。

PhotoFilter_booth_01

VRChatのカメラで撮影した写真に、フィルムライクな色調を乗せるギミックです。

はじめに確認してください
  • PC専用です。Questでは動作しません(Quest環境では自動的に非表示になります)
  • フィルタが掛かるのはVRChatカメラだけで、自分の視界の色は変化しません
  • ミラーには適用されません
  • 追加されるパラメータはすべてローカル専用のため、同期コストは0ビットです。Expressionパラメータの枠も消費しません

前提アセット

これらは同梱していません。先にVCC / ALCOM等でVRChat SDK3 AvatarsとModular Avatarを導入してから、PhotoFilterのunitypackageをインポートしてください。

動作確認環境

パッケージバージョン
Unity2022.3.22f1
VRChat SDK3 Avatars3.10.4
NDMF1.14.4
Modular Avatar1.18.1

Modular Avatar 1.18.1はNDMF 1.14.3以上2.0.0未満を要求します。依存パッケージを更新する場合はこの範囲に収まっているか確認してください。

導入方法

  1. PhotoFilterGimmick.prefabをアバター直下にドラッグアンドドロップ

以上です。マテリアル・アニメーター・メニューはアバターのビルド時にNDMFが自動生成されます。プロジェクトに生成物のファイルは残らず、正常に生成された場合はPhotoFilterControllerコンポーネント自体もビルド時に取り除かれます。

PhotoFilterControllerのインスペクターでは、GradingsEnable Virtual Lens2 Compatibilityフィルタの表示範囲 (m)を設定できます。Gradingsはメニューに並べるフィルタのリストで、並び順がそのままメニューの並び順になります。開発者設定の中にあるShader参照は変更しないでください。

フィルタの表示範囲

フィルタの表示範囲 (m)は、フィルタを描画するScreenのBounds(描画判定に使われる範囲)を設定する項目です。通常のカメラでは、既定値の5mで問題ありません。

ドローンカメラがアバターから離れると、移動途中でScreenが描画対象から外れ、フィルタが途切れることがあります。ドローンカメラを使っていて、途中でフィルタが途切れてしまう場合は、この値を大きくしてください。値を変更したら、ドローンを実際に移動させて、撮影に使う範囲全体でフィルタが途切れないことを確認してください。

この設定で変わるのはフィルタの表示範囲だけです。フィルタの強さや見た目は変わりません。値を必要以上に大きくすると、離れた位置でもScreenが描画対象になり続けるため、撮影に必要な範囲を満たす最小の値にしてください。

使い方

ExpressionメニューにPhotoFilterメニューが自動で追加されます。

項目内容
ONフィルタの有効・無効
Filterフィルタ(グレーディング)の選択
Intensity効果の強さ
Grainフィルムグレイン(粒状感)の量
Vignette周辺光量落ち

標準で16種類のフィルタを収録しています。

16種類のフィルタの比較

名前傾向
Standard標準
Cleanコントラストを抑えた素直な発色
Vivid高彩度・高コントラスト
Softシャドウを持ち上げたやわらかい階調
Classic彩度を抑えたクラシックな色調
Nostalgic褪せた暖色のレトロ調
Cinemaシャドウを寒色に振ったシネマ調
Golden夕方のような暖色
Cool寒色寄りの落ち着いた色
Urban彩度を抑えた硬質で都会的な色
Monoコントラストのあるモノクロ
Silver階調を残したフィルム調モノクロ
Bleach低彩度・高コントラスト
Cyanotype青系の単色
Duotoneシャドウとハイライトを別の色にする
Sepiaセピア調モノクロ

Tips

自作LUTの取り込み

Lightroom / DaVinci Resolve等で書き出した.cubeファイルを取り込めます。

  1. Assets > cacao > PhotoFilter > .cube を LUT テクスチャに変換を実行し、.cubeを変換します
  2. Create > cacao > PhotoFilter > GradingPhotoFilterGradingアセットを新規作成します
  3. 作成したアセットのLUT欄に、変換したテクスチャを設定します
  4. PhotoFilterControllerGradingsリストに追加します

.cube側の条件は次のとおりです。

  • 3D LUTのみ対応です(1D LUTは非対応)
  • DOMAINは0..1のみ対応です
  • LUTはガンマ空間で作成してください

変換後のテクスチャには、必要なインポート設定(sRGB OFF / 非圧縮 / ミップマップ無し / Clamp)が自動で適用されます。手動でテクスチャを用意する場合もこの設定が必須で、圧縮を掛けると色が破綻します。

VirtualLens2と併用する場合

標準の状態では、フィルタはVRChat標準カメラだけを対象にします。VirtualLens2の撮影結果にもフィルタを掛けたい場合だけ、PhotoFilterControllerEnable Virtual Lens2 Compatibilityを有効にしてください。

有効にした場合、掛かる効果が次のように変わります。

色調グレインビネット
VirtualLens2なし
VirtualLens2あり××

グレインとビネットはレンズ描写より後段の効果のため、VirtualLens2のキャプチャに乗せると後からボケが掛かってしまいます。またVirtualLens2のキャプチャ画像は周囲にパディングがあり、ビネットの中心が実際の画角とずれるため、意図的に除外しています。

警告

VirtualLens2を使用するときは、VRChat本体のカメラのフォーカスをOFFにしてください。二重にボケが掛かります。

グレインとフォーカス(被写界深度)の併用について

VRChat標準カメラのフォーカスは、シーンを描画したに掛かるポストプロセスです。本ギミックはシーン描画の中で動くため、グレインを乗せた後にボケが掛かります。実際のフィルムは「レンズでボケる → 粒子が乗る」順なので、これとは逆になります。

ボケた領域でグレインが溶けるのが気になる場合は、標準カメラのフォーカスをOFFにするか、Grainを0にしてください。Grainの既定値は0です。

更新履歴

  • v1.0.1 (2026/08/22) Boundsの設定項目を追加
  • v1.0.0 (2026/08/21) 公開