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

妹でもわかるUnrealEngine4

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

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

ルートに置いたコンポーネントの大きさ設定は、スポーンする時には無視される

仕様・不具合

「ぷちコン用に丸い弾作ってたんだけど、これSphereの大きさ変えると、そのままレベルに配置すればその大きさになるけど、ブループリントでスポーンしたら元の大きさになっちゃうね」

妹「そうなんだよ……だからわたしの弾はスポーンする時にScale小さくしてるよ」

「多分昨日の話と同じでルートにあるせいだろうね。スポーンの時はScaleパラメータがあるから対応は出来るけど、複数箇所でスポーンする場合とかめんどくさいことになりそう」

妹「うーん、弾の大きさを変数かなんかにしとく?」

「そういうのでもいいんだけど、こうやってルートに球体コリジョンを置いて、球体自体はその子にしてしまう方法がある」

f:id:una_unagi:20150925230149p:plain

妹「でもそれだとスポーンした時にコリジョンごと大きくなって、結局おなじなのでは?」

「拡大・縮小のとこで設定するとそうなるけど、そこは1.0のままにしといて、SphereRadiusで大きさを指定すれば大丈夫。これはコリジョンの元々の大きさを設定できるから。その大きさに大して拡大縮小で指定した倍率がかかる」

妹「そうなのか。だったら普通の球にも大きさ設定パラメータつけといてくれたら良かったのに」

「ああいう形でああいう大きさのスタティックメッシュデータになっちゃってるからね。BSPでスフィアブラシを作って、大きさとか曲面の分割具合とか指定して、別のスタティックメッシュを作ってもいい。標準のスフィアはポリゴン細か過ぎるから、小さく表示する球なら作りなおした方が軽量化出来る」

f:id:una_unagi:20150925235017p:plain

「たとえばこんな感じ。標準のSphereメッシュは960ポリゴンだけど、この分割数だと128ポリゴンになる。小さい弾ならもっと少なくていい」

妹「ポリゴンを減らすとどうなるの?」

「拡大した時にカクカクして見える。昔のゲーム機みたいな感じで。ただ少ないほうが高速になる。弾の数が多かったり、スマホで動かそうと思うとそのへんが気になってくる。それとコリジョンに関してもSphereメッシュ付属の物より、SphereCollisionコンポーネントとして作った方が計算速そう」

妹「わたしが作ってるゲームはとりあえず弾は1個しかないからそのままでもいいのかな」

「1個だったら気にしなくてもいいじゃないかな」