補足:吉田平八郎の編集日和【第六回ひじき祭】

動画アレコレ

はじめに

情報の海に浮かぶ様々な欠片(Piece)を拾い集め、私は私なりに満足のゆくガラクタを作り上げることができた。名も無き欠片に感謝の言葉を伝えても、持ち主に届かないことのほうが多い。ならば私も誰かが拾い上げて、もしかしたら役に立つかもしれない、価値のわからぬ欠片を置いていこう。

概要

動画「吉田平八郎の編集日和【第六回ひじき祭】」で紹介した、ボイスロイドからAviUtl上にnicotalk対応の立ち絵オブジェクトを置く処理において、途中の「かんしくん」に設定する内容を補足します。

たぶん以下のような方が対象となるでしょう。
・AviUtlとnicotalkを利用している。
・ボイスロイドまたはCEVIOなど、音声とテキスト内容を生成するソフト利用。
あらかじめ、いわし@超ビビリさんと、ふぇんりる♪さんの以下の解説動画をご視聴されることをお薦めします。
特にふぇんりる♪さんのテンプレ改変に、nicotalk向けの補足したのが本記事となりますので、これらの動画が理解できない場合はこれ以上読み進めてもあまり意味がないかもしれませんので、あしからず。
いわし@超ビビリさん
【Aviutl】動画編集・時短講座 2020年版 #3【ゆっくり・ボイロ・Cevio対応】
ふぇんりる♪さん
【AviUtl】かんしくんのテンプレート機能を使おう!
処理の流れ
①「AviUtl」、同追加プラグイン「nicotalk」「ごちゃまぜドロップス」、
 「かんしくん」を用意、設定する。
② AviUtlとかんしくん、音声を作るボイスロイド等を起動する。
③ ボイスロイド等で台詞を入力、調声する。
④ 音声を手動または自動で保存する。
⑤(かんしくんが音声とテキストを発見。ごちゃまぜドロップスに処理発生)
⑥(ごちゃまぜドロップスがAviUtl上に立ち絵オブジェクトを配置)
⑦ AviUtl上にnicotalkの立ち絵オブジェクトと音声と字幕が配置完了。
()は自動で処理される箇所です。
⑤の処理をさらに詳しく見ていきましょう。
⑤の処理の流れ
かんしくんは「指定フォルダ」に「指定された命名法則の音声ファイルとテキストファイル」を監視しています。
(1) かんしくんが、音声とテキストを発見。
(2) ルールセットに従い、対応するキャラを判別。
(3) 対応キャラのexoテンプレートの音声ファイル保存先やテキスト内容を置換
(4) exoファイルをごちゃまぜドロップスに渡して処理終了
(1)(2)(4)はふぇんりる♪さんの動画で解説されている内容から変わりません。
⑤(3)の処理を、nicotalk向けに対応しましょう。
⑤(3)のnicotalk向け対応
i. nicotalk対応のキャラ別exoファイルをAviUtl上で作成する。
ii. exoファイルの記載を変更してexoテンプレートにする。
iii. genexo.luaの内容に一部追記する。
上記3種類の作業を行います。
作業内容を見ていきましょう。
i. nicotalk対応のキャラ別exoファイルをAviUtl上で作成する。
まずnicotalkのキャラ別オブジェクトからexoファイルを作成します。
nicotalkの使用環境は、これもnicotalkユーザごとに幾らか違うと思います。
ご自分の環境に読み替えながら以下をご覧ください。
私の場合は、吉田くん・総統・博士・ギャラ子の最大4人のキャラが登場し、基本的に同時に1人しか台詞を喋らないことを前提としています。
4人が登場してる場面のnicotalkオブジェクトは次のようになっています。
これはnicotalkの通常の利用方法で用意しました。
上から吉田くんの立ち絵オブジェクト2つ、総統の立ち絵オブジェクト2つ、同じく博士の分2つ、ギャラ子の分2つ、共通の字幕背景(黒帯)、レイヤー位置が共通の字幕オブジェクト、レイヤー位置が共通の音声オブジェクト。
※字幕と音声はキャラ別に存在するけど、同時に1人しか喋らないので、同じレイヤー番号を用いて共通化してます。
各キャラの立ち絵1番目のオブジェクト(ベース)は、どのキャラを表示させるかを制御しています。必須ですが、台詞毎に別オブジェクトである必要ではないので適宜まとめることもできます。
立ち絵2番目のオブジェクト(表情)は、口パクを制御しています。
オブジェクトについた「アニメーション効果:表情2@キャラ素材」の「参照:file=」は音声ファイルを参照していて、口パクの元になってます。
またこのオブジェクトの長さ分だけ、1番目の表情などのパラメータを上書きできます。
あと立ち絵を回転させたりといった動きも、このオブジェクトで制御します。
台詞を喋っているキャラの立ち絵2番目のオブジェクトはテキスト欄に黒丸「●」、そうでないキャラは白丸「◯」ですね。
台詞を喋っていないキャラの立ち絵2番目のオブジェクトは、取り除いても問題ありません。
※発言していないキャラの表情を変えるときは、◯付きオブジェクトを残しておいて、そのパラメータをいじるのが楽です。
したがってキャラ別exoファイルとして用意するのは左の4種類。
また処理⑦のあと、AviUtl上でオブジェクトを調整して4人が登場してる場面は右のようになっているでしょう。
ここでは吉田くんのexoファイルを例とします。

ii. exoファイルの記載を変更してexoテンプレートにする。
キャラ別のexoファイルをテキストエディタで開いて編集し、exoテンプレートを用意します。
基本的には、ふぇんりる♪さんの動画で解説されている内容と同じですが、nicotalk用に一部は変更しない、また一部は追加で処理をいれます。
先にexoファイルをざっくり把握しましょう。
[ ] で囲まれた文字列から次の [ ] までがひと固まりです。
1行目の [exedit] から次の [0] まで、[0] から [0.0] までそれぞれひと固まりです。
[exedit]はexoファイル全体にかかる要素でしょう。
[0]~[3]はそれぞれオブジェクトを指しています。
[0]を1番目と読み替えると、4番目までのオブジェクトがあるということです。
立ち絵オブジェクト(ベース)、同(表情)、字幕、音声の4つです。
[0.0][0.1]などはオブジェクトの中身を細断してます。
[0.0]は立ち絵オブジェクト(ベース)の基本要素部分、[0.1]は同オブジェクトの「アニメーション効果:ベース1@キャラ素材」の要素でしょう。

前置き長いですが、これでexoファイルが俯瞰しやすくなりました。
exoファイルの中身を変更して、exoテンプレートに改造しましょう。
一. [exedit]の2~8行目を変更します。
二. 全体の「end=」で始まる箇所を「end=%LENGTH%」に変更。
4オブジェクトなので全部で4ヶ所あります。
  「blend=」で始まる箇所は違うのでそのままにしておきます。
三. [0.0]と[1.0]の「text=~」はそのままにしてください。
  [0]と[1]は立ち絵オブジェクトのベースと表情です。
これのtextは特殊なので変更しない。
四. [2.0]は字幕オブジェクトです。
[2.0]の「text=~」「text=%EXOTEXT%」に変更。
  ここに字幕テキストが入ります。
五. [3.0]は音声オブジェクトです。
[3.0]の「file=~」「file=%WAVE%」に変更。
  ここに音声ファイルの保存先が入ります。
六. 少し戻って、[1.2]は立ち絵オブジェクト(表情)の「アニメーション効果:表情2@キャラ素材」です。
  [1.2]の「param=file=”~”」「param=file=”%WAVENICO%”」に変更。
五.と違ってダブルコーテーション「”」で囲まれてるに注意!
  ここも口パク用に音声ファイルの保存先が入りますが、特殊な仕様が入ってます。
以上でexoテンプレート編集は完了です。
このテンプレートはキャラの数だけ用意することになります。
iii. genexo.luaの内容に一部追記する。
いよいよ最後の作業です。
ふぇんりる♪さんの動画の内容に沿って、「genexo.lua」があると思います。
これをnicotalk用に一部改造します。

一. genexo.luaをテキストエディタで開きます。
二. 36行目辺りの「s = s:gsub(“%%WAVE%%”, file)」の後に空行を作り、
  次の行を追記します。
filenico = file
filenico = filenico:gsub(“\\”, “\\\\”)
s = s:gsub(“%%WAVENICO%%”, filenico)

三. ファイルを保存します。

以上で「⑤(3)のnicotalk向け対応」作業は完了しました。
これで①~⑦を実行すれば、nicotalkに対応した立ち絵オブジェクトがAviUtl上に配置されるはずです。
うまくいかなければ、落ち着いて各作業をやり直す、あるいは見直してください。
もう私も説明に疲れました_(:3ゝ∠)_

最後に、少しだけ⑤(3)iii.の解説します。
蛇足なので読み飛ばしても構いません。
[3.0]音声オブジェクトや、立ち絵オブジェクト(表情)の[1.2]「アニメーション効果:表情2@キャラ素材」の口パク用は、台詞の音声ファイルを参照しています。
「C:/onsei/01.wav」といった感じですね。
これはフォルダの区切りを「C:\onsei\01.wav」とも読み替えれます。
ただ音声オブジェクトの音声と違って、この口パク用音声ファイルは呼び出し方が特殊なため、フォルダの区切りの「\」をプログラム用エスケープ処理と呼ばれる「\\」に変えてやる必要があります。
「C:\\onsei\\01.wav」といった感じ。
⑤(3)ii.六.と ⑤(3)iii.の改造はそのために必要なものでした。
以上