Skip to Content
Nexanimについて課題と解決

3つの課題と解決策

1. 値変更時のカーブ崩壊

After Effectsではタイムライン上で値を変更すると、イージングまで変わってしまいます。

従来のキーフレーム: 0s: [100] ――――→ 2s: [500] この値を変更すると... 0s: [100] ――――→ 2s: [150] 値が変わるとカーブの形状も変わる

このため、「このイージングは完璧!でも到達値だけ変えたい」といった調整ができず、値を変更するたびにグラフエディターでの再調整が必要になります。

Nexanimの解決策

進行度コントロール: 0s: [0] ――イージングカーブ(不変)――→ 2s: [1] 値コントロール: V1: [100] → V2: [500] // 値だけを自由に変更可能 V1: [100] → V2: [150] // カーブは一切変化しない

進行度コントロールで定義したイージングと値が分離されているため、イージングに影響を与えることなく、値だけを独立して調整できます。

2. 値の固定性

タイムラインに配置した値は「その瞬間の固定値」でしかありません。

0s: [100] → 1s: [200] → 2s: [300] ↑ ↑ ↑ すべて固定値。計算式として定義できない

複数の段階を持つアニメーションでは、各段階の値を計算式として定義できません。他のプロパティ・レイヤーとの連動や、関数を使った値の定義を実現するには、親子付けを挟むなど、回りくどい方法が必要になります。

Nexanimの解決策

V:Position_1: [thisComp.width/2, thisComp.height/2] // エクスプレッションによる計算式 V:Position_2: [960, 1200] // 静的な値 V:Position_3: [random(0, 1920), random(0, 1080)] // 別の計算式

各段階の値コントロールには、エクスプレッションでも静的な値でも定義できます。各段階ごとに異なる計算式を使うことも、一部だけ静的な値にすることも可能です。

3. 同期の困難さ

当たり前ですが、ピックウィップ等を使ってプロパティを直接参照すると、時間と値が一体化した「アニメーション全体」が参照されます。

// 従来のピックウィップ Layer A: Position 0s: [100, 100] 2s: [500, 500] Layer B: Opacity thisComp.layer("Layer A").transform.position[0] // → Positionの「値」(100→500)が入ってしまう // Opacityに500は意味がない!

「同じタイミング・イージングで動かしたい」だけなのに値まで連動してしまいます。異なるプロパティで同じイージングを使うには、外部スクリプトでカーブをコピーするなどの手間が必要で、さらに一度コピーした後は同期されないため、カーブを変更するたびに再度コピーが必要になります。

Nexanimの解決策

// すべてのプロパティが同一のProgressを参照 Position: Progress [0→1] Scale: Progress [0→1] // 自動同期 Rotation: Progress [0→1] // 自動同期 Opacity: Progress [0→1] // 自動同期

進行度コントロールは常に0→1の正規化された値であるため、異なるプロパティでも同一の進行度コントロールを参照できます。1つの進行度コントロールを調整すれば、参照しているすべてのアニメーションが自動的に同期して変化します。

Last updated on