Opentoonz: Expression referencing fails in sub xsheet

Created on 5 Jun 2020  路  3Comments  路  Source: opentoonz/opentoonz


Describe the bug
Expression fails to reference parameter of another object in newly collapsed sub xsheet.

To Reproduce

  1. Load or create some level in the column 1.
  2. Select column1 and Collapse. (a sub xsheet will be created.)
  3. Select the sub xsheet and Open Sub-xsheet . (Sub xsheet opens, containing the column you just collapsed.)
  4. [In sub xsheet] In Function Editor, set the expression keyframe to Col1.ew referencing some another parameter like table.ew.
  5. [In sub xsheet] Try changing the referenced value (Table.ew) and see if Col1.ew follows with it.

In my environment, Col1.ew seems to fail to refer the parameter.
Instead, it actually refers the same object in the parent xsheet. (i.e. in this case, Col1.ew in the sub-xsheet changes according to Table.ew in the parent xsheet.)
Note that the reference recovers once you save and reopen the scene.

_EDIT_
The same problem occurs as well, when copying column in some xsheet and pasting it in another sub-xsheet. The pasted column cannot refer the values in the pasted sub-xsheet.

Expected behavior
Expression should work properly in just-collapsed sub-xsheets.

Device Information:

  • OS: Win10
  • OpenToonz Version: Latest master
bug

All 3 comments

Couldn't notation be extended to use the name of the relevant xsheet as part of expressions?
i.e. main.Col1.ew / sub1.Table.ew
if nothing is included (just: Col1.ew), it would refer to elements in the current xsheet.

sub-xsheets names would show and could be edited in the Scene Cast editor.

(I'm not inventing anything here, this is more or less how it works in After Effects)

Yeah I have thought about it. I think it is possible but have no plan to tackle with it by myself for now as I'm not sure how much it is demanded.

I don鈥檛 remember where, but I raised exactly the same question (here on the video is OT version 1.2.1)
Here I tried to bind the expression to a column nested in sub-xsheet. The rotation of the first controller affects the xscale of the current sub-xsheet (that is, the first column), the rotation of the second controller rotates the first column inside the sub-xsheet.
ezgif-1-79d192cc2f68

Prior to saving the scene, this works, but after restarting the expression that refers to the column inside sub-xsheet no longer works.
ezgif-1-529cdd9455a0

How to influence a column inside sub-xsheet?

Was this page helpful?
0 / 5 - 0 ratings