Udon Rules

  • Virtual Market 6 uses SDK3 and Udon.Since Udon has a wide range of things that can be done, it is possible to easily cause a fatal defect in the instance, so we will impose the following restrictions in addition to the submission rules.
  • In order to reduce the processing load by Udon, the operation of Udon in the world is controlled by Udon prepared by the operation. See D. Udon control rules in the world for more information.
  • If a booth that does not comply with the regulations is submitted, we will take measures such as requesting resubmission or not arranging it. Please note that.
  • This policy may be revised regardless of whether it is outside the submission period or during the period.

A. Submission rules

  • Use UdonSharp when creating Udon.
  • Udon created by UdonNodeGraph and other Udon assemblies cannot be used (except prefabs distributed by the organizer).
  • Please use the latest version of UdonSharp at the time of submission. The latest version of UdonSharp can also be imported from VketTools.
  • Include the source script file (extension .cs) in the submission folder.
    • The script file is created by VketTools,Please put it in the Assets / [Exhibitor ID number name] / UdonScripts folder.
    • Please put the Udon program asset (extension .asset) in a location other than the above folder in the submission folder.
  • The organizer is planning to prepare prefabs that can switch the Active of the object and operate the Animator without writing a code. You may choose to use it.

B. Udon Behavior Regulations

  • Up to 10 UdonBehaviour components per booth.
  • Please set Synchronization Method to be Manual.
  • Please disable Allow Collision Ownership Transfer if the object includes a collider.
  • When using the UdonBehaviour component other than the prefabs distributed by the organizer, Please attach the component distributed by the organizer (hereinafter referred to as VketUdonControl component) to the same object.

C. Script rules

  • 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, short
    • Please make sure to update the Sync variables such as running RequestSerialization function only in response to a player’s action.Please avoid such an implementation that updates the Sync variable every frame.
    • You may not use continuous synchronization by the Continous setting.
  • All classes should belong to the namespace below.
    • Vket6.Circle [Exhibitor ID]
    • Please replace [Exhibitor ID] with a number. Example: Vket6.Circle9999
    • It is allowed to add namespace after Exhibitor ID. Example: Vket6.Circle9999.Example
  • The following variables, functions and callbacks cannot be used
    • Disabled variables
      • Transform transform.root
      • All variables of RenderSettings class
    • Prohibition function
      • UdonSharpBehaviour.VRCInstantiate
      • GameObject.Find
      • Object.Destroy
      • Object.DestroyImmediate
    • Prohibition callback
      • Update
      • LateUpdate
      • FixedUpdate
      • OnPlayerJoined
      • OnPlayerLeft
      • InputJump
      • InputUse
      • InputGrab
      • InputDrop
      • InputMoveHorizontal
      • InputMoveVertical
      • InputLookHorizontal
      • InputLookVertical
      • OnPlayerRespawn
  • Below #define directive may not be used.
    • #if UNITY_EDITOR
  • Observe the following restrictions when using the Cast functions of the Physics class, such as Physics.RayCast.
    • Set layerMask to ignore colliders other than layer 23.
    • max Distance is up to 4 meters.
    • Define the following as a member in the class and use it in the Cast function.
      • private const float CAST_MAX_DISTANCE = 4.0f;
      • private const int CAST_LAYER_MASK = 8388608;

D. Udon control rules in the world

  • The operation of the submitted Udon is partially controlled by the Udon (hereinafter referred to as VketUdonManager) prepared by the organizers.
  • The Udon update range for the booth is ± 4m in the XZ direction and 6m in the Y direction (width 8m x depth 8m x height 6m) from the origin of the booth. Based on that, 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 following the steps below.
    1. Implement the functions in the table below in the script. (Access modifier public, no arguments / return value)
    2. Check the callback name you want to receive in the VketUdonControl component.
Function Call timing
void VketUpdate() When updating Update (when the local player is within the Udon update range)
void VketFixedUpdate() When updating FixedUpdate (when the local player is within the Udon update range)
void VketLateUpdate() When updating LateUpdate (when the local player is within the Udon update range)
void VketOnBoothEnter() When a local player enters the Udon update range
void VketOnBoothExit() When a local player leaves the Udon update range
  • If you use the VRC Pickup component other than the prefabs distributed by the organizer, the position will be reset to the initial point when the player left the Udon update range.
  • The following components will be disabled when the local player leaves the Udon update range.
    • Camera
    • AudioSource
  • Objects containing the following components will appear when the local player leaves the Udon update range. It will be inactive.
    • Projector

E. Gimmick restrictions

  • We will limit 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 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 go 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 booth (other exhibitor booths, world) is prohibited.