きっかけ
Unityで物理シミュレーションができることを知ったので挑戦してみることに。
実験するにあたってUnityの基本的なことにも触れられたし、
やったこと忘れそうなのでメモ残しておくために投稿
環境
Unity 2019.1.10f1 (64-bit)
世話になったサイト
このサイトの説明が超丁寧だったのですごい分かりやすかった
https://ekulabo.com/tutorial-input
手順(概要)
そもそもUnity素人故、段階を分けて試す
- Unityを起動する ※済
- 球の自然落下の物理実験 ※済
- 球の跳ね返りの物理実験 ←イマココ
- 球の斜方投射の物理実験
3. 球の跳ね返りの物理実験
基本的な話だけど地面を作る。
球作るときと同じ要領で
3D Object > plane
地面ができた。これで安心。
ん?めり込んでる。
よく見たら、Sphereの位置情報(position)は(0,0,0)。地面のpositionも(0,0,0)なので
当然こうなるっぽい。
試しにこの状態で「再生」ボタンを押すと、球がふんわりと地面上にせりあがってきた。
なるほど。再生したら物理法則にしたがうのね。
このままだと具合悪いし、そもそも自然落下の実験なので
Sphereのpositionを(0,3,0)にしてやる。
球は宙に浮いた。
調べによるとposion近くの歯車アイコンをクリックしてResetを押すと位置情報が初期化できるようだ。
ちなみに、静止画しか用意していないので見せようがないが
この状態で再生ボタンをおすと、自然落下はするし地面に落ちるが全く跳ねない。
地面と球には跳ね返り係数が設定されていないから。どこまでも物理法則にこだわるなぁ…さすがだ。
そんなわけで地面とたまに跳ね返り係数を与える。
Projectウィンドウ上で右クリック > Create > Physic Material クリック
地面跳ねるようなアイコンが出てきた。名前は「Bounce」としておこう。
Bouncenessが跳ね返り係数になる。
0~1まで設定できる。今回は0.5を設定。
PlaneのMesh Collider > Materialに「Bounce」を設定。
これで跳ね返るぞー!
…と、我慢できず早速再生ボタンを押したら、跳ね返りが妙に弱い。。。
調べたところSphereにも跳ね返り係数を与えた方がよさそうだ。
どうりで卵の衝撃テストのCMみたいな結果になると思った…
そんなわけでSphereにも「Bounce」を付与。
Sphere Collider > Materialに「Bounce」を設定。
再度、再生ボタンをクリック。
むちゃくちゃ跳ね返ることは無かったけど、
ようやく自然な跳ね返りが実現できた。
この記事、gif動画くらいあげられないと全然ピンとこないなぁ…なんかいい方法ないものか。。。
~続く~