UE4で箱を回転させる
フリーになってから初の更新です。
今回はこんな感じにきれいに箱を転がしました。
できたあああああ!!!#UE4Study pic.twitter.com/tn06WGgNam
— 故・白鳥隆士@お仕事募集中 (@shiratori1221) 2017年7月2日
とはいっても数学をあまりきちんと理解できてない人間なので、こちらのブログのスクリプトを参考にさせてもらい作りました。
Input関数
Input関数はこんな感じです。基本的には二次元的な入力しかないので縦横方向への入力をもらって、回転させたい角度を作り、回転中フラグや入力値、初期位置、初期回転を設定しています。
また、入力を受け取った際に回転中かどうかを確認しているisRotationはこんな感じ。
入力がきちんとあって、なおかつ回転中でなければ転がり始めます。
RotationCubeイベント
Input関数で初期設定後に走らせるイベントです。
タイムラインで線形補間用のアルファ値を作って回転と移動をUpdateRotation関数の中で行っています。
今回は0.5秒間に0から1へと変わるように設定しています。
UpdateRotation関数
今回やりたいことのメインとなる部分の処理になります。
細かい説明はできないので省きます。いい感じにX、Y、Z軸方向への移動と回転を行ってます。
移動距離を算出する関数はこれらです。
GetDistanceXとYはVerticalかHorizontalの変数以外は同じ処理を行っているので外部からわたしてやるともっとスッキリすると思います。
sinとかcosとかはこちらになります。
最後に終了処理
もうちょっときちんと数学を勉強しようと思いました。