オーダーメイドコース
icon
icon

UnityでRigidbody(リジッドボディ)を追加する方法【初心者向け】

Unityで【Rigidbody(リジッドボディ)】を追加する方法を初心者向けに解説した記事です。Rigidbodyを追加するだけで、ゲームにおける物体の落下や回転といった動きを簡単に再現することができます。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

ゲームエンジンのUnityRigidbody(リジッドボディ)を追加する方法を初心者向けに解説した記事です。

 

Rigidbodyとは、ゲームオブジェクトに物理シミュレーションを適用するためのコンポーネント(設定項目の集まり)です。Rigidbodyを追加するだけで、ゲームにおける物体の落下や回転といった動きを簡単に再現することができます。

今回は、球形のゲームオブジェクトにRigidbodyを追加して、「落下するボール」を作成します。

 

なお、本記事はTechAcademyのUnity入門オンライン講座の内容をもとにしています。

 

大石ゆかり

田島メンター!!3Dオブジェクトを画面に表示できるようにはなりましたが、これって空中にあっても浮いたままになっちゃうんですか~?

田島悠介

それでは今回は、Rigidbodyを使ってオブジェクトに物理シミュレーションを適用させてみよう。

大石ゆかり

Rigidbodyというのはどこから設定するんですか?

田島悠介

物理属性を与えたいオブジェクトのInspectorタブから行うんだ。シンプルな平面とボールを作成して、ボールに属性を与えてみよう。

 

事前準備

まずはボールとなる球(Sphere)と、地面となる平面(Plane)をシーンに追加しましょう。

画面上部の[GameObject]タブから、[Create Other]→[Sphere]と選択します。

作成した「Sphere」は「Ball」と名前を変え、Y座標を「5」としておきます。
([Inspector]タブで[Transform]の[Position]にある[Y]の値を設定します。)

001 002

 

同様に、[GameObject]→[Create Other]→[Plane]と選択します。
「Plane」はこのままで設定完了とします。

003

 

このままではゲーム画面が真っ暗ですので、ライトを追加しましょう。

[GameObject]→[Create Other]→[Directional Light]と選択します。ライトの設定はデフォルトのままでも構いませんが、ここではY座標を「10」とします。

004

 

以上で準備完了です。

再生ボタン(画面上部の真ん中あたりにある▶︎)を押すと、ゲームにボールと地面が追加されたことが確認できます。

005

この状態では、まだボールは動きません。

 

 

Rigidbodyの追加

では、ボールにRigidbodyを追加して、落下するようにしましょう。

[Hierarchy]タブで、先ほど作成した「Ball」を選択し[Inspector]タブの下部にある[Add Component]ボタンを押します。

そして、[Physics]→[Rigidbody]と選択します。

006

[Inspector]タブにRigidbodyコンポーネントが追加されました。

以後、ボールには物理シミュレーションが適用されるようになります。

 

Rigidbodyの主な項目について説明しますので、設定をしてみましょう。

007

Mass

ゲームオブジェクトの質量です。
(質量は落下速度に影響しませんので、今回は「1」を設定します)

 

Drag

ゲームオブジェクトが移動するときの空気抵抗です。「0」を設定すると空気抵抗がなくなります。

また、「Infinity」と設定すると空気抵抗が無限大になり、動かなくなります。
(今回は使用しませんので「0」を設定します)

 

Angular Drag

ゲームオブジェクトが回転するときの空気抵抗です。
(今回は使用しませんので「0」を設定します)

 

Use Gravity

ゲームオブジェクトに重力を適用するか否かについて設定できます。この項目がチェックされると、重力が働き落下するようになります。
(今回はチェックを入れます)

 

ボールのRigidbodyを設定した状態で、ゲームを再生してみましょう。

008

地面まで落下するようになりました。

 

田島悠介

ボールにRigidbodyを適用したよ。Gameタブで再生するとどうなったかな?

大石ゆかり

ボールが落下しました!でもスーッと降りてきただけで何となく不自然な感じがしますね。

田島悠介

では次は、地面にボールが落ちた際に跳ね返ってくるようにしてみよう。

 

[PR] Unityコース

ボールを跳ねさせる

ボールは落下するようになりましたが、まだあまりボールらしく見えません。

UnityではRigidbody以外にも、様々な物理シミュレーションに関する設定が可能です。

 

では、ボールが地面に落ちると跳ねるようにしてみましょう。

そのためには「Physic Material」を設定する必要があります。

 

まずは、画面上部の[Assets]タブから、[Create]→[Physic Material]を選択してください。

[Project]タブに「New Physic Material」が追加されます。

009

 

次に、作成された「New Physic Material」を選択し、名前を「Physic Material_Ball」とします。

そして、[Inspector]タブの[Bounciness]の値を「1」にします。

010

 

最後に、作成した「Physic Material_Ball」をボールに適用しましょう。

[Hierarchy]タブで「Ball」を選択し、[Inspector]タブの[Sphere Collider]で[Material]を設定します。

[Material]の右端にある「◎」ボタンを押すとウインドウが開きますので、「Physic Material_Ball」を選択します。

011

 

この状態でゲームを再生してみましょう。

012

地面まで落下したボールが跳ねるようになりました。

今回の記事は以上です。

 

田島悠介

Physic Materialを適用させるとどうなったかな?

大石ゆかり

今度はボールが落ちた後、何回かバウンドしましたね!

田島悠介

Bouncinessの値は0が跳ね返らない、1が跳ね返るという設定になるんだ。また、Physic Materialは該当のファイルを直接Sphere ColliderのMaterialにドラッグ&ドロップすることでも適用させることができるよ。

大石ゆかり

分かりました。ありがとうございます!

 

さらにUnityを使いこなしたい場合はUnityでプレハブ(複製)を使う方法 も合わせてご覧ください。

[お知らせ]TechAcademyではオリジナルゲームアプリが公開できるUnityオンラインブートキャンプを開催しています。現役Unityエンジニアのサポートで効率的に学びたい場合はご検討ください。