3Dゲーム不治の病?透過病
それはぁぁあぁ、遠い昔ぃぃいぃ、3Dゲームが世に出始めたころからぁ、時を同じくし発生しだしたぁぁあぁ、不治の病ぃぃ・・・・・
Sorting Order ・・・・
それは日本語でぇぇえぇ、「そうでんな、オーナー」っと言われている3Dゲームに潜む闇ぃぃ・・・・・
(ぉぃ!こら!それ違っ!修正を!修正を!って待てそのまま行くのかぁぁぁ!あたし!)
そこにぃぃいぃ、内包されている数値はぁぁあぁ、常に人々を翻弄し続けるというぅぅうぅ、恐怖の魔物ぉ・ぉ・ぉ・・・・・
きゃあああぁぁぁあああぁあああ!
っと妙な始まり方をしてますが~、つまりは、透過病のお話ですぅ・・・あは(;^_^A
透過病は、メッシュに透過テクスチャを使用している物同士が重なると発生するのは皆さんご存知ですよねぇ。
まぁ、イリュゲーしてればお約束の現象(;^_^A
これに対抗する手段として現在のSB3UGUIに搭載されている「SortingOrder」なる物を使っちゃおうって事なのですぅ。
「SortingOrder」を弄ろうと思いますと~
まず、SB3UGUIでMeshを選択します。
そうするとFrameツリーの右横の真ん中あたりに6つボタンらしき物が現れます。
その現れたボタンの中の「Attributes」をクリックするとポップアップ画面が出て来ます。
その出てきたポップアップ画面の左上すぐ下の中央付近に「SortingOder」って所が数値を打ち込む所です。
念のため画像をば(赤いアンダーラインの所)
それで、この「SortingOrder」に打ち込む数字の決め方なんですけど~
基本概念はいたって単純で、
カメラから見ての~
一番手前のオブジェクト(Mesh)を最大の数値にして、一番遠いオブジェクト(Mesh)の数値は最小に!
っていうのが基本的なルールなのですぅ。
しか~し、3Dゲームでそんなことうまくいくの?って普通に思いますよねぇ。
そうなのです~もちろん無理なのです!はい(;^_^A
だってカメラはぐるぐる回っちゃうんだもん~、しかもカメラ基準点も動きたい放題だし~(;^_^A
んじゃ、これ何に使うんだぁって事ですよねぇ。
簡単に言うと~
カメラとの位置関係がおおよその予想が付き、並び順も推測できる透過するオブジェクト
(厳密に言うと透過してなくても透過シェーダーを使っているオブジェクト)
に対してあらかじめ数値を決めておいて、透過病を防ぐ手段として用いるっていうのが現在の常套手段の様です。
つまりは予測のつかない所はとりあえずは横に置いておく~みたいな決め方かなぁ(;^_^A
んで~この前、RLAさんがSortingOrderの数値がなぜ50?みたいに不思議がられていたのを思い出したのですがぁ、
なぜ50かと言うと~
勘です!勘!っていうか確固たる根拠はありましぇん!
まぁ、大体これぐらいにしておいたらそれなりになるかなぁっていう経験則みたいなものですねぇ。
単体の透明オブジェクト同士が重なる場合、
どっちが消えると見た目に違和感が大きいかっという感覚的な基準は有るのですけど
必ずどちらかは消えちゃうので透過病対策には程遠い~みたいな使い方です。
眉毛の様に透過オブジェクトの真下に普通の透過していないオブジェクトがあれば~
カメラからの絵画順を予測できますのでしっかりとした数値は決めれますが~
上記の様だと~つまりは感性で決めるしかないのですぅ。
そしてまだ検証はしっかりしていないものの、まったく別の透過病対策みたいなのが有りまして~、
今私がなんとな~くやっていますのが、
同じファイル内のメッシュの並び順でも透過の是非が変わることが解っています。
これはメタコのオブジェクトの並びと似ていまして、
上がカメラから一番遠く、下がカメラの一番手前になる様にオブジェクトを配置するとうまく透過するようです。
しかし~、これに関しては、まだUnity3Dファイル内で検証をしていませんのでどこまで通用するかは不明。
まぁ、そのうちやろうとは思いますがぁ、時間がぁ。
んで~このルールはサブオブジェクト内でも同じな様ですし、透過オブジェクトに限った物ではない可能性もあります。
最近よく起きている、マップアイテムの角度によってオブジェクトが消える問題も~
もしかしたらこのルールが根底にあるのではないかって最近思うようになりました。っがこれもまだ未検証です(;^_^A
そして最後にもう一つ~
それはパンストのファイル内にある「MonoBehavior」の「SetRenderQueue」なのです。
これもどうやらUnity側での透過病を防ぐ手段の様ですがまったくと言っていいほどルールが解っていません。
ですのでこれも今後検証するか、もしくはUnityのマニュアルを調べるかしないといけないという・・・・
長々書きましたがぁ、透過病は不治の病~
誰しもが自身の感性で優先度をお決めになっちゃえば~、その後、細かいことは言いっこなし~、ってな具合かなぁ(;^_^A
まぁ、眉毛が消えるとかお毛毛が消えるとかは作った方に報告した方がいいかと思いますけどねぇ。
(まとめになってないや・・・)