見出し画像

目パチ・口パクプラグインわからない😭

題目絵がティラノちゃんらの場合ティラノスクリプト関係の話です。

自分のメモ用

キャラクターを動かす方法って把握してるだけで4種類ある。
※[anim]や[kanim]の平行移動を除く。
1)立ち絵パーツ分けで
 1-A)GIF動画パーツを用いる
 1-B)apng動画パーツを用いる(V5から)
2)えもふりプラグインを使う
3)Live2Dプラグインを使う

それぞれ長所短所あり、使用目的に合わせて使い分ければいいと思う。

さて、今回は5つ目
1-C)目パチ・口パクプラグインを用いる
(violet_ncnc様制作)

の話。
時系列的にはえもふり/Live2Dより前世代なんだけども。
特徴・長所・短所のそれぞれの感想と、使い方を紹介したい。

特徴

png画像のみでアニメーションができる。
・動画再生時間、動画内でアニメーション編集ができる。
・CSSを用いた疑似的なアニメーション。
・V4世代のプラグイン。

実際使ってみた例

仕組みとしては、CSSを用いて横長の画像を幅に合わせてマスクを作成して、指定した番号を瞬時に呼び出してパラパラ漫画の要領でアニメーションに見せかけるというもの。
だと思う。たぶんね。

長所・短所

■長所
・GIF/apngの動画を作成する必要がない
・細かい変更で、動画の再書き出しが必要ない
pngのみで作成可能(jpg未検証)

■短所
v471fで更新が止まっている。V5で対応できていないところがある。
・立ち絵パーツ分けの知識が必要
・説明文が(そこそこ)難解

主に、GIFアニメやapngアニメ作るのが面倒、っていうときに便利かも。
理解と仲良しになれば、かなり使い勝手がいいプラグインです。


使い方

DL場所

手順通りにDLできます。
一番上がver2.2ですが、readmeはver.2.0にのみ入っています。
機能のみ使いたい場合は2.2だけで機能します。
以下はreadmeを手元に用意しながらご覧ください。


V5適用のために

CSSとかよくわからんので、力業解決です。
readmeの手順通り、data/others/pluginにframeanimationを丸ごと入れ、data/scenario/first.ksに
[plugin name="frameanimation" blank_image="data/image/blank.png"]
を記入することで使用できるようになります。
ただ、それはV4の話でV5で使用する場合工夫が必要です。

V5からというか、最近の立ち絵パーツ分けは方法が変わりました。
V4(チュートリアルにある)方法では

画像5

緑枠の様に、組み換えパーツの大きさを合わせて、パーツ自体の切り出しが主流でした。(えもふりとかこの方法)
そのため、パーツがキャラクター画像のどこの位置に配置するかパーツ左上部分のxy座標を指定する必要がありました。
現在では、キャラクター全体画像そのもののサイズで書き出し(赤枠)をして、全てのパーツが(x,y)=(0,0)になるようになっています。
主流というだけで、以前の組み方自体はできます。
ただ、ティラノスタジオProのキャラ差分メイカーは後者で作成されます。
(えもふりはメッシュ変形だから必要だけど、置換方法は必要ないもんね)

それに合わせて、V4の頃と違う点があるので色々事前準備をします。

透明画像用意

立ち絵差分は何もない状態"none"が必要です。使わない場合、[chara_hide]から[chara_delete]で再定義します。
面倒なのでnone使おうね。

この時、Proの自動作成ではキャラクターのサイズに合わせて謎のnoneを参照して使用しています。よくわかりません。

このプラグインでは透明なpng画像を参照するを前提に作成されているので、そのように自動作成の文を書き換えます。

1)data/imageに 「blank.png」(透明画像・サイズ自由)を入れる

これがないと、[fa_chara_show]タグを使ったときに

画像3

を吐いた後、

画像1

何も画像が入っていない指定枠がでてしまう。
2)自動作成されたstorage="none"をstorage="none.png"に書き換える。

画像5

これで事前準備は終わりです。

readmeの補足

私が理解に時間がかかったので、私が解釈したもののメモです。

====
使用するまでの大きな流れ
1)プラグインを導入する

2)静止用画像と、動画用画像をそれぞれ[chara_layer]で定義する。

3)動画用画像のアニメーションを定義する。

4)アニメーションさせたい箇所で[fa_chara_show]と[fa_chara_part]を使用。

====

1)は省いて2から。

2)静止用画像と、動画用画像

ここでは、キャラクターサイズをティラノ推奨サイズの400*600pxとする。

静止用画像…通常パーツ差分画像。png。サイズは400*600。
動画用画像…アニメーションさせたいコマが横並びに結合された横長の画像。png。サイズは(400*コマの数)*600。

画像6

上の画像の場合、アニメーションは3コマ分。なので1200*600px。
左から順に123…と番号を振り分けられるので、アニメーションの順に左から並べておくとわかりやすいかもしれない。

さっきの目パチくりの実際の動画用画像はこれ

画像7

5コマなので、2000*600pxの画像。


[chara_layer]で定義。それぞれ

;静止用画像
[chara_layer  name="アリス"  part="目"  id="am_nor_eye2"  storage="_chara/アリス/目/am_nor_eye2.png"  zindex="4"  ]
;動画用画像
[chara_layer  name="アリス"  part="目"  id="am_nor_eye99"  storage="_chara/アリス/目/am_nor_eye99.png"  zindex="4"  ]

…と、storageのアドレス先を変えるだけ。
(am_nor_eye2.pngが400*600px、am_nor_eye99.pngが2000*600px画像)

3)動画用画像のアニメーションを定義する。

このアニメーション定義の記述箇所は、実際に動かす以前の部分ならどこでもいいらしいです。
私はcharacter.ks作ってその中で一気に済ませたけど。

アニメーション定義は[frame]に似ている。["n%",m]で定義していく。

[iscript]
tf.eye = [
   ["0%", 1],
   ["20%", 5],
   ["24.5%", 4],
   ["25%", 3],
   ["26.5%", 2],
   ["27%", 1],
   ["80%", 5],
   ["82.5%", 4],
   ["83%", 3],
   ["84.5%", 2],
   ["85%", 1],
   ["90%", 5],
   ["92.5%", 4],
   ["93%", 3],
   ["94.5%", 2],
   ["95%", 1],
   ["100%", 1]
]
[endscript]

これは、目が1パチのあとしばらく置いて2パチするアニメ。
n%は、アニメーション全体の0%~100%の時間を表している。
2秒の動画だったら50%は1秒の時点。100%から0%に戻る時インターバルがないので、ほぼ100%=0%の扱い。
mは先ほどの動画用画像の左から数えてm番目の画像を表している。
一番左が1。0ではないので注意。
ここではtf.eyeという変数に配列で数値を入れている。次で使う

この定義をエンティティした定義を定義。

;目のアニメーション設定
[fa_animation anime="&tf.eye" w="400" name="アリス" part="目" s="6" id="am_nor_eye99"]

[fa_animation]で設定。

属性説明
anime ["n%",m](上の奴)で設定した変数を入れる。
w   動画用画像の1コマ分の幅。
name  [chara_new][chara_layer]で定義したname。日本語でもいいよ。
part  同上。
s   アニメーション自体の全体の長さ。秒。何も記述しない場合4秒。
id   nameと同上。動画用画像の定義したid。

ちなみに、ここで別の動画用画像を参照先にすると、定義したアニメーションをその動画用画像を用いて行うことができる。

;口のアニメーション設定
[fa_animation anime="&tf.kut" w="400" name="アリス" part="口" s="0.6" id="am_nor_kut99"]
[fa_animation anime="&tf.kut" w="400" name="アリス" part="口" s="0.6" id="am_sad_kut99"]

使っている["n%",m]は同じだが、嬉し口と不満口のアニメが作れる。
これで[fa_chara_part]で、nameとpart=idでアニメーションを呼び出すことができるようになる。

これ、仕組みは動画用画像をwの幅で区切ってマスクを作って番号を振り分けて、指定%の位置でマスクを瞬時に左右に移動させてるんだと思います。たぶんね。

4)アニメーションさせたい箇所で[fa_chara_show]と[fa_chara_part]を使用。

1)[chara_show]と[chara_part]の記述をする
2)そのタグを[fa_chara_show]と[fa_chara_part]に書き換えればOK
[fa_chara_part] は指定するパーツを動画用画像のidにすればOK.

;動かさないパーツ一覧
[fa_chara_part  name="アリス"  おさげ="osg_c"  身体="body_c"  後髪="bhair_c"  前髪="fhair" 頭="face"]
;動かすけどまだ動かさないパーツ
[fa_chara_part  name="アリス"  口="kut_1"  眉="mayu_1"]
;表示と同時に動かすパーツ
[fa_chara_part  name="アリス"  目="am_nor_eye99"]
;キャラクターの表示
[fa_chara_show name="アリス" layer="1" top="&720-600" time="500"]

スタジオProの自動生成を使うのなら、

画像8

②の自動生成部分を表示させる部位に貼り付け。
[chara_part~]部分を[fa_chara_part~]に書き換えるだけでOK。

Tips

裏技というか楽する方法というか。

キャラパーツは[chara_part]で透明画像のidを選択させることで、消えたように見せることができます。
この時、[chara_part]で表示させたものは[chara_part]でしか消せず
[fa_chara_part]で表示させたものは[fa_chara_part]でしか消せません
また、重ね順は表示した順です。(同zindex内の場合)
なので、同idの重ね掛けができます
つまり

画像9

顔の影+照れみたいな、表示ができます。
これでid増やさなくていいね!

アニメーションの止め方

ここまで理解できた方はすでにお察しだと思いますが、
同idの静止画を[fa_chara_part]で上書きすれば止まります。
再び動かしたい場合は[fa_chara_part]で動画用画像で上書きしてください。

;目のアニメーション開始
[fa_chara_part  name="アリス"  目="am_nor_eye99"]
・
・・
・・・
;目の静止画で瞬き止める
[fa_chara_part  name="アリス"  目="am_nor_eye2"]

[fa_chara_part]を[chara_part]で止められたこともありましたが、よくわかんないです。

おススメマクロの巻

わかってる人は飛ばしていい項目。
このプラグインは主に目パチと口パクに使用するもの。
特に口パクはセリフ開始でタグを入れ、終わりにタグを入れる必要がある。
正直めんどい。

そこでマクロ。特に静止用のマクロ。

;通常口ぱくぱく
[macro name="anim_norkut"]
[fa_chara_part  name="アリス"  口="am_nor_kut99"]
[endmacro]
;通常口ぱくぱく止めP
[macro name="p_nor"]
[fa_chara_part  name="アリス"  口="am_nor_kut0"]
[p]
[endmacro]
;通常口ぱくぱく止めl
[macro name="l_nor"]
[fa_chara_part  name="アリス"  口="am_nor_kut0"]
[l]
[endmacro]

注目してもらいたいのが、マクロ名が[p_nor],[l_nor]になっていること。
(norはnormalの略)

文章で止める役割のタグの[p]や[l]をそのマクロ名で置き換えれば、文だけでなく口パクも止まる。
他に、静止画ごとに[p_sad]や[p_ang]などのマクロを作れば管理しやすい。

あとは全消し系。

;全消し
[macro name="all_D"]
[chara_part  name="アリス"  頭="none"  肌="none"  口="none"  目="none"  眉="none"  前髪="none"  後髪="none"  身体="none"  おさげ="none"  漫符="none"  master="none"  ]
[fa_chara_part  name="アリス"  頭="none"  肌="none"  口="none"  目="none"  眉="none"  前髪="none"  後髪="none"  身体="none"  おさげ="none"  漫符="none"  master="none"]
[endmacro]

全部noneに置き換えてしまえっていう力業マクロ
ただ、これを使って全部の素材を置き換えるっていう場合はよくない。
一瞬途切れて入れ替わる。滑らかに全体を変えたいなら、Proの自動生成はやっぱり便利。


不具合

自力解決しなかったもの一覧

[chara_part]で定義したidが「肌」や「漫符」など難しい漢字の場合[fa_chara_part]が機能しない。(エラーを吐く)
そのため[chara_part]を併用して使用。


画像2

マツコ

発生原因不明。[chara_part]を自力で入力してたら化けた。
Proの自動生成で貼り直したら直った。
キャラの画像が画面サイズと同等に引き上げられてるので、最悪[chara_show]系でwidthとheightを画像サイズと同等に記述しなおせば直る。
ただの記述ミスな気がする。

手前の画像が消えない
[chara_part]を[fa_chara_part]に変えたら直った。


おまけ

目パチ口パクで参考にしたサイト

リップシンクっぽく見せる(5:00より)

目パチ参照


そんなこんなで、このプラグインを使わせていただいたゲーム
「バッジ獲得RTA」はノベコレに申請しました。

・・・BOOTHにて無料公開中です!
遊んでね!



この記事が気に入ったらサポートをしてみませんか?