回転について[Rotation]

目次

ロール、ピッチ、ヨー

  • ロール(Roll)、ピッチ(Pitch)、ヨー(Yaw)とは、物体の3次元における姿勢を表すのに使用される回転の種類であり、航空機や船舶などの操縦に用いられることが多い。
  • Unreal Engineでもこの用語を使用する。
  • 画像の箱を回転させる。矢印はそれぞれX軸、Y軸、Z軸の方向を表す。
ロール
Roll
X軸を中心に回転する動作
ピッチ
Pitch
Y軸を中心に回転する動作
ヨー
Yaw
Z軸を中心に回転する動作
  • 軸に対して時計回り方向がプラス。

実際に回転させる

  • 現在の回転情報を取得するためにGet Actor Rotationを使用する。
  • Get Actor Rotationの出力ピンを分解して現在のXの値に+1する。
  • X,Zは現在の値をそのまま設定して動かないようにする。
  • Make Rotatorで回転情報を作成してSet Actor Rotationで設定。これをTickで回す。
  • Roll回転でプラス方向に動いている。
  • 出力値は0~180,-180~0となっている。
  • Yaw回転でプラス方向への動き。
  • 出力値は0~180,-180~0となっている。
  • Pitch回転でプラス方向への動き。
  • 90度回転したところで止まってしまう。X,Zの出力値も何かおかしい。
  • どうやらジンバルロックという現象を防ぐための仕様らしい。
  • ジンバルロックとは3軸のうち2軸が同一平面状に揃ってしまい、自由に動ける回転軸が2つになってしまうこと。
  • この状態になってしまうのがPitch回転の90度ということなのか。
Combine Rotators2つの回転を組み合わせて最初にAを、次にBを適用して結果の回転を取得する
  • ということで90度を超えて回転するために使用するノード「Combine Rotators」が紹介されていたので使用する。
  • 取得した回転にPitchを+1した回転を足す。
  • 「Combine Rotators」に接続する。
  • 回転はしているもののなにやらすごいことになった。
  • プラスする分だけ入力するように変更。
  • 90度以上回転するようになった。
  • X,Zの出力値が若干気になる。

キャラクターのカメラ制御

  • キャラクターのカメラの制御にも回転が使われているのでどうなっているのか見てみる。
  • 入力値をAdd Controller Yaw InputとAdd Controller Pitch Inputにしている。
  • 左右はZ軸を中心として回転させるのでYaw、上下はY軸を中心に回転させるのでPitch。
  • ここで上下の入力値でRollさせるとどうなるのか試してみる。
  • 画像のようにRoll回転させるイメージ。
  • Add Controller Pitch Inputへの接続をAdd Controller Roll Inputに切り替える。
  • 上下の入力でカメラがX軸を中心に回転するようになった。見にくいです。

コメント

コメントする

目次