妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

3Dウィジェットをビルボード化する

f:id:una_unagi:20171011211735p:plain

「昨日の表示でもいいんだけど、もっとビルボードっぽい表示も試してみることにした」

妹「これもカメラの方を向いてるんじゃないの?」

「カメラの方を向いてるといえば向いてるんだけど、カメラ自体を向くと昨日みたいに、横にあるやつは斜めに見える。そうでなく、カメラの画面に対して垂直な角度になっててほしい」

f:id:una_unagi:20171011212640p:plain

「で、カメラの向きとかを数学的に計算しないと駄目かとかちょっと考えたんだけど、カメラと逆の向きにするだけでOKだということに気付いた。どうやって回転させるかという問題はあるんだけど」

f:id:una_unagi:20171011213309p:plain

historia.co.jp

「角度関係はだいたいこの記事にのってるので、この中から適当に探してきて回転させる。そして昨日と同じでZだけつなげる。普通はXとYは0で固定で、別に元の数値をGETする必要ない気がするけど」

妹「全部つなぐと前後の傾きもつくの?」

「いやこのやり方だと前後のことを考慮せずに回転させてるから、つないじゃうと妙な感じになる」

f:id:una_unagi:20171011224721p:plain

「良い回転方法がわからなかったんで、いったんベクトルに変換してから回転させてる。Rotatorのままだと計算がわかりにくいけど、ベクトルなら-1を掛ければ逆向きになるから。もっと速い方法ありそうだけど。それとカメラのひねりは考慮してないから、ひねられると角度がずれちゃうはず」

f:id:una_unagi:20171011224746p:plain

「あとは、この方法だとビルボードの角度は全部同じになるから、アクターやウィジェットごとに計算する必要は全くなくて、どこか一箇所で全部済ませた方が効率よさそう」