Unity研究所<Unityによるゲーム開発、映像開発>

Unity初心者おやじが綴るゲームで小遣い稼ぎできるようになるまでのブログ

Unity 小ネタ Physics オブジェクトがぶつかり合ってもバウンドしない場合の対応

例のごとく?! パチンコのアプリを開発している(多分(~_~;))

 

この手のアプリは、物理演算任せなので、大してコードを書かないのが楽で、いつか量産したいと考えている

が、いまだベースの機能の仕様すらまともに確定できていないのである

(~_~;)

原因というか、問題点は、Unityの物理演算の仕様が、所詮はゲームに使用する想定なので、大してリアルな表現ができるわけではない点である(Unityのせいではなく、採用しているシステムの問題?!)

 

 

ということで・・

今回は、全体的に実寸サイズを基準に作成してみている

玉・・10.5mm、5.5g

これをベースとして、他のオブジェクトを構成

 

そのおかげか、Gravityはデフォルトの-9.81で、玉の動きの見た目は違和感なさそうな感じなのだが、ふと気が付く

 

玉が釘にあたっても、バウンドしない・・・

 

 

Physic Materialは下記の通りBouncinessはMAXの1にしており、釘のほうも同じ設定にしている

 

Gravityの数値を強くすると、バスんどするようにはなるのだが、それでは今回の実験の実物サイズで制作している意味がない

 

ちなみに、今までは実物の10倍ぐらいの大きさで作成していたので、Gravityも合わせて10倍ぐらいにしていた

そうでないと、とても鉄の玉の落下には見えないので・・

 

 

いろいろネットで調査すること数時間・・・

 

Bounce Threshold 

Unity マニュアルより

速度の値を設定します。 2つの衝突するオブジェクトの相対速度がこの値より小さい場合、オブジェクトは互いに跳ね返りません。この値はジッタも減少させるため、非常に低い値に設定することは推奨されません。

 

 

今回は、オブジェクトのサイズが小さいので、動作エネルギーも小さいのか?!、この閾値以下となってしまうのではと気づいた

 

Edit-Project Setting-左のタブのPhysicsをクリック

 

Bounce Thresholdの値はデフォルトが2

この値を下げてみると・・・・ 

 

 

バウンドするようになった!!

 

なお、Unityマニュアルの説明だと、非常に小さい値は推奨していないとのことなので、これまたどこを落としどころにするかは、いろいろ進めてみながらとなりそう(~_~;)

 

今回はこれにて終了