コンテンツにスキップ

導入手順

VRChat Worlds SDKとUdonSharpが入ったプロジェクトに導入します。

1. パッケージをインポートする

Section titled “1. パッケージをインポートする”

VRChat Worlds SDKとUdonSharpが入ったUnityプロジェクトに、UdonImageSyncronizer.unitypackage をインポートしてください。

TextMeshProの初期設定がないプロジェクトでは、不足するTMP Essential Resourcesを自動で導入します。

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を使ってください。

  1. プレビューと操作ボタンを、使いやすい高さに移動します。
  2. 子オブジェクト UdonImageLocalCapture のCameraの位置・向き・Field of Viewを、撮影したい対象に合わせます。

カメラは初期設定でローカル-Z側を向き、PlayerとMirrorReflectionのレイヤーだけを描画します。アバター以外も撮影したいときは、CameraのCulling Maskを変更してください。

保存した画像は、Owner表示に出ます。Prefabに最初から入っているもののほかに、好きな場所にOwner表示を増やせます。

  1. Assets/Suuhar/UdonImageSyncronizer/Prefabs/UdonImageOwnerDisplay.prefab を、シーンの表示したい場所に置きます。
  2. 位置・向き・大きさを調整します。画像はSpriteRendererに表示されます。
  3. Hierarchyで UdonImagePlayerObjectCache を選び、Inspectorの このシーンのOwner表示をこのCacheに接続 を押します。同じシーン内のOwner表示がすべてそのCacheにつながります。すでにつながっているものは変わらず、ほかのシーンも変更されません。Undoにも対応しています。

Cacheに接続しなくても表示はできますが、接続するとプレイヤーごとの検索結果を使い回せます。Owner表示を増やしたあとは、もう一度3.を行ってください。

Owner表示のコンポーネント UdonImageOwnerSpriteRenderer の Display Local Player Image で、表示する画像が変わります。

  • 有効(Prefabの初期値): 見ている人自身が保存した画像を表示します。所有権が移っても、別のプレイヤーの画像には切り替わりません。
  • 無効: そのGameObjectのOwnerが保存した画像を表示します。所有権が移ると、新しいOwnerの画像に切り替わります。ほかのプレイヤーの画像を表示したいときは、所有権を変更するか、SetOwnerImage を使ってください。

背景色・マスクの設定と動作確認

Section titled “背景色・マスクの設定と動作確認”

Unity上で背景色とマスクを設定し、シーンを保存します。確認にはClientSim、またはVRChat SDKの Build & Test を使ってください。

基準フォルダは 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初期設定