2020年03月17日

Unityゲーム開発実況56

こんにちは! み です!
ほとんど誰もいない公園に池があってね。
その池の脇の木にカワセミという鳥がとまっていました。
(輝くような緑色なんだぜ)
そしたらジャポッって池に飛び込んだの。
何かを咥えて飛んで行ったのさ。
池を覗くとオタマジャクシがたくさん。
大変な状況だけど春は来るんだなって思った。
image_test3.jpg
新キャラを半透明にする件、上記画像のようにうまくいっています。
クリオネも半透明なのですが、その奥まで透けて見えます。
ちなみにクリオネはテクスチャーtgaファイルに半透明が設定されています。
新キャラのテクスチャーはjpgで透明設定はありません。
ここまではオッケーです。
前にテクスチャーが貼っていないサーフェイスで色の変色が起こることへの対処で、
全てのサーフェイスにテクスチャーを貼ることで回避しました。
そしてその後インスペクター上で半透明を設定していたんです。
さらにプログラムから直接操作しようとしました。
ゲーム中にジワリと透明に変化させたいわけです。
するとまた、問題が発生してしまいまして。
プログラムは以下のようにしていました。

Color color;
color = c19.GetComponent().materials[0].color;//colorを取得
color.a = 0.5f;//半分くらい半透明にする
c19.GetComponent().materials[0].color = color;//colorを書き込む

配列形式になっているのはモデラーで言う所のサーフェイス、unityならエレメントが、複数あるからです。
新キャラは17のサーフェイスで出来ています。
それら全てにアクセスして透明度を変えるわけです。
しかし、うまくいきません。
透明度は変化しますが、描画順がちょっとおかしくなってポリゴンの裏側が見えてしまう所があるのです。
デプスバッファを利用しているので概ねいいのですが…。
シェーダーのいじり方があまりよく分かっていないのもあって四苦八苦しました。
しょうがないので、新キャラのサーフェイスを一つにしたらどうか?という考えになります。
それぞれ発光度や反射率が設定されていたのですが仕方ありません。
全てをマットな感じにしてやり直しです。
すると思った通り全てが完璧にレンダリングされました!
少し納得できない所もありますが、
よしっ! って感じで思わずガッツポーズしました!
ちょっと恥ず!笑
でも開発者なら分かるでしょ、こういう時に達成感を味わえますよね。

さてさてLog1の開発はもう少し続きます。
今日はこの辺で!
またね!
ばいばい!


posted by み at 07:00| Comment(0) | 日記
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: