読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

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

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

GetActorBoundsでアクターの大きさを調べる・その2

※6/14追記
妹にこれだと大きさじゃなくて半分の大きさを調べてるのでは? と言われて確認したらやっぱり半分だったので、そういう感じに訂正しました。


妹「バウンディングボックスというのを調べればいい、調べられるということはわかったけど、結局大きさはどこを見ればいいの? GetActorBoundsって2つ黄色いピンが出てるんだけど」

「出力品のパラメータはどっちもVector型だけど、Originの方はバウンディングボックスの中心点で、BoxExtentの方はそこからのサイズ、つまり大きさの半分になる。サイズを調べたい場合はこの大きさの方のVectorの、XYZの数字をそのまま使えばいい」

f:id:una_unagi:20160612222932p:plain
f:id:una_unagi:20160612222942p:plain

「昨日作ったプロジェクトに、さらに弾が当たったらそいつの大きさを画面に表示する機能をつけた。その弾を、大きさがピッタリ200の立方体に当てると、BoxExtentには……だいたい100という数字が入る」

妹「なんでそこでピッタリ100になってないの? 回転してるとか?」

「回転はしてないはずなんだけど、なんでだろう……小数の誤差なのか、3Dデータを読み込んだ段階の誤差なのか。とりあえずある程度のズレが出るから、小数点以下は切り捨てるとかした方が良さそう」

妹「なんともスッキリしない」

「もうひとつ不思議なことに、ピッタリ1の大きさを立方体をスケール100倍で表示すると、バウンディングボックスとの間に目に見えてわかるレベルのズレが出て、バウンディングボックスの方が1周り大きくなる。そういうことも考えると何かで小数の誤差が出てるっぽいんだけど、とりあえず大きさはスケール1倍の状態で調べるのがいいと思う」