Notch Playback

As of version 3.3.0, LightAct can playback Notch blocks (link to Notch website). The main tool you’ll use to do that is Notch Block Reader node in Layer Layouts.

The node can be found in Generators->Textures category, but the easiest way to find it is to simply type “Notch” in the search bar.

There are 2 ways to play Notch blocks. To import them as Assets and choose one as the Source of the Notch Block Reader node, or to type a Filepath of a Notch block (.dfxdll) file into the node directly. 

The most common way is to import them as Assets, so let’s first go through this procedure.

Additional resources

Importing Notch block assets

You can import Notch blocks (.dfxdll) files the same way as all the other assets. Either by dragging and dropping one or several .dfxdll files onto LightAct window, by clicking on Import button or by using Ctrl+D shortcut.

Successfully imported blocks will appear in Assets tab under Notch blocks branch. Please note, the .dfxdll file will be copied into /Assets/Notch subfolder of your LightAct project folder, so if you change the original Notch block file you have to import it again and the one in the /Assets/Notch subfolder will be overwritten.

Playing Notch block assets

To play a Notch block you need to have a layer with an active Notch Block Reader node. The layout above shows the simplest possible example of it.

If you select Notch Block Reader node, you’ll see its properties on the right. Before we go and explain every one of them please notice that all Notch block assets are listed in the Source section.

The first step is to select one of them, so let’s do that.

When you select a Notch block asset, the node transforms and adds all the Exposed input and output (readable) properties inside the block. Notch Builder allows you to group Exposed properties into groups, which are shown in the node as well with grey text.

Supported exposed property types

LightAct 3.3.0 supports the following types of Notch exposed properties:

  • int (Integer)
  • float
  • string (text)
  • color
  • image (Texture)

This means it doesn’t support:

  • enum
  • posquat
  • cameraparams
  • resource

We will be supporting more property types in the future releases of LightAct.

Properties of Notch block reader node

After you selected one of the imported Notch blocks, the Notch properties section transforms a bit. Above, we outlined the main sections, so let’s go through them one by one.

Section 1

In section 1, you can adjust the resolution of the texture rendered by Notch and whether it should render on every frame or every 2nd, every 3rd and so on. Considering LightAct’s default framerate is 60, we suggest you leave the setting at Every 2nd.

Section 2

In section 2, you can adjust the syncing mode:

  • Ignore pause mode means Notch block will play at all times ignoring LightAct’s playback mode
  • Sync to layer time means Notch block will sync to the time of the layer this node is in. 
  • Sync to sequence time means Notch block will sync to the sequence time.
Section 3

In section 3, you can adjust the loading and unloading mode of the Block. Load block automatically means LightAct will automatically load the block when the layer starts minus layer’s pre-load time. You can adjust the layer’s pre-load time in this layer’s properties in the main window.

Purge VRAM on layer exit checkbox governs whether you’d like LightAct to completely unload the block the moment the playhead leaves the layer this node is in. Check that only if, in your show, the playhead never returns back to this layer once it leaves it.

Section 4

In section 4, you can see and select all the layers of the currently selected and loaded Notch block assets. Upon selecting a different layer, the node will rebuild based on that layer’s exposed properties.

Section 5

In section 5, you’ve got a few buttons:

  • Rebuild block reloads the block but doesn’t rebuild the node. Use this if you changed something in your block, but didn’t change any Exposed properties
  • Rebuild block & node reloads the block and rebuilds the node. This action disconnects all the connections to node inputs.
  • Close block unloads the block. If the node is active, the block will get automatically loaded again.
Section 6

In section 6, you can select between one of the imported Notch blocks

Section 7

Section 7 displays some information about the currently selected Notch block.

Playing Notch blocks from filepath

You can also play Notch blocks that you haven’t imported as an asset. If you select None or filepath in the Source section, then LightAct will look at Filepath input in the node and if it finds a valid Notch block, it will load and play it back the same way as an asset. 

This can be useful if you want the blocks to change dynamically.

Lua scripting

Lightact allows you to write Lua scripts where each exposed function is represented as a node. Lightact encourages you to write your Lua scripts in your favorite IDE or Text editor (such as Notepad++). Once you save them into a file, you can import them as an Asset and use the exposed functions as nodes […]

Continue reading

Custom Shaders

LightAct can load and use custom fragment shaders written in GLSL (more info here). Custom shaders are loaded with a Custom Shader node. At its most basic configuration, it has just 2 inputs: Resolution and Filepath. The Resolution input tells the node how big of a texture the shader should create and the Filepath input […]

Continue reading

Node connections

There are many different types of node connections and each type carries a different kind of data. They are listed below for your reference.

Continue reading

Text processing

Text processing in Lightact is done through a number of dedicated nodes in Layer Layouts. To avoid any confusion, let’s say right at the beginning that, in Lightact, a text is usually referred to as a string. For those that do not know, this has to do with variable types in computer coding. String substring String substring node […]

Continue reading

JSON parsing and packaging

JSON (JavaScript Object Notation) is a lightweight data-interchange format that is used widely across various computer applications. Lightact allows you to parse incoming JSON data stream into different Lightact variables, as well as package Lightact variables into a JSON string. An example of a simple JSON object with 3 variables would be: { “name”:”John”, “age”:30, “car”:null } As you […]

Continue reading

Interpolation nodes

Lightact has several interpolation nodes. They are used to slowly move the value of a variable towards a target. They are usually used when you want to make a value of a variable, be it a Float, Vec2, Vec3 or Color, to slowly follow a target. Some of the nodes are shown below. Let’s create […]

Continue reading

Easing functions

Lightact has several easing functions. To very quickly clarify what easing functions do: they map an incoming float range (usually it’s from 0-1) to a different 0-1 range. Easing functions, along with their curves are shown below and the numbers in front of their names are how you call upon them. Some of the nodes that […]

Continue reading

Real-time chroma key

This guide explains in detail how to use Chroma key node. In short, chroma keying (or greenscreen removal) is a process of taking 2 images and compositing them together. By far the most common usage is to replace a background of an object with something else. The above operation can be reproduced with the following […]

Continue reading

Real-time color grading

In this post, we’ll dig a little deeper into the real-time color grading performed by the Texture color grading node in Layer Layouts. The node itself is very simple. In the Input texture pin, you connect the texture you want to perform color grading on. In the LUT pin, you should connect a Lookup table. […]

Continue reading