さんだすメモ

さメモ

技術ブログでは、ない・・・

PSDToolKit + VOICEROID+ で立ち絵・字幕・音声を配置する一例[AviUtl]

いろいろと不足してますが、ざっくり全体の流れをメモしました。

(1) できること・やること

  • 字幕の準備
  • 立ち絵の準備
    • PSDTool でシンプルビューを作って pfv ファイルに書き出しておく
    • PSDToolKit ウィンドウで立ち絵を簡単に変えられる
  • アニメーション効果のスライダーで立ち絵を変えられる
    • 多目的スライダーを使って、中間点を打たずに立ち絵を変えられる
  • かんしくんの導入
    • VOICEROID+ で音声を簡単に保存できる
    • VOICEROID+ で保存したのを検知してタイムラインにオブジェクトを置いてくれる
      • 音声ファイル
      • 多目的スライダー
      • 字幕準備

(2) aviutl

  • PSDToolKit を導入しておく
  • プロジェクトを開いて上書き保存できる状態にしておく

(3) 字幕の確認

(3-1) 字幕準備

  • layer 13 に字幕準備を置く
  • 単体では何も表示しない
  • 適当にテキストを入力しておく

(3-2) 字幕表示

  • layer 14 に字幕表示を置く
  • 長めの範囲に置いておく
  • 字幕準備のテキストが表示されるはず
  • 位置調整はこっち

(4) 立ち絵の準備

(4-1) PSD ファイルを準備する

  • PNG から作るのもあり

(4-2) pfv ファイルを PSDTool で生成する

(4-3) PSD と pfv をタイムラインに読み込む

  • layer: 15
  • 編集 > PSDToolKit > ウィンドウを表示
    • シンプルV で表情を変えられるか確かめる

(5) アニメーション効果のスライダーで立ち絵を変えられるようにする

(5-1) anm ファイルを作成

  • aviutl/script/im6442284_弦巻マキさん立ち絵素材ver2.0_MtU/im6442284_弦巻マキさん立ち絵素材ver2.0_MtU.anm を作成、編集していく

    • cp932 かつ CRLF にする必要がある
  • 編集 > PSDToolKit > ウィンドウを表示

    • シンプルVタブ > 髪 > リンクを開くマーク > スライダー"髪" 全体をクリップボードにコピー
--track0:髪,0,4,0,1
local values= {
  "S.お気に入り/*maki/髪~通常",
  "S.お気に入り/*maki/髪~通常もみあげ無し",
  "S.お気に入り/*maki/髪~ポニテ",
  "S.お気に入り/*maki/髪~ポニテもみあげ無し",
}
PSD:addstate(values, obj.track0)
  • 内容について

    • スクリプトでオブジェクトを作成
    • 先頭のコメント部分でスライダーを設定
  • 複数のコントロールを作る場合は次のようにする

--track0:髪,0,4,0,1
--track1:特殊パーツ,0,5,0,1

local values= {
  "S.お気に入り/*maki/髪~通常",
  "S.お気に入り/*maki/髪~通常もみあげ無し",
  "S.お気に入り/*maki/髪~ポニテ",
  "S.お気に入り/*maki/髪~ポニテもみあげ無し",
}
PSD:addstate(values, obj.track0)

local values= {
  "S.お気に入り/*maki/特殊パーツ~デフォルト",
  "S.お気に入り/*maki/特殊パーツ~汗2",
  "S.お気に入り/*maki/特殊パーツ~汗1",
  "S.お気に入り/*maki/特殊パーツ~ほっぺ2",
  "S.お気に入り/*maki/特殊パーツ~ほっぺ1",
}
PSD:addstate(values, obj.track1)

(5-2) アニメーション効果を適用する

  • anm ファイルを読み込むために aviutl を再起動
  • PSD ファイルのオブジェクトのプロパティでアニメーション効果を追加
    • 適用する効果を im6442284_弦巻マキさん立ち絵素材ver2.0_MtU にする
    • 効果を入れ替えて順番を im6442284_弦巻マキさん立ち絵素材ver2.0_MtU の後 描画@PSD にする
  • スライダーで立ち絵を変えられるか確かめる

(5-3) 多目的スライダーを使う準備

オブジェクトを分割することなく部分的に立ち絵を変えられる

  • layer: 12 に多目的スライダーを置く
    • PSDより前のレイヤー
  • PSDオブジェクトについて
    • mpslider = 12
  • 多目的スライダーをいじって立ち絵が変わることを確認する

(6) かんしくんを活用する準備

(6-1) かんしくんでできること

  • VOICEROID+ の音声保存の半自動化
    • 音声保存を押すとファイル名を決めて保存してくれる
  • 監視するディレクトリに保存されたのを検知して aviutl のタイムラインにオブジェクトを置く
    • 置くもの
      • 音声ファイル
      • 多目的スライダー
      • 字幕準備
      • 今回はやらないが口パクなんかも
    • 監視しているディレクトリからプロジェクトの指定したディレクトリにファイルを移動するなども

(6-2) 編集 > PSDToolKit > 環境設定

  • [x] 「多目的スライダー」を生成
    • スライダー: 今回は 4 個
      • 立ち絵の変化の種類に合わせる
      • 髪、表情、エフェクト、特殊パーツとしていたら4種類
    • 終了マージン: 0
      • 個人的な設定
  • [x] 「字幕準備」を生成
    • 終了マージン: 30
      • 個人的な設定
  • 発動条件
    • [x] 1フレーム目に音声とテキストがある*.exoをドロップした時

(6-3) かんしくん/setting.txt

padding = 0 # 0 ms 間を空ける
filemove = 'move'
destdir = '%PROJECTDIR%' # [[rule]] で上書きする
deletetext = true
delta = 15.0
freshness = 5.0
  • [[asas]] セクション
[[asas]]
exe = 'C:\Program Files (x86)\AHS\VOICEROID+\TamiyasuEX\VOICEROID.exe'
format = 'maki_*.wav' # same as rule/file
folder = 'F:\tmp\voiceroid' # 一時的な書き出し
  • [[rule]] セクション
[[rule]]
destdir = '%PROJECTDIR%\voice\maki' # 動画で使うファイルの書き出し
dir = 'F:\tmp\voiceroid' # 監視
encoding = 'sjis'
file = 'maki_*.wav' # 監視
layer = 11
modifier = '''
  text = re.gsub(text, "<<(.*?)|.*?>>", "${1}") -- ルビを除去
  filename = os.date("%y%m%d_%H%M%S") .. "_maki_" .. tofilename(text, 10) .. ".wav"
'''
  • さきほどの環境設定だと次のように配置される
    • layer 11: 音声
    • layer 12: 多目的スライダー
    • layer 13: 字幕準備

(7) かんしくんを使う

  • かんしくん/forcepser.exe を実行
    • VOICEROID+ を起動しますかと聞かれる
      • 事前に立ち上げるといいわけではないので注意する
    • VOICEROID+(asas/exe)が立ち上がる
  • VOICEROID+ で音声保存を押す
    • asas/folderasas/format の名前規則で保存される
  • rule/dirfile が保存されたのを検知する
    • rule/destdir にファイルを移動する
    • 字幕準備などを生成して音声ファイルと一緒にドラッグ&ドロップする
      • rule/layer に追加される

(8) いろいろ確認

  • レイヤーの確認

    • かんしくんが置いたもの
      • layer 11: 音声
      • layer 12: 多目的スライダー
      • layer 13: 字幕準備
    • 自分で置いたもの
      • layer 14: 字幕表示
      • layer 15: PSD
  • 音声の長さと字幕の長さの比較

    • 終了マージン
  • かんしくんで追加したオブジェクト同士の間隔

    • padding = 0
  • 多目的スライダーで変えられるか

(9) 参考