Latest Release

Overview

Details new changes made since the previous release of the RIDE platform to external collaborators and developers.

Several RIDE releases typically occur throughout the year. Access to nightly releases available upon request.

Page Contents

Release Notes – 2023.3 (December)

 Please read the below Release Notes and related changes for this version.

IMPORTANT

In order to access Terrain datasets, you must have a terrain key.  Please contact us directly in order to acquire a key.

If you wish to use the ExampleNLP scene and related web services, you must update your local RIDE config file (ride.json). Please back-up any local changes to the file, including your terrain key. Next, restore your Config to default using the corresponding option in the Config debug menu at run-time, then reapply any customization and terrain key. Refer to the Config File page within Support for more information. 

Release Highlights

  • Added Scenario Builder which encapsulates quick actions for scene creation, entity spawning, and entity creation.
  • Added Generative AI integrations for large language models (LLMs) and image generation, including OpenAI ChatGPT and DALL-E, Stability AI Stable Diffusion, and Anthropic Claude. 
  • Added several base classes for Virtual Humans, including NVBG, NLP, TTS, and Sensing.
  • Expanded and refactored custom Timeline logic for layered sequencing and Virtual Human utterance generation.
  • Created specific Unity version and Windows x64 terrain and SpeedTree asset bundles in order to resolve SpeedTree objects appearing low-poly and with flickering LODs at run-time with standalone builds.
  • Updated Unity version to 2022.3.13.f1 and updated various packages in Unity registry.
  • New and enhanced Example scenes for distinct RIDE capabilities: ExampleLLM, ExampleImageGeneration and ExampleNLP.

Editor – Ride Menu

Expanded tools within the Unity editor custom Ride top menu: 

Create

  • Base entity creation and scene creation added to new Ride menu locations, Create > Entity and Create > Scene. 

Scenario > Builder

Scenario Creator
  • Added initial implementation of ScenarioAuthoringTool, accessible from Ride > Scenario > Builder.
  • The Scenario Builder dialog now encapsulates quick actions for scene creation, entity spawning, and entity creation.
  • Additional tool information:
    • Set A-star as default movement system when creating scenes with the CreateRideScene editor window as nav meshes cannot be made dynamically during runtime for loaded terrains.
    • User may assign unique name to the scene.
    • Ability to click on the Scene view to set spawn position.
    • Auto-instantiate logger prefab on scene creation.
    • Adds FreeMouseLook to Camera.Main in the newly created scene
    • Added button to set moveTo position on the scene; draws Bezier curve from spawn position to destination.
    • Updates to automatically load into the scene that is created.
    • Future: Expand and iterate upon tool features. 
Entity Spawner and Entity Creator
  • Added Entity Spawner, which queries the Ride_Art/Prefabs folder for all _Ride entities and allows you to spawn them on anything marked with the “Terrain” layer.
    • Click buttons in the Entity Spawner editor window to select a prefab to spawn, then use the LMB on the terrain to finalize placement.
    • When a prefab is selected and placement is yet to be finalized, ctrl + mouse scroll allows for rotation before placement.
    • When a prefab’s placement is finalized, the same prefab can be continually placed until the user presses ESC.
    • When a prefab is selected, a different button in the editor window can be pressed to change the prefab that is being placed.
    • At anytime when placement is yet to be finalized, the ESC key can be pressed to deselect the selected prefab and cancel placement.
  • Additional tool information:
    • Updated to spawn mounts, including new M1A2AbramsDataMono_Mount.prefab.
    • Automatically sets the team parameter to Red or Blue for groups based on if OCP or Insurgent character is selected.
    • Group proxies now appear as the selected prefab instead of always as OCP (done with new EchelonProxyMemberSpawner.cs).
    • Group proxies have their rigidbodies removed completely to prevent unexpected motion when proxy.
    • Existing Red and Blue base and Ride prefabs updated to remove healthbar and name by default; Networked entities updated to keep them on.
    • Group proxies updated to include new script used for updating proxies when placed (EchelonProxyMemberSpawner.cs).
    • Selection of objects when attempting to place any type of entity/echelon will cancel placement and select the object previously selected in the hierarchy. 
    • Updated to display an Echelon pop-up when selecting base units.
    • Removed Close() in CreateEtityBase.cs temporarily.
    • EntitySpawner updated to have configuration logic for prefabs and prefab paths publicly accessible. Calls this in awake now instead of configuring the prefabs only in awake to allow for the page to be reloaded when new entities are created in the same session.
    • ScenarioAuthoringTool now leverages new configuration logic in Entity Spawner to refresh the page and check if new assets are available to spawn.
    • Updated naming in ProxyEntity.cs for EntityType to be FireTeam -> Squad -> Platoon -> Company.
    • Ensured Platoon and Company spawn in formation.
    • Set proxy’s default Team based on the following key words: ‘Usa’, ‘Irq’.
    • Future: Activate for networked components and connect with Entity type to dictate which base unit of what Echelon gets spawned during runtime.

Terrain

  • Added two new menu options under Ride -> Terrain:
    • Clear Terrain Cache – Clears the terrain and asset bundle cache from the menu; no longer required to be done in Play mode
    • Config File – Terrain Key – Opens up an editor window that allows modification of the config file, including setting the Terrain Key; no longer required to be done in Play mode.

Timeline

  • Ride > Timeline > Generate Cutscene Timeline:
    • Added editor window for generating Cutscene Timeline director with given audio clip, .bml, and .xml files; export path customizable to user’s input.

Tools

  • Added Ride > Tools > 11Labs TTS:
    • Integrated TTS generator using 11Labs. 
    • Separated parameters for file path, name, extension.
    • Added an option for batch generation using master text file.
  • Moved Bulk Edit Scenes from Ride > Scene, now under Tools.

Generative AI

  • Added Generative AI and Image Generation Interfaces which implement OpenAI DALL-E and Stability AI Stable Diffusion.

Natural Language Processing

  • Updated OpenAI GPT to use Turbo GPT 4 preview.
  • Updated ChatGPT and Anthropic Claude prompts to be RIDE specific.
  • Added support for AWS Lex V2:
    • Added AWS Lex V2 data structures, REST API calls, and logic to distinguish between V1 and V2.
    • Updated RIDE config file to include V2 general info and RIDE-Basic bot IDs; requires updating config file to work.
    • Added persistent chat history for AWS Lex V2 in ExampleNLP, cleaned up chat UI lay-out, added support to support all messages from a single response.
  • AzureCustomQnASystem, QnA request will now have timeout parameters (default 5 seconds).
  • Added Microsoft Azure Virtual Agents (PVA) in ExampleNLP scene. 
  • Added OpenAIChatGPTSystem and OpenAIGPT4System.
  • ExampleLLM.prefab created to drag and drop the example to any scene. This contains the anthropic and chatGPT panels.
  • NLPBase in INLPQnASystem.cs updated to include a stopwatch for time tracking purposes and the logic for trimming the starting whitespace from ExampleLLM.cs has been expanded to trim all starting whitespace and it occurs in the GetLatestGeneratedResponse method instead.
  • OpenAIGPT4System updated to track user input and generated responses in the NLPBase fields as well as using the GPTMessage structs. This is done to allow for homogenous logic to be used in ExampleLLM for both anthropic and chatGPT providers
  • AnthropicConversationSystem updated similarly to OpenAIGPT4System. The NLPBase user input and generated responses lists are used explicitly. The logic has been simplified to automatically store information in the AskQuestion and Request methods. 
  • PanelLLM.cs and PanelLLM.prefab created to allow for an easy way to drag and drop more provider panels to test with. PanelLLM.cs contains all the logic required to update the 
    UI related to the panel and is attached to the parent object of the PanelLLM prefab. The only additional factor needed to be input dynamically in the inspector for this to be used in the example is a class component that derives from NLPBase that is explicitly referenced in the provider field.
  • ExampleLLM.cs updated to remove all dependencies to UI. The UI logic has been moved entirely to PanelLLM. Now in its place is a reference to the providerPanelParent. This is a transform whose children are expected to be PanelLLM prefabs. ExampleLLM, on start, now loops through the children of the providerPanelParent and creates a dictionary mapping of provider type -> the PanelLLM component of that child.
  • The individual onComplete methods used to pass as the Action parameter to AskQuestion now replaced with a homogenized lambda expression that will work for all providers deriving from NLPBase.
  • INLPSystem updated to include optional string in the Request method for additional data.
    • This change necessitated the change to all existing NLP scripts that implemented this interface to also include this additional optional parameter.
  • INLPQnASystem.cs updated to include an abstract base class, NLPBase that abstractly implements the INLPQnASystem interface and subsequently the INLPQnASystem interface and also derives from RideSystemMonoBehavior. This is to act as the base class for NLP solutions.
    • NLP solutions get implemented in the following steps:
      • Create new class/script for NLP solution
      • Derive from NLPBase
      • Add override void SystemInit() to do any initialization
      • Right-click NLPBase -> implement interface
      • Implement AskQuestion functionality
      • Implement Request functionality

NewProjectTemplate

  • Updated Unity version to 2022.3.13.f1.
    • Refer to Unity section for changes ported to this project from RideUnity. 

Ride Art

Prefabs

  • ChrUsaArmyInfantryOcp01_Ride.prefab and ChrIrqInsurgentMleAdultAvg01_Ride.prefab updated to RIDE agents; removed player controller being on by default and the audio listener being on by default; reduction of magazines per agent from 3/4 to 1.
  • M1A2AbramsDataMono_Mount.prefab, removal of Ride components on proxy.
  • Added GroupProxyPrefabs for FireTeam, Squad, Platoon and Company.
  • ResourceLoader.prefab updated to include new M1A2AbramsDataMono prefab.

Ride Misc.

  • RideConfig – Added new config settings for multiple cloud services, mostly adding API Keys that were stored hard-coded within the system itself. This allows the user to customize the API key for their usage.
  • WorldEventMarker.cs + WorldStateSystemMono.cs – WorldEventMaker will also have RideID associated with the event. ID value is set during the WorldStateSystemMono::DispatchEvent() when WorldEventMarker is constructed.
  • Created new prefab with ExampleLogScenario.cs + CreateRideScene, will instantiate this prefab upon scene creation; saved JSON will appear on the Desktop (Windows).
  • ExampleLogScenario.cs – Adjusted save location. Window: Desktop, others: Application.persistentDataPath
    References: 
  • Added AuthoredBehaviour scripts for future Agent and Group behavior enhancements.
  • RideScrollView.cs added as a RideUIElement for scroll views. Allows for access to scroll view and scrollbar information.
  • AutoScrollingVerticalText.cs takes a RideScrollView and a text box and, when the text changes, triggers a coroutine to scroll to the bottom of the scroll view.
    • AutoVerticalScrollView.prefab added to be a drag and drop auto scrolling vertical text box.
      • AutoScrolling Coroutine duration changed from 5f to 0.5 and prefab updated to match the UI properties of what existed in ExampleLLM.
  • Fixed warnings with RaycastCommand.
  • Fixed deprecated warnings with refreshRate.

RIDE Core

DebugMenu

  • Added method for removing debug menu tab.
  • Added #if UNITY_IOS guard around iOS specific code.
  • Various improvements:
    • Added new tab, iOS which lists misc. iOS info.
    • Added safe area fudge factor, which allows to offset the debug menu by an additional amount in addition to the safe area amount, if Screen.safeArea isn’t as accurate as it could be with certain devices.
    • Added a ‘wide’ mode for the debug menu, which lets you toggle between normal and wide using the <> button at the top.  This is when screen real estate is at a premium (mobile).
    • Top buttons are now scaled appropriately with screen size.
    • Added InsertDebugMenu() – which lets you add a menu in any slot.  Helpful when there’s lots of menus, and you want it in a specific location.
    • In RemoveDebugMenu(), ensure that m_debugMenuSelected is still assigned a valid value.
    • Fixed performance bug in SetMenu(string menuName).
    • Added accessor functions for SetMenuSize, SafeArea, related to the above.
  • Added an option (by default on) that will adjust the top of the debug menu by Screen.safeArea.y in attempt to account for devices with rounded corners and notches. Tested with iOS device simulator; possibly not all cases are covered. Will require actual device testing to confirm.

RideIO

  • Added method override to include http request timeout parameter.

UnityGameObjectSystem

  • Updated to include a Find overload that takes in a specific gameobject to look for instead of the name of a gameobject.
  • RemoveNullValues method added to remove gameobjects that have been unloaded when modules switch.
  • Clip_CameraTrack updated to use the GameObject Find overload.
  • Updated to include a Remove method that will remove the RideID from the game object dictionary but not delete the gameobject in question.

RIDE Dependencies

  • Added OpenAI for Unity package.
  • Added Hugging Face AI Interface API package.
  • Moved core NVBG assembly and BLLIP parser under Ride_Dependencies.
  • Added Microsoft.Extensions.Logging.Abstractions, version 6.0.1.
  • Added Oculus Integration SDK 54.1 plugin:
    • Exposed inspector field blendWeightScale 0..100 to be able to adjust the weight of the blend.
    • Fixed build errors under WebGL.
    • Disable plugin under iOS; iOS no longer compatible with .dylib dynamic libraries.
      • Disabled build postprocessor that copies over the .dylib.
      • Disabled the .dylib and .a in Unity settings (meta).
      • On iOS, #if def’d out the extern functions that call into the native libs.
    • Modified search path for OVR plugin on iOS to search under Ride_Dependencies.
    • Fix for iOS builds on newer Unity versions.
  • SpeechSDK – Updated to version 1.31.0, and for iOS, enabled “Load on startup”. 
  • AWS SDK – Downgraded to version 3.7.569.0; only including the assemblies that we are currently using.
  • NavMeshComponents – Disabled code that adds menu items.
  • Code compatibility fixes for Unity 2020.x, 2021.x, and 2022.1.x.
  • CrossSceneReference – Moved package to Ride_Dependencies.
  • KKSpeechRecognizer – Setting “shouldRun” to false on both build pre process scripts, KKAddSpeechFrameworkOniOS.cs & KKSetSpeechRecognitionPermissionsOniOS.cs, to prevent mic permission issues for other speech recognition systems. As an alternative, we can manually request mic/speech permissions by modifying iOS Player settings. (“Microphone Usage Description” –> add any text here, “Automatically Add Capabilities”–> true & “Prepare iOS for Recording”–> true.)
  • Added UI Node Connect 4.
  • VHAssets and VHUtils:
    • MecanimCharacter – Added ResetViseme method that will set all the animator’s viseme parameter value to 0. Added method for stopping audio. Use with StopLipsync method for full effect.
    • MecanimManager – Adjustment to remove need for a character named “all” in scene.
    • Updating blendshape VH behavior scripts for the skinnedMeshRenderer target to be public.
    • AudioSpeechFile – Fix to prevent errors on runtime when a text reference is not assigned.
    • Adjusted BlinkController so it only searches for a mesh if it is not assigned one.
    • Added new BlendshapeSaccade controller.
    • Modified BlinkController to fix existing blendshape functionality.
    • Fix severe head nod instances from BML parser.

RIDE Systems

DeviceAudio

  • Added various core function DeviceAudio system scripts.

Functions

  • OpenAI – Code compatibility fixes for 2020.x.

GenerativeAI

  • Updated OpenAI Dall-E to V3.
  • Expanded Image Generation API to support both URLs and Base64 data.

HuggingFace

  • Modified the editor script that generates the HuggingFaceAPIConfig.asset; save the asset in a Resources folder under the HuggingFace system.

NonVerbalBehaviorGenerator

  • Updated to latest version of BLLIP parser and NVBG.
  • Removed pre-compiled assemblies of C# NVBG and C++ BLLIP parser, and replaced with C# source.

RestfulNonverbalBehaviorGeneratorSystem

  • Added updated NLP backend scripts.

Sensing

  • Added AWSRekognition.
  • Added supplemental Sensing system scripts.
  • Changed AzureFaceSystem to be able to handle parallel requests, and to queue the latest request of each type.
  • Modified Azure Face implementation and sensing scripts to handle face landmark data.
  • Added IsProcessing property.
  • AWS – Disabled code on 2020.x and earlier; AWS DLLs are not compatible.

SpeechRecognition

  • Added MobileSpeechRecognition and AzureSpeechRecognition.
  • Added extra comments to TTS, Speech Recognition and VH Systems.
  • Added AmazonPolly and ElevenLabsTTS.
  • Added  various core function SpeechRecognition system scripts.
  • Wrap class around namespace vhAssets to prevent conflicts with KKSpeechRecognizer.

TextToSpeech

  • Added native Windows TTS implementation (ported from ExternalProcessTTSRelay.cs).
  • Added extra comments to TTS, Speech Recognition and VH Systems.
  • Added AmazonPolly and ElevenLabsTTS.
  • Added various core function TextToSpeech system scripts.

VirtualHumans and VirtualHumanSystemMono

  • Updated VH Base Blendshapes prefab with updated Oculus script.
  • Added VirtualHumans scripts, including Character, Conversation, Editor, and VH Utils.
  • Cache spawned VH by name instead of spawn position; position can change with movement/animation and float value isn’t ideal for lookup due to float point error.
  • Added IsListening property and temporary Debug.Log() for diagnostics.
  • Aoved VHGazeTrigger script to Ride folder since it’s used by VH Base.prefab.

Level Select (Standalone or full-source distributions only)

  • Added ExampleLLM and ExampleImageGeneration scenes to the Featured listing.
  • Ensure Unity logo appears before USC ICT and RIDE logos in sequential order, instead of below them.

Standalone – Platform Specific

  • WebGL:
    • PVA – Fixed build errors.
    • AzureSpeechRecognition – Fixed build errors.

Timeline

  • Added clip that can send out notification with customizable message.
  • Exposed weight value for facial animation.
  • Fixed a bug where consecutive Timeline asset generation in the active scene would also instantiate previously generated Timelines. 
  • Fixed a bug where body animation clip is invisible if animation state couldn’t be found in the animator.
  • Changed a way to reference MecanimManager; previous method caused issues when there were multiple instances of managers, even though only one of them was active at a time.
  • Included face animation clips for name overwrite.
  • IsTimelinePlaying() will search for director’s gameObject name instead of playable asset name.
  • Manually find track binding object (RideTimelineManager) if null is returned.
  • Fixed a bug to stop multiple body/head movement clips being created in the same timestamp.
  • Improving Timeline cutscene generator; now generates director objects in the active scene + automatically generate child tracks + disable ‘play on awake’ flag.
  • Added viseme and facial animation track to the cutscene director. Viseme is auto populated but facial animation must be added manually.
  • VH body animation will be played from MecanimCharacter component to enable blending + manager will now look for gameObject name instead of director asset name during PlayTimeline().
  • Director Generator, added a parameter for character name.
  • Update to SearchForComponentRecursive to prevent the caching of null components found for each object that is iterated over
  • Automatically set the length of the Utterance Clip upon creation.
  • PopulateCharacterList is now always called at the start of GetCharacter and returns a list of MecanimCharacters found by recursively looking through the root game objects and their children of the active scene in UnityEngine’s SceneManger. This list replaces the characters that existed previously. For single scene instances, the single scene should automatically be the active scene. For multi-scene setups the active scene needs to be set explicitly. 
  • Changed a way to reference on-scene avatar.
    • Note: Previously stored reference to on-scene avatar with ExposedReference (reference type specific to Unity’s Timeline).
      • This was unmodifiable which meant that avatar cannot be swapped during runtime.
        • Solution: Store reference to avatar in RideTimelineManager object. Timeline retrieves reference to this avatar with name/string.
      • Added ‘overwriteCharacterName’ method in RideTimelineManager to change Timeline parameter during runtime.
  • Added null checks for the internal animator reference and checks for the clipInfo length to get rid of null reference exceptions that are thrown when backing out and triggering the destruction of a VH in a module while it is animating gestures during an utterance.
  • Delete ‘AudioSpeechFile’ scene-object after audio is played.
  • Added editor script for VH audio.
    • Known Issue – Waveform needs to be cropped when vhAudio clip is zoomed in.
  • RideTimelineManager – No longer caches playable directors and instead looks for active ones to prevent issues on repeat module playthroughs.
  • Changed handling of Timeline time-flow:
    • Problem: Control track (parent track) controls the time-flow of its child -> condition check called from child track gets ignored.
    • Solution: Stop the flow of current director -> check if there is a director with control track that has a clip with label identical to stopped director-> This would be parent director as director clip’s label is automatically set to name of the director.
    • Note 1: Couldn’t call ‘Stop’ on the director as this would stop all processing and condition check would also stop running.
    • Note 2: Had to be precise on which director to stop, as there are cases where director outside current hierarchy of directors would be playing. 
  • Added ResetDirectors to attempt to clear all timeline directors found and research and populate the list again.
  • Removed need for clip’s label to determine when to pause directors.
    • Note: Recent timeline refactoring is utilizing Control track for its layout (Utilizing parent/child track layout). This messed with the time control because stopping child track won’t affect parent track. This new change will pause every playing director in the scene. Also removed the checking clip’s timeframe based on its label due to inaccuracy + maintenance.
  • Replaced clip type from enum to string.
    • Note: Enum is getting harder to manage as Timeline grows and it is hard to work with a project that relies on RIDE as externals and have no way to modify defined enums.
  • Added VH cutscene related scripts.
  • Added ‘Configuration’ method to remove clip parsing in the mixer.
  • Timeline Refactor:
    • Timeline is being refactored due to its high-maintenance backend design.
    • ‘TimeMachineTrack’ that let user place marker on the separate track and allowed track to go back in time has been removed due to complex design and instructions.
      • Certain clips will have ‘shouldWaitUntilFinished’ boolean flag that will replace this functionality. Checking this flag will halt track’s progression until specified condition has been met.
    • Behaviour classes are designed to be declared inside Clip classes. This removes hundreds of lines of codes and allows the developer to see properties/algorithm of a clip in a single page.
      • Downside of this design is that ExposedReference type of variable requires its counterpart variable to be declared. Ex) ExposedReference<GameObject> in a Behaviour class would also require GameObject.

Terrain

  • TerrainSystemMono.cs, removed GetAssetBundleUnityVersionNameTilesOnly(). All terrain datasets re-generated for the same platforms and versions as the trees, so only one function is needed now.
  • LoadTiles.cs, added GetAssetBundleUnityVersionNameTilesOnly(), which the terrain system now calls for loading tiles. This will load a different set of tiles based on what Unity version is currently running on. Currently, only loads 2020.x terrain tiles.
  • Fixed Tree asset bundle catalog path to use GetAssetBundleUnityVersionName(). In GetAssetBundleUnityVersionName(), for Unity versions in the 2022.x line, if it’s 2022.1, use the 2021.x asset bundles, else use the 2022.x bundles. Note, a breaking change in Unity requires this check.
  • GetAssetBundleUnityVersionName(), use this when loading Trees to pull asset bundles built for a specific version of Unity.  
  • Added TerrainProxy feature as part of Ride Scene Builder:
    • TerrainProxy object which will load the selected terrain in editor mode.  When hitting Play, it will load the terrain normally via TerrainLoader.
    • Loads trees and collision on start, with camera centered over TerrrainProxy object after loading.
    • WARNING: TerrainProxy featured disabled if PC outside of internal ICT domain.
    • Note, in Awake(), set Application.targetFramerate to 60 in Editor ONLY. This is to prevent terrain loading stalls when Game view is not in focus. Note, temporary fix.
  • Fix for Ride > Terrain > Load OWT Terrain menu item.
  • TerrainLoader.cs, moved init code to Reset() which is only called at editor time, when the object is created (or reset). This makes the component more reliable in finding the TerrainSO.
  • LoadTiles:
    • On the offline code path, check to see if there is a layer named ‘Terrain’ defined in the project, and if so, assign that layer to the tiles.
    • LoadTiles.LoadTile() now takes in the layer as a parameter. This fixes loading terrain offline via Ride > Terrain > Load OWT Terrain command. It also fixes leaky abstraction by calling back up into the TerrainSystem.
  • TerrainLoader:
    • Keep track of ‘load plane’ status in TerrainLoader, not in the editor inspector.
    • OnEnable() – pre-populate TerrainDatasets if it exists in the project.
    • Changes made to cope better when adding component to a gameobject.  Null checks added.  When assigning DataSets variable through inspector, added Refresh button to re-load terrain data and populate UI.

Terrain Maps

  • Added SCI_BUDS_LMAB_WGS84_Tile L16, L18, L20 and SCI_Mexican_Village_LMAB_WGS84_Tile L16, L18, and L20 terrain datasets.

Unity

  • Updated Unity version to 2022.3.13.f1.
  • Packages, updated to the following versions:
    • AI Navigation 1.1.5
    • Barracuda 3.0.0
    • Burst 1.8.9
    • Code Coverage 1.2.4
    • Input System 1.7.0
    • JetBrains Ride Editor 3.0.26
    • Mono Cecil 1.11.4
    • Newtonsoft Json 3.2.1
    • Profile Analyzer 1.2.2
    • Timeline 1.7.6
    • Visual Script 1.9.1
    • Visual Studio Editor 2.0.22
  • ProjectSettings, various changes due to Unity version upgrade.
  • Backward compatibility fixes for Unity 2020.x, 2021.x, and 2022.1.x.
  • Note, recommend clearing your local checkout \Library directories under \RideUnity and \NewProjectTemplate Unity projects prior to updating.

Documentation

New Examples and Tutorials content added to RIDE website.

Examples

Added Example scenes that highlight new RIDE capabilities, such as:

  • ExampleImageGeneration, shows cloud-based text-to-image generative AI, comparing OpenAI DALL-E against Stability AI Stable Diffusion.
  • ExampleLLM, demonstrates cloud-based large language models (LLMs) generative AI, comparing OpenAI ChatGPT against Anthropic Claude.

Additions or refinements to existing Example scenes: 

  • ExampleNLP, added chat history, expanded initial RIDE prompt, removed “entities” from UI if empty result, to allow for more space to show GPT results without overlap.
  • TimelineCompilation, updated with latest Timeline Ride clips and assets. 

Deprecated Example scenes: 

  • TimelineConditionCheck removed; refer to TimelineCompilation.

Fixed Issues

This release contains numerous bug fixes, including code refactoring and optimizations. Selected items of interest listed below.

  • Added startup warning in RideBaseMinimal if configuration file is out of date. Fixed function description.

Examples

  • ExampleLogging.unity and ExampleLogScenario.cs:
    • Fixed an issue in script with JSON starting with ‘,’ and removed new lines from WorldEvents, filtering out ‘beginMoving’ event, adding unit name parameters.
    • Removed CommandLineParser gameobject.
  • ExampleBarracudaAPI, decreased frequency of inference to mitigate tensor not being disposed and causing memory leak + cache value conflicts.

NewProjectTemplate

  • ExampleNLP, fixed missing StreamingAssets .p12 file error at run-time by assigning a key via the Inspector, which now enables function of GoogleDialogflow.

SpeedTree Asset Bundles 

  • Created Unity version 2022.2.16f1 and Windows x64 specific terrain and SpeedTree asset bundles in order to resolve SpeedTree objects appearing low-poly and with flickering LODs at run-time with standalone builds. 

Known Issues

New defects or regressions of interest to be addressed in a future release.

Examples

  • ExampleAgentCommandsEchelonFormationMovement and _Terrain, agents scatter and increase speed with combat behaviors.
  • ExampleNLP, error upon return to LevelSelect.
  • ExampleTerrainDestruction, error when triggering destruction event over certain structures.
  • PlayerInputControllerDataMono, inconsistencies with PlayerInputController scene: various missing animations (crouch, etc.), name text horizontal.
  • UnityAStarMovementSystem enabled, large terrain datasets, such as Razish20 and FtHoodJack L21, may experience long loading times and a period of unresponsiveness from editor/executable.

NewProjectTemplate

  • ExampleBarracudaAPI, both Classification and MSELI dropdown selection induce error and fail to populate due to missing path for StreamingAssets. Please contact us to request a functional standalone version of this scene for demonstration.

SpeedTree Asset Bundles 

  • SpeedTree objects appear low-poly and flicker LODs at run-time with standalone builds. Note, Unity version 2022.2.16f1 on Windows x64 is the latest general compatible version with the RIDE API until we fully resolve the issue by creating version and platform specific terrain and SpeedTree asset bundles.