(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
前回、野球盤に以下のような守備の選手を配置した。
しかし、これだといかにも板に絵を張り付けました!って感じで張りぼて感が強い。そこでちょっといい方法を思いついたので試してみる。
透過性のある素材の入手
まず、前回ダウンロードさせてもらった以下の素材だが、jpgだけじゃなくてpngもあり、pngだと人間の造形以外の部分に透過性が設定されている。
https://www.silhouette-ac.com/detail.html?id=135177&ct=&n=&sw=%E5%AE%88%E5%82%99
これを利用して、前回CubeのObjectで作ったPlayerCenterを透明にして、オブジェクトの透過性を保ったままテクスチャを張り付ければ、人型以外の白い部分がなくせるのではないかな~と。
Assetsの画像の透明化
以下の画像のように、上記でダウンロードしたpngをAssetsにドラッグ&ドロップして素材を読み込む。このままで透過性が反映されないので、読み込んだpngファイルを選択してInspector画面で「Alpha is Transparency」にチェックを入れる。
これにより、png画像の透過性が反映されるようになる。
Objectの透明化
先ほど読み込んだpngファイルを、前回つくったPlayerCenterにドラッグ&ドロップしてテクスチャを張りなおす。そしてこの状態で、PlayerCenterのInspectorのShaderを「Unit/Transparent」に変更すると・・・以下のように透明にすることができた!
ん?なんか人物の上に黒いものが表示されているような・・・良く見えると、PlayerCenterオブジェクトのX、Y、Z面それぞれにテクスチャが張られてしまっている。
Cubeの1面だけにテクスチャを貼る(または、立方体のオブジェクトの各面に違うテクスチャを貼る)方法は無いか調べたけど、どうもBlenderなどのツールで自作しないとだめらしい。
色々と工夫すればできそうだけど、ただの障害物にそこまで手をかけるのもなぁ・・・ということで、PlayersオブジェクトのZ軸方向のScaleを極力薄くして、ごまかすことにする。Scaleを0.01にしたところ、ほとんどX軸とY軸のテクスチャは見えないので、とりあえずこれで良しとする。
次は、この前の日記の宣言通り、左右に動かす動作を実装する予定。