制御モード
キャラクターのまばたきを制御するときのイメージはこんな感じです。
https://scrapbox.io/files/687182b16b8d852f49672ea5.webp
制御モードで制御するのは、画像の中央の数値、または左右に動く三角形の位置を決める方法です。
制御モードで値を制御する方法を選択し、用意されたほかのパラメータで実際に値を制御する、といえば良いでしょう。
制御モードには現時点で6つのモードがあります:
1. 「2数の和」
2. 「2数の積」
3. 「sin」
4. 「口パク」
5. 「周期的往復」
6. 「周期的ループ」
選択されるモードによって、使用するパラメータの組み合わせが変化します。
あらかじめ言っておきますが、制御モードによって直接制御される「出力」(単位:%)は最終的な値ではありません。
「範囲外の値」で、0 ~ 100% の範囲をはみ出した「出力」を 0 ~ 100% に収めます。 STPでは、アニメーションに必要な差分(代表画像と連番画像)を 0 ~ 100% の範囲でのみ制御していますから。 現バージョン(v1.1.0.0)ではすべてのモードにおいて「セラール」と「アブリール」の2パラメータが使われています。
次回では名前を変更しますが、要するに全てのモードでこの2つの値を使いまわしている、ということです。
1.「2数の和」
2つの値の和 ( + ) で制御する、という意味です。
このモードで使われるパラメータは以下の2つです。
「セラール」... 小学校の算数で言う「足される数」です。
「アブリール」... 小学校の算数で言う「足す数」です。
この2つの値を足し合わせた結果を出力とします。
下の画像の場合、出力は 75% です。
https://scrapbox.io/files/6887b4814b841a887f682944.png
2.「2数の積」
2つの値の積 ( × ) で制御する、という意味です。
このモードで使われるパラメータは以下の2つです。
「セラール」... 小学校の算数で言う「掛けられる数」です。
「アブリール」... 小学校の算数で言う「掛ける数」です。
この2つの値を掛け合わせた結果を出力とします。
下の画像の場合、出力は 25% です。
https://scrapbox.io/files/6887b6c324b97efec929368f.png
3.「sin」
🐒 < 正 弦 関 数 っ て 、 知 っ て る ?
著者の名前(sinβ)の名前の由来でもある sin 関数(正弦関数とも言います)を使って出力を制御します。
正弦関数がわからない方は、おとなしくほかのモードを使ってください。(辛辣)
このモードで使われるパラメータは以下の2つです:
「セラール」... 正弦波の振幅、というより最大値のほうがいいです。
「アブリール」... 正弦関数の位相です(sin(x)の x )。100% で 2π / 360° です。
図を見ればわかりますが、三角関数なので負の出力が発生します。適切な「範囲外の値」を選んでください。 https://scrapbox.io/files/6887ba8781dd631fd0bca28b.png
下の画像の場合、アブリールが 8.3% -> π/6(30°)なので、
50% * sin(π/6) = 25% です。
https://scrapbox.io/files/6887bc586449811c2b7901ba.png
・・・これ使ってるユーザーたちって、何にどうやってこれ使ってるんだ…?
4.「口パク」
キャラクターが読み上げるセリフに併せて口パクするためのモードです。
ボイスの音量の変化によって制御しています。
このモードで使われるパラメータは以下の3つです:
「セラール」... ボイスの音量が 0% のときの出力です。
「アブリール」... ボイスの音量が 100% のときの出力です。
「セリフない時」… セリフを読み上げていない(セリフアイテムが再生位置にない)ときの出力です。
https://scrapbox.io/files/6887c06fbca154d93126c8d9.png
上の画像のようにアブリールを 100% にしても、キャラクターにセリフを読み上げさせるときに口が少ししか開かない場合があります。原因は、そもそもボイスが最大の音量を出していないことです。そんな時はアブリールを 100% 以上の値にすると解決します。
著者はゆっくり霊夢の声に「AquesTalk1 / 女性1」を使っており、アブリールは 400% にしています。
https://scrapbox.io/files/6887c05b75774fc15ee76150.png
また、「範囲外の値」は「指定なし」にするのが普通です。 5.「周期的往復」
定期的にセラールとアブリールの値を往復するモードです。
まばたきを実現するなら、このモードがちょうどいいです。
このモードで使われるパラメータは以下の5つです:
「セラール」… 往復時の端となるの値です。
「アブリール」… 往復が発生していない間の値です。
「開始」… 最初の遷移が発生するまでの時間です。
「間隔」… 遷移が終わって次の遷移が来るまでの時間です。
「遷移」… アブリール -> セラール -> アブリール の変化にかける時間です。
言葉ではイメージしづらいと思うので、アニメーション画像も用意しました。
https://scrapbox.io/files/6887c511571ad0da552727a8.png
https://scrapbox.io/files/688248e78eba960d8cb7bd91.webp
この動きを定期的に行ってくれるモードってことです。はい。
6.「周期的ループ」
定期的にセラールとアブリールの間をループするモードです。
「往復」との違いがわからない人のために、ここにもアニメーション画像を用意しました。
このモードで使われるパラメータは以下の5つです:
「セラール」… ループ時の端となるの値です。
「アブリール」… ループが発生していない間の値です。
「開始」… 最初の遷移が発生するまでの時間です。
「間隔」… 遷移が終わって次の遷移が来るまでの時間です。
「遷移」… アブリール -> セラール -> アブリール の変化にかける時間です。
パラメータの組み合わせは「周期的往復」と同じですが、動きは違います。
https://scrapbox.io/files/6887c67931d4a10991495b1f.png
https://scrapbox.io/files/688253cdfc5a132153bb1a19.webp
また、実際の差分の動きが思っていたのと違う、と感じたときは、「範囲外の値」を「ループ」に変更すると、もしかしたら解決するかもしれません。 往復との違いは、「遷移中に2回以上同じ出力にならない」という点です。
試しにまばたきをループで行うとこうなります。
https://scrapbox.io/files/6887c7e9b4dc2848818542b9.webp
伝われ…(届かぬ想い)
モードはこれで以上です。次のアプデで大きく変化する可能性が高いですが、今までできた動きができなくなることはありませんので、ご安心を。