Unity 2017: Brand New Tools For Artists

Unity Technologies has finally released the next step in the evolution of Unity, with better artistic tools.

Unity Technologies has just announced the release of the newest version of their popular game engine. The biggest change is in the name. Unity 2017.1 starts a new cycle of products, which will be named after years, instead of versions.

The new engine is available to all users with an active subscription plan (Personal, Plus and Pro). But if you have bought Unity 5 perpetual license(s), Unity 5.6 was the last update in the 5.x cycle. Personal license is still free, so no worries.

What about the software? Let’s look at the major additions, which are interesting to the artistic crowd and gamedev people.

Artists & Designers: Brand new tools for storytelling and in-game sequences

Unity 2017.1 introduces new ways artists & designers can create stunning cinematic content, compose artistic camera shots and tell better visual stories with the Timeline, Cinemachine and Post-processing tools.

The ‘Timeline’ is a powerful new visual tool that allows you to create cinematic content (like the Adam short film). You can use it to create cutscenes, create gameplay sequences, and much more, by orchestrating your game objects, animations, sounds and scenes. With Timeline, you can focus on storytelling and cinematics, not coding.

Timeline’s track-based sequencing tool applies a “drag and drop” approach to choreographing animations, sounds, events, videos, and more, for faster creation of beautiful cutscenes and procedural content. Timeline has features for animation and audio, auto-keying and a multi-track interface with the ability to lock and mute tracks.  Timeline is extensible via the Playable API and offers you the ability to create your own tracks to drive whatever systems you have in your game.  You can make a Timeline clip to represent practically anything–and have those clips repeat, scale and blend together, making the most of the Timeline interface.

Cinemachine is the result of over a decade of building gameplay and cinematic cameras. It now puts industry-leading camera behaviors in everyone’s hands, and ushers in the era of procedural cinematography.

It’s a suite of smart cameras that dynamically trigger the best shots at the best time based on scene composition and interaction. This eliminates countless hours of hand animation, camera programming, and revision.

The Cinemachine feature is available via the Asset Store, add it to your project now.

From a first-person shooter to a third-person action adventure, you can revolutionize your in-game cameras with Cinemachine. You can easily:

  • Control sequences like a movie director with advanced camera tools, including real-world camera settings.
  • Compose shots with a focus on art direction, not implementation details. Give Cinemachine smart cameras simple directions, like following the head of the character, and if the animation changes, your shot will update automatically and continue to work correctly.

With Unity 2017.1, we’ve added many new capabilities to Cinemachine like:

  • Target multiple objects: Target multiple objects and set the weighting between them. It creates a logical group, based on any number of subjects, that positions itself according to the position of its members. It can be used as a LookAt and Follow target when tracking a group of objects. Great for 2D as well.
  • Dynamically frame multiple objects: This will dynamically auto-frame a group of targets based on their positions.  If the objects move apart, Cinemachine will adjust the FOV or dolly (or both) depending on a set of rules you create.
  • New completely open API: Easily custom-configure Cinemachine to get exactly the camera behavior your project needs.
  • Dolly track:  Create film-like dolly track footage and have your camera smoothly move through your worlds.  Ideal for cinematic sequences or game cameras where you want the camera to follow the subject down a set of rails.  
  • Clear shot:  Clear shot will dynamically choose the best camera based on shot priority and how good the shot is.  Did something move into frame wrecking the shot? No problem, Cinemachine will cut to the next best camera.  Incredible for replays or any other cinematic sequence of a variable scenario.
  • State-driven camera:  This allows for code-free linking of cameras and animation states.  Easily trigger different camera behaviors from animations. 

You can take your storytelling to the next level by combining Timeline and Cinemachine together. Go further still by using the post-processing stack to create effects, and add mood and drama to your scenes.

Improved Post-processing stack (beta)

Post-processing applies full-screen filters and effects to a camera’s image buffer before it is displayed to screen. You can use image post-processing effects to simulate physical camera and film properties.
The latest version of the post-processing stack is available in beta here. Final release is expected this summer.
(Note: previous stable version of the stack is available in the Asset Store)

The improved stack combines a complete über set of image effects into a single post-process pipeline, and comes with a set of high-quality camera effects:

Screen-space anti-aliasing Auto ExposureMotion Blur
Bokeh Depth of FieldBloomColor Grading
Chromatic AberrationFilm GrainVignette

You can combine many effects into a single pass, and a preset asset-based configuration system makes management easy.

The color grading effect is a full-HDR color pipeline with Academy Color Encoding System  (ACES) support, and an LDR pipeline is also available for low-end platforms. The stack features two screen-space lighting effects, ambient occlusion, and screen-space reflections.

This new version also offers a volume-based blending feature, so you can define areas (any kind of mesh) in the scene and set up specific moods/looks for the scene when the player enters them. Unity will automatically blend between volumes to allow for smooth look transitions.

2D improvements

In Unity 5.6, we released major improvements to tools and workflows for 2D game creators.

In Unity 2017.1 we are introducing 2D Sprite Atlas, a new asset that will supplant the Sprite Packer. With it comes new and improved workflows that give you more control for packing sprites and using them at runtime. Atlases are an important part of 2D workflows in Unity, and the Sprite Atlas provides simpler atlas creation and management as well as a scripting API for more control and versatility.

 

Sprite Masks are used to either hide or reveal parts of a Sprite or group of Sprites in world space. The Sprite Mask only affects objects using the Sprite Renderer Component as well as Particle Systems.

 

In 2017.1, we are also adding a Sprite Physics Shape to the Sprite Editor. This allows you to set a custom default shape on a Sprite for generating collider shapes with a PolygonCollider2D.

Animation improvements

We have overhauled the Animation windows to improve the keyframing workflow, make animating feel more comfortable and familiar, and allow interaction with animator state-machines. Performance Recording is provided as an experimental feature.

The new keyframing workflow lets you explicitly decide what is keyed when, and have all unkeyed modified property values discarded when the animation is re-evaluated/previewed. We have changed the default behavior of editing clips in the animation window (new default Preview mode), visual feedback and global keying hotkeys. The goal of these changes is to enable a smooth workflow for keyframing outside of the animation window, as well as letting you preview clips without having to be in an autokey/rec mode.

Statemachinebehaviour can now also be debugged in play mode in the editor.

We are also introducing GameObjectRecorder, a new experimental editor feature, which allows you to record any properties on a GameObject and its children. That way, you can easily  create animations by saving everything that’s been recorded into an animation clip. Feedback is welcome on the forum thread.

Model importer improvements

 

FBX import in Unity now supports Segment Scale compensation for models exported from Maya and the FBX SDK has been upgraded to 2016.1.2.

We also added the option of computing weighted normals when importing FBX files such as by area, angle or both and fixed normal generation for hard edges. Lights and cameras are now imported from FBX files and Unity automatically adds and configures both Camera and/or Light components to objects as necessary.

Unity can now read visibility properties from FBX files with the “Import Visibility” property. Values and animation curves will enable or disable MeshRenderer components:

Progressive Lightmapper improvements

In 2017.1, we added support for baked LODs in the Progressive Lightmapper. The major difference between Enlighten and the Progressive Lightmapper when baking LODs is that with the Progressive Lightmapper, it is not necessary to author Light Probes around the LODs to get bounced light on them. Having the indirect lighting at full baked resolution will lead to much better quality baked Lightmaps for LODs, and you can avoid the tedious process of setting up the Lightprobes for them. (This will also be available in 5.6.)

We also added support for double-sided materials in the Progressive Lightmapper by adding a new material setting that causes lighting to interact with backfaces. When enabled, both sides of the geometry get accounted for when calculating Global Illumination. Backfaces do not count as invalid when seen from other objects. Backface rendering is not controlled by this setting nor will backfaces be represented in the lightmaps. Backfaces bounce light using the same emission and albedo as frontfaces. (This will also be available in 5.6).

Real-time shadow improvements

We have optimised the culling of shadows casters for cascaded directional light in stable mode. Meaning fewer draw calls are issued to generate shadow maps. The gain is scene and configuration-dependent. With four cascades, for example, we have seen the number of draw calls dropped by a significant amount. Based on the sun/camera direction, there could be 50% less shadow casters on your scene. An example in Viking village:

In Unity 5.6, there are 5718 shadows casters in the scene.

In Unity 2017.1, there are only 4807 shadows casters in the same scene.

Percentage Closer Filtering (PCF) for real-time shadows is also implemented in 2017.1. Depth value for each pixel is sampled from the shadow map around the current pixel and its depth is compared to all the samples. This allows a smoother line between light and shadow. You can see the comparison in the gif below:

In addition to real-time shadow improvements, shadowmask and distance shadowmask light modes are now a Quality Setting, and they can be changed at runtime without any cost. For instance, it is possible to use shadowmask for indoors (e.g. to achieve soft shadows) and switch to distance shadowmask for outdoor within the same level. It can also be used as a quality setting. 

We also added the Custom Render Textures as an extension to Render Textures, which allows you to easily update said texture with a shader. This is useful to implement all kinds of complex simulations like caustics, ripple simulation for rain effects, splattering liquids against a wall, etc. It also provides a scripting and Shader framework to help with more complicated configuration like partial or multi-pass updates, varying update frequency, etc.

With the addition of the LineUtility class and LineRenderer.Simplify function, you can now optimize your lines and curves by using the LineUtility to create a simplified version with a similar shape.  

Deferred Rendering on iOS with Metal/OpenGL ES 3

We enabled a deferred rendering path for Metal and OpenGL ES 3.0 for A8 and later iOS devices. When using deferred shading, there is no limit on the number of lights that can affect a GameObject. All lights are evaluated per-pixel, which means that they all interact correctly with normal maps, etc. Additionally, all lights can have cookies and shadows.

Particle System improvements

We are introducing sprite integration, particle collision forces (which can push colliders), a large number of shape improvements, including a new shape type, and additions to the noise module, as well as various other smaller features and enhancements.  It is now easier to use Particles in 2D thanks to new controls and constraints such as align to velocity.  You can use Particles for more effects and animations than ever, including lit lines and trails.

We have added support for using Sprites in the Particle System, via the Texture Sheet Animation Module. This allows for better atlasing and batching of Particle Systems, and also exposes a number of Sprite features for use in Particle Systems, such as varying sized animation frames, and per-frame pivot points.

The Noise Module comes with new options to provide greater control over how the noise is applied to your particles. In the original implementation in Unity 5.5, noise was applied to the particle positions. In 2017.1, it’s going to be possible to apply noise to:
  • Positions
  • Rotations
  • Sizes
  • Your shaders using new Custom Vertex Streams (great for UV distortion!)
We are introducing a new donut emission shape and edit modes for Particle system collision mode planes in the Shape Module. A Transform within the module allows you to apply custom position, rotation and scaling to the emission shape.

Other improvements include the ability to align particles to their velocity direction and to allow Emit over Distance to be used for Local Space systems. Edge emission is now more flexible, allowing you to choose the thickness of the edge used for generating particles.

Finally, particles can now apply forces to the Colliders they hit using the Collision module.

You can find the full list of additional and updated features at the official blog.

Join discussion

Comments 0

    You might also like

    We need your consent

    We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more