その他

aup2 リンク修復

概要

素材のリンク切れを、移動先フォルダから同名ファイルを探して直す

詳細説明

aup2 リンク修復(aviutl2-aup2-relink)

AviUtl ExEdit2(AviUtl2)のプロジェクトファイル .aup2 に書かれた素材(画像・動画・音声)のパスを、
移動先に書き換える Windows 用ツールです。素材のフォルダを整理して「ファイルが見つからない」状態に
なったプロジェクトを直せます。

画面

まず: 本体だけで直る場合

.aup2 と素材をフォルダごと移動した場合(素材が .aup2 と同じフォルダか、その下にある場合)は、
このツールは要りません。移動後の .aup2 を AviUtl2 で開くと

プロジェクトファイルのパスが変更されています。
以前のプロジェクトパスの配下の指定ファイルが存在しない場合は
現在のプロジェクトパスの配下に変更しますか?

と聞かれるので、OK を押して上書き保存します(AviUtl2 2.1.8 で確認)。

このツールが要るのは次の場合です。

  • 素材だけを別の場所へ移した
  • 素材が .aup2 のフォルダの外にあった(別のフォルダに置いた画像を整理した、など)

ダウンロード

Releases から zip を落とし、好きな場所に展開します。
インストールは不要です。

AviUtl2 カタログから入れた場合は、スタートメニューに「aup2 リンク修復」ができます。

使い方

  1. AviUtl2 でそのプロジェクトを閉じる。
    開いたまま AviUtl2 で上書き保存すると、ここで直した内容が消えます。
  2. aup2リンク修復.exe を起動し、.aup2 をウィンドウへドロップする。
    exe のアイコンへドロップしても開けます。フォルダをドロップすると中の .aup2 を全部読みます。
  3. 見つからない素材が一覧に出ます。複数の .aup2 を開くと「プロジェクト」列に、どの .aup2 の素材かが出ます。
  4. 「フォルダから探す…」で、移動先を含むフォルダを選ぶ。その中から同じ名前のファイルを探して埋めます。
    • 同じ名前が複数あると、元のフォルダ名に近いものを仮に選んで橙色で出します。確かめてください。
    • 見つからない行はダブルクリック(または「選んだ行を手で指定…」)でファイルを選びます。
      同じフォルダにあった他の素材も、移動先に同じ並びであれば自動で埋まります(「フォルダ推定」)。
    • 間違えた行は「選んだ行の指定を外す」で戻せます。
  5. 「保存」。元のファイルは 名前.aup2.bak-日時 として同じ場所に残ります。
  6. AviUtl2 で開きます。

自動検索のしくみ

「フォルダから探す…」で、移動先を含む大きめのフォルダ(例: D:\素材)を 1 つ選ぶだけです。

  1. 選んだフォルダの中を、下の階層まで 1 回だけ見て回り、「ファイル名 → 見つかった場所」の一覧を作ります
    (大文字と小文字は区別しません)。
  2. 見つからない素材ごとに、同じファイル名がその一覧にあるかを引きます。
  3. 1 件だけあれば、それを移動先にします。
  4. 同じ名前が複数あれば、元のパスと末尾のフォルダ名が長く一致する方を選び、橙色で「候補 N 件」と出します。
    例: 元が C:\素材\bg\sky.png で、候補が D:\整理\bg\sky.png と D:\古い\sky.png なら、bg が一致する前者。
    決め手が無いときも 1 つを仮に選んで橙色で出します。

素材を別々のフォルダへ振り分けた場合にも使えます。例えば C:\素材\ にあったものを
D:\整理\背景\sky.png と D:\整理\キャラ\a.png に分けても、D:\整理 を 1 回選べば両方埋まります。

苦手なこと:

  • 名前を変えた素材は見つかりません(中身や大きさは比べていません)。手で指定してください。
  • 同じ名前の別の画像が複数あると、選ばれたものが正しいか目で確かめる必要があります。
  • C:\ 全体のような巨大なフォルダを選ぶと時間がかかります。進み具合が下に出て、「探すのを中止」で止められます。
  • 1 回で見つからなかったものは、別のフォルダを選んで繰り返し探せます。

仕様・注意

  • 書き換えるのは素材パスの行だけです。他の行はバイト単位でそのまま残します(改行コード・BOM も保ちます)。
  • [project] の file=(.aup2 自身の保存場所)は変えません。
  • テキストオブジェクトの本文は対象外です。
  • 探すのはファイル名が同じものだけです。名前を変えた素材は手で指定してください。
  • 起動中の AviUtl2 のタイトルに同じファイル名があると、保存の前に警告します。
  • aup2リンク修復.exe --install でスタートメニューにショートカットを作り、--uninstall で消します
    (AviUtl2 カタログのインストール・アンインストールで使います)。
  • 元に戻すには、.bak-日時 のファイルの名前から .bak-日時 を消して .aup2 に戻します。

ビルド

Python 3.13、tkinterdnd2、PyInstaller と、MinGW-w64 の gcc で作っています。
gcc は dpihook.c(拡大率の違うモニタへ窓を移したときに大きさを合わせる小さな DLL)のビルドに使います。

pip install tkinterdnd2 pyinstaller
build.bat

dist\aup2relink.exe ができます。Python があれば python aup2relink.py でもそのまま動きます
(dpihook.dll が同じフォルダに無いと、モニタ間の移動で窓の大きさが崩れることがあります)。

ライセンス

MIT