Stingray 1.6 (1.6.1011.0) focuses on delivering great workflows between 3ds Max and Stingray, making it easy to send scenes from Max and produce stunning real-time renders with Stingray. With the new Render to Frames tool, you can now capture high quality videos of your interactive projects and share online.
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.
New level sync workflows let you automatically rebuild your 3ds Max scenes in Stingray. Once 3ds Max is linked to the Stingray editor, scene assets can be automatically or manually tagged, and then reproduced with the same layout in Stingray. Modifications you make to the assets in 3ds Max are then updated inside Stingray. This makes it easier to build, iterate, review and change scenes, without having to manually reproduce layouts in two tools. This workflow also brings more Vray material properties into the Stingray shader, ensuring your Vray materials look and feel the same in Stingray as they do in 3ds Max. See Level Sync with Maya, Maya LT, or 3ds Max.
Note: The project used in the images above is courtesy of Virtual Resolution.
You can now capture the active camera or viewport and save frames to disk in the OpenEXR file format. The new Capture Frames tool also supports capturing frames on a test engine. For more information, see Capture Frames Tool.
You can now write plug-ins for the Stingray engine in C without needing source code access! This greatly improves the ability for all customers to extend Stingray. You can hook the runtime engine in to other third-party libraries and middleware SDKs, support your own custom data types, write your own gameplay code in C, and more.
For details on getting started, see the Stingray SDK Help.
You can use the new viewports extension to incorporate an engine viewport into your plug-in's panels and views, with full control over what the engine in that viewport loads, and over how the user interacts with the viewport. See here for details.
You can add new contextual actions for the editor to show when users right-click an asset or a level object in an engine viewport. See here for details.
You can now call out from the editor's JavaScript environment to C functions you provide in a .dll file. See this overview.
You can use the views extension to set up named views and panels, which you can then open from other extensions in your plug-in, or even from other plug-ins. See here for details.
You can now use Lua to create new geometry on the fly as your project is running. You can create meshes, apply materials, and have the resulting objects be lit and shaded dynamically like any other object that you placed in the scene using the Stingray editor.
Here's the sample code for the scene above to get you started.
The following Improvements to light baking and post-processing effects (SSAO, SSR) increase the lighting quality and performance of architectural visualization scenes:
With Stingray 1.6, we aim to give you two things you need when learning anything new: more time, and some advice on where to start.
Hobbyists, enthusiasts, and early adopters can now run Stingray using a Non-Commercial startup license. If the 30-day trial period didn't give you enough time, check out the terms and conditions to see if you're eligible for the Non-Commercial license. Updated steps to install using this license are included in the Stingray Installation Supplement topic.
Note: The Non-Commercial license is not available in all countries.
In addition, if you're tired of searching for and watching tutorial videos, pop open the Stingray Help menu and select the brand new top-secret Stingray Hands-on Training Mission. We've added 5 quick, interactive tutorial lessons that take you through the Stingray basics, and get you well on your way to creating your own project. (Pssst - it's not really a secret. Let us know what you think!) We added a note about this in the Getting Started topic.
The animation controller adds a new node, TransitionSwitch to control the flow of transitions at runtime by evaluating an expression. This expression is defined in the TransitionSwitch and can use Animation Controller variables and functions ("sin", "cos", "abs", etc.). Any transition incoming into a TransitionSwitch, called TransitionSwitchEntry, is triggered by an Anim Event, and one of the outgoing transitions, called TransitionSwitchExit, is taken depending on the outcome of the expression evaluated against the interval range values for this exit defined in the TransitionSwitch. See Animation controller states.
When importing a cloth object, you do not need to manually add the APEX cloth definitions to the corresponding physics file. The cloth definitions are imported along with the object and you can now add the cloth resources to the object in the Unit Editor. See Enable APEX Cloth.
You can now use Flow to control entities:
We've added several new nodes that you can use to spawn entities dynamically in the level, to set and retrieve data in your entities' components, and to respond to entities being spawned and unspawned.
You can use the new Flow component to assign a Flow graph to an entity. You can use these Flow components to set up reusable behaviors for your entities, much like the way that each type of unit has its own Unit Flow. See Set up an entity's behavior using Flow or Lua.
Stingray projects now use the unique file extension .stingray_project, making it easy to find and open projects. Double-click the .stingray_project file to open the project in the Editor. Updated Help topics include: Open an existing project and About the project structure.
In previous versions of Stingray, the . character had a special meanings when used in the names of resources and folders -- to denote resource variants. This meant that you weren't free to name your files and folders the way you wanted, and it could sometimes cause problems when importing source art files with periods in their names. All of these restrictions have been lifted; you are now free to use periods in resource names as much as you want.
Stingray includes new texture categories and templates such as Normal, Linear Greyscale, Albedo, Albedo Opacity and Roughness/Metallic/AO to help you categorize textures and apply texture settings. The newly added texture templates in the Texture Manager come with default compression settings to work on each supported platform. The textures imported in your project are now assigned the default compression settings. See Import a model with textures and materials.
You can use occluder boxes from the Create menu to occlude objects and gain performance improvements by avoiding rendering shadows and objects that give no visual impact to your final rendered frame. For more information, see Create occluder boxes.
Download new Stingray plug-ins and update existing ones using the Get more plugins selection in the Plugin Manager. Select any of the available plugins and click Install to download it. See Add and remove plug-ins using the Plugin Manager.
Source customers can now toggle between DX11 and DX12 as the viewport renderer in the Editor (Edit > Engine > Renderer). Note that this option is available only if you compile the engine with --use-d3d12 flag, provided your engine supports DX12. See Switch between DX11 and DX12.
This release of Stingray picks up the latest version of FBX (2017.1), which provides various security improvements.
Some functions in the Lua API are intended for use only during development, but not in your final release. For example, this is true for anything relating to debugging, using console connections with the editor, autoloading resources, performance monitoring, etc. Since these functions aren't available in the release build, trying to call one of them from your gameplay code crashes the engine.
To avoid the possibility of letting any calls to these functions slip through the cracks when you release your game, you can now ask the development build of the engine to print a warning whenever one of these functions is called.
Use the stingray.Application.toggle_dev_only_warnings() function to turn these warnings on and off. Then, before you release, check that you're not seeing any of these warnings turn up in your logs.
Stingray now runs projects more quickly in a web browser using WebGL. The launching process has been updated to load the content from a URL instead of packaging the compiled data to a separate folder and reading the data. The URL also displays the location of the content folder.
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.
Projects built on previous VR templates will not work in Stingray 1.6
Stingray 1.6 is a significant update for VR, and as a result projects built with the previous VR templates no longer work. You'll need to manually migrate assets from your previous VR projects into the updated VR templates. We apologize for this, but we hope the improvements we've made for VR help to ease the pain.
The Stingray renderer now implements instanced stereo rendering, which removes the need for the previous vr_renderer.render_config. In addition, we've added Flow nodes for SteamVR and Oculus to remove any tracking lag. Check out the What’s New section of the release notes for more details on the VR improvements.
GAME-18910 Deploying to any platform works in Development and Release configurations, but fails in Debug with engine runtime not being found
Workaround: None.
GAME-19224 Projects migrated from Stingray 1.5 lose association with Wwise projects
After you migrate a project created in Stingray 1.5, selecting Window > Wwise Audio to load the associated Wwise audio project stops working.
Workaround:
(Note: We recommend creating a backup of your project before modifying the .stingray_project file.)
Add the following to the .stingray_project file located at the root of your project, between description and migrations lines:
libraries = { wwise = { project_file = "YourProject.wproj" root_folder = "../YourProject_wwise" } }
GAME-18474 Template projects won’t run on 1GB iOS devices
Projects fail to run when you load one of the default Stingray template projects and deploy or connect to a 1GB iOS device, such as the iPad mini.
Workaround: In the project boot.package file, comment out * = ["*"]. Note that this fix works only for the basic and vehicle templates, and does not work for the character template.
GAME-19295 Projects downloaded from the Online Examples tab in the Project Manager prompt you to migrate the project, and fail to load a default level
If you download an example project from the Online Examples tab in the Project Manager when starting Stingray, you'll be prompted to migrate the project even though these projects are already migrated to work in Stingray 1.6. You can simply click Yes to let Stingray migrate the project again.
Once the project loads, you'll need to manually open a level to work on. (Select File > Open Level.)
Workaround: Browse and download the same example projects from the Gamedev web site. When you open the project in Stingray, a default level launches automatically.
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.
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.
For a complete list of all new, modified, and removed Flow nodes in this release, see the version history.
This release mostly features the addition of several Flow nodes for working with entities.
Only one node has been removed: Application > Get Source Platform.
To preserve the forward direction in imported assets, set the forward axis setting (reverse_forward_axis) in .stingray_project instead of settings.ini. See Best practices: preserving axis orientation.
In projects that you migrate from earlier versions of Stingray, the forward axis setting is still read from settings.ini.
If you have an existing project that uses the old Stingray resource property system to denote different variants of your resources, you may need to do some additional customization in your .stingray_project file. The engine no longer automatically recognizes resources as being variants based on the . character in their resource names. Now, a new data_compiler setting in the .stingray_project file tells the data compiler exactly which suffixes it should treat as property names. This applies both for platform property names (like .ps4 or .ios) and for language and content property names (like .en, .ja or .lowres). This gives you even more control over the property system, and eliminates restrictions on using periods in file and folder names.
To set up the compiler so that resource suffixes work the same way they did previously for platforms, you'll need to make sure that your .stingray_project file contains a data_compiler block like the ones you'll find in the latest project templates:
data_compiler = { file_folder_extensions = [ ".s2d" ] resource_overrides = [ { platforms = [ "win32" ] suffix = ".win32" } { platforms = [ "ps4" ] suffix = ".ps4" } { platforms = [ "xb1" ] suffix = ".xb1" } { platforms = [ "ios" ] suffix = ".ios" } { platforms = [ "android" ] suffix = ".android" } ] }
If you also use different versions of your resources for different languages, you'll have to also include your language suffixes:
data_compiler = { resource_overrides = [ {suffix = ".ja", flags = ["ja"]} {suffix = ".fr", flags = ["fr"]} ] }
You'll also have to change the way that you identify which of these language flags should be active, by calling the new stingray.Application.set_resource_override(flag_name, priority) function.
For complete details, see Localizing resources.
This is planned to be the last release of Stingray to support Visual Studio 2012 for rebuilding all components from source code. The develop branch has already moved to Visual Studio 2015.