ページ

2020年4月26日日曜日

PSDToolKit

VOICEROID実況のアレ

PSDToolKit用の立ち絵を作成するメモです。
レイヤーの管理法や階層構造、使いやすいデータへの変換など。



※本文中の「!」「*」「¥」「@」は全角で表記していますが、実際のファイルでは半角で表記してください。


PSDToolKit

PSD画像の立ち絵、VOICEROIDの音声、字幕テキスト、を使ってAviUtlでVOICEROID実況動画を作成する事が出来るスクリプト。

レイヤー合成モード、クリッピングレイヤー、レイヤーマスクに対応している。


PSDToolKit用PSDの仕様


レイヤー名、レイヤーグループの先頭に以下の文字を付与すると、独自機能が利用できます。

 … 必ず表示。ただしグループの中身は非表示に出来る。
 … 同階層の「*」付きのうち、どれか一つを必ず表示。ただしグループの中身は非表示に出来る。

反転差分 … レイヤー名のお尻に「:flipx」「:flipy」「:flipxy」を付け加えると、立ち絵反転差分として扱われる。右手左手、文字が反転したら困る時など反転時の差分レイヤーを用意して、これを設定する。


Photoshop

Adobeのアレです。
無くても大丈夫ですが、あれば、下記便利スクリプトを利用できます。
(CS5、CS6、CC2015で試用)


便利なPhotoshop用のスクリプト

Photoshop用スクリプト ダウンロード | Live2D Cubism
http://www.live2d.com/download/ps-script/


Live2D_Preprocess.jsx

レイヤーグループを結合するスクリプト。「*」付きグループは結合しません。
このスクリプトは先頭に「*」~と説明されていますが、実際はレイヤーグループ名のどこかに「*」があるか、で判定しているので、お尻に「*」が付加されていても同様の動作をします。
※上位に「*」なしグループがある場合は、下位の「*」付きは結合されてしまう。


Live2D_Cleaning_v1.1.jsx

ゴミピクセルをお掃除してくれます。


Live2D_Preprocess.jsxを改変する

※自己責任でお願いします。
「*」付きフォルダを結合しない、という仕様がPSDToolKitの仕様と競合するので、「*」以外の文字で判定するようにスクリプトを修正します。

メモ帳などで開き、41行目の 「¥*」 を 「¥@」 に書き換えます。

これで、レイヤーグループ名に「@」が含まれていると結合しない、という動作に変更できました。

※CS5でこのスクリプト実行の際は、どこかのレイヤーを選択していないと内部エラー1200、activeDocument.activeLayer.merge();になり実行できなかったりします。注意。


レイヤーグループ名の付け方、例

!レイヤーグループ名@ …… 結合しない
!レイヤーグループ名  …… 結合する
*レイヤーグループ名@ …… 結合しない
*レイヤーグループ名  …… 結合する
レイヤーグループ名@  …… 結合しない
レイヤーグループ名   …… 結合する

差分入りのフォルダに「@」
その中身の差分に「*」
という感じで指定すると思います。

PSDToolKitは作業中ままのレイヤーごちゃごちゃのPSDファイルでも問題なく利用できますが、ごちゃごちゃだと階層構造が見づらく扱いにくい、ファイルが重いため、おそらくメモリ消費が多いので、メモリ不足でAviUtlがエンコード出来なかったりします。
特に、PSD立ち絵素材を配布するなら、不要なレイヤーグループは結合ですっきり整理しておきたいですね。
※メモリ不足はAviUtl1.10で改善しました。


CLIP STUDIO PAINT

PSDフォーマットが扱える、高機能、低価格なお絵描きソフト。
僕は絵を描くのにこれを利用しているので、注意点などーー。

CLIP STUDIO PAINTではPSDの仕様から若干外れたデータも作れてしまうらしく、その場合はPhotoshopやPSDToolKitで表示が変になる。


無効なクリッピングマスク属性付きのレイヤーはNG

PSDToolKitでは表示されない。
下にクリッピング基準レイヤーの無い、グレー表示になった無効なクリッピングは取り消しておく。


クリッピング属性付きレイヤーグループはNG

Photoshopはレイヤーグループにクリッピングが設定できない(CS5、CC2015)。
しかし、CLIP STUDIO PAINTとPSDToolKitでは利用可能。
このタイプのレイヤーグループにLive2D_preprocessを使うと、不具合で結合結果が白ベタになってしまう。
フォルダ(グループ)にはクリッピングでなく、代わりにマスクを使用すること。

  1. フォルダのクリッピングを解除。
  2. クリッピングの下地レイヤーをCtrl+クリックで選択範囲を作成。
  3. フォルダにマスクを設定。

または、クリッピング付きフォルダだけ手作業で結合すればOK。


Photoshopに無いレイヤー合成方法はNG

Photoshopには無い「加算発光」などの使用を避ける。「通常」、「乗算」、「スクリーン」、この3つくらいで賄うと安心。


下描きレイヤーに設定して不要なレイヤーを除外

完全に作業用で、PSDToolKitでは利用しないことが確定しているレイヤー、レイヤーフォルダは「下描き」属性に設定しておくと、PSD化時に出力から除外できる。



レイヤー管理

「レイヤー検索パレット」と「レイヤーパレット」を並べて表示します。

レイヤー検索パレットはサムネイルを非表示にし、検索フィルタでフォルダのみ表示に設定します。管理はレイヤーフォルダ単位で行います。中身のレイヤーに名前を付ける必要はないです。

階層が上位の、「目」などのフォルダに赤、青など「パレットカラー」を付けます。切り替えパーツなどの下位のフォルダは、無色、または階層に応じたパレットカラーにします。

すると、「レイヤー検索パレット」が文書作成ソフトの「見出し」のようになり、管理がしやすくなります。


レイヤー管理のサンプル。実際のフォルダ内のレイヤーは、「線画」、「塗り」、「影」など複数になると思います。



Live2D_preprocessでレイヤーグループが結合された状態。
CLIP STUDIO PAINTとPhotoshopではPSDにレイヤーパレットカラーの互換性が無く、やり取りは出来ないようです。



PSDToolKitでのレイヤー階層表示。


パーツの分け方

  • まゆげ
  • 漫符
  • ポーズ差分
  • 左右反転差分

おおまかにこんな感じ。

髪を揺らす、なども想定するなら、AviUtl上で差し替えられるように、そのレイヤーを非表示に出来るようにしておく。
揺らすパーツは個別にPNGなどで書き出す。その際は偶数ピクセルサイズでクロップしておく(元画像も偶数で揃える)。偶数で揃っていないと、AviUtlに読み込んだ時に0.5ピクセルずれるので画像がボケたり、位置合わせにひと手間増えてしまう。

瞳を視線毎で複数用意し、白目でクリッピングすることが出来る。
開き目、半目、でそれぞれ同じ瞳を複製、表示の切り替え設定が必要ですが、視線毎に目を用意するよりは簡単。

「!」付きの強制表示は利用しないほうが、任意で非表示に出来るため、PSDの取り扱いに融通が利きそう。


ファイル形式

レイヤー効果、ベクターレイヤーなど独自機能の利用できるClip形式で作業する。


PSD化

ファイル>>複製を保存>>.psd(Photoshopドキュメント)


PNG化(揺らすパーツ単位の書き出し)

レイヤーパレットにて「Alt+目玉クリック」で書き出したいレイヤー、レイヤーフォルダだけを表示した状態で、

ファイル>>画像を統合して書き出し>>.png(PNG)

書き出し後はAviUtlでメモリを節約するため、画像の余白を減らし揺れ効果を正常動作させるために、偶数ピクセルサイズでクロップする。


揺れモノ参考

Aviutlで立ち絵の表情、髪揺れ、呼吸のやり方

https://www.nicovideo.jp/watch/sm33227812


[Aviutl]画像プルンプルン(旧おっぱい揺らし)スクリプト_改良版

https://www.nicovideo.jp/watch/sm23776969


その他メモ

Photoshop、非表示レイヤーの一括削除

レイヤー>>削除>>非表示レイヤー


【Photoshop】レイヤーのリネームツール - ツクロウヤ  

http://artawa.hatenablog.com/entry/2016/10/20/014917
選択レイヤー、レイヤーフォルダの名前の置換、文字追加スクリプト。
「!」、「*」、を先頭に追加できます。


【Photoshopスクリプト】レイヤーをRegexで一括リネームするスクリプトを作ってみた

https://qiita.com/r-ngtm/items/e5a198175e0187cc2760
正規表現で置換。


リネームスクリプト挙動の注意点(微妙に動作不良)

All Layers … 最上位の階層しか処理されない=グループに入っているとスルー。

Select Layers … グループ内も可、ただし選択のうち一番上が処理されない。

不可視レイヤーが可視化されてしまう … 処理前にレイヤーカンプを保存しておけばレイヤー表示状態の復元可。


ぐりぐり動かしたいならLive2Dで…



「Live2D Drawer」AviUtlでLive2Dを使う02 - ガレージ暮らしのトライタム

https://traitam.hatenablog.com/entry/2017/06/17/「Live2D_Drawer」AviUtlでLive2Dを使う02


メモ、要調査

Cubism Editor Ver2.x系のパラメータ名でモデルを作成する必要がある?
moc2.1書き出しして~、としか注意が無いので、パラメータ名は3.x→2.1に変換されるのかな?(未調査)


moc3で試したメモ

まばたき …… 「設定」でパラメータ名を書き換えれば動く。

呼吸 ………… 2.1、3.x、両パラメータに対応している。問題なし。

口パク ……… @Live2d.objをテキストエディタで編集してパラメータ名を書き換えれば対応可能。ただし、リップシンクでなく、開閉だけなので口の形は「Live2Dパラメータ操作」オブジェクトを挟んで、手作業で調整する必要がある?

2.x系パラメータ
https://www.cg-method.com/entry/facerig-live2d-set-parameters/

3.x系パラメータ
https://docs.live2d.com/cubism-editor-manual/standard-parametor-list/?locale=ja

0 件のコメント:

コメントを投稿