Resource icon

3D stinger transition 0.3.1

First release candidate

Lots of changes since the last release, beginning with the addition of a new mode of movement description : interpolation ! Instead of describing the scene's movement as a stack of transforms, the scene's position is recorded x times each frame (depending on the chosen resolution), and the OBS plugin uses this data to approximate the best it can the scene's actual position during the transition.

Also, the blender plugin is out quick user guide :

- Download the file addon.py down below, go to in Blender go to Edit > Preferences > Add-ons, hit the Install button and provide the downloaded file.

- Now select the object to be tracked in OBS, and go to Object > Export transform to OBS (also under F3). Specify the subframe resolution and the swap frame on the right, enter a valid filename (ex : data.json), and hit Export. Now you should have a json file ready to import in OBS !

Note : remember to use the provided base scene as a template for creating your own transitions, the plugin may not work correctly if used in a generic blender scene.


The json format has changed to reflect these additions. See the provided examples for more information. The movement description by transform is still there for convenience, but will not be used by the blender addon, the reason being I would have had to support all possible transformations an object can be subjected to by blender, and that seemed way more complex than just exporting a bunch of positions/rotations/scales.

Also the transition now sets its own duration based on the length of the video.

This is a release candidate, meaning all the functionalities are there, but there may be some bugs still left. If you stumble across one of them, fell free to open an issue here, complain about it on the OBS Forum, or even issue a PR !
The transformation can now be controlled via inputting a JSON formatted text that describes the movement. Sample below :

JSON:
{
    "swap_time": 0.5,
    "transforms": [
        {
            "begin_frame": 0.5,
            "end_frame": 0.7,
            "easing": "sinusoidal | linear | constant",
            "transformation": "scale | translation | rotation",
            "params": {
                "x": 1.0,
                "y": 0.1,
                "z": 1.0,
                "w(optional)": 1.0
            }
        }
    ]
}

begin_frame, end_frame, swap_time all range from 0 to 1 and are scaled with the transition's duration.
transforms is an array containing all the transformations to be applied to the frame, in order. For rotation, x, y and z specify the axis of rotation, while w is the angle of rotation.
It is advised to create such a file in a separate text editor, then paste it in the appropriate field, as OBS refreshing the transition each time you input a character will make for a very unpleasant experience.

I have yet to write a plugin to convert blender files to usable JSON. For now, if you want to make your own JSON from blender files, do know that the distances to input in the translate params are to be taken in meters in blender, and divided by 10. The default easing blender uses is sinusoidal, but do check that by yourself.
Top