Use a different transition depending on which scene you switch to

Tehran

New Member
I have 3 monitors, arranged like so:

| 1 | 2 | 3 |

Each monitor has its own scene, and I used the scene switcher options to make OBS automatically switch to the monitor/scene that contains the cursor. This works really well!

However, the transition is always an abrupt cut.
I would like for it to use a "slide left" transition when I go from monitor 1 to 2, or from monitor 2 to 3.
I would like for it to use a "slide RIGHT" transition when I go from monitor 3 to 2, or from monitor 2 to 1.

In this way, it would be very easy for the viewer to follow the action onscreen, as the view basically "follows" the cursor around seamlessly.

If this doesn't make sense, check out this quick video I made:
https://youtu.be/zdeE_btB0Cw
https://youtu.be/zdeE_btB0Cw
You can see that moving the cursor from right to left across the monitors looks great, but going from left to right is terrible, since it uses the wrong kind of transition... since I can only set ONE transition at a time!

My current options are:
1. Just use a straight cut (meh)
2. Jury rig something with autohotkey to click on that menu and change the transition before it happens
3. Try to create my own plugin (But I am a terrible programmer and know nothing of SDKs)
4. Ask someone on the OBS forums very nicely to create such a plugin! :D

Is anyone up to the task? I think this is a pretty useful thing to have; I am surprised that it doesn't exist yet!

Taran
 
Last edited:

Tehran

New Member
Oh, I've also noticed that I can't seem to change the duration of the slide transition. I wanted to have it go faster....

I don't suppose a transitions plugin could also have custom durations for all saved transitions?
 

Jack0r

The Helping Squad
You can actually do this with the Studio Mode and a few clicks:
  • First you make sure you have a slide left and a slide right transition added to the list of available transitions.
    To do this just check the dropdown under Scene Transitions if they are already available to be selected. If not add them using the + button.
  • Next we activate Studio Mode
    To do this click on "Studio Mode" below Start Streaming/Recording.
  • Now on the left you can edit any scene and change it to your liking while on the right you see the preview of the output from OBS (assuming you are streaming or recording)
    But in this case we want to use the Studio Mode for a different option.
  • In the middle between the preview's you now see a Quick Transitions section. Here you can add any available transition with a custom time, click the +, change the duration to your liking and select which transition you want to use. You will then see a new button appear in the section for example called "Swipe left (2000ms)".
    Add the other transitions with timings you want to use here as well. So for example afterwards you have two buttons like:
    • Swipe left (2000ms)
    • Swipe right (2000ms)
  • All this up to now was preparation you only have to do once, so now comes the interesting part:
    • Think of it like this, on the left you select the monitor you want to switch to by selecting its scene. (Say Monitor 2)
      Then you check which is the current active monitor on the right. (Say Monitor 1)
      To do a 2 to 1 switch you click the swipe right button and OBS will change from Monitor 2 to Monitor 1 using the swipe right transition with the duration you selected earlier.
    • We currently cannot automate which transition will be used for a certain switch, but it should not be too complicated to use studio mode while being live.
    • Select scene on the left, check scene on the right, decide which button to use and click it :)
I also posted in the Automatic Scene Switcher Forum Thread to ask WarmUpTill if he could maybe add the option to select a transition to use on an automatic scene switch, although it will be quite hard to decide which transition to use :D But it could be a nice option for scene switcher.
 

Tehran

New Member
Thank you for your response!

But I tried what you suggested, and it simply won't work for me.

I need the transitions to be fully automatic. I've set up OBS the way I did because I am making a tutorial about Premiere Pro, and my setup stretches across 3 monitors. I need the screen recording to simply automatically follow the cursor to whatever monitor it is on.

I'll be screen recording for hours. Having to go and manually press something every time simply won't work. it has to be automatic.

As far as "deciding which transition to use..." Assuming we have scenes A B and C, the important part is to use a certain transition when going from A to B, and a different transition when going from B to C, a different one for C to B, or even C to A, and so on.

If that's too complicated to code, it could even just select the transition based upon the coordinates of the mouse. The left half of screen 2 (the center screen) would prepare the "slide right" transition, and the right half of screen 2 would prepare the "slide left" transition. Then, screen 1 is always a slide right transition, and screen 3 is always a slide left transition.

ALSO...
Based on my own fruitless searching over the years, and feedback from my twitter followers, (https://twitter.com/TaranVH/status/785946924536823808) the ability to automatically record from multiple monitors and automatically switch between them is a rare but highly desired feature. Add automatic swipe transitions between all monitors (as they are logically laid out in the Windows "display" settings) and you've got something completely unique. I think it should be an official feature!
 

Jack0r

The Helping Squad
The scene switch according to mouse coordinates, so switching to the monitor the mouse is on is doable with the Automatic Scene Switcher.
Currently not possible is the selection of the correct transition. But there are definitely ways to include this option into OBS in the future.
A simple "if this, then that" script would be enough. Now it just needs someone to have time to write the code for that :)
 

Jack0r

The Helping Squad
@Warmuptill is awesome: https://obsproject.com/forum/resources/automatic-scene-switching.395/update?update=1141

You can now setup Transitions for a scene switch using his tool. Combined with the automatic switching according to your mouse cursor position (see "Screen Region" in the Switcher) I think that is what you were looking for!
obs32_2016-10-14_05-27-26.png
 

moatdd

New Member
I noticed that if you set up scene switching via screen region and you're using slide transitions, that it's possible to break your scene switching altogether (the scene won't switch and no transition will play even though the currently selected scene in the list appears to change).

This will occur if you move the mouse rapidly between screen regions, triggering the scene switcher to requests a scene switch while a transition is in progress.

To alleviate this issue, make sure the main polling delay is a bit longer than your transition delay. I use the default transition delay of 300ms, so I set the scene switching polling delay to 400ms. I tried 350ms, but I was still able to trigger the bug.

This will result in a less responsive scene switching feel overall, but it will be much more stable.

Even if you don't use sliding transitions, I recommend using a delay of 400ms as it will also prevent your fades from getting prematurely cut-off by preventing scene switches from being triggered within the 300~350ms period required by transitions
 

TomCatT

New Member
In OBS for linux, this plugin only works if I don't edit the custom duration. Once I make a change, the slider to the volume will never work.
 
Top