Unityにて、
カメラがオブジェクト(立方体等)に密接すると、透けて見えてしまいます。
MainCameraのClipping PlanesのNearを0にしようとしたのですが、0.01未満にはできませんでした。
他にオブジェクトが透けてしまわなくする方法などはありますでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
配置しているオブジェクトよりScaleを0.1だけ大きいオブジェクトにし、透明にして配置しました。
衝突時に内側のオブジェクトが透けてしまうことがなくなりましたので、解決することができました。
投稿2017/07/04 03:37
総合スコア20
0
ベストアンサー
スクリプトからならGetComponent<Camera>().nearClipPlane = 0.000001f;
といった感じに小さな値を設定できて、どうやら10の-6乗くらいまでならプレイモードでエラーメッセージは出ないようでした。
ただ、やってみますとお分かりかと思いますが、Nearを小さくするほど、逆に遠方の描画が割を食って狂っていくはずです(前後関係を正しく描画できない、部分的に欠ける、など)。
NearとFarを極端にするほど、奥行き関連の描画不具合が生じるのは原理上仕方ないところがあって、ある程度は妥協が必要かと思います。
物体に近付いたときにニアクリップ面で描画が途切れるのをごまかすテクニックとして、カメラが物体に近付くほど滑らかに透明にして不自然さをやわらげる、といったものもあるようです(参考:AlphaClipsafe - Unify Community Wiki)。
投稿2017/07/03 21:37
総合スコア10816
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
イメージとしては、マジックミラーの箱があります。
中から外は見えます。外から中は見えません。
カメラが中にめり込んでいるので外は見えている状況なので、すけて見えて当たり前です。
パネルを作って裏から見ているのと同じ状況です。
この機能はカリングとよばれるもので、それをOFFにするにはシェーダーを書き換えるしかありません。
プロジェクトビューでCreate→Shader→Unlit Shaderと選択肢、シェーダーを作成してください。
そのシェーダーにLOD 100とありますので、その下にcull offを追加すれば裏面が表示されます。
また、デフォルトのシェーダーを使いたい場合は、
https://unity3d.com/jp/get-unity/download/archive
ここに自分が使っているバージョンのところの、ダウンロード→ビルトインシェーダーを選択してダウンロード
解凍し、DefaultResourcesExtraというフォルダのStandard.shaderをプロジェクトにドラッグドロップ(unityのアセットフォルダ内に追加)すればいいです。
名前はわかりやすく、culloffShaderとでもしておいたほうがいいでしょう。それも上記同様、LOD 100の下に一行書き加えればいいです
そして、そのシェーダーをマテリアルにアタッチすればいいです。
投稿2017/07/03 21:15
総合スコア132
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。