libro
www.tuyano.com
初心者のためのUnity超入門

物理エンジンを使おう! (1/5)

作成:2014-05-10 10:14
更新:2014-05-10 10:14

■「物」として扱うための機能とは?

ゲームなどの仮想空間と弁実世界の最大の違い、それは「物理的な影響を受けるかどうか」でしょう。「物理的」というと難しそうですが、例えば、「支えがないと下に落ちる」とか「何かにぶつかると止まったり跳ね返ったりする」といった動作はすべて重力や作用反作用といった物理的な力によるものです。

ゲームの世界では、そういうわけではありません。例えばUnityにゲームオブジェクトを配置して動かしてみればわかります。ゲームオブジェクトどうしが接触しても跳ね返ったりはしませんし、そもそも何もない空間に置いてあるはずのゲームオブジェクトは実行しても下に落ちたりはしません。ゲームオブジェクトには、物理的な力は作用しないのです。

こうした物理的な力の作用をゲームオブジェクトに反映させるために作りだされたのが「物理エンジン」というものです。

物理エンジンをゲームオブジェクトで利用するにはどうすればいいのか。それは、2つのコンポーネントによって実装されます。「コライダー」と「リジッドボディ」です。

●コライダー
これは、ゲームオブジェクトに「接触可能なボディ」を与えるものです。ゲームオブジェクト自体は、他のゲームオブジェクトと接触してもぶつかったりはしません(そのまま幽霊のように重なってしまいます)。コライダーを組み込むと、そのコライダーが他のゲームオブジェクト(のコライダー)と接触すると、「ぶつかった」と判断され、跳ね返ったりするようになります。このコライダーは、ゲームオブジェクトを作成すると自動的に組み込まれているはずですので、新たに追加する必要はないでしょう。

●リジッドボディ
これはゲームオブジェクトに「剛体特性」を与えるものです。というとわかりにくいですが、質量や空気抵抗や摩擦などの物理的な性質を与えるものです。これにより、重力や慣性などの物理的な力の影響を受けるようになります。これは標準では組み込まれていないので、必要ならば自分でゲームオブジェクトに組み込まないといけません。

「コライダー=ぶつかる体」「リジッドボディ=ぶつかる体の性質」という感じで考えるとよいでしょう。この2つは別にセットで使わないといけないわけではありません。例えば「重力の影響なんて特に必要ない。ただ動かしてぶつかったりする機能だけあればいいというならばコライダーだけを利用すればよいでしょう。ただしリジッドボディが必要な場合は、コライダーも必須と考えてよいでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのUnity超入門」に戻る