わからん人のUnity基本操作2 コンポーネントの追加


前回はオブジェクトを配置するところまでやりました。

今回はその配置したオブジェクトの仕組みについてを説明と、前回の動画のリアルタイムに動かす時の説明の補足をしたいと思います。

前回ではオブジェクトを配置をするだけでしたが、配置をしただけではシーンの再生をしても物体は落ちたりはせずその場に静止し続けます。

前回はこちら(https://hatsuka.rtx1911.net/2017/02/%e3%82%8f%e3%81%8b%e3%82%89%e3%82%93%e4%ba%ba%e3%81%aeunity%e3%81%ae%e5%9f%ba%e6%9c%ac%e6%93%8d%e4%bd%9c%ef%bc%91/

ではこれから配置したオブジェクトにコンポーネントを設定して、重力で落ちるようにします。


1.コンポーネントとは?

コンポーネントとはオブジェクトにつけられている機能のことです。

このコンポーネントこそUnityでのオブジェクトの動きに必要不可欠なものです。

コンポーネントはエディタ画面の右側のinspectorビューで確認することができます。

オブジェクトをsceneビューやHierarchyで選択すれば、inspectorビューに選択したオブジェクトにつけられているコンポーネントを見ることができます。

 

左の画像は上画像でCubeが選択されている時のinspector。(前回使用した画像)

選択したオブジェクトにつけられているコンポーネントはここに並んでいます。

  • Transform
    前回紹介した移動(Position)、回転(Rotation)、拡大縮小(Scale)の情報が数値が格納されています。
    ここから数値を入力してオブジェクトを移動や回転させることができます。
    オブジェクトには必要最低限なければならないもので、オブジェクトからコンポーネントを全て消してもこれだけは残ります。
  • Mesh Filter
    オブジェクトの形を決めるものです。3Dモデルの形状データをここに適用することができます。
  • Box Collider
    Colliderはオブジェクトの当たり判定をするコンポーネントです。これによってこのコンポーネントを持ったオブジェクト同士が衝突するようになります。逆にこれがないオブジェクトはぶつからずにすり抜けてしまいます。
    ちなみにColliderは箱型の他にも球、カプセル型、メッシュ用、車のタイヤ用、地形用などがあります。
    メッシュ用はMesh Filterに適用された形に当たり判定を設定してくれます。
    衝突した瞬間に音を出すスクリプトなどもこれが重要になります。また、is Triggerのチェックを入れると衝突はせずにすり抜けるようになりますが、これもスクリプトを使うときに重要になってきます。
  • MeshRenderer
    オブジェクトの見え方を設定するコンポーネントです。シェーダーやマテリアルの設定もこれに含まれています。この時点ではマテリアルが設定されていないため、自動的に仮のマテリアルが適用されています。設定をしたいときはマテリアル設定がされているファイルを適用してあげる必要があります。

他にもまだいろいろあります。また、自作したスクリプトを適用した時にもこのinspectorに表示されます。オブジェクトの振る舞いを調整するときはここを見ましょう。

 


2.オブジェクトにコンポーネントを追加する

先ほどの画像の一番下に”Add Component”というボタンがあったことはもうお気づきかと思いますが、これでオブジェクトにコンポーネントを追加することができます。

今回は重力で自由落下するようにしたいので、”Rigidbody”というコンポーネントを追加します。

inspectorのAdd ComponentからPhysics > Rigidbody をクリック

inspectorにRigidbodyが追加されました。

  • Rigidbody

RigidbodyコンポーネントはColliderオブジェクトに質量などの物理的な数値を設定して、オブジェクトの物理的な挙動を可能にします。和訳すると剛体。

これで重力が適用されます。

それでは水面も用意して落としてみましょう!

カメラを見える位置に配置して再生ボタンをぽちっとな

 

 

 

 

あっ……

 

 

ど、どうでしょう!ちゃんと水面も落ちましたね!?(違う、そうじゃない)

 

これは水面にもRigidbodyが適用されているために起こります。水面は落ちなくていいよって人は水面のRigidbodyコンポーネントを歯車マークをクリックしてRemove Componentで取り除きましょう

といった感じでコンポーネントの追加の仕方でした。


ちなみに、前回の最後の動画にあった水面にはMesh Colliderが追加されていました。だから球が水面に板のようにぶつかってしまったのですね。

 

水ならばもっと沈んでから浮かび上がってほしいですよね。

ちょっと跳ねてしまっていますが、さっきよりもクッション性がある着水ですね。

さらには素早い平行移動をしていきましたね。

これは、スクリプトをオブジェクトに適用させることで実現しています。

次回はUnityのスクリプトについて、動画の浮力スクリプトの紹介もかねて話していきたいと思います。

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です