UE4でVR空間にカノジョを錬金する Advent Calendar 2017 21日目の記事です。
12/1~25日までに一人で、UE4を用いてサ○○レッスンとかVR○○ジョっぽいゲームを作って仮想彼女を生み出すことにチャレンジします。
本日は吸う処理の回転値を求める計算式を書きます。
#回転値を求める計算式
まずフルートさんの記事スクリプトで呼吸させる - 第2回 | Unity3Dに書いてある記事を引用します。
人間の吸気時の吸気量曲線はsinカーブに似ているらしいので、吸う時のイージングはEaseOutSine曲線を、吐く時はEaseInOutQuad曲線を採用。
なるほど、sinカーブに似ていることなのでsinノードを使って計算していきましょう。
元のスクリプトを見ながら四苦八苦した結果、最終的に以下の計算式に落ちついたため、これをメソッドとして切り離しました。
[各ボーンの吸入最大回転値] * EffectRate * Sin((GetAudioTimeSecounds - StartTime)/(inhale*durationRate))
胸、首、頭も同様の処理を挟みます。
これで吸入時のアニメーションが出来たと思います。
#次回
次は吐く時の処理を記述していきます。