自動で音合わせ動画を生成するソフト RPPtoEXO【REAPER+Aviutl】
最新版↓
こんにちは。まいまいです。
今回はREAPERのプロジェクトファイル上のメディアオブジェクトの位置をもとに、Aviutlで使えるEXOファイル(拡張編集のオブジェクトとかが書かれてるファイル)を生成するプログラムを制作しました。
こんな感じのREAPERのプロジェクトファイルを用意して、このソフトを実行すると、
こんな感じになります。
上のEXOを動画として書き出してみるとこんな感じ。
音MADやYTPMV制作において便利な機能を多数実装しています。
更新情報
[20220713] シーンを配置する機能の追加、特定トラックのアイテムを追加する機能の追加
導入方法
[20220713] 配布場所をGithubに移行しました。Releaseからダウンロードしてください。
特に無いです。DLして解凍してください。
.exe版と.py版があります。好きな方を使って下さい。
使い方
実行するとこんな感じの画面になります。
※最新版は機能が追加されちょっと画面が違います。
各項目を説明します。
- .RPP REAPERのプロジェクトファイルのパスを設定します
- .EXO 生成するEXOファイルの場所と名前を設定します
- フィルタのみを追加する 素材の動画ファイルを使わずに、フィルタオブジェクトとして配置します
- 左右反転 奇数番目のオブジェクトに左右反転の効果を追加することで、自動で左右反転します
- アルファチャンネルを読み込む Aviutlでのアルファチャンネルを読み込む設定を有効にします。
- ループ再生 Aviutlでのループ再生再生の設定を有効にします。
- 上のオブジェクトでクリッピング Aviutlでの上のオブジェクトでクリッピングの設定を有効にします。
- 偶数番目Objを別レイヤ配置 偶数番目オブジェクトと奇数番目オブジェクトに別の効果をつけたいとき用に偶数番目オブジェクトをAviutlのひとつ下のレイヤに配置します。偶数番目オブジェクトのみに効果をつける際はAviutl上で作業して下さい。
- 拡張描写 Aviutlでの描写方法を標準描写から拡張描写に変更します。中心XYを変更したいときなどにどうぞ。
- 隙間なく配置 REAPER上で隙間を開けてオブジェクトを配置しているときに、生成されるEXOに、オブジェクト間の隙間が無くなります。
- FPS EXOを読み込むAviutlのプロジェクトファイルでのFPSの設定を記入します。
- 再生位置 配置する動画の開始フレーム数を設定します。
- 素材 Aviutlで配置する素材(動画)のパスを設定します。
- 残りの項目は後述
Aviutl上で同時に設定することができない項目を設定した場合は、無視されるかAviutlで読み込んだ際にエラーになります。
X座標、Y座標等の項目を設定することも可能です。拡張描画にするオプションを有効にしない場合はX軸回転等は無視されます。
座標効果や拡大率等の効果を追加することができます。
始点の値、値を変化させる場合は終点、移動方法によっては設定、の項目を指定します。
アニメーション効果を追加したい場合は、設定が面倒なので一回Aviutl上で一つエフェクトを掛けたオブジェクトを作ってEXOを書き出し、メモ帳とかで開いて中を見ながら各項目を設定してください。
実行ボタンを押すと、設定した場所にEXOファイルが読み込まれ、Aviutlに読み込むことで素材を配置することができます。
細かい設定方法
効果を追加する際に、移動方法に追加したスクリプトを設定することも可能です。
その際は、「終点」の欄に 終点の値,15@スクリプト名と設定して下さい。
何回も同じ効果を追加する人向けに、なんらかのテキストファイルに効果の設定を記入して読み込むことも可能になっています。
まず、Aviutlで適用したい効果を設定したオブジェクトを含むプロジェクトファイルを用意し、
拡張編集のなにもないところで右クリックし、ファイル->オブジェクトファイルのエクスポートを実行。
生成されたEXOファイルをテキストエディタで開き、
[0.1]で始まる行から、[1]の前の行までをコピーし、新しいテキストファイルにペースト、保存します。
RPPtoEXO実行時に、効果をファイルから読み込む、の項目でこのテキストファイルのパスを設定します。実行すると、テキストファイルに記入した内容の効果が追加されます。
以上。それでは皆様良い音MAD・YTPMVライフを。
ツイート
コメント
こんにちは。突然ですが↓のようなメッセージが表示され、このアプリを利用することが出来なくなりました。
「Exception in Tkinter callback
Traceback (most recent call last):
File “tkinter\__init__.py”, line 1883, in __call__
File “RPPtoEXOv1.07.py”, line 629, in Run
main()
File “RPPtoEXOv1.07.py”, line 354, in main
f.write(EXO)
UnicodeEncodeError: ‘shift_jis’ codec can’t encode character ‘\uff5e’ in position 278: illegal multibyte sequence」
亀レスで申し訳ありませんが、このスクリプトではファイル名、フォルダ名などに「~」の文字が使われている場合文字コードの問題で正常に動作しません。ファイル名等を変更してください。
ダウンロードが出来ません。
Windowsからのメッセージなども何も出てこないのですが、
何か対策法はありませんか?
私から言えることは特にありません。ファイルはちゃんと存在しています。
追記:リンクのURLをコピーして貼り付けて移動すればDLできました
配置されるメディアオブジェクトの位置が1フレームだけズレていることがあるのですが、FPSの設定が関係してるんですかね?BPMの値をFPS用に変換した値をFPS値として設定したほうが良いですか?
RPPtoEXO.pyを実行すると以下の警告が出てtkinterのウィンドウは開くもののそれ以降先に進みません。
—–
DEPRECATION WARNING: The system version of Tk is deprecated and may be removed in a future release. Please don’t rely on it. Set TK_SILENCE_DEPRECATION=1 to suppress this warning.
—-
しかし外部のスクリプトによりtkinterが使えることも確認でき、環境の問題ではないようにも思います。
exeを使えと言われればおしまいなのですがどうにかpythonから実行できないでしょうかね…?
現時点で原因不明です
MIDIでもできますか
MIDIファイルのみが置かれたREAPERプロジェクトから直接EXOを生成することは出来ませんが、弊ブログで紹介しているmidi2itemスクリプトを利用すると音声オブジェクトが生成できるため、間接的にMIDIから生成することが出来ます。
https://ytpmv.info/ReaScript-midi2item/
効果ファイルを読み込ませようとすると効果を記入したファイルに問題ありと出るのですがどうしたらいいのでしょうか?
Version2系統を使ってください
突然すみません。
拡大率を変更させる設定をしたところ「AviUtlのバグのため設定は反映されません」と表示されてしまいました。
何か解決策があれば教えていただけるとうれしいです
最新版(バージョン2以降)を使ってください