【画像認識フレーム風シェーダー】Detection Frame 【VRhat想定】
- Digital0 JPY















アバターの顔・目・髪飾り・手・小物などを、画像認識風のフレームで囲むVRChat向けシェーダーです。 主な機能 ・どの向きから見えるか、どの向きからは見えないかの設定 ・角のみのタイプと四角形の2種類用意 ・色や線の太さを変えることができます ・Phys Boneによる遅延追従(ゆっくりとした追従) ・距離によってフレームをフェード 仕組みとしては実Meshの頂点を元にフレームの大きさを決定しているのではなく、設定したボックスの8頂点からフレームの大きさを計算して、フレームを表示しています。
対応環境
・Unity 2022.3 で作成 ・VRChat Avatars SDK 3.0 ・VRChat PC版 NDMFの導入を推奨します。(Modular Avatarを導入すると自動的に導入されます) 現在ベータ版のVRChat unity6環境でも動作しているので、unity6になっても大丈夫なはずです
使い方
①zipを展開し、「DetectionFrame.unitypackage」をunityにインポートする ②コンパイル完了後、Hierarchy上のアバターを右クリックしてDetection Frame > Create Detection Frameを実行します ③アバターの子として「Detection Frame」が作成されます ④Detection Frameのインスペクターを確認すると「Detection Frame Authoring」というコンポーネントがあります ⑤Detection Boundsでフレームの場所、範囲を決定します。簡単に移動させたい場合は「Edit Bounds」を押し、シーン上からフレームを付けたい対象へCenter / Size / Rotationを合わせる事もできます。 ⑥Visibilityで表示したい方向を設定できます。範囲を少し調整したい場合はVisibility Angle Offsetを設定します ⑦Frame / Label Bar / Appearance / Distanceを好みの見た目へ調整します ⑧NDMF導入環境では、そのまま再生、またはビルドするとシェーダーを自動で作成してくれます(何もする必要がないです) ⑨Detection FrameにMA Bone Proxyを設定する事で追従します ⑩Phys Boneによる遅延追従を行いたい場合はその他にある「phys boneによる遅延追従を追加」を押してください。phys boneとrotation constraintを使用して 遅延追従機能が追加されます ⑪Detection Frame PBにMA Bone Proxyを設定する事で遅れて追従します(もしも子のDetection FrameにMA Bone Proxyを設定している場合はDetection Frameのコンポーネントは削除してください)
各種設定
・Detection Bounds Center:検出範囲の中心位置 Size:検出範囲の大きさ Rotation:検出範囲の向き Edit Bounds:Scene View上でCenter / Size / Rotationを編集 ・Visibility Visible Directions:表示を許可する方向 Visibility Angle Offset:基準角度45°を-45~+45°の範囲で補正 Offsetを-40°にすると、ほぼ真正面だけ表示されます。+45°にすると真横まで表示されます。 ・Frame Frame Type:Full / Corner Thickness:線の太さ Padding:フレーム範囲の微調整 ・Label Bar Length:バーの長さ Thickness:バーの太さ Offset:フレームからの距離 Down Label:バーを下側へ表示 ・Appearance Color:フレームとLabel Barの色 Emission Strength:発光の強さ ・Distance Fade Start:ディザフェードを開始する距離 Fade End:完全に消える距離
Q&A
Q. 写真の可愛いアバター誰? A. ミルティナちゃんです https://booth.pm/ja/items/6538026 Q. 良い感じに見せる方法ありますか? A. Boundsの厚みを薄くして対象のオブジェクト表面に埋めるのが良いです。横から見るとフレームが細くなり、それっぽさが増します。見える範囲は結構厳格なのでunity上でしっかり確認した方が良いです(シーンのカメラは方向キーで動かせます) Q. 複数設置できますか? A. 可能です。が、全て異なるマテリアル、メッシュ(2トライアングル)を設置する事になるのでたくさん設置するとマテリアル量がとんでもないことになるかもしれないです Q. NDMFやModular Avatarは必須ですか? A. VRChat Avatars SDK 3.0は必要です。NDMFはビルド時のMaterial自動生成に使用するため導入を推奨します。Modular Avatarは任意ですがMA Bone Proxyでの使用を想定しています。 Q. PhysBone遅延追従をやめたい A. 先にDetection Frame PB内にあるDetection Frameを外へ移動し、その後Detection Frame PB以下を削除してください。親を先に削除するとDetection Frameも一緒に削除されるため注意してください。 Q. PhysBoneの追従が微妙、ゴムみたいにはねる A. Detection Frame PB内にある「Bone Root」にPhysBoneの設定があります。ここから設定の変更をしてください。顔や胴体などそこまで大きく揺れない場所はきれいに追従しますが、手や足などはPhysBone機能は除外した方が良いかもしれません。 Q. 壁越しにフレームが見える A. 残念ながらこのフレームは自アバターで隠れないようにするための設定(ZTest always)をしている為壁越しに見えてしまいます。Distanceは1~1.5mで設定しているので、基本的に問題ないと思いますが気になる場合は0.5~1mに設定してください(この設定をすると1m以上遠くからは見えなくなります)
利用規約
CC0です https://creativecommons.org/publicdomain/zero/1.0/deed.ja 良い感じのものに追加してもっといい感じにしてください カメラマン系のキャラクターとか似合うのではないのでしょうか















