はじめに
Aviutlを用いて編集編集を自動化するにあたって、exoファイルをプログラミングを用いて生成しようと考えるのは自然なことです。本記事では、備忘録もかねて、Python上で任意のテキストをexoファイルに変換する関数を貼っておきます。
そもそも
exoファイルをテキストエディタ等で開くと分かるのですが、exoファイルはテキスト情報をそのまま保存していません。何やら数字やアルファベットの羅列が続いています。従って、テキスト情報をexoファイルに保存しようと考えたら、何らかの方法でテキストを変換する必要に迫られます。
関数
テキストをexoに変換する関数は以下:
def convert_exo_text(text: str) -> str:
result = text.encode('utf-16le').hex().upper()
result = result.ljust(4096, '0')
return result
言語はPythonです。utf-16leにエンコードしたのち、0で埋めて全体を4096文字に調整します。
余談
本スクリプトを用いることで、テキスト情報を含むexoファイルの自動生成が可能になります。したがって、例えばこれとChatGPTのAPIを用いることで、voiceroid(またはゆっくり)解説動画を量産するといった使い方が考えられますね。
さて、exoファイルを生成するにあたって注意点が一つあります。それは、encodingがANSIでなければいけない、という点です。utf-8など他のencodingの場合、Aviutlがexoファイルを読み込みません。実際、この記事の執筆者はこの問題の原因究明に数時間を費やしたので皆さんは同じ轍を踏まないように…