← Back to Submission Rules Top
Udon Rules: Space Exhibition
This page provides information about Udon scripts that may be used on exhibiting a Space Exhibition.
Please review this information when applying to exhibit or submitting materials.
- The contents of this page may change or be updated due to rule revisions or additions. Please review the information again before submitting your work.
- Virtual Market Exhibits uses SDK3 and Udon. Since Udon has a wide range of capabilities, it is possible to easily cause a fatal defect in the instance. As such, we will impose the following restrictions in addition to the submission rules.
- In order to reduce the processing load created by running Udon, the operation of Udon in the world is controlled by Udon prepared by Vket. See D. Udon control rules in the world for more information.
- Please note that if the submitted space is not compliant with the regulations, we will take measures such as requesting resubmission or not placing it.
- This policy may be revised regardless of whether it is outside the submission period or during the period.
- Use one of the following Udon assemblers.
- Udon Node Graph
- Udon Sharp
- Cyan Trigger
- Vket Trigger
- Include the source script file (extension .cs) in the submission folder when using UdonSharp.
- The script file needs to be put it in the
Assets / [Circle ID number name] / UdonScripts folder created by VketTools.
- Please use the version of CyanTrigger specified by Vket.
- Specified version: CyanTrigger V4.4.5
- The Cyan Trigger component must be converted to the Cyan Trigger Asset component.
- Please include the SerializedUdonProgramAsset in the submission folder, which is automatically generated when creating a new Udon script.
- If the file is placed outside the submission folder, scripts may not function correctly.
- Please set Synchronization Method to be Manual.
- Please disable Allow Collision Ownership Transfer if the object includes a collider.
- Up to 10 Sync variables (variables with UdonSynced) can be used per a space.
- You may only use following types as Sync variables. You may not use array or string types.
- bool, byte, sbyte, char, double, float, int, uint, long, ulong, short, ushort
- Please make sure to update the Sync variables such as running RequestSerialization function only in response to a player’s actions like Interact or Collision. Please avoid such an implementation that updates the Sync variable every frame.
- You may not use continuous synchronization of the Sync variable by the Continuous setting.
- The following variables, functions and callbacks cannot be used
- Disabled variables
- All variables of VRC.SDK3.Persistence.PlayerData
- All variables of RenderSettings class
- Physics.bounceThreshold
- VRCCameraSettings.ScreenCamera
- VRCCameraSettings.PhotoCamera
- Prohibited function
- All functions of VRC.SDK3.Persistence.PlayerData
- UdonSharpBehaviour.VRCInstantiate
- 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 (Available only in Prefab provided by Vket)
- VRCStringDownloader.LoadUrl (Available only in Prefab provided by Vket)
- Prohibited callback
- 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
- The UdonSharp scripts will not be recompiled when placed in the venue world.
- As such, you may not use conditional compilation codes such as
#if UNITY_EDITOR.
- Serialized reference-type array variables cannot be initialized using the
New syntax.
- If you wish to, please initialize using alternative methods such as initializing within the VketStart function.
- Example: SerializedField private GameObject objects = new GameObject3;
- VRCImageDownloader is available only in the "VketImageDownloader" prefab provided by Vket, and VRCStringDownloader is available only in the "VketStringDownloader" prefab provided by Vket.
Each Prefab is available for 1 per each space.
- The operation of the submitted Udon is partially controlled by the Udon (hereinafter referred to as VketUdonManager) prepared by Vket.
- Based on the Udon Update Range defined for each exhibition format, VketUdonManager will send a callback to the exhibitor Udon. (See table)
- The callback is sent by UdonBehaviour.SendCustomEvent. Udon Update Range is subject to change depending on the world.
- You can receive the callback from VketUdonManager by implementing CustomEvent(function) with the below names to your Udon.
- In the case of UdonSharp, set the access modifier of the function to public and set no return value (void) and no argument.
CustomEvent (Function) | Call timing |
|---|
| _VketStart | 1 second after the local player joins the world, with some frames of discrepancy depending on the space placement |
| _VketUpdate | When updating Update (as long as the local player is within the Udon Update Range) |
| _VketFixedUpdate | When updating FixedUpdate (as long as the local player is within the Udon Update Range) |
| _VketLateUpdate | When updating LateUpdate (as long as the local player is within the Udon Update Range) |
| _VketPostLateUpdate | When updating PostLateUpdate (as long as the local player is within the Udon Update Range) |
| _VketOnBoothEnter | When a local player enters the Udon Update Range |
| _VketOnBoothExit | When a local player leaves the Udon Update Range |
- We will restrict the gimmicks that take the following actions in consideration of the visitor experience or the influence on other exhibitors.
- The act of moving an object out of space is prohibited.
- When you use mechanisms that follow the player, script it in such a way that it does not follow the player outside the space.
- This is not the case if the VRC Pickup component causes the player to pick up and bring an object out of space (it is prohibited to have the Pickup follow the object).
- Changes to player settings (Walk Speed, etc.) are only allowed if the player is in space.
- Player teleportation is only allowed if the player is in the space and is moved inside the space.
- If you change the player's Velocity, make sure it returns to normal when the player goes out of space.
- If you change the player's variables relating to Avatar Scale, make sure it returns to normal when the player goes out of space.
- It is prohibited to configure Udon so that processing always occurs outside the Udon update range in the
D. Udon control rules in the world. - Any act that interferes with objects other than in your own space (other exhibitor spaces, world) is prohibited.
- Updated the version of CyanTrigger specified by Vket
- Removed the following because it overlaps with the other submission rules
- Up to 10 UdonBehaviour components per space.
- Changed the following wording because it overlaps with the other submission rules
- Before: The Udon Update Range for the space is ± 3m in the X direction, ±4m in the Z direction and 6m in the Y direction (width 6m x depth 8m x height 6m) from the origin of the space. Based on that, VketUdonManager will send a callback to the exhibitor Udon.
- After: Based on the Udon Update Range defined for each exhibition format, VketUdonManager will send a callback to the exhibitor Udon.
If you cannot find an answer in the submission rules, please also check the Reverse Lookup List by Purpose.
↑ Back to Top