(グラデーションタグ{\vc}の活用)
はじめに
生放送や仲間内の会話などで、ニコカラについて質問される時、一番多いのが「グラデーションってどうやるの?」という問いである。
その場で、一言で説明するには、案外前提となるものが多く、案外難しい。
元々私は、自分の脳内言語が日本語ではない別の言語じゃないかとすら思えるほどに、私の脳内からアウトプットされる日本語はいつもおかしなことになってる場合があまりにも多いので、備忘録代わりにここに書き記すことにする。
大きな前置きの一つとして、グラデーションを導入すると、間違いなく作業時間が間延びする(色指定に時間がかかるようになる)。そして、ひとたびグラデーションを使い始めると、もう単色だったあの頃には戻れない。
そこだけはしっかりと頭に入れていただきたいところである。
ASSにおけるグラデーションは、VSFilterのみでは実現できない。
別途、機能強化された非公式のバージョン、VSFilterModの最新版を必要とする。
VSFilterModは、本家VSFilterの全ての機能を搭載しており“ほぼ完全上位互換”と言っても差し支えない。
…………
さて、そんなどうでも良い前置きはこの辺にして、さっさとグラデーション効果について書いていこうと思う。
2 まずはVSFilterModとAegisubを導入しよう
このブロマガの記事「ar85148」を見て導入しよう。基本的にVSFilterを置き換える形で使うことになる。
また、Aegisubは「縁ワイプを使っている場合」のグラデーション効果の適用にとても便利なので、ぜひ使っておこう。
……不親切かな……この書き方w
3 {\c}タグを理解する
グラデーション効果を使う前に、{\c}タグについて説明をする。これは、ASSにおける「色(Color)」を指定するタグでいくつかのバリエーションがある。説明すると無駄に長くなるので、下のURLを参照いただきたい。
参考:http://www20.atwiki.jp/ass_advancedssa/pages/51.html
……
グラデーション効果では、効率化を図るため元々ある「色」の指定を置換する形で行う。
txt2assの場合、縁ワイプの有無で記述内容が異なるため、それぞれの場合について説明している。
4 {\vc}タグを理解する
グラデーション効果{\vc} は、{\c}と基本的に内容は変わらない。
{\vc}にも{\c}同様、{\1vc}~{\4vc}の4種類がある。意味は{\c}と同じだ。
ニコカラでは主に{\1vc}や{\2vc}を使う。ごくまれに{\3vc}を使うこともあるだろう。
{\●vc(左上の色コード,右上の色コード,左下の色コード,右下の色コード)}
※●には1~4までの数字。1=ワイプ後(または字幕そのもの)、2=ワイプ前、3=縁取り、4=影
★{\1vc()}はカラオケ字幕エフェクト{\K}がなければ、“字幕の文字の色”。(2vcは効果がない)
※色コード=&HBBGGRR&
※BB・GG・RRはそれぞれ青・緑・赤。いずれも2桁の16進数で指定する。
★{\c}で使用できた透明度は、{\vc}では無効となる。
★色指定時は、一般のRGBコードとは青と赤が“逆”である点に注意。
※色コードの区切りは半角カンマ(,)
ASSでは、色を指定する際2桁の16進数(00~FF)を使うが、HTMLなどにおけるRGBコードとは逆に、「青」「緑」「赤」の順番で指定する必要がある。たとえば、赤に相当する #FF0000 は、ASSで指定する場合、(&H0000FF&) としなければならない。&もHも必要なので忘れてはならない
また、ASSのグラデーションは、一方向(例:青から白へ)といったものではなく、四隅から中央に向かって色が変化していくタイプである(四隅グラデーション)。
上から下へ一方向のグラデーションにしたい場合は、左上と右上の色コードを同じにして、左下と右下の色コードを同じにすることで、上から下に向かって次第に色が変わっていく方法となる。
たとえば、青から白へ上から次第に色が変わっていく場合は、
{\vc(&HFF0000&,&HFF0000&,&HFFFFFF&,&HFFFFFF&)}
と記述する。
また、ASSのグラデーションは、仕様上、その行のカラオケ字幕の内容全てに対して効果が及ぶ。
txt2assでカラオケ字幕を作っている場合、一段分の内容が1行にまとめて記されているはずなので、必然的に、一段全部にグラデーション効果が適用されることになる。
四隅グラデーションではあるものの、カラオケとして使うならば、上から下に向かって一方向のグラデーション効果にしなければ見た目がとても不自然になることにも注意する必要がある。
グラデーション効果を適用する際は、元々ある字幕ファイルに手を加える。
単純にテキストエディタで置換するだけだが、バックアップがあると良いだろう。
縁ワイプを使う場合は特にその方が良い。
5 縁ワイプを使わない場合
縁ワイプを使わない場合、カラオケ字幕本体の記述に色指定の箇所が登場しない。txt2assで指定した色を使っている。
txt2assで縁ワイプを使わないカラオケ字幕の場合はこのような、シンプルな記述となっている。
Dialogue:(中略){\q2}{\pos(130,548)}{\K120}{\K95}叶{\K36}う{\K31}は{\K23}ず{\K36}な{\K35}ど{\K22}な{\K49}い
Dialogue:(中略){\q2}{\K120}{\pos(130,468)}{\K95}かな{\K673}
Dialogue:(中略){\q2}{\pos(489,690)}{\K379}{\K45}夢{\K47}だ{\K21}け{\K24}が{\K0} {\K32}膨{\K25}ら{\K11}ん{\K12}で{\K10}い{\K154}く
Dialogue:(中略){\q2}{\K379}{\pos(489,610)}{\K45}ゆめ{\K396}
Dialogue:(中略){\q2}{\K516}{\pos(766,610)}{\K32}ふく{\K272}
●ワイプ後=ピンク(&HBE25F8& ■) ●ワイプ前=オレンジ(&H4196FB& ■)
現在作成中の自分の作品から引用した。
{\q2}から字幕の内容が記述されるため、それまでの部分は省略している。
{\q2}は全行共通しているので、ここを使って置換するのが一番良いだろう。
{\1vc()}はワイプ後、{\2vc()}はワイプ前の色を示すので、{\q2}の後に挿入する形で置換する。
ワイプ前を白からオレンジへ上から下に向かってグラデーション、
ワイプ後をピンクから濃い赤紫へ、上から下に向かってグラデーションすることにした。
これを記述すると、
ワイプ前――{\2vc(&HFFFFFF&,&HFFFFFF&,&H4196FB&,&H4196FB&)}
ワイプ後――{\1vc(&HBE25F8&,&HBE25F8&,&H900090&,&H900090&)}
このようになる。
あとはテキストエディタの置換機能を使って、置換前に「{\q2}」を、置換後に「{\q2}(ワイプ前のグラデ指定)(ワイプ後のグラデ指定)」と連続して入力し、すべて置換すれば完了である。
保存したASSファイルを、VSFilterModの「TextSubMod」を使って読み込み、同じ部分を撮影したものがこちらである。
※上がかけているのはファイルサイズの都合である。
――グラデーション効果がかかっていることがわかる。
6 縁ワイプを使用している場合
縁ワイプを使用している場合、もう少し扱いが面倒になる。というのも、シンプルな作りになっていないからだ。
単純に、「縁」の色も変わるから色指定の手間が倍になるということもあるが。
txt2assの縁ワイプは、Dialogueを2行に分けて行われている。
イメージとしては、両面テープを貼る時に“紙”をめくるような動き、と言えばわかりやすいだろうか。あるいは、“スクラッチくじ”をコインで削るように……ともいえるかも。
まあイメージできれば良いんだが、そういう動きをしている。
つまりは、1行目に“ワイプ後”、2行目に“ワイプ前”の内容を記述している。
そして、2行目のclipタグを使って2行目の文字を消し、下に隠れている1行目の文字を“見せている”。そんな処理をしている。
1行目と2行目では置換処理の内容が変わるので、2回置換処理をしなければならない、とだけ理解していれば良い。
では、実際にtxt2assの記述を見てみよう。
Dialogue:(中略){\q2}{\pos(130,548)}叶うはずなどない
Dialogue:(中略){\q2}{\pos(130,548)}{\1c&H4196FB&}{\3c&H0&}{\clip(126,455,646,555)}{\t(1200,2150,\clip(193,455,646,555))}叶{\t(2150,2510,\clip(257,455,646,555))}う{\t(2510,2820,\clip(321,455,646,555))}は{\t(2820,3050,\clip(385,455,646,555))}ず{\t(3050,3410,\clip(449,455,646,555))}な{\t(3410,3760,\clip(513,455,646,555))}ど{\t(3760,3980,\clip(577,455,646,555))}な{\t(3980,4470,\clip(648,455,646,555))}い
Dialogue:(中略){\q2}{\pos(130,468)}かな
Dialogue:(中略){\q2}{\pos(130,468)}{\clip(124,419,198,487)}{\t(1200,2150,\clip(198,419,203,487))}{\1c&H4196FB&}{\3c&H0&}かな{\K673}
Dialogue:(中略){\q2}{\pos(489,690)}夢だけが 膨らんでいく
Dialogue:(中略){\q2}{\pos(489,690)}{\1c&H4196FB&}{\3c&H0&}{\clip(485,597,1154,697)}{\t(3790,4240,\clip(552,597,1154,697))}夢{\t(4240,4710,\clip(616,597,1154,697))}だ{\t(4710,4920,\clip(680,597,1154,697))}け{\t(4920,5160,\clip(744,597,1154,697))}が{\t(5160,5160,\clip(765,597,1154,697))} {\t(5160,5480,\clip(829,597,1154,697))}膨{\t(5480,5730,\clip(893,597,1154,697))}ら{\t(5730,5840,\clip(957,597,1154,697))}ん{\t(5840,5960,\clip(1021,597,1154,697))}で{\t(5960,6060,\clip(1085,597,1154,697))}い{\t(6060,7600,\clip(1156,597,1154,697))}く
Dialogue:(中略){\q2}{\pos(489,610)}ゆめ
Dialogue:(中略){\q2}{\pos(489,610)}{\clip(483,561,557,617)}{\t(3790,4240,\clip(557,561,562,617))}{\1c&H4196FB&}{\3c&H0&}ゆめ{\K396}
Dialogue:(中略){\q2}{\pos(766,610)}ふく
Dialogue:(中略){\q2}{\pos(766,610)}{\clip(760,561,834,617)}{\t(5160,5480,\clip(834,561,839,617))}{\1c&H4196FB&}{\3c&H0&}ふく{\K272}
省略しても長い。
青い部分はワイプ「後」の記述で、やたら長いのは“ワイプ前”の処理である。
ちなみに、グラデーション効果の記述について再掲すると、
{\●vc(左上の色コード,右上の色コード,左下の色コード,右下の色コード)}
※●には1~4までの数字。1=ワイプ後(または字幕そのもの)、2=ワイプ前、3=縁取り、4=影
★{\1vc()}はカラオケ字幕エフェクト{\K}がなければ、“字幕の文字の色”。(2vcは効果がない)
※色コード=&HBBGGRR&
※BB・GG・RRはそれぞれ青・緑・赤。いずれも2桁の16進数で指定する。
★{\c}で使用できた透明度は、{\vc}では無効となる。
★色指定時は、一般のRGBコードとは青と赤が“逆”である点に注意。
※色コードの区切りは半角カンマ(,)
以上である。
今回も、ワイプ前は白からオレンジに、ワイプ後はピンクから濃い赤紫にそれぞれ上から下までグラデーションするようにしている。縁はワイプ前が黒、ワイプ後が白とした。
ワイプ前とワイプ後のグラデーションのタグはこのようになる。
ワイプ前――{\1vc(&HFFFFFF&,&HFFFFFF&,&H4196FB&,&H4196FB&)}
ワイプ後――{\1vc(&HBE25F8&,&HBE25F8&,&H900090&,&H900090&)}
大切なのは、ワイプ前のタグも「1vc」とすること。再掲したように、{\K}がない字幕は、1vcを使って置換しなければならない。縁ワイプを使わない場合とはvcの前の数字(2vcではなく1vc)が違うので注意が必要だ。
青い部分(ワイプ後)には何も色指定がないので、「縁ワイプを使わない場合」と同じ方法で置換することができる。
青緑部分(ワイプ前)には、色指定があるのでこれを置換する形で適用することができる。
しかし、青い部分も青緑の部分も{\q2}で共通しているので、このまま置換してしまうと、どちらも同じ色のグラデーション効果がかかってしまう。これでは意味がない。
そこで、Aegisubの出番である。
Aegisubを起動して字幕ファイルを開くと、このようになる。
メニューの [SubTitle(字幕)]→[Select Lines...(字幕行の指定選択)] と選び、ダイアログ【字幕行の指定選択】を表示させよう。
上の画像のように設定してOKを押すとこのように変わる。
これで、先ほどの「青い部分(ワイプ後)」だけが全部選択されたので、
メニューの[編集]→[Find and Replace...(検索と置換)]を選び、
このように設定して、「すべて置換」を押せば完了する。
試しに、ここまで編集したものをVirtualDubで見てみると、
こうなった。成功である!!
青緑の部分(ワイプ前)はもっとシンプルある。
Dialogue: (中略){\q2}{\pos(766,610)}{\clip(760,561,834,617)}{\t(5160,5480, \clip(834,561,839,617))}{\1c&H4196FB&}{\3c&H0&}ふく{\K272}
このように、記述の中に{\1c()}があるので、ここを{\1vc()}に置き換えてあげれば良い。
Aegisubの置換ダイアログを開き、
このように、検索する文字列にこの1cの色部分を、置換先をグラデーションのワイプ前のタグを入力して「すべて置換」する。そして保存したものをVirtualDubで開くと、
こうなった。これで、縁ワイプを使った場合でもグラデーション効果が問題なく適用できたことがわかる。
縁ワイプの場合、縁にグラデーションをかけることはあまりしないので説明は省く。ただ、この応用でできる、とだけ書いておこうとは思う。
txt2assを使っていればこのどちらかのパターンしかない……はずだから、これでどんな方でもグラデーションを使うことができるようになった。
どちらの方法でも基本的にテキストエディタで置換処理をするだけでグラデーションがかかる。でも、これを一言で説明するのは非常に難しい。
また、VSFilterModやAegisubは、ニコカラを作る「だけ」の方にとっては新しい環境に手を出すことになるため、そういうところでもわからない部分が出てくるとは思う。
できるだけサポートしたいとは思うが、全員の問い合わせに答えられるのはたぶんできないと思うので、細かなところは試行錯誤しながら覚えていく方が良いだろう。
最後に、グラデーション効果を使うに当たって、非常に便利なサイトを一つ紹介する。
ニコカラ作者のでるたいがーさんが、インターネット上でこの、ASSのグラデーション効果をプレビューができるサイトを公開している。→http://ko-sui.6.ql.bz/Gra-Simu!/
Google Chrome限定ではあるが、本当に便利なのでとても参考になると思う。
タグも{\1vc}限定とはいえコピペで使えるようになっているので、ぜひどうぞ、ということで。
ではでは。
自分は\1cと\3cで字幕行指定してました。
某エフェクトを使わせて頂いているので\clipだとダメでした。
このブロマガをもっと早く発見してれば早かったけど
自分で学んだ方が身につく筈…と心に誓ってw
でも、自分は結構手抜きしてたりするので、
まだまだこの高みには到達出来そうにないですね…
英語とか群で処理しちゃってますし。
ぶっちゃけるとほぼ自分用なのでめんどkゲフンゲフン
でも全てに\kタグ振ったほうが見栄えは良くなるでしょうし
エフェクトも均一化されるので、自分用と言ってもニコニコに上げてるわけだし
手間を惜しまずにやったほうが良いかなーと、かなり悩み中です。
今作成している曲がほぼ英語の曲だったりするので…
そしてプレビューサイト凄く助かります!今までaegisubで調べてました。
これは便利すぎる…