パスの扱い
パスデータへのアクセス
Section titled “パスデータへのアクセス”パスは、その値に直接アクセスできないという点で、他のパラメーター タイプとは異なります。チェックアウトおよびチェックイン (レイヤー パラメーターなど) に加えて、パス データ関数スイートを使用して、特定の時点でのパスの詳細を取得する必要があります。 PF_PathQuerySuite1 および PF_PathDataSuite を参照してください。パス パラメーターが渡されたときに、最初にチェックアウトせずに、その値を決して使用しないでください。削除されたパスは利用できなくなりますが、さらなる更新は「遅れて」 (後で) 行われます。パスをチェックアウトしない限り、エフェクトにはこれらの変更が表示されません。
パスデータの操作
Section titled “パスデータの操作”AEGP_MaskOutlineSuite3 を使用してパスを操作することもできます。 Cheating Effect Usage of AEGP Suitesを参照してください。パス パラメーターは、データの不透明な塊として扱われます。これらにアクセスして操作するには、get 関数と set 関数を使用する必要があります。レイヤー パラメータと同様に、それらにアクセスするエフェクトによってチェックアウト (およびチェックイン) する必要があります。
パスの頂点は単純な点よりも複雑です。すべてのメンバー変数は PF_FpLong (double) であり、レイヤーの座標空間内にあります。
PF_PathVertex
Section titled “PF_PathVertex”| メンバー | 説明 |
|---|---|
x | 頂点の位置。 |
y | |
tan_in_x | 入ってくる接点。 |
tan_in_y | |
tan_out_x | 出方向の接点。 |
tan_out_y |
PF_PathDataSuite
Section titled “PF_PathDataSuite”このスイートは、パス (頂点のシーケンス) に関する情報を提供します。
| Function | Description |
|---|---|
PF_PathIsOpen | Returns TRUE if the path is not closed (if the beginning and end vertex are not identical).PF_PathIsOpen( |
PF_PathNumSegments | Retrieves the number of segments in the path. N segments means there are segments [0.N-1]; segment J is defined by vertex J and J+1.PF_PathNumSegments( |
PF_PathVertexInfo | Retrieves the PF_PathVertex for the specified path.The range of points is [0.num_segments]; for closed paths, vertex[0] == vertex[num_segments].PF_PathVertexInfo( |
PF_PathPrepareSegLength | This fairly counter-intuitive function informs After Effects that you’re going to ask for the length of a segment (using PF_PathGetSegLength below), and it’d better get ready.frequencyL indicates how many times you’d like us to sample the length; our internal effects use 100.PF_PathPrepareSegLength( |
PF_PathGetSegLength | Retrieves the length of the given segment.PF_PathGetSegLength( |
PF_PathEvalSegLength | Retrieves the location of a point lengthF along the given path segment.PF_PathEvalSegLength( |
PF_PathEvalSegLengthDeriv1 | Retrieves the location, and the first derivative, of a point lengthF along the given path segment.If you’re not sure why you’d ever need this, don’t use it. Math is hard. PF_PathEvalSegLengthDeriv1( |
PF_PathCleanupSegLength | Call this when you’re finished evaluating that segment length, so After Effects can properly clean up the PF_PathSegPrepPtr.PF_PathCleanupSegLength( |
PF_PathIsInverted | Returns TRUE if the path is inverted.PF_PathIsInverted( |
PF_PathGetMaskMode | Retrieves the mode for the given path.PF_PathGetMaskMode(Mask mode is one of the following: - PF_MaskMode_NONE- PF_MaskMode_ADD- PF_MaskMode_SUBTRACT- PF_MaskMode_INTERSECT- PF_MaskMode_LIGHTEN- PF_MaskMode_DARKEN- PF_MaskMode_DIFFERENCE- PF_MaskMode_ACCUM |
PF_PathGetName | Retrieves the name of the path (up to PF_MAX_PATH_NAME_LEN long).PF_PathGetName( |
PF_PathQuerySuite1
Section titled “PF_PathQuerySuite1”This suite is used to identify and access the paths associated with the effect’s source layer.
| Function | Purpose |
|---|---|
PF_NumPaths | Retrieves the number of paths associated with the effect’s source layer.PF_NumPaths( |
PF_PathInfo | Retrieves the PF_PathID for the specified path.PF_PathInfo( |
PF_CheckoutPath | Acquires the PF_PathOutlinePtr for the path at the specified time.PF_CheckoutPath( |
PF_CheckinPath | Releases the path back to After Effects. Always do this, regardless of any error conditions encountered. Every checkout must be balanced by a checkin, or pain will ensue. PF_CheckinPath( |