HOME » » » » HERE

ゆにすち入門編(この画像は、https://www.pakutaso.com/さまから借用しています)

こんにちわ、横浜すみっこクリエイターととです。

Unityでゲームを制作して販売するまでの軌跡を描くゆにすち!入門編です!

今回はUnityのオブジェクトの性質を決めるコンポーネントについて学んでいきます。

ゆにすち!シリーズとは

このシリーズではUnityでSTEAM販売を目指す!略してゆにすち!と銘打ち、モデリングもプログラミングも企画も販売も何から何までぜ~んぶド素人のととが、PCゲームを考え、制作して、販売するまでの風景を履歴として残していくものです。

この入門編では、Unityの基本的な使い方やゲームの構造について学んでいきます。

この記事のポイント!

  • コンポーネントは、オブジェクトの性質を決定する!
  • 「Transformコンポーネント」は、すべてのオブジェクトに必ず付いていて、消すことができない!
  • 「Mesh Filterコンポーネント」は、オブジェクトの形状(ポリゴン)を決める!
  • 「Mesh Rendererコンポーネント」は、ポリゴンの見え方を決める!
  • 「Colliderコンポーネント」は、当たり判定の範囲を決める!
  • コンポーネントは、他にもすごい種類がある!

コンポーネントとは?

コンポーネントとは、「オブジェクトの性質を決めるプロパティ」と言い換えることができます。

たとえば、そのオブジェクトについて

  • 位置や姿勢
  • 当たり判定のあるのか
  • 表面が凸凹しているのか、光っているのか
  • 重力が影響するのか
  • 音が発されているのか

など、さまざまな設定をすることができます。裏を返せば、コンポーネントによってどんなオブジェクトであるかが決定するということです。

ゆにすち(インスペクターウィンドウにコンポーネントが表示されます) インスペクターウィンドウに表示された「Transformコンポーネント」

コンポーネントは、オブジェクトを選択している状態でインスペクターウィンドウに表示されます。オブジェクトを作成すると、必要なコンポーネントがあらかじめ設定された状態になっています。また、コンポーネントは要素を持っており、この要素の設定値で振る舞いが変わっていきます。

では試しに「キューブ」を作成して、どんな「コンポーネント」が付与されているか、見てみましょう。

主要なコンポーネントの紹介(「キューブ」の場合)

Transformコンポーネント

ゆにすち(Transformコンポーネント) 「Transformコンポーネント」

Transformコンポーネントは、オブジェクトの位置・姿勢・大きさを定義するコンポーネントです。

基本的に「コンポーネント」は、オブジェクトに加えたり削除したりできます。しかしTransformコンポーネントだけは外すことができません。オブジェクトに必ず付与されることになります。

紹介はまだですが、「空のオブジェクト」を作成すると、この「Transformコンポーネント」だけが含まれたオブジェクトが生成されることになります。

Mesh Filterコンポーネント

ゆにすち(Mesh Filterコンポーネント) 「Mesh Filterコンポーネント」

Mesh Filterコンポーネントは、オブジェクトの形状を定義するコンポーネントです。

キューブの場合、コンポーネント名称は「Cube(Mesh Filter)」となっています。

また、要素を見てみると「メッシュ」には「Cube」が設定されています。あらかじめUnityが用意してくれいているアセットが選択されていることを意味します。

アセットとは、「資産」を意味する英単語ですが、Unityでは、3Dモデルテクスチャ(画像)、スクリプトやサウンドデータなどのゲームを構成する部品を意味します。その一つとして「メッシュデータ」があります。コンポーネントの要素は、直接数値で指定する場合と、このように「アセット」から対応するデータを指定する場合があります。

ゆにすち(「Cube」の1面も実は2つの三角形で構成されます) 「Cube」の1面も実は2つの三角形

メッシュデータというのは、三角形の面の集合体で表現されるポリゴンのことです。Unityにおける3Dモデルは、すべて三角形の面をくっつけて表現します。なので四角形に見えているとしても、それは三角形が2枚で構成されていることになります。

Mesh Rendererコンポーネント

ゆにすち(Mesh Rendererコンポーネント) 「Mesh Rendererコンポーネント」

Mesh Rendererコンポーネントは、メッシュ(形状情報)に対して面の見え方を定義するコンポーネントです。次の4つの要素を持っています。

  • Materials:色や質感、光沢度、凹凸具合などの設定(アセット指定)*
  • ライティング:影の設定
  • プローブ:光の受け方の設定
  • 追加設定:その他の設定
「マテリアル」アセットを指定すると、インスペクターウィンドウの下の方に、指定したマテリアルアセットが表示されます。

「Mesh Filterコンポーネント」は、あくまでもモデルの形状、つまり点・線・面の情報だけを表現するものでした。それに対してこの「Mesh Rendererコンポーネント」は、面がどのように見えるかを定義しています。

Colliderコンポーネント

ゆにすち(Colliderコンポーネント) 「Colliderコンポーネント」

Colliderコンポーネントは、オブジェクトの当たり判定を定義するコンポーネントです。

このコンポーネントを設定し忘れると、壁や床をすり抜けたり、敵を通り抜けたりしてしまいます。また、注意しなければならないのは、

「メッシュ(形状情報)」と「当たり判定」は必ずしも一致しない

ということです。たとえば次のように不一致の場合、見えている形状は「球体」ですが、当たり判定はそれより大きい「立方体」なので、他のオブジェクトにぶつかるときに、球面ではなくその外側で当たるようになります(サイズがデフォルトのままの場合)。

  • Mesh Filterコンポーネント:Sphere
  • Colliderコンポーネント:Cube

コンポーネントの追加

ゆにすち(「コンポーネントの追加」ボタンからコンポーネントを追加できます) コンポーネントの追加

オブジェクト選択状態において、インスペクターウィンドウの最下部にコンポーネントを追加ボタンがあります。このボタンを押して必要なアイテムを選択することで、コンポーネントを追加することができます。

ゆにすち(コンポーネントの種類は多岐にわたります) コンポーネントの種類

ボタンを押すとコンポーネント一覧が表示されます。上図の通り、さまざまな種類のコンポーネントがあることがわかります。さらにコンポーネントを自分で定義して作成することも可能らしいです。

コンポーネントの初期化・削除

ゆにすち(「リセット」からコンポーネントを初期化できます) コンポーネントの初期化

コンポーネントの値を初期化させたい場合は、上図のように > リセットをクリックします。「Transformコンポーネント」などで原点戻しするときに、数値操作よりも早くて重宝します。

ゆにすち(「コンポーネントを削除」から削除できます) コンポーネントを削除

同様にコンポーネントを削除したい場合は、上図のように > コンポーネントを削除をクリックします。コンポーネントのつけ間違いや、不要になった場合に削除*します。

繰り返しになりますが、「Transformコンポーネント」などの位置情報を司るのコンポーネントは削除できません。

まとめ

今回は、Unityのオブジェクトの性質を決めるコンポーネントについて勉強しました。ほんの一部ですが、プリミティブオブジェクトを作成したときにデフォルトで付いているコンポーネントの働きを確認しました。

次回予告

Next time on... Unity スクリプトを作成してみる!

Unityでオブジェクトを動かすには、スクリプトが必要です。次回は作成されたスプリクトの中身を見てみましょう。
では、今回はこの辺で。

コメント