• Hello Guest!

    We have recently updated our Site Policies regarding the use of Non Commercial content within Paid Content posts. Please read the new policy here.

    An offical announcement about this new policy can be read on our Discord.

    ~The VaMHub Moderation Team
  • Hello Guest!

    We posted an announcment regarding upcoming changes to Paid Content submissions.

    Please see this thread for more information.

Keybindings

Plugins Keybindings v1.3.0

Acid Bubbles

Invaluable member
Developer
Featured Contributor
Messages
1,362
Reactions
5,388
Points
173
Website
github.com
Twitter
acidbubblesanon
Patreon
acidbubbles
Acid Bubbles submitted a new resource:

Keybindings - Fuzzy find and create shortcuts with 200+ commands, joystick support, custom triggers and more

Keybindings

🎉 Do you like Keybindings? Support me on Patreon and get early access to new features: https://www.patreon.com/posts/39197180

💬 Need help using this plugin or want to share ideas? Join us on Discord! https://discord.gg/VtUpPkb

View attachment 29273

Ramp up your creation workflow with a professional scene creation and...

Read more about this resource...
 
Acid Bubbles updated Keybindings with a new update entry:

Keybindings v1.0.3

- Shortcuts to change the physics rate
- Shortcuts to lots of settings such as reflections, soft physics, hands model
- Shortcuts to atom on/off
- Keep the plugin's commands order (do not order alphabetically)
- When multiple instances of a plugin are found on the same atom, whenever a plugin UI is opened, that plugin will receive the bindings for that atom
- Fix for binding using Oculus controller, and avoid having gamepad bindings affecting Oculus controllers
- Fix for the "Make default"...

Read the rest of this update entry...
 
Acid Bubbles updated Keybindings with a new update entry:

Keybindings v1.0.5

- When filtering in Keybinding settings, filter empty groups too
- Show which atom will receive the invocation when using fuzzy finding
- Bindings for smooth pass 0-5
- Bindings for pixel lights count 0-3
- Fix for plugins registering directly in Init (this is how the doc said you should do it but it crashed, now it doesn't!)
- When opening a tab and the main UI is not opened, open the main UI
- When creating a new atom and the name is taking, start at #2 to be in line with how VaM does it...

Read the rest of this update entry...
 
Acid Bubbles updated Keybindings with a new update entry:

Keybindings v1.1.1

- New extension to add plugins to atoms using fuzzy find or shortcuts. You can now add Timeline, LogicBricks or Lumination without even opening VaM's UI! Add the new KeybindingExtensions_AddPlugin.cslist session plugin and add the plugins you use often.
- Automatically use ctrl to halve movement and shift to double it in bindings such as asdw.
- Fast camera pan bindings (shift+asdw)
- When rebinding an existing keymap, display a message instead of an error
- Small UI and labels improvements...

Read the rest of this update entry...
 
This is an amazing plugin! Once more. At some point we'll run out of words to describe the quality of your work.

It's really convenient and the shortcuts are more than that: it has everything to make life easier. For instance it selects the atom added through the shortcuts in the "Add" section, even when "Select atom on add" is ticked off: that is neat.
And about cloning... I don't know if I missed something somewhere, but for me it's a brand new feature that goes really well with a keybinding. And it disables collision to avoid any issue. I was thinking of asking the community for a plugin that does just that: and here it is, with so much more along it! A big thank you, this is awesome!
This is really great for people creating props & environments with VAM shapes & props. I wasn't expecting to be able to add & duplicate atoms with this.

I have noticed a couple of issues:
  • The "DisableCollisions" keybinding doesn't work. It seems to be also linked to "EnableCollisions" :p
  • I come from a country with a weird keyboard: some letters are inverted. On those few letters, sometimes it recognizes the QWERTY equivalent, sometimes my input. Couldn't reproduce consistently and in the end that works; so nevermind.

And if you're even looking for suggestions on things to add (all would be "nice to have" and I'll remain really happy without those; I don't want to be the one asking for a mile when you've already given way more than an inch):
  • Some more shapes to be added. Like "ISCube" and "ISSphere", that have their specificities compared to "Cube" & "Sphere". "ISCylinder" & "ISTube" would be nice too, I use them quite often. "ISCone" a little bit less to be honest, but I'm sure it'll feel alone if it's the only one not in the list!
  • A "Toggle" keybinding for collisions (in addition to "Enable" & Disable", like the "On" & "Off" just above).
  • A toggle keybinding for "Use Gravity When position Is Off" from the "Physics Object" tab. Edit: and for the "Physics" checkbox too. Yeah, that's really specific - but that thing should be off by default! 😖
  • Some additional keybindings to directly use the 3 "Save" & "Restore" from the Material tab.
  • No idea if it'd be possible: among the Blender shortcuts I'd love to have in VAM, it'd be really cool to be able to have perfect front/left/right/top/bottom view of a selected atom.
 
Last edited:
Hey @ZRSX - I just wanted to let you know this is still in my todo list and I plan to act on this when I have some time :) Things like additional shapes should be easy to add, and the bug, will be handled soon-ish, the others I'll take a look.
 
No worries; there's absolutely no urgency here. Thanks for taking a look at it!

And to add a few more items to your todo list (yeah, I'm evil), here are a couple of things I thought of after using the plugin some more:
  • Add keybindings to toggle the "Hidden" checkbox in the Control tab;
  • Add keybindings to toggle the "Allow Possess/Grab" checkboxes for position & rotation, also in the Control tab. The toggle could impact both checkboxes at the same time, like you did for the PositionAndRotationState.
That'd be fabulous, I do that all the time when I'm done positioning shapes!

Oh, and just another small bug... or maybe rather a weird behavior: if you rename an atom and press enter, the keybindings are not active anymore. There's no issue if you rename it and then click somewhere.
I'm guessing the keybindings are set inactive while typing (otherwise that would be a mess) and typing enter is not registered as an end to it?
 
That all sounds reasonable :D And no worries, asking's not evil, making a tantrum when an unknown person doesn't drop everything to do what you want, that would be bad :D but otherwise I love hearing ideas, don't hold back! As for the bugs, yeah Unity and VaM have some handling for "whether something is being typed" that I'm also relying on. I'll take a look sometime though, see if there's a workaround.
 
I love hearing ideas, don't hold back!
Be wary, I often have lots of ideas...
Oh well, if you insist ^^

I have an idea for a new functionality for the plugin, probably a complex one. It would be: add the ability to combine several commands into one keybinding.
How I picture it:
  • It would be a new area under the list of keybindings
  • In this area, you would have:
    • 2 dropdown lists by default, each with all commands available in the plugin (except maybe the one that could be bound to joysticks or mouse axis, otherwise that could cause some issues)
    • You'll also have a "+" button to add any number of additional identical dropdown lists
    • 1 text input to name the keybinding
    • 2 text inputs to enter the desired shortcuts (like all other keybindings)
    • A "Combine" button (or whatever you want to call it), which would create a new keybinding line (in a dedicated "Custom" section?) that would trigger all the selected commands at once.
For instance, I would combine the keybinding for the "Hidden" and both "Allow Possess/Grab" checkboxes. So with 1 keystroke, I could set the atom hidden and unmovable.

That functionality could remove the need to add default keybinding lines for combinations, like "PositionAndRotationState". I think that's the only one in this case, but it's the one that made me think of this idea and that it should be possible.

Let me know if it's not clear.


As for the bugs, yeah Unity and VaM have some handling for "whether something is being typed" that I'm also relying on. I'll take a look sometime though, see if there's a workaround.
It's not very troublesome once you know it. It was just to let you know.
 
For such advanced uses, I could probably make a simple "macros" system, where you'd write your macros using a JSON file (so no UI), that would allow more advanced users to setup special commands that are just, in fact, a set of commands launched sequentially. I'm writing that down for when I'm back to improving Keybindings :D
 
That will do! I'm glad to hear that there's a (relatively) simpler way to make it work ☺
You're right; this should be used by a few power users only, who won't be afraid by a little bit of JSON editing.

I'm stopping tossing around ideas for now, otherwise you'd never want to come back to tackle an enormous todo list for the Keybinding plugin again :p
 
Haha my list is already impossible to manage, but if I'll always work on the subjectively "best idea available" on any given project I'm working on so that's OK. Hopefully everyone understands that one person working on quite little spare time on things like this can only do so much :)
 
It always gives me this error whenever i start vam. How do i fix it?

!> Exception during sync of package json cache: ICSharpCode.SharpZipLib.Zip.ZipException: Size mismatch between central header(240) and local header(0)
at ICSharpCode.SharpZipLib.Zip.ZipFile.TestLocalHeader (ICSharpCode.SharpZipLib.Zip.ZipEntry entry, HeaderTest tests) [0x00000] in <filename unknown>:0
at ICSharpCode.SharpZipLib.Zip.ZipFile.LocateEntry (ICSharpCode.SharpZipLib.Zip.ZipEntry entry) [0x00000] in <filename unknown>:0
at ICSharpCode.SharpZipLib.Zip.ZipFile.GetInputStream (Int64 entryIndex) [0x00000] in <filename unknown>:0
at ICSharpCode.SharpZipLib.Zip.ZipFile.GetInputStream (ICSharpCode.SharpZipLib.Zip.ZipEntry entry) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarFileEntryStream..ctor (MVR.FileManagement.VarFileEntry entry) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarFileEntryStreamReader..ctor (MVR.FileManagement.VarFileEntry entry) [0x00000] in <filename unknown>:0
at MVR.FileManagement.FileManager.OpenStreamReader (MVR.FileManagement.FileEntry fe) [0x00000] in <filename unknown>:0
at MVR.FileManagement.FileManager.ReadAllText (MVR.FileManagement.FileEntry fe) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.AddDirToCache (MVR.FileManagement.VarDirectoryEntry de, System.String pattern, SimpleJSON.JSONClass cache) [0x00000] in <filename unknown>:0
at MVR.FileManagement.VarPackage.SyncJSONCache () [0x00000] in <filename unknown>:0
 
@KameronFox are you sure this is caused by Keybindings?

First try to remove the Keybindings .var file from AddonPackages, see if that helps. If you still have the error, then it's a corrupted var file (and you have to find it, which can be difficult)

If it's indeed Keybindings, you simply have a corrupted download, delete the Keybindings .var file(s) and re-download.
 
@KameronFox are you sure this is caused by Keybindings?

First try to remove the Keybindings .var file from AddonPackages, see if that helps. If you still have the error, then it's a corrupted var file (and you have to find it, which can be difficult)

If it's indeed Keybindings, you simply have a corrupted download, delete the Keybindings .var file(s) and re-download.

Redownloaded it and still same error. Does plugins conflict with each other?
 
@KameronFox did you try the first things I suggested? (Delete the Keybindings var), because this error _only_ means one of the .var file is corrupted, there's nothing else there (no conflicts, no code errors, etc, just a corrupted file and it could be ANY var file)
 
@KameronFox did you try the first things I suggested? (Delete the Keybindings var), because this error _only_ means one of the .var file is corrupted, there's nothing else there (no conflicts, no code errors, etc, just a corrupted file and it could be ANY var file)

I did delete var file. Does 7z archive test work? I thought it was keyboard plugin problem but some others randomly showing this error.
 
If you deleted the Keybindings .var file and the problem still happens, the the problem is unrelated to Keybindings. Because the error doesn't tell you _which_ var file is corrupt, you can use a technique like this one: https://superuser.com/a/726429 or you can remove them and add them batch by batch. The corrupted .var files could either be 0 bytes, partial downloads, or invalid zip files (like an HTML file downloaded and renamed to var).
 
If you deleted the Keybindings .var file and the problem still happens, the the problem is unrelated to Keybindings. Because the error doesn't tell you _which_ var file is corrupt, you can use a technique like this one: https://superuser.com/a/726429 or you can remove them and add them batch by batch. The corrupted .var files could either be 0 bytes, partial downloads, or invalid zip files (like an HTML file downloaded and renamed to var).

0708004110.png


What's headders error? I mean these are working fine in game.
 
Headers are the first bytes that are expected in a zip file. It says things like how many files it should contain, if it's a zip file or not, etc. So if the first bytes of a file aren't valid, usually the zip isn't usable (except in special cases like the CRC file header which could be ignored but that would be very wrong). So it's probably _not_ working fine :)
 
Headers are the first bytes that are expected in a zip file. It says things like how many files it should contain, if it's a zip file or not, etc. So if the first bytes of a file aren't valid, usually the zip isn't usable (except in special cases like the CRC file header which could be ignored but that would be very wrong). So it's probably _not_ working fine :)

So i've bunch of this error. Does that mean i've to redownload them all?
 
Can't figure out how to bind functions from PostMagic, particularly from its DoF plugin - aperture, focus length etc. Its possible?
 
Back
Top Bottom