コンテンツにスキップ

SPS とは

SPS(Super Plug Shader)は、VRCFury が提供する VRChat アバター向けの機能です。あるアバターの部位(Plug)が、別の部位(Socket)に近づくと、その方向へ向かって滑らかに曲がって追従する、という演出を実現します。「挿入」ギミックとして使われる機能ですが、仕組みそのものは「近くにある目標に向かってメッシュを曲げる」という汎用的なものです。

SPS は Super Plug Shader の略で、名前のとおりシェーダー(GPU上で頂点やピクセルの計算を行うプログラム)によって実現されている機能です。大まかな流れは次のとおりです。

  1. Plug に設定したメッシュは、通常はモデリングされたままの、まっすぐな形状で表示されます。
  2. Socket が近くにあると、専用のシェーダーが Plug の頂点を Socket の方向へ向けてリアルタイムに変形させます。
  3. 近くに複数の Socket がある場合は、その中から適切なものを自動的に選んで曲がります。

この変形は毎フレーム GPU 上のシェーダー計算だけで完結しており、アニメーションクリップやスクリプトを手動で用意する必要はありません。

SPS には SPS1SPS2 という2つの世代があり、本プロジェクトはその両方をリリースしています。どちらが動作するかは、導入したバージョン系統(0.1.x か 0.2.x か)によって決まります。世代ごとの違いは SPS1 と SPS2 を参照してください。

SPS より前にも、同じような「挿入演出」を実現する仕組みとして DPS や TPS と呼ばれる方式が VRChat コミュニティで使われてきました。SPS は VRCFury が提供する、それらの実質的後継です。

SPS に関連するコンポーネントには、次のようなものがあります。それぞれの詳細は各ページを参照してください。

  • SPSNDMFが扱うもの
    • Plug — Socket に向かって曲がる側のコンポーネント。挿入する側の部位に取り付けます。
    • Socket — Plug を受け入れる側のコンポーネント。挿入される側の部位に取り付けます。
  • SPSNDMF Migratorで同等のMA/VRChatネイティブコンポーネントに変換して扱うもの
    • Global Collider — 指以外の任意の部位を、他のプレイヤーの PhysBone や触覚通知に反応させるための機能です。SPS 本体とは別の、関連するハプティクス機能です。
    • Haptic Touch — 触覚(ハプティクス)対応アプリ向けに、触れたことを送受信するための機能です。こちらも SPS 本体とは別の関連機能です。