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

妹でもわかるUnrealEngine4

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

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

サイコロを投げる前にRandomRotatorを使うといい感じになる

3Dゲーム ブループリント 演出

f:id:una_unagi:20160402224331p:plain

「理想的なサイコロの転がり方について調整してたけど、やっぱり投げる前のサイコロの向きを調整すると良さそう。どんな投げ方でも偏りは出るけど、それはどの目が出やすいっていうんじゃなく、その時に上になってる目が出やすいとか、その隣が出やすいとかだから、サイコロの向きをランダムにすれば、均等に偏って、出目の確率も均等になる。投げ方もなんでもいい。サイコロを真上からふんわり落としたって、落すサイコロの角度がランダムなら結果もランダムになる」

妹「向きだけじゃなくてサイコロの投げる角度もランダムにしたら、かえっておかしくなったりする?」

「それならないはず。ただ投げる角度とサイコロの角度が連動してたら駄目だけど。例えば右に投げる時は1が上で、左に投げるときは2が上とか、そういう連動をするとランダムにする意味がなくなる。投げる方向のランダムと、向きを決めるランダムと、別々の数字になってれば問題ない」

f:id:una_unagi:20160402224830p:plain

「角度をランダムにするのはどうしようかと思ったけど、RandomRotatorというそのまんまなノードがあったのでこれを使った。注意点としてはスポーンの時じゃなく、スポーンの後に変えた方がいいということ。スポーンのタイミングでやると、それに合わせてProjectileMovementの発射方向も変わってしまうから。発射の向きを変えるとしても、それとは関係なくサイコロの向きをランダムにしないといけない」

f:id:una_unagi:20160402230100p:plain

「残る問題は目が出ないケースが結構あること。これは同時に投げるサイコロの数を増やすと、もっと起きやすくなる」

妹「普通のサイコロはどうしてるのかな? たまにはあるけど、そうそう引っかかることってないような」

「周囲を壁で囲ってない広いスペースで投げる場合は、壁のところでひっかりにくい。ただたまにサイコロが飛び散っちゃうんで、人間がやる分には問題ないけど、3Dのカメラ的に嬉しくない。カメラの範囲内にサイコロがおさまってほしくて今の形になってる。あとは囲いを升じゃなくて、どんぶり型にするとか。そういうやりかたの博打があるけど、サイコロ同士の重なりはあっても、隅に挟まるという可能性は減りそう」

f:id:una_unagi:20160402230719p:plain

「サイコロのコリジョンも、立方体だとよくないのかなって気はしてる。こんなに角ばったサイコロだとそりゃ引っかかりもするだろうと。極端な話、球体なら引っかかることはないわけだから。完全に球体だとサイコロが止まらなくなりそうだけど、それぐらいの勢いで角を削ったコリジョンにすればいけるかも」