AniPIN – Avatar Lock System 説明書

This software is released under the MIT License, see “LICENSE.txt” in zip file.

このページは、BOOTHにて公開中の、VRChat向けアバターギミック「AniPIN – Avatar Lock System」の説明書です。

このエディタ拡張及びギミックは「VRCSDK3-AVATAR-2021.01.19.18.17以降のSDK向けです!


説明

このエディタ拡張は、アバターにPINコードによるロック機能ギミックを設けるためのエディタ拡張です。

ラジアルメニュー内からPINコードを入力するまで、アバターに含まれるすべてのSkinned Mesh RendererとMesh Rendererを無効化するギミックを追加できます。

また、AnimatorControllerとExpressionParametersを難読化する機能も搭載しており、リッピングされた際に、PINコードギミックのみを無効化されることを極端に難しくすることが可能です。 なお、難読化はビルド時に自動的に行われるため、編集時は何も意識する必要がありません。

他のアバターギミックとの同時使用も対応しています。(ヤギハタが作ったすべてのアバターギミックとVirtualLens2は、難読化状態でも使用可能なことを確認しております。)

AniPINを使用したら絶対にリッピングされなくなるわけではありません。技術的にも完全にリッピングを防ぐことは不可能に近いので、あくまで「リッピングされてもそのままだと使えなくする」ギミックであることを理解した上で使用をお願いします。

使用したもの

AniPINでは、ロック中の画像を表示するためのシェーダーとして、神城アオイ氏が制作、公開されております【Unity Shader】Texture Overlay Shader を使用しております。(MITライセンス下で公開されています。) 素晴らしいシェーダーを公開してくださり、誠にありがとうございます!

導入方法

先に「Avatars3.0用のVRCSDK3」を導入してから、同梱している「AniPIN.unitypackage」をインポートして下さい。

Unityのメニューバー(FileとかEditとかがある所)に「Editor」という欄が出来て、その中の「AniPIN」を押した後にこのようなウィンドウがでたら導入完了です。

使用パラメータ数

Intパラメータ1つ、Boolパラメータ1つの2つを使用します。(合計メモリ使用数:9)

使い方

・「対象アバター」から、PINコードを設定したいアバターを選択します。
 一覧に現れない場合は、アバターのゲームオブジェクトが無効状態ではないか、VRCAvatarDescriptorが適切に設定されているかを確認してください。

・「PINコード」に、設定するPINコードを入力してください。(何桁でも登録可能です)
 「アンロック状態を保存する」のチェックを外すと、アバターのリロードの度にPINコードを入力する必要があります。

・「Write Defaults」の下に警告メッセージがでている場合は、チェック状態を切り替えてください。
 切り替えてもメッセージが消えない場合は、使用している他のアバターギミックのバージョンが古い可能性があるため、他のアバターギミックを確認してみてください。

・「パラメータの最適化」は、エラーの原因となる重複パラメータや空欄パラメータを削除する機能です。基本的にチェックを入れたままにしてください。

・「アニメーターの難読化」は、リッピング時にPINコードギミックのみを解除されることを防ぐ目的で、AnimatorController内のLayer、State、Parameter、Transition(Condition含む)、AnimationClipの名前を、ランダムなGuidに置き換えます。 エラーが起きないように設計してはいますが、この機能を使用して他のアバターギミックの動作がおかしくなる場合などは、無効にしてください。

・「非有効オブジェクトの取得」は、アバターのロック時にRendererを非表示にするオブジェクトの対象に、現在エディタ上で非アクティブ化されているオブジェクトを追加します。非アクティブオブジェクトを他のギミックなどで制御していて、使用すると不具合が発生する際はチェックを外してください。

・以上の設定が済んだら、「適用する」ボタンを押して設定完了です。

・アニメーターの最適化を有効にしている場合は、アバターアップロード前に自動で難読化処理が行われます。

VRChat内での使用方法

AniPINを適用したあとにアバターを読み込むと、このような画面が表示されます。(自分のみに表示されているため、他の人からは見えません。)
この状態ではアバター内のすべてのMesh Renderer及びSkinned Mesh Rendererが無効化されています。

ラジアルメニューから「AniPIN」を選択するとAniPINメニューが開かれます。(他の項目がない場合は自動的にAniPINメニューが開かれます。)

0~5の数字は1ページ目、6~9の数字と決定ボタン、リセットボタンは2ページ目に存在しています。

設定したPINコードを順番に入力し、最後に決定ボタンを押すことでアバターのロックが解除されます。

他人からの見た目はアバターの更新時に反映されるため、PINコードを入力してアバターのロックを解除した後は、一度ワールドに入り直したりして、アバターの再更新を行ってください。

なお、間違えたPINコードを入力している状態でENTERを押しても何も起こらないため、間違えたPINコードを入力した際は、一度「RESET」ボタンを押した上で、再度正しいPINコードを入力してください。

アニメーターの難読化を行っている場合はDebugウィンドウによるデバッグが行えませんので、もしデバッグを行う際は難読化を解除して再アップロードしてください。

バグ報告

BOOTHの取引メッセージで宜しくお願いいたします。

バージョン情報

2021/03/20 – v1.0公開

2021/03/20 – v1.1公開
 この更新で、「初期状態が非アクティブなオブジェクトをギミック側で操作するか」のオプションを選択可能になりました。
 使用している他のアバターギミックなどに合わせてご利用ください。

  • X