Stacking pixel ignition

I saw a video of a speeder hilt, I think, and on ignition, the pixels lit up in"stacks". A block of pixels lit up on the end, then fell to the hilt pretty fast, then another block, etc. till it was ll filled in.

I am trying to wrap my head around the editor, but I learn by example (I think, lol), and I am still finding it pretty hard to under stand.

Can someone help me with this style, and then I will see if I can reverse it? so it stacks on, then the stacks leave the blade on power off.

Maybe link the video so we know what you’re talking about?

well… I cant find it now. :frowning:

I thought it was a greyscale font, but I am not seeing it.

Sort of like this, but I remember it doing the whole blade.

You mean “Assemble” in my library?

1 Like

like this?

1 Like

If you mean the infinity gauntlet type, yes, similar, but that didn’t stack. at the end

Yes, just like that! (except in reverse, but maybe that doesn’t matter)

You could Remap it to be reverse.

AlphaL<Remap<Scale<RampF,Int<32768>,Int<0>>,TransitionEffectL<TrConcat<TrWaveX<RotateColorsX<Variation,Orange>,Int<400>,Int<300>,Int<400>,Int<0>>,Mix<SmoothStep<Int<27500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<350>,Int<300>,Int<350>,Int<0>>,Mix<SmoothStep<Int<22000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<300>,Int<300>,Int<300>,Int<0>>,Mix<SmoothStep<Int<16500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<250>,Int<300>,Int<250>,Int<0>>,Mix<SmoothStep<Int<11000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<200>,Int<300>,Int<200>,Int<0>>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrDelay<100>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWipe<100>,Mix<SmoothStep<Int<0>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrFade<100>,White,TrInstant>,EFFECT_PREON>>,Int<16000>>
1 Like

No, there’s an Ignition effect named “Assemble” it has pieces of the blade move down and stack over the Ignition Time (you probably want 2000 ms or so to properly view the animation).

1 Like

Thanks for this!
It worked for the preon, but is there a way to get it to just loop constantly? Any changes I make result in some sort of error, usually too few arguments.

Remap<Scale<RampF,Int<32768>,Int<0>>,TransitionLoopL<TrConcat<TrWaveX<RotateColorsX<Variation,Orange>,Int<400>,Int<300>,Int<400>,Int<0>>,Mix<SmoothStep<Int<27500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<350>,Int<300>,Int<350>,Int<0>>,Mix<SmoothStep<Int<22000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<300>,Int<300>,Int<300>,Int<0>>,Mix<SmoothStep<Int<16500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<250>,Int<300>,Int<250>,Int<0>>,Mix<SmoothStep<Int<11000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<200>,Int<300>,Int<200>,Int<0>>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrDelay<100>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWipe<100>,Mix<SmoothStep<Int<0>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrInstant>>>
1 Like

Thanks! I will see if I can reverse it, so it fills then empties.

BTW, do you use the online style editor to make these kinds of changes?

Remap<Scale<RampF,Int<32768>,Int<0>>,TransitionLoopL<TrConcat<TrWaveX<RotateColorsX<Variation,Orange>,Int<400>,Int<300>,Int<400>,Int<0>>,Mix<SmoothStep<Int<27500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<350>,Int<300>,Int<350>,Int<0>>,Mix<SmoothStep<Int<22000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<300>,Int<300>,Int<300>,Int<0>>,Mix<SmoothStep<Int<16500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<250>,Int<300>,Int<250>,Int<0>>,Mix<SmoothStep<Int<11000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<200>,Int<300>,Int<200>,Int<0>>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrDelay<100>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWipe<100>,Mix<SmoothStep<Int<0>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrInstant,Mix<SmoothStep<Int<0>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<200>,Int<300>,Int<200>,Int<32768>>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,HumpFlicker<Orange,Rgb<60,15,0>,200>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<250>,Int<300>,Int<250>,Int<32768>>,Mix<SmoothStep<Int<11000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<300>,Int<300>,Int<300>,Int<32768>>,Mix<SmoothStep<Int<16500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<350>,Int<300>,Int<350>,Int<32768>>,Mix<SmoothStep<Int<24500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Orange,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Orange>,Int<400>,Int<300>,Int<400>,Int<32768>>,Black,TrWaveX<RotateColorsX<Variation,Orange>,Int<400>,Int<300>,Int<400>,Int<32768>>,TrInstant>>>

Yes.
I use this version because dark mode :slight_smile:

2 Likes

Man that’s great! Thanks!

I get an error when I try to put it in the blade style:

In file included from E:\ProffieOS\styles\fire.h:4,
                 from E:\ProffieOS\ProffieOS.ino:481:
E:\ProffieOS\styles\style_ptr.h: In instantiation of 'OverDriveColor StyleHelper<RetType>::getColor(int) [with RetType = RGBA_nod]':
E:\ProffieOS\styles\style_ptr.h:35:18:   required from here
E:\ProffieOS\styles\style_ptr.h:35:63: error: could not convert '((StyleHelper<RGBA_nod>*)this)->StyleHelper<RGBA_nod>::getColor2(i)' from 'RGBA_nod' to 'OverDriveColor'
   35 |   OverDriveColor getColor(int i) override { return getColor2(i); }
      |                                                               ^
      |                                                               |
      |                                                               RGBA_nod

exit status 1

Compilation error: could not convert '((StyleHelper<RGBA_nod>*)this)->StyleHelper<RGBA_nod>::getColor2(i)' from 'RGBA_nod' to 'OverDriveColor'

Its the latest version of proffieOS.

Here is the complete blade style:

// accents
  StylePtr<Layers<
    Remap<Scale<RampF,Int<32768>,Int<0>>,TransitionLoopL<TrConcat<TrWaveX<RotateColorsX<Variation,Limoncello>,Int<400>,Int<300>,Int<400>,Int<0>>,Mix<SmoothStep<Int<27500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<350>,Int<300>,Int<350>,Int<0>>,Mix<SmoothStep<Int<22000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<300>,Int<300>,Int<300>,Int<0>>,Mix<SmoothStep<Int<16500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<250>,Int<300>,Int<250>,Int<0>>,Mix<SmoothStep<Int<11000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<200>,Int<300>,Int<200>,Int<0>>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrDelay<100>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWipe<100>,Mix<SmoothStep<Int<0>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrInstant,Mix<SmoothStep<Int<0>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<200>,Int<300>,Int<200>,Int<32768>>,Mix<SmoothStep<Int<5500>,Int<2000>>,Black,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<250>,Int<300>,Int<250>,Int<32768>>,Mix<SmoothStep<Int<11000>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<300>,Int<300>,Int<300>,Int<32768>>,Mix<SmoothStep<Int<16500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<350>,Int<300>,Int<350>,Int<32768>>,Mix<SmoothStep<Int<24500>,Int<2000>>,Black,RotateColorsX<Variation,HumpFlicker<Limoncello,Rgb<60,15,0>,200>>>,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<400>,Int<300>,Int<400>,Int<32768>>,Black,TrWaveX<RotateColorsX<Variation,Limoncello>,Int<400>,Int<300>,Int<400>,Int<32768>>,TrInstant>>>,
    TransitionEffectL<TrConcat<TrDelay<0>,White,TrFade<200>,Rgb<180,120,0>,TrFade<300>>,EFFECT_FIRE>,
    TransitionEffectL<TrConcat<TrDelay<0>,DeepSkyBlue,TrFade<200>,Blinking<Black,Blue,100,500>,TrFade<300>>,EFFECT_STUN>,
    LockupTrL<Layers<
      TransitionLoopL<TrConcat<TrInstant,White,TrFade<50>,Red,TrFade<150>>>>,TrInstant,TrConcat<TrInstant,Rgb<50,0,0>,TrFade<400>>,SaberBase::LOCKUP_AUTOFIRE>>>(),

And it appears to work in the web style editor.

The first (bottom) layer has to be non-transparent, otherwise the whole style is transparent, and since I can’t make the blade transparent (yet), that is not allowed.

The one that starts with Remap<Scale... ?
How do I tell if its transparent? And how to fix it?

Most of the time, transparent things end in L, like TransitionLoopL. (L stands for Layer)
If you Remap<> something transparent, what you get is also transparent, which is what happening in this case.
If all you want is for the “transparent” pixels to be black, then you can fix this by doing:

StylePtr<Layers<
  Black,
  YourLayerHere
...

This would produce the same results that the style editor shows.
The style editor is a little fuzzy on which layers are transparent and which ones are not, which is why it’s rules aren’t as strict as ProffieOS’ rules.

Perfect, thanks!