After several months, Galacean Engine v0.8 is officially released. In addition to the original Engine repository, this milestone also brings a toolkit (Engine Toolkit) repository with certain business-oriented and general-purpose functions for healthier ecosystem development.
Engine has added a character controller in the physics aspect, which can significantly reduce the development cost of character interaction business. It also introduces physics joints, allowing for quick completion of spring, hinge, and other physical simulation effects. The sprite aspect has added the slice (nine-grid) drawing mode. The text aspect has greatly reduced memory usage through internal mechanism optimization and improved performance. In terms of interaction, the Pointer Button function has been added, and the interaction functions are gradually becoming more complete.
Engine Toolkit repository includes the original Engine repository's camera controller, GPU picking, and performance data statistics functions. This milestone also adds auxiliary wireframe drawing, planar shadow material, skinned skeleton preview, Gizmo, post-processing outline, line drawing, and other functions. These functions are usually ready to use out of the box, and developers are also welcome to contribute to this repository. Additionally, some core functions of the Galacean Editor will be supported by the Engine toolkit in the future. Many insiders have already noticed that the new functions added in this milestone are all core functions required by the editor.
The new version of the engine supports the character controller component, which supports capsule or box shapes. The character controller can provide more physics-based feedback for characters, making it easy to achieve obstacle climbing, slope movement, and other functions in conjunction with the Animator animation capabilities.
Additionally, fixed joints, hinge joints, and elastic joints have been added. Joints make it easier to control the motion constraints of dynamic colliders, enriching the physical simulation interaction effects and making implementation simpler.
The text system has undergone a major overhaul at the underlying level. The texture of the text is cached based on individual characters, significantly improving performance and memory usage for large amounts of text rendering. For example, in the official website's text barrage example, performance has improved by 20%. The left image below is before the overhaul, and the right image is after:
In terms of memory, based on character caching, the internal character textures can be reused to the maximum extent. After refactoring, the memory usage in the text barrage example has been reduced by at least 50%. The memory comparison is shown below, with the left being before refactoring and the right being after refactoring (empty canvas memory 33.6 M):
The sprite section has undergone extensive refactoring, bringing two major updates:
Simple
and Sliced
. Simple
is the default mode corresponding to the drawing in version 0.7, while Sliced
is the newly added nine-slice drawing. Developers can set the Border
of the Sprite
to achieve the desired stretching effect.SpriteRenderer
, allowing developers to set the width
and height
.InputManager has added three new capabilities, removing the dependency on H5 native events:
isPointerHeldDown
, isPointerDown
, and isPointerUp
.pointerPosition
and pointerMovingDelta
.BlendShape
animation capabilities have been enhanced in WebGL 1.0 mode. In previous versions, the maximum number of BlendShape
animations supported in WebGL 1.0 mode was limited, and exceeding the limit would prevent playback at runtime. The new version uses a dynamic strategy to solve the maximum number limit, dynamically playing the BlendShape
animations with the greatest weight impact based on the animation weights at runtime, improving the animation effect and usability in WebGL 1.0 degraded mode.
Shader.getMacroByName
adds variable macro caching capabilities, and ShaderData
adds the getMacros()
method to get the current macro set.Vector3
, Vector4
, Color
, etc.) add the copyFrom()
method to support data interaction with Object objects.Renderer
adds the priority
property, enhancing rendering sorting capabilities and resolving rendering conflicts for objects with the same depth.pivot
and region
of Sprite
are adjusted to the lower-left corner.dependentComponents
, making it easier to configure component dependencies.Next, we will focus more on advanced features that users care about, helping developers improve rendering effects and development efficiency. In terms of rendering, we plan to add real-time shadows that support large scene rendering. In terms of animation, we will support arbitrary property editing, and in terms of effects, we will add trailing effects.
The editor has undergone a major design iteration and code refactoring in this milestone, supporting the creation of three types of projects: 2D, 3D, and digital humans. More practical business templates, such as AR and animation effects, will be expanded in the future. In addition, the editor now supports third-party plugin capabilities, allowing business functions to be quickly supported based on the plugin mechanism. In the next few months, we will conduct further internal testing and feature improvements, looking forward to meeting you by the end of the year.
As shown in the figure below, we have created a digital human plugin to meet the needs of digital human business such as face pinching, dressing, and animation.
If the WeChat QR code is invalid, you can add the group admin on WeChat: zengxinxin2010