Joysticks in Synfig (Controller Plugin)

@veermetri05 It would be nice to put link to the final plugin to the top post, so it can be easier to find.

Again, it would be awesome if you submit a PR to include the plugin into main Synfig repo. The fixes can be added later, if any. :slight_smile:

3 Likes

It’s been more than a year :astonished:,

Unfortunately I have lost the latest version of Joystick plugin where one can interpolate color values. Maybe I need to implement it again :slightly_smiling_face:, also I will implement a way for generating more controllers based on name of Group Layer, and submit a PR so that this code will be merged to Synfig. And it would be good to discuss this on Github than Forums.

Sorry for reviving this topic now, I will try to contribute more consistently :sweat_smile: .

4 Likes

animation
character.sifz (35.6 KB)

Plugin: joystickPlugin.zip (4.3 KB)

  • Added Color interpolation
  • The Controller’s origin is just a vector than a Composite vector (this allows user to link to spline the controller, etc)
8 Likes

You might need an updated documentation and place it somewhere new and old users can easily find it without having to scroll or do much searching. Especially since you’ll continue to update it. Nice work as usual :slight_smile:

5 Likes

Plugin Update

  • Create multiple controllers
  • Bind to existing controller

Plugin: joystickPlugin.zip (4.6 KB)

To create multiple controllers, just rename the groups with following format

joystick_name

Examples:

joystick_eyes
joystick_head

It will create a controller with name eyes and head.

To bind to already existing controller, just rename group in the same format above with existing controller names (ex- joystick_eyes this will bind to eyes controller) .

@Khemardi , thanks for your kind words. I will start to write a detailed documentation on Synfig docs, once submitted to official Synfig repo.

Todo
3 Likes

Plugin Update

  • Unbind Joysticks

Plugin: joystickPlugin.zip (6.1 KB)

To unbind rename the group with following format:

joystick_unbind_name

Examples:

joystick_unbind_head
joystick_unbind_eyes

Note: Unbinding does not delete the controller or exported values, you can do it manually

I haven’t thoroughly tested this feature yet. Try this out and report any issues you find.

ToDo

For now support for exported values is not a requirement and shouldn’t be feature creep, if it is required will add it later.

3 Likes

I’ve started testing. Working from the very basics right up to anything weird I can think of. Of course there are things that I know will never work and that are beyond the capabilities of this plugin but it’s fun just testing, just the same:

3 Likes

I haven’t finished testing, but based on what i’ve seen so far and what the plugin promises, I think it’s good enough to be used in production. One concern I have though and I think I vaguely remember you bringing it up? Is the name. I don’t remember the entire convo but is it legal to use the same name for the plugin as the one it’s based on in After Effects? I’m asking cause I really don’t know

1 Like

@Khemardi , great work on testing the plugin. I would like to thank you :heart: for giving your time to test the plugin. Great you attached the your test cases, it would be beneficial if you also share the spreadsheet too.

BTW, The plugin doesn’t consider bones for animating, if it is a requirement am happy :slightly_smiling_face: to implement it. For now it only supports vector, real, angle, color.

I am not a legal advisor but we shouldn’t use the exact name, we can’t use Joysticks and Sliders, but just using the Joystick as a concept wouldn’t cause any problem. People can copyright a product and name, not an idea. Moreover Joystick is just a device…:nerd_face:

The name of my plugin is Controller Plugin, it is used to create Joystick, Sliders, Switch Templates. It is all okay to use these names because they are just basic concepts.

I feel like @BobSynfig , is the right person too seek some advice in this discussion.

I don’t think that there is any problem for such a generic name :wink:

I forgot that the plugin is actually called ‘controller plugin’ I’ve been using the term ‘joystick’ for so long that it slipped my mind, lol.

I don’t think it’s necessary to consider bones, vector, real, angle and colour are just fine. I already knew it didn’t support bones, but decided to test anyway as I’m testing broadly. Although speaking of bones we do need IK support @BobSynfig :upside_down_face:

I’ll attached the spreadsheet. It doesn’t have all my test cases as yet, will update soon.

1 Like

Got it working… Yep… Did not rename the group layer with the ‘joystick_’ prefix, but the object within. :blush:

Thank you very much :handshake:
Anybody still interested in the slider plugin like me? :face_with_peeking_eye:

1 Like

The slider plugin would be a nice addition to this one

1 Like

My plugins don’t properly support exported values. And I don’t plan to support them, if it is required then I will add it’s support.

The workaround for exported values is:

Do these steps before running plugin:

  1. Bake the exported values (Right click → Bake)
  2. Unexport them (Right click → Unexport)

Then you can run the plugin, the output hopefully be as you expected unless the interpolation is heavily influenced from curves.

These testcases are really useful, I took a proper look at them, appreciate the time dedicated for testing the plugin. Thanks a lot.

I will test the plugins further to gain the confidence that they are production ready and get merged with Synfig as soon as possible :slightly_smiling_face:.

2 Likes

UPDATED controller plugin over on GitHub people.
Joystick and Sliders together under one plugin. Multi controller support, no more keyframes, only waypoint animation needed for sliders when setting up, and inline with joysticks setup.

GitHub repo -veermetri05-controller-plugin

Awesome work by Veer

5 Likes

I did test the plugin and tried to find any unexpected behavior or issues. But sadly I wasn’t able to find many errors, issues with it.

Here’s the testing report (continuing Khemardi’s work):

Here are files (setup): joystick testing.zip (26.0 KB)

Everyone is recommended to use the latest version from Github. And report any issues. If any issues or bugs are found, I will fix them. Right now I will complete the documentation for using my plugin.

If you have any questions or can think of questions that a new user might get when he wants to use my plugin. Please list them here, I would add them to FAQ.

Next step would be add this (and other plugins) links’ to Docs.

2 Likes

Please check the Readme. If you have any questions, or feel like need more clarification on some points, please point it.

2 Likes

The documentation is great except for one tiny issue… The first step should be Make sue to save your synfig project first For those folks that may not realize that not saving initially before running the plugin, will generate an error

Follow the below steps to have Joystick controllers for your animation:

  1. Missing step, see above :slight_smile:
  2. You need 5 poses in the order Normal, Right, Left, Top, Down
  3. You can create these pose however you like, you must have 5 waypoints for each animated parameter.
  4. Rename the group/layer as joystick_name, (ex, joystick_head)
  5. Run the plugin
  6. You can now see a Joystick controller
2 Likes