TRPGスタジオのログに「ゆっくり」の音声をつける

TRPGスタジオで遊んだデータに「ゆっくり」の合成音声をつける方法を説明します。
ログデータに修正を加える場合は、この手順の前にティラノビルダーなどを使って行うようにしてください。
この記事は、あまり難しいことをしないでゴールまで行きつくことを目的に記述しています。

##この手順を試した環境
Windows10

##必要なツール
- [ソフトーク](https://w.atwiki.jp/softalk/)
- [LibretTalk](https://ch.nicovideo.jp/usunoro/blomaga/ar230394)
- エクセル、もしくは、[オープンオフィス](https://www.openoffice.org/ja/)のCalc
- [秀丸エディタ](https://hide.maruo.co.jp/software/hidemaru.html)
- [Namery](https://www.vector.co.jp/soft/winnt/util/se217399.html)
- [Moo0 Mp3変換器](https://jpn.moo0.com/)
- [ティラノライダー](https://tyrano.jp/dl/rider)

※各ツールはこの後で説明する事が出来れば他の物でもOKです。
※各ツールのDL方法は各自でお調べください。また、DLは自己責任でお願いします。

##大まかな作業の流れ
【STEP1】TRPGスタジオのログから音声化したいテキストを抜き出す
【STEP2】各キャラの声を決め、LibretTalkに読み込ませ、合成音声を出力
【STEP3】拡張子がwavで出力されるので、oggに変換
【STEP4】ティラノスクリプト（あるいはビルダー内）のデータを修正


##作業の説明
###【STEP1】TRPGスタジオのログから音声化したいテキストを抜き出す

TRPGスタジオからログデータをティラノスクリプト形式もしくはティラノビルダー形式でデータをDLする。
リプレイ動画に適した形で確認と素材を含めるのチェックボックスを忘れずにつけるようにしてください。
この後の説明はティラノスクリプト形式でDLした場合を説明しますが、ティラノビルダー形式と大きく変わらないと思われます。

DLしたxxxx_tyranoscript.zipを解凍し、
dataフォルダの中の、scenarioフォルダの中の、scene1.ksをコピー。
scene1 - コピー.ksを秀丸エディタで開く
ctrl+rで置換ウインドウが開くので、画像を参考に設定する。
![step1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/6fda5efa-7487-eb0f-8de6-1333840fcf76.png)

**検索**　#.\*\f\n
**置換**　\0\t

以下の文字列でも置換する。
**検索**　\\[r\\]\n
**置換**　（空にする）

**検索**　\\[p\\]
**置換**　（空にする）

scene1 - コピー.ksを全てコピーして、エクセルに貼り付ける
![step1-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/4c29567b-45cd-dafe-d675-5b104d1583bc.png)
音声化にいらない行もありますが、A列にキャラ名、B列にセリフ、もしくはダイスコマンドが入っていればOKです。

AB列を選択してエクセルメニューのデータからフィルターをクリック
B列に[でソートをかけるとダイスの値などが出てきます。合成音声化しない場合はセリフ欄を…としてください。合成音声化する場合は欲しい部分のみに削ってください。
キャラ名でソートをかける
![step1-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/52f3519f-9393-137d-9b28-764bcf75d532.png)
ソートをかけた状態で1行目を除いてコピー。別のシートにペースト
同じようにキャラごとにソートをかけ、キャラごとのセリフとキャラ名のシートを用意します。
これでSTEP1が完了です！

###【STEP2】各キャラの声を決め、LibretTalkに読み込ませ、合成音声を出力
LibretTalkを開き、メニューの【ツール】から【台本】をクリック
台本のウインドウが表示されると思うので、台本のメニューの【挿入】をクリック
空の状態でいいので、【名前を付けて保存】
![step2-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/e1422a17-4c77-888c-d3df-228c91b86422.png)
保存されたcsvをエクセルで開くと1行目にName、Voiceなどの文字が入っていると思うので、該当の列の2行目以降に【STEP1】で成形したキャラの名前とセリフをコピー
![step2-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/df04a335-978e-39bb-25b3-9b7d86e06a3a.png)
LibretTalkの声質、速度、高さを調整し、各キャラごとの声を好みの設定に決める。
決めた数値・設定をcsvに反映。
※色の設定は声に関係しないので適当にどうぞ。
![step2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/1bff2e46-28c8-fb18-71ed-0be505bb1f75.png)

作成したcsvをLibretTalkの台本ウインドウのメニューの【ファイル】から【csv読み込み】から読み込む
LibretTalkの大元のウインドウ下部にある参照ボタン横のテキストエリアに出力場所を設定する
台本のウインドウのメニューの【ファイル】から【ファイル出力】
wavファイルが出力されます。各キャラごとに出力し、キャラごとにフォルダを作ってwavファイルを格納するようにして下さい。
※出力中にエラーアラートが出た場合は、エラー原因の文字を特定し、修正してください。
これでSTEP2が完了です！


###【STEP3】拡張子がwavで出力されるので、oggに変換
Moo0 Mp3変換器を起動し、先ほど出力したwavをoggに変換。
※もしwav→oggに直接変換できない場合は一旦mp3に変換したらoggに変換できるかもしれません
oggに変換した音声は
`000-セリフ.ogg
001-セリフ.ogg
…`

というような名前になっていると思いますが、名前変換ソフトを使って以下のような形に変更する
※リネームの際は01、02のように連番に0が入らないようにしてください
`キャラ名の英字_1.ogg
キャラ名の英字_2.ogg
…`

各キャラごとにすべての音声を変換する。
これでSTEP3が完了です！


###【STEP4】ティラノスクリプト（あるいはビルダー内）のデータを修正
XXXX_tyranoscriptフォルダのdataフォルダの中の、scenarioフォルダの中の、scene1.ksを開く

ティラノスクリプトタグリファレンスの[voconfig](https://tyrano.jp/tag/#voconfig)を参考に
[voconfig]と[vostart]を追加

```tyranoscript:scene1.ks
;ボイスを再生するキャラクターを指定します
[voconfig sebuf=2 name="akane" vostorage="akane_{number}.ogg" number=1 ]
[voconfig sebuf=2 name="yamato" vostorage="yamato_{number}.ogg" number=1 ]

;音声自動再生を開始する。必ず必要です。
[vostart]
```

![step4-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/565505/a9c390cf-0034-e9a3-88b5-51855081f71d.png)

xxxx_tyranoscriptフォルダのdataフォルダの中の、soundフォルダの中に合成音声のoggを全て格納
※soundフォルダがない場合はdataフォルダの中に空のsoundフォルダを作ってその中に格納

もし、bgmや効果音でogg以外の音声形式を使っていたら、全てMoo0 Mp3変換器でoggに変換し、
dataフォルダの中の、scenarioフォルダの中の、scene1.ksを秀丸エディタで開く
ctrl+rで置換ウインドウが開くので、以下のように置換。
※bgmや効果音でogg以外の形式として使っていた拡張子を検索に入れる
※置換ウインドウ内の正規表現のチェックは外してください
**検索**　.mp3
**置換**　.ogg


ティラノライダーを起動
プロジェクトを選択ボタンからxxxx_tyranoscriptフォルダの中のindex.htmlを選択
ゲーム開始ボタンをクリック
音声がつきました！

この画面をフリーの画面保存ツールなどで保存するとゆっくり音声付リプレイ動画となります。

##Tips
合成音声をつけていて、自分が引っ掛かったところ・修正した箇所をまとめました。

【Tips】ティラノライダーの自動再生が止まる
【Tips】ティラノライダーのBGM・効果音が再生されない
【Tips】音声修正方法
【Tips】ダイスの文字のずれの修正
【Tips】ダイスの表示サイズを大きくしたい

###【Tips】ティラノライダーの自動再生が止まる
大体は素材が足りない、自動再生中に画面をクリックしてしまったということが原因だと思いますが、
音声ファイルよりもテキスト再生時間のほうが長い時、いくつかの条件が重なると自動再生が止まってしまうようです。
その場合は、セリフを少し変えるか、音声が長くなるようにしてください。
たとえば、セリフが「あーーー」の場合は「ああぁあ～あああ～あ～あ」などでLibretTalkの辞書登録すると、解消したりします


###【Tips】ティラノライダーのBGM・効果音が再生されない
Windowsでティラノライダーで確認する場合は、対応している拡張子はoggです。
拡張子を確認してください。
拡張子が正しい場合はscenarioフォルダの中の、scene1.ks内で該当の音ファイルの拡張子がoggになっているか確認してください


###【Tips】音声修正方法
おそらく初めて合成音声をつけて通して流すと、大量の読み間違いが発生している状態だと思います。

LibretTalkの辞書機能で読み方を指定できますので、読み間違いがあれば辞書に登録してから再度音声を作り、
同じファイル名にして音声ファイルを差し替えてください。
LibretTalkの辞書はcsvの形で一括登録することもできます。

私の場合は一旦画面録画をして動画化してからチェックをして音声の修正をします。
自分に合ったやり方で修正してください。


###【Tips】ダイスの文字のずれの修正
ダイスの文字のずれは
[RobotoCondensed-Bold.woff](https://fonts.google.com/specimen/Roboto+Condensed?selection.family=Roboto+Condensed:700)に飛ぶとページ下部に1
Family Selectedとなっていると思うので、そこからDLできます。
xxxx_tyranoscript\data\others\plugin\fontsの中にRobotoCondensed-Bold.woffを入れれば直ります。

###【Tips】ダイスの表示サイズを大きくしたい。
DLデータの中をdice.cssで検索。
.viewDiceAreaの{}の中を以下のように変更してください。

```css:dice.css
.viewDiceArea {
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: scale(1.5);
  margin-top: 250px;
  margin-left: -180px;
}
```

もっと大きくしたい場合はscale(1.5)の数値を変更してください。


以上です。
音声付きのTRPGのリプレイ動画をよく見るので、動画が増えたらうれしいなと思います。