【Unity】Unityで3D野球盤をつくろう日記 15日目:守備の選手のテクスチャを改良(オブジェクトを透明化し、透過属性の画像を張り付ける)

投稿日:2017年5月28日
最終更新日:2019年1月19日

(日記のまとめページはこちら: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軸のテクスチャは見えないので、とりあえずこれで良しとする。

次は、この前の日記の宣言通り、左右に動かす動作を実装する予定。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください