【Unity】スマートボールぽいものを作ろう! - ②TextureとMaterial
さて、前回ではボールと土台の衝突判定を取りました。
スマートボールで一番大事な部分が終わったといっても過言ではないので今回は見た目を変えていきましょう。
その為にはまず土台とボールに貼るテクスチャを用意する場所を作ります。
Cube, Sphereという名前が呼びづらいので名前を変えておきましょう。
Hierarchy から Cube を選択。その後[F2]を押して名前を Base に。
次にSphereを選択。その後[F2]を押して名前を Ball に。
こんな感じになったかと思います。
後、この状態のままだとまだ光源が一切ない状態だったりするので、光源を追加します。
Assets => Create => Directional light を選択。
HierarchyにDirectional lightが追加されて、ボールと土台が白色になりました。
Directional light を選択して、Inspector の Transformを以下の通りに設定します。
…光源が入ると印象も一気にかわりますねー。
それではテクスチャの方にはいりましょう。
まずはProjectウインドウのAssetsをクリックします。
その次に、右側のフレームで右クリック
Create => Folder
New FolderができたらMaterialsと名前をつけます。
上記を繰り返し、このようにフォルダーを4つ作ります。
※先ほどの写真のようなフォルダー配置になればOKです。
Materialsのフォルダを選んだ状態で、ツールバーの
Assets => Create => Material を選びます。
NewMaterial というのが作られたと思うので選択してF2を押してBaseMaterialと名前を変更しましょう。
次に土台に貼りたいテクスチャを準備します。
今回は、
Wood Pattern Background | Graphic Web Backgrounds | Pixeden
様の素材をお借りして進めていきたいと思います。
用意できたテクスチャを、直接Assets => Materials のフォルダにドロップします。
…このように追加できればOKです。
次に、先ほど名前を変更したBaseMaterialを選び、
Inspector の None(Texture) => select を選択し、先ほど追加したテクスチャを追加します。
そして BaseMaterial を Hierarchy の Baseにドロップします。
土台に先ほど設定したテクスチャが貼られていれば成功です。
次に、ボールのテクスチャを用意します(なんでもいいのでボールぽい質感の画像があればいいです)。
先ほどと同じく、Assets => Create => Material を選び、名前をBallMaterialに。
BallMaterialのテクスチャに用意したボールの画像を追加。
そしてHierarchyのBallにBallMaterialをドロップ。
次に、ボールらしい質感の設定をしてみましょう。
BallMaterialを選び、ShaderのDiffuseをSpecularに変更します。
…ちょっとボールに光沢感が出たと思います。
物質の質感を操作する場合はMaterialのShaderを変更する、と覚えましょう。
以上の、MaterialとTextureを簡単にまとめると
Material => 設定したTextureの質感表現
Texture => Materialに貼るための画像
となります。
見た目が変わるだけで一気にそれっぽくなってきました。
次に、このまま落下するとただ地面に激突するだけなので盤面を縦に向けましょう。
BaseオブジェクトのTransformからRotationの値をX : 90にします。
これで盤面が正面に向き、ボールが綺麗に下に落下していきます。
次に外側の壁を作っていきます。
Baseオブジェクトと同様に
GameObject => Create Other => Cube で立方体を作ります。
先ほどの要領で、端に設置する壁を4枚作って外周に配置してみましょう。
※CubeでWallという名前の立方体を作り、新規MaterialからWall用のWallMaterialを作成後、WallにMaterialを適応後の図
壁一枚上記の手順を毎回作っていくのは結構手間ですよね?
なので、オブジェクトをPrefab化してそれを使いまわしましょう。
ProjectウインドウのAssets => Objects を開き、HierarchyにあるWallオブジェクトをドロップします。
これでPrefab化ができました。簡単ですね。
次に、先ほどPrefab化したWallオブジェクトをHierarchyをドロップします。
WallオブジェクトがHierarchyに増えれば成功です。
一度登録したPrefab化したオブジェクトはこのように、簡単に使いまわせる事ができます。
尚、Prefabはスクリプトからも複製できるのですがそれはまた次回に。
Wallを3つHierarchyに配置した後、適当にTransformの値を調整してみましょう。
自分好みでいいです。
Ballも大きすぎる気がしたら、TransformのScaleの値を変更して小さくしてみましょう。
結果、このような感じに。
大分スマートボールぽい雰囲気になってきたんじゃないでしょうか。
次回は中のクギやシューターを作っていきましょう。
関連記事一覧:
【Unity】スマートボールぽいものを作ろう! - ①RigidbodyとCollider - Exception[0]
【Unity】スマートボールぽいものを作ろう! - ③PrefabからInstantiateで動的生成 - Exception[0]
【Unity】スマートボールぽいものを作ろう! - ④isTriggerとOnTriggerEnter - Exception[0]
【Unity】スマートボールぽいものを作ろう! - ⑤Particleを使ってみよう! - Exception[0]