https://github.com/cunkmanjones/obs-source-animator
A Python Script, made for OBS, that allows for a Source's size and anchor point to be modified and animated using Easing Functions.
https://github.com/cunkmanjones/obs-source-animator
easing obs obs-studio open-source python
Last synced: 4 months ago
JSON representation
A Python Script, made for OBS, that allows for a Source's size and anchor point to be modified and animated using Easing Functions.
- Host: GitHub
- URL: https://github.com/cunkmanjones/obs-source-animator
- Owner: cunkmanjones
- License: bsl-1.0
- Created: 2025-08-20T19:56:31.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-08-31T05:09:20.000Z (6 months ago)
- Last Synced: 2025-08-31T07:08:16.779Z (6 months ago)
- Topics: easing, obs, obs-studio, open-source, python
- Language: Python
- Homepage:
- Size: 28.3 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# General Info
A Python Script that allows the use of easing functions and anchor points to animate the size of a Source.
> [!WARNING]
> Created using **Python 3.6.8** & **OBS v27.2.4 (64-bit)** and has **NOT** been tested with other versions.
# Installation
## Preparation
Make sure your [OBS](https://obsproject.com/) and [Python](https://www.python.org/) Installations are the same Architecture[^1]. *(32-bit or 64-bit)*
- OBS Versions < v28 will require Python 3.6.8 or Lower.
- OBS Versions >= v28 can use anything between 3.6.x and 3.11[^2].
Download and move the script into OBS's script folder. *(i.e ..\\..\obs-studio\data\obs-plugins\frontend-tools\scripts)*
## Enabling Python in OBS
1. **Open OBS** and access the scripting menu via **Tools -> Scripts**.
2. Next, click on **Python Settings** and set the path to your installed version of Python. *(i.e ..\\..\Python\Python36)*
3. From here, select **Scripts** and click the + at the bottom to select the Python script.
If script settings load, then you're all set!
# Troublshooting
## Loading Errors
### Incompatible Version of Python
Settings will always appear for Python Scripts that load correctly. If you do not see settings, the issue may be that your OBS and Python installations are incompatible. Please refer to the **Preparation** section.
You may also want to try loading one of the example scripts OBS provides within the script directory.
If an example script loads but this script does not, please create an [Issue](https://github.com/cunkmanjones/obs-easing-python/issues) with your installed versions of OBS and Python and the Architectures.
### Untested Versions
The script was created using 64-bit OBS v27.2.4 and Python 3.6.8, and may not work as intended on different versions.
I tried my best to ensure forward compatibility by using the basics of the OBS API bindings, but I can't test for everything.
## Usage Errors
### Source Size is Wrong
*ALT-Cropping* will **NOT** work as intended, please use a *Crop/Pad Filter* to crop your source.
Resizing your source *(i.e Tranform, Crop/Pad Filter, Select & Drag, etc)* after selecting it within the script will cause stored value errors. Please select a different scene or source within the script settings and then return to your original selection. Always check the *Script Log* to see if the correct values are shown.
### Not all Source Types have been tested!
Source Types such as *Image* & *Game Capture* work as intended, but please keep in mind that not every source type has been tested.
# License
- [**BSL-1.0 License**](https://github.com/cunkmanjones/obs-easing-python/blob/main/LICENSE.txt)
[^1]: OBS Python/Lua Scripting - 1st Note https://docs.obsproject.com/scripting
[^2]: Python support to use the Py3 stable ABI - 28.0 https://github.com/obsproject/obs-studio/pull/6706