ツクロウヤ

Unityによるゲーム開発記やUnity,3dsMaxのTipsなどを記載していきます。

【開発記】ステージ遷移について

ステージ遷移を実装しましたよ!ということで更新。
敵のグループを倒したりすると扉が開くようなものなど、ステージの状態が変化するものを実装しました。

f:id:ArtAwA:20161106143332j:plain

カメラの設定や背景を作っているころからなりそうだなぁと思いつつも若干目をそらしていた遮りの問題が起こってしまいました...
扉をくぐる際に途中で止まったりすると壁に遮られてしまい、プレイヤーの姿が見えなくなってしまいます...

f:id:ArtAwA:20161106143333j:plain

今後、壊せるオブジェクトや少し入り組んだような背景を作る予定なので、なんとかしないといけないということで。
白猫プロジェクトなどでもやられていました、隠れてしまったら、プレイヤーをシルエットで表示する機能があればこの問題も回避できるなと思い実装してみました。
ちなみに以下の記事を参考にさせてもらいました。

Unityでステンシルを用いたアウトライン表現 - 太郎Work

そして出来たのが以下のような感じです。

f:id:ArtAwA:20161106143334j:plain

問題解消!

と喜んだものの、別の問題も浮上...
描画負荷が高いんですよ... DrawCallが「3」も...
実装したシェーダでの処理的に「アウトライン」「ステンシル」「テクスチャカラー」でそれぞれで描画が掛かっています。

またキャラクターの構成がカスタマイズを想定して、
・頭部
・身体
・武器
の3つに分けています。
これらは「Skinned Mesh Renderer」なので、Batchされずにそれぞれにまた描画が...
キャラ一体に「DrawCall : 9」は恐怖ですね...

アウトラインはシェーダではなく自前で用意するのもありかな、でも調整がやりづらいし、汎用的じゃないなと思いつつ。

シェーダを弄り始めると泥沼にはまりそうなので、今は実装を優先して一旦保留ということで...

それでは今回はこの辺で
(´・ω・`*)ノシ