VR空間のプロダクト専門ECサイト Vket Store
VR空間のプロダクト専門ECサイト Vket Store

最近見た商品

もっと見る
    環境(ワールド用ギミック)

    【無料】アバターキーアイテム AvatarKeyItem

    公開日 : 2025/01/14 01:07:09

    商品詳細

    https://store.vket.com/ja/items/9778 https://booth.pm/ja/items/6488501 ## 概要 アバターに持たせた「キーアイテム」をワールドで検知して、別ギミックを起動するギミックです。 ※アバター側の仕込みにシェーダー芸を使っているので Quest では動作しません ## 導入方法 ### 鍵について * ColorKey という色を設定します。#000000 以外にしてください * 鍵として整数を設定します。-1 以外にしてください ColorKey は同一ギミックとの干渉対策です。別の色を持つアイテムは同一アバター内に共存できます。 ### ワールド側 VRChat Creator Companion `World 2022` テンプレートで作ったプロジェクトに AvatarKeyItem.unitypackage をインポートしてください。 Assets/called_D/AvatarKeyItem/Key Reader.prefab をプレイヤーを見渡せる位置に配置してください。 建物等は貫通して判定できるので、上空 100 メートル辺りに置くとよいと思います。 Key Reader の Key Color と Key 変数を設定してください。 #### 読み取りについて 鍵の所有をチェックして後続の処理を行う Udon Behaviour を Key Reader の Event Listeners 変数に設定し、`public void OnKeyMatched()` メソッドを実装してください。 必要ならイベント名を変更したり、 `public void OnKeyMismatched()` メソッドを実装してください。 鍵の所有チェック自体は KeyReader コンポーネントの Udon に `SendCustomEvent("ReadKey")` してください。 数フレーム後に OnKeyMatched または OnKeyMismatched が発火します。 Key Item Transform 変数が設定してあると、読み取り成功時に判定用オブジェクトの位置を取得して転写します。 ### アバター側 シェーダー Assets/called_D/AvatarKeyItem/KeyShader.shader が本体です。 判定用オブジェクトを作成し、シェーダーを適用してください。不可視になります。 新規 Material を作成して、 AvatarKeyItem/KeyShader を指定します。 シェーダープロパティの Key Color と Key を設定してください。 Cube 等にマテリアルを設定し、コライダーを外して Armature 下に配置します。 ## キーアイテムの配布について 判定用オブジェクトを配布することで、他ユーザーに「キーアイテム」を渡すことができます。 判定用オブジェクト と KeyShader.shader、鍵を設定した上記 Material が必要です。 文字通りの鍵やリストバンド、年間パスポートなどお好みのアイテムの見た目を作って、その子オブジェクトに判定用オブジェクトを入れてもよいでしょう。 Head ボーンの子孫オブジェクトに配置しても動作しますが、将来的に動作が壊れない保証がないため、その場合は HeadChop や MA の Visible Head Accessory 等の使用を推奨します。 アバターギミックで判定用オブジェクトを消す場合、Scale 0 にしても判定が消えないため、オブジェクト自体を非アクティブにする必要があります。 ## Special Thanks * 雨降り さんと『VRChat 質問部屋』Discord の皆様 ## ChangeLog v1.1.0 2025-01-15: 判定用オブジェクトの位置を取得できるように v1.0.0 2025-01-14: 公開 ## 技術的概要 最前面に描画される視界ジャックシェーダーの応用です。Camera で RenderTexture の画像を読み、描画された「鍵」を Udon でチェックしています。 判定用シェーダーは * RenderTexture 解像度のチェック * KeyColor の一致 * ステンシルによる描画の限定 * PlayerLocal レイヤー の多重チェックで目に見えないようにしています。

    利用規約

    * アバター側は CC0 です。再配布にあらゆる制限をかけません。 * ワールド側は CC0 です。パブリックドメインでないライセンスが必要な場合は zlib/libpng ライセンス "Copyright (c) 2025 called_D" を選択することができます。