【備忘録】exo2srt_srt2exo(srt2exo.bat)で半角カタカナを含むフォントが使用できないときの対応方法


「exo2srt_srt2exo(srt2exo.bat)」でフォント名を含む諸々の設定変更をしたとき、フォント名に半角カタカナがあるとうまくいかない! というケースの対応方法です。

設定変更のやり方については、以下の記事および記事内で紹介している動画で説明しています。


【事象】

「創英角ポップ体」のようにフォント名に半角カタカナを含む場合、AviUtlにsrt2exo.batで変換したexoファイルを読み込ませたときに別のフォント(AviUtlのデフォルトフォント?)で表示されてしまいます。

【原因と対応】

原因としては以下の2点で、それぞれ別の対応が必要になります。

①ANSIの方のファイルを作るときに半角カタカナを全角カタカナに変換してしまう
②半角カタカナの影響(?)で次の行のsetコマンドがバグってしまい出力されない

①の対応としては、
srt2exo.bat の中で nkf32.exe を実行している箇所(以下をテキスト検索で探してください)を修正します。

if exist "%~dp0nkf32.exe" (
%~dp0nkf32.exe -Ws !newfilename! > !newfilename!_ANSI.exo
)

という箇所を以下の様に変更します。

【変更後】(コピペ可)


if exist "%~dp0nkf32.exe" (
%~dp0nkf32.exe -Ws -x !newfilename! > !newfilename!_ANSI.exo
)

【変更内容】
・-Ws の後ろに -x というオプションを追加しています
(nkf32.exe 実行時に、半角カタカナを全角に変換しないようにするオプションです)
参考:https://atmarkit.itmedia.co.jp/ait/articles/1609/29/news016.html

②は、創英角ポップ体を指定しているところの次の行を、改行のみの空行にすると、自分の環境では解決しました。

set value0b=type=3!LF!autoadjust=0!LF!soft=10!LF!monospace=0!LF!align=4!LF!spacing_x=0!LF!spacing_y=243!LF!precision=1!LF!color=ffffff!LF!color2=008000!LF!font=HGP創英角ポップ体

set value1=_name=シャドー!LF!X=5!LF!Y=4!LF!濃さ=100.0!LF!拡散=0!LF!影を別オブジェクトで描画=0!LF!color=000000!LF!file=
set value2=_name=標準描画!LF!X=0.0!LF!Y=243.0!LF!Z=0.0!LF!拡大率=100.00!LF!透明度=0.0!LF!回転=0.00!LF!blend=0


こんな感じ。set value0b=… と set value1=… の間に空の行を挿入する。です。
これに関しては恥ずかしながら理屈がちゃんとわかってないので有識者の方いたら教えてください!
クォーテーションで囲うとかで解消しないかな……と思ったりしたんですが、うまくいかず……。コマンド実行わからん、batファイルわからん……。

上記の対応で自環境では問題解決しました。
お困りの方はためしてみてください!

以下、自己紹介。
普段はYouTubeに日常系(?)の動画を投稿しています。
たまにAviUtl等の技術モドキ動画なども上げています。
よかったらチャンネル登録、X(旧Twitter)のフォローなどもよろしくお願いします!