Welcome to Stingray 1.7 (1.7.1177.0). This release contains fixes and enhancements to several areas of Stingray, including an improved texture import process, rendering workflows, and interop with Maya. You'll also find a brand new Particle Editor which consolidates the particle editing workflow into a single, streamlined window, as well as improvements in the Capture Frames and Story Editor tools.
This update also provides two new project templates designed to help you build VR projects for mobile, and adds support for Google Cardboard on iOS, Google Daydream devices and controllers, and Google Cardboard for Android on Daydream devices.
In addition, we've made it easier to find and download example content with the new Online Assets tab in the Asset Browser, which lets you build a scene in minutes. Refer to the What's New section below for details on these features and more.
Sections in this topic:
This section lists all the major new features available with this latest version of Stingray.
Here you'll find lists of the bugs and known limitations that we fixed, sorted by workflow area.
Known Limitations and Workarounds
This section includes any new known limitations we've found since the last release of Stingray.
If you're working on a project that you started in an earlier version of Stingray, this section lists the steps you may need to take in order to successfully upgrade to the latest version.
Textures are now automatically compressed when you import them in Stingray. Depending on the texture type, Stingray assigns the texture template and compression settings for the imported textures for each platform. Texture compressions are applied by texture file suffix match or by image analysis. You can still tweak the textures as required, but you no longer need to manually compress textures on import. For details, see Import textures and Create a texture template.
In previous versions of Stingray, you created and edited particle effects using the Asset Browser, Property Editor, and Asset Preview. With Stingray 1.7, we're pleased to give you a standalone Particle Editor that streamlines the workflow for particle artists. Select Window > Particle Editor from the main menu, or double-click an existing particle effect in the Asset Browser to launch the new tool. For more information, see Create and edit particle effects.
Stingray 1.7 introduces our GoogleVR plug-in, which adds support for Google Cardboard on iOS, as well as Google Daydream devices and controllers. Google Cardboard for Android is also supported on Daydream devices.
To support rendering your VR projects on these devices, the Templates tab in the Project Manager now includes two templates: VR Google and VR Gear.
Use these templates to start building your VR projects for Google Daydream devices and GearVR devices. See also Build a project for Gear VR.
See the new Online Assets folder in the Asset Browser. You can browse, find and import assets directly from online to your project. Right-click an online asset and select Download Asset to download and install the asset package to a category specific folder in the project. Updated topic include: Download assets and example projects.
Tessellation can now be activated using the standard base material node. Use the Tesselation Factor input on the base node to control the tesselation factor of your surface. A lower value results in a less tessellation. See Create a tessellation material.
Stingray shaders now support negative scale. See Assign a material to an object.
The Capture Frames Tool is now a standalone tool connected to the Story Editor. Simply create a story and click to adjust your Capture Settings. New settings include support for different cameras and resolutions, and options to save and reuse your settings. Capturing can also be initiated through new Capture Flow Nodes. For details, see Capture Frames Tool.
The Connections panel now lets you add multiple localhost PC targets, which means you can automatically start multiple targets with separate command lines on your local machine when you click Run Project . This makes it easier to debug and look at the console output for multiple targets using the editor engine instance dropdowns. See also Using the Connections panel.
At the bottom of most pages in the Stingray Help, you'll now see a green button that invites you to visit the topic source file in GitHub, make any changes you want, and submit a PR to us. With your help we want to make the Stingray Help better and better. If you're feeling inspired, check out Get Involved! for more ways to contribute to the Stingray community.
You can now import font files to generate font resources to render text with sharp edges and preserve them when scaling. When you import font files, this generates the multi-channel signed distance field resources to display the font in your project. This feature is enabled by the Distance Field Font Importer plug-in, which is automatically enabled in the Plugin Manager. (See Add and remove plug-ins using the Plugin Manager.)
See Import fonts.
You can now edit the length of animation clips by trimming in the Anim Clip Editor or by modifying the trim values in the Animation clip properties. See Trim animation clips.
Stingray 1.7 provides new functionality that lets you check for intersections with visual meshes within a specified Unit. You can use this mesh pick raycast to get visual mesh information from a surface, such as which material within a mesh gets hit. (If you don't actually need that level of information, use the standard phyiscs raycast instead.)
For complete documentation, refer to the Lua documentation stingray.Unit.mesh_pick_raycast() and the Flow node documentation (Unit > Mesh Pick Raycast).
Important: For units containing high density meshes, the raycast does impact performance.
An example Flow graph:
The Tag component is now exposed in the Stingray Editor, which lets you associate a set of tags with an entity and quickly find all entities that have a certain tag. See also:
In addition, new Flow nodes for entities let you get and set entity properties so that you can interface with entities in Flow similar to the way you've been able to use them with Lua and Story previously.
New Flow nodes include:
For a complete list of all new, modified, and removed Flow nodes in this release, see the version history.
If your project contains a folder whose name matches another folder already mounted by the engine or by another plug-in, such as the core folder, the project now merges the contents of your project's folder on top of the existing folder. This makes it easier to override selected core resources, such as Appkit script files, without having to copy the entire core folder into your project.
Stingray 1.7 integrates Wwise version 2016.1.3, which includes various new features and bug fixes.
If you have an existing project built in previous versions of Stingray, the sound banks are automatically regenerated when you load/migrate the project into Stingray 1.7. Depending on how much audio your project has, please note that the regeneration process can take a long time.
Important: In order for Stingray to migrate existing sound banks correctly, make sure the wwise project is available and writable. If you experience any issues with the automatic migration, you can also manually regenerate the sound banks. (See Generate sound banks.)
Plug-ins can now provide template projects, which are listed on the Templates tab of the Project Manager, just like the template projects that ship with Stingray. See the help for the templates extension.
We've made some fixes and improvements in the hot-reloading system for engine plug-ins. If you had trouble getting hot reloading to work in the past, try the new instructions.
You can now update existing assets when using level sync with Maya. When Update Existing Assets is enabled in the Send Level window (Singray > Send Selected/Send All > ), modifications to geometry in Maya get pushed to Stingray when you send your scene. See Send assets from Maya and Maya LT with Level Sync.
Stingray now supports high definition range EXR files for image based lighting. Import (or drag and drop to Asset Browser) .EXR files to use as skydomes in your level. Updated topics include: Supported file formats and Create a skydome texture.
The PhysX plug-in installers for Maya 2017 and Maya LT 2017 that ship with Stingray are now updated to install the latest version of the PhysX plug-in, version 3.3.21117.04582. For related information, see Install the PhysX plug-in for your DCC tool.
This section lists known limitations and workarounds for Stingray.
Unless otherwise noted in the What's Fixed section, please be aware that this release contains the same Known Limitations described in the previous versions of Stingray Release Notes.
GAME-19936 Project compile appears to hang during UV unwrapping
When opening a project that contains complex meshes, the project compilation process appears to hang during UV unwrapping.
Workaround: Prepare complex meshes prior to exporting by manually unwrapping UVs in your DCC tool.
GAME-20689 Remote sync from Wwise editor can't connect to Stingray on Android
When you try to connect to an instance of the Stingray engine running on an Android device using the Remote sync feature in the Wwise Editor, the connection to the device fails. In some cases, the engine on the device crashes. There is currently no workaround for this issue.
GAME-20834 Level Sync from 3ds Max (using 'Level Send All') stalls at the end of the import process
The first time you send assets between 3ds Max and Stingray using Stingray > Level Send All (in 3ds Max), the import operation stalls if Update textures is on.
Workaround: Turn off Update textures the first time you send assets with Level Send All. On subsequent level sync operations, you can then use Level Send Selected or Level Send All with Update textures on as required.
GAME-21615: First frames rendered by Capture Frames tool are not part of the animation in the story
Workaround: Let the Capture Frames tool run a few frames longer to make sure all animation is captured.
The full installation guide for Autodesk products including Stingray is included in the Stingray online help, here.
This section explains the improvements and fixes that require specific upgrade steps for users currently using a previous version of Stingray.
When you load a project created in the previous release of Stingray, the current release automatically migrates the data from your earlier project to work in the new version of Stingray. This means that projects created in Stingray 1.6 are migrated seamlessly to work in Stingray 1.7.
As of Stingray 1.6, all projects get created with a .stingray_project file extension, and that project file is now required in the Project Manager to open the project in Stingray 1.7. This change means that projects created in versions of Stingray previous to 1.6 can't be opened directly in Stingray 1.7.
To open legacy projects in Stingray 1.7, you'll need to open the project using Stingray 1.6 first. This creates a .stingray_project file and performs any other data conversion required. You can then open the project in Stingray 1.7.
In previous releases, the boot.package file in the template projects used a * = [*] wildcard pattern to match all types of resources in the project. This made sure that all content you put in a project (and all content in the core resources) would always be compiled, bundled, and loaded into the project at runtime, no matter where in the project that content was located. The downside was that as a project grew, it sometimes led to crashes when the engine tried to load more resources than it could fit in the available memory -- especially on mobile platforms.
We've now modified the boot.package in the template projects to disable this all-inclusive wildcard.
This change affects any new projects you create from a template in 1.7.
If you create a project from one of the newer templates and you see errors about missing resources when you run your project, the cause is likely due to your resource not being included in the boot.package file.
This change doesn't affect any projects that you've already created in previous versions of Stingray. They'll still work the same way they do now.
Each template project is set up to load all of the default resources it needs.
When you add new content of your own, check that your content will be picked up by the resource specifications in the boot.package. The template boot packages load all levels that are saved under content/levels, so as long as you save your own levels there, those levels and all the resources they depend on will be bundled correctly. However, be careful about any content that you spawn dynamically in Lua.
You can go back to the old auto-loading method by removing the two slashes // at the start of the line //* = [*] at the top of the boot.package file in any template project.
For more background information, see Loading and unloading content at runtime and Defining resource packages.
For a complete list of all new, modified, and removed elements in the Lua API in this release, see the version history.
If your project contains any API elements that have been modified or removed, you will need to adjust your code accordingly.
A summary of the most important changes:
All functions related to managing engine plug-ins have been brought together under a new stingray.PluginManager namespace. The old stingray.Application.all_plugin_names() and stingray.Application.set_plugin_hot_reload_directory() functions have been removed, and several more new functions added. See the stingray.PluginManager namespace for details.
Use the new Http.post() function to send POST messages over HTTP.
If you use custom script Flow nodes intended for use by entities, you can now use Application.flow_callback_context_entity() in your custom Flow node's callback function in order to get the entity evaluating that node.
If you use Gameware Navigation in your projects, check the version history for details on several changes, including exposing NavMesh generation to Lua.
Application.quit() now accepts an optional exit value, which the application will return to the operating system when it shuts down.
The setting names accepted by Unit.set_animation_bone_mode() and returned by Unit.animation_bone_mode() have been renamed to begin with delta_, like the ones accepted and returned by Unit.set_animation_root_mode() and Unit.animation_root_mode().
This version includes new nodes for controlling frame capture, triggering Level Flow events, getting more properties from lights and units, exchanging meshes and materials as external input and output variables, and more.
The Unit > Mesh Pick Raycast conducts a raycast collision test against the meshes owned by a specific unit, and returns information that includes the material that was hit by the ray. Knowing which material is hit by a ray may be useful if you need to play different sounds (like footsteps or bullet impacts) or different particle effects depending on the material. NOTE however that this raycast does consume more CPU resources than a regular raycast, particularly for meshes with many triangles.
Only one node has been modified: Application > Quit now accepts an optional exit value, which the application will return to the operating system when it shuts down.
For a complete list of all new, modified, and removed Flow nodes in this release, see the version history.
The Output > Standard Base node now accepts inputs to control tessellation and world space displacement, and a new option that enables and disables hardware tessellation.
In addition, you can use a new Sampling > Domain Sample Texture node in order to read input data from a texture when that data is needed in the domain stage of the shader -- for example, when providing values for the new tessellation factor and displacement inputs.
Values entered for Sprite Columns and Sprite Rows in the Utility > Flipbook node are now output correctly on the sprite sheet.
For a complete list of all new, modified, and removed shader nodes in this release, see the version history.
Stingray now requires Visual Studio 2015 for rebuilding all components from source code. See Software requirements for updated information.