導入手順
VRChat Worlds SDKとUdonSharpが入ったプロジェクトに導入します。
1. パッケージをインポートする
Section titled “1. パッケージをインポートする”VRChat Worlds SDKとUdonSharpが入ったUnityプロジェクトに、UdonImageSyncronizer.unitypackage をインポートしてください。
TextMeshProの初期設定がないプロジェクトでは、不足するTMP Essential Resourcesを自動で導入します。
2. Prefabを配置する
Section titled “2. Prefabを配置する”Assets/Suuhar/UdonImageSyncronizer/UdonImageSyncronizer.prefab をシーンに一つだけ配置してください。
Prefabには、撮影カメラ、プレビュー、Capture/Save/Delete、4種類の形状選択、Save進捗メーター、復元キュー、Cache、Owner表示、永続PlayerObjectと32個の同期チャンクが設定済みです。PlayerObjectには VRCPlayerObject と VRCEnablePersistence が付いているので、別途組み立てる必要はありません。
Prefabs フォルダの部品は、完成済みPrefabが参照するものです。Owner表示を増やす場合を除いて、個別に配置する必要はありません。カスタマイズには、シーン上のPrefab OverrideかPrefab Variantを使ってください。
3. 位置とカメラを調整する
Section titled “3. 位置とカメラを調整する”- プレビューと操作ボタンを、使いやすい高さに移動します。
- 子オブジェクト
UdonImageLocalCaptureのCameraの位置・向き・Field of Viewを、撮影したい対象に合わせます。
カメラは初期設定でローカル-Z側を向き、PlayerとMirrorReflectionのレイヤーだけを描画します。アバター以外も撮影したいときは、CameraのCulling Maskを変更してください。
4. Owner表示を増やす
Section titled “4. Owner表示を増やす”保存した画像は、Owner表示に出ます。Prefabに最初から入っているもののほかに、好きな場所にOwner表示を増やせます。
Assets/Suuhar/UdonImageSyncronizer/Prefabs/UdonImageOwnerDisplay.prefabを、シーンの表示したい場所に置きます。- 位置・向き・大きさを調整します。画像はSpriteRendererに表示されます。
- Hierarchyで
UdonImagePlayerObjectCacheを選び、InspectorのこのシーンのOwner表示をこのCacheに接続を押します。同じシーン内のOwner表示がすべてそのCacheにつながります。すでにつながっているものは変わらず、ほかのシーンも変更されません。Undoにも対応しています。
Cacheに接続しなくても表示はできますが、接続するとプレイヤーごとの検索結果を使い回せます。Owner表示を増やしたあとは、もう一度3.を行ってください。
表示する画像を変える
Section titled “表示する画像を変える”Owner表示のコンポーネント UdonImageOwnerSpriteRenderer の Display Local Player Image で、表示する画像が変わります。
- 有効(Prefabの初期値): 見ている人自身が保存した画像を表示します。所有権が移っても、別のプレイヤーの画像には切り替わりません。
- 無効: そのGameObjectのOwnerが保存した画像を表示します。所有権が移ると、新しいOwnerの画像に切り替わります。ほかのプレイヤーの画像を表示したいときは、所有権を変更するか、
SetOwnerImageを使ってください。
背景色・マスクの設定と動作確認
Section titled “背景色・マスクの設定と動作確認”Unity上で背景色とマスクを設定し、シーンを保存します。確認にはClientSim、またはVRChat SDKの Build & Test を使ってください。
フォルダ構成
Section titled “フォルダ構成”基準フォルダは Assets/Suuhar/UdonImageSyncronizer です。
| ファイル・フォルダ | 用途 |
|---|---|
UdonImageSyncronizer.prefab |
シーンに配置する完成済みのPrefab |
UdonImageSampleWorld.unity |
操作を試せるサンプルワールド |
Prefabs |
完成済みPrefabが参照する内部用の部品 |
Scripts |
UdonSharpスクリプトとUdon Program Asset |
Shaders |
マスクの外側を透過するライブプレビュー用シェーダー |
Materials |
ギミックの表示用マテリアル |
RenderTextures |
設定済みの撮影用RenderTexture |
Textures/DefaultMasks |
デフォルトマスク4枚と画素数の記録 |
Samples |
サンプル用のマテリアル・アニメーション・日本語フォントとライセンス |
Editor |
撮影マスク設定・Cache接続のInspector・TMP初期設定 |