Special Abilities with different transition effects

Hi. I’m trying to build a style that uses multiple Special Ability controls to switch between styles, but I was wondering if it’s possible for them to have different transition effects? As I understand it, in a normal Special Abilities style like the following:

Layers<
  ColorSelect<AltF,TrFade<1000>,RgbArg<BASE_COLOR_ARG,Red>,RgbArg<ALT_COLOR_ARG,Green>,RgbArg<ALT_COLOR2_ARG,Blue>,RgbArg<ALT_COLOR3_ARG,Magenta>>,
  TransitionEffectL<TrDoEffectAlwaysX<TrInstant,EFFECT_ALT_SOUND,ModF<Sum<AltF,Int<1>>,Int<3>>>,EFFECT_USER1>,
  TransitionEffectL<TrDoEffectAlwaysX<TrInstant,EFFECT_ALT_SOUND,ModF<Sum<AltF,Int<-1>>,Int<3>>>,EFFECT_USER2>,
  TransitionEffectL<TrDoEffectAlwaysX<TrInstant,EFFECT_ALT_SOUND,Sum<Int<0>,Int<0>>>,EFFECT_USER3>>

Every transition effect using the USER1, USER2 or USER3 controls would be determined by, in this case, TrFade in the ColorSelect style.

If it’s possible, I would like to build a style that can do the following:

Use Special Abilities to change between multiple styles, e.g.
Red
Green
Blue
Magenta

USER1 switches to the next style, simple fade/instant transition
USER2 switches to the previous style, simple fade/instant transition (same as USER1)
USER3 switches to the first style (in this case Red) but has a different, longer transition effect

Is this something that’s possible?

Sounds like you’re after the new capabilities I just introduced in my Early Access Library with the “Gesture Based Special Abilities”.

In the Blade Builder, you can set the Phase Transition to “NEW! Multi-Phase Transitions” for either Special Abilities or Gesture Based Special Abilities. Then each Phase can have it’s own unique Transition, this would let you set Default (Phase 0) to the transition you want, so anytime you’re transition to that phase it will run that specific transition (you can technically set each phase with it’s own in the interface or they can have the just be set to use the same). My library will handle the set up and control layer for you.

Info here:

That does show a lot of promise, thank you! I’d not had a chance to play with the new styles yet.

The one thing I realise I didn’t make clear is that, if possible, I’d like a different transition for each phase when returning to Phase 0.

As it works currently, returning to Phase 0 from any phase (1 or 3, for example) will be the same transition. Is there any way to have the transition from Phase 1 to Phase 0 be different to the transition from Phase 2 to Phase 0, for example?

Hmm, that may be tricky we can tell what phase we’re transitioning to from the Control Layer but figuring out which one we’re transition from isn’t quite so straightforward, especially if you’re using different controls to go into and out of each. You may be able to put a “mask” layer over the top BUT that gets a lot more complicated as well, since you have to keep track of two phases and then apply the transition.

Off the top of my head, it may be challenging. If I get time this weekend I can try to mess around. Doing 2 phases back and forth is probably easy, but as soon as you throw in another phase or more it gets considerably more complex.

I’ve thought of a backup idea that may broadly do what I want, and be a lot simpler.

If I give each phase its own transition/style that’s activated on a Force effect, for example, and put each phase on a timer to return to Phase 0, I can activate the effect/transition I want and it’ll still return to the base phase on its own. It may not be immediately after the effect finishes (unless I time it and am very quick on my button presses!) but I can live with that!

I’ll try fiddling with that at some point and see if it works.

The new gesture special abilities are really cool, btw!

If you’re going to build the “phase” as an in-between layer in a very long transition you can technically use the EFFECT_USER1, etc to trigger with Special Abilities, you’re not stuck with Force effect. It would just end up being something you write custom. I wouldn’t use a Multi-Phase style though, as you’ll get all kinds of conflicts. Instead you’d just write your default as the base style, then set up your phases and transitions in TransitionEffectL<> for any effect.

Just note, these will be transitions, not phase changes. So what would normally be a phase would actually just be a timed layer in a transition, so you can only control when you go into it, the reverting would be on the timing of the transition.

Layers<Red,
TransitionEffectL<TrConcat<TrExtend<10000,TrWipe<500>>,Green,TrFade<500>>,EFFECT_USER1>,
TransitionEffectL<TrConcat<TrExtend<10000,TrInstant,Blue,TrFade<2000>>,EFFECT_USER2>,
...>

So the “Green” in the TransitionEffect would be your timed phase, it would last for 10000 ms (inherited from the TrExtend, then the whole layer would Fade out to the Red.

A few caveats, if you have several of these and trigger on top of each other, the Layer order matters, so say you have this Green transition active on its timer and you then trigger the Blue layer, if the Blue layer times out before the Green, you’d technically fade from Blue to Green, then when Green timer ends it would Fade to Red. Also, if you trigger Blue layer first, the Green layer can’t show until it completes.

So not as clean and neat at the Phase changing with ColorSelect<> but would kinda do what you want with limits and possible overlapping layers.