View Full Version : Meet the Legato plugin for Layout

01-18-2014, 06:01 AM
What is Legato?
Legato is a Master Plugin (Ctrl+Q) for Layout that brings Markers and Regions to Layout and adds functionality for entire hierarchies based on those Markers/Regions in 3 viewports: Graph, Blocks and Speed.
Screen examples: 119396

"GRAPH" displays the envelope shape of each active channel of the selected (hierarchy) item. If you select a number of frames (click left mouse button and drag) you can delete, clone, move, hold pose, timestretch or timebend those keys, including all keys that exist in child items and the child items of those child items, etc.

You can define Markers/Regions. They are immediately available in the Library.
Or you can move the selected marker/region outside your preview range (to the negative Library area) with button L.
You can display and select Library items from external LWS scene files but those envelopes are not yet loaded and/or calculated in the downmix.

"BLOCKS" displays the montage of poses and animations from the Library just like a video editing program: using Blocks. You can add blocks, starting at the current frame, by selecting an item from the Library and press B or b. Blocks can be deleted, cloned, stretched*, faded*, blended*, cut* (inpoint/outpoint), moved in time, or moved to other tracks. Features marked with (*) are currently not yet calculated in the downmix. The downmix is the result of all Blocks and is added to each item that has keys via remix channels. A LiveMixer motion plugin is then added automatically to each relevant item to mix real channels with remix channels. Therefore you can always add animation on top of the Library animations/poses.

"SPEED" displays the rendertime for each frame after an F9/F10/F11 rendersession. And they are remembered in the LWS. Per RenderProfile (there are four of them). The relative graph maximizes visibility of differences and the bar graph displays the results of all four RenderProfiles. The RenderProfiles enable fast switching between a number of render parameters for ultra fast comparison. You can also define render regions (select range and press S) - they also store the currently selected RenderProfile so you can switch render regions and render profiles by simply selecting another render region from the Library list. An "estimated render time" is calculated based on interpolation. Select a region and use "Auto Sample" to testrender a number of frames, evenly spread over the selected area. The rendertime results of F9/F10/F11 renders are also stored. Press CLR to clear the speed performance for the current RenderProfile. "File" for file statistics and "Scream" to Screamernet-render the current renderrange are not yet implemented.


The previous post contains a download that includes a manual PDF.
It contains the basics. Needs updating.

For your safety: do not use this plugin-in-development in a production environment. Just to be on the safe side.
The plugin files are valid for 2 months because there will be more versions than revision E.

Legato is (just like RigManager, RigManager_assistant, Morph_assistant, Legato_LiveMixer and Legato_NonVolatileLiveMixer) currently not available as a commercial product.

I hope to post a video with a Legato demonstration soon (a few more weeks from now).

Bug and idea reports are welcome.

01-18-2014, 08:59 AM
http://erikalstad.com/backup/misc.php_files/king.gif Nice!

01-18-2014, 11:13 AM
Hope NT buys you out soon ;)

01-18-2014, 11:14 AM
Very promising tool! Waiting for the video :)

01-18-2014, 12:45 PM
Hope NT buys you out soon ;)

Hmmmm ...

01-18-2014, 10:44 PM
Some issues & suggested changes:

Legato currently auto-resizes both Layout and its own panel to fixed dimensions, without warning or asking the user if okay to do so. I have a 29" monitor, and the dimensions chosen are much too narrow/short versus what I normally use, but the Legato window itself doesn't support resizing either. Not only does Legato mess up my existing Layout arrangement while open, it doesn't restore it to prior dimensions once closed. It needs prefs which allow easily setting the dimensions to use for both Layout and Legato while open, it needs to restore Layout's prior sizing once closed, and it needs to (at least the first time around) confirm with the user that resizing Layout is okay explaining that closing Legato will restore Layout's original sizing.

The meanings of the various toggles and buttons in the Legato window are not obvious. It needs mouse-over tooltips or something to describe what each means, and whether it's a toggle or a button/command. A general "?"/"Help" button that opens on a quick-ref of the currently-selected mode would be an alternative, but I still recommend tooltips if possible.

Providing sample/starter libraries or examples in the different modes (allow user to delete to regain space) would be much clearer than the current approach where the entire left side of the Legato window is dedicated to an initially-empty library system. Having it initially empty makes it difficult to discover how that functionality works.
I think Legato's design and functionality has a TON of potential, but the issue in #1 is kind of a total deal-breaker for me. Without addressing #1, I'm unlikely to use Legato because it winds up wasting about half the width of my monitor, reducing Legato and Layout down to 1600-ish widths (my monitor is 2560x1080 native). I have a DELL U2913WM (which only cost me ~$300 on sale), so the price of "wide" monitors has come down substantially -- I don't think it is safe to presume few users will have such wide monitors.

01-18-2014, 11:58 PM
i'm not sure if case 1 is doable within Layout, but if not, there is the possibility to make it work via AHK...

01-19-2014, 03:39 AM
Some issues & suggested changes:
I think you will be surprised with RevE: it supports resizing.
At startup Legato still is enforcing the window layout but then it immediately displays the message: "Enforcing Window Layout = OFF". You can now resize (vertically and horizontally) and reposition. You can toggle between "ON" and "OFF" with the "l" key on your keyboard (L without caps).
However, after you resize this dialog horizontally, Lscript needs to refresh the position of the buttons on the right hand side. As far as I know, within Lscript there is no other solution for this. For now, double click on the Legato plugin in the Master Plugins list to refresh the location of the buttons.
The reason for this layout enforcement system is that Im complete done with the constant repositioning and resizing of every Layout dialog. While animating (supporting the animation process is the main intention of Legato) I want Legato to have the exact same position and scale as the timeline for the easiest interchange.

Another feature of the layout enforcement system (in revision E) is that is should recognize many different VGA screensizes. Since Lscript can not return the actual VGA screensize the scripts performs a small trick: if it positions the dialog outside the actual VGA screen area, the dialog is automatically put in an area of the screen that is available. By interpreting the actual x/y position the actual VGA screensize is derived from that information. This method should work with any screen between VGA and 8K. The Windows taskbar makes it slightly more difficult to always get exact results. If you still experience a weird window layout after startup, please send a screendump with the Master Plugins dialog visible: on my current PC it reads "Legato screen Y=884 type=VGA_1920x1080_16x9". The 1920x1280 should work too. Other configurations have been calculated but have not been tested. I have no method planned to support a second screen (with this layout system - you can move resize manually of course).

The problem with this dialog in Lscript is that you cant open a second dialog. Thats why the design of Legato is what it is now. Also, I really want certain buttons on the interface but there is limited screen space. Tooltips might be possible - Ill check that.

Ive created a simple example file with a few Nulls and one or more examples of each type of Library item. Included also some rendertime results (using objects that I did not include in this LWS file to generate rentertime results above 1 second): 119416

My main focus after my break is: support for animation from external LWS files, fades/blend levels in Blocks, Block speed, Abs/Rel Blocks, GUI update (too much flickering now), and support for other types of animations.

And of course Id like to know the weak parts, slow parts, missing parts, how well it can handle large hierarchies, etc, etc.

01-19-2014, 05:18 AM
Scene open with error:
Cannot access input file "S:\____LW-LINK____\LEGATO_REGISTERED.LS"

01-19-2014, 06:41 AM
Scene open with error:
Cannot access input file "S:\____LW-LINK____\LEGATO_REGISTERED.LS"

Oeps, sorry.
Ive been using the .ls file during the creation of that scene.

Changed the link.

Btw make sure you installed the three *.LSC files in directory:

If you installed the plugins somewhere else, you could use Notepad to manually change line 16 and 17 from:

Plugin MasterHandler 1 LW_LScript

into this:

Plugin MasterHandler 1 Legato_registered

and use the path name that is valid for your computer.

01-19-2014, 07:19 AM
Some hints for first time users.

Drag the Left Mouse Button to the LEFT or RIGHT to select a number of frames.
After selecting an area you can press "r" or "R" to add a Region. Or "m" or "M" to add a Marker.

Drag the Middle Mouse Button to the LEFT or RIGHT for scrolling in horizontal direction. In Blocks area: UP and DOWN is for scrolling in vertical direction.

Drag the Right Mouse Button to the LEFT or RIGHT for zooming OUT or IN.

"M" markers (storybeats) and "R" regions (actions) are presented in the upper area for the Director.
"m" markers (poses) and "r" regions (animations) are presented in the lower area for the Animator.

The reason for this difference is that you can clone/retime/move/timebend entire parts that are relevant to the Director, separate from the parts that are relevant to the Animator.

For more keyboard shortcuts, see the manual PDF.
This PDF can be found in post #127: http://forums.newtek.com/showthread.php?136828-How-to-change-a-rig-in-45-scene-files&p=1363042&viewfull=1#post1363042

Note that some keyboard shortcuts need something selected:
- a marker or a region: click with the Left Mouse Button on the orange/green handle (a small gray block should be visible behind the label)
- a block: click with the Left Mouse Button on a block in the Blocks area
- a selected frame range: click and drag with the Left Mouse Button in any of the three viewports
- a Library item: choose M, R, m, r, or S ---> filter items in the negative/none/positive framerange with -,_ , or + ---> then click on an item
- a RenderProfile: choose 1, 2, 3, or 4 in the Blocks or Speed viewport

Try this:
- Graph: select a frame range and press the PageUp or PageDown key: "Ping-pong playback"
- Blocks: click and drag with the Middle Mouse Button on a Block: "Clone block"
- Speed: select a frame range and press "S": "Add RenderRange using the selected RenderProfile (1/2/3/4)"
- Select the Hierarchy Master Null and open Graph Editor: note the additional Downmix channels.
- Select the Legato dialog and press: t, h, H, y, +, -
- Graph: Select a frame range and press Delete: all keys, in the selected frame range, in entire hierarchy are gone
- Graph: Select a frame range and drag with the MMB the MIDDLE section of the blue selection area to the right: "Clone hierarchy keys"
- Graph: Select a frame range and drag with the RMB the MIDDLE section of the blue selection area to the right: "Move hierarchy keys"
- Graph: Select a frame range and drag with the RMB the LEFT/RIGHT section of the blue selection area to the right: "TimeStretch hierarchy keys"
- Graph: Create 3 (m)arkers or (M)arkers in an area with a number of keys, now drag the middle marker with the Middle Mouse Button and release: "TimeBend hierarchy keys"

01-19-2014, 11:54 AM
This looks pretty cool. Will check it out this week. Thanks for making it available to try. :thumbsup:


02-07-2014, 01:33 AM
This looks pretty cool. Will check it out this week. Thanks for making it available to try. :thumbsup:


You may want to update to revF: http://forums.newtek.com/showthread.php?136828-How-to-change-a-rig-in-45-scene-files&p=1366452&viewfull=1#post1366452

02-09-2014, 07:27 AM
Copy poses and animations from the Library to compatible hierarchies
anywhere on the timeline
via the new TRANSFER function (keyboard T)
in Legato beta1 revG: http://forums.newtek.com/showthread.php?136828-How-to-change-a-rig-in-45-scene-files&p=1366734&viewfull=1#post1366734

02-14-2014, 11:46 AM
Implemented Block functions: fadein, blendin, blendout, fadeout and bug fixes
in Legato beta1 revH, download here: http://forums.newtek.com/showthread.php?136828-How-to-change-a-rig-in-45-scene-files&p=1367746&viewfull=1#post1367746

02-17-2014, 06:59 AM
Legato beta1 revI is here:

02-20-2014, 01:00 PM
Legato beta1 revK is here:

03-09-2014, 03:27 PM
Legato beta revL is available:

03-10-2014, 01:46 PM

07-01-2015, 06:11 AM
Legato beta1 revQ1 is available:

07-02-2015, 01:04 AM
This sound very promising! Looking forward to test it!
Thanks to have made it available...

07-02-2015, 08:13 AM
Any input is welcome.

I believe this version makes Legato ready for a real test project.
In this test project I'll design a simple story/sequence on the NLE timeline with one of my earlier plugins for Vegas Pro: LW-link.
Based on backplate photo's and videos, synced to music.

LW-link handles synchronisation of shot modifications in the NLE to the LWS scene files, and also handles (central definition of) render presets and renders with SN using these render presets.
Legato will handle the editing/recycling of poses and animations.

I'm sure it's going to be interesting.