Table of Contents
Godot Project Editor
The description is valid for software version 2.9.123_99 and later.
Godot Project Editor is supplied with the Skylark SL NEO software kit. You can run the editor through Start→Programs→SL NEO Media Platform→Godot Engine
or directly: C:\Program Files (x86)\SL NEO Media Platform\godot.exe
. If you use custom Skylark nodes in your projects, use only the editor that comes with the software kit.
Do not use editors from the official Godot website or the web-version of the editor, as they do not support integration with Skylark SL NEO Media Platform by default.
Terms
- Resource Pack is a collection of scenes, textures, scripts and other files packed into a .zip or .pck file. These files can be loaded into the Godot Engine module.
- Node - object in the project tree.
- Scene - a group of objects represented by a tree structure. A scene can be a preset (prefab). Scenes can be nested in other scenes.
- Head Scene - main scene specified in the project parameters as the initial scene.
- Script - block of GDScript code linked to an object.
- Visibility - Objects lower in the tree overlap with objects higher in the tree
- Z-Index - change the drawing position without changing the sequence of objects in the tree.
Hotkey Combinations
Tips
Optimization
Developing Godot Engine projects, you can stick to a few simple rules to optimize the use of your platform’s resources and get the best results:
- Create graphic compositions (SLG) and their parts for playout in the Godot Engine player in 50 fps progressive format when maximum quality is required. This will minimize the number of conversions due to Godot Engine performing rendering in this format. For example, create 1080p50 graphic compositions for HD
- Create graphic compositions (SLG) and their parts for playout in the Godot Engine player in 25 fps interlaced format, when maximum optimization is required to reduce load. For example, create 1080i50 graphic compositions for HD.
- If the SLVideoStreamPlayer node has a clip loaded and played, resources are consumed even if the node is not currently visible on screen. When possible, pause playback when the object is hidden. Use Property→paused for that.
Creating Custom Scenes
In order to load multiple scenes by different users to Godot Engine without file names overlapping, users are expected to follow a certain naming and object placement structure:
- Custom projects created in the editor require creating a folder with a certain name (e.g. “test”) and placing all files in it.
- The main scene of the project must be named the same as the folder. That is, the “test.tscn” scene must be created in the “test” folder, which will be the root of the custom project.
For example, there is Project path=Z:\GodotProjects
and a D:\User\Godot
working folder with custom projects.
The user creates a new project in the D:\User\Godot
folder. The editor will automatically create the following files:
D:\User\Godot\icon.png
D:\User\Godot\icon.png.import
D:\User\Godot\project.godot
Then, create a new folder in the editor (e.g. test) and place the rest of the files in there:
D:\User\Godot\test\anim.gd
D:\User\Godot\test\other_label.tscn
D:\User\Godot\test\PG1.sls
D:\User\Godot\test\test.gd
D:\User\Godot\test\test.tscn
(main scene of the project)
In the editor, export the project to a resource pack in *.zip format.
You can place the created resource pack in the Z:\GodotProjects
folder, and then load the needed scene by its name in the control panel: Administrator Control Panel→Status→GodotEngine_N→Load scene=test
.
Export Project to Resource Pack
Before loading projects into the Godot module, they must be exported from the editor to the resource pack.
Select the project export option on the menu: Godot Editor→Project Menu→Export…
.
Add a Windows Desktop upload the preset via Add…
.
Check all texture formats and press Export PCK/ZIP…
.
- Set the upload folder in the Path menu.
- Specify the uploaded file’s name in the File menu. The file name must coincide with the project’s main scene name.
Export of project files will take some time.
Skylark Special Objects
The project editor that comes with the Skylark SL NEO distribution currently uses three custom nodes for integration with Skylark.
Use the “+” button to add sub nodes to your project’s tree.
Select the required node and press Create to add it to your project’s tree.
SLService Node
The Node→SLService
node is used to exchange commands with Skylark SL Neo software modules:
- receiving commands in the scene is implemented by calling Godot Action.
- passing commands from the scene is done by command generation.
SLFreedCamera3D Node
The Node→Node3D→Camera3D→SLFreedCamera3D
node allows retrieving the camera movement and zooming data by the Free-D protocol. The Free-D protocol is configured on the camera or tracking device. UDP packets with Free-D data are sent to the address specified in SLFreedCamera3D. You can use the tracking data simulator to debug projects if a real camera with tracking data is not available.
Parameter | Description |
---|---|
Reception IP | IP address used for incoming Free-D protocol connections from the tracking module. |
Reception Port | Port for incoming connections from the tracking module. |
Reception Iface IP | IP address of the interface used to receive the multicast data stream. Used when the Reception IP parameter uses a broadcast address to receive tracking data. The parameter is not filled in when unicast is used. |
Camera ID | Fill this parameter if your camera uses a specific CameraID. If the same port and IP address are used to receive Free-D data from different cameras, the filled Camera ID parameter will help to identify the target camera. If the parameter is not specified, tracking data will be received regardless of the received Camera ID value. |
Feed Delay (ms) | The parameter defines the delay value of the received tracking data in milliseconds, so that the camera movement corresponds the camera image. Capturing video using Capture→ColorKey→VideoStreamPlayer will lead to video coming with a certain latency due to various buffering. However, the camera position may arrive with much less latency. |
No Zoom FOV | Virtual camera view angle corresponding to the camera zero zoom. Specified in degrees. |
Max Zoom | Maximum zoom value of the camera in degrees |
Max Zoom Value | Maximum zoom value of the camera in conventional units sent in tracking data. Used to convert the retrieved value to degrees. The value may differ depending on the camera manufacturer. |
Cur Zoom Value | Current zoom value of the camera in conventional units. |
Feed Active | Data receiving activity indicator. Enabled automatically when the camera tracking module connects to the node and sends data. |
SLVideoStreamPlayer Node
Standard node to control playback of video streams: Node→CanvasItem→Control→VideoStreamPlayer→SLVideoStreamPlayer
. The node supports playing clips from the Skylark SL NEO media database.
Parameter | Description |
---|---|
In Point | In point in seconds. Using fractional values is possible. A dot is used as a delimiter. The default value is -1, in this case the IN point of the played clip will be used. |
Out Point | Out point in seconds. Using fractional values is possible. A dot is used as a delimiter. The default value is -1, in this case the OUT point of the played clip will be used. |
Loop | If enabled, the clip will be played cyclically, based on the set In/Out Point values. |
Parameters | Setting key-value pairs for manual parameterization of uploaded graphic compositions. |
Delay | Playback start delay required for preparatory operations (file reading, decoding, buffering, etc.). When designing the logic of scene operation and control commands, consider the clip starting its playback not before the specified time value. |
File | Name of the played file (video file, graphic composition, live clip, etc.). Possible options:
|
Local to Scene | Duplicating resources while the scene is loading. Resources are distributed between all instances of the scene by default. Yet there may be situations when a resource property is to be changed at runtime for one object only. |
Path | System field |
Name | System field |
Volume dB | Volume control for the played clip. Possible values are from -80 dB to +24 dB. The 0dB value is used by default - no change to the volume level. If the volume level needs to be decreased, you can set the -80 dB value. |
Autoplay | Autoplays the selected clip when the scene starts. |
Paused | Pauses playback of the uploaded clip. Pause playback in hidden nodes to optimize resource usage. Resources are used in all cases of video playback, even if the object is not visible on screen. |
Expand | Resizing the object. |
Buffering Msec | System field |
Bus | System field |
Space Orientation
Work with the SLVideoStreamPlayer node may lead to situations when the object is inverted in space: for example, when setting negative values for size or position, or using rotation. Such inversion will make the played video change its orientation in space as well.
The SLVideoStreamPlayer node has a shader applied to highlight the object sides according to the provided image, so that the correct space orientation of the output video can always be determined.
Below is an example of color coding of the sides corresponding to the default orientation.
Below is an example of the situation when the node has negative Scale values specified.