とんち:キャラクターの回転について(注意:物理演算アリの時には通用しません)
どうも、U.G.M.です。
昨日書こうと思ってて忘れていた「キャラクターの回転」についてのtipsです。
ただ、要注意なのですけど、この考え方は「物理演算ゲームでは通用しない」とお考えください。物理演算ゲームで通用しない理由は、読めばわかります。
ところで最初に書いとくと、私の英単語の知識は中学生で止まってます。五十路、大丈夫か?初めて覚えた英単語は「Congratulation」です。ガキの頃に「ドルアーガの塔」ってゲームがあってな……。(以下長いので省略)
それはそれとして「ヨー」って「Yaw」って書くのね。
もとい。
これは最近作「ReverseShooter C103」からの知見なのですけど、クォータニオンに縛られずに(それなりに)自在な回転を制御する方法を考えました。ごましお程度に覚えておくと、いざという時に役立つかもしれません。
まずはピッチ。上下の向きを制御します。昨日解説したObjectCtrlからピッチを制御します。逆に言えば、それ以外の要素ではピッチを動かしません。
次にヨー。左右の向きを制御します。なお、動画内ではわざと自機を中心から外して、大げさに動きが見えるようにしています。
最後にロール。キリモミ回転です。ゲームで使うとしたら、ステージクリア時にぐるぐる回しながら飛び去ってゆくところでしょうかね。
それぞれ上から、X(ピッチ)、Y(ヨー)、Z(ロール)の順番になります。各軸を回転する時にはX、Y、Z軸の回転を「常に同じ順番で」回すようにしてあげてください。
また、これが重要なのですが、角度をいじる際に「n % 360」を取り、0~n~359の範囲で表示してあげます。これによって理屈上ジンバルロックが起こりづらくなります……が、ただしこれは「1回転したところで、その回転をナイナイする」ことと等価なので、物理ゲームとは相性が激悪いです。物理なんちゃらをゲームに盛り込む場合は、そのための構成を新たに考える必要があります。
という感じで、今回は「演出として3Dを行う場合」に使える回転制御について書いてみました。
またね!