I have the initial proof of concept built out for handling a secondary blade on a staff saber like Darth Maul or the Inquisitors. If you want to run two physical blades from a single Proffieboard these new Secondary Ignition/Retraction Effects and the new Conditional Effects will allow you to gain independent control over each. To start, in your presets you will set up one blade as the Primary blade (this will work just like a single bladed saber) in the style code, then you will set up the “other” blade as a Secondary blade in the style code. This will allow you to have a separate ignition and retraction for the Secondary blade that you can control in several ways.
The way it will work is your Primary blade will control if the saber is ON or OFF through normal button/gesture controls. After igniting the Primary Blade you can then set up the Ignition and Retraction for the Secondary blade, meaning you can ignite and retract the secondary blade as long as the Primary blade is ON. If you retract the Primary Blade through normal controls this will also retract the Secondary blade and turn the saber OFF. The Secondary Retraction only runs while the blade is ON and only retracts the secondary blade.
The Secondary Ignition/Retraction use the existing out.wav and in.wav sounds for your font but play them independently from the Primary allowing you to get the sounds to match. There are a few ways the Secondary Ignition/Retraction can be controlled.
a 3rd Button (easiest will be addition of a 3rd button to the saber)
a new button control for 2 button sabers (1 button may not be possible without someone removing a feature and modding the prop on their own unfortunately) - TBD
a separate Conditional Effect - in the demo I set up a Conditional Ignition effect on the Primary Blade, if the blade is held parallel at the moment of Ignition, the Secondary Ignition will trigger once the primary blade finishes igniting we can add a delay to this as well, a la Darth Maul in TPM. We can actually set many different Conditional Effects and have different ones in each preset if we wanted.
In addition, for this demo I have set up Conditional Effects for Blast and Clash, this allows us to choose which blade the effects appear on because we don’t want two blades showing the same effect. The Conditional Effects control which blade the effects appear on from within the style code as well. So the normal controls for each effect still run the effects and then via the style code we select which blade will show the effects. The Condition in the demo is whichever blade is pointing up, if parallel the Primary Blade shows the effect. This gives us control over how the affects appear, so blasts and clashes will always appear on the blade that is pointing up (when the effect is triggered), allowing us to switch the effect back and forth by simply changing the angle (like battling two opponents).
I am still working with Fredrik on Conditional Lockup effects, but the plan will be to also have Lockup react to a condition so the style for each blade controls which blade shows the Lockup effect. This is still in development currently.
For those interested, I created the “faux” double blade using a SubBlade and SubBladeReverse with the “primary” blade starting at the middle pixel in a normal SubBlade and the “secondary” blade using SubBladeReverse so that it also starts at the middle but then moves our to the hilt.
yep, this gives some great staff options, hell I was considering making this saber a staff but because of cost of 2 boards I didn’t want to, know I can.
This could be cool for a Kylo Ren hilt. Could you have it where just igniting the main blade would cause it to be explosively unstable, like, spluttering, and igniting the quillons causes it to act like a normal Kylo?
In my previous Proof of Concept I showed the Secondary Ignition and Retraction concept for Dual Bladed sabers like Darth Maul or the Inquisitor, etc. as well as the Conditional Effects for Blast and Clash. I’ve got the Conditional Lockup effect now working as well.
The idea behind the conditional effects and lockup is to allow you to control which blade shows the effect based on a “condition” like blade angle which is controlled in the style for that blade itself. This allows us to use the existing controls for all effects and then the individual blade determines if it should show the effect or not via the style itself.
For Lockup I’ve set it up so whichever blade is pointing up (if parallel the primary blade takes effect) will take on and hold the lockup effect for the duration. This allows you to use one blade to block and lockup with your opponent and continue that effect even when moving out of the “condition” like sliding down while trying to gain leverage. This produces a more realistic effect than if the lockup “moved” from one blade to the other or if both blades showed the effect. There’s still more development on these but I have the initial proof of concept running so I’m pretty excited.
Still a bunch more in the works so stay tuned!
I’m already setting up the config for my v7 to accept the second pogo pin in hilt pcb, will the wiring diagram have to change? and is it worth having a second speaker?
From a style perspective you just need the two blades to be independent. I won’t actually map controls until all of the new OS7 features are done but will most likely at least have some options for 3rd button but its too soon to say what. The rest is up to how you want to build it.
Is it possible to do this via the style library yet, or is it still on the horizon? Is there by any chance a guide on how to set up the saber this way?
It’s on the horizon, I started to lay the groundwork for Conditional effects in Phase 3 but haven’t completed. It’ll most likely be Phase 4 if I can get the interfaces built. It’s a bit more complex because the library needs to be able to design two blade styles at once that work together.
This should be available as fully independent blade control in OS8. Been doing lots of development and testing and it’s looking good.
That’s going to change this “faux” control for ignition and retraction and allow it to be actual.
Effects will still need to be based on “if BladeAngle is above horizon” and such.
That’s not entirely accurate. it’s possible to make the prop determine which blade(s) should get the effect and dispatch it accordingly.
I wonder it’s possible to use the clash and vibration directions to determine which blade was hit. It seems like vibration and acceleration should line up if the hit happens on one blade and go in opposite directions if it happens on the other.
I wouldn’t call it “faux”, the style code was controlling when the ignition or retraction would occur “visually”. Not really sure what you were developing TBH, but this works - it’s been trying to make it so any user could easily set it up and customize that was trickier. I want the library to be completely self-service for even new users, but translating to an interface that made it simple proved a bit tricky so I moved it to the back-burner because it was a pretty niche implementation.
I still think the style code approach has merit as it doesn’t limit you to one control for ALL presets and allows the preset to determine how it acts, just need to make it so anyone can set it up ;-).
Of course Fredrik makes it all happen, I was just the dummy helping, testing, learning, and figuring out how I wanted it to work in my prop.
Mainly, it’s not dependent on the blade style code (the ignition and retraction that is), it’s in ProffieOS itself using EffectLocation and bitwise based stuff.
I had built style code originally to make it work for me that was 99% ok, but forcing it into style code limited controls and timings etc… as you had likely encountered during your development.
Assuming this is more location stuff, I could see how that could work. Not based on new input like clash vibrations, but I think I get how current detections could drive it.
I’m never gonna get to OS8 at this point
Quite the contrary, this is intended to pair with Special Abilities so there’s actually more freedom for the controls AND users can set up to 5 different ways to ignite/retract with completely unique timings and animations. The difficulty when I was converting to the library was how to translate into an interface that allowed users to easily set up and keep the 2 styles in synch with each other. Up to now the library only handles one style at a time, so setting up a mirror style but allowing customization by the user was tricky.
But, in all honesty, the small target audience moved this off my plate and I haven’t really circled back.
If Fredrik developed a solution then it’ll obviously be good, but I’ll still eventually get this sorted for the OS7 library, then once tested out I’ll see how the other approach runs for OS8 so users have more options. I haven’t really looked at any of the OS8 stuff yet so not really familiar with what has been worked on, I still have a ton of OS7 functionality, like this, that I need to translate into the library.
Lockup states are currently stored in SaberBase, and is not managed on a per-blade basis unfortunately. Wouldn’t be too difficult to add a bladeset for the lockup though… Unless we we want to have two differnt lockup states on two different blades at the same time…