関連する動画チュートリアル
Blueprint Essentials – 7 – Blueprint Execution Order
この回の動画チュートリアルでは、キャラクターの向きを変えるとその方向名 (北、北東、東、南東、南、南西、西、北西) が表示されるブループリントを作っています。その際、下図のように 22.5 度を本来の回転 (角度) に足して本来の角度をずらしています (オフセットしています)。これはなぜでしょうか?
関連する動画チュートリアル
Blueprint Essentials – 7 – Blueprint Execution Order
この回の動画チュートリアルでは、キャラクターの向きを変えるとその方向名 (北、北東、東、南東、南、南西、西、北西) が表示されるブループリントを作っています。その際、下図のように 22.5 度を本来の回転 (角度) に足して本来の角度をずらしています (オフセットしています)。これはなぜでしょうか?
仮にオフセットしなかった場合を考えてみましょう。チュートリアルでは 45°ずつに分けてキャラクターが向いている角度に名前を付けています。 (キャラクターの向かっている角度を 45° で割り算してその商の整数部分に対して方向名を付けています)。具体的には次のようになるはずです。 (なお、N=北、NE=北東、以下同様です)。
たとえば、キャラクターが向かっている方向が 0° から 45° の範囲にある場合は、北になります。しかし、これは不自然です。なぜなら、たとえば 30°を向いている時は北なのに、359°を向いている時は北西になってしまうからです。普通は 0° を中心にしてその前後に同じ幅をもたせて北とするはずです。その時の「幅」が 22.5°になります。図にすると次のようになります。
上図では、グレイの線がたとえば北や南東の軸。グレイの軸を中心にした青の線で囲まれた部分が北や南東のゾーンです。チュートリアルでは、このゾーンを判定するグラフを組んでいることになります。
蛇足ながら、22.5°の計算過程をもう少し詳しく示すと、 360°÷8ゾーン = 45° 、つまり、1 ゾーン 45° であり、その 45° を 2 分割した 22.5 ° を軸の前後に置かれるようにしています。
なお、Rotation の Z は、地面と平行な平面上を回転する角度です。今回、必要になるのはこの Z の Rotation だけです。また、Combine Rotator の Combine とは「結びつける」という意味で、Combine Rotator は、Rotation (角度) を結びつける、つまり、足し合わせるための関数です。チュートリアルでは、入力ピン A には元になる Rotation (言い換えると、キャラクターが向かっている実際の Rotation の Z の値) を入れており、入力ピン B には、Z だけ加算されるように 22.5 が入っています。
さらに、チュートリアルのグラフに沿って、359° を例にとって考えてみます。
このように、22.5° を加えることによって、359° はもう北西ではなくなり、望みどおり北になりました。まとめると、キャラクターの向かっている方向に 22.5°を足すことによって、各方向の中心軸の前後 22.5° にゾーンができるようにしている、ということになります。
なお、この問題は、下記のフォーラムでも問題になっています。
関連するサイト