問題タブ [easing-functions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - After Effects で linear() 関数が何をするかについてのプログラミング/数学用語はありますか?
Adobe After Effects (アニメーション/合成アプリ) には、JavaScript に基づくスクリプト言語 (式) があり、JS の上に構築された一連の After Effects 固有の関数が付属しています。関数linear()
はこれらの 1 つです。1 つのオブジェクトのプロパティ (スライダーの X 位置など) のアニメーション化された変化を考慮し、それを別のプロパティ (シーン内の他のオブジェクトの回転など) にリンクして、最初のアニメーション化されたプロパティが 2 番目のプロパティを制御/アニメーション化するようにします。財産。
その説明がわかりにくい場合は、このビデオの 11:33 を参照してください: https://www.youtube.com/watch?v=gK1Ejt7qND0&t=693s
関数呼び出しは次のlinear()
ようになります。
実際の内部引数名が何であるかはわかりませんが、これは彼らがすることです:
ref
== 「コントローラー」プロパティ (前の例では、オブジェクトの X 位置)。通常はアニメーションで、時間とともに変化します。
refStart
/ refEnd
== ref プロパティの下限と上限
outStart
/ outEnd
== 宛先プロパティの下限と上限 (前の例では、別のオブジェクトの回転)
この関数の機能を表す一般的なプログラミング用語はありますか? それとも数学用語?私が知る限り、それは「補間」、おそらく線形補間に関係するものですが、よくわかりません。
この関数に相当する一般的なプログラミング/数学ライブラリはありますか? After Effects には、 、、 とlinear()
呼ばれるの簡易バージョンもあります。私が知る限り、それらはプログラミングでは「イージング関数」と呼ばれるかもしれませんが、よくわかりません。ease()
easeIn()
easeOut()
おまけ: AE の linear() をゼロからリバース エンジニアリングしてみました。かなりベアボーンであり、型チェックやエラーは行いませんが、それ以外は AE での私のテストでは同じように動作するようです:
c# - Freezableから継承せずに関数を緩和しますか?
IEasingFunction
基本的に他のラッパーのカスタムを実装しようとしてIEasingFunction
いますが、アニメーションの最初と最後に一時停止が追加されます。EasingFunctionBase
PausingEasingFunction に EasingMode を設定するのは無意味なので、継承したくありません。一時停止は、使用するモードに関係なく同じであり、ラップされたものは独自にモードを指定できます。
これがどのように見えるかです: PausingEasingFunction.cs
問題は、次の xaml を使用してアニメーションで使用しようとしたときです (local:
を含む clr 名前空間を指す xmlns を参照しますPausingEasingFunction
)。
InvalidOperationException がスローされ、Freezable を凍結できないことが通知されます。ただし、PausingEasingFunction.csを継承するFreezable
代わりにDependencyObject
CreateInstanceCore を次のように実装するように変更すると、次のようになります。
例外はスローされなくなりました。調査の結果、CanFreeze = false であっても WPF がまだフリーズしようとしていることがわかりましたが、それが本当に問題なのかどうかはわかりません...
それはWPFのバグですか?私は何か間違ったことをしていますか?または、なぜ Freezable から継承せざるを得ないのですか?