Legato Selector

vncnt

Well-known member
That's okay John.
This plugin needs to be fully operational asap, for a personal project in the next months. It would be nice if others could also benefit from it. Feedback is always appreciated.

I think LightWave can be used much more pleasantly in CA with relatively small adjustments.

It's tempting to keep adding functionality as soon as I encounter another obstacle (and use that as a foundation for new functions), but in the coming months I'll be shifting my activities much more to the creative part of character animation. I haven't been able to pay much attention to that in the past 25 years.

The Controller feature of Legato Selector seems to offer many benefits in that animation process: subtle changes in the face (or other body parts) greatly influence the final result. As you can see below, having all the controllers in the viewport complicates the process of reading the expression. Hiding bones, not filling joints, smaller joints, etc makes them harder to find and select.

As a sneak preview, below also the new Controller Properties dialog. Needed to convert 2D mouse movements to 3D item movements. The factor field can be used to mute a channel, to invert a channel or to amplify a channel. In the current version these parameters are correctly stored in memory, and correctly saved and loaded from file. The next step is to actually use each marker-related parameter while dragging the marker in the 2D dialog. Also need to add code to modify multiple markers (connected / all) at once.

LegatoSelector_v8b.png
 

vncnt

Well-known member
Item picker Legato Selector version (5-NOV-2021):

- [new] Controller Markers: turn-off Tools and Setup mode, then LMB drag a marker to set key and modify channel values according to marker Tool (position, rotation, scale)
- [new] Controller Properties dialog: RMB click (Selected Marker), Ctrl RMB click (Connected), Shift+Ctrl RMB click (All)
- [new] Separate marker label in graph mode, for special functions. Press F2 in graph mode to define label of the selected marker.
- [new] Each new marker receives the latestTool and latestColor (and latestShape, latestAspect, latestSize) by default, as defined after each Tool/Color modification (by using Alt + click LMB in Setup mode).
- [new] Set Color/Tool/Shape/Aspect/Size on Marker (Alt click LMB), Connected Markers (Ctrl + Alt click LMB), Marker (Shift + Ctrl + Alt click LMB).
- [mod] Delete button can delete the connected markers of the selected marker. Use Delete key to delete individual/all markers and lines.

At this moment, the internal grid size is a fixed value.
For now, and if needed, change the factor settings in the Controller Properties panel (of each marker) to adjust mouse movement to item movement.
I'm working on a more elegant solution.


5-11.png


In the attachment: demo scene + object, incl. LSC plugin file.
 

Attachments

  • demo_LW2020.zip
    178 KB · Views: 27
Last edited:

vncnt

Well-known member
Item picker Legato Selector version 16-NOV-2021:

[BUG FIX] Rename Set (F2) updated the content of the pulldown button but didn't update the internal array that is used to save Set data in the LWS scene file.

[EXPERIMENTAL] CycleSwap X/Y/Z/All
Use key 'X', 'Y', 'Z', or 'A' to swap the keys between two selected items, for the current frame.
Respectively ignoring the X-axis/Heading/X-Scale, or Y-axis/Pitch/Y-Scale, or Z-axis/Bank/Z-Scale, or none (effectively swapping all translation channels).
 

Attachments

  • Legato_Selector_16-NOV-2021.zip
    161.6 KB · Views: 13

vncnt

Well-known member
Item picker Legato Selector version 18-NOV-2021.

As I am in a hurry to finish my demo reel within a few months, I needed to fix some issues with the Import function so I can continue my animation activities.

Not every reference to an item (by item.id) survived the Export/Import process, and crashes happened. In this version there is no auto-fix function for this, but at least the F7 Health Check identifies every broken reference and displays inhibited markers with a white circle. You can either delete them or re-assign them to different items in your scene by turning on the "Items -> Marker" button in Setup mode, then select one or more items in Layout, turn off "Items -> Marker" button. Also, clicking on a marker with a broken item reference should not crash layout anymore.
When in doubt, Save your scene, and Export (settings.txt) regularly while setting up Selector. Backup of the exported settings.txt file has been enhanced.
The update problem in LW2015 and LW2018 seems to be resolved all by itself. LW2019 and LW2020 are still fine.

Below, I've Imported the settings.txt file and pressed F7 to generate a health report (and highlight suspicious markers).
Note the selected marker "m a s t e r" (top-left) in combination with the statusbar at the bottom "WARNING: Verify validity of marker #43 ....".
You can compare the marker index #, and/or the name, and/or the decimal id in the health report, or the hexadecimal id with items in the LWS file.
For now, you need to fix these type of issues manually.

healthCheck.png


-> [FIX] When button "Items -> Markers" is pressed (to redefine a referenced marker or markers), item selection in Layout does not update the current marker anymore. This caused a lot of confusion during setup.

-> [FIX] Button "Labels" wasn't respected in non-Tools mode

-> [MOD] Searching for connected markers is now limited to Setup mode, for better performance.
-> [MOD] CurrentSet is now saved in LWS, and restored after Load/Reload.
-> [MOD] Item references are now validated before being selected.

-> [NEW] On marker select, inhibit markers with invalid item reference. Invalid when item.id is not available in the current scene. See also F7 Health Check.

-> [NEW] F7 Health Check to identify invalid item references + file. Use this especially after Import. All invalid markers are inhibited when item.id (or one of the id's, in case of multiple items) is not available in the current scene, or the item.name is suspicious. A Health report file is written to .\Legato_Selector\_HEALTH___[scene.name].txt in the content directory.

-> [NEW] Export button now also creates (or overwrites) a settings_backup.txt file before writing a common settings.txt file.
-> [NEW] Export button now also creates (or overwrites) a settings___[scene.name].txt file, for additional security.
 

Attachments

  • Legato_Selector_18-NOV-2021.zip
    178.6 KB · Views: 12
Last edited:

vncnt

Well-known member
The bad news: another version.
The good news: you want this one!

Item picker Legato Selector version 19-NOV-2021.

-> [NEW] F8 Transfers all (Imported!) markers in current Set to another compatible target Hierarchy. Click button Hierarchy to change the Set related item: the Hierarchy Master of the target Hierarchy. Then hit F8 to match every marker to that new hierarchy.

-> [TEMP FIX] The code to find connected markers is causing random giant crashes. Functions that use connected markers are temporarily not discovering connected markers. Hope to fix this later.

-> [FIX] If the dialog was closed, activity in Layout would cause a script error.
-> [FIX] Button "Items -> Marker" changed the id or id's, but now also adjusts the item.name.

-> [MOD] Renamed button "Item -> Set" to "Hierarchy" to assign a Hierarchy Master.
-> [MOD] Renamed button "Items -> Marker" to "Define Marker".
-> [MOD] F7 Health Check now reports the cause of a problem per marker. Click on individual markers to get feedback.
-> [MOD] F7 Health Check now also reports items that are outside the Hierarchy Master (Click button "Hierarchy" to assign an item to a Set, as a Hierarchy Master).

The new feature (F8) should enable to assign a Set of markers to cloned hierarchies.

You need to LoadItemsFromScene to get several clones of your character.
Parent each of them to a different null. For now, you MUST use the same name for these nulls, for example: Character (1), Character (2), Character (3), etc ...
The sequence number is being used when there are multiple items to choose from.

Then you need to assign that parent null to one of the imported Sets: first you generate a settings.txt file using the Export button. Then press Import for every cloned hierarchy.
You can rename the current Set with F2. You can rename the dialog title with F4.

Change the current Set (top-left pulldown menu, or use PageDown/PageUp), and assign a Hierarchy Master (the top of hierarchy item: one of the nulls you just created - your cloned hierarchy is parented to that null).

Press F8 to start the matching process - it shouldn't take long.
Each marker name (stripped from its sequence# between parenthesis) is compared to a stripped item.name.
When there are multiple items to choose from, the sequence number from the parent (the Hierarchy Master) is being used to match the correct item.
You still may want to use F7 Health Check afterwards, to identify markers with an invalid reference.

This is a first version of the F8 transfer function. For now it seems to work on my characters.
Markers with multiple references to items in your scene are not yet supported: at the moment, they cannot be matched individually by name. For now, you need to manually assign items to that type of markers.
I'm sure there will be a smarter matching method in the future, for example based on the position in the compatible source/target hierarchy, but that requires that the Hierarchy Master during Export is known, and more or less equal to the target Hierarchy Master during F8 transfer.

It's getting late now. But it looks like tomorrow I'm able to continue with my demo reel.
 

Attachments

  • Legato_Selector_19-NOV-2021.zip
    198.4 KB · Views: 10
Last edited:
Top Bottom