217立ち絵アニメ編g:ボディランゲージで感情を表わそう【美しょゲを作ろう】
バンドリのライブチケットを買いました、恒石涼平です。そしてシンフォギアのキャラソンボックスが届きました、アニソン好きすぎないか自分。
さて、ゲームが楽しくて先週は更新してませんでした美少女ゲーム制作日誌、 #美しょゲを作ろう 。前回の続きをやっていきましょう。
立ち絵アニメーション制作で次に行うのは「ボディランゲージ」という体で表わす言葉。これまで作ってきたものより大きな動作を作っていくよ!
《ボディランゲージって何やねん》
まずは「ボディランゲージ」という言葉を定義しておきます。辞書で調べると……
こんな意味でした。要約すると「声や表情じゃなくて、動作で思いや感情を伝えること」だね。
例えばサムズアップ(手の親指だけ上げるやつ)とか、手を横に振るだけで挨拶の代わりになったりとか。そういった動作のことをボディランゲージと呼びます。
んで今回作るボディランゲージが……
こちらの6種類です。「顔上げ」「顔俯き(うつむき)」「もじもじ」「小ジャンプ」「空元気」「あたふた」となっております。
とりあえず今日は「顔上げ」と「顔俯き」を作っていきましょう!
《ポジティブとネガティブを表わせ!》
ボディランゲージかと言われればちょっと微妙なラインかもしれないけれど、顔が上がっている・俯いていることでも感情は表わすことが出来ます。
なので自分がやりたいのは「悲しい台詞を言う時は俯きで、楽しい台詞を言う時は顔を上げる」という動作の演出。しかしここで一つ確認しておくべきことが出来ました。
「顔を上げる・俯かせるアニメーションの後、他の動作をさせても継続されるかどうか」をティラノスクリプト上で試しておくこと。
これが出来るかどうかで用意すべきものが変わってくるので、まずは「顔を上げる」「顔を俯かせる」アニメーションを制作してから実験してみようと思います。
◆顔を俯かせるアニメーション
流れ的には顔を上げるやつを作る感じですが、そもそも顔を上げている状態って何もパラメータを弄ってない時なんですよね。なので先に俯かせるやつを作ってみます。
というわけで早速Live2Dの画面に移動だ!
1から作ると大変なので最初に作った「待機モーション」を複製して、頭と体を前後へ倒すパラメータを弄るんですけど……
なんかもうパラメータが弄ってあるな……?
このままだと体を倒しても他のアニメーションを再生する時に通常位置へと戻されてしまいます。なので先に待機モーションと仕草モーションから「頭を前後に倒すモーション(Head Angle Y)」と「体を前後に倒すモーション(Body Angle Y)」に打ってる数値を消しておこう。
……はい、消しました。仕草モーションはまた少しだけ動きが変わってしまうのでまた調整しときます。
準備が出来たのでまずは「俯いた状態」を作ってみましょう!
これを……こうして……
こうじゃ!
頭も体も不自然にならない程度に俯かせてみました。パラメータ的にはもっと俯けるんだけども、余地は残しておきたいのでこんな感じに。
これで俯き状態は出来たので、お次は通常状態から俯きへと変化する過程を作っていきます。
単純なようで意外に難しいのが「俯かせる速度」。
例えばゆっくりだと……
悪くはないけど、ゆっくりすぎて感情を伝えるという意味合いでは微妙な期がします。でも早すぎると……
ちょっと機械的な感じになっちゃうよね。短いとどうしても直線的な動きになってしまいがちです。
なので程よく、呼吸に合わせた自然な動きを目指して……
こんな感じでどうでっしゃろ。
早すぎず遅すぎずを意識しながら作ってみました。細かい部分なのでまた寝かしてから確認して調節していきます。
そいじゃこの調子で俯き状態から顔を上げるバージョンも作っていこう!
◆顔を上げるアニメーション
さっき作ったアニメーションを複製して、まずは俯き状態の数値を頭へとコピーしてきます。
そして同じように顔を上げるまでの過程を作って……
はい、出来ました。
なお俯かせるやつも顔上げるやつも、頭と体の動作はタイミングを大きくズラして打ち込んでます。ぴったり同じ動きをするとまた機械的になるからね。
ほいじゃこれでアニメーションは完成、書き出してティラノスクリプトで実験してみます!
《ティラノスクリプトで実験》
いつも通りファイルをティラノスクリプトのゲームデータへとぶっ込みます。
モデルファイルにアニメーションの設定を入れるんだけど、今回はこのように書いてみました。
"HeadUpA": [
{"File":"motions/Bod_HeadUpA.motion3.json" ,"FadeInTime":0.5, "FadeOutTime":0.5}
],
"HeadDownA": [
{"File":"motions/Bod_HeadDownA.motion3.json" ,"FadeInTime":0.5, "FadeOutTime":0.5}
],
注目してもらいたいのは「FadeInTime」「FadeOutTime」という所。
ここはモーションを再生した時にパラメータをフェードさせる設定が出来る所だと思われるんだけども、ゲームのように再生タイミングがユーザーによって変わる場合は必須な気がしているんだ。
突然違うモーションに変えた時、瞬間移動する気がするんだ……まあ物は試し、最初はここの数値を0で試してみよう。
長めなのでYoutube動画にしました。クリックタイミングが分かりづらくてすまない。
1回目の俯きモーション後は待機モーションがランダムで流れてる状態なんだけど、どうやら俯き状態継続されてるっぽいね。つまりティラノスクリプトでは「打たれていない(変化しない)パラメータは別のモーションを再生しても変化しない」ということ。
これで懸念が解消されました。特に問題なく俯き・顔上げを運用できそうです。
しかし動画ではクリックするたびに体が瞬間移動してるよね。これがフェードイン・アウトを0にしている状態での問題点です。
じゃあ次は数値を「1」にして試してみよう。今度はクリックタイミングの時だけカーソルを中央に持って来ますね。
……すごいギュンギュン動くね。
これだと流石に違和感があるので、もうちょい伸ばして「3」とかにしてみます。
どうだろう。割と滑らかじゃないだろうか。
最初の手の動きは早く見えるんだけど、本当はもうちょいスムーズに動いてます。ちょっとGIF動画撮るときに重くなった感じなので……
とりあえずフェード時間は「3」を基準にしていこうと思います。
《今日はここまで》
そんなこんなで今回は「顔の俯き」と「顔上げ」のモーションを作り、ゲーム上でどう動くのかを実験してみました。次回は他のボディランゲージも作っていきましょう!
あと今気付いたんだけど……髪だけじゃなくてスカーフやスカートも揺らさないといけないね。なんで前回気付かないんだ……?
それもまた後日やります、忘れていないことを祈ってください。
という所で今日はここまで。また次回お会いしましょう!
↓メンバーシップ募集中です。よければ活動への支援お願いします!!
もしも記事が参考になったら、スキやフォローよろしくね! 気が向いた時はサポートで支援していただけると嬉しいです。