YukkuriMovieMaker.Plugin.Effects.VideoEffectBase
Edit on GitHub

Last updated: July 23, 2026

AI 要約

定義

名前空間: YukkuriMovieMaker.Plugin.Effects

アセンブリ: YukkuriMovieMaker.Plugin.dll

映像エフェクトの基底クラスです。

public abstract class VideoEffectBase : Animatable, IVideoEffect

継承 System.ObjectYukkuriMovieMaker.Commons.AnimatableYukkuriMovieMaker.Commons.Animatable → YukkuriMovieMaker.Plugin.Effects.VideoEffectBase

実装 YukkuriMovieMaker.Plugin.Effects.IVideoEffect

注釈

映像エフェクトプラグインを実装する場合はこのクラスを継承してください。 継承クラスには [VideoEffect] 属性を付与する必要があります。

コンストラクターは、Animatable が保有するアニメーション可能プロパティ(Animation 型)の UndoRedoCommandCreated イベントを自動的に購読します。 これにより、アニメーションの変更が PropertyChanged イベントの Label 通知として伝播します。

プロパティーの変更通知とUndo/Redo登録には Set メソッドを使用してください。 プロパティーに IUndoRedoable を実装したオブジェクト(Animation など)を設定する場合、 Set メソッドが自動的に古い値のイベント解除・新しい値のイベント購読を行います。

メソッド

名前 説明
#ctor VideoEffectBase クラスの新しいインスタンスを初期化します。
CreateExoVideoFilters AviUtl拡張編集(.exo)用の映像フィルター文字列を生成します。
CreateVideoEffect 映像エフェクトプロセッサーを作成します。
GetFiles このエフェクトが参照するファイルパスの一覧を返します。
GetResources このエフェクトが参照するタイムラインリソースの一覧を返します。
ReplaceFile エフェクトが参照するファイルパスを置き換えます。
Set 参照、または式で与えられるプロパティーに値を設定し、変更があった場合YMMはそれを検知します。

#ctor

VideoEffectBase クラスの新しいインスタンスを初期化します。

public VideoEffectBase()

戻り値

System.Void

CreateExoVideoFilters

AviUtl拡張編集(.exo)用の映像フィルター文字列を生成します。

public abstract IEnumerable<string> CreateExoVideoFilters(int keyFrameIndex, ExoOutputDescription exoOutputDescription);

パラメーター

keyFrameIndex System.Int32

exoOutputDescription YukkuriMovieMaker.Exo.ExoOutputDescription

注釈

[VideoEffect]IsAviUtlSupportedfalse の場合、この戻り値は使用されません。 AviUtl出力に対応しない場合は空のシーケンス([] または Array.Empty<string>())を返してください。

CreateVideoEffect

映像エフェクトプロセッサーを作成します。

public abstract IVideoEffectProcessor CreateVideoEffect(IGraphicsDevicesAndContext devices);

注釈

フレームのレンダリングごとに呼び出されるわけではなく、プレビューセッション開始時や設定変更時に呼ばれます。 devices からDirect2Dデバイスやコンテキストを取得できます。 返した IVideoEffectProcessor がフレームごとの描画処理を担います。

GetFiles

このエフェクトが参照するファイルパスの一覧を返します。

public virtual IEnumerable<string> GetFiles()

注釈

既定の実装は空のシーケンスを返します。 エフェクトが特定のファイルを参照する場合はオーバーライドしてパスを列挙してください。 プロジェクトのエクスポートや移動に使用されます。

GetResources

このエフェクトが参照するタイムラインリソースの一覧を返します。

public virtual IEnumerable<TimelineResource> GetResources()

注釈

既定の実装は Remark プロパティーからコンテンツIDを解析してリソースを生成します。 また、このエフェクト自体がタイムラインリソースとして登録可能な場合、内部処理によりリソースが追加されます。 外部ファイルや特殊なリソースを参照する場合はこのメソッドをオーバーライドしてください。

ReplaceFile

エフェクトが参照するファイルパスを置き換えます。

public virtual void ReplaceFile(string from, string to)

パラメーター

from System.String

to System.String

戻り値

System.Void

注釈

既定の実装は何もしません。 GetFiles でパスを返す場合は、このメソッドもオーバーライドして対応するプロパティーを更新してください。

Set

参照、または式で与えられるプロパティーに値を設定し、変更があった場合YMMはそれを検知します。

protected override bool Set<T>(ref T storage, T value, [CallerMemberName] string name = "", params string[] etcChangedPropertyNames);

パラメーター

storage ref T

value T

name System.String

etcChangedPropertyNames System.String[]

プロパティー

名前 説明
IsEnabled System.Boolean エフェクトが有効かどうかを取得または設定します。
Label System.String エフェクトの表示名を取得します。
Remark System.String エフェクトに紐付けられたリマーク文字列を取得または設定します。

IsEnabled

エフェクトが有効かどうかを取得または設定します。

public bool IsEnabled { get; set; }

プロパティー値

System.Boolean

注釈

既定値は true です。 プロパティー変更は Set メソッド経由でUndo/Redoに登録されます。

Label

エフェクトの表示名を取得します。

[JsonIgnore]
public abstract string Label { get; }

プロパティー値

System.String

注釈

[JsonIgnore] が付与されているため、プロジェクトファイルへの保存対象外です。 アニメーションパラメーターの値を含む文字列を返すように実装することで、 アニメーション変更時にタイムライン上の表示が自動更新されます。

Remark

エフェクトに紐付けられたリマーク文字列を取得または設定します。

public string Remark { get; set; }

プロパティー値

System.String

注釈

GetResources の既定実装がこのプロパティーからコンテンツIDを解析してタイムラインリソースを生成します。 エフェクトが外部リソースを参照する場合、このプロパティーにコンテンツIDを格納してください。