Linking and Advanced Outlines

I think I’ve found a problem with Linking to Advanced Outlines. I have some Region layers I drew in Inkscape and imported into Synfig Studio. I wanted to add some outlines to them. I can add Outlines with no problem but I cannot add Advanced Outlines.

How to recreate problem:

  1. Draw a Region Bline using the Bline Tool

  2. Add an Outline layer (from New Layer context menu)

  3. Move Outline layer below Region layer

  4. Select the Region and Advanced Outline layer in the Layers panel

  5. Right Click on Vertices in Paramters Panel and click Link

  6. Note that Outline and Region now share linked vertices of the Region layer

  7. Draw a Region Bline using the Bline Tool

  8. Add an Advanced Outline layer

  9. Move Advanced Outline layer below Region layer

  10. Select the Region and Advanced Outline layer in the Layers panel

  11. Right Click on Vertices in Paramters Panel and click Link
    6. Note that Outline and Region now share linked vertices of the Advanced Outline layer

This is one drawback that the Advanced Outlines have. Its BLine is always internally linked. So when you try to link an Advanced Outline to other layer and preserve the other shape’s BLine, Synfig notice that the BLine from the Advanced Outline is already linked, so it has preference over the other layer’s BLine in order to select what Value are the others going to be linked to.

To fix that, you need to Export the BLine what you want to keep. This would raise the preference of the BLine of the other layer to the top level and so, the linked Bline from the Advanced Outline will be discarded. The Exported one will win the linking process and it will not be modified. After that you can unExport the BLine if you want.

I’m sorry for the inconvenience and the lack of documentation about that.

-G

Many thanks Genete - Exporting first solves all the problems. I remember you talked about Advanced Outlines being internally linked before, but I was too stupid to know what you meant then :blush: .

Maybe you would think that you can Disconnect the BLine of the Advanced Outline from its internals. You cannot. It will be automatically relinked again just after it was Disconnected.
But, what’s behind this?
The Advanced Outline has one parameter that needs to know the BLine of the outline. The WPList needs to know over which BLine are they lying in order to properly do the calculations of the widths based on the BLine’s properties. But one Linkable Value node doesn’t know nothing about its layer. It can belong to any layer or even be alone in the canvas, so it must have one hidden, internal BLile inside the WPList value node.
The layer, automatically connects the BLine to the internal BLine of the WPList every time that the BLine or the WPList changes. That behavior assures that there is always one BLine available to do the calculations and don’t leave orphan the WPList.

In the Linking process there are some hierarchies of Values to link. These are the levels:

If a exported value node is found, used it.
If not exported found, then look for the most referenced value node. Use the most referenced one.
If there is a tie on the most referenced, use the animated one.
If there is a tie on most referenced and both are animated, use the one with more waypoints.
If there is a tie on most referenced and both are animated and have the same amount of waypoints then use the last modified.
If there is a total tie, use the first found.

Cheers
-G