Udon規定 スペース出展 について
⚠️ こちらはVket2025 Winter向け時点の情報です。最新のイベント向けの情報をご確認ください。
このページには、スペース出展の際に使用できるUdonについての情報が記載されています。
出展申し込みや入稿作業の際にご確認ください。
- スペース出展の入稿ルールについては入稿ルール スペース出展をご確認ください。
- アイテム出展の入稿ルールについては入稿ルール アイテム出展をご確認ください。
- アバター出展の入稿ルールについては入稿ルール アバター出展をご確認ください。
- アイテム出展及びアバター出展ではUdonの利用ができないことにご注意ください。
- このページの内容はルールの変更・修正にあわせて変更・更新される場合があります。入稿作業時には改めて内容をご確認ください。
- バーチャルマーケットではSDK3及びUdonを使用します。Udonは出来る事の幅が広い分、容易にインスタンスに致命的な不具合を発生させることが可能なため、入稿ルールに加えて下記の制限を課させていただきます。
- Udonによる処理負荷を軽減するため、ワールド内のUdonは運営が用意するUdonによって動作が制御されます。詳しい内容に関しては D. ワールド内Udon制御規定を参照してください。
- 規定に沿わない出展物が入稿された場合、再提出を依頼、もしくは配置しない等の処置を行わせて頂きます。あらかじめご了承ください。
- この規定は入稿期間外、期間中に関わらず改訂される可能性があります。
- Udonを作成する際は下記のUdonアセンブラのいずれかを使用してください。
- Udon Node Graph
- Udon Sharp
- Cyan Trigger
- Vket Trigger
- UdonSharpを使用する場合は出力元のスクリプトファイル(拡張子.cs)を入稿フォルダに含めてください。
- スクリプトファイルはVketToolsによって作成される
Assets/[サークルIDの番号名]/UdonScriptsフォルダに入れてください。
- CyanTriggerは運営が指定するバージョンを使用してください。
- 指定バージョン CyanTrigger V4.4.4
- Cyan TriggerコンポーネントはCyan Trigger AssetコンポーネントにConvertする必要があります。
- Udon新規作成時に自動生成されるSerializedUdonProgramAssetは必ず入稿フォルダに含めてください。
- 入稿フォルダ以外に含まれている場合、正常に動作しない場合があります。
- UdonBehaviourコンポーネントは1出展物あたり 10個までとします。
- 同期変数を使用する場合はSynchronization MethodをManualに設定してください。
- Allow Collision Ownership Transferは無効にしてください(コライダが含まれる場合)。
- 同期変数(UdonSyncedを付与した変数)は1出展物あたり 10個まで使用できます。
- 同期変数には下記の型のみ使用できます(配列型やstring型は使用できません)。
- bool, byte, sbyte, char, double, float, int, uint, long, ulong, short, ushort
- 同期変数の更新(RequestSerialization関数の実行)はInteractやCollisionなどプレイヤーのアクションによってのみ行われるようにしてください。Update等で、毎フレーム同期変数の更新が行われるような実装はしないでください。
- Continuous設定による同期変数の常時同期は使用できません。
- 下記の変数、関数、コールバックは使用できません
- 使用禁止変数
- VRC.SDK3.Persistence.PlayerDataクラスの変数全て
- RenderSettingsクラスの変数全て
- Physics.bounceThreshold
- VRCCameraSettings.ScreenCamera
- VRCCameraSettings.PhotoCamera
- 使用禁止関数
- VRC.SDK3.Persistence.PlayerDataクラスの関数全て
- Object.Instantiate
- GameObject.Find
- Object.Destroy
- Object.DestroyImmediate
- VRCGraphics.DrawMeshInstanced
- VRCShader.SetGlobalFloat
- VRCShader.SetGlobalFloatArray
- VRCShader.SetGlobalVector
- VRCShader.SetGlobalVectorArray
- VRCShader.SetGlobalMatrix
- VRCShader.SetGlobalMatrixArray
- VRCShader.SetGlobalInteger
- VRCShader.SetGlobalTexture
- VRCShader.SetGlobalColor
- VRCPlayerApi.SetManualAvatarScalingAllowed
- VRCPlayerApi.SetAvatarEyeHeightMinimumByMeters
- VRCPlayerApi.SetAvatarEyeHeightMaximumByMeters
- VRCPlayerApi.GetPlayerObjects
- VRCPlayerApi.FindComponentInPlayerObjects
- Networking.GetPlayerObjects
- Networking.FindComponentInPlayerObjects
- VRCImageDownloader.DownloadImage(運営配布のPrefabでのみ使用可能)
- VRCStringDownloader.LoadUrl(運営配布のPrefabでのみ使用可能)
- 使用禁止コールバック
- Start
- Update
- LateUpdate
- FixedUpdate
- PostLateUpdate
- OnTriggerStay
- OnCollisionStay
- OnAnimatorMove
- OnRenderObject
- OnWillRenderObject
- OnPlayerJoined
- OnPlayerLeft
- InputJump
- InputUse
- InputGrab
- InputDrop
- InputMoveHorizontal
- InputMoveVertical
- InputLookHorizontal
- InputLookVertical
- OnPlayerRespawn
- OnPlayerTriggerStay
- OnPlayerCollisionStay
- OnPlayerDataUpdated
- OnPlayerRestored
- ワールドへの配置時にUdonSharpスクリプトの再コンパイルは実行されません。
- そのため、
#if UNITY_EDITOR等の条件付きコンパイルコードは使用できません。
- シリアライズされた参照型の配列変数はNew構文で初期化できません。
- 初期化が必要な場合はVketStart関数内で行うなどしてください。
- 例: SerializedField private GameObject objects = new GameObject3;
- VRCImageDownloderは運営配布のPrefab「VketImageDownloader」でのみ、
'VRCStringDownloaderは運営配布のPrefab「VketStringDownloader」でのみ使用可能です。
各Prefabは1出展物にそれぞれ1個まで使用できます。
- 入稿されたUdonは運営が用意するUdon(以下、VketUdonManager)によって一部動作が制御されます。
- 出展物の原点からX方向に±3m、Z方向に±4m、Y方向に6m(幅6m×奥行8m×高さ6m)をUdon更新範囲とし、それを基準にVketUdonManagerから出展者のUdonにコールバックを送信します。(表を参照)
- コールバックはUdonBehaviour.SendCustomEventによって送信されます。Udon更新範囲はワールドによって変更になる可能性があります。
- VketUdonManagerからのコールバックはUdonに下記表の名前のCustomEvent(関数)を実装することで受け取ることが出来ます。
- UdonSharpの場合は、関数のアクセス修飾子をpublicに、引数・返り値を無しに設定してください。
| CustomEvent(関数) | 呼び出しタイミング |
|---|
| _VketStart | ローカルプレイヤーがワールドにJoinしたときから1秒後(配置によって数フレーム前後あり) |
| _VketUpdate | Update更新時(ローカルプレイヤーがUdon更新範囲内にいる際) |
| _VketFixedUpdate | FixedUpdate更新時(ローカルプレイヤーがUdon更新範囲内にいる際) |
| _VketLateUpdate | LateUpdate更新時(ローカルプレイヤーがUdon更新範囲内にいる際) |
| _VketPostLateUpdate | PostLateUpdate更新時(ローカルプレイヤーがUdon更新範囲内にいる際) |
| _VketOnBoothEnter | ローカルプレイヤーがUdon更新範囲に入ったとき |
| _VketOnBoothExit | ローカルプレイヤーがUdon更新範囲から出たとき |
- 来場者体験、または他出展者への影響を鑑みて下記挙動を取るギミックを制限します。
- オブジェクトをスペース外に移動させる行為は禁止です。
- プレイヤーに追従する機構はスペース外のプレイヤーには追従しないようスクリプトを組んでください。
- VRC Pickupコンポーネントによって、プレイヤーがオブジェクトをPickupすることでスペース外に出る場合はこれに当たりません(Pickupにオブジェクトを追従させるのは不可)。
- プレイヤーの設定(WalkSpeed等)の変更はプレイヤーがスペース内にいる場合のみ許可されます。
- プレイヤーのテレポートは、プレイヤーがスペース内にいる状態で、かつスペース内に移動させる場合のみ許可されます。
- プレイヤーのVelocityを変更する場合、スペース外に出た時点で正常な値に戻るようにしてください。
- プレイヤーのアバタースケール関連の値を変更する場合、スペース外に出た時点で元の値に戻るようにしてください。
D. ワールド内Udon制御規定におけるUdon更新範囲外で、常に処理が発生し続けるようなUdonを構成することは禁止です。- 自出展物以外(他の出展物やワールド)のオブジェクトに干渉するあらゆる行為は禁止です。