2024.9.4 released! Highlights + notes

024.9.4 is available for testing!

Use version control/backup (always) and switch your modules.lx version over to try it and let us know if you run into any issues.

A few critical bug fixes and some extra 3D stuff.

Here’s some highlights:

  • Fix scene create crashing in editor with complaints about relative path
  • Fix loading bugs in nested prototypes with overrides on array fields + link fields
  • Fix world scale on sprite billboards not working
  • Fix mesh skin imports reading garbage data sometimes
  • Fix camera default flag causing it to become default again whenever any field changes
  • Fix Blocks saving hidden fields in the lx data
  • Fix rare memory corruption in font compiler
  • Fix log spam from can't find context for given root?
  • Fix some doc’d fields not showing their hover hint in editor
  • Block in foundations for text billboarding (can use manually atm)


No more nonsense skinned meshes :sparkles:

Camera improvements

Align to view
In editor you can now align a selected camera to the current editor view.

Blending
We now have a wip Camera.blend(camera, other, t) and a Camera.cut(camera, other) which will do what it sounds like, it’ll update the given camera to a blend of the other camera.

This is useful if you have multiple cameras placed in the editor, you can make your game camera view the world as them without switching the camera. Here’s an example from a test scene where we cut/blend a couple times in a cutscene style way.

Skeleton stuff

Clip API & node
Currently Clip only contains Clip.get_duration(clip) but still handy.

The clip node was changed to include a rate input and time input/output. When the clip node ticks, it will update time according to delta, so you can read where in the clip it currently is, and you can also control the playback rate with the rate field from your blend graph code.

Pose API
Access to bone local pos/forward/up/right, copying, reset and more. Allows stuff like attaching items to bones more easily (at the service api level).

Blend node

The blend node in the blend graph now has a ratio_1D input, which will treat the blend as a 1D blend space. For example, idle → walk → run can be added to the node, and then you feed in ratio_1D = velocity / speed, such that it’ll smoothly blend between them for you (previously this was done manually).

We also have a helper for 2D blend spaces, if you’re using this and want to use it already, let us know.

Scene script automation

Like the modifier helper before, make a blank file named scene.wren at the root of any scene folder, and it will fill it for you from the template scene script.


As always, let us know if you find issues.

Enjoy!

4 Likes