AviUtl で exo(オブジェクトファイル)が読み込めないとき、原因の大半は「ファイルが壊れている」ことではありません。exo が素材への絶対パスしか持っていないことと、読み込む側の拡張編集の環境が、書き出した側と違うことの二つにほぼ集約されます。つまり直すべきは exo 本体ではなく、素材の置き場所と受け側の環境です。
そしてもうひとつ、検索して出てくる対処法を上から順に試しても直らない理由があります。exo のトラブルは「エラーが出て弾かれる」「読み込めるのにタイムラインに何も出ない」「一部のオブジェクトだけ出る」「文字化けする」で、原因がまったくの別物だからです。ここを最初に分岐させないと、関係のない対処を延々と試すことになります。この記事は冒頭に症状別の切り分け表を置き、そこから該当する原因だけを読めばいいように組みました。
なお本記事は AviUtl 側で exo を読み込む場面に限定します。YMM4(ゆっくりMovieMaker4)から exo を書き出す側でつまずいている場合は、原因も対処も別物なので ymm4 exo 出力できない を先に読んでください。
(更新日:2026年9月21日)
この記事はAviUtl側の設定に絞ります。台本・音声・立ち絵を含めた1本の作り方はずんだもん動画の作り方(ライセンスの落とし穴つき)にまとめました。
症状 → 原因 → 最初に試すことの切り分け表
結論:まず「どこまで進んで、どこで止まったか」を4つの症状に分類してください。 対処の優先順位が入れ替わります。
| 症状 | 最も疑わしい原因 | 最初に試すこと |
|---|---|---|
| ① エラーダイアログが出て読み込めない | 素材の絶対パス切れ/ファイル破損/文字コード違い | exo をメモ帳で開き file= 行のパスが実在するか目視確認 |
| ② 読み込めたがタイムラインに何も出ない | 落とす場所を間違えている/オブジェクトが重なる位置に落ちた/必要スクリプト未導入 | 拡張編集タイムラインの空レイヤーに落とし直す |
| ③ 一部のオブジェクトやエフェクトだけ出ない | 使われているスクリプト・プラグインが未導入/AviUtl2 で廃止された機能 | exo 内の _name= を拾って導入済みか突き合わせる |
| ④ テキストが文字化けする/数値がズレる | Shift_JIS 以外で保存された/既知のトラックバー不具合 | 文字コードを Shift_JIS(CP932) + CRLF に戻す |
この表の使い方には一つコツがあります。②と③は切り分けが混ざりやすい点です。「何も出ない」と感じていても、実は透明度 100 のオブジェクトが乗っているだけだったり、レイヤー 30 番台に読み込まれていて画面外にあるだけ、というケースが珍しくありません。タイムラインを一番下までスクロールし、レイヤー番号の大きいところまで確認してから②と判定してください。
もう一点。AviUtl 本体ウィンドウ(プレビュー画面のほう)に exo をドロップしていないか確認します。本体は exo を動画ファイルとして開こうとして失敗するので、①のエラーに見えますが実際は導線ミスです。これは後述の原因5です。
以下、原因を6つに分けて、それぞれ具体的な手順で書いていきます。
原因1:別PC・別フォルダへ移したことによる素材パス切れ
結論:exo は動画・画像・音声への絶対パスを本文にそのまま書き込みます。素材を1ミリでも動かすと、その行は死にます。 そして aup(プロジェクトファイル)と違い、exo は「同じフォルダを探しに行く」フォールバックを持ちません。aup なら AviUtl が「指定パスに無いなら aup と同じ階層にないか?」と自動で探してくれますが、exo にその救済はありません。ここが最初につまずく最大の理由です。
exo をメモ帳で開くと、こういう行が見つかります。
[0]
start=1
end=300
layer=1
group=1
overlay=1
camera=0
[0.0]
_name=動画ファイル
再生位置=1
再生速度=100.0
ループ再生=0
アルファチャンネルを読み込む=0
file=C:\Users\taro\Videos\project01\op.mp4
この file= の行が、旧PC・旧フォルダのパスのまま残っています。新しい環境にそのパスが存在しなければ読み込みは失敗します。
手順A:テキストエディタで file= 行を一括置換する
- 元の exo を必ずコピーして残す。 置換に失敗したときに戻せないと詰みます。
object.exoをobject_backup.exoとしてコピーしておきます。 - コピーではないほうの exo を右クリックし、「プログラムから開く」→「メモ帳」で開きます。関連付けで AviUtl が開いてしまう場合は、メモ帳を先に起動してからドラッグしてください。
Ctrl + Fでfile=を検索し、何行あるかを把握します。素材が5個なら通常5行あります。- 旧環境の共通する親フォルダ部分を特定します。例:
C:\Users\taro\Videos\project01。 Ctrl + Hで置換ダイアログを開き、「検索する文字列」に旧の親フォルダ(例C:\Users\taro\Videos\project01)、「置換後の文字列」に新しい親フォルダ(例D:\movie\project01)を入れます。- 「すべて置換」を押し、置換された件数が手順3で数えた
file=の行数と一致するかを確認します。一致しないなら、素材が複数の親フォルダに散らばっています。散らばっている分だけ手順5を繰り返します。 - 「ファイル」→「上書き保存」。このとき文字コードを変えないこと(詳しくは原因6)。
- AviUtl の拡張編集タイムラインに読み込み直します。
置換で触っていい行は file= だけです。テキストオブジェクトの文字列は、メモ帳で開くと text= の後ろに人間が読めない長い16進数の羅列として並んでいます。ここを一文字でも欠けさせるとテキストが全滅するので、絶対に触らないでください。置換文字列に短い単語(taro だけ、など)を指定すると、この16進数の並びに偶然ヒットして破壊する可能性があります。必ずドライブレターから始まる長いパス単位で置換します。
手順B:旧PCと同じパスを新PCに再現する
置換が怖い、あるいは file= の行数が何十本もあるなら、逆に環境のほうを合わせるほうが速いです。
- 旧環境のパス(例
Z:\amarecco\capture\)を確認します。 - 新PCに同じドライブレター・同じ階層のフォルダを作ります。
Z:のような使っていないドライブレターなら、substコマンドや「ディスクの管理」でドライブレターを割り当てて再現できます。 - そこに素材を同じファイル名で配置します。
- exo を読み込みます。
この方法は exo を一切編集しないので、破損リスクがゼロです。配布 exo をたくさん扱う人はこちらのほうが事故が少ないです。
やっても無駄なこと
- exo と素材を同じフォルダに入れる:aup では有効ですが、exo では効きません。ここを勘違いして時間を溶かす人が多いです。
- 相対パスに書き換える:exo は絶対パス前提の形式です。
.\op.mp4のように書いても読みません。 - 素材のファイル名だけ変える:
file=の行を書き換えていなければ意味がありません。
なお、パスが正しいのに読み込めない場合は、そもそもその動画形式を AviUtl 本体が扱えていない可能性があります。入力プラグイン側の問題なので、aviutl 再生できない を確認してください。
原因2:AviUtl2 と AviUtl 1.10 系の EXO 非互換
結論:どちらのバージョンで作った exo を、どちらに読ませようとしているかで挙動がまったく違います。特に「AviUtl2 で作った exo を初代 AviUtl に読ませる」方向は、互換性を期待しないほうがいい領域です。
2026年9月時点の公開情報を整理します。後継版の AviUtl ExEdit2(通称 AviUtl2) は 2025年7月7日に version 2 beta1 がテスト版として公開され、2026年7月7日公開の version 2.0.54 からベータ表記が外れて正式版として提供されています。従来版で拡張編集 Plugin が担っていた編集機能が本体へ統合されており、プロジェクトファイルは .aup2 という別拡張子で、従来版の .aup とは互換がありません。プラグインについても、従来版向けの32ビット DLL を使うものは基本的に使えず、DLL を使わないスクリプトと入出力プラグインに一定の互換対応がある、という位置づけです。
この前提を踏まえた exo の互換表がこちらです。
| 書き出し元 → 読み込み先 | 期待できる挙動 | 対処方針 |
|---|---|---|
| AviUtl 1.10 + 拡張編集0.92 → 同じ構成 | 本来の想定。原因1・3〜6のいずれか | この記事の他の章へ |
| AviUtl 1.10 → AviUtl2 | 「開くことは開く」。ただし一部の機能は落ちる | 落ちた項目を手動で再設定 |
| AviUtl2 → AviUtl 1.10 | 互換は期待しないほうがよい | 初代側で作り直す |
| 拡張編集0.92 → 拡張編集0.93rc1 など版違い | フィルタ仕様が違えば読めない | 書き出し側と同じ版に揃える |
AviUtl 1系 → AviUtl2 で具体的に落ちるもの
公開されている検証情報では、以下が確認されています。
- 廃止されたフィルタ効果:ローテーション、モーションブラー、拡張色設定、アニメーション効果。これらが exo に含まれていても AviUtl2 側には該当機能がないため復元されません。
- クリッピング:
clipping=1と書かれていても、クリッピングオブジェクトとしては適用されません。 - スクリプト制御:UTF-16 のバイナリ形式で保存された旧形式のスクリプト制御は読めません。テキスト形式への変換が必要です。
- 移動量指定:未実装。専用スクリプトで代替する必要があります。
- 時間制御編集のバンドル状態:exo から読み込めないため、手動で再設定します。
- 色指定:YCbCr 指定や旧形式のカラーコードは読み込めますが、変換時に誤差が出る可能性があります。
逆に、AviUtl2 側で改善されている点もあります。初代の拡張編集はフィルタ効果が1オブジェクト10個までという制限がありましたが、AviUtl2 では100個以上扱えます。layer=100 以上のオブジェクトを含む exo も問題なく読み込めます。つまり「フィルタを積みすぎた exo が初代で読めない」タイプの詰まりは、AviUtl2 側ではむしろ起きにくくなっています。
切り分け手順
- 自分が起動しているのが AviUtl 1.10 なのか AviUtl2 なのかを確認します。ウィンドウタイトルや「その他」→「バージョン情報」で判別できます。拡張編集ウィンドウが別ウィンドウとして存在するなら初代、本体に統合されているなら AviUtl2 です。
- exo の入手元(配布サイト、YMM4、知人)が、どちらのバージョン前提で作ったかを確認します。配布物なら説明書きに書かれていることが多いです。
- 「AviUtl2 → 初代」の方向だと判明したら、そこで探索をやめます。初代に読ませる前提の exo を AviUtl2 から得ることは現状できないと考えて、初代側で作り直すか、素材と設定値だけを手で移すほうが早いです。
- 「初代 → AviUtl2」なら、上の落ちる項目リストを見ながら、落ちた分だけを AviUtl2 側の機能で組み直します。
ここが独自視点になりますが、AviUtl2 が正式版になった2026年以降、exo に関するネット上の情報は「どちらの話をしているのか」が書かれていないものが急増しています。 2024年以前の記事は当然すべて初代の話で、2026年の記事は AviUtl2 の話が混ざります。対処法を試す前に、その記事がどちらの前提かを確認しないと、存在しないメニューを探し続けることになります。
原因3:exo 内のスクリプト・プラグインが未導入(読み込めるのに空になる)
結論:exo はスクリプトの中身を持っていません。スクリプトの「名前」しか持っていません。 同名のスクリプトが受け側に導入されていれば動作し、無ければその分だけ復元されません。これが「読み込めたのにオブジェクトが空」「テキストは出るがアニメーションしない」の正体です。
exo を開くと、フィルタごとにこういうセクションが並んでいます。
[0.1]
_name=アニメーション効果
track0=0.00
track1=0.00
track2=100.00
track3=0.00
check0=0
type=0
filter=0
name=文字送り@テキスト表示
param=
_name= が拡張編集の標準機能名、name= が外部スクリプト名にあたります。ここに書かれた名前のスクリプトが script フォルダに無ければ、その効果は適用されません。
不足スクリプトを洗い出す手順
- exo をメモ帳で開き、
Ctrl + Fで_name=を順に検索し、出てくる名前をメモ帳の別ファイルに書き出します。 - 同様に
name=の行も拾います。@を含む名前(例文字送り@テキスト表示)は外部スクリプトである可能性が高いです。 - AviUtl のインストールフォルダ配下、
exedit(またはscript)フォルダを開き、手順2で拾った名前に対応する.anm.obj.scn.cam.traファイルがあるか確認します。 - 無いものについて、配布元を探して導入します。配布 exo なら、作者が「必要スクリプト一覧」を書いてくれていることが多いので、まずそこを確認します。
- 導入後、AviUtl を再起動してから読み込み直します。スクリプトは起動時に読み込まれるため、AviUtl を開いたまま追加しても反映されません。
拡張編集のバージョン差と英語版の罠
拡張編集そのもののバージョンが違う場合も、同じ現象になります。公開情報では、古いバージョンの exedit.auf で作られた exo、英語版の exedit.auf で作られた exo、手動編集で壊れた exo が読み込めない原因として挙げられています。英語版は内部のフィルタ名・パラメータ名が英語で書かれるため、日本語版で読むと _name= が一致せず、そのオブジェクトが再現されません。海外サイトから拾ってきた exo で「何も出ない」場合は、これを疑ってください。
また、拡張編集の仕様として「各フィルタの仕様が保存時と異なっている場合は正常に読み込めない」と明記されています。同じ名前のフィルタでもパラメータの数や順序が版で変われば読めなくなるということです。書き出した側と同じ拡張編集バージョンに揃えるのが、もっとも確実な解決になります。
チェックリスト:オブジェクトが空のときに確認する5点
- [ ] AviUtl を再起動してから読み込み直したか
- [ ]
exedit/scriptフォルダに、exo が要求する名前のファイルが存在するか - [ ] 拡張編集のバージョンが書き出し側と一致しているか(「その他」→「バージョン情報」)
- [ ] 英語版 exedit で作られた exo ではないか
- [ ] タイムラインのレイヤーを下までスクロールして、本当に何も無いか確認したか
原因4:トラックバー値・小数点・シーン番号の既知の不具合
結論:exo には「読み込めているのに値が正しく復元されない」既知のバグがあります。読み込み自体は成功するので気づきにくく、書き出し側と見比べて初めて分かるタイプです。
公開情報で確認できている不具合は次の3点です。
- シーンの番号を正しく入出力できない。 シーン機能を使ったオブジェクトを exo 経由で渡すと、参照先のシーン番号がずれます。
- トラックバーの変化方法スクリプトのパラメータ(移動フレーム間隔)を正しく読み込めない。 「直線移動」「加減速移動」などの変化方法に、フレーム間隔のパラメータを設定していた場合、その値が落ちます。
- トラックバーの値が -1 超 0 未満(つまり -0.5 のような負の小数)であると、正の値になってしまう。 X座標
-0.5が0.5として読み込まれる、という挙動です。
3番目が特にやっかいで、位置が微妙にズレるだけなので「バグだ」と気づけません。 「exo で渡したら微妙に位置が違う」という違和感の正体がこれであることがあります。
対処
- 対処の第一候補として patch.aul の導入が挙げられています。拡張編集のバグを修正する有志のプラグインで、上記の値の復元問題に対応します。
- 拡張編集 0.93rc1 を使っている場合、シーン音声以外は直るという報告がありますが、0.93rc1 自体が試用版のため常用は推奨されていません。安定を取るなら 0.92 + patch.aul の組み合わせが無難です。
- patch.aul を入れたくないなら、読み込み後に手で検算するしかありません。とくに「負の小数を含む座標」「変化方法のパラメータ」「シーン番号」の3点だけを見れば足ります。
検算の手順
- 書き出した側の環境で、対象オブジェクトの設定ダイアログをスクリーンショットしておきます。
- 読み込んだ側で同じダイアログを開きます。
- X・Y・Z、拡大率、回転、透明度の順に見比べます。マイナスの小数が入っていた項目が正になっていないかを最優先で確認します。
- 変化方法(直線移動など)のプルダウン横の設定ボタンを押し、フレーム間隔が 0 になっていないか確認します。
- シーンを参照しているオブジェクトは、シーン番号を目視で指定し直します。
正直に書くと、この検算はオブジェクト数が多いと現実的ではありません。10個や20個なら耐えられますが、100個ある exo を1つずつ照合するのは無理です。数が多いなら patch.aul を入れるか、後述する「exo 受け渡しをやめる運用」に切り替えるほうが合理的です。
ここまでの手順、1本ぶんまるごと自動でやりますShorty はテーマを入力するだけで、台本・AI音声・字幕・BGMを揃えた雑学ショート動画を生成します。無料プランは30日5本まで。無料で作ってみる原因5:拡張編集のタイムラインに正しくドラッグしていない
結論:初心者の最多ケースはこれです。exo は「AviUtl 本体ウィンドウ」ではなく「拡張編集ウィンドウのタイムライン」に落とさないと読み込まれません。 本体に落とすと、AviUtl は exo を動画ファイルとして開こうとして失敗します。
exo の正しい読み込み口は3つあります。
- 拡張編集ウィンドウのタイムラインへドラッグ&ドロップ
- 拡張編集ウィンドウで右クリック → ファイル → オブジェクトファイルのインポート
- 拡張編集ウィンドウで右クリック → ファイル → オブジェクトファイルから新規作成
3番は現在のタイムラインを破棄して新規に作り直す動作なので、編集途中のプロジェクトに追加したいときに選ぶと作業が消えます。既存の編集に足したいなら必ず2番(インポート)を使ってください。
読み込みまでの手順
- AviUtl を起動し、「設定」→「拡張編集の設定」で拡張編集ウィンドウを表示します。ここが出ていないと、そもそも落とす先がありません。
- 拡張編集のタイムラインが空(新規プロジェクトが未作成)の状態でも、exo をドロップすれば「新規プロジェクトの作成」ダイアログが出ます。ここで解像度とフレームレートを、exo を作った環境と同じ値にします。サイズが違うと座標がズレます。
- 既存プロジェクトに追加する場合は、何も置かれていないレイヤーの、何も置かれていないフレーム位置にドロップします。
- 読み込み後、レイヤー番号を下までスクロールして、オブジェクトが実際に配置されているか確認します。
「オブジェクトが重なる位置には読み込めない」
拡張編集の仕様として、オブジェクトが重なる位置には正しく読み込めません。これが②「読み込めたのに何も出ない」「一部しか出ない」の見落とされやすい原因です。
たとえば exo が レイヤー1〜3 のフレーム1〜300 を使う内容なのに、既存プロジェクトの同じ場所にすでにオブジェクトがあると、衝突した分が読み込まれません。回避策はシンプルです。
- タイムラインの一番後ろ、何も置いていないフレーム位置にドロップする。
- あるいは、空いているレイヤー帯(レイヤー20以降など)にドロップする。
- 読み込み後に、まとめて選択してドラッグで本来の位置へ移動する。
この「いったん空き地に降ろしてから移動する」やり方を癖にしておくと、衝突による欠落をまず起こしません。
読み込んだ後、タイムラインには出ているのに書き出すと真っ黒・0秒になる場合は、exo ではなく出力側の問題です。aviutl 出力できない 0秒 を確認してください。
原因6:文字コード(Shift_JIS)・改行コード・ファイル破損
結論:exo は Shift_JIS(CP932) + CRLF で書かれたテキストとして扱われます。UTF-8 で保存し直すと、日本語を含むパスやテキストが壊れて読み込めなくなります。
正確を期すと、exo の書式について公式の仕様書は公開されていません。ただし exo を生成する各種ツールの解説では一貫して「文字コードを Shift JIS に変換すること」と指示されており、実用上は Shift_JIS + CRLF を前提に扱うのが安全です。
問題は、Windows 10 の 1903 以降、メモ帳の既定の保存文字コードが UTF-8 になっていることです。つまり「メモ帳で開いてパスを直して上書き保存した」だけで、文字コードが UTF-8 に変わってしまう可能性があります。原因1の置換作業をやった直後に読み込めなくなったなら、ほぼこれです。
メモ帳で文字コードを保ったまま保存する手順
- メモ帳で exo を開きます。
- ウィンドウ下部のステータスバー(表示されていなければ「表示」→「ステータスバー」)で、現在の文字コード表示を確認します。
ANSIと出ていれば Shift_JIS 系です。 - 編集後、「ファイル」→「名前を付けて保存」を選びます。
- 保存ダイアログ下部の「エンコード」で
ANSIを選びます(UTF-8やUTF-8 (BOM 付き)を選ばない)。 - 同じファイル名を指定し、上書きします。
PowerShell で確実に Shift_JIS へ戻す
すでに UTF-8 で保存してしまった場合、PowerShell で戻せます。
$src = "C:\path\to\object.exo"
$dst = "C:\path\to\object_sjis.exo"
$text = [System.IO.File]::ReadAllText($src, [System.Text.Encoding]::UTF8)
[System.IO.File]::WriteAllText($dst, $text, [System.Text.Encoding]::GetEncoding("shift_jis"))
元ファイルを直接上書きせず、別名で出してから読み込みを試すのが安全です。なお、この変換で戻るのは「UTF-8 として正しく保存されていた」場合だけです。すでに一度文字化けした状態で保存されている(いわゆる二重化け)と、情報が失われているので戻りません。バックアップが無ければ作り直しです。
BOM と改行コード
- BOM 付き UTF-8 で保存すると、ファイル先頭に見えない3バイトが入り、1行目の
[exedit]が正しく認識されません。読み込みが即座に失敗します。 - 改行コードが LF だけ(Mac や Linux、一部のエディタ経由)になっていると、行の区切りが認識されないことがあります。CRLF に統一します。VS Code なら右下のステータスバーから
CRLFに切り替えられます。
破損しているかの簡易判定
- ファイルサイズが 0 バイトでないか。0 なら書き出しに失敗しています。
- メモ帳で開いて、1行目が
[exedit]で始まっているか。 length=とscene=が先頭セクションにあるか。[0][0.0][1]のようなセクション番号が連番で並んでいるか。歯抜けや重複があれば手動編集の失敗です。- 末尾が途中で切れていないか。クラウドストレージの同期中にコピーすると、途中で切れたファイルが残ることがあります。
この5点のどれかで引っかかるなら、exo の修復を試みるより、書き出し側からもう一度出し直すほうが確実に速いです。
exo の受け渡しに依存しない運用へ切り替える
結論:exo は「配布形式」ではなく「同じ環境の中で使い回すためのメモ」です。 素材への絶対パスと、導入済みスクリプトの名前だけを持ち、中身は一切持ち歩かない。この性質を理解すると、「別PCに渡す」「数年後の自分に渡す」用途に exo を使うのが構造的に無理筋だと分かります。ここが本記事のもう一つの独自視点です。
トラブルの根治は、exo を直すことではなく、exo に依存しない渡し方に切り替えることです。目的別に並べます。
| 渡し方 | 再編集のしやすさ | 環境依存の少なさ | 向いている場面 |
|---|---|---|---|
| exo 単体で渡す | 高い | 非常に低い | 同じPC内でパーツを使い回す |
| aup + 素材フォルダをまとめて渡す | 高い | 中(同階層フォールバックが効く) | 共同編集、PC移行 |
| 素材を作品フォルダ配下に集約し、フォルダごと渡す | 高い | 中〜高 | 自分の環境を丸ごと移す |
| 中間ファイル(mp4 / 連番PNG)で渡す | 低い(再編集不可) | 非常に高い | 完成パーツの受け渡し |
| AviUtl 以外のツールで完結させる | ツール次第 | 高い | 定型フォーマットの量産 |
手順:フォルダごと固める運用に移行する
- 作品ごとに親フォルダを作ります(例
D:\movie\ep01)。 - その直下に
material(素材)、out(書き出し)を作ります。 - 使う画像・動画・音声をすべて
materialにコピーします。デスクトップやダウンロードフォルダを直接参照しない、が鉄則です。 - プロジェクトは
aupでD:\movie\ep01直下に保存します。exo はあくまで補助(同一PC内での部品使い回し)に限定します。 - 別PCへ移すときは
ep01フォルダごとコピーし、移動先でも同じドライブレター・同じ階層に置きます。 - どうしても階層が変わるなら、原因1の置換手順を
aupではなくexoに対して行います(aup はバイナリ寄りなのでメモ帳置換には向きません)。
これを徹底すると、exo が読めないトラブルの大半は最初から発生しません。
別ツールへ逃がす選択肢
AviUtl の環境構築とスクリプト管理そのものが負担になっているなら、ツールを変えるのも現実的な解です。方向性は3つあります。
- AviUtl2 に一本化する:前述のとおりプラグイン互換は失われますが、本体に編集機能が統合され、フィルタ数やレイヤー数の制限が緩和されています。1系の資産を捨てられるなら選択肢になります。
- YMM4 単体で完結させる:立ち絵と字幕が主体の動画なら、AviUtl に exo で渡さず YMM4 側で完結させれば、そもそも受け渡しが発生しません。立ち絵まわりでつまずくなら ymm4 立ち絵 表示されない が参考になります。
- ブラウザ完結型のツールで定型パーツを作る:毎回同じ構成の短尺を量産するなら、テンプレート化されたツールのほうが速い場面があります。当サイトが開発・運営している Shorty もその一つで、台本からショート動画を組み立てる用途に振り切っています。無料プランは 1本30秒まで / 30日で5本まで / 保存は7日間 / ショート形式(縦型)のみという制約があり、長尺や細かいエフェクト制御が必要なら AviUtl や AviUtl2 のほうが適しています。あくまで「exo の受け渡しが発生しない作り方もある」という選択肢の提示です。
どれが正解かは作るものによって変わります。凝ったエフェクトを積むなら AviUtl 系から離れる理由はありませんし、定型の短尺を数こなすならブラウザ側に寄せるほうが楽です。
それでも直らない・直せないケース
正直に書いておきます。次のケースは、exo を直す方向では解決しません。
- 配布 exo の作者が、必要スクリプトを明示していない。
_name=から名前は拾えても、同名スクリプトが複数の配布元に存在することがあり、どれを入れればいいか特定できないことがあります。作者に問い合わせるか、諦めて自作します。 - AviUtl2 で廃止されたフィルタ(アニメーション効果など)が exo の中核を成している。 代替機能を自分で組み直す以外にありません。
- 書き出した本人の環境がもう存在しない。 拡張編集のバージョンもスクリプト構成も再現できないなら、完全復元は不可能です。
- 一度文字化けした状態で上書き保存してしまった。 情報が失われているため、バックアップが無ければ復元できません。
これらに当たったら、復元に何時間もかけるより作り直したほうが速いと判断してください。exo は数分で作れるものが大半です。復元コストが作り直しコストを超えた時点で撤退するのが、結果的に一番早く終わります。
よくある質問
exo ファイルは AviUtl 以外で開けますか?
テキストエディタで中身は読めますが、動画として再生できるソフトはありません。 exo は ini ファイルに似たテキスト形式で、編集内容の設計図だけを持っています。
映像や音声のデータは一切含まれておらず、素材へのパスと設定値の羅列です。したがって「exo を再生するプラグイン」を探しても存在しません。中身を確認したいならメモ帳や VS Code で開き、編集として復元したいなら AviUtl の拡張編集に読み込むしかありません。
exo を読み込もうとするとエラーが出て弾かれます
まず file= 行のパスが実在するかを確認してください。素材が移動していると、この段階で失敗します。 次に文字コードと先頭行を確認します。
パスが正しければ、UTF-8 で保存されていないか(原因6)、ファイル先頭が [exedit] で始まっているか、ファイルサイズが 0 でないかを順に見ます。それでも弾かれるなら、書き出し側の拡張編集バージョンが違うか、英語版 exedit で作られた exo である可能性があります。
exo と素材を同じフォルダに入れれば読み込めますか?
いいえ。aup では有効ですが、exo には同階層を探すフォールバックがありません。 file= 行を書き換えるか、旧環境と同じパスを再現する必要があります。
aup の場合、AviUtl は指定パスに素材が無いとき「aup と同じ階層にないか」を自動で探してくれます(拡張編集で読み込んだ aup に限る)。exo にはこの救済がないため、同じフォルダに置いても解決しません。原因1の手順A・手順Bのどちらかを実行してください。
AviUtl2 で AviUtl 1系の exo は使えますか?
開くことは開きますが、一部の機能は復元されません。逆方向(AviUtl2 → 1系)は互換を期待しないほうがよい領域です。 落ちる項目は手動で組み直します。
1系 → AviUtl2 で復元されないのは、廃止されたフィルタ効果(ローテーション、モーションブラー、拡張色設定、アニメーション効果)、クリッピングオブジェクトとしての適用、UTF-16 バイナリ形式の旧スクリプト制御、移動量指定、時間制御編集のバンドル状態などです。色指定は読めますが誤差が出る場合があります。
exo をメモ帳で開いたら文字化けしています。壊れていますか?
テキストオブジェクトの文字列は、もともと人間が読めない形式で格納されています。それは正常です。 パス部分(file= 行)が読めているなら壊れていません。
text= の後ろに続く長い英数字の羅列がそれにあたります。ここを編集すると文字が壊れるので触らないでください。一方で、file= の日本語フォルダ名が「譁・ュ怜喧縺・」のように化けている場合は文字コードの問題なので、原因6の手順で Shift_JIS に戻します。
YMM4 から出力した exo が AviUtl で読み込めません
YMM4 側の出力設定や書き出し失敗が原因であることが多く、AviUtl 側の対処では解決しません。 出力工程の切り分けが先です。
そもそも exo が正しく書き出せていなければ、AviUtl 側で何をしても読めません。書き出し自体につまずいている場合は ymm4 exo 出力できない を先に確認してください。書き出しは成功していて AviUtl 側で立ち絵だけ出ない、という状態なら、それは立ち絵スクリプトの未導入(原因3)です。
exo を読み込んだのに立ち絵や一部のパーツだけ出ません
その部品が要求しているスクリプトが受け側に入っていません。exo はスクリプト名しか持たないためです。 _name= と name= を拾って突き合わせてください。
立ち絵系はとくに専用スクリプト(立ち絵表示系、psd読み込み系など)に依存しがちです。導入後は AviUtl を再起動しないと反映されません。あわせて、素材そのもののパス(file=)も切れていないか確認します。
exo に音声は含まれますか?
含まれません。音声ファイルへのパスが書かれているだけです。 音声素材を移動していれば、その音声オブジェクトは読み込めません。
映像・画像と同じく、音声も file= の絶対パス参照です。音だけ出ない場合は、音声オブジェクトの file= 行を確認してください。なお、シーン音声を使っている場合はシーン番号のバグ(原因4)の影響を受けることがあります。
exo のパスを相対パスに書き換えられますか?
できません。exo は絶対パス前提の形式です。 .\material\op.mp4 のように書いても読み込まれません。
相対的な運用をしたいなら、exo 側ではなく環境側で解決します。作品フォルダのパス構成を固定する、移動先で同じドライブレターを割り当てる、といった方法です。恒久的に解決したいなら、そもそも exo で渡さない運用(前章の比較表)に切り替えるのが早道です。
patch.aul は入れるべきですか?
トラックバー値や小数点の復元不具合に悩んでいるなら有力な選択肢です。ただし有志製なので、導入前に必ずバックアップを取ってください。 入れない場合は手動検算で代替できます。
公開情報では、exo 読み込み時の値の不具合に対する対処として patch.aul の導入が挙げられています。一方、拡張編集 0.93rc1 は試用版という位置づけのため常用は推奨されていません。オブジェクト数が少なく手で検算できる規模なら、無理に導入せず目視確認でも十分です。
AviUtl の動作自体が重くて読み込みに時間がかかります
exo の読み込み遅延は、exo そのものよりもプレビュー描画や素材の重さが原因であることが多いです。 高解像度素材を大量に参照する exo は読み込み後の描画で固まります。
読み込み直後に固まる場合は、プレビューの表示倍率を下げる、キャッシュ設定を見直す、といった本体側の軽量化が効きます。読み込み自体は成功していることが多いので、まずは数十秒待ってみてください。
この作業の前後でよく問題になるのが同じ系統の設定です。詳しくはAviUtlショート動画の出力設定(1080×1920)にまとめています。
まとめ
AviUtl で exo が読み込めないとき、闇雲に対処を試す前にやることは一つです。「エラーが出る/何も出ない/一部だけ出る/文字化けする」のどれなのかを判定する。 ここが決まれば、見るべき原因は1つか2つに絞れます。
この記事で扱った6つの原因を、優先度順に並べ直すとこうなります。
- 素材の絶対パス切れ(別PC・別フォルダへの移動)。exo に同階層フォールバックは無い。
file=行をエディタで一括置換するか、旧パスを再現する。 - 読み込み導線のミス。本体ウィンドウではなく拡張編集タイムラインへ。既存オブジェクトと重なる位置には読み込めないので、空き地に降ろしてから移動する。
- スクリプト・プラグインの未導入。exo はスクリプト名しか持たない。
_name=とname=を拾って突き合わせ、導入後は AviUtl を再起動する。 - AviUtl2 と 1.10 系の非互換。1系→AviUtl2 は一部が落ちる。AviUtl2→1系は互換を期待しない。
- 文字コード・改行コード。Shift_JIS(CP932) + CRLF を維持する。メモ帳の既定が UTF-8 になっている点に注意。
- トラックバー値・小数点・シーン番号の既知の不具合。読み込めていても値が壊れることがある。patch.aul か手動検算で対応。
そして根本的な話として、exo は環境に強く結びついたメモであって、配布や長期保存に向いた形式ではありません。 別PCに渡す、数年後の自分に渡す、という用途では、aup + 素材フォルダをまとめて固めるか、完成パーツを中間ファイルで書き出すほうが確実です。同じトラブルを毎回踏んでいるなら、直し方を覚えるより渡し方を変えるほうが、結果的にかかる時間は短くなります。
最後に、復元を諦めるラインも決めておいてください。書き出した本人の環境が再現できない、必要スクリプトが特定できない、文字化けを上書き保存してしまった。このいずれかに当たったら、それは直らないケースです。作り直しに切り替える判断も、立派なトラブルシューティングです。