mieki256's diary



2020/06/17(水) [n年前の日記]

#1 [enve2d][cg_tools][anime] enveのExpressionを使ってみる

アニメ制作ソフト enve は、Expression機能があるらしいので試しに使ってみたり。環境は、Windows10 x64 1909 + enve 6_12_20。

_enve | Open-source 2D animation software

Expression って何だろう…?

ちゃんとした定義は分からないけれど、動きをつけるためのパラメータに数式を指定することができる機能、とでも思っておけばいいのだろうか。例えば、正確な円運動をさせたいと思った際に、手作業で円を描く動きをつけていくのは大変だけど、sin(),cos() を使って数式で位置を指定できれば、きっちりとした円運動が実現できる。他にも、ふわふわした動きをつけたり、ランダムな動きをつけたい場合は、数式で指定できたほうが楽だったりする。

ちなみに、enve の公式動画群の中に、Expression を使う様子をキャプチャした動画はあるのだけど…。

_Multi-line Expression Example - YouTube

どうやらUIが古い時期の動画らしく、数式を入力するダイアログが違っていて、ビミョーに参考にならなかった。いやまあ、機能として持ってるよと伝えてるだけでもありがたいけど、もしかすると将来的に、ダイアログの見た目がまた変わってしまう可能性は高そうだなと。

操作手順をメモ。 :

とりあえず矩形を一つ置いてみる。この矩形の Scale(拡大縮小)に Expression を使ってみる。

enve2d_expression_ss01.png


まずは、scale.x(x方向の拡大縮小率)を指定してみる。矩形を選択して、左のほうのウインドウ内で、transform → scale → x の入力欄を右クリック。表示されたメニューの中から、Set Expression を選択。

enve2d_expression_ss02.png


Expressionの入力ダイアログが開いた。上の「Bindings」欄で、下の「Calculate()」に渡す変数を列挙する…らしい。たぶん。ちょっと自信無いけど。

enve2d_expression_ss03.png


今回は、フレーム番号を渡してみる。Bindings に以下を記述。
frame = $frame;
下の Calculate() が、Calculate(frame) に変わってくれる。「この関数は変数 frame を受け取るよ」と示しているのだろう…。

enve2d_expression_ss04.png


下の Calculate() 欄に、以下を記述。
angle = 360 * frame / 24;
rad = angle * Math.PI / 180.0;
return 1 + 0.1 * Math.sin(rad);
  • 1行目で、フレーム番号から角度(単位は度)を作る。24FPSで作っているので、1秒(24フレーム目)で360度になる。
  • 2行目で、度からラジアンに変換。
  • 3行目の return 〜; で、scale.x に渡す値を作る。

enve2d_expression_ss05.png


scale.y(y方向の拡大縮小率)にも Expression を指定してみる。y値の入力欄で右クリックして、Set Expression を選択。

enve2d_expression_ss06.png


今回は scale.x をそのまま返すようにしてみる。
scalex = x;
return scalex;

enve2d_expression_ss07.png


動かしてみると、こうなる。




ということで、Expression を使うことで、sin値に基いて大きくなったり小さくなったりする動きをつけることができた。

式を変更してみる。 :

scale.y を、ちょっと変えてみる。scale.x が大きくなったら scale.y が小さく、scale.x が小さくなったら scale.y が大きくなるようにしてみたい。

scale.y の入力欄を右クリックして、Set Expression を選べば、入力した式を変更できる。

enve2d_expression_ss08.png


Calculate(scalex) の内容をちょっと変えてみた。
return 1 - (scalex - 1.0);

enve2d_expression_ss09.png


動かしてみると、こうなる。




予想通りの動きになった。

以上、1 日分です。

過去ログ表示

Prev - 2020/06 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project