妹、180度にしてるはずのに-179.9999度になってる
妹「小数はずれるけど、でも整数を代入した時はずれないんだよね?」
「そのはずだけど」
妹「でも左右反転しようと思って180度に設定すると、こんな事になるんだけど……」
妹「ずれてるというか、マイナスになってるというか」
「なんでだろう?」
妹「なんかマイナス-180度ってすると、プラスの179.999になっちゃうし、180というのが特殊なのかなあとか思ったんだけど」
「あーそういう事か。そうだね、小数じゃなくてそっちのずれだね。角度が-179.999…から179.999…の間に収まる様に、自動調節されてる。アンサーハブに英語の情報があった」
Rotation negative after 180 degrees - UE4 AnswerHub
妹「180度だとなんかまずいの?」
「-179.999…から180の間になるように計算すればいいと思うんだけど、なんでだろうね? とりあえずはそういう仕様と思うしか」
妹「でもそうすると向きによって分岐させたいときに、マイナスかプラスかわからないと困る」
「0の時はずれないから、0以外だったら逆向いてると判断したらいいのでは。もしくはABS使うとか」
妹「それはそうなんだろうけど、なんか釈然としないというか、これ3Dゲームだったら困るんじゃない? 同じような角度なのに数字が全く逆ってなったら」
「そりゃそうなんだけど、全部プラスの数にしたとしても0度と359.9999度とか、どこかに継ぎ目みたいなのが出来るからね。必要な場合は170度から190度の範囲内だったらtrueを返すみたいな関数を作ったらいいんじゃないかな。範囲が180か-180を超えてる時はそれに合わせて書き換えて。そうすれば毎回やらなくても良くなる」
妹「うーん、でもやっぱりズレが気になる。逆に最初から179.999999って入れたら……やっぱ駄目か」