Core Update 1.0.205 - 3D UI Canvas and Render to Texture

Highlights for Version 1.0.205

Welcome to our August 10th patch notes!

We've got a whole bunch of great new features, including:

  • UI Canvases can now be displayed in world 3D space!

    • This allows creators to put existing 2D UI elements onto a plane in 3D space.
    • These canvases are not interactable (buttons cannot be clicked in play mode, elements cannot be manipulated in create mode) when in 3D.
    • There is a performance cost to these canvases, so pay attention to performance when implementing.
    • This feature comes with a variety of new attributes for the canvas.
  • ESC UI hook

    • Creators can now have a hook to intercept an ESC menu press to use to close their own in game UI (instead of opening the Core ESC menu).
    • Players can press SHIFT+ESC to bring up the Core ESC menu at any time.
    • The intended use for this is to allow creators to close their own UI with an ESC press. Games that abuse this feature to block users from accessing the Core ESC UI may face action.
  • Render to Texture

    • This feature allows creators to render images from in-game using Camera objects. These rendered images can then be applied to UIImage objects in game. There is a fixed set of resolutions that can be used for the renders, and also a finite number of renders are allowed at a time.

Example use cases:
- Custom icons.
- Rear-view camera.
- Mirror surface (using 3D UI Container)
- Photo Booth.

  • Voice Chat API additions

See below for all the details on these exciting new features.

Make sure to watch the patch notes live stream hosted by Team META on the Core Live Twitch channel at 9 AM PST.

Platform

  • New: The "Add Property" dialog now lets you set a tooltip right away.
  • New: Attempting to purchase a Reward Points item from the shop when you don't have enough Reward Points will now show a dialog explaining how to earn RP.
  • New: Physics objects now have a team setting.
  • New: WorldText SetFont() calls are now usable in networked context.
  • New: Added option to use multi-line text input for string custom parameters.
    • Can be turned on/off through the context menu by right clicking on the string custom parameter.
  • Creators now appear at the bottom of the list in the Reward Point Games tab once you've hit the daily cap for their games.
  • New: In "Project Content", the "Duplicate Asset" context menu option is now available for script assets.
    • Note that this operation will not delete the new script on undo.
  • Fix crash when calling Activate IK anchor with invalid player
  • Changed: Removed the "Quest Complete!" celebration effect from the Quest bar.
  • Fixed: An issue that could cause the Store to display the wrong currency icon in the old price of discounted items.
  • Fixed: A Party max size complaint that sometimes showed up in logs.
  • Fixed: A bug where undoing UI Image offset or color would incorrectly reset the values back to default.
  • Fixed: A bug where non uniform scale could be applied on restricted objects by selecting a non restricted proxy first in the hierarchy.
  • Fixed: A rare issue where an empty name could appear for a speaking user in the in game voice chat widget.
  • Fixed: The animated mesh skeleton gizmo is no longer always visible after ending preview mode.
  • Fixed: A minor bug in the Shared Storage tab bug where you would sometimes see all keys instead of just keys in the current project when the checkbox is checked.
  • Fixed: A bug where sometimes the "Medium" Quality Preset would be slower than "High".
  • Fixed: A crash when calling .isSmartMaterial on animated mesh MaterialSlots.
  • Fixed: A rare crash that could occur when leaving a game voice chat channel.
  • Fixed: Moving UI objects to be the children of folders or groups will no longer reposition them in screen space when doing so.
  • Fixed: Resolved an issue where changes to voice chat settings in the social tab would not be reflected in the options menu.
  • Fixed: "Roboto Slab Black" will no longer display the same font as "Roboto Black" for WorldText.
  • Fixed: Late joining clients don't see IK anchors deactivating.
  • Fixed: Calling Deactivate() and Activate() on an IKAnchor on the same frame was broken.
  • Fixed: When dragging a file to a scene, folders will now be created if necessary.
  • Fixed: When dragging an item from Core Content, folders will now be created if necessary.
  • Fixed: If you drag a file to a scene but make no other changes, the game will now still trigger a save.
  • Fixed: The "View All" button on the bookmark list on player profile pages now correctly shows that player's bookmarks.
  • Fixed: An issue where UICanvas attribute changes would stop working after invoking a "Reset To Template" command on a templated UICanvas.

API

CameraCapture

  • New: Added the CameraCapture type:
    • Properties:
      • resolution -- The resolution of this capture. (read-only)
      • camera -- The camera to capture from. (read-write)
    • Functions:
      • Refresh() -- Re-takes the render using current camera.
      • Release() -- Releases the texture resources associated with this capture instance.
      • IsValid() -- Indicates if this capture instance has valid resources.
    • Because there are a finite number of captures, creators may wish to release existing capture instances, so that they
      can create more elsewhere. A released capture is no longer valid, and should not be used thereafter.

CameraCaptureResolution

  • New: Added a CameraCaptureResolution enum with the following values:
    • VERY_SMALL = 64x64
    • SMALL = 128x128
    • MEDIUM = 256x256 (default icon resolution)
    • LARGE = 512x512
    • VERY_LARGE = 1024x1024

Known Issues

  • Currently, creators are limited to the following:
    • Up to 256 VERY_SMALL captures.
    • In addition to Up to 64 SMALL capture.
    • In addition to Up to 16 MEDIUM captures.
    • In addition to Up to 4 LARGE captures.
    • In addition to Up to 1 VERY_LARGE capture.

This feature is in quite early stages, and while we are glad to share with our creators, please keep in mind the following:

  • Camera:Capture() does not support most camera settings. In fact, the capture will always be taken from the location and rotation of the camera object itself, even
    if it is set to follow a player or have free control. A verbose warning is printed to the log when using the feature with unsupported settings. This is expected to be fixed in a subsequent patch.

  • There is currently no way to interact from this feature without doing Lua scripting. Mechanisms for no-code access to this feature will be provided in a subsequent patch.

  • The limitations are currently overly strict. The exact format of the limitations and their strictness will likely be changed/relaxed in a subsequent patch.

  • Managing capture instances is currently challenging. More Lua API will be introduced to make this easier in a subsequent patch.

  • No optional arguments are currently featured. Future options will include:

    • Include post-processing volumes (not currently supported).
    • Far Clipping Plane
    • Inclusion/Exclusion lists.
    • and more...

UIImage

  • New: Added UIImage:SetCameraCapture(cameraCapture)
    • Applies the camera capture to a UIImage. This will replace whatever the Image was currently was displaying.
    • If the cameraCapture is not valid, you will get a warning and no effect.
    • If the cameraCapture is released while it is applied to an image, the image will revert to its default image.

UIContainer

  • New: Added to the UIContainer type:
    • Properties:
      • cylinderArcAngle (number) -- Adjusts the curvature of the canvas, changing this will force a redraw.
    • Functions:
      • GetCanvasSize() -- Returns a Vector2D of how big the canvas is.
      • SetCanvasSize(Vector2D) -- Sets how big the canvas is.

Known Issues

  • UI Widgets currently do not retain their position when repainting off of a Panel or Scroll Panel UI object.
  • World Space UI Canvases are not visible when parented underneath a player object.
  • In certain cases, UIContainer sometimes do not repaint when set to Static or Texture when a change is detected that cause a repaint of any of its child widgets.

Input

  • New: Added Input namespace.
  • New: Added a .escapeHook hook:
    • Fires when the player presses ESC.
    • Takes a player and a param table which has the following property:
      • openPauseMenu (bool) -- Change to false in the hook callback in order to prevent the pause menu from opening.
      • Note that you can always use SHIFT+ESC to open the pause menu directly.

VoiceChat

  • New: Added VoiceChat namespace.
  • New: Added VoiceChat:GetVoiceChatMode() and GetVoiceChatMode:SetVoiceChatMode() functions.

And more

  • New: Added a PartyInfo.isPublic (bool) property to determine if a party is public or private.
  • Changed: Replaced Camera.audioListenerOffset with Camera:SetAudioListenerOffset() and Camera:GetAudioListenerOffset() to match other similar properties.

Core Content

  • Added "Interaction System Package" to Game Content.
    • The Modular Input System provides creators with a way to quickly create interactive objects without any code. It is made up of a group of "Input Modules" and a set of "Input Components" that work together to manage Player input and provide interactivity.
    • As a creator you just need to add "Input Components" to your objects and configure them.
    • Drop the object into your scene and check out the README script for full details.
  • Adjusted Raptor mount variants footstep volume when walking stone and hard surface materials.
  • Adjusted Horse mount jump SFX to be slightly louder.
  • Added unarmed_dance_rock_out to humanoid animated meshes
  • "Pipe - Large" Has now been corrected for UV rotation.
  • Changed asset name to be in-line with the official Core Multiverse Games event title:
    • "Core Summer Games Anthem" Music Construction Kit (Sections) 01 > "Core Multiverse Games Anthem" Music Construction Kit (Sections) 01
    • Additionally the name in the Cinematic Music Score Set was changed too in the tracklist: "06 - Core Summer Games Anthem" > "06 - Core Multiverse Games Anthem"

Reminder for Creators

Beginning with Patch 1.0.187, projects now have an additional scenes folder: Scenes/Main on the file system. This is in preparation for the Scenes feature which will come in the future, but should have no meaningful effect on existing projects and you won't see it in the Core hierarchy. For creators using source control, there will be a migration of files to this folder but the source control should handle this gracefully. Make sure to commit this change to your project first before making any other changes to keep the history clean.

When it comes out later this year, Scenes will enable you to have more levels and sub-games inside of your main project instead of having to use child-games. There's a lot of work yet to be done before Scenes releases, but we will keep y'all updated as it approaches!

9 Likes