opentoonz / opentoonz_docs

OpenToonz User Manual
http://opentoonz.readthedocs.io
28 stars 26 forks source link

Is there a guide of Expressions? #129

Open F-Burning opened 1 year ago

F-Burning commented 1 year ago

Ask a question related to OpenToonz

Hi! I would like to learn about expressions, but I don't find many information about it.

artisteacher commented 1 year ago

There's not a ton in the documentation, unfortunately. https://opentoonz.readthedocs.io/en/latest/example_expressions.html https://opentoonz.readthedocs.io/en/latest/editing_curves_and_numerical_columns.html?highlight=expressions#using-transformation-references-1

If you search for expressions in the OT Google Group, you can see some specific use cases. Might be worth asking on one of the Discord servers.

F-Burning commented 1 year ago

Thank you mate, I'll take a look at the links.

Bracket-H commented 1 year ago

I found them to be really bad, or at least really limited, extremely easy to get a circular reference because it apparently cannot do 'temporary variable saving' to work on the values of the variables.

like (pseudocode) transform.x = transform.x + 10 * sine(time)

Making it very limited imho. Then again, maybe my wished use case (puppet rigging controller) is beyond the scope of the intended specifications. But...still. C'mon...very weak.

RodneyBaker commented 1 year ago

This may be largely a case of having to ask the questions of how to achieve a specific thing and then others can provide their suggestions toward a solution. This especially as expressions are often of the variety where they are designed to meet specific needs and thus are tailored to that specific need. (Harder to present a guide as it would need to include examples of specific application).

@shun-iwasawa did add a feature (optional in Preferences) that allows expressions to update automatically based on movement of columns. This can help in some cases where expressions will otherwise break because they might otherwise be circular references.

There are some options which would certainly be useful but that falls more into the development arena. Examples might be shortcut approaches where a term such as 'self' would avoid being a circular reference because it abstracts the values of the current object but is actually a separate object. I think in many cases though we might be able to just add the additional expressions as the object already knows it's own values. In this case it becomes mostly a matter of syntax... which of course is why a guide would be useful.

That guide will come eventually through the posting of current and required usage. So the more we share of that the better.

RodneyBaker commented 1 year ago

For those that haven't seen them here are some youtube videos that are good for exploring expressions in Opentoonz:

https://www.youtube.com/playlist?list=PLkTE68MYHBwnSBq4cSkQTlFWTz8CKbjC0

There is a sub-channel in the Opentoonz discord for scripting and expressions. Link: https://discord.com/channels/313439701505933313/313660844862865418