終了

自作Kuwaharaフィルタ(AE 2025)でPiPL バージョンの不一致問題が治らない&プレビュー結果が変になったり重かったりする問題

エクスプローラー ,
Sep 20, 2025 Sep 20, 2025

環境

  • macOS 14 / Apple Silicon (M4 Pro), Xcode 16.3

  • After Effects 2025(Apple Siliconネイティブ)

  • プラグイン:SmartFX(PreRender/SmartRender, ROI対応, SequenceDataで中間結果キャッシュ)

  • 目標:エッジ保持の絵画風(Kuwahara)。パラメータ:Radius / Sectors / Anisotropy / Softness / Mix

起きている2つの問題

  1. 見た目が“筆致”ではなく全体が潰れたブラーになる

    • 構造テンソル(Scharr/Sobel→テンソル平滑)で異方性を取り、Nセクタの平均・分散を計算→最小分散セクタを中心にsoftnessでブレンド、mixで元画像と合成、というオーソドックスな実装をしております

    • ところが、OpenMP導入・SmartFX最適化・パラメータや計算順序の調整を進める中で、輪郭保持が弱く、面全体が平滑化した“ただのブラー”っぽい絵になってしまいました。

  2. 上記を直している途中から、AEを起動し、本エフェクトを適応するとに**「Version mismatch: Code 1.0 / PiPL 0.2」**ダイアログが出るようになり、以降どうやっても消せなくなりました泣

    • DeRezで**インストール済みバンドルの .rsrc**を確認すると、
      eVER=0x00010000(=1.0), ePVR=2,0, eGLO=0x0320, eGL2=0x0400 に揃っています。

    • それでもAEが**「PiPL 0.2」**を訴えてきます。

すでに試したこと(PiPLまわり)

  • **PiPL.r(Rez)**は以下の値で固定:

    AE_Effect_Version    { 65536 }     /* 1.0 */
    AE_Effect_Global_OutFlags   { 800 }   /* 0x0320: DEEP_COLOR_AWARE | PIX_INDEPENDENT | USE_OUTPUT_EXTENT */
    AE_Effect_Global_OutFlags_2 { 1024 }  /* 0x0400: SUPPORTS_SMART_RENDER */
    AE_Effect_Match_Name { "com.salis.ae.kuwaharafilter" }  /* →検証のため v1001/v1003 に一時変更も試行 */
    AE_PiPL_Version      { 2, 0 }
  • GlobalSetup() 側も一致:
    out_data->my_version = PF_VERSION(1,0,0,0,0);
    out_flags = 0x0320; out_flags2 = 0x0400;

  • エクスポート:extern "C" DllExport PF_Err EffectMain(...)。nm -gjU で_EffectMainと_PluginDataEntryFunction2の輸出確認済み。

  • codesign --deep --force 済み。

  • AEのキャッシュ(Plugin Loading Cache / Caches/After Effects/25.*)削除 → 再起動を複数回。

  • MatchName を一時的にユニーク化(.v1001/.v1003)し“新規エフェクト扱い”で読ませる→それでも PiPL 0.2 エラーが出ます。

  • 過去にやってしまった 「Mach-O本体に Rez -o してPiPLを書いてしまう」誤操作は把握しており、その後
    xattr -d com.apple.ResourceFork Contents/MacOS/SalisKuwaharaFilter でMach-Oのリソースフォークを除去→.rsrc一本化。

  • 重複配置の掃除:mdfindで他所の.pluginを削除。

  • Additional Plug-ins Folder 設定の影響も疑い、オフ&該当先の掃除。

  • 実際にAEが開いたパスの特定:lsof -p $(pgrep AE) + grep KuwaharaFilter.plugin でモニタ(※/Applications配下のみを参照している時でも発生)。

→ ここまでやっても、**起動時に「Code 1.0 / PiPL 0.2」**が出ます。
DeRezで見えている値(1.0/2.0)とAEのダイアログが一致しません。

すでに試したこと(見た目・アルゴリズム)

  • パラメータは全て PF_ADD_FLOAT_SLIDERX(Percentではない)。取得時は 0–100 → 0–1 正規化。

  • 8/16/32fのI/O正規化(8: 255, 16: 32768, 32f: 0–1)とクランプは実施。

  • SmartFX経路:PreRenderで result_rect/max_result_rect, SmartRenderで checkout_layer_pixels / checkout_output。ROI尊重。

  • SequenceDataで構造テンソルのキャッシュを持ち、半径・サイズが変わった時のみ再計算

  • OpenMP:スキャンライン分割の素直な並列。パラメータ変更時に安全に再計算が走るようにしています。

  • テスト設定(例):Radius=8〜16, Sectors=4〜8, Anisotropy=0.5〜0.8, Softness=0.3〜0.6, Mix=100%

再現手順

  1. 適当なフッテージを読み込み

  2. タイムラインに配置したフッテージに本エフェクト適用

  3. 上記パラメータ帯でプレビュー(初期の値のままで大丈夫です。)

  4. 起動直後、「Effect ‘Salis Kuwahara Filter’ version mismatch. Code 1.0, PiPL 0.2」のダイアログが出ます。

参考ログ(実機)

# PiPL(.rsrc)確認
DeRez .../SalisKuwaharaFilter.rsrc -useDF -only PiPL
=> eVER=0x00010000, eGLO=0x0320, eGL2=0x0400, ePVR=2,0

# Mach-OのPiPLは削除済み(ResourceFork除去)
DeRez .../Contents/MacOS/SalisKuwaharaFilter -useDF -only PiPL
=> (no PiPL in Mach-O)

# エクスポート
nm -gjU .../Contents/MacOS/SalisKuwaharaFilter | grep -E 'EffectMain|PluginDataEntryFunction2'
=> _EffectMain / _PluginDataEntryFunction2

伺いたいこと

  1. PiPLの参照優先度とキャッシュ

    • AEはどの順序で PiPL を解決しますか?(Mach-OのRF → .rsrc → 何らかの内部キャッシュ…など)

    • MatchName を変えても古いPiPL(0.2)を参照してしまう要因はあり得ますか?

    • .rsrc と Mach-O RF が両方ある状況での既知の落とし穴は?(今回はRFを削除済み)

  2. SmartFX + Kuwahara で“ブラーに寄る”原因はなんでしょうか、、、

    • ROI/padding 周り(境界条件)や rowbytes、16bpcのスケール(32768/32767)起因で分散が過少評価→平滑側に倒れる、等でしょうか

    • セクタ選択(最小分散)と softness のブレンドの安定化ノウハウ(ε追加、分散正規化など)があれば。

  3. 実運用のベストプラクティス

    • PiPLは**.rsrcだけ**に持たせる、で正しいでしょうか?(Mach-O RFは常に空であるべき?)

    • SmartFXのSequenceDataの寿命管理(キャッシュの無効化タイミング)や OpenMP の注意点(MFRとの相性)について、一般的な推奨があれば教えてください。。。

ソースコード

皆さまの知見をぜひお借りしたいです。どうぞよろしくお願いいたします。

キーワード
FAQ , SDK , エラーまたは問題 , クラッシュ , パフォーマンス , プレビュー , ユーザーインターフェイスまたはワークスペース , リソース
101
翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
エクスプローラー ,
Sep 22, 2025 Sep 22, 2025
最新

“Code 1.0 / PiPL 0.2”のエラーが治らないのです、、、;;助けてください、、、

翻訳
レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines